1 2005-02-06 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-message-factory.c (generate_special): more tests
5 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6 array length that exceeds the maximum
8 2005-02-05 Havoc Pennington <hp@redhat.com>
10 * dbus/dbus-message-factory.c (generate_special): more test cases,
13 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
14 reason why a signature was invalid
16 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
17 skip the length of the string before we look at it in validation
19 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
22 * dbus/dbus-message.c (_dbus_message_loader_new): default
23 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
25 2005-02-05 Havoc Pennington <hp@redhat.com>
27 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
28 if the signature of a variant was empty
29 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
30 struct with no element type)
32 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
33 mangled messages to break things
35 2005-02-04 Havoc Pennington <hp@redhat.com>
37 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
38 g_quark_try_string() so it actually can return 0
39 (dbus_g_proxy_connect_signal): ditto
41 2005-02-04 Havoc Pennington <hp@redhat.com>
43 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
45 (tristring_from_message): assert cleanly on null path/interface
46 (should not be possible though I decided later)
47 (dbus_g_proxy_dispose): move proxy manager unregistration here
48 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
49 g_return_if_fail() checks
51 2005-02-04 Havoc Pennington <hp@redhat.com>
53 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
55 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
56 (with some minor changes)
58 * doc/dbus-specification.xml: add deprecated attribute to
61 2005-01-31 Havoc Pennington <hp@redhat.com>
63 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
64 think it's sort of right
66 2005-01-30 Havoc Pennington <hp@redhat.com>
68 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
70 2005-01-30 Havoc Pennington <hp@redhat.com>
72 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
74 * autogen.sh: change to autotools 1.9
76 * glib/dbus-gproxy.c: completely change how signals work
77 (dbus_g_proxy_add_signal): new function to specify signature of a
79 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
80 and g_warning if the incoming message has the wrong signature.
82 2005-01-30 Havoc Pennington <hp@redhat.com>
84 * tools/dbus-names-model.c (have_names_notify): fix this
86 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
87 up the string array handling a bit
89 2005-01-30 Havoc Pennington <hp@redhat.com>
91 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
92 (dbus_g_pending_call_cancel): new function
94 * dbus/dbus-glib.h: move GType decls for connection/message here;
95 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
96 here, just kind of rationalizing how we handle all that
98 * tools/dbus-names-model.c: new file for a tree model listing the
101 * tools/dbus-tree-view.c (model_new): use proper typing on the
104 2005-01-30 Havoc Pennington <hp@redhat.com>
106 * glib/dbus-gmain.c: add a custom GSource back that just checks
107 whether the message queue has anything in it; otherwise, there are
108 cases where we won't see messages in the queue since there was no
109 IO visible to the glib main loop
111 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
112 increase default message timeout to 25 seconds
114 2005-01-30 Havoc Pennington <hp@redhat.com>
116 * test/glib/test-profile.c (no_bus_stop_server): remove the
117 warning about the g_warning that I just fixed
119 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
120 custom source, seems to be a lot easier to understand and work
123 2005-01-30 Havoc Pennington <hp@redhat.com>
125 I think this main loop thing is conceptually broken, but here are
126 some band aids. I'll maybe rewrite it in a minute.
128 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
129 custom GSource, so don't pass it in; confusing
130 (gsource_server_finalize, gsource_connection_finalize): add
131 finalize handlers that remove all the watches.
133 2005-01-30 Havoc Pennington <hp@redhat.com>
135 * glib/dbus-gobject.c (introspect_properties): fix the XML
138 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
139 which effectively detects the use of freed messages
141 * glib/dbus-gobject.c (handle_introspect): modify and return the
142 reply message instead of the incoming message
144 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
145 gee, maybe it should SEND THE XML instead of just making a string
146 and freeing it again ;-)
148 * tools/dbus-print-message.c (print_message): improve printing of
151 * configure.in: add debug-glib.service to the output
153 2005-01-30 Havoc Pennington <hp@redhat.com>
155 dbus-viewer introspected and displayed the bus driver
157 * dbus/dbus-object-tree.c
158 (object_tree_test_iteration): add tests for a handler registered on "/"
160 * dbus/dbus-object-tree.c
161 (_dbus_decompose_path): fix to handle path "/" properly
162 (run_decompose_tests): add tests for path decomposition
164 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
167 * glib/dbus-gobject.c (handle_introspect): fix quotes
169 * test/glib/run-test.sh: support launching the bus, then running
172 * test/glib/test-service-glib.c (main): put in a trivial gobject
173 subclass and register it on the connection
175 * bus/driver.c (bus_driver_handle_introspect): implement
176 introspection of the bus driver service
178 * dbus/dbus-protocol.h: add #defines for the XML namespace,
179 identifiers, doctype decl
181 * bus/driver.c (bus_driver_handle_get_service_owner): handle
182 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
183 returning the service unchanged.
184 (bus_driver_handle_message): remove old check for reply_serial in
185 method calls, now the message type deals with that
186 (bus_driver_handle_message): handle NULL interface
188 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
190 * glib/dbus-gloader-expat.c (description_load_from_string): allow
193 * tools/dbus-viewer.c: add support for introspecting a service on
196 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
197 (dbus_g_pending_call_unref): add
199 2005-01-29 Havoc Pennington <hp@redhat.com>
201 * tools/dbus-tree-view.c: add support for displaying properties.
202 (run dbus-viewer with an introspect xml file as arg, then resize
203 the window so the tree elements show up, not sure what that is)
205 * glib/dbus-gobject.c (handle_introspect): return
206 org.freedesktop.Properties and org.freedesktop.Introspectable
207 interfaces when we are introspected.
209 * doc/dbus-specification.xml: allow empty interface name when
212 2005-01-29 Havoc Pennington <hp@redhat.com>
214 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
215 though it uses glib, it could be extended for any binding in
218 * glib/dbus-gobject.c (gobject_message_function): change to the
219 new way properties work
221 * dbus/dbus-protocol.h: add the new interfaces
223 * doc/dbus-specification.xml: document the introspection format,
224 Introspectable interface, and add an org.freedesktop.Properties
227 * glib/dbus-gparser.c: add support for a <property> element
229 * glib/dbus-gidl.c: add PropertyInfo
231 * glib/dbus-gobject.c (handle_introspect): put the outermost
232 <node> outside the signal and property descriptions.
233 (introspect_properties): export properties as <property> rather
236 2005-01-28 Havoc Pennington <hp@redhat.com>
238 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
239 related to authentication protocol
241 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
243 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
244 - BUS_ACTIVATION -> BUS_STARTER
245 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
246 - class MessageIter (__init__): Added recursion checking
247 so we throw a nice error instead of just disconnecting from the
249 (get): Added arg_type parameter for recursion.
251 Added signiture type placeholder (not implemented)
252 Added struct type placeholder (not implemented)
253 Added varient type placeholder (not implemented)
254 Commented out dict type for now
255 (get_element_type): renamed from get_array_type
256 (get_*): changed to use the dbus_message_iter_get_basic API
257 (get_*_array): removed in favor of recursive get_array method
258 (get_array): new recursive method which calls get to marshal
259 the elements of the array
260 (value_to_dbus_sig): New method returns the corrasponding
261 dbus signiture to a python value
262 (append): Comment out dict handling for now
263 Handle lists with the new recursive API
264 Comment out None handling for now
265 (append_nil): removed
266 (append_*): changed to use dbus_message_iter_append_basic API
267 (append_*_array): removed in favor of recursive append_array
269 (__str__): Make it easier to print out recursive iterators
271 - class Message (__str__): moved type inspection to the
272 MessageIter class' __str__ method
273 (get_iter): Added an append parameter wich defaults to False
274 If True use the new API's to create an append iterator
276 * python/dbus.py: Update to use new bindings API
277 - TYPE_ACTIVATION -> TYPE_STARTER
278 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
279 - class ActivationBus -> class StarterBus
280 - class RemoteObject (__call__): get an append iterator
281 - (_dispatch_dbus_method_call): get an append iterator
282 - class Object (emit_signal): get an append iterator
284 * python/examples/: Fixed up the examples to work with the new API
286 2005-01-28 Joe Shaw <joeshaw@novell.com>
288 * configure.in: Bump version up to 0.30.
290 * HACKING: Add a release item to bump the version number up after
293 2005-01-28 Havoc Pennington <hp@redhat.com>
295 * doc/dbus-specification.xml: update to describe 16-bit types and
298 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
301 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
304 * dbus/dbus-marshal-recursive.c: implement
306 2005-01-27 Havoc Pennington <hp@redhat.com>
308 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
310 * configure.in: find the right type for 16 and 32 bit ints as well
313 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
314 the 16-bit types so people don't have to stuff them in 32-bit or
317 2005-01-27 Havoc Pennington <hp@redhat.com>
319 * dbus/dbus-message.c: byteswap the message if you init an
320 iterator to read/write from it
322 * dbus/dbus-marshal-byteswap.c: new file implementing
323 _dbus_marshal_byteswap()
325 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
327 2005-01-26 Havoc Pennington <hp@redhat.com>
329 * dbus/dbus-marshal-validate-util.c: break this out (and fix
330 build, apparently - nobody noticed?)
332 2005-01-26 Havoc Pennington <hp@redhat.com>
334 * dbus/dbus-marshal-recursive.h: remove todo comment
336 2005-01-25 Joe Shaw <joeshaw@novell.com>
338 * Land the mono binding changes to conform to the new APIs.
340 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
341 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
343 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
344 type code as a string.
345 (InitAppending): Rename dbus_message_append_iter_init() to
346 dbus_message_iter_init_append().
348 * mono/BusDriver.cs: Rename ServiceEventHandler to
349 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
350 Rename ServiceOwnerChanged to NameOwnerChanged.
352 * mono/Connection.cs: Rename BaseService to UniqueName, and the
355 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
357 * mono/Service.cs: Rename Exists to HasOwner, internally rename
358 dbus_bus_acquire_service() to dbus_bus_request_name().
360 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
361 of Type.UnderlyingSystemType to get the correct element type for
363 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
364 dbus_message_get_{element|arg}_type() instead of
365 dbus_message_iter_init_array_iterator().
366 (Append): Replace dbus_message_iter_append_array() with
367 dbus_message_iter_open_container() and
368 dbus_message_iter_close_container().
370 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
371 types have been removed.
373 * mono/DBusType/*.cs: Replace calls of
374 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
375 but specify the type in the DllImport extern declaration. Ditto
376 for dbus_message_iter_append_[type]() ->
377 dbus_message_iter_append_basic().
379 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
380 NameOwnerChangedHandler.
382 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
384 * python/dbus_bindings.pyx.in: Rename of methods and bindings
385 - get_base_service -> get_unique_name
386 - bus_get_base_service -> bus_get_unique_name
387 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
388 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
389 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
390 - bus_activate_service -> bus_start_service_by_name
391 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
392 - bus_acquire_service -> bus_request_name
393 - dbus_bus_acquire_service -> dbus_bus_request_name
394 - bus_service_exists -> bus_name_has_owner
395 - dbus_bus_service_exists -> dbus_bus_name_has_owner
397 * python/dbus.py: Rename of methods
398 - activate_service -> start_service_by_name
399 - bus_acquire_service -> bus_request_name
400 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
401 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
404 2005-01-24 Joe Shaw <joeshaw@novell.com>
406 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
407 signature for the method that can't be found.
409 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
410 the message has any arguments, we need to call
411 _dbus_type_reader_get_current_type(), not
412 _dbus_type_reader_has_next().
414 2005-01-24 Havoc Pennington <hp@redhat.com>
416 * dbus/dbus-message-factory.c: more testing of message validation
418 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
421 2005-01-23 Havoc Pennington <hp@redhat.com>
423 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
424 get this all working, not many tests in the framework yet though
426 2005-01-22 Havoc Pennington <hp@redhat.com>
428 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
429 tutorial, based on work from David Wheeler.
431 2005-01-21 Havoc Pennington <hp@redhat.com>
433 * dbus/dbus-bus.c: add more return_if_fail checks
435 * dbus/dbus-message.c (load_message): have the "no validation"
436 mode (have to edit the code to toggle the mode for now though)
438 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
439 skips all validation; I want to use this at least for benchmark
440 baseline, I'm not sure if it should be a publicly-available switch.
442 2005-01-21 Havoc Pennington <hp@redhat.com>
444 * glib/dbus-gmain.c: don't put the GLib bindings in the same
445 toplevel doxygen group as the low-level API stuff
447 * dbus/dbus.h: note that libdbus is the low-level API
449 2005-01-20 Havoc Pennington <hp@redhat.com>
451 * update-dbus-docs.sh: script to update docs on the web site, only
452 works for me though. neener.
454 2005-01-20 Havoc Pennington <hp@redhat.com>
456 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
457 code can reveal bugs in it
459 2005-01-20 Havoc Pennington <hp@redhat.com>
461 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
462 select() version, patches from Tor Lillqvist
464 2005-01-20 Havoc Pennington <hp@redhat.com>
466 * doc/dbus-tutorial.xml: replace > with >
468 * bus/services.c (bus_registry_acquire_service): validate the name
469 and return a better error if it's no good.
471 * doc/dbus-specification.xml: note NO_AUTO_START change
473 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
474 from AUTO_START, we're toggling the default
476 * bus/dispatch.c: adapt the tests to change of auto-start default
478 2005-01-18 Havoc Pennington <hp@redhat.com>
480 * rename dbus-daemon-1 to dbus-daemon throughout
482 2005-01-18 Havoc Pennington <hp@redhat.com>
484 * Throughout, grand renaming to strip out the use of "service",
485 just say "name" instead (or "bus name" when ambiguous). Did not
486 change the internal code of the message bus itself, only the
487 programmer-facing API and messages.
489 * doc/dbus-specification.xml: further update the message bus section
491 * bus/config-parser.c (all_are_equiv): fix bug using freed string
494 2005-01-17 Havoc Pennington <hp@redhat.com>
496 * dbus/dbus-types.h: remove 16-bit types since we don't use them
499 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
500 "invalid name character" not only non-ASCII
502 * doc/dbus-specification.xml: further update spec, message bus
503 parts are still out-of-date but the marshaling etc. stuff is now
506 2005-01-17 Havoc Pennington <hp@redhat.com>
508 * doc/dbus-specification.xml: partially update spec
510 2005-01-17 Havoc Pennington <hp@redhat.com>
512 * Throughout, align variant bodies according to the contained
513 type, rather than always to 8. Should save a fair bit of space in
516 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
517 fix handling of case where p == end
519 * doc/TODO: remove the dbus_bool_t item and variant alignment items
521 2005-01-17 Havoc Pennington <hp@redhat.com>
523 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
525 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
526 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
527 are marshaling/unmarshaling a boolean.
529 2005-01-16 Havoc Pennington <hp@redhat.com>
531 This is about it on what can be disabled/deleted from libdbus
532 easily, back below 150K anyhow. Deeper cuts are more work than
533 just turning the code off as I've done here.
535 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
536 signed int convenience funcs
538 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
541 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
542 things out of libdbus
544 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
546 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
547 tests-enabled-only, though it should probably be deleted)
549 * dbus/dbus-message-util.c: same stuff
551 * dbus/dbus-auth-util.c: same stuff
553 2005-01-16 Havoc Pennington <hp@redhat.com>
555 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
557 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
558 way for stripping down dbus-userdb.c stuff included in libdbus.
559 Rename _dbus_parse_uid for consistency.
561 2005-01-16 Havoc Pennington <hp@redhat.com>
563 * dbus/dbus-internals.c (_dbus_real_assert): print the function
564 name the assertion failed in
566 * dbus/dbus-internals.h (_dbus_return_if_fail)
567 (_dbus_return_val_if_fail): assert that the name of the function
568 containing the check doesn't start with '_', since we only want to
569 use checks on public functions
571 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
574 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
575 change checks to asserts for private function
577 * dbus/dbus-message.c (_dbus_message_set_serial): checks
578 to asserts for private function
580 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
581 broken assertion that was breaking make check
582 (_dbus_type_reader_array_is_empty): remove this rather than fix
583 it, was only used in assertions
585 2005-01-16 Havoc Pennington <hp@redhat.com>
587 * test/unused-code-gc.py: hacky script to find code that's used
588 only by the bus (not libdbus) or used only by tests or not used at
589 all. It has some false alarms, but looks like we can clean up a
590 lot of size from libdbus.
592 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
593 dbus/Makefile.am: initially move 10K of binary size out of libdbus
595 2005-01-16 Havoc Pennington <hp@redhat.com>
597 * Add and fix docs according to Doxygen warnings throughout
600 * dbus/dbus-marshal-recursive.c
601 (_dbus_type_reader_array_is_empty): change this to just call
602 array_reader_get_array_len() and make it static
604 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
606 (dbus_message_iter_init_append): rename from append_iter_init
608 * dbus/dbus-marshal-recursive.c
609 (_dbus_type_reader_get_element_type): rename from
610 _dbus_type_reader_get_array_type
612 2005-01-15 Havoc Pennington <hp@redhat.com>
614 * test/glib/test-profile.c (with_bus_server_filter): fix crash
616 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
617 when DBUS_DISABLE_ASSERT
618 (_dbus_marshal_set_basic): be sure we align for the string length
620 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
623 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
625 (_dbus_string_set_byte): provide inline macro version
627 2005-01-15 Havoc Pennington <hp@redhat.com>
629 * Land the new message args API and type system.
631 This patch is huge, but the public API change is not
632 really large. The set of D-BUS types has changed somewhat,
633 and the arg "getters" are more geared toward language bindings;
634 they don't make a copy, etc.
636 There are also some known issues. See these emails for details
638 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
639 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
641 * dbus/dbus-marshal-*: all the new stuff
643 * dbus/dbus-message.c: basically rewritten
645 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
646 freed blocks to be all non-nul bytes so using freed memory is less
649 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
650 DBUS_FAIL_MALLOC=N environment variable, so you can do
651 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
652 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
655 * qt/message.cpp: port to the new message args API
656 (operator<<): use str.utf8() rather than str.unicode()
657 (pretty sure this is right from the Qt docs?)
659 * glib/dbus-gvalue.c: port to the new message args API
661 * bus/dispatch.c, bus/driver.c: port to the new message args API
663 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
664 "locked" flag to TRUE and align_offset to 0; I guess we never
665 looked at these anyhow, but seems cleaner.
667 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
668 move allocation padding macro to this header; use it to implement
669 (_DBUS_STRING_STATIC): ability to declare a static string.
671 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
672 change to return TRUE if the interface is not set.
674 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
675 to dbus-marshal-validate.[hc]
677 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
680 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
681 to dbus-marshal-*.[hc]
683 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
684 function here from dbus-marshal.c
686 2005-01-12 Joe Shaw <joeshaw@novell.com>
688 * NEWS: Update for 0.23.
690 * configure.in: Release 0.23.
692 2005-01-12 Joe Shaw <joeshaw@novell.com>
694 * mono/Makefile.am, mono/example/Makefile.am: Always build the
695 dbus DLL with --debug. Clean up after the .mdb files this leaves
698 * mono/doc/Makefile.am: Need to uninstall the docs on "make
701 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
702 is an enum, get the enum's underlying type. Another mono
705 2005-01-11 Joe Shaw <joeshaw@novell.com>
707 Patch from Sjoerd Simons <sjoerd@luon.net>
709 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
710 DESTDIR. It breaks stuff.
712 2005-01-11 Joe Shaw <joeshaw@novell.com>
714 Patch from Tambet Ingo <tambet@ximian.com>
716 * mono/DBusType/Array.cs (Get): Get the underlying element type by
717 calling type.GetElementType(). The code previously depended on
718 broken Mono behavior, which was fixed in Mono 1.1.3.
720 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
721 Activator.CreateInstance() so that the class's constructor is
722 called with the right parameters.
724 2005-01-11 Joe Shaw <joeshaw@novell.com>
726 Patch from Timo Teräs <ext-timo.teras@nokia.com>
728 * dbus/dbus-connection.c
729 (_dbus_connection_queue_received_message_link): Call
730 _dbus_connection_remove_timeout() instead of the _locked()
731 variant, since it's always called from
732 _dbus_connection_handle_watch(), which handles the locking.
733 Removed the _locked() variant since it's no longer used.
735 2005-01-03 Havoc Pennington <hp@redhat.com>
737 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
740 2004-12-26 Havoc Pennington <hp@redhat.com>
742 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
744 2005-01-03 Havoc Pennington <hp@redhat.com>
746 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
749 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
751 2005-01-02 Havoc Pennington <hp@redhat.com>
753 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
755 2005-01-01 Havoc Pennington <hp@redhat.com>
757 * configure.in: add -Wfloat-equal
759 2005-01-01 Havoc Pennington <hp@redhat.com>
761 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
762 for a variety of reasons '==' doesn't do this.
764 2004-12-31 Havoc Pennington <hp@redhat.com>
766 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
769 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
771 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
773 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
775 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
776 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
777 dbus-protocol.h. Because they are defines and not enums they are not
780 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
782 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
783 dbus_bus_activate_service
785 * python/dbus.py (Bus.activate_service): activate a service on the
788 2004-12-24 Havoc Pennington <hp@redhat.com>
790 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
791 file format has also changed and I haven't adapted to that yet
793 * Makefile.am: load .gcno files from latest gcc
795 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
796 * Patch from Rob Taylor <robtaylor@fastmail.fm>
798 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
801 * python/dbus.py (get_unix_user): Added binding to
802 call dbus_bindings.bus_get_unix_user
804 * python/extract.py: Modified the proto_pat regex to
807 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
809 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
810 better POSIX compliance.
812 2004-12-19 Havoc Pennington <hp@redhat.com>
814 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
815 (_dbus_string_insert_8_aligned): new functions
817 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
819 2004-12-18 Havoc Pennington <hp@redhat.com>
821 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
824 * dbus/dbus-message.c: fix a comment, and add a still-unused
825 not-implemented function
827 * dbus/dbus-marshal.h: fix comment
829 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
831 2004-12-17 Joe Shaw <joeshaw@novell.com>
833 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
834 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
835 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
836 Type.UnderlyingSystemType to get the actual system type
837 underneath. This code previously depended on the broken Mono
838 behavior, which was fixed in 1.1.3.
840 2004-11-27 Havoc Pennington <hp@redhat.com>
842 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
844 (_dbus_string_get_const_data): inline when asserts are disabled
846 * dbus/dbus-message.c: record the _dbus_current_generation of
847 creation so we can complain if dbus_shutdown() is used improperly.
848 Do this only if checks are enabled.
850 * dbus/dbus-connection.c: ditto
852 2004-11-26 Havoc Pennington <hp@redhat.com>
854 * test/glib/test-profile.c: add with_bus mode to profile echoes
855 that go through the bus.
857 * test/glib/run-test.sh: add ability to run test-profile
859 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
862 2004-11-26 Havoc Pennington <hp@redhat.com>
864 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
865 thing was implemented
867 2004-11-26 Havoc Pennington <hp@redhat.com>
869 * test/glib/test-profile.c: tweak a bit, add support for some
870 made-up minimal malloc overhead with plain sockets, since in
871 real life some sort of buffers are unavoidable thus we could
872 count them in the theoretical best case
874 2004-11-26 Havoc Pennington <hp@redhat.com>
876 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
877 where I was trying to cache one too many messages
879 2004-11-26 Havoc Pennington <hp@redhat.com>
881 * dbus/dbus-message.c: reimplement message cache as an array which
882 makes the cache about twice as fast and saves maybe 1.5% overall
884 2004-11-26 Havoc Pennington <hp@redhat.com>
886 * dbus/dbus-threads.c (init_global_locks): forgot to put the
887 message cache lock here
889 2004-11-26 Havoc Pennington <hp@redhat.com>
891 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
892 the "char byte_order" next to each other to save 4 bytes
893 (dbus_message_new_empty_header): reduce preallocation, since the
894 message cache should achieve a similar effect
895 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
896 message cache that keeps a few DBusMessage around in a pool,
897 another 8% speedup or so.
899 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
901 2004-11-25 Havoc Pennington <hp@redhat.com>
903 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
904 to write, without reading or blocking, try it before the poll()
905 and skip the poll() if nothing remains to write. This is about a
906 3% speedup in the echo client/server
908 2004-11-25 Havoc Pennington <hp@redhat.com>
910 The primary change here is to always write() once before adding
911 the write watch, which gives us about a 10% performance increase.
913 * dbus/dbus-transport-unix.c: a number of modifications to cope
914 with removing messages_pending
915 (check_write_watch): properly handle
916 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
917 messages_pending stuff
918 (check_read_watch): properly handle WAITING_FOR_MEMORY and
920 (unix_handle_watch): after writing, see if the write watch can be
922 (unix_do_iteration): assert that write_watch/read_watch are
923 non-NULL rather than testing that they aren't, since they
924 aren't allowed to be NULL. check_write_watch() at the end so
925 we add the watch if we did not finish writing (e.g. got EAGAIN)
927 * dbus/dbus-transport-protected.h: remove messages_pending call,
928 since it resulted in too much inefficient watch adding/removing;
929 instead we now require that the transport user does an iteration
930 after queueing outgoing messages, and after trying the first
931 write() we add a write watch if we got EAGAIN or exceeded our
932 max bytes to write per iteration setting
934 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
937 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
938 freed and then accessed, valgrind flagged this bug, fix it
940 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
941 as the last valid field plus 1, where really it is equal to the
942 last valid field. Corrects some message corruption issues.
944 * dbus/dbus-mainloop.c: verbosity changes
946 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
947 instead of aborting in one of the test codepaths
949 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
950 caused not printing the pid ever again if a verbose was missing
951 the newline at the end
952 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
954 * dbus/dbus-connection.c: verbosity changes;
955 (dbus_connection_has_messages_to_send): new function
956 (_dbus_connection_message_sent): no longer call transport->messages_pending
957 (_dbus_connection_send_preallocated_unlocked): do one iteration to
958 try to write() immediately, so we can avoid the write watch. This
959 is the core purpose of this patchset
960 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
961 dump the outgoing message queue, so nobody will get confused
962 trying to send them or thinking stuff is pending to be sent
964 * bus/test.c: verbosity changes
966 * bus/driver.c: verbosity/assertion changes
968 * bus/dispatch.c: a bunch of little tweaks to get it working again
969 because this patchset changes when/where you need to block.
971 2004-11-23 Havoc Pennington <hp@redhat.com>
973 * test/glib/test-profile.c: modify to accept a plain_sockets
974 argument in which case it will bench plain sockets instead of
975 libdbus, for comparison purposes.
977 2004-11-22 Havoc Pennington <hp@redhat.com>
979 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
980 threads for more time, so sysprof can get a grip on it.
982 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
985 2004-11-13 Havoc Pennington <hp@redhat.com>
987 * test/glib/test-profile.c: fix this thing up a bit
989 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
990 preallocation sizes by a fair bit; not sure if this will be an
991 overall performance win or not, but it does reduce reallocs.
993 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
994 the test hack that forced constant realloc if asserts are
995 disabled, so we can profile sanely. Sprinkle in some
996 _DBUS_UNLIKELY() which are probably pointless, but before I
997 noticed the real performance problem I put them in.
998 (_dbus_string_validate_utf8): micro-optimize this thing a little
999 bit, though callgrind says it didn't help; then special-case
1000 ascii, which did help a lot; then be sure we detect nul bytes as
1001 invalid, which is a bugfix.
1002 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
1003 superstition; use memset to nul the padding instead of a manual
1005 (_dbus_string_get_length): inline this as a
1006 macro; it showed up in the profile because it's used for loop
1009 2004-11-10 Colin Walters <walters@verbum.org>
1011 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
1014 2004-11-09 Colin Walters <walters@verbum.org>
1016 * dbus/dbus-string.c (_dbus_string_get_length): New
1017 function, writes DBusString to C buffer.
1019 * dbus/dbus-string.h: Prototype it.
1021 * dbus/dbus-message.c (dbus_message_type_to_string): New
1022 function, converts message type into C string.
1024 * dbus/dbus-message.h: Prototype it.
1026 * bus/selinux.c (bus_selinux_check): Take source pid,
1027 target pid, and audit data. Pass audit data to
1029 (log_audit_callback): New function, appends extra
1031 (bus_selinux_allows_acquire_service): Also take
1032 service name, add it to audit data.
1033 (bus_selinux_allows_send): Also take message
1034 type, interface, method member, error name,
1035 and destination, and add them to audit data.
1036 (log_cb): Initialize func_audit.
1038 * bus/selinux.h (bus_selinux_allows_acquire_service)
1039 (bus_selinux_allows_send): Update prototypes
1041 * bus/services.c (bus_registry_acquire_service): Pass
1042 service name to bus_selinux_allows_acquire_service.
1044 * bus/bus.c (bus_context_check_security_policy): Pass
1045 additional audit data. Move assignment of dest
1048 2004-11-07 Colin Walters <walters@verbum.org>
1050 * dbus/dbus-transport-unix.c (do_authentication): Always
1051 initialize auth_completed.
1053 2004-11-07 Colin Walters <walters@verbum.org>
1055 * bus/bus.c (load_config): Break into three
1056 separate functions: process_config_first_time_only,
1057 process_config_every_time, and process_config_postinit.
1058 (process_config_every_time): Move call of
1059 bus_registry_set_service_context_table into
1060 process_config_postinit.
1061 (process_config_postinit): New function, does
1062 any processing that needs to happen late
1063 in initialization (and also on reload).
1064 (bus_context_new): Instead of calling load_config,
1065 open config parser here and call process_config_first_time_only
1066 and process_config_every_time directly. Later, after
1067 we have forked but before changing UID,
1068 invoke bus_selinux_full_init, and then call
1069 process_config_postinit.
1070 (bus_context_reload_config): As in bus_context_new,
1071 load parse file inside here, and call process_config_every_time
1072 and process_config_postinit.
1074 * bus/services.h, bus/services.c
1075 (bus_registry_set_service_context_table): Rename
1076 from bus_registry_set_sid_table. Take string hash from config
1077 parser, and convert them here into SIDs.
1079 * bus/config-parser.c (struct BusConfigParser): Have
1080 config parser only store a mapping of service->context
1082 (merge_service_context_hash): New function.
1083 (merge_included): Merge context string hashes instead
1084 of using bus_selinux_id_table_union.
1085 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
1086 simply create a new string hash.
1087 (bus_config_parser_unref): Unref it.
1088 (start_selinux_child): Simply insert strings into hash,
1089 don't call bus_selinux_id_table_copy_over.
1091 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
1092 (bus_selinux_id_table_copy_over): Delete.
1094 2004-11-03 Colin Walters <walters@verbum.org>
1096 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
1099 2004-11-03 Colin Walters <walters@verbum.org>
1101 * bus/test-main.c (test_pre_hook): Fix test logic,
1102 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
1104 2004-11-02 Colin Walters <walters@redhat.com>
1106 * bus/selinux.c (bus_selinux_init): Split into two functions,
1107 bus_selinux_pre_init and bus_selinux_post_init.
1108 (bus_selinux_pre_init): Just determine whether SELinux is
1110 (bus_selinux_post_init): Do everything else.
1112 * bus/main.c (main): Call bus_selinux_pre_init before parsing
1113 config file, and bus_selinux_post_init after. This ensures that
1114 we don't lose the policyreload notification thread that
1115 bus_selinux_init created before forking previously.
1117 * bus/test-main.c (test_pre_hook): Update for split.
1119 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
1121 Patch from Johan Fischer <linux@fischaz.com>
1123 * mono/doc/Makefile.am (install-data-local): Added directory
1126 2004-10-29 Colin Walters <walters@redhat.com>
1128 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
1129 parameter for fd to write pid to.
1131 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
1133 * bus/bus.c (bus_context_new): Pass print_pid_fd
1134 to _dbus_become_daemon (bug #1720)
1136 2004-10-29 Colin Walters <walters@redhat.com>
1138 Patch from Ed Catmur <ed@catmur.co.uk>
1140 * mono/doc/Makefile.am (install-data-local): Handle
1143 2004-10-29 Colin Walters <walters@redhat.com>
1145 * bus/.cvsignore, qt/.cvsignore: Update.
1147 2004-10-29 Colin Walters <walters@redhat.com>
1149 Patch from Kristof Vansant <de_lupus@pandora.be>
1151 * configure.in: Detect Slackware.
1152 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
1153 * bus/rc.messagebus.in: New file.
1155 2004-10-29 Colin Walters <walters@redhat.com>
1157 * tools/dbus-monitor.c (filter_func): Return
1158 DBUS_HANDLER_RESULT_HANDLED in filter function
1160 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
1162 2004-10-29 Colin Walters <walters@redhat.com>
1164 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
1166 * bus/services.c (bus_registry_acquire_service):
1167 Correctly retrieve service name from DBusString
1170 2004-10-29 Colin Walters <walters@redhat.com>
1172 * dbus/dbus-glib.h: Update documentation to not
1173 refer to internal APIs.
1175 2004-10-27 Joe Shaw <joeshaw@novell.com>
1177 * mono/Arguments.cs (GetDBusTypeConstructor):
1178 type.UnderlyingSystemType will return "System.Byte" if you do it
1179 on "byte[]", which is not what we want. So check the type.IsArray
1180 property and use System.Array instead.
1182 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
1184 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
1185 the DBusUserInfo structure since this is passed into the function.
1186 This would cause a double free when the function that allocated
1187 the structure would try to free it when an error occured.
1189 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
1190 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
1191 for service activation to avoid 32bit/64bit parallel install issues
1193 2004-10-21 Colin Walters <walters@verbum.org>
1195 * AUTHORS: Fix my email address, the @gnu.org one
1196 has been bouncing for some time. Also add J5.
1198 2004-10-21 Colin Walters <walters@verbum.org>
1200 * dbus/dbus-transport-unix.c (do_authentication): Return
1201 authentication status to callers.
1202 (unix_handle_watch): If we completed authentication this round,
1203 don't do another read. Instead wait until the next iteration,
1204 after we've read any pending data in the auth buffer.
1205 (unix_do_iteration): Ditto.
1206 (unix_handle_watch): Updated for new do_authentication prototype.
1208 2004-10-18 Colin Walters <walters@verbum.org>
1210 * bus/selinux.c (bus_selinux_enabled): Handle
1211 --disable-selinux case.
1213 2004-10-18 Colin Walters <walters@verbum.org>
1215 * bus/selinux.h: Add bus_selinux_enabled.
1217 * bus/selinux.c (bus_selinux_enabled): Implement it.
1219 * bus/config-parser.c (struct include): Add
1220 if_selinux_enabled member.
1221 (start_busconfig_child): Parse if_selinux_enabled
1222 attribute for include.
1223 (bus_config_parser_content): Handle it.
1225 * bus/session.conf.in, bus/system.conf.in: Add
1226 inclusion of context mapping to default config files;
1227 conditional on SELinux being enabled.
1229 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
1231 * test/data/invalid-config-files/badselinux-1.conf,
1232 test/data/invalid-config-files/badselinux-2.conf:
1233 Test files for bad syntax.
1235 2004-10-17 Colin Walters <walters@verbum.org>
1237 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
1238 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
1239 format specifier mismatches.
1241 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
1243 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
1246 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
1247 pointer (bug #1540, Leonardo Boiko).
1249 2004-09-28 Jon Trowbridge <trow@ximian.com>
1251 * mono/BusDriver.cs: Changed BusDriver struct to remove
1252 the ServiceCreated and ServiceDeleted events and replace them
1253 with the new ServiceOwnerChanged event.
1255 * mono/example/BusListener.cs: Added a new example program,
1256 which listens for and reports any ServiceOwnerChanged events
1259 * mono/example/Makefile.am (DESTDIR): Build changes for the
1260 new BusListener.cs example.
1262 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
1264 * bus/signals.c (bus_match_rule_parse): validate the components of
1265 match rules (bug #1439).
1267 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
1269 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
1271 * doc/dbus-specification.xml: document ServiceOwnerChanged
1274 * bus/driver.c, bus/driver.h, bus/services.c: Use
1275 ServiceOwnerChanged signal instead of ServiceCreated and
1278 * bus/dispatch.c: update testcase for the new signal.
1280 2004-09-20 Jon Trowbridge <trow@ximian.com>
1282 Patch from Nat Friedman <nat@novell.com>
1284 * mono/Makefile.am: A number of small build fixes to allow "make
1285 distcheck" to succeed.
1287 * mono/example/Makefile.am: "make distcheck" fixes.
1289 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
1292 * test/Makefile.am: "make distcheck" fixes.
1294 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1296 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
1298 * doc/busconfig.dtd: update the DTD for the at_console attribute.
1300 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
1301 messages after the first one (bug #1389).
1303 * bus/dispatch.c (check_double_hello_message): add a test case for
1304 the double hello message bug.
1305 (check_existent_service_activation): fix check of spawning error.
1307 2004-09-16 David Zeuthen <david@fubar.dk>
1309 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
1311 2004-09-12 David Zeuthen <david@fubar.dk>
1313 Patch from Kay Sievers <kay.sievers@vrfy.org>
1315 * bus/bus.c (bus_context_new):
1317 * bus/main.c (usage)
1319 Add commandline option --nofork to override configuration file
1322 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1324 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
1325 compilers don't like it (bug #974).
1327 2004-09-04 Harald Fernengel <harry@kdevelop.org>
1329 * qt/connection.*: Applied patch by Jérôme Lodewyck
1330 <lodewyck@clipper.ens.fr> to integrate an existing
1331 connection into the Qt eventloop
1333 2004-08-30 Jon Trowbridge <trow@ximian.com>
1335 * mono/BusDriver.cs: Added. This is a class for interacting with
1336 the org.freedesktop.DBus service.
1338 * mono/Message.cs: Added a mechanism to expose the message that is
1339 currently being dispatched via the static Message.Current
1340 property. Added Message.Sender and Message.Destination
1343 * mono/Handler.cs: Expose the dispatched message via
1344 Message.Current when handling method calls.
1346 * mono/Service.cs: Expose the dispatched message via
1347 Message.Current when handling signal emissions.
1349 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
1350 Connection.BaseService property.
1352 2004-08-28 Havoc Pennington <hp@redhat.com>
1354 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
1356 More fixes from Steve Grubb
1358 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
1359 (_dbus_listen_tcp_socket): fix fd leak
1361 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
1362 EINTR to a bit lower in the code
1364 2004-08-26 Jon Trowbridge <trow@ximian.com>
1366 * bus/driver.c (bus_driver_handle_service_exists): Respond with
1367 TRUE if we are inquiring about the existence of the built-in
1368 org.freedesktop.DBus service.
1370 2004-08-25 John Palmieri <johnp@redhat.com>
1371 * bus/config-parser.c:
1372 (struct PolicyType): Add POLICY_CONSOLE
1373 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
1374 (start_busconfig_child): Sets up console element when
1375 <policy at_console=""> is encountered in a policy file
1376 (append_rule_from_element): Convert console elements to console
1380 (bus_policy_create_client_policy): Add console rules to the client
1381 policy based on if the client is at the console
1382 (bus_policy_append_console_rule): New function for adding a
1383 console rule to a policy
1384 (bus_policy_merge): Handle console rule merging
1386 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
1387 where we check for console user files
1389 * dbus/dbus-sysdeps.c:
1390 (_dbus_file_exists): New function which checks if the given
1392 (_dbus_user_at_console): New function which does the system
1393 specific process of checking if the user is at the console
1395 * dbus/dbus-userdb.c:
1396 (_dbus_is_console_user): New function converts a UID to user name
1397 and then calls the system specific _dbus_user_at_console to
1398 see if the user is at the console and therefor a console user
1400 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
1402 * bus/config-parser.c (set_limit):
1403 * bus/dbus-daemon-1.1.in:
1404 * test/data/valid-config-files/many-rules.conf: set the
1405 max_match_rules_per_connection limt from the config file.
1407 * doc/busconfig.dtd: update the DTD.
1409 * bus/driver.c: remove some unused variables.
1411 2004-08-24 Mikael Hallendal <micke@imendio.com>
1413 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
1414 it's been replaced by dbus_g_bus_get
1416 2004-08-23 Colin Walters <walters@redhat.com>
1418 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1420 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
1422 * bus/selinux.c: Create a thread for policy reload notification.
1423 (bus_selinux_get_policy_root): Implement.
1425 * bus/config-parser.c (start_busconfig_child)
1426 (bus_config_parser_content): Support SELinux-root relative
1429 * configure.in <HAVE_SELINUX>: Add -lpthread.
1431 * bus/test-main.c (test_pre_hook, test_post_hook): New.
1432 (test_post_hook): Move memory checking into here.
1433 (test_pre_hook, test_post_hook): Move SELinux checks in
1434 here, but conditional on a DBUS_TEST_SELINUX environment
1435 variable. Unfortunately we can't run the SELinux checks
1436 as a normal user, since they won't have any permissions
1437 for /selinux. So this will have to be tested manually
1438 for now, until we have virtualization for most of
1441 2004-08-23 Havoc Pennington <hp@redhat.com>
1443 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
1444 drop supplementary groups, suggested by Steve Grubb
1446 2004-08-20 Colin Walters <walters@redhat.com>
1448 * bus/config-parser.c (start_busconfig_child): Remove some unused
1451 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
1454 2004-08-17 Joe Shaw <joeshaw@novell.com>
1456 * configure.in: If --enable-mono is passed in, if we can't find
1459 * mono/Makefile.am: Use /gacutil to install assemblies into the
1462 2004-08-12 Havoc Pennington <hp@redhat.com>
1464 * NEWS: update for 0.22
1466 * configure.in: release 0.22
1468 2004-08-11 Colin Walters <walters@redhat.com>
1470 * tools/dbus-send.c (main, usage): Add --reply-timeout
1473 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
1475 * bus/bus.c (process_config_first_time_only): get rid of an unused
1476 DBusError that was causing a memoy leak (bug #989).
1478 * dbus/dbus-keyring.c, dbus/dbus-message.c:
1479 fix compilation on Solaris/Forte C (bug #974)
1481 * bus/main.c (main): plug two minuscule memleaks.
1483 2004-08-10 Havoc Pennington <hp@redhat.com>
1485 * doc/dbus-tutorial.xml: add some more info on GLib bindings
1487 2004-08-09 Havoc Pennington <hp@redhat.com>
1489 * COPYING: switch to Academic Free License version 2.1 instead of
1490 2.0, to resolve complaints about patent termination clause.
1492 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
1494 * README: added documentation for the --enable-python
1497 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1499 * bus/config-parser.c (bus_config_parser_new): fix an invalid
1500 _unref in the SELinux support.
1502 * doc/busconfig.dtd: update DTD for SELinux support.
1504 * bus/config-loader-libxml.c: fix error handler and parser
1505 initialisation/cleanup. OOM test now works with libxml2 HEAD.
1507 * configure.in: remove the warning about libxml2.
1509 * dbus/dbus-bus.c: silence doxygen warning.
1511 2004-07-31 Colin Walters <walters@redhat.com>
1513 * configure.in: Move #error in SELinux check to its own line.
1515 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1517 * dbus/dbus-internals.h (_DBUS_SET_OOM):
1518 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
1521 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
1522 broken by the change in the _SET_OOM macros.
1524 2004-07-31 Colin Walters <walters@redhat.com>
1526 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
1529 2004-07-31 Colin Walters <walters@redhat.com>
1531 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
1532 to correctly detect DBUS__ACQUIRE_SVC. Also add an
1535 2004-07-24 Havoc Pennington <hp@redhat.com>
1537 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1539 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
1542 * configure.in: add --enable-selinux
1544 * bus/policy.c (bus_policy_merge): add FIXME to a comment
1546 * bus/main.c (main): initialize and shut down selinux
1548 * bus/connection.c: store SELinux ID on each connection, to avoid
1549 repeated getting of the string context and converting it into
1552 * bus/bus.c (bus_context_get_policy): new accessor, though it
1554 (bus_context_check_security_policy): check whether the security
1555 context of sender connection can send to the security context of
1556 recipient connection
1558 * bus/config-parser.c: add parsing for <selinux> and <associate>
1560 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
1561 implement dbus_connection_get_unix_fd()
1563 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
1564 function, used by the selinux stuff
1566 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
1568 * bus/config-loader-libxml.c: complete the implementation of
1569 libxml backend for config file loader. Doesn't work with full OOM
1572 * configure.in: change error when selecting libxml into a warning.
1574 * test/data/invalid-config-files: add two non-well-formed XML
1577 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
1579 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
1580 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
1581 be necessary to read all the buffer. (bug #894)
1583 * bus/activation.c (bus_activation_activate_service): fix a
1584 potential assertion failure (bug #896). Small optimization in the
1585 case of auto-activation messages.
1587 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
1588 add test case for byte-through-vararg bug (#901). patch by Kimmo
1591 2004-07-28 Anders Carlsson <andersca@gnome.org>
1594 * python/dbus_bindings.pyx.in:
1595 Add dbus.init_gthreads (), allow emit_signal to pass
1596 arguments to the signal.
1598 2004-07-24 Havoc Pennington <hp@redhat.com>
1600 * AUTHORS: add some people, not really comprehensively, let me
1601 know if I missed you
1603 2004-07-24 Havoc Pennington <hp@redhat.com>
1605 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
1608 * test/Makefile.am (DIST_SUBDIRS): here also
1610 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1612 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
1613 breaking build on Solaris, reported by Farhad Saberi on the ML.
1615 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
1616 va_arg invocation to account for integer promotion in the case of
1617 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
1619 * bus/services.c (bus_service_remove_owner): fix bug #902, use
1620 _dbus_list_get_first_link, not _dbus_list_get_first.
1622 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
1624 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
1625 handler functions so that the asserts in _dbus_object_subtree_unref
1628 * dbus/dbus-transport-unix.c (do_reading):
1629 _dbus_transport_queue_messages return value is of type
1630 dbus_bool_t, not DBusDispatchStatus.
1632 2004-07-19 David Zeuthen <david@fubar.dk>
1634 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
1637 (check_get_connection_unix_user): Debug says GetProperty; but the
1638 method is called GetConnectionUnixUser
1639 (check_get_connection_unix_process_id): New function
1640 (bus_dispatch_test): Actually call check_get_connection_unix_user();
1641 also call check_get_connection_unix_process_id()
1644 (bus_driver_handle_get_connection_unix_process_id): New function,
1645 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
1649 (handle_server_data_external_mech): Set pid from the credentials
1650 obtained from the socket
1652 * dbus/dbus-connection.c:
1653 (dbus_connection_get_unix_process_id): New function
1655 * dbus/dbus-connection.h:
1656 Add prototype for dbus_connection_get_unix_process_id
1658 * dbus/dbus-transport.c:
1659 (_dbus_transport_get_unix_process_id): New function
1661 * dbus/dbus-transport.h:
1662 Add prototype for _dbus_transport_get_unix_process_id
1664 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
1666 * dbus/dbus-message.c: Message counter fix, patch by Christian
1667 Hammond <chipx86@gnupdate.org>
1669 2004-07-18 Seth Nickell <seth@gnome.org>
1672 * python/dbus_bindings.pyx.in:
1673 * python/tests/test-client.py:
1675 Add dbus.ByteArray and dbus_bindings.ByteArray
1676 types so that byte streams can be passed back.
1678 Give jdahlin the heaps of credit that are so
1681 2004-07-12 Seth Nickell <seth@gnome.org>
1685 Add message argument to the default object_method_handler
1688 * python/dbus_bindings.pyx.in:
1690 Automatically return NIL when passed an empty list
1691 (we can't pass back a list since lists are typed
1692 and we don't have any idea what type the the client
1693 intended the list to be... :-( )
1695 2004-07-10 Seth Nickell <seth@gnome.org>
1697 * python/examples/Makefile.am:
1699 Fix distcheck breakage caused by new examples.
1701 2004-07-10 Seth Nickell <seth@gnome.org>
1705 Add "message" argument to service-side dbus.Object
1706 methods. This will break existing services written
1707 using the python bindings, but will allow extraction
1708 of all the message information (e.g. who its from).
1710 Add improved "object oriented" signal handling/emission.
1712 * python/examples/example-service.py:
1716 * python/examples/example-signal-emitter.py:
1717 * python/examples/example-signal-recipient.py:
1719 Two new examples that show how to emit and receive
1720 signals using the new APIs.
1722 * python/examples/example-signals.py:
1723 * python/examples/gconf-proxy-service.py:
1724 * python/examples/gconf-proxy-service2.py:
1726 Add "message" argument to service methods.
1728 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
1730 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
1731 * dbus/bus.c (dbus_bus_get_unix_user)
1732 * doc/dbus-specification.xml: implement GetConnectionUnixUser
1733 method of org.freedesktop.DBus interface.
1735 * bus/dispatch.c: test case
1737 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
1739 * python/Makefile.am: switched include directory from glib/ to dbus/
1740 since dbus-glib.h moved
1742 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1744 * configure.in: prevent building the gcj stuff and libxml loader
1745 since they are broken.
1747 2004-06-20 Havoc Pennington <hp@redhat.com>
1749 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
1750 codes from the dbus error names
1752 * glib/dbus-glib.h: move to subdir dbus/ since it's included
1753 as dbus/dbus-glib.h and that breakage is now visible due to
1754 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1756 * glib/dbus-glib.h: s/gproxy/g_proxy/
1758 * dbus/dbus-shared.h: new header to hold stuff shared with
1761 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1764 * glib/dbus-glib.h (dbus_set_g_error): move to
1765 dbus-glib-lowlevel.h
1767 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1768 of stuff to enable this
1770 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1772 * a bunch of other changes with the same basic "separate glib
1773 bindings from dbus.h" theme
1775 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
1777 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1779 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1781 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1783 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1784 the reply value of the ServiceExists message.
1786 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
1788 * python/dbus_bindings.pyx.in: No longer need to parse path
1789 elements and pass them as arrays of strings. The C API now
1790 accepts plain path strings.
1791 (_build_parsed_path): removed
1793 2004-06-07 Havoc Pennington <hp@redhat.com>
1795 * doc/TODO: remove auto-activation item since it's done; sort
1796 items by importance/milestone
1798 2004-06-07 Havoc Pennington <hp@redhat.com>
1800 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1801 random signature when using REQUIRED_FIELDS (this hack won't work
1804 * dbus/dbus-message.c: change the signature to be a header field,
1805 instead of message->signature special-case string. Incremental
1806 step forward. Then we can fix up code to send the signature in the
1807 message, then fix up code to validate said signature, then fix up
1808 code to not put the typecodes inline, etc.
1809 (load_one_message): don't make up the signature after the fact
1810 (decode_header_data): require signature field for the known
1813 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1815 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1817 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
1819 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1821 * mono/Handler.cs: Updated to follow new path argument for
1822 (un-)registering objects.
1824 * mono/example/Makefile.am:
1826 * configure.in: Bumped required version for mono and use new -pkg
1829 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1831 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1832 registration functions take the path argument as char* instead of
1835 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1836 split off the path decompostion part of
1837 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1840 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1842 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1844 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1845 machine approach. A state is implemented as a function that
1846 handles incoming events as specified for that state.
1848 * doc/dbus-specification.xml: Update auth protocol state machine
1849 specification to match implementation. Remove some leftover
1852 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1854 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1855 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1858 * Doxyfile.in: remove deprecated options.
1860 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1861 glib/test-thread.h, glib/test-thread-client.c,
1862 glib/test-thread-server.c, glib/test-profile.c,
1863 glib/test-dbus-glib.c: remove these unused files.
1865 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
1867 * dbus/dbus-object-tree.c
1868 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1869 non-fallback handlers (bug #684).
1870 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1871 (find_subtree_recurse): report wether the returned subtree is an
1872 exact match or a "fallback" match higher up in the tree.
1873 (object_tree_test_iteration): update test case.
1875 2004-06-01 Seth Nickell <seth@gnome.org>
1877 * python/dbus_bindings.pyx.in:
1878 * python/tests/test-client.py:
1880 Round off basic type support. Add dicts (yay!), and
1881 remaining array types.
1883 Make MessageIter more general so it works for dicts too.
1885 Mark all loop variables as C integers.
1887 2004-05-31 Havoc Pennington <hp@redhat.com>
1889 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1892 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1894 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1895 option that runs the tests, and start filling in some code
1896 including for starters just dumping the interfaces to stdout
1898 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1900 * test/data/valid-introspection-files/lots-of-types.xml: test of
1901 an example introspection file
1903 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1906 2004-05-31 Seth Nickell <seth@gnome.org>
1908 * python/dbus_bindings.pyx.in:
1909 * python/tests/test-client.py:
1914 Fix string array memory trashing bug... oops...
1916 2004-05-30 Seth Nickell <seth@gnome.org>
1920 Add a nicer-but-less-flexible alternate API for handling
1921 calls to virtual objects in dbus.ObjectTree.
1923 Screw up the argument order to the dbus.Object constructor
1924 for consistency with dbus.ObjectTree (and to make dbus_methods
1925 optional for future extension)
1927 * python/examples/Makefile.am:
1928 * python/examples/gconf-proxy-service.py:
1929 * python/examples/gconf-proxy-service2.py:
1931 Alternate implementation of gconf-proxy-service using the
1932 nicer dbus.ObjectTree API.
1934 * python/examples/example-service.py:
1935 * python/tests/test-server.py
1937 Reverse the argument order to deal with dbus.Object constructor
1940 2004-05-30 Seth Nickell <seth@gnome.org>
1942 * python/examples/example-client.py:
1943 * python/examples/example-service.py:
1945 Take it back. Lists seem to work but they're broken
1946 in the test suite. Make the base examples use
1949 2004-05-30 Seth Nickell <seth@gnome.org>
1951 * python/dbus_bindings.pyx.in:
1952 * python/tests/test-client.py:
1954 Add some more tests and fix errors that crop up.
1955 Unfortunately, currently it seems like marshalling
1956 and unmarshalling of lists is completely broken :-(
1958 2004-05-30 Seth Nickell <seth@gnome.org>
1960 * python/dbus_bindings.pyx.in:
1962 Add support for ObjectPath type.
1966 Refactor message handling code to a common function.
1968 * python/tests/test-client.py:
1969 * python/tests/test-server.py:
1971 Add tests that check to make sure values of all types
1972 can be echoed from a service w/o mangling.
1974 2004-05-29 Seth Nickell <seth@gnome.org>
1978 Add ObjectTree class which allows implementation
1979 of trees of "virtual" objects. Basically the python
1980 wrapper for "register_fallback".
1982 * python/examples/Makefile.am
1983 * python/examples/gconf-proxy-client.py:
1984 * python/examples/gconf-proxy-service.py:
1986 Implement a simple GConf proxy service that supports
1987 get/set on string and int GConf keys using the ObjectTree.
1989 2004-05-29 Seth Nickell <seth@gnome.org>
1992 * python/examples/example-client.py:
1993 * python/examples/example-service.py:
1994 * python/examples/list-system-services.py:
1996 Add SessionBus, SystemBus and ActivationBus classes
1997 so you don't need to know the special little BUS_TYPE
2000 2004-05-29 Havoc Pennington <hp@redhat.com>
2002 * bus/config-parser.c (process_test_valid_subdir): temporarily
2003 stop testing config parser OOM handling, since expat has issues
2004 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
2006 * bus/dbus-daemon-1.1.in: change requested_reply to
2007 send_requested_reply/receive_requested_reply so we can send the
2008 replies, not just receive them.
2010 * bus/config-parser.c: parse the new
2011 send_requested_reply/receive_requested_reply
2013 * bus/policy.c (bus_client_policy_check_can_send): add
2014 requested_reply argument and use it
2016 * bus/bus.c (bus_context_check_security_policy): pass through
2017 requested_reply status to message send check
2019 * bus/system.conf.in: adapt to requested_reply change
2021 2004-05-28 Havoc Pennington <hp@redhat.com>
2023 * test/glib/test-service-glib.c (main): remove unused variable
2025 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
2027 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
2028 from the enum, no longer in use.
2030 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
2033 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
2034 whether error_name passed in is a valid error name.
2036 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
2038 * dbus/dbus-message.c (dbus_message_get_args): Added support for
2039 OBJECT_PATH and OBJECT_PATH_ARRAY
2041 2004-05-28 Seth Nickell <seth@gnome.org>
2043 * python/examples/Makefile.am:
2045 Forget to add Makefile.am. Do not pass go.
2047 2004-05-28 Michael Meeks <michael@ximian.com>
2049 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
2052 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
2054 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
2055 (_dbus_message_iter_get_basic_type_array): impl.
2056 drastically simplify ~all relevant _get methods to use these.
2057 (_dbus_message_iter_append_basic_array),
2058 (dbus_message_iter_append_basic): impl
2059 drastically simplify ~all relevant _append methods to use these.
2061 * dbus/dbus-message-builder.c (parse_basic_type)
2062 (parse_basic_array, lookup_basic_type): impl.
2063 (_dbus_message_data_load): prune scads of duplicate /
2066 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
2067 (_dbus_demarshal_basic_type): implement,
2068 (demarshal_and_validate_len/arg): beef up debug.
2069 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
2071 2004-05-27 Seth Nickell <seth@gnome.org>
2074 * python/Makefile.am:
2076 Include the example python apps in the tarball.
2078 * python/examples/list-system-services.py
2080 Add a python new example that fetches the list of services
2081 from the system bus.
2083 2004-05-27 Seth Nickell <seth@gnome.org>
2086 * python/dbus_bindings.pyx.in:
2088 Fix failure to notify that a signal was not handled,
2089 resulted in hung functions.
2091 2004-05-25 Colin Walters <walters@redhat.com>
2093 * tools/dbus-monitor.c (main): Monitor all types of messages.
2095 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
2097 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
2098 which unregisters the object path and disposes the handler.
2100 2004-05-23 Kristian Høgsberg <krh@redhat.com>
2102 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
2104 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
2105 operands to && so we call dbus_message_iter_next () for the last
2108 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2110 * dbus/dbus-object-tree.c
2111 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
2112 children even if the requested path isn't registered.
2113 (object_tree_test_iteration): test object_tree_list_registered.
2115 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
2118 2004-05-20 Kristian Høgsberg <krh@redhat.com>
2120 * doc/TODO: Remove resolved items.
2122 * bus/expirelist.h (struct BusExpireList): remove unused n_items
2125 * bus/connection.c (bus_connections_expect_reply): Enforce the
2126 per-connection limit on pending replies.
2128 Patch from Jon Trowbridge <trow@ximian.com>:
2130 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
2131 up a watch that triggers a config reload when one end of the pipe
2133 (signal_handler): Instead of doing the config reload in our SIGHUP
2134 handler, just write to the reload pipe and let the associated
2135 watch handle the reload when control returns to the main loop.
2137 * bus/driver.c (bus_driver_handle_reload_config): Added.
2138 Implements a ReloadConfig method for requesting a configuration
2139 file reload via the bus driver.
2141 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
2143 * HACKING: Updated release instructions concerning the wiki page.
2145 2004-05-18 Kristian Høgsberg <krh@redhat.com>
2147 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
2148 filter against auth->allowed_mechs; we only add allowed mechs in
2149 record_mechanisms().
2151 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
2152 ALLOWED_MECHS to auth-script format so we can set the list of
2155 * data/auth/client-out-of-mechanisms.auth-script: New test to
2156 check client disconnects when it is out of mechanisms to try.
2158 * dbus/dbus-auth.c (process_command): Remove check for lines
2159 longer that 1 MB; we only buffer up maximum 16 kB.
2161 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
2162 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
2163 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
2164 assume there might be unused bytes.
2166 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
2167 client-out-of-mechs, it is handled in process_reject(). Move check
2168 for max failures to send_rejected(), as it's a server-only thing.
2170 * dbus/dbus-auth.c: Factor out protocol reply code into functions
2171 send_auth(), send_data(), send_rejected(), send_error(),
2172 send_ok(), send_begin() and send_cancel().
2174 2004-05-17 Kristian Høgsberg <krh@redhat.com>
2176 Remove base64 encoding, replace with hex encoding. Original patch
2177 from trow@ximian.com, added error handling.
2179 * dbus/dbus-string.c (_dbus_string_base64_encode)
2180 (_dbus_string_base64_decode): Remove.
2181 (_dbus_string_hex_decode): Add end_return argument so we can
2182 distinguish between OOM and invalid hex encoding.
2183 (_dbus_string_test): Remove base64 tests and add test case for
2186 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
2187 Replace base64 with hex.
2189 * test/data/auth/invalid-hex-encoding.auth-script: New test case
2190 for invalid hex encoded data in auth protocol.
2192 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
2194 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
2197 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
2199 * mono/dbus-sharp.dll.config.in: Added for GAC
2200 * mono/dbus-sharp.snk: Added for GAC
2201 * mono/Assembly.cs.in: Added for GAC
2202 * mono/Makefile.am: Changes for GAC installation
2203 * configure.in: Added refs for dbus-sharp.dll.config.in and
2204 Assembly.cs.in. More fixes for mono testing
2205 * mono/example/Makefile.am: Changed var to CSC
2206 * Makefile.am: Changed flag name to DBUS_USE_CSC
2208 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
2210 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
2211 * mono/doc/*: Added documentation framework
2212 * configure.in: Added monodoc check
2213 * README: Added description of mono configure flags
2215 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
2217 * doc/dbus-specification.xml: Added a "Required" column to the
2218 header fields table and changed the "zero or more" verbage in
2219 the above paragraph to read "The header must contain the required
2220 named header fields and zero or more of the optional named header
2222 * test/data/invalid-messages/*.message: Added the required PATH
2223 named header field to the tests so that they don't fail on
2224 'Missing path field'
2226 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
2228 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
2229 the stack by implicitly defining variable and parameter types and
2230 removing the hack of defining C pointers as python objects and later
2233 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
2235 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
2237 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
2239 * mono/DBusType/Dict.cs: Handle empty dicts
2240 * mono/DBusType/Array.cs: Handle empty arrays
2241 * mono/Arguments.cs: Handle empty arguments
2243 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
2245 * dbus-sharp.pc.in: Modified to include include Libs and Requires
2248 2004-04-25 Kristian Høgsberg <krh@redhat.com>
2250 * test/data/valid-messages/standard-*.message: Update message
2251 test scripts to new header field names.
2253 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
2255 * test/break-loader.c (randomly_do_n_things): tracked down buffer
2256 overflow to times_we_did_each_thing array which would chop off the
2257 first character of the failure_dir string. Increased the size of
2258 the array to 7 to reflect the number of random mutation functions
2261 2004-04-21 Kristian Høgsberg <krh@redhat.com>
2263 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
2264 unix_server->watch here, it is unreffed in disconnect.
2265 (_dbus_server_new_for_tcp_socket): convert NULL host to
2266 "localhost" here so we don't append NULL to address.
2268 * dbus/dbus-server.c (_dbus_server_test): Add test case for
2269 various addresses, including tcp with no explicit host.
2271 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2273 * dbus/dbus-message.c (decode_header_data, decode_string_field):
2274 fix incorrect setting of .name_offset in the HeaderField (it was
2275 off by two bytes, positioned right after the name and typecode)
2277 * bus/bus.c (bus_context_new, bus_context_unref): test before
2278 calling dbus_server_free_data_slot and _dbus_user_database_unref
2279 in case of an error.
2281 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
2284 2004-04-19 Kristian Høgsberg <krh@redhat.com>
2286 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
2287 _dbus_poll() instead of select().
2289 2004-04-15 Jon Trowbridge <trow@ximian.com>
2291 * bus/main.c (signal_handler): Reload the configuration files
2293 (main): Set up our SIGHUP handler.
2295 * bus/bus.c (struct BusContext): Store the config file, user and
2296 fork flag in the BusContext.
2297 (process_config_first_time_only): Added. Contains the code
2298 (previously in bus_context_new) for setting up the BusContext from
2299 the BusConfigParser that should only be run the first time the
2300 config files are read.
2301 (process_config_every_time): Added. Contains the code (previously
2302 in bus_context_new) for setting up the BusContext from the
2303 BusConfigParser that should be run every time the config files are
2305 (load_config): Added. Builds a BusConfigParser from the config
2306 files and passes the resulting structure off to
2307 process_config_first_time_only (assuming this is the first time)
2308 and process_config_every_time.
2309 (bus_context_new): All of the config-related code has been moved
2310 to process_config_first_time_only and process_config_every_time.
2311 Now this function just does the non-config-related initializations
2312 and calls load_config.
2313 (bus_context_reload_config): Added.
2315 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
2317 * bus/driver.c (bus_driver_handle_get_service_owner):
2318 implement a GetServiceOwner method.
2319 * doc/dbus-specification.xml: document it.
2320 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
2322 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
2323 implement, using the bus GetServiceOwner method.
2325 * test/glib/test-dbus-glib.c:
2326 use dbus_gproxy_new_for_service_owner so that we can receive the
2329 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
2331 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2332 dbus/dbus-message.c, dbus/dbus-protocol.h
2333 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
2335 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2336 dbus/dbus-message.c, dbus/dbus-protocol.h
2337 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
2339 * dbus/dbus-internals.c (_dbus_header_field_to_string):
2340 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
2341 DBUS_HEADER_FIELD_SENDER resolves to "sender"
2343 * doc/dbus-specification.xml (Header Fields Table):
2344 s/SERVICE/DESTINATION
2345 s/SENDER_SERVICE/SENDER
2348 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
2350 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
2353 2004-04-13 Michael Meeks <michael@ximian.com>
2355 * glib/dbus-gobject.c (handle_introspect): split out
2356 (introspect_properties): this.
2357 (handle_introspect): implement this.
2359 * test/glib/Makefile.am: use the absolute path so the bus
2360 daemon's chdir ("/") doesn't kill us dead.
2362 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
2364 2004-04-12 Jon Trowbridge <trow@ximian.com>
2366 * bus/config-parser.c (struct BusConfigParser): Added
2367 included_files field.
2368 (seen_include): Added. Checks whether or not a file has already
2369 been included by any parent BusConfigParser.
2370 (bus_config_parser_new): Copy the parent's included_files.
2371 (include_file): Track which files have been included, and fail on
2372 circular inclusions.
2373 (process_test_valid_subdir): Changed printf to report if we are
2374 testing valid or invalid conf files.
2375 (all_are_equiv): Changed printf to be a bit clearer about
2376 what we are actually doing.
2377 (bus_config_parser_test): Test invalid configuration files.
2379 2004-04-09 Jon Trowbridge <trow@ximian.com>
2381 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
2382 argument. If non-null, the newly-constructed BusConfigParser will
2383 be initialized with the parent's BusLimits instead of the default
2385 (include_file): When including a config file, pass in
2386 the current parser as the parent and then copy the BusLimits
2387 from the included BusConfigParser pack to the current parser.
2388 (process_test_valid_subdir): Renamed from process_test_subdir.
2389 (process_test_equiv_subdir): Added. Walks through a directory,
2390 descending into each subdirectory and loading the config files
2391 it finds there. If any subdirectory contains two config files
2392 that don't produce identical BusConfigParser structs, fail.
2393 For now, the BusConfigParser's BusPolicies are not compared.
2394 (bus_config_parser_test): Call both process_test_valid_subdir and
2395 process_test_equiv_subdir.
2397 * bus/config-loader-libxml.c (bus_config_load): Take a parent
2398 argument and pass it along to the call to bus_config_parser_new.
2399 Also made a few small changes to allow this code to compile.
2401 * bus/config-loader-expat.c (bus_config_load): Take a parent
2402 argument and pass it along to the call to bus_config_parser_new.
2404 * bus/bus.c (bus_context_new): Load the config file
2405 with a NULL parent argument.
2407 2004-03-29 Michael Meeks <michael@ximian.com>
2409 * glib/dbus-gobject.c (introspect_properties): split
2410 out, fix mangled 'while' flow control.
2411 (introspect_signals): implement.
2412 (handle_introspect): update.
2414 2004-03-29 Michael Meeks <michael@ximian.com>
2416 * glib/dbus-gobject.c (set_object_property): split out /
2417 re-work, use the property type, and not the message type(!)
2418 (get_object_property): ditto.
2420 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
2421 (dbus_gvalue_marshal): make this code re-usable, needed
2422 for signals too, also on both proxy and server side.
2423 Re-write for more efficiency / readability.
2425 2004-03-29 Michael Meeks <michael@ximian.com>
2427 * dbus/dbus-message.c
2428 (dbus_message_new_error_printf): impl.
2430 * dbus/dbus-connection.c
2431 (dbus_connection_unregister_object_path): fix warning.
2433 * configure.in: fix no-mono-installed situation.
2435 2004-03-27 Havoc Pennington <hp@redhat.com>
2437 Patch from Timo Teräs:
2439 * tools/dbus-send.c (main): if --print-reply, assume type is
2440 method call; support boolean type args
2442 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
2443 bunch of memleak and logic bugs
2445 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
2447 * mono/Arguments.cs:
2448 * mono/Introspector.cs:
2450 * mono/InterfaceProxy.cs:
2452 * mono/ProxyBuilder.cs:
2454 Added InterfaceProxy class to avoid building proxies for every
2458 * dbus-message.c (dbus_message_append_args_valist)
2459 (dbus_message_iter_get_object_path)
2460 (dbus_message_iter_get_object_path_array)
2461 (dbus_message_iter_append_object_path)
2462 (dbus_message_iter_append_object_path_array):
2463 Added object_path iter functions to handle OBJECT_PATH arguments
2465 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
2467 First checkin of mono bindings.
2470 Build stuff for the bindings
2471 * dbus-sharp.pc.in: Added for pkgconfig
2473 2004-03-21 Havoc Pennington <hp@redhat.com>
2475 * test/test-service.c (main): remove debug spew
2477 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2479 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
2482 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
2483 (dbus_message_iter_init_array_iterator)
2484 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
2485 indicate whether the iterator is empty
2487 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
2490 2004-03-19 Havoc Pennington <hp@redhat.com>
2492 * NEWS: 0.21 updates
2494 * configure.in: 0.21
2496 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
2498 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
2499 you don't need pyrex to make dist
2501 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
2504 2004-03-18 Richard Hult <richard@imendio.com>
2506 * dbus/dbus-message.c (dbus_message_get_auto_activation)
2507 (dbus_message_set_auto_activation): Add doxygen docs.
2509 2004-03-16 Richard Hult <richard@imendio.com>
2511 * bus/activation.c: (bus_activation_service_created),
2512 (bus_activation_send_pending_auto_activation_messages),
2513 (bus_activation_activate_service):
2515 * bus/dispatch.c: (bus_dispatch),
2516 (check_nonexistent_service_auto_activation),
2517 (check_service_auto_activated),
2518 (check_segfault_service_auto_activation),
2519 (check_existent_service_auto_activation), (bus_dispatch_test):
2520 * bus/driver.c: (bus_driver_handle_activate_service):
2521 * bus/services.c: (bus_registry_acquire_service):
2522 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
2523 (dbus_message_get_auto_activation):
2524 * dbus/dbus-message.h:
2525 * dbus/dbus-protocol.h: Implement auto-activation.
2527 * doc/dbus-specification.xml: Add auto-activation to the spec.
2529 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
2531 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
2532 fix a bug with CUSTOM types.
2534 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
2535 a unit test for this bug (used to fail).
2537 2004-03-12 Mikael Hallendal <micke@imendio.com>
2540 (babysitter_watch_callback): notify all pending activations waiting for
2541 the same exec that the activation failed.
2542 (bus_activation_activate_service): shortcut the activation if we
2543 already waiting for the same executable to start up.
2545 2004-03-12 Mikael Hallendal <micke@imendio.com>
2548 - Added service file reloading.
2549 Each service files directory is kept in an hash table in
2550 BusActivation and each BusActivationEntry knows what .service-file it
2551 was read from. So when you try to activate a service the bus will
2552 check if it's been updated, removed or if new .service-files has
2554 - Test code at the bottom for the service file reloading.
2555 * bus/test-main.c: (main):
2557 - added service reloading test.
2558 * dbus/dbus-sysdeps.c:
2559 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2561 2004-03-08 Michael Meeks <michael@ximian.com>
2563 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
2564 bail immediately if disconnected, to avoid busy loop.
2566 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
2567 cleanup cut/paste/inefficiency.
2569 2004-03-01 David Zeuthen <david@fubar.dk>
2571 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
2572 bug where args were used twice. This bug resulted in a segfault
2573 on a Debian/PPC system when starting the messagebus daemon. Include
2574 dbus-sysdeps.h for DBUS_VA_COPY
2576 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
2578 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
2579 appropriate va_copy implementation. From GLib
2581 2004-02-24 Joe Shaw <joe@ximian.com>
2583 * bus/services.c (bus_registry_acquire_service): We need to pass
2584 in the service name to dbus_set_error() to prevent a crash.
2586 2003-12-26 Anders Carlsson <andersca@gnome.org>
2588 * AUTHORS: Reveal my True identity.
2590 2003-12-17 Mikael Hallendal <micke@imendio.com>
2592 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2593 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2595 2003-12-13 Mikael Hallendal <micke@imendio.com>
2597 * doc/TODO: Added not about better error check of configuration files.
2599 2003-12-02 Richard Hult <richard@imendio.com>
2601 * Update AFL version to 2.0 throughout the source files to reflect
2602 the update that was done a while ago.
2604 2003-12-02 Richard Hult <richard@imendio.com>
2606 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
2607 wrote_dict_key to FALSE on the iter that the dict is appended to,
2608 just like when appending other types. Fixes a bug where a dict
2609 couldn't be put inside a dict.
2610 (dbus_message_iter_append_dict_key): Fix typo in warning message.
2611 (message_iter_test, _dbus_message_test): Add test case for dict
2614 2003-12-01 David Zeuthen <david@fubar.dk>
2616 * python/dbus.py: Add the actual message when calling the reciever
2617 of a signal such that parameters can be inspected. Add the method
2618 remove_signal_receiver
2620 2003-11-26 Mikael Hallendal <micke@imendio.com>
2624 * glib/*.[ch]: Made ref functions return the pointer
2626 2003-11-25 Zack Rusin <zack@kde.org>
2628 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
2630 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
2633 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
2634 the Integrator and to better fit with the server,
2636 2003-11-24 Zack Rusin <zack@kde.org>
2638 * qt/connection.h, qt/connection.cpp: removing initDbus method since
2639 the integrator handles it now
2641 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
2642 since QTimer wasn't really meant to be used the way DBusTimeout is
2644 2003-11-24 Zack Rusin <zack@kde.org>
2646 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
2647 Integrator class which integrates D-BUS with the Qt event loop,
2649 * qt/connection.h, qt/connection.cpp: Move all the code which
2650 was dealing with D-BUS integration to the Integrator class,
2651 and start using Integrator,
2653 2003-11-23 Zack Rusin <zack@kde.org>
2655 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
2658 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
2659 switching namespaces to DBusQt, reworking the class,
2661 * Makefile.cvs: switching dependencies so that it matches KDE
2664 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
2667 2003-11-19 Havoc Pennington <hp@redhat.com>
2671 * configure.in: bump version to 0.20
2673 * configure.in (have_qt): add yet another place to look for qt
2674 (someone hand trolltech a .pc file...)
2676 2003-11-01 Havoc Pennington <hp@redhat.com>
2678 * doc/dbus-specification.xml: add state machine docs on the auth
2679 protocol; just a first draft, I'm sure it's wrong.
2681 2003-10-28 David Zeuthen <david@fubar.dk>
2683 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
2684 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2686 2003-10-28 Havoc Pennington <hp@redhat.com>
2688 * dbus/dbus-message.c (get_next_field): delete unused function
2690 2003-10-28 Havoc Pennington <hp@redhat.com>
2692 * bus/expirelist.c (do_expiration_with_current_time): detect
2693 failure of the expire_func due to OOM
2695 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
2697 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
2698 NoReply error that's now created by the bus when the service exits
2700 2003-10-28 Havoc Pennington <hp@redhat.com>
2702 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
2703 tests for set_path, set_interface, set_member, etc.
2705 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
2707 * dbus/dbus-message.c (set_string_field): always just delete and
2708 re-append the field; accept NULL for deletion
2709 (re_align_fields_recurse): reimplement
2711 2003-10-26 Havoc Pennington <hp@redhat.com>
2713 * dbus/dbus-connection.c: fix docs to properly describe the
2714 disconnected message
2715 (_dbus_connection_notify_disconnected): remove this function;
2716 we can't synchronously add the disconnected message, we have to
2717 do it after we've queued any remaining real messages
2718 (_dbus_connection_get_dispatch_status_unlocked): queue the
2719 disconnect message only if the transport has finished queueing all
2720 its real messages and is disconnected.
2721 (dbus_connection_disconnect): update the dispatch status here
2723 2003-10-22 Havoc Pennington <hp@redhat.com>
2725 * bus/bus.c (bus_context_check_security_policy): fix up assertion
2727 * bus/connection.c (bus_transaction_send_from_driver): set the
2728 destination to the connection's base service
2730 2003-10-20 Havoc Pennington <hp@redhat.com>
2732 hmm, make check is currently not passing.
2734 * doc/dbus-specification.xml: add requirement that custom type
2735 names follow the same rules as interface names.
2737 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
2738 duplication and allow 'c' to be 'custom'; dict is now 'm' for
2741 * doc/dbus-specification.xml: update type codes to match
2742 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
2743 CUSTOM. Add type OBJECT_PATH to the spec.
2745 2003-10-17 Havoc Pennington <hp@redhat.com>
2747 * bus/driver.c (create_unique_client_name): use "." as separator
2748 in base service names instead of '-'
2750 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
2751 byte at the end of the string
2753 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2754 optimization macros since string validation seems to be a slow
2757 * doc/dbus-specification.xml: restrict valid
2758 service/interface/member/error names. Add test suite code for the
2761 * dbus/dbus-string.c: limit service/interface/member/error names
2764 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2765 format arg to verbose spew
2767 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2768 memory, return instead of g_error
2770 * test/test-service.c (path_message_func): support emitting a
2773 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2774 activation bus type if DBUS_BUS_ACTIVATION was set; default to
2775 assuming the activation bus was the session bus so that services
2776 started manually will still register.
2777 (init_connections_unlocked): fix so that in OOM situation we get
2778 the same semantics when retrying the function
2780 * test/test-service.c (main): change to use path registration, to
2781 test those codepaths; register with DBUS_BUS_ACTIVATION rather
2782 than DBUS_BUS_SESSION
2784 2003-10-16 Havoc Pennington <hp@redhat.com>
2786 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2788 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2789 coverage of the tests
2790 (coverage-report.txt): don't move the .da and .bbg files around
2792 2003-10-16 Havoc Pennington <hp@redhat.com>
2794 * bus/bus.c (struct BusContext): remove struct field I didn't mean
2797 2003-10-16 Havoc Pennington <hp@redhat.com>
2799 * bus/connection.c (bus_pending_reply_expired): either cancel or
2801 (bus_connections_check_reply): use unlink, not remove_link, as we
2802 don't want to free the link; fixes double free mess
2804 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2805 where no reply was received
2807 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2810 * bus/signals.c (match_rule_matches): add special cases for the
2811 bus driver, so you can match on sender/destination for it.
2813 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2814 DBUS_PRINT_BACKTRACE is set
2816 * dbus/dbus-internals.c: add pid to assertion failure messages
2818 * dbus/dbus-connection.c: add message type code to the debug spew
2820 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2821 sender=foo not service=foo
2823 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2824 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
2825 DBUS_ACTIVATION_ADDRESS instead
2827 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2828 DBUS_SYSTEM_BUS_ADDRESS if appropriate
2830 * bus/bus.c (bus_context_new): handle OOM copying bus type into
2833 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2834 (dbus_message_iter_get_object_path_array): new function (half
2835 finished, disabled for the moment)
2837 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2838 DBUS_MESSAGE_TYPE_ERROR
2840 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2841 avoid redirecting stderr to /dev/null
2842 (babysit): close stdin if not doing the "exit_with_session" thing
2844 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2845 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2846 stdout/stdin, so things don't get confused
2848 * bus/system.conf.in: fix to allow replies, I modified .conf
2849 instead of .conf.in again.
2851 2003-10-14 David Zeuthen <david@fubar.dk>
2853 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2854 argtype to arg_type when raising unknown arg type exception.
2855 Changed type list to reflect the changes in dbus-protocol.h so
2856 the bindings actually work.
2858 2003-10-14 Havoc Pennington <hp@redhat.com>
2860 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2861 to have a bug keeping it from outputting the .da files sometimes
2862 (string_get_string): don't append garbage nul bytes to the string.
2864 2003-10-15 Seth Nickell <seth@gnome.org>
2866 * python/Makefile.am:
2868 Include dbus_h_wrapper.h in the dist tarball.
2870 2003-10-14 Havoc Pennington <hp@redhat.com>
2872 * bus/bus.c (bus_context_check_security_policy): revamp this to
2873 work more sanely with new policy-based requested reply setup
2875 * bus/connection.c (bus_transaction_send_from_driver): set bus
2876 driver messages as no reply
2878 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2879 requested_reply attribute on allow/deny rules
2881 * bus/system.conf: add <allow requested_reply="true"/>
2883 * bus/driver.c (bus_driver_handle_message): fix check for replies
2884 sent to the bus driver, which was backward. How did this ever work
2885 at all though? I think I'm missing something.
2887 * dbus/dbus-message.c (decode_header_data): require error and
2888 method return messages to have a reply serial field to be valid
2889 (_dbus_message_loader_queue_messages): break up this function;
2890 validate that reply serial and plain serial are nonzero;
2891 clean up the OOM/error handling.
2892 (get_uint_field): don't return -1 from this
2893 (dbus_message_create_header): fix signed/unsigned bug
2895 * bus/connection.c (bus_connections_expect_reply): save serial of
2896 the incoming message, not reply serial
2898 2003-10-14 Havoc Pennington <hp@redhat.com>
2900 * bus/connection.c: implement pending reply tracking using
2903 * bus/bus.c (bus_context_check_security_policy): verify that a
2904 reply is pending in order to allow a reply to be sent. Deny
2905 messages of unknown type.
2907 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2909 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2910 (bus_context_get_reply_timeout): new
2912 2003-10-13 Seth Nickell <seth@gnome.org>
2914 * python/Makefile.am:
2916 Pass "make distcheck": remove a couple files from DIST_FILES
2917 that weren't included in the final version.
2919 2003-10-12 Havoc Pennington <hp@pobox.com>
2921 Added test code that 1) starts an actual bus daemon and 2) uses
2922 DBusGProxy; fixed bugs that were revealed by the test. Lots
2923 more testing possible, but this is the basic framework.
2925 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2926 empty proxy lists from the proxy list hash
2928 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2929 couple of return_if_fail checks
2931 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2932 to allocate, so everything is cleared to NULL as it should be.
2934 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2935 source as data to dbus_connection_set_timeout_functions() as the
2936 timeout functions expected
2938 * test/glib/run-test.sh: add a little script to start up a message
2939 bus and run tests using it
2941 * tools/dbus-launch.1: updates
2943 * tools/dbus-launch.c (main): add --config-file option
2945 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2946 that could never be reached.
2948 * dbus/dbus-message.c (dbus_message_new_method_return)
2949 (dbus_message_new_error, dbus_message_new_signal): set the
2950 no-reply-expected flag on all these. Redundant, but may
2951 as well be consistent.
2953 2003-10-11 Havoc Pennington <hp@pobox.com>
2955 * test/decode-gcov.c (function_solve_graph): make broken block
2956 graph a nonfatal error since it seems to be broken. Need to debug
2959 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2960 can't just check type > INVALID < LAST anymore
2962 * dbus/dbus-message.c (dbus_message_get_signature): new function
2963 (dbus_message_has_signature): new function
2964 (struct DBusMessage): add signature field (right now it isn't sent
2965 over the wire, just generated on the fly)
2966 (dbus_message_copy): copy the signature, and init strings to
2967 proper length to avoid some reallocs
2968 (dbus_message_iter_init_array_iterator): return void, since it
2970 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2971 (_dbus_message_loader_queue_messages): add silly temporary hack to
2972 fill in message->signature on load
2974 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2975 characters, so they are relatively human-readable.
2977 2003-10-11 Havoc Pennington <hp@pobox.com>
2979 * dbus/dbus-message.c (_dbus_message_test): add more test
2980 coverage, but #if 0 for now since they uncover a bug
2981 not fixed yet; I think in re_align_field_recurse()
2982 (re_align_field_recurse): add FIXME about broken assertion
2984 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2986 * bus/connection.c: share a couple code bits with expirelist.c
2988 * bus/expirelist.h, bus/expirelist.c: implement a generic
2989 expire-items-after-N-seconds facility, was going to share between
2990 expiring connections and replies, decided not to use for expiring
2991 connections for now.
2993 * COPYING: include AFL 2.0 (still need to change all the file headers)
2995 2003-10-09 Havoc Pennington <hp@redhat.com>
2997 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2998 gcc 3.3. Not that we do anything about it yet.
3000 * bus/signals.c (bus_match_rule_parse): impose max length on the
3003 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
3005 2003-10-09 Havoc Pennington <hp@redhat.com>
3007 Make matching rules theoretically work (add parser).
3009 * bus/bus.c (bus_context_check_security_policy): fix up to handle
3010 the case where destination is explicitly specified as bus driver
3011 and someone else is eavesdropping.
3013 * bus/policy.c (bus_client_policy_check_can_receive): fix up
3014 definition of eavesdropping and assertion
3016 * tools/dbus-send.c (main): use dbus_message_type_from_string
3018 * bus/signals.c (bus_match_rule_parse): implement
3020 * dbus/dbus-message.c (dbus_message_type_from_string): new
3022 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
3024 2003-10-02 Havoc Pennington <hp@pobox.com>
3026 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
3027 dbus_gproxy_oneway_call
3029 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
3030 (dbus_server_setup_with_g_main): fix to allow calling them more
3031 than once on the same args
3032 (dbus_bus_get_with_g_main): new function
3034 2003-10-02 Havoc Pennington <hp@redhat.com>
3036 * doc/dbus-tutorial.xml: write some stuff
3038 2003-09-29 Havoc Pennington <hp@pobox.com>
3040 * configure.in: split checks for Doxygen from XML docs, check for
3043 * doc/Makefile.am: XML-ify all the docs, and add a blank
3046 2003-09-29 Havoc Pennington <hp@pobox.com>
3048 * Merge dbus-object-names branch. To see the entire patch
3049 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
3050 it's huuuuge though.
3051 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
3053 2003-09-28 Havoc Pennington <hp@pobox.com>
3055 * HACKING: update to reflect new server
3057 2003-09-26 Seth Nickell <seth@gnome.org>
3060 * python/examples/example-signals.py:
3062 Start implementing some notions of signals. The API
3063 is really terrible, but they sort of work (with the
3064 exception of being able to filter by service, and to
3065 transmit signals *as* a particular service). Need to
3066 figure out how to make messages come from the service
3069 * python/dbus_bindings.pyx.in:
3071 Removed duplicate message_handler callbacks.
3073 2003-09-25 Havoc Pennington <hp@redhat.com>
3075 * bus/session.conf.in: fix my mess
3077 2003-09-25 Havoc Pennington <hp@pobox.com>
3079 * bus/session.conf.in: fix security policy, reported by Seth Nickell
3081 2003-09-25 Seth Nickell <seth@gnome.org>
3083 * python/examples/example-service.py:
3085 Johan notices complete wrong code in example-service, but
3086 completely wrong in a way that works exactly the same (!).
3087 Johan is confused, how could this possibly work? Example
3088 code fails to serve purpose of making things clear.
3091 2003-09-25 Mark McLoughlin <mark@skynet.ie>
3093 * doc/dbus-specification.sgml: don't require header fields
3094 to be 4-byte aligned and specify that fields should be
3095 distinguished from padding by the fact that zero is not
3098 * doc/TODO: remove re-alignment item and add item to doc
3099 the OBJECT_PATH type.
3101 * dbus/dbus-message.c:
3102 (HeaderField): rename the original member to value_offset
3103 and introduce a name_offset member to keep track of where
3104 the field actually begins.
3105 (adjust_field_offsets): remove.
3106 (append_int_field), (append_uint_field),
3107 (append_string_field): don't align the start of the header
3108 field to a 4-byte boundary.
3109 (get_next_field): impl finding the next marhsalled field
3110 after a given field.
3111 (re_align_field_recurse): impl re-aligning a number of
3112 already marshalled fields.
3113 (delete_field): impl deleting a field of any type and
3114 re-aligning any following fields.
3115 (delete_int_or_uint_field), (delete_string_field): remove.
3116 (set_int_field), (set_uint_field): no need to re-check
3117 that we have the correct type for the field.
3118 (set_string_field): ditto and impl re-aligning any
3120 (decode_header_data): update to take into account that
3121 the fields aren't 4-byte aligned any more and the new
3122 way to distinguish padding from header fields. Also,
3123 don't exit when there is too much header padding.
3124 (process_test_subdir): print the directory.
3125 (_dbus_message_test): add test to make sure a following
3126 field is re-aligned correctly after field deletion.
3128 * dbus/dbus-string.[ch]:
3129 (_dbus_string_insert_bytes): rename from insert_byte and
3130 allow the insert of multiple bytes.
3131 (_dbus_string_test): test inserting multiple bytes.
3133 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
3134 warning note to docs about having to re-align any
3135 marshalled values following the string.
3137 * dbus/dbus-message-builder.c:
3138 (append_string_field), (_dbus_message_data_load):
3139 don't align the header field.
3141 * dbus/dbus-auth.c: (process_test_subdir): print the
3144 * test/break-loader.c: (randomly_add_one_byte): upd. for
3147 * test/data/invalid-messages/bad-header-field-alignment.message:
3150 * test/data/valid-messages/unknown-header-field.message: shove
3151 a dict in the unknown field.
3153 2003-09-25 Seth Nickell <seth@gnome.org>
3156 * python/dbus_bindings.pyx.in:
3158 Handle return values.
3160 * python/examples/example-client.py:
3161 * python/examples/example-service.py:
3163 Pass back return values from the service to the client.
3165 2003-09-24 Seth Nickell <seth@gnome.org>
3169 Connect Object methods (when you are sharing an object) up... pass
3170 in a list of methods to be shared. Sharing all the methods just
3171 worked out too weird. You can now create nice Services over the
3174 * python/dbus_bindings.pyx.in:
3176 Keep references to user_data tuples passed into C functions so
3177 Python doesn't garbage collect on us.
3179 Implement MethodReturn and Error subclasses of Message for creating
3180 DBusMessage's of those types.
3182 * python/examples/example-client.py:
3183 * python/examples/example-service.py:
3185 Simple example code showing both how create DBus services and objects,
3186 and how to use them.
3188 2003-09-23 Havoc Pennington <hp@pobox.com>
3190 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
3192 2003-09-23 Havoc Pennington <hp@redhat.com>
3194 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
3195 (dbus_gproxy_disconnect_signal): implement
3196 (dbus_gproxy_manager_remove_signal_match): implement
3197 (dbus_gproxy_manager_add_signal_match): implement
3198 (dbus_gproxy_oneway_call): implement
3200 2003-09-23 Havoc Pennington <hp@pobox.com>
3202 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
3203 subclass. This means dropping the transparent thread safety of the
3204 proxy; you now need a separate proxy per-thread, or your own
3205 locking on the proxy. Probably right anyway.
3206 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
3208 2003-09-22 Havoc Pennington <hp@redhat.com>
3210 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
3212 2003-09-21 Seth Nickell <seth@gnome.org>
3214 First checkin of the Python bindings.
3216 * python/.cvsignore:
3217 * python/Makefile.am:
3218 * python/dbus_bindings.pyx.in:
3219 * python/dbus_h_wrapper.h:
3221 Pieces for Pyrex to operate on, building a dbus_bindings.so
3222 python module for low-level access to the DBus APIs.
3226 High-level Python module for accessing DBus objects.
3231 Build stuff for the python bindings.
3235 Extra macro needed for finding the Python C header files.
3237 2003-09-21 Havoc Pennington <hp@pobox.com>
3239 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
3240 implementing the proxy manager, didn't get very far.
3242 * dbus/dbus-bus.c (dbus_bus_add_match): new
3243 (dbus_bus_remove_match): new
3245 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
3246 path_name argument; adjust the other not-yet-implemented
3247 gproxy constructors to be what I think they should be.
3249 2003-09-21 Havoc Pennington <hp@pobox.com>
3251 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
3252 by default for message bus connections.
3254 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
3255 exit_on_disconnect flag is set and we process the disconnected
3257 (dbus_connection_set_exit_on_disconnect): new function
3259 2003-09-21 Havoc Pennington <hp@pobox.com>
3261 Get matching rules mostly working in the bus; only actually
3262 parsing the rule text remains. However, the client side of
3263 "signal connections" hasn't been started, this patch is only the
3266 * dbus/dispatch.c: fix for the matching rules changes
3268 * bus/driver.c (bus_driver_handle_remove_match)
3269 (bus_driver_handle_add_match): send an ack reply from these
3272 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
3273 arguments, reported by Seth Nickell
3275 * bus/config-parser.c (append_rule_from_element): support
3276 eavesdrop=true|false attribute on policies so match rules
3277 can be prevented from snooping on the system bus.
3279 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
3280 and "destination" in attribute names; fix some docs bugs;
3281 add eavesdrop=true|false attribute
3283 * bus/driver.c (bus_driver_handle_add_match)
3284 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
3287 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
3288 rid of broadcast service concept, signals are just always broadcast
3290 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
3291 mostly implement matching rules stuff (currently only exposed as signal
3294 2003-09-21 Mark McLoughlin <mark@skynet.ie>
3296 * doc/dbus-specification.sgml: Change the header field name
3297 to be an enum and update the rest of the spec to reference
3298 the fields using the conventinal name.
3300 * dbus/dbus-protocol.h: update to reflect the spec.
3302 * doc/TODO: add item to remove the 4 byte alignment requirement.
3304 * dbus/dbus-message.c: Remove the code to generalise the
3305 header/body length and serial number header fields as named
3306 header fields so we can reference field names using the
3308 (append_int_field), (append_uint_field), (append_string_field):
3309 Append the field name as a byte rather than four chars.
3310 (delete_int_or_uint_field), (delete_string_field): reflect the
3311 fact that the field name and typecode now occupy 4 bytes instead
3313 (decode_string_field), (decode_header_data): update to reflect
3314 protocol changes and move the field specific encoding from
3315 decode_string_field() back into decode_header_data().
3317 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
3318 Add utility to aid debugging.
3320 * dbus/dbus-message-builder.c:
3321 (append_string_field), (_dbus_message_data_load): Update to
3322 reflect protocol changes; Change the FIELD_NAME directive
3323 to HEADER_FIELD and allow it to take the field's conventional
3324 name rather than the actual value.
3326 * test/data/*/*.message: Update to use HEADER_FIELD instead
3327 of FIELD_NAME; Always align the header on an 8 byte boundary
3328 *before* updating the header length.
3330 2003-09-15 Havoc Pennington <hp@pobox.com>
3332 * dbus/dbus-pending-call.c: add the get/set object data
3333 boilerplate as for DBusConnection, etc. Use generic object data
3334 for the notify callback.
3336 * glib/dbus-gparser.c (parse_node): parse child nodes
3338 * tools/dbus-viewer.c: more hacking on the dbus-viewer
3340 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
3341 contain functions shared between the convenience lib and the
3344 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
3345 -export-symbols-regex to the GLib library
3347 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
3348 fix the locking in here, and add a default handler for
3349 Introspect() that just returns sub-nodes.
3351 2003-09-14 Havoc Pennington <hp@pobox.com>
3353 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
3354 rather than gfoo consistent
3356 * glib/dbus-gproxy.h: delete for now, move contents to
3357 dbus-glib.h, because the include files don't work right since we
3358 aren't in the dbus/ subdir.
3360 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
3361 (dbus_gproxy_end_call): finish
3362 (dbus_gproxy_begin_call): finish
3364 * glib/dbus-gmain.c (dbus_set_g_error): new
3366 * glib/dbus-gobject.c (handle_introspect): include information
3367 about child nodes in the introspection
3369 * dbus/dbus-connection.c (dbus_connection_list_registered): new
3370 function to help in implementation of introspection
3372 * dbus/dbus-object-tree.c
3373 (_dbus_object_tree_list_registered_and_unlock): new function
3375 2003-09-12 Havoc Pennington <hp@pobox.com>
3377 * glib/dbus-gidl.h: add common base class for all the foo_info
3380 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
3383 * test/Makefile.am: try test srcdir -ef . in addition to test
3384 srcdir = ., one of them should work (yeah lame)
3386 * glib/Makefile.am: build the "idl" parser stuff as a convenience
3389 * glib/dbus-gparser.h: make description_load routines return
3390 NodeInfo* not Parser*
3392 * Makefile.am (SUBDIRS): build test dir after all library dirs
3394 * configure.in: add GTK+ detection
3396 2003-09-07 Havoc Pennington <hp@pobox.com>
3398 * Make Doxygen contented.
3400 2003-09-07 Havoc Pennington <hp@pobox.com>
3402 * doc/dbus-specification.sgml: more updates
3404 2003-09-06 Havoc Pennington <hp@pobox.com>
3406 * doc/dbus-specification.sgml: partial updates
3408 * bus/dbus-daemon-1.1.in: fix the config file docs for the
3409 zillionth time; hopefully I edited the right file this time.
3411 * bus/config-parser.c (append_rule_from_element): support
3412 send_type, send_path, receive_type, receive_path
3414 * bus/policy.c: add message type and path to the list of things
3415 that can be "firewalled"
3417 2003-09-06 Havoc Pennington <hp@pobox.com>
3419 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
3420 (dbus_connection_register_object_path): make this not handle
3421 messages to paths below the given path
3423 2003-09-03 Havoc Pennington <hp@pobox.com>
3425 * test/glib/Makefile.am: add this with random glib-linked test
3428 * glib/Makefile.am: remove the random test programs from here,
3429 leave only the unit tests
3431 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
3432 uscore/javacaps conversion, and fix
3433 (get_object_property, set_object_property): change to .NET
3434 convention for mapping props to methods, set_FooBar/get_FooBar,
3435 since one language has such a convention we may as well copy it.
3436 Plus real methods in either getFooBar or get_foo_bar style won't
3437 collide with this convention.
3439 2003-09-01 Havoc Pennington <hp@pobox.com>
3441 * glib/dbus-gparser.c: implement
3443 * glib/dbus-gobject.c: start implementing skeletons support
3445 * configure.in: when disabling checks/assert, also define
3446 G_DISABLE_ASSERT and G_DISABLE_CHECKS
3448 2003-09-01 Havoc Pennington <hp@pobox.com>
3450 * glib/Makefile.am: rearrange a bunch of files and get "make
3451 check" framework set up
3453 2003-08-31 Havoc Pennington <hp@pobox.com>
3455 * fix build with --disable-tests
3457 2003-08-30 Havoc Pennington <hp@pobox.com>
3459 * dbus/dbus-connection.c: purge DBusMessageHandler
3461 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
3462 use callbacks everywhere
3464 2003-08-30 Havoc Pennington <hp@pobox.com>
3466 * test/data/valid-config-files/system.d/test.conf: change to
3467 root for the user so warnings don't get printed
3469 * dbus/dbus-message.c: add dbus_message_get_path,
3470 dbus_message_set_path
3472 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
3473 dispatching to a path
3475 * dbus/dbus-string.c (_dbus_string_validate_path): add
3477 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
3478 (_dbus_marshal_object_path): implement
3480 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
3481 to contain the path to the target object
3482 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
3483 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
3485 2003-08-30 Havoc Pennington <hp@pobox.com>
3487 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
3489 2003-08-29 Havoc Pennington <hp@pobox.com>
3491 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
3493 (struct DBusObjectSubtree): shrink this
3494 a lot, since we may have a lot of them
3495 (_dbus_object_tree_free_all_unlocked): implement
3496 (_dbus_object_tree_dispatch_and_unlock): implement
3498 2003-08-29 Havoc Pennington <hp@pobox.com>
3500 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
3502 2003-08-28 Havoc Pennington <hp@pobox.com>
3506 * dbus/dbus-connection.c: port to no ObjectID, create a
3507 DBusObjectTree, rename ObjectTree to ObjectPath in public API
3509 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
3510 everything except UnregisterFunction and MessageFunction
3512 * dbus/dbus-marshal.c: port away from DBusObjectID,
3513 add DBUS_TYPE_OBJECT_PATH
3515 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
3516 dbus/dbus-objectid.[hc]: remove these, we are moving to
3517 path-based object IDs
3519 2003-08-25 Havoc Pennington <hp@pobox.com>
3521 Just noticed that dbus_message_test is hosed, I wonder when I
3522 broke that. I thought make check was passing earlier...
3524 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
3525 container tree, will replace most of dbus-object-registry
3527 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
3530 2003-08-19 Havoc Pennington <hp@pobox.com>
3532 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
3533 (dbus_message_is_error): fix this function
3535 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
3538 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
3539 reflect clarified man page
3540 (bus_client_policy_check_can_send): ditto
3542 * bus/session.conf.in: fixup
3544 * bus/system.conf.in: fixup
3546 2003-08-18 Havoc Pennington <hp@redhat.com>
3548 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
3550 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3551 dumb bug created earlier (wrong order of args to
3552 decode_header_data())
3554 * tools/dbus-send.c: port
3556 * tools/dbus-print-message.c (print_message): port
3558 * test/data/*messages: port all messages over
3560 * dbus/dbus-message-builder.c: support including
3563 * bus/driver.c: port over
3565 * bus/dispatch.c: port over to new stuff
3567 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3568 rename disconnect signal to "Disconnected"
3570 2003-08-17 Havoc Pennington <hp@pobox.com>
3572 This doesn't compile yet, but syncing up so I can hack on it from
3573 work. What are branches for if not broken code? ;-)
3575 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
3576 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
3577 DBUS_HEADER_FIELD_ERROR_NAME
3579 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
3580 for the interface+member pairs
3581 (string_hash): change to use g_str_hash algorithm
3582 (find_direct_function, find_string_function): refactor these to
3585 * dbus/dbus-message.c: port all of this over to support
3586 interface/member fields instead of name field
3588 * dbus/dbus-object-registry.c: port over
3590 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
3591 from _dbus_string_validate_name
3593 * bus/dbus-daemon-1.1: change file format for the
3594 <deny>/<allow> stuff to match new message naming scheme
3596 * bus/policy.c: port over
3598 * bus/config-parser.c: parse new format
3600 2003-08-16 Havoc Pennington <hp@pobox.com>
3602 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
3605 * glib/dbus-gproxy.c: some hacking
3607 2003-08-15 Havoc Pennington <hp@redhat.com>
3609 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
3611 * dbus/dbus-connection.c
3612 (dbus_connection_send_with_reply_and_block): factor out internals;
3613 change to convert any error replies to DBusError instead of
3614 returning them as a message
3616 2003-08-15 Havoc Pennington <hp@pobox.com>
3618 * dbus/dbus-connection.c,
3619 dbus/dbus-pending-call.c: Finish the pending call stuff
3621 2003-08-14 Havoc Pennington <hp@redhat.com>
3623 * dbus/dbus-pending-call.c: start on new object that will replace
3624 DBusMessageHandler and ReplyHandlerData for tracking outstanding
3627 * dbus/dbus-gproxy.c: start on proxy object used to communicate
3628 with remote interfaces
3630 * dbus/dbus-gidl.c: do the boring boilerplate in here
3632 2003-08-12 Havoc Pennington <hp@pobox.com>
3634 * bus/dispatch.c (bus_dispatch): make this return proper
3635 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
3637 * dbus/dbus-errors.c (dbus_set_error): use
3638 _dbus_string_append_printf_valist
3640 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
3641 (_dbus_string_append_printf): new
3643 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
3646 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
3647 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
3648 message is unhandled.
3650 2003-08-11 Havoc Pennington <hp@pobox.com>
3652 * bus/test.c (client_disconnect_handler): change to return
3653 HANDLED (would have been REMOVE_MESSAGE)
3655 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
3656 HANDLED/NOT_YET_HANDLED instead of
3657 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
3660 2003-08-10 Havoc Pennington <hp@pobox.com>
3662 * tools/dbus-send.c (main): add --type argument, for now
3663 supporting only method_call and signal types.
3665 * tools/dbus-print-message.c: print message type
3667 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3668 init connection->objects
3670 * doc/dbus-specification.sgml: fix sgml
3672 * bus/*.c: port over to object-instance API changes
3674 * test/test-service.c: ditto
3676 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
3677 name, we will have to fix up the rest of the code to also handle
3679 (dbus_message_new): generic message-creation call
3680 (set_string_field): allow appending name field
3682 2003-08-06 Havoc Pennington <hp@pobox.com>
3684 * dbus/dbus-object-registry.c: implement signal connection
3687 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
3689 * dbus/dbus-internals.c (_dbus_memdup): new function
3691 2003-08-02 Havoc Pennington <hp@pobox.com>
3693 * dbus/dbus-message.c (dbus_message_get_no_reply)
3694 (dbus_message_set_no_reply): add these and remove
3695 set_is_error/get_is_error
3697 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
3698 remove the ERROR flag, since there's now an ERROR type
3700 2003-08-01 Havoc Pennington <hp@pobox.com>
3702 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
3705 * dbus/dbus-message.c (dbus_message_get_type): new function
3707 * doc/dbus-specification.sgml: add "type" byte to messages
3709 2003-08-01 Havoc Pennington <hp@pobox.com>
3711 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
3712 a message type enum to distinguish kinds of message
3713 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
3714 that need not be replied to
3716 2003-08-01 Havoc Pennington <hp@pobox.com>
3718 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
3719 (unpack_8_octets): fix no-64-bit-int bug
3721 * dbus/dbus-object-registry.c (validate_id): validate the
3722 connection ID bits, not just the instance ID.
3724 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
3725 the connection-global 33 bits of the object ID
3727 * dbus/dbus-object-registry.c (info_from_entry): fill in
3728 object ID in the new way
3730 * dbus/dbus-objectid.h: rather than high/low bits, specifically
3731 define server/client/instance bits.
3733 2003-07-30 Havoc Pennington <hp@pobox.com>
3735 * dbus/dbus-connection.c (dbus_connection_register_object): fix
3738 2003-07-13 Havoc Pennington <hp@pobox.com>
3740 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
3741 fields to DBusObjectVTable and DBusObjectInfo
3743 2003-07-12 Havoc Pennington <hp@pobox.com>
3745 * dbus/dbus-object-registry.c: implement unit test,
3746 fix bugs discovered in process
3748 * dbus/dbus-connection.c: remove handler_table and
3749 register_handler(), add DBusObjectRegistry usage
3751 * dbus/dbus-objectid.c (dbus_object_id_is_null)
3752 (dbus_object_id_set_null): new functions
3754 2003-07-08 Havoc Pennington <hp@pobox.com>
3756 * dbus/dbus-object.c: implement some of this
3758 * dbus/dbus-object-registry.c
3759 (_dbus_object_registry_add_and_unlock): fill in the object_id out
3761 (_dbus_object_registry_new): handle OOM
3763 2003-07-08 Havoc Pennington <hp@pobox.com>
3765 * dbus/dbus-object.h: sketch out an API for registering objects
3766 with a connection, that allows us to use as little as 24 bytes
3767 per object and lets application code represent an object in
3768 any conceivable way.
3770 * dbus/dbus-object-registry.c: implement the hard bits of the
3771 DBusConnection aspect of object API. Not yet wired up.
3773 2003-07-06 Havoc Pennington <hp@pobox.com>
3775 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3776 (_dbus_marshal_object_id): new
3777 (_dbus_demarshal_object_id): new
3778 (_dbus_marshal_get_arg_end_pos): support object ID type, and
3779 consolidate identical switch cases. Don't conditionalize handling
3780 of DBUS_TYPE_UINT64, need to handle the type always.
3781 (_dbus_marshal_validate_arg): consolidate identical cases, and
3782 handle DBUS_TYPE_OBJECT_ID
3784 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3786 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3788 2003-09-28 Havoc Pennington <hp@pobox.com>
3792 2003-09-28 Havoc Pennington <hp@pobox.com>
3794 * doc/Makefile.am (dbus-specification.html): testing a funky hack
3795 to work with Debian db2html
3797 2003-09-28 Havoc Pennington <hp@pobox.com>
3799 * configure.in: 0.13
3801 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3802 stylesheet-images for benefit of Debian
3804 Change back to using filesystem-linked sockets for the system
3805 bus, so only root can create the default system bus address.
3807 * bus/system.conf.in: change to use
3808 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3810 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3813 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3814 here, and AC_DEFINE DBUS_SYSTEM_PATH
3816 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3819 * doc/busconfig.dtd:
3822 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3824 * doc/dbus-specification.sgml:
3825 Add activation reply values.
3827 2003-08-05 Havoc Pennington <hp@redhat.com>
3829 * configure.in: 0.12
3831 2003-08-05 Anders Carlsson <andersca@codefactory.se>
3833 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3834 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3835 (add_watch), (remove_watch), (create_source):
3836 Refcount fds, fixes some reentrancy issues.
3838 2003-07-30 Havoc Pennington <hp@redhat.com>
3840 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3841 bus address to be abstract if we have abstract sockets
3845 2003-07-28 Havoc Pennington <hp@redhat.com>
3847 * bus/messagebus.in: fix to avoid processname/servicename
3848 confusion, from Michael Kearey
3849 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3851 2003-07-23 Havoc Pennington <hp@pobox.com>
3853 * dbus/dbus-message.c (dbus_message_iter_get_named):
3854 fix from Andy Hanton to remove broken "+1"
3856 2003-07-16 Havoc Pennington <hp@pobox.com>
3858 * tools/dbus-launch.c (babysit): close stdout/stderr in the
3859 babysitter process, as suggested by Thomas Leonard, so
3860 an "eval `dbus-launch --exit-with-session`" will actually
3863 2003-07-16 Havoc Pennington <hp@pobox.com>
3865 * configure.in: print out EXPANDED_* variables in the summary at
3866 the end; clean up the code that computes EXPANDED_ variables and
3867 get the ones using exec_prefix right. Should make things work
3868 when you build without --prefix
3870 2003-06-29 Havoc Pennington <hp@pobox.com>
3872 * mono/Test.cs (class Test): fire up a main loop and run it
3874 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3875 done once, the app has to do it
3877 2003-06-26 Havoc Pennington <hp@pobox.com>
3879 * mono/Connection.cs: set up connection with the glib main loop
3881 2003-07-01 Havoc Pennington <hp@redhat.com>
3883 * doc/dbus-specification.sgml: clarify the format of a type code,
3884 change suggested by Jim Blandy
3886 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3889 * tools/Makefile.am: Don't assume srcdir == builddir.
3891 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3892 the allocated block.
3893 (_dbus_memory_test): New function.
3894 * dbus/dbus-test.h: Add _dbus_memory_test ().
3895 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3897 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3899 (dbus_message_new): Remove obsolete @todo.
3901 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3902 (_dbus_marshal_set_uint64): Fix comment.
3904 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3905 hardcode FIELD_REPLY_SERIAL.
3907 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3908 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3910 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3911 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3913 2003-06-24 Havoc Pennington <hp@pobox.com>
3915 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3917 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3923 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3924 * gcj/org/.cvsignore:
3925 * gcj/org/Makefile.am:
3926 * gcj/org/freedesktop/.cvsignore:
3927 * gcj/org/freedesktop/Makefile.am:
3928 * gcj/org/freedesktop/dbus/.cvsignore:
3929 * gcj/org/freedesktop/dbus/Makefile.am:
3930 * gcj/org/freedesktop/dbus/Message.java: (Message),
3932 * gcj/org/freedesktop/dbus/natMessage.cc:
3933 Fix the build system.
3935 2003-06-22 Havoc Pennington <hp@pobox.com>
3937 * mono/Connection.cs: add more bindings
3939 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3942 2003-06-22 Havoc Pennington <hp@pobox.com>
3944 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3945 Start wrapping more stuff.
3947 2003-06-22 Havoc Pennington <hp@pobox.com>
3949 * mono/Message.cs: implement Message.Wrap() that ensures we only
3950 have a single C# wrapper per DBusMessage, assuming it works which
3951 it probably doesn't.
3953 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3954 (dbus_message_free_data_slot): new
3955 (dbus_message_set_data): new
3956 (dbus_message_get_data): new
3958 2003-06-22 Havoc Pennington <hp@pobox.com>
3960 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3961 (_dbus_data_slot_allocator_alloc): rework these to keep a
3962 reference count on each slot and automatically manage a global
3963 slot ID variable passed in by address
3965 * bus/bus.c: convert to new dataslot API
3967 * dbus/dbus-bus.c: convert to new dataslot API
3969 * dbus/dbus-connection.c: convert to new dataslot API
3971 * dbus/dbus-server.c: convert to new dataslot API
3973 * glib/dbus-gmain.c: ditto
3977 * bus/connection.c: ditto
3979 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3981 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3982 after the gcj checks so that the correct configuration tags
3983 will be added to libtool.
3985 * dbus-glib-1.pc.in: No need to specify any includes since
3986 dbus-1.pc.in has those.
3988 2003-06-22 Havoc Pennington <hp@pobox.com>
3990 * mono/*, gcj/*, configure.in, Makefile.am:
3991 Check in makefiles and subdirs for mono and gcj bindings.
3992 Neither binding actually exists, just trying to get through
3993 all the build and other boring bits.
3995 2003-06-21 Philip Blundell <philb@gnu.org>
3997 * tools/dbus-monitor.1: Updated.
3999 * tools/dbus-send.1: Likewise.
4001 2003-06-20 Anders Carlsson <andersca@codefactory.se>
4003 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
4004 for hangup and error after checking read so we won't discard
4005 pending data if both hangup and read are set.
4007 2003-06-19 Philip Blundell <philb@gnu.org>
4009 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
4011 * tools/dbus-send.c: Accept both --system and --session.
4013 * tools/dbus-monitor.c: Same here.
4015 2003-06-19 Anders Carlsson <andersca@codefactory.se>
4017 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
4018 from C++ (Patch by Miloslav Trmac).
4020 2003-06-15 Joe Shaw <joe@assbarn.com>
4022 * configure.in: Check for socklen_t.
4024 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
4026 * test/test-segfault.c: Add #include <sys/time.h>
4028 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
4029 dbus-launch needs it.
4031 2003-06-09 Havoc Pennington <hp@redhat.com>
4033 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
4034 SUN_LEN, it breaks abstract socket usage
4036 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
4039 2003-06-04 Havoc Pennington <hp@pobox.com>
4041 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
4042 using unix:abstract=/foo, and when listening in a tmpdir
4043 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
4045 * dbus/dbus-transport.c (_dbus_transport_open): support
4048 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4049 support abstract sockets
4051 * dbus/dbus-transport-unix.c
4052 (_dbus_transport_new_for_domain_socket): support abstract sockets
4054 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
4055 toggle as an argument, implement abstract namespace support
4056 (_dbus_listen_unix_socket): ditto
4058 * configure.in: add --enable-abstract-sockets and implement
4059 a configure check for autodetection of the right value.
4061 2003-06-01 Havoc Pennington <hp@pobox.com>
4063 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
4064 in /tmp (though on Linux this will end up being useless,
4065 when we add abstract namespace support)
4067 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
4070 2003-05-28 Colin Walters <walters@verbum.org>
4072 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
4074 2003-05-18 Anders Carlsson <andersca@codefactory.se>
4076 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
4078 2003-05-17 Colin Walters <walters@gnu.org>
4080 * tools/dbus-send.c: Don't exit with an error code if --help was
4081 passed. Default to using the session bus instead of the system
4084 * tools/dbus-launch.c: Ditto.
4086 * tools/dbus-monitor.c: Ditto.
4088 * tools/dbus-send.1: Update with new arguments.
4090 * tools/dbus-launch.c: Emit code to export variables. New
4091 arguments -s and -c to specify shell syntax, and a bit of code to
4092 autodetect syntax. Also, allow specifying a program to run.
4094 * tools/dbus-launch.1: Update with new arguments.
4096 * tools/dbus-send.1: Ditto.
4098 * tools/dbus-monitor.1: Ditto.
4100 2003-05-17 Havoc Pennington <hp@pobox.com>
4102 * bus/config-parser.c (merge_included): merge in policies from
4103 child configuration file.
4105 * bus/policy.c (bus_policy_merge): function to merge two policies
4108 2003-05-16 Havoc Pennington <hp@redhat.com>
4110 * dbus/dbus-connection.c: disable verbose lock spew
4112 * tools/dbus-send.c: add --print-reply command line option
4114 * tools/dbus-print-message.h (print_message): new util function
4115 shared by dbus-send and dbus-monitor
4117 * tools/dbus-monitor.c (handler_func): exit on disconnect
4119 * dbus/dbus-transport-unix.c (do_reading): if the transport is
4120 disconnected, don't try to use the read_watch
4122 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
4123 so we can find this bug more easily
4125 2003-05-16 Havoc Pennington <hp@redhat.com>
4127 * bus/policy.c (free_rule_list_func): avoid a crash when passed
4128 NULL as DBusHashTable is annoyingly likely to do.
4130 2003-05-16 Colin Walters <walters@verbum.org>
4132 * tools/dbus-monitor.c: Add --session argument and usage()
4135 * tools/dbus-monitor.1: Update with new --session arg.
4137 * bus/Makefile.am (install-data-hook): Create
4138 $(libdir)/dbus-1.0/services so that the session bus is happy.
4140 2003-05-15 Havoc Pennington <hp@redhat.com>
4142 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
4143 on non-x86. ifdef's are evil.
4145 2003-05-15 Havoc Pennington <hp@redhat.com>
4147 * configure.in: 0.11
4151 * bus/Makefile.am (initddir): apparently we are supposed to put
4152 init scripts in /etc/rc.d/init.d not /etc/init.d
4154 * bus/Makefile.am: remove the "you must --enable-tests to make
4155 check" as it broke distcheck
4157 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
4159 2003-05-13 James Willcox <jwillcox@gnome.org>
4162 * bus/activation.c: (bus_activation_service_created),
4163 (bus_activation_activate_service):
4164 * bus/driver.c: (bus_driver_send_service_deleted),
4165 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4166 (bus_driver_send_service_acquired),
4167 (bus_driver_send_welcome_message),
4168 (bus_driver_handle_list_services):
4169 * bus/session.conf.in:
4170 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
4171 (dbus_bus_service_exists), (dbus_bus_activate_service):
4174 Add some convenience API which lets you activate a service, and did a
4175 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
4176 and dbus_message_get_args()
4178 2003-05-11 Havoc Pennington <hp@pobox.com>
4180 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
4181 calling _dbus_marshal_validate_arg() for every byte in a byte
4184 * dbus/dbus-message-handler.c: use atomic reference counting to
4185 reduce number of locks slightly; the global lock in here sucks
4187 * dbus/dbus-connection.c
4188 (_dbus_connection_update_dispatch_status_and_unlock): variant of
4189 update_dispatch_status that can be called with lock held; then use
4190 in a couple places to reduce locking/unlocking
4191 (dbus_connection_send): hold the lock over the whole function
4192 instead of acquiring it twice.
4194 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
4196 * bus/connection.c (bus_connections_setup_connection): fix access
4197 to already-freed memory.
4199 * dbus/dbus-connection.c: keep a little cache of linked list
4200 nodes, to avoid using the global linked list alloc lock in the
4201 normal send-message case. Instead we just use the connection lock
4202 that we already have to take.
4204 * dbus/dbus-list.c (_dbus_list_find_last): new function
4206 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
4207 change to use a struct for the atomic type; fix docs,
4208 they return value before increment, not after increment.
4210 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
4211 (_dbus_string_append_8_aligned): new functions to try to
4212 microoptimize this operation.
4213 (reallocate_for_length): break this out of set_length(), to
4214 improve profile info, and also so we can consider inlining the
4217 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
4218 strings with some preallocation, cuts down on our calls to realloc
4219 a fair bit. Though if we can get the "move entire string to empty
4220 string" optimization below to kick in here, it would be better.
4222 * dbus/dbus-string.c (_dbus_string_move): just call
4223 _dbus_string_move_len
4224 (_dbus_string_move_len): add a special case for moving
4225 an entire string into an empty string; we can just
4226 swap the string data instead of doing any reallocs.
4227 (_dbus_string_init_preallocated): new function
4229 2003-05-11 Havoc Pennington <hp@pobox.com>
4231 Write a "test-profile" that does echo client-server with threads;
4232 profile reveals lock contention, memcpy/realloc of buffers, and
4233 UTF-8 validation as hot spots. 20% of lock contention eliminated
4234 with dbus_atomic_inc/dec implementation on x86. Much remaining
4235 contention is global mempool locks for GList and DBusList.
4237 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
4240 * dbus/dbus-connection.c (struct DBusConnection): use
4241 dbus_atomic_t for the reference count
4243 * dbus/dbus-message.c (struct DBusMessage): declare
4244 dbus_atomic_t values as volatile
4246 * configure.in: code to detect ability to use atomic integer
4247 operations in assembly, from GLib patch
4249 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
4250 time, tired of it being wrong in threads and forked processes
4252 * glib/test-profile.c: a little program to bounce messages back
4253 and forth between threads and eat CPU
4255 * dbus/dbus-connection.c: add debug spew macros for debugging
4256 thread locks; include config.h at top; fix deadlock in
4257 dbus_connection_flush()
4259 2003-05-08 Havoc Pennington <hp@pobox.com>
4261 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
4262 data from getting written, and there wasn't a good reason to
4265 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
4266 dbus_verbose lines in test coverage
4267 (main): add list of functions sorted by # of untested blocks
4268 to the coverage report
4270 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
4272 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
4274 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
4275 extend test coverage
4277 * test/data/auth/cancel.auth-script: test canceling an
4280 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
4281 aren't used. in CVS history if we end up needing them.
4283 2003-05-04 Havoc Pennington <hp@pobox.com>
4285 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
4288 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
4289 function, which assumed length was in # of strings, not bytes
4291 * dbus/dbus-message.c (_dbus_message_test): add tests for some
4294 * dbus/dbus-connection.c
4295 (_dbus_connection_queue_received_message): disable function for
4296 now, we are only using it in test mode
4298 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4299 remove a mistaken FIXME
4301 2003-05-04 Havoc Pennington <hp@pobox.com>
4303 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
4304 unlock mutex on successful return, patch from Anders Gustafsson
4306 2003-05-04 Havoc Pennington <hp@pobox.com>
4308 * dbus-glib-1.pc.in (Requires): fix dependencies, from
4311 2003-05-04 Havoc Pennington <hp@pobox.com>
4313 * tools/dbus-launch.c: implement
4315 * bus/main.c (main), bus/bus.c (bus_context_new):
4316 implement --print-pid and --fork
4318 2003-05-03 Havoc Pennington <hp@redhat.com>
4320 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
4321 the address had no value, and add to test suite. Fix and
4322 regression test from Miloslav Trmac
4324 2003-05-03 Havoc Pennington <hp@pobox.com>
4326 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
4327 watch is invalid when handled
4329 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
4330 dbus-launch utility to launch the bus from a shell script. Didn't
4331 actually implement dbus-launch yet, it's just a placeholder still.
4333 2003-05-03 Havoc Pennington <hp@pobox.com>
4335 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
4336 daemon; also documents daemon config file, so replaces
4337 doc/config-file.txt. Corrected some stuff from config-file.txt in
4338 the process of moving it.
4340 2003-05-03 Havoc Pennington <hp@pobox.com>
4342 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
4345 2003-05-03 Colin Walters <walters@verbum.org>
4347 * dbus/dbus-sysdeps.c (fill_user_info): Test against
4348 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
4350 * Makefile.am: Update to use new .pc versioning scheme.
4352 2003-05-02 Havoc Pennington <hp@redhat.com>
4354 * bus/system.conf.in: allow send/receive to/from message bus
4357 2003-04-30 Havoc Pennington <hp@redhat.com>
4359 * configure.in: print a note when building with unit tests and
4362 2003-04-30 Havoc Pennington <hp@redhat.com>
4364 * Makefile.am: add a check-local that complains if you didn't
4365 configure with --enable-tests
4367 2003-04-29 Havoc Pennington <hp@redhat.com>
4369 * glib/dbus-gmain.c: docs cleanups
4371 * dbus/dbus-types.h: add docs on int64 types
4373 * dbus/dbus-memory.c: fix docs to avoid putting private API in
4374 public API docs section
4376 2003-04-29 Havoc Pennington <hp@redhat.com>
4378 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
4379 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
4380 parallel install API version, not with the D-BUS package version.
4382 * HACKING: move some of README over here
4384 * README: updates, and document API/ABI policy
4386 * configure.in: reindentation
4388 2003-04-29 Havoc Pennington <hp@redhat.com>
4390 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
4391 to use this library" to be sure people have the right
4394 2003-04-28 Havoc Pennington <hp@redhat.com>
4396 * configure.in: add --enable-docs which by default is auto yes if
4397 doxygen and db2html found, no otherwise; but can be forced on/off
4399 * doc/Makefile.am: conditionalize whether to build docs on
4402 2003-04-28 Havoc Pennington <hp@redhat.com>
4404 * configure.in: 0.10
4408 * bus/system.conf.in: add <includedir>system.d</includedir>
4410 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
4411 username was provided but not uid
4413 * bus/config-parser.c (struct BusConfigParser): keep track of
4414 whether the parser is toplevel or was included; change some
4415 of the error handling if it's included.
4417 2003-04-27 Havoc Pennington <hp@pobox.com>
4421 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4422 report correct status if we finish processing authentication
4423 inside this function.
4425 * bus/activation.c (try_send_activation_failure): use
4426 bus_transaction_send_error_reply
4428 * bus/connection.c (bus_connection_get_groups): return an error
4429 explaining the problem
4431 * bus/bus.c (bus_context_check_security_policy): implement
4432 restriction here that inactive connections can only send the
4433 hello message. Also, allow bus driver to send anything to
4436 * bus/connection.c (bus_connection_complete): create the
4437 BusClientPolicy here instead of on-demand.
4438 (bus_connection_get_policy): don't return an error
4440 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
4441 sender field in message being replied to
4443 * bus/bus.c (bus_context_check_security_policy): fix silly typo
4444 causing it to return FALSE always
4446 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
4447 we checked sender rather than destination
4449 2003-04-25 Havoc Pennington <hp@redhat.com>
4451 test suite is slightly hosed at the moment, will fix soon
4453 * bus/connection.c (bus_connections_expire_incomplete): fix to
4454 properly disable the timeout when required
4455 (bus_connection_set_name): check whether we can remove incomplete
4456 connections timeout after we complete each connection.
4458 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
4459 probably still broken.
4461 * bus/services.c (bus_registry_acquire_service): implement max
4462 number of services owned, and honor allow/deny rules on which
4463 services a connection can own.
4465 * bus/connection.c (bus_connection_get_policy): report errors here
4467 * bus/activation.c: implement limit on number of pending
4470 2003-04-25 Havoc Pennington <hp@redhat.com>
4472 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
4473 where we used >= 0 instead of != DBUS_UID_UNSET.
4475 2003-04-25 Havoc Pennington <hp@redhat.com>
4477 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
4478 were toggled without add/remove, fix from Anders Gustafsson
4480 2003-04-24 Havoc Pennington <hp@redhat.com>
4482 * test/data/valid-config-files/basic.conf: add <limit> tags to
4485 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
4486 <limit> tag in configuration file.
4488 2003-04-24 Havoc Pennington <hp@redhat.com>
4490 * bus/dispatch.c: somehow missed some name_is
4492 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
4493 (_dbus_timeout_set_interval): new
4495 * bus/connection.c (bus_connections_setup_connection): record time
4496 when each connection is first set up, and expire them after the
4497 auth timeout passes.
4499 2003-04-24 Havoc Pennington <hp@redhat.com>
4501 * dbus/dbus-message.c (dbus_message_name_is): rename
4502 (dbus_message_service_is): rename
4503 (dbus_message_sender_is): rename
4504 (dbus_message_get_service): rename
4506 2003-04-24 Havoc Pennington <hp@redhat.com>
4508 * configure.in: add --enable-checks
4510 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
4512 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
4513 to use thread locks.
4514 (_dbus_connection_handler_destroyed_locked): move some private
4515 functions into proper docs group
4517 * dbus/dbus-internals.h: add _dbus_return_if_fail,
4518 _dbus_return_val_if_fail
4520 Throughout: use dbus_return_if_fail
4522 2003-04-23 James Willcox <jwillcox@gnome.org>
4525 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
4526 (dbus_connection_setup_with_g_main),
4527 (dbus_server_setup_with_g_main):
4528 * glib/test-dbus-glib.c: (main):
4529 * glib/test-thread-client.c: (main):
4530 * glib/test-thread-server.c: (new_connection_callback), (main):
4531 * tools/dbus-monitor.c: (main):
4533 Added a GMainContext argument to dbus_connection_setup_with_g_main()
4534 and dbus_server_setup_with_g_main().
4536 2003-04-20 Havoc Pennington <hp@pobox.com>
4538 * doc/dbus-specification.sgml: document the restrictions on
4539 message and service names
4541 2003-04-22 Havoc Pennington <hp@redhat.com>
4543 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
4544 support, and do some code cleanups to share more code and
4545 speed up array marshal/demarshal.
4547 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
4549 * configure.in: generate dbus-arch-deps.h
4551 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
4554 2003-04-22 Havoc Pennington <hp@redhat.com>
4556 * test/data/valid-messages/opposite-endian.message: fix test
4557 to use proper type for rply field
4559 * test/data/invalid-messages: add tests for below validation
4561 * dbus/dbus-message.c (decode_header_data): validate field types,
4562 and validate that named fields are valid names
4563 (decode_name_field): consider messages in the
4564 org.freedesktop.Local. namespace to be invalid.
4566 * dbus/dbus-string.c (_dbus_string_validate_name): new
4568 2003-04-19 Havoc Pennington <hp@pobox.com>
4570 * bus/driver.c (bus_driver_handle_hello): check limits and
4571 return an error if they are exceeded.
4573 * bus/connection.c: maintain separate lists of active and inactive
4574 connections, and a count of each. Maintain count of completed
4575 connections per user. Implement code to check connection limits.
4577 * dbus/dbus-list.c (_dbus_list_unlink): export
4579 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
4580 number of bytes in the message queue for a connection
4582 2003-04-18 Havoc Pennington <hp@pobox.com>
4584 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
4586 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
4589 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
4590 on realloc be sure to update the pointer in the keyring
4592 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
4593 offset to avoid writing to unallocated memory
4595 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
4596 try the next mechanism, so we properly handle OOM
4598 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
4600 (_dbus_keyring_new): fix OOM bug
4601 (_dbus_keyring_new_homedir): always set error; impose a maximum
4602 number of keys we'll load from the file, mostly to speed up the
4603 test suite and make its OOM checks more useful, but also for
4606 * dbus/dbus-auth.c (process_error_server): reject authentication
4607 if we get an error from the client
4608 (process_cancel): on cancel, send REJECTED, per the spec
4609 (process_error_client): send CANCEL if we get an error from the
4612 2003-04-18 Havoc Pennington <hp@pobox.com>
4614 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
4617 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
4620 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
4621 about DBUS_TEST_HOMEDIR once
4623 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
4626 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
4627 config file so we test the right thing
4629 Throughout: assorted docs improvements
4631 2003-04-18 Havoc Pennington <hp@pobox.com>
4633 * glib/dbus-gmain.c: adapt to watch changes
4635 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
4637 * dbus/dbus-server.h: remove dbus_server_handle_watch
4639 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
4641 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
4642 like DBusTimeout, so we don't need dbus_connection_handle_watch
4645 2003-04-17 Havoc Pennington <hp@redhat.com>
4647 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
4648 database usage so it all goes via the DBusUserDatabase cache.
4650 2003-04-17 Havoc Pennington <hp@redhat.com>
4652 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
4653 there was an OOM watch we skipped, we always return TRUE so we
4654 iterate again to have a look at it again. Fixes test suite hang.
4655 Code rearrangement also lets us lose some memset and only iterate
4656 over callbacks once.
4658 * bus/driver.c (bus_driver_handle_message): sense of test for
4661 2003-04-16 Havoc Pennington <hp@pobox.com>
4663 * doc/dbus-specification.sgml: make spec say serials are unsigned
4665 * dbus/dbus-message.h: change message serials to unsigned
4667 * dbus/dbus-connection.c: adapt to message serials being unsigned
4669 2003-04-15 Havoc Pennington <hp@pobox.com>
4671 * bus/bus.c: create and keep around a shared DBusUserDatabase
4674 * bus/connection.c (bus_connection_get_groups): don't cache
4675 groups for user in the connection object, since user database
4676 object now does that.
4678 2003-04-16 Havoc Pennington <hp@redhat.com>
4680 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
4681 list of size counters
4682 (_dbus_message_loader_putback_message_link): put back a popped link
4684 * dbus/dbus-connection.c
4685 (dbus_connection_set_max_live_messages_size): rename
4687 (dbus_connection_get_outgoing_size): get size of outgoing
4689 (_dbus_connection_set_connection_counter): remove this cruft
4691 2003-04-14 Havoc Pennington <hp@redhat.com>
4693 * dbus/dbus-userdb.c: user database abstraction, mostly to get
4694 caching, but at some point we might want to be able to use a
4697 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
4698 SHA1 conf file to test the sha1 auth mechanism, since the regular
4699 test always uses EXTERNAL when available.
4702 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
4703 add conf file that requires use of sha1 auth
4705 2003-04-13 Havoc Pennington <hp@pobox.com>
4707 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
4708 from Philip Blundell to send messages and monitor them.
4710 2003-04-13 Havoc Pennington <hp@pobox.com>
4712 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
4715 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
4718 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4719 fix to only recover unused bytes if we're already authenticated
4720 (_dbus_transport_get_is_authenticated): fix to still mark us
4721 authenticated if there are unused bytes.
4723 * bus/dispatch.c: implement security policy checking
4725 * bus/connection.c (bus_transaction_send_from_driver): new
4727 * bus/bus.c (bus_context_check_security_policy): new
4729 * bus/dispatch.c (send_service_nonexistent_error): delete this,
4730 now we just set the DBusError and it gets converted to an error
4733 * bus/connection.c (allow_user_function): enable code using actual
4734 data from the config file
4736 * bus/policy.c (list_allows_user): handle wildcard rules for
4737 user/group connection perms
4739 2003-04-13 Havoc Pennington <hp@pobox.com>
4741 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
4743 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
4745 * bus/policy.c (bus_policy_append_mandatory_rule)
4746 (bus_policy_append_default_rule, bus_policy_append_user_rule)
4747 (bus_policy_append_group_rule): new functions
4749 2003-04-12 Havoc Pennington <hp@pobox.com>
4751 * bus/config-parser.c (bus_config_parser_new): fix a memleak
4753 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4754 the pid/gid/uid, just for paranoia.
4756 * test/break-loader.c (randomly_do_n_things): find a byte
4757 containing a type code, and randomly change it to a different
4760 2003-04-12 Havoc Pennington <hp@pobox.com>
4762 * bus/policy.h: change BusPolicy to be the thing from the config
4763 file, and rename old BusPolicy to BusClientPolicy
4765 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4766 match change in how policy works
4768 * dbus/dbus-internals.h: mark assert_not_reached as
4769 __attribute((noreturn))__
4771 2003-04-11 Havoc Pennington <hp@redhat.com>
4773 * doc/dbus-specification.sgml: fix a spot with the wrong name for
4774 the broadcast service. Use boolean return for ServiceExists.
4776 2003-04-11 Havoc Pennington <hp@redhat.com>
4778 * configure.in: add another directory to look for qt in.
4780 2003-04-11 Havoc Pennington <hp@redhat.com>
4782 * AUTHORS: add Colin Walters
4784 2003-04-11 Havoc Pennington <hp@redhat.com>
4790 2003-04-11 Havoc Pennington <hp@redhat.com>
4792 * bus/messagebus.in: remove pid file when stopping the
4793 message bus, since the bus won't have privileges to remove it
4796 2003-04-11 Havoc Pennington <hp@redhat.com>
4798 * bus/bus.c (bus_context_new): move credentials change after
4801 2003-04-11 Havoc Pennington <hp@pobox.com>
4803 * test/decode-gcov.c: add "below average functions" to the
4804 coverage report, and change how some of the code works.
4806 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4807 not in the coverage stats.
4809 * test/test-service.c (main): use _dbus_verbose not fprintf in a
4810 couple places so running the test suite doesn't result in megaspam.
4812 2003-04-11 Havoc Pennington <hp@pobox.com>
4814 * bus/dispatch.c (check_existent_service_activation): accept a no
4815 memory error in a place we didn't before
4817 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4818 in case the first one failed," since the test suite is less
4821 2003-04-10 Havoc Pennington <hp@pobox.com>
4823 * bus/dispatch.c (check_segfault_service_activation): add test
4824 for launching an executable that just crashes.
4826 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4827 don't leave a million cores. We'll see how portable this is.
4829 2003-04-10 Havoc Pennington <hp@pobox.com>
4831 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4832 the possible parent failures before we fork, so that we don't
4833 fail to create a babysitter after creating the child.
4835 * bus/activation.c (bus_activation_activate_service): kill child
4836 if we don't successfully complete the activation.
4838 2003-04-10 Havoc Pennington <hp@redhat.com>
4840 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4841 the connection if it's disconnected
4843 * bus/activation.c (bus_activation_service_created): use new
4844 transaction features to roll back removal of pending activation if
4845 we don't successfully create the service after all. Don't remove
4846 pending activation if the function fails.
4848 * dbus/dbus-list.c (_dbus_list_insert_before_link)
4849 (_dbus_list_insert_after_link): new code to facilitate
4852 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4853 new functionality, so we can preallocate the ability to insert
4856 * bus/connection.c (bus_transaction_add_cancel_hook): new function
4857 allowing us to put custom hooks in a transaction to be used for
4858 cancelling said transaction
4860 * doc/dbus-specification.sgml: add some discussion of secondary
4861 service owners, and disallow zero-length service names
4863 * bus/services.c (bus_registry_acquire_service): new function,
4864 splits out part of bus_driver_handle_acquire_service() and fixes
4865 a bug where we didn't remove the service doing the acquiring
4866 from the secondary queue if we failed to remove the current owner
4867 from the front of the queue.
4869 2003-04-10 Alexander Larsson <alexl@redhat.com>
4871 * doc/dbus-specification.sgml:
4872 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4874 2003-04-10 Alexander Larsson <alexl@redhat.com>
4879 Added files to cvsignore
4881 * dbus/dbus-message.h:
4882 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4883 Make get_named() take two out argument and return a boolean.
4884 (dbus_message_iter_get_args_valist):
4885 Update usage of get_named().
4886 (dbus_message_iter_append_byte):
4888 (dbus_message_iter_append_named)
4890 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4893 2003-04-10 Alexander Larsson <alexl@redhat.com>
4895 * dbus/dbus-marshal.[ch]:
4896 Add array_type_pos argument to _dbus_marshal_validate_arg.
4897 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4899 * dbus/dbus-message.[ch]:
4900 Multi-dimensional arrays have full type specification in the
4901 outermost array. Iter code re-arranged to handle this.
4902 Added some more iter tests.
4904 * doc/dbus-specification.sgml:
4907 Update new array encoding description.
4908 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4910 * test/data/invalid-messages/array-with-mixed-types.message:
4911 * test/data/valid-messages/array-of-array-of-uint32.message:
4912 Change to the new array format.
4914 * test/data/invalid-messages/too-short-dict.message:
4917 * test/data/valid-messages/recursive-types.message:
4918 Fix up and extend test.
4920 2003-04-10 Havoc Pennington <hp@pobox.com>
4922 * bus/dispatch.c: lots of fixes
4924 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4925 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4926 that was crack, broke the test service.
4928 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4929 handling to avoid piling up errors if we get a failure on the
4932 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4933 pid in assertion failures.
4935 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4936 to some fixed size of file descriptor array. Don't return TRUE
4937 anytime a timeout exists, that led to lots of busy loop silliness
4940 2003-04-09 Havoc Pennington <hp@redhat.com>
4942 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4943 I'd checked this in earlier but hadn't.
4945 2003-04-09 Havoc Pennington <hp@redhat.com>
4947 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4948 the activation test (man this is getting old!)
4950 2003-04-09 Havoc Pennington <hp@redhat.com>
4952 * test/test-utils.c: use dispatch status function to fix this up
4954 * bus/connection.c (connection_watch_callback): don't dispatch
4956 (connection_timeout_callback): don't dispatch from here
4957 (bus_connections_setup_connection): set the dispatch status function
4958 (bus_connection_disconnected): unset it
4960 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4961 used to add a connection to be dispatched
4962 (_dbus_loop_iterate): do the dispatching at the end of each
4965 * dbus/dbus-connection.c
4966 (dbus_connection_set_dispatch_status_function): new function
4967 allowing us to fix up main loop usage
4968 (_dbus_connection_last_unref): free all the various function
4970 (dbus_connection_dispatch): call the DispatchStatusFunction
4971 whenever this function returns
4972 (dbus_connection_handle_watch): call DispatchStatusFunction
4973 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4974 (reply_handler_timeout): call DispatchStatusFunction
4975 (dbus_connection_flush): call DispatchStatusFunction
4977 2003-04-09 Havoc Pennington <hp@redhat.com>
4979 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4982 * bus/dispatch.c (check_service_activated): fix bug in test
4984 * dbus/dbus-mainloop.c (check_timeout): fix this up
4986 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4987 verbose output so we can sort out output from different processes,
4988 e.g. in the activation case.
4990 2003-04-08 Colin Walters <walters@gnu.org>
4992 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4994 (bus_context_new): Set it.
4995 (bus_context_unref): Use it to delete the pid file.
4997 2003-04-08 Havoc Pennington <hp@redhat.com>
4999 * test/data/invalid-messages/array-with-mixed-types.message:
5000 regression test that fails for the moment
5002 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
5003 tests for convenience
5005 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
5006 array of nil, it broke things.
5008 * test/data/invalid-messages/array-of-nil.message: regression test
5010 * test/data/valid-messages/array-of-array-of-uint32.message:
5011 happened to write this so added it to suite
5013 2003-04-08 Havoc Pennington <hp@redhat.com>
5015 * bus/driver.c (bus_driver_handle_acquire_service): init
5016 retval/reply before checking name
5018 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
5019 recursion depth argument
5021 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
5022 in the public struct for future extension
5024 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
5027 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
5030 * doc/dbus-specification.sgml: fix typo
5032 2003-04-08 Alexander Larsson <alexl@redhat.com>
5034 Implemented recursive types, named types and new-style iters
5037 * glib/test-thread-client.c: (thread_func):
5038 * glib/test-thread-server.c: (handle_test_message):
5039 * test/test-service.c: (handle_echo):
5048 * dbus/dbus-internals.c: (_dbus_type_to_string):
5049 Update for new types.
5051 * dbus/dbus-marshal.[ch]:
5052 Implement recursive types and the new marshalling format.
5053 Remove hardcoded dict marshalling.
5054 Marshal named types.
5056 * dbus/dbus-message-builder.c:
5058 Remove references to old types
5060 * dbus/dbus-message.[ch]:
5061 New non-refcounted iter API that supports recursive iters.
5062 Use iters for appending, including support for recursive
5064 Add byte and named type support.
5065 Update everything to new marshalling formats.
5066 Add tests for new API.
5068 * dbus/dbus-protocol.h:
5069 Remove old array types.
5070 Add types: BYTE, ARRAY, DICT, NAMED
5072 * dbus/dbus-string.c:
5073 * dbus/dbus-sysdeps.c:
5074 Make parse_double locale safe.
5076 * dbus/dbus-test-main.c:
5082 * doc/dbus-specification.sgml:
5085 * test/data/incomplete-messages/missing-body.message:
5086 * test/data/invalid-messages/bad-boolean.message:
5087 * test/data/invalid-messages/bad-boolean-array.message:
5088 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
5089 * test/data/invalid-messages/boolean-has-no-value.message-raw:
5090 * test/data/invalid-messages/too-short-dict.message:
5091 * test/data/valid-messages/dict-simple.message:
5092 * test/data/valid-messages/dict.message:
5093 * test/data/valid-messages/emptiness.message:
5094 * test/data/valid-messages/lots-of-arguments.message:
5095 * test/data/valid-messages/no-padding.message:
5096 * test/data/valid-messages/recursive-types.message:
5097 Add missing NAME fields
5098 Fix up dicts & arrays
5100 * test/data/invalid-messages/dict-with-nil-value.message:
5101 Removed, this is not invalid anymore.
5103 * test/data/valid-messages/recursive-types.message:
5104 Add new test for deeply recursive types.
5106 2003-04-07 Havoc Pennington <hp@pobox.com>
5108 * bus/driver.c (bus_driver_handle_acquire_service): return an
5109 error if you try to acquire a service that starts with ':'
5111 2003-04-07 Havoc Pennington <hp@redhat.com>
5113 * doc/dbus-specification.sgml: require that base service names
5114 start with ':' and that the base service is created/deleted
5115 as first and last things a connection does on the bus
5117 * bus/dispatch.c (check_existent_service_activation): lots more
5118 work on the activation test; it doesn't fully pass yet...
5120 * test/test-service.c (main): fix so we don't memleak the
5121 connection to the message bus
5122 (filter_func): accept a message asking us to exit
5124 2003-04-06 Havoc Pennington <hp@pobox.com>
5126 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
5129 * configure.in: fixes to Qt detection from Colin Walters
5131 * doc/Makefile.am: Only remove generated docbook dirs if they
5132 exist, from Colin Walters
5134 * dbus/dbus-bus.c: change how we set well-known connections to
5135 NULL, so that it works if a single connection is stored in
5136 two well-known array slots.
5138 * test/Makefile.am: remove a lot of stuff that isn't immediately
5139 useful, it's in CVS history if we want it.
5141 * test/test-service.c: use dbus-mainloop instead of that
5144 2003-04-06 Havoc Pennington <hp@pobox.com>
5146 * dbus/Makefile.am: split lists of sources into stuff that goes in
5147 the library, util functions that go in the lib and are also used
5148 elsewhere, and util functions that are used in tests/daemon but
5149 don't go in the lib.
5151 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
5152 here so it can be used in test binaries also
5154 2003-04-06 Havoc Pennington <hp@pobox.com>
5156 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
5157 here in the parent process, so we can return an error if it
5158 fails. Also, move some of the code into the child so the parent
5159 is less hosed if we fail midway through.
5161 * bus/bus.c (bus_context_new): move pidfile detection further up
5162 in the function, before we start overwriting sockets and such.
5164 * bus/messagebus.in: adjust this a bit, not sure if it will work.
5166 * configure.in: add --with-system-pid-file and --with-system-socket
5168 2003-04-06 Colin Walters <walters@verbum.org>
5170 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
5172 * bus/system.conf.in: Declare a pidfile.
5174 * bus/bus.c (bus_context_new): Test for an existing pid file, and
5175 create one (if appropriate).
5177 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
5178 (struct BusConfigParser) [pidfile]: New.
5179 (element_type_to_name, merge_included, start_busconfig_child)
5180 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
5181 (bus_config_parser_unref): Free it.
5182 (bus_config_parser_get_pidfile): New function.
5184 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
5186 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
5188 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
5190 * dbus/dbus-sysdeps.h: Prototype it.
5192 2003-04-06 Havoc Pennington <hp@pobox.com>
5194 * bus/bus.c (bus_context_new): print the address in here, rather
5195 than in main(), because we need to do it before forking the daemon
5197 * bus/dispatch.c (send_service_nonexistent_error): set the sender
5198 on the service nonexistent error
5200 * bus/driver.c (bus_driver_handle_acquire_service): set the
5201 sender on the AcquireService reply
5203 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
5204 server also listen on a UNIX socket so services can connect to it.
5206 2003-04-06 Havoc Pennington <hp@pobox.com>
5208 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
5209 so it detects deadlocks and also we actually init threads when
5212 2003-04-06 Havoc Pennington <hp@pobox.com>
5214 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
5215 save the domain socket name, and unlink it when we disconnect the
5216 server. Means that at least when we exit normally, we won't leave
5217 a bunch of junk in /tmp
5219 * dbus/dbus-transport-unix.c
5220 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
5221 memory management). (I was making a real change here but then
5224 2003-04-06 Havoc Pennington <hp@pobox.com>
5226 * bus/bus.c (bus_context_new): fix wrong handling of
5227 server_data_slot_unref() in the error case.
5229 * dbus/dbus-internals.h (_dbus_assert): change so it passes
5230 "(condition) != 0" to _dbus_real_assert so that
5231 "_dbus_assert (pointer)" doesn't cause a warning
5233 * bus/main.c (main): accept --print-address option to print out
5234 the message bus address
5236 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
5238 * dbus/dbus-transport.c (_dbus_transport_open): special error for
5239 "tmpdir" option to unix: address on client side
5241 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
5244 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
5245 we can use to create sockets in the test suite.
5247 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
5248 cleanly. To be used for testing.
5250 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
5252 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
5254 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5255 handle trying to call this when there's no servers active
5257 2003-04-05 Havoc Pennington <hp@pobox.com>
5263 2003-04-05 Havoc Pennington <hp@pobox.com>
5265 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
5266 crash on startup. Need to get "try starting the daemon"
5267 in the test suite I guess. ;-)
5269 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
5270 tracked the number of open connections; it's better done in
5271 application-specific code as you want it to span all servers etc.
5273 2003-04-05 Havoc Pennington <hp@pobox.com>
5275 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
5276 patch from Colin Walters
5278 2003-04-05 Havoc Pennington <hp@pobox.com>
5280 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
5281 reality; in fact multiple mechanisms are allowed.
5283 * dbus/dbus-internals.c (_dbus_real_assert)
5284 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
5285 _dbus_assert_not_reached() into functions, so that they don't show
5286 up in basic block counts for test coverage, and don't use up as
5287 much disk space. Does mean slower execution speed though, so
5288 assumes --disable-asserts is the normal production case.
5290 2003-04-05 Havoc Pennington <hp@pobox.com>
5292 * test/Makefile.am (dist-hook): also dist *.in files
5298 2003-04-05 Havoc Pennington <hp@pobox.com>
5300 * dbus/dbus-string.c: docs warning
5302 * dbus/dbus-spawn.c: missing docs
5304 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
5306 2003-04-05 Havoc Pennington <hp@pobox.com>
5308 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
5311 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
5312 to -1 once we've reaped the babysitter
5313 (_dbus_babysitter_handle_watch): do as much work as we can, not
5316 * bus/activation.c: add code using DBusBabysitter so that we
5317 handle it when a service fails to start up properly.
5318 (bus_activation_service_created): don't remove the activation
5319 entries as we go, just let them get removed when we free the pending
5320 activation. Unref reply messages after sending them.
5322 2003-04-05 Havoc Pennington <hp@pobox.com>
5324 * test/decode-gcov.c (main): print per-directory stats in the report
5326 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
5328 2003-04-05 Havoc Pennington <hp@pobox.com>
5330 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
5332 * test/decode-gcov.c: hack up a little program to suck data
5333 out of gcov files. Yes this is sort of silly.
5335 * configure.in: define something in config.h and do an
5336 AM_CONDITIONAL when gcov is enabled
5338 2003-04-04 Havoc Pennington <hp@redhat.com>
5340 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
5341 return a "babysitter" object that is used to monitor the status of
5342 the spawned process and reap it when required.
5344 * test/test-segfault.c, test/test-exit.c,
5345 test/test-sleep-forever.c: binaries that do various lame things,
5346 used in the test suite.
5348 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
5350 2003-04-03 Havoc Pennington <hp@pobox.com>
5352 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
5353 in preparation for modifying it, dbus-sysdeps is getting
5356 2003-04-03 Havoc Pennington <hp@redhat.com>
5358 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
5361 * bus/*.[hc]: adapt to mainloop change
5363 2003-04-03 Havoc Pennington <hp@redhat.com>
5365 * bus/activation.c (load_directory): fix up memleaks
5366 (bus_activation_entry_free): free the entry
5368 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
5369 we get one from the message bus; fix memleaks.
5371 * dbus/dbus-message.c (dbus_set_error_from_message): new function
5373 2003-04-03 Havoc Pennington <hp@pobox.com>
5375 * bus/config-parser.c (bus_config_parser_unref): free
5376 list of mechanisms, bug discovered by test suite enhancements
5377 (putting system.conf and session.conf into suite)
5379 * test/Makefile.am, test/test-service.c: add placeholder for a
5380 test service that we'll activate as part of test suite. Doesn't
5383 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
5384 setting NULL value, and use system malloc not dbus_malloc()
5385 when we have unavoidable memleakage.
5387 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
5388 didn't work, and support DBUS_BUS_ACTIVATION.
5390 * bus/activation.c (child_setup): pass our well-known bus type to
5393 * bus/config-parser.c: support <type> to specify well-known type
5395 * doc/dbus-specification.sgml: document the env variables to
5396 locate well-known buses and find service activator
5398 2003-04-02 Havoc Pennington <hp@redhat.com>
5400 * test/Makefile.am (all-local): add a rule to copy tests to
5401 builddir, so we can have generated tests. Use this to remove the
5402 silly hack for testing system.conf and session.conf. Will use this
5403 shortly to generate .service files pointing to test binaries.
5405 2003-04-02 Havoc Pennington <hp@redhat.com>
5407 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
5408 current alloc and needed new length, not max of the doubled
5409 allocation and needed new length. Also, when building tests,
5410 don't do the double-allocation stuff, just realloc every time.
5412 2003-04-02 Havoc Pennington <hp@redhat.com>
5414 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
5416 (_dbus_string_get_dirname): new
5417 (_dbus_sysdeps_test): new
5418 (_dbus_directory_open): include dirnames in error messages
5420 * bus/config-parser.c: interpret <include> and <includedir> and
5421 <servicedir> relative to config file location if the given
5422 filename is not absolute.
5424 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
5426 2003-04-02 Havoc Pennington <hp@redhat.com>
5428 * bus/connection.c (bus_transaction_send_error_reply): set sender
5429 service for the error, and unref the reply on success
5431 * bus/activation.c: convert to use BusTransaction so OOM can be
5433 (bus_activation_service_created): set sender of the message
5435 2003-04-01 Havoc Pennington <hp@redhat.com>
5437 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
5438 <includedir> (at least mostly)
5440 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
5441 first, then the user ID
5443 2003-04-01 Havoc Pennington <hp@pobox.com>
5445 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
5448 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
5450 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
5452 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
5453 socket 0777, and unlink any existing socket.
5455 * bus/bus.c (bus_context_new): change our UID/GID and fork if
5456 the configuration file so specifies; set up auth mechanism
5459 * bus/config-parser.c (bus_config_parser_content): add support
5460 for <fork> option and fill in code for <auth>
5462 * bus/system.conf.in: add <fork/> to default configuration,
5463 and limit auth mechanisms to EXTERNAL
5465 * doc/config-file.txt (Elements): add <fork>
5467 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
5468 (_dbus_change_identity): new function
5470 2003-03-31 Havoc Pennington <hp@redhat.com>
5472 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
5473 (_dbus_listen_unix_socket): fix off-by-one error in null
5474 termination spotted by Nalin
5476 2003-03-31 Havoc Pennington <hp@redhat.com>
5478 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
5479 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
5480 having a real home directory available.
5482 2003-03-31 Havoc Pennington <hp@redhat.com>
5484 * bus/Makefile.am (install-data-hook): create /var/run/dbus
5486 * bus/messagebus.in: add init script for Red Hat /etc/init.d
5488 * configure.in: add support for specifying a style of init script
5491 2003-03-31 Havoc Pennington <hp@redhat.com>
5493 Fix some annoying DBusString API and fix all affected code.
5495 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
5497 (_dbus_string_get_data): change to return string instead of using
5499 (_dbus_string_get_const_data): ditto
5500 (_dbus_string_get_data_len): ditto
5501 (_dbus_string_get_const_data_len): ditto
5503 2003-03-31 Havoc Pennington <hp@redhat.com>
5505 * bus/main.c (main): fix up the command line arguments to be nicer
5507 2003-03-31 Havoc Pennington <hp@redhat.com>
5509 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
5510 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
5511 final location that lands in the config file
5513 * bus/config-loader-expat.c (bus_config_load): fix type of
5516 * doc/TODO: remove TODO item for dbus_bus_get()
5518 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
5520 2003-03-31 Havoc Pennington <hp@pobox.com>
5522 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
5523 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
5524 argument since they are always client side
5526 * dbus/dbus-server.c (dbus_server_get_address): new function
5528 * bus/main.c (main): take the configuration file as an argument.
5530 * test/data/valid-config-files/debug-allow-all.conf: new file to
5531 use with dispatch.c tests for example
5533 * bus/test-main.c (main): require test data dir
5535 * bus/bus.c (bus_context_new): change this to take a
5536 configuration file name as argument
5538 * doc/config-file.txt (Elements): add <servicedir>
5540 * bus/system.conf, bus/session.conf: new files
5542 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
5543 well-known socket if none set
5545 * configure.in: create system.conf and session.conf
5547 2003-03-30 Havoc Pennington <hp@pobox.com>
5549 * bus/config-parser.c: hacking
5551 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
5552 to shut down, since it could cause weirdness with the DBusList
5555 * dbus/dbus-list.c (_dbus_list_test): add tests for the
5556 link-oriented stack routines
5557 (alloc_link): free the mempool if the first alloc from it fails
5559 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
5561 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
5563 (_dbus_string_skip_white): new
5565 * doc/config-file.txt (Elements): add <includedir>
5567 2003-03-28 Havoc Pennington <hp@pobox.com>
5569 * dbus/dbus-string.c (_dbus_string_copy_data_len)
5570 (_dbus_string_copy_data): new functions
5572 2003-03-28 Anders Carlsson <andersca@codefactory.se>
5574 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
5578 * dbus/dbus-memory.c:
5581 2003-03-28 Havoc Pennington <hp@pobox.com>
5583 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
5584 I think it may have just been superstition. Not sure.
5586 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
5587 failures that were not being handled.
5589 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
5591 * dbus/dbus-memory.c: add ability to set number of mallocs in a
5592 row that will fail on out-of-memory.
5594 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
5595 function for testing out-of-memory handling.
5597 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
5598 allocation functions, they do map exactly to the expat ones.
5600 2003-03-27 Havoc Pennington <hp@redhat.com>
5602 * bus/config-loader-libxml.c (bus_config_load): add another error
5605 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5608 Add note about automatic service activation.
5610 * doc/dbus-specification.sgml:
5611 Rename the specification and clarify a few things.
5613 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5616 * dbus/dbus-address.c:
5618 * dbus/dbus-marshal.c:
5619 * dbus/dbus-server-debug-pipe.c:
5620 * dbus/dbus-transport-unix.c:
5621 Fix documentation warnings.
5623 2003-03-26 Havoc Pennington <hp@pobox.com>
5625 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
5626 after every test so it's quick and easy to see which leaked, and
5627 so we test multiple dbus_shutdown() calls
5629 * configure.in: change configure.in XML stuff to also support
5632 * config-loader-libxml.c: some hacking
5634 * config-loader-expat.c: some hacking
5636 * config-parser.c: some hacking, plus tests
5638 2003-03-25 Havoc Pennington <hp@redhat.com>
5640 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
5642 * configure.in: add --with-xml option to specify XML library,
5643 right now only libxml is supported.
5645 * bus/config-loader-libxml.c, config-parser.c: sync some minor
5646 nonworking code between home and work, still just stubs
5648 2003-03-24 Havoc Pennington <hp@redhat.com>
5650 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
5653 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
5654 NULL argument for "message" if the error is a well-known one,
5655 fill in a generic message in this case.
5657 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
5660 * bus/test.c (bus_test_flush_bus): add
5662 * bus/policy.c (bus_policy_test): test code stub
5664 2003-03-24 Havoc Pennington <hp@pobox.com>
5666 * bus/connection.c (bus_connections_setup_connection): set up
5667 the "can this user connect" function, but it always returns
5668 TRUE until we have a config file parser so we can have a config
5669 file that allows connections.
5671 2003-03-23 Havoc Pennington <hp@pobox.com>
5673 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
5674 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
5675 the mutex, so we can check for proper memory management
5678 * dbus/dbus-dataslot.c: remove the mutex from
5679 DBusDataSlotAllocator and lock it manually when using it,
5680 to simplify fitting it into the global slots framework.
5682 * dbus/dbus-threads.c (init_static_locks): rework how we're
5683 handling global locks so they are easily shut down.
5685 * bus/policy.c (bus_policy_append_rule): fix
5687 * bus/test-main.c (main): check for memleaks
5689 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
5690 test suite check for memleaks
5692 * dbus/dbus-memory.c: add support in test mode for tracking
5693 number of outstanding blocks
5695 2003-03-23 Havoc Pennington <hp@pobox.com>
5697 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
5700 * dbus/dbus-hash.h: add ULONG hash keys
5702 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
5703 (_dbus_get_group_id): new function
5705 2003-03-20 Havoc Pennington <hp@redhat.com>
5707 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
5709 (dbus_connection_get_unix_user): new function
5711 2003-03-20 Havoc Pennington <hp@pobox.com>
5713 * bus/connection.c (bus_connection_send_oom_error): assert that
5714 message has a sender
5715 (connection_execute_transaction): ditto
5716 (bus_connection_preallocate_oom_error): fix to set the sender, and
5717 set recipient to the destination service, not the bus driver
5719 * bus/policy.c: hacking
5721 * dbus/dbus-message.c (dbus_message_service_is): new function
5722 (dbus_message_sender_is): new
5724 2003-03-19 Havoc Pennington <hp@redhat.com>
5726 * bus/policy.c: start sketching code for policy restrictions on
5727 what connections can do.
5729 2003-03-18 Havoc Pennington <hp@redhat.com>
5731 * doc/TODO: some notes on high-level todo items. Little nitpick
5732 stuff is all in @todo, so no need to add it here.
5734 * doc/config-file.txt: some notes on how config file might look
5736 2003-03-18 Anders Carlsson <andersca@codefactory.se>
5742 2003-03-17 Havoc Pennington <hp@redhat.com>
5744 * dbus/dbus-internals.h: add gcc attributes so that
5745 our printf-style functions warn on bad arguments to
5748 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
5751 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5754 2003-03-17 Havoc Pennington <hp@redhat.com>
5756 * bus/test-main.c (main): make it print something as it runs
5757 so make check doesn't look stuck
5759 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5760 from CVS, now obsolete
5762 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5764 * bus/dispatch.c: (bus_dispatch):
5765 Refetch the service name since it may have been reallocated
5766 when dbus_message_set_sender was called.
5768 * dbus/dbus-sysdeps.c: (_dbus_accept):
5769 Add address and address length variables and use them to stop
5770 valgrind from complaining.
5772 2003-03-17 Havoc Pennington <hp@pobox.com>
5774 All tests pass, no memleaks, no valgrind complaints.
5776 * bus/test.c: refcount handler_slot
5778 * bus/connection.c (bus_connections_new): refcount
5779 connection_data_slot
5781 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5782 bytes so that auth scripts pass.
5784 * bus/dispatch.c: init message_handler_slot so it gets allocated
5787 * bus/dispatch.c (message_handler_slot_ref): fix memleak
5789 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5790 dealloc server_pipe_hash when no longer used for benefit of
5793 * dbus/dbus-auth.c (process_command): memleak fix
5795 * bus/dispatch.c (check_hello_message): memleak fix
5797 2003-03-16 Havoc Pennington <hp@pobox.com>
5799 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5801 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5803 * bus/activation.c (bus_activation_activate_service): Append
5804 the pending activation entry to the list of pending activations.
5806 2003-03-16 Havoc Pennington <hp@pobox.com>
5808 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5811 * dbus/dbus-address.c (create_entry): fix OOM handling when
5812 failing to alloc entry->method
5814 2003-03-16 Havoc Pennington <hp@pobox.com>
5816 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5819 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5820 add some missing dbus_set_result
5822 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5823 alloc the DBusMessageHandler
5825 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5826 the transport here, since we call this from the finalizer; it
5827 resulted in a double-finalize.
5829 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5830 where we tried to use transport->connection that was NULL,
5831 happened when transport was disconnected early on due to OOM
5833 * bus/*.c: adapt to handle OOM for watches/timeouts
5835 * dbus/dbus-transport-unix.c: port to handle OOM during
5838 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5839 reference to unused bytes instead of a copy
5841 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5844 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5847 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5850 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5852 * doc/dbus-specification.sgml:
5853 Document reply message for ActivateService.
5855 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5857 * bus/activation.c: (bus_pending_activation_entry_free),
5858 (bus_pending_activation_free), (bus_activation_new),
5859 (bus_activation_unref), (bus_activation_service_created),
5860 (bus_activation_activate_service):
5862 * bus/bus.c: (bus_context_new):
5863 * bus/desktop-file.c: (new_section):
5864 * bus/driver.c: (bus_driver_send_service_deleted),
5865 (bus_driver_handle_activate_service):
5866 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5868 * dbus/dbus-connection.c:
5869 (dbus_connection_send_with_reply_and_block):
5870 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5871 * dbus/dbus-protocol.h:
5872 Make activation work better. Now pending activations will be queued
5873 and the daemon won't try to activate services that are already registered.
5875 2003-03-16 Havoc Pennington <hp@pobox.com>
5877 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5880 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5881 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5883 2003-03-16 Havoc Pennington <hp@pobox.com>
5885 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5886 this. always run the test suite before commit...
5888 * bus/*: adapt to DBusConnection API changes
5890 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5891 requires renaming stuff to avoid dbus_connection_dispatch name
5894 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5897 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5898 separate from _dbus_message_loader_return_buffer()
5900 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5901 this, because it's now always broken to use; the number of
5902 messages in queue vs. the number still buffered by the message
5903 loader is undefined/meaningless. Should use
5904 dbus_connection_get_dispatch_state().
5905 (dbus_connection_dispatch): rename from
5906 dbus_connection_dispatch_message
5908 2003-03-16 Havoc Pennington <hp@pobox.com>
5910 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5913 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5915 * dbus/dbus-connection.c:
5916 (dbus_connection_send_with_reply_and_block):
5917 Decrease connection->n_incoming when removing an entry
5919 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5920 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5921 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5922 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5923 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5924 (dbus_dict_get_byte_array):
5925 Handle NULL arrays and strings. Also add support for byte arrays.
5927 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5928 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5929 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5930 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5931 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5932 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5933 * dbus/dbus-marshal.h:
5934 Add support for marshalling and demarshalling empty arrays and strings.
5936 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5937 (dbus_message_append_string_array),
5938 (dbus_message_iter_get_boolean),
5939 (dbus_message_iter_get_boolean_array),
5940 (dbus_message_iter_get_int32_array),
5941 (dbus_message_iter_get_uint32_array),
5942 (dbus_message_iter_get_double_array),
5943 (dbus_message_iter_get_byte_array),
5944 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5945 (check_message_handling):
5946 Add support for getting empty arrays and dicts.
5948 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5949 Don't do any validation at all for now, that's better than just checking
5952 * test/data/valid-messages/emptiness.message:
5953 New test message with lots of empty arrays.
5955 2003-03-16 Havoc Pennington <hp@pobox.com>
5957 * dbus/dbus-connection.c
5958 (_dbus_connection_queue_received_message_link): new function that
5959 can't fail due to OOM
5961 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5962 new function pops a message together with a list link
5965 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5966 message queuing functions to avoid needing to alloc memory
5968 2003-03-16 Havoc Pennington <hp@pobox.com>
5970 Oops - test code was only testing failure of around 30 of the
5971 mallocs in the test path, but it turns out there are 500+
5972 mallocs. I believe this was due to misguided linking setup such
5973 that there was one copy of dbus_malloc etc. in the daemon and one
5974 in the shared lib, and only daemon mallocs were tested. In any
5975 case, the test case now tests all 500+ mallocs, and doesn't pass
5976 yet, though there are lots of fixes in this patch.
5978 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5979 this so that it doesn't need to allocate memory, since it
5980 has no way of indicating failure due to OOM (and would be
5981 annoying if it did).
5983 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5985 * bus/Makefile.am: rearrange to create two self-contained
5986 libraries, to avoid having libraries with overlapping symbols.
5987 that was resulting in weirdness, e.g. I'm pretty sure there
5988 were two copies of global static variables.
5990 * dbus/dbus-internals.c: move the malloc debug stuff to
5993 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5996 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5998 * dbus/dbus-address.c (dbus_parse_address): free list nodes
6001 * bus/dispatch.c (bus_dispatch_add_connection): free
6002 message_handler_slot when no longer using it, so
6003 memory leak checkers are happy for the test suite.
6005 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
6007 * bus/bus.c (new_connection_callback): disconnect in here if
6008 bus_connections_setup_connection fails.
6010 * bus/connection.c (bus_connections_unref): fix to free the
6012 (bus_connections_setup_connection): if this fails, don't
6013 disconnect the connection, just be sure there are no side
6016 * dbus/dbus-string.c (undo_alignment): unbreak this
6018 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
6020 (_dbus_auth_new): fix the order in which we free strings
6023 * bus/connection.c (bus_connection_disconnected): fix to
6024 not send ServiceDeleted multiple times in case of memory
6027 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
6028 get the base service name
6029 (dbus_bus_register_client): don't return base service name,
6030 instead store it on the DBusConnection and have an accessor
6032 (dbus_bus_register_client): rename dbus_bus_register()
6034 * bus/dispatch.c (check_hello_message): verify that other
6035 connections on the bus also got the correct results, not
6036 just the one sending hello
6038 2003-03-15 Havoc Pennington <hp@pobox.com>
6040 Make it pass the Hello handling test including all OOM codepaths.
6041 Now to do other messages...
6043 * bus/services.c (bus_service_remove_owner): fix crash when
6044 removing owner from an empty list of owners
6045 (bus_registry_ensure): don't leave service in the list of
6046 a connection's owned services if we fail to put the service
6049 * bus/connection.c (bus_connection_preallocate_oom_error): set
6050 error flag on the OOM error.
6052 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6053 handle _dbus_transport_set_connection failure
6055 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
6056 to create watches up front and simply enable/disable them as
6058 (unix_connection_set): this can now fail on OOM
6060 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
6061 of enabling/disabling a watch or timeout.
6063 * bus/loop.c (bus_loop_iterate): don't touch disabled
6066 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
6068 2003-03-15 Havoc Pennington <hp@pobox.com>
6070 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
6071 write useful test code, after all that futzing around ;-)
6073 Test does not yet pass because we can't handle OOM in
6074 _dbus_transport_messages_pending (basically,
6075 dbus_connection_preallocate_send() does not prealloc the write
6076 watch). To fix this, I think we need to add new stuff to
6077 set_watch_functions, namely a SetEnabled function so we can alloc
6078 the watch earlier, then enable it later.
6080 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
6081 dbus-memory.c to the convenience lib
6083 * bus/test.c: rename some static functions to keep them clearly
6084 distinct from stuff in connection.c. Handle client disconnection.
6086 2003-03-14 Havoc Pennington <hp@pobox.com>
6088 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
6089 transport, tests more of the real codepath. Set up clients
6090 with bus_setup_debug_client.
6092 * bus/test.c (bus_setup_debug_client): function to set up debug
6093 "clients" on the main loop
6095 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
6098 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
6101 * dbus/dbus-server-debug.c: support a debug server based on pipes
6103 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
6104 (_dbus_close): new function
6106 * configure.in: check for socketpair
6108 2003-03-14 Havoc Pennington <hp@redhat.com>
6110 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
6113 * dbus/dbus-transport-debug.c: rework this a good bit to be
6114 less complicated. hopefully still works.
6116 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
6119 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
6122 * dbus/dbus-message.c (dbus_message_copy): rename from
6123 dbus_message_new_from_message, fix it up to copy
6124 all the message fields, add test case
6126 * bus/dispatch.c (bus_dispatch_test): add some more test code,
6127 not quite passing yet
6129 2003-03-14 Havoc Pennington <hp@pobox.com>
6131 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
6132 until no work remains" in test code. (the large diff here
6133 is just code movement, no actual changes)
6135 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
6136 1, no point waiting around for test code.
6137 (_dbus_server_debug_accept_transport): unref the timeout
6138 after adding it (right?)
6140 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
6142 2003-03-13 Havoc Pennington <hp@redhat.com>
6144 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
6147 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
6150 * dbus/dbus-connection.h: Make AddWatchFunction and
6151 AddTimeoutFunction return a bool so they can fail on out-of-memory
6153 * bus/bus.c (bus_context_new): set up timeout handlers
6155 * bus/connection.c (bus_connections_setup_connection): set up
6158 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
6161 * bus/bus.c (bus_context_new): adapt to changes
6163 * bus/connection.c: adapt to changes
6165 * test/watch.c: adapt to DBusWatch changes
6167 * bus/dispatch.c (bus_dispatch_test): started adding this but
6170 2003-03-14 Anders Carlsson <andersca@codefactory.se>
6172 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
6174 2003-03-13 Havoc Pennington <hp@pobox.com>
6176 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
6177 set up a test framework as for the library
6179 2003-03-12 Havoc Pennington <hp@pobox.com>
6181 Throughout: purge global variables, introduce BusActivation,
6182 BusConnections, BusRegistry, etc. objects instead.
6184 * bus/bus.h, bus/bus.c: introduce BusContext as a global
6187 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
6188 going to redo this a bit differently I think
6190 2003-03-12 Havoc Pennington <hp@redhat.com>
6192 Mega-patch that gets the message bus daemon initially handling
6193 out-of-memory. Work still needed. Also lots of random
6194 moving stuff to DBusError instead of ResultCode.
6196 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
6198 * dbus/dbus-connection.c
6199 (dbus_connection_send_with_reply_and_block): use DBusError
6201 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
6204 * dbus/dbus-connection.c (dbus_connection_send): drop the result
6205 code here, as the only failure possible is OOM.
6207 * bus/connection.c (bus_connection_disconnect):
6208 rename bus_connection_disconnected as it's a notification only
6210 * bus/driver.c (bus_driver_handle_acquire_service): don't free
6211 "name" on get_args failure, should be done by get_args;
6212 don't disconnect client for bad args, just return an error.
6213 (bus_driver_handle_service_exists): ditto
6215 * bus/services.c (bus_services_list): NULL-terminate returned array
6217 * bus/driver.c (bus_driver_send_service_lost)
6218 (bus_driver_send_service_acquired): send messages from driver to a
6219 specific client to the client's unique name, not to the broadcast
6222 * dbus/dbus-message.c (decode_header_data): reject messages that
6223 contain no name field
6224 (_dbus_message_get_client_serial): rename to
6225 dbus_message_get_serial and make public
6226 (_dbus_message_set_serial): rename from set_client_serial
6227 (_dbus_message_set_reply_serial): make public
6228 (_dbus_message_get_reply_serial): make public
6230 * bus/connection.c (bus_connection_foreach): allow stopping
6231 iteration by returning FALSE from foreach function.
6233 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
6234 (dbus_connection_free_preallocated_send)
6235 (dbus_connection_preallocate_send): new API for sending a message
6236 without possibility of malloc failure.
6237 (dbus_connection_send_message): rename to just
6238 dbus_connection_send (and same for whole function family)
6240 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
6242 * dbus/dbus-sysdeps.c (_dbus_exit): new function
6244 * bus/activation.c: handle/return errors
6246 * dbus/dbus-errors.h: add more DBUS_ERROR #define
6248 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
6249 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
6250 (_dbus_result_from_errno): move to this file
6252 2003-03-10 Anders Carlsson <andersca@codefactory.se>
6254 * dbus/dbus-marshal.c:
6255 (_dbus_marshal_set_string):
6256 Take a length argument so we can marshal the correct string
6259 (_dbus_marshal_dict), (_dbus_demarshal_dict),
6260 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
6261 (_dbus_marshal_test):
6262 * dbus/dbus-marshal.h:
6263 Add support for marshalling and demarshalling dicts.
6265 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6266 Add support for TYPE DICT.
6268 * dbus/dbus-message.c: (set_string_field):
6269 Adjust header padding.
6271 (dbus_message_append_args_valist), (dbus_message_append_dict),
6272 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
6273 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
6274 (check_message_handling), (check_have_valid_message):
6275 * dbus/dbus-message.h:
6276 Add functions for setting and getting dicts.
6278 * dbus/dbus-protocol.h:
6284 * doc/dbus-specification.sgml:
6285 Add information about how dicts are marshalled.
6287 * test/data/invalid-messages/dict-with-nil-value.message:
6288 * test/data/invalid-messages/too-short-dict.message:
6289 * test/data/valid-messages/dict-simple.message:
6290 * test/data/valid-messages/dict.message:
6291 Add sample messages containing dicts.
6293 2003-03-08 Anders Carlsson <andersca@codefactory.se>
6295 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
6297 2003-03-07 Anders Carlsson <andersca@codefactory.se>
6300 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
6301 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
6302 (dbus_dict_set_int32), (dbus_dict_set_uint32),
6303 (dbus_dict_set_double), (dbus_dict_set_string),
6304 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
6305 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
6306 (dbus_dict_set_string_array), (_dbus_dict_test):
6308 Fix according to comments from Havoc.
6310 2003-03-06 Michael Meeks <michael@server.home>
6312 * configure.in: if we don't have kde-config, disable have_qt.
6314 2003-03-07 Anders Carlsson <andersca@codefactory.se>
6319 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
6320 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
6321 (dbus_dict_remove), (dbus_dict_get_value_type),
6322 (dbus_dict_get_keys), (dbus_dict_put_boolean),
6323 (dbus_dict_put_int32), (dbus_dict_put_uint32),
6324 (dbus_dict_put_double), (dbus_dict_put_string),
6325 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
6326 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
6327 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
6328 (dbus_dict_get_int32), (dbus_dict_get_uint32),
6329 (dbus_dict_get_double), (dbus_dict_get_string),
6330 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
6331 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
6332 (dbus_dict_get_string_array), (_dbus_dict_test):
6334 Add DBusDict implementation
6336 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
6340 2003-03-04 Havoc Pennington <hp@pobox.com>
6342 * test/data/auth/*: adapt to changes
6344 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
6345 USERID_BASE64 and change USERNAME_BASE64 to put in username not
6348 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
6349 more stuff from being in a context name, to make the protocol
6350 simpler to deal with
6352 * dbus/dbus-errors.c (dbus_error_has_name): new function
6353 (dbus_error_is_set): new function
6355 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
6356 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
6358 * dbus/dbus-connection.c (dbus_connection_flush): also read
6359 messages during a flush operation
6361 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
6363 2003-03-05 Anders Carlsson <andersca@codefactory.se>
6365 * configure.in: Check for gethostbyname on Solaris.
6367 * dbus/dbus-transport.c: (_dbus_transport_open):
6368 Remove duplicate "tcp" entry.
6370 * doc/dbus-specification.sgml:
6371 Clarify some things.
6373 2003-03-05 Anders Carlsson <andersca@codefactory.se>
6375 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
6376 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
6377 (_dbus_keyring_test):
6378 * dbus/dbus-md5.c: (_dbus_md5_compute):
6379 * dbus/dbus-sha.c: (_dbus_sha_compute):
6382 2003-03-05 Anders Carlsson <andersca@codefactory.se>
6384 * README: Add some things.
6386 2003-03-04 Anders Carlsson <andersca@codefactory.se>
6388 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
6389 after case DBUS_TYPE_BOOELAN.
6391 2003-03-02 Havoc Pennington <hp@pobox.com>
6393 * test/break-loader.c (randomly_set_extreme_ints): add test that
6394 sets really huge and small integers
6396 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
6397 that length of boolean array fits in the string, and that
6398 string has room for boolean value in single-bool case.
6400 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
6401 optional value to "ALIGN" command which is what to fill the
6404 * test/data/valid-messages/no-padding.message: add regression
6405 test for the message padding problem
6407 2003-03-02 Havoc Pennington <hp@pobox.com>
6409 * dbus/dbus-message.c (decode_header_data): fix to always init
6410 message_padding, from Benjamin Dauvergne
6412 2003-03-02 Havoc Pennington <hp@pobox.com>
6418 2003-03-01 Joe Shaw <joe@assbarn.com>
6420 * configure.in: Check for "struct cmsgcred" and try to access its
6421 members for BSD-like unices.
6423 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
6424 _dbus_read_credentials_unix_socket().
6425 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
6426 read() for reading the credential byte off the unix socket. Use
6427 struct cmsgcred on systems that support it.
6429 2003-02-27 Alexander Larsson <alexl@redhat.com>
6433 Make gthreads-2.0 dependency optional. Don't build thread test if
6436 2003-02-27 Havoc Pennington <hp@pobox.com>
6438 * dbus/dbus-connection.c
6439 (dbus_connection_send_message_with_reply_and_block): fix doh!
6440 doh! doh! bug that resulted in never removing a reply from the
6441 queue, no wonder we called get_reply_serial so much ;-)
6443 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
6444 and client serial instead of demarshaling them every time
6446 2003-02-27 Havoc Pennington <hp@pobox.com>
6448 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
6449 more inlined, using dbus-string-private.h, speeds things up
6452 * dbus/dbus-string.c (_dbus_string_free): apply align offset
6453 when freeing the string
6454 (_dbus_string_steal_data): fix for align offset
6455 (undo_alignment): new function
6457 2003-02-26 Havoc Pennington <hp@redhat.com>
6459 All kinds of audit fixes from Owen, plus initial attempt to
6460 handle unaligned memory returned from malloc.
6462 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
6463 leave room for align_offset and nul byte
6464 (fixup_alignment): function to track an align_offset and
6465 ensure real->str is aligned
6466 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
6467 to allow a nul byte plus align offset
6468 (_dbus_string_lock): fix overflow issue
6469 (_dbus_string_init_const_len): add assertions on sanity of len,
6470 assign allocated to be ALLOCATION_PADDING larger than len
6471 (set_length): fixup the overflow handling
6472 (_dbus_string_get_data_len): fix overflow in assertion
6473 (open_gap): detect overflow in size of gap to be opened
6474 (_dbus_string_lengthen): add overflow check
6475 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
6476 (_dbus_string_append): add overflow check
6477 (_dbus_string_append_unichar): overflow
6478 (_dbus_string_delete): fix overflow in assertion
6479 (_dbus_string_copy_len): overflow in assertion
6480 (_dbus_string_replace_len): overflows in assertions
6481 (_dbus_string_find): change to implement in terms of
6482 _dbus_string_find_to
6483 (_dbus_string_find_to): assorted fixage
6484 (_dbus_string_equal_c_str): assert c_str != NULL,
6485 fix logic so the function works
6486 (_dbus_string_ends_with_c_str): fix overflow thingy
6487 (_dbus_string_base64_encode): overflow fix
6488 (_dbus_string_validate_ascii): overflow
6489 (_dbus_string_validate_nul): overflow
6491 2003-02-26 Havoc Pennington <hp@redhat.com>
6493 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
6495 2003-02-26 Alexander Larsson <alexl@redhat.com>
6498 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
6500 * dbus/dbus-connection.c:
6501 * dbus/dbus-connection.h:
6502 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
6503 Add dbus_connection_set_wakeup_main_function and use it when queueing
6504 incoming and outgoing messages.
6507 * dbus/dbus-dataslot.c:
6508 Threadsafe usage of DBusDataSlotAllocator
6510 * dbus/dbus-message.c: (dbus_message_get_args_iter):
6513 * dbus/dbus-server-unix.c:
6516 * glib/dbus-gmain.c:
6517 Implement the new wakeup functions for glib.
6520 * glib/test-thread-client.c:
6521 * glib/test-thread-server.c:
6522 * glib/test-thread.h:
6523 Initial cut at some thread test code. Not really done yet.
6525 2003-02-26 Havoc Pennington <hp@pobox.com>
6527 * dbus/dbus-connection.c
6528 (dbus_connection_send_message_with_reply_and_block): fix crash
6529 where we ref'd the outgoing message instead of the returned reply
6531 * dbus/dbus-transport-unix.c (do_authentication): check read watch
6532 at the end of this function, so if we didn't need to read for
6533 authentication, we reinstall it for receiving messages
6535 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
6536 a NULL sender for peer-to-peer case
6538 * dbus/dbus-transport-unix.c (check_read_watch): handle
6539 !authenticated case correctly
6541 * glib/dbus-gmain.c: add support for DBusServer
6543 * dbus/dbus-server.c: add data slot support
6545 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
6546 return values and handle errors
6548 * dbus/dbus-dataslot.c: factor out the data slot stuff from
6551 * Doxyfile.in (INPUT): add glib subdir
6553 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
6554 setup_with_g_main instead of hookup_with_g_main; write docs
6556 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6558 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
6559 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6560 * dbus/dbus-message.c: (dbus_message_append_boolean),
6561 (dbus_message_append_boolean_array),
6562 (dbus_message_get_args_valist), (_dbus_message_test):
6563 * dbus/dbus-message.h:
6564 * doc/dbus-specification.sgml:
6565 Various fixes as pointed out by Havoc.
6567 * test/data/invalid-messages/bad-boolean-array.message:
6568 * test/data/invalid-messages/bad-boolean.message:
6569 Add invalid boolean value test cases.
6571 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6573 * dbus/dbus-internals.c: (_dbus_type_to_string):
6574 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6575 (_dbus_marshal_validate_arg):
6576 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6577 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6578 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
6579 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
6580 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
6581 (dbus_message_iter_get_double),
6582 (dbus_message_iter_get_boolean_array), (message_iter_test):
6583 * dbus/dbus-message.h:
6584 * dbus/dbus-protocol.h:
6585 * doc/dbus-specification.sgml:
6586 * test/data/valid-messages/lots-of-arguments.message:
6587 Add support for boolean and boolean array types.
6589 2003-02-23 Havoc Pennington <hp@pobox.com>
6591 * dbus/dbus-keyring.c: finish most of this implementation and
6594 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
6595 these barf if the error isn't cleared to NULL
6597 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
6598 (_dbus_create_directory): new function
6600 * dbus/dbus-errors.c (dbus_set_error): fix warning
6602 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
6603 (_dbus_string_hex_decode): new function
6604 (test_hex_roundtrip): test code
6606 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
6608 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
6610 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
6611 the save-to-temp/rename trick to atomically write the new file
6612 (_dbus_string_parse_uint): new function
6614 2003-02-22 Havoc Pennington <hp@pobox.com>
6616 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
6618 2003-02-22 Havoc Pennington <hp@pobox.com>
6620 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
6621 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
6623 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
6625 * dbus/test/data/sha-1: add US government test suite for SHA-1
6627 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6629 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6630 Make string arrays NULL-terminated.
6632 * dbus/dbus-memory.c: (dbus_free_string_array):
6633 * dbus/dbus-memory.h:
6634 New function for freeing NULL-terminated string arrays.
6636 * dbus/dbus-message-builder.c: (append_quoted_string),
6637 (_dbus_message_data_load):
6638 Add support for array types.
6640 * dbus/dbus-message.c: (check_message_handling):
6641 Add more types as test cases.
6643 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
6644 (_dbus_string_parse_double):
6645 Add the start offset to the end offset.
6647 * test/data/valid-messages/lots-of-arguments.message:
6648 New test message with lots of arguments.
6650 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6652 * dbus/dbus-message.c: (dbus_message_append_nil),
6653 (dbus_message_append_int32), (dbus_message_append_uint32),
6654 (dbus_message_append_double), (dbus_message_append_string),
6655 (dbus_message_append_int32_array),
6656 (dbus_message_append_uint32_array),
6657 (dbus_message_append_double_array),
6658 (dbus_message_append_byte_array),
6659 (dbus_message_append_string_array):
6660 Fix all out-of-memory handling in these functions.
6662 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6664 * dbus/dbus-message.c: (dbus_message_append_nil):
6667 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6669 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6670 (dbus_message_append_nil), (dbus_message_append_int32_array),
6671 (dbus_message_append_uint32_array),
6672 (dbus_message_append_double_array),
6673 (dbus_message_append_byte_array),
6674 (dbus_message_append_string_array), (dbus_message_get_args_valist),
6675 (dbus_message_iter_get_int32_array),
6676 (dbus_message_iter_get_uint32_array),
6677 (dbus_message_iter_get_double_array),
6678 (dbus_message_iter_get_byte_array),
6679 (dbus_message_iter_get_string_array):
6681 * dbus/dbus-message.h:
6682 Add functions for appending and getting arrays.
6684 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6686 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
6687 element size at least 8 bytes, fixes mempool tests on
6690 2003-02-20 Alexander Larsson <alexl@redhat.com>
6692 * dbus/dbus-transport-unix.c (unix_do_iteration):
6693 Unlock the connection mutex during a blocking select call.
6694 Add todo about how we need a way to wake up the select.
6696 * dbus/dbus-connection-internal.h:
6697 * dbus/dbus-connection.c:
6698 Add _dbus_connection_lock and _dbus_connection_unlock.
6700 2003-02-19 Havoc Pennington <hp@pobox.com>
6702 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
6703 Doxyfile.in, not Doxyfile
6705 * dbus/dbus-keyring.c: do some hacking on this
6707 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
6709 * dbus/dbus-errors.c (dbus_set_error_const): do not call
6711 (dbus_set_error): remove dbus_error_init, check for message ==
6712 NULL *before* we sprintf into it, and add @todo about including
6713 system headers in this file
6715 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
6717 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
6719 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
6720 get various bits of user information based on either username
6722 (_dbus_homedir_from_username): new function
6724 2003-02-19 Anders Carlsson <andersca@codefactory.se>
6727 Add check for nonposix getpwnam_r
6729 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
6730 Align the pool element size to a sizeof (void *) boundary.
6732 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
6733 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
6734 General Solaris fixes.
6736 * test/data/valid-messages/simplest-manual.message:
6737 Explicitly state that we want little-endian packing.
6739 2003-02-19 Mikael Hallendal <micke@codefactory.se>
6741 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6743 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
6744 Added to create a transport connecting using a tcp/ip socket.
6746 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
6747 to a tcp socket at given host and port.
6748 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
6751 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6753 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6754 Added to create a server listening on a TCP/IP socket.
6756 2003-02-19 Havoc Pennington <hp@pobox.com>
6758 Throughout: mop up all the Doxygen warnings and undocumented
6761 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6762 to search any paths.
6764 * dbus/dbus-threads.c: move global mutex initializers to
6765 dbus-internals.h, multiple prototypes was confusing doxygen
6766 besides being kind of ugly
6768 * Doxyfile (PREDEFINED): have Doxygen define
6769 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6770 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6771 (do not abuse the feature! it's for stuff like the autogenerated
6772 macros in dbus-md5.c, not just for things you don't feel like
6775 2003-02-18 Havoc Pennington <hp@pobox.com>
6777 * dbus/dbus-string.c (_dbus_string_zero): new function
6779 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6780 wrap it in some dbus-friendly API
6782 * dbus/dbus-types.h: add 16-bit types
6784 2003-02-18 Joe Shaw <joe@assbarn.com>
6786 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6787 credentials from our currently running process.
6788 (get_word): Fix a buglet where we were copying the entire length
6789 instead of relative to our position.
6791 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6792 keys on the stack... it's 640k of data.
6794 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6795 read the credentials byte off the socket, even if we don't have
6797 (_dbus_poll): Implement poll() using select() for systems which
6800 * glib/test-dbus-glib.c (main): Print out an error if no
6801 parameters are given.
6803 * test/data/auth/fallback.auth-script: Added. Tests that a client
6804 can fallback to a secondary auth mechanism if the first fails.
6806 2003-02-18 Havoc Pennington <hp@pobox.com>
6810 2003-02-17 Havoc Pennington <hp@pobox.com>
6812 * doc/dbus-specification.sgml: lots of cosmetic
6813 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6814 env variable to DBUS_BUS_ADDRESS, s/client/application/,
6815 s/server/bus/ (except in authentication section). Add a section
6816 "Message Bus Message Routing"
6818 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
6824 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6826 * doc/dbus-specification.sgml:
6827 Specification updates.
6829 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6831 * bus/activation.c: (bus_activation_init), (child_setup),
6832 (bus_activation_activate_service):
6834 * bus/main.c: (main):
6835 Set DBUS_ADDRESS environment variable.
6837 * dbus/dbus-errors.c: (dbus_set_error):
6838 Don't use va_copy since that's a C99 feature.
6840 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6841 (_dbus_spawn_async):
6842 * dbus/dbus-sysdeps.h:
6843 Add child_setup_func to _dbus_spawn_async.
6845 * doc/dbus-specification.sgml:
6846 Update specification.
6848 * test/spawn-test.c: (setup_func), (main):
6851 2003-02-17 Alexander Larsson <alexl@redhat.com>
6853 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6856 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6860 * doc/dbus-test-plan.sgml:
6861 Add test plan document.
6866 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6868 * dbus/dbus-message.c: (decode_header_data),
6869 (_dbus_message_loader_return_buffer):
6870 Set the header padding amount when loading a message.
6872 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6874 * bus/dispatch.c: (send_one_message):
6875 Only send broadcast messages to registered connections.
6877 * dbus/dbus-message.c: (dbus_message_name_is):
6878 * dbus/dbus-message.h:
6879 New convenience function.
6881 * dbus/dbus-transport-debug.c: (do_reading):
6882 Only dispatch one message per run.
6885 * test/bus-test.c: (new_connection_callback), (die),
6886 (test_hello_client1_handler), (test_hello_client2_handler),
6887 (test_hello_replies), (main):
6889 * test/bus-test-loop.[ch]:
6892 2003-02-16 Havoc Pennington <hp@pobox.com>
6894 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6895 backward conditional
6897 2003-02-16 Alexander Larsson <alexl@redhat.com>
6899 * dbus/dbus-connection.c:
6900 Implement sent_message_with_reply. (with_reply_and block is still
6902 Made dispatch_message not lose message if OOM.
6904 * dbus/dbus-errors.h:
6905 Add NoReply error (for reply timeouts).
6907 2003-02-16 Alexander Larsson <alexl@redhat.com>
6909 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6910 Actually free keys and values when destroying hashtable.
6912 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6914 * dbus/dbus-auth.c: (client_try_next_mechanism):
6917 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6918 Return TRUE if there's no thread implementation around.
6920 * glib/dbus-gmain.c: (free_source),
6921 (dbus_connection_hookup_with_g_main):
6922 Make sure to remove the GSource when the connection is finalized.
6924 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6926 * bus/dispatch.c: (bus_dispatch_message_handler):
6927 * dbus/dbus-errors.h:
6928 Return an error if someone tries to send a message to a service
6931 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6933 * bus/activation.c: (load_directory), (bus_activation_init),
6934 (bus_activation_activate_service):
6937 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6938 More work on the activation handling.
6940 * dbus/dbus-errors.h:
6941 Add some error messages
6943 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6944 * dbus/dbus-message.h:
6945 New function that creates an error message.
6947 * dbus/dbus-protocol.h:
6948 Add ACTIVATE_SERVER message.
6950 * dbus/dbus-server-unix.c: (unix_handle_watch),
6951 (_dbus_server_new_for_domain_socket):
6952 Call _dbus_fd_set_close_on_exec.
6954 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6955 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6956 (_dbus_fd_set_close_on_exec):
6957 * dbus/dbus-sysdeps.h:
6958 Add _dbus_fd_set_close_on exec function. Also add function that checks
6959 that all open fds are set to close-on-exec and warns otherwise.
6961 * dbus/dbus-transport-unix.c:
6962 (_dbus_transport_new_for_domain_socket):
6963 Call _dbus_fd_set_close_on_exec.
6965 2003-02-16 Havoc Pennington <hp@pobox.com>
6967 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6968 allow people to avoid setting SIGPIPE to SIG_IGN
6969 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6970 we've been asked not to
6972 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6974 * dbus/dbus-list.c: (_dbus_list_append_link),
6975 (_dbus_list_prepend_link):
6976 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6980 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6983 * bus/activation.c: (bus_activation_entry_free),
6984 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6986 * bus/main.c: (main):
6987 Add simple activation support, doesn't work yet though.
6989 2003-02-15 Zack Rusin <zack@kde.org>
6991 * qt/dbus-qthread.cpp: small casting fix
6993 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6995 * dbus/dbus-errors.c: (dbus_set_error):
6996 * dbus/dbus-errors.h:
6997 Add a few errors and make dbus_set_error void.
6999 * dbus/dbus-sysdeps.c:
7000 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
7001 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
7002 * dbus/dbus-sysdeps.h:
7003 Add _dbus_spawn_async.
7005 * test/spawn-test.c: (main):
7006 Test for _dbus_spawn_async.
7008 2003-02-15 Anders Carlsson <andersca@codefactory.se>
7010 * dbus/dbus-internals.h:
7011 Fix build without tests.
7013 * dbus/dbus-list.c: (alloc_link):
7014 Fix a segfault when a malloc fails.
7016 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
7017 (dbus_malloc0), (dbus_realloc):
7018 Add support for malloc debugging.
7020 2003-02-15 Alexander Larsson <alexl@redhat.com>
7022 * dbus/dbus-threads.c:
7023 * dbus/dbus-threads.h:
7024 Add condvars. Remove static mutext from API.
7025 Implement static mutexes by initializing them from threads_init.
7027 * glib/dbus-gthread.c:
7028 * qt/dbus-qthread.cpp:
7029 Update with the thread api changes.
7034 Turn StaticMutex into normal mutex + init function.
7035 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
7036 _dbus_list_append_link, _dbus_list_prepend_link
7039 * dbus/dbus-sysdeps.c:
7040 * dbus/dbus-sysdeps.h:
7041 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
7042 _dbus_atomic_dec. Only slow fallback implementation at the moment.
7044 * dbus/dbus-protocol.h:
7045 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
7047 * dbus/dbus-message.c:
7048 Make ref/unref atomic.
7051 * dbus/dbus-connection-internal.h:
7052 * dbus/dbus-connection.c:
7053 * dbus/dbus-connection.h:
7055 Change _peek to _borrow,_return & _steal_borrowed.
7056 Change disconnect callback to event.
7057 Make dbus_connection_dispatch_messages reentrant.
7059 * dbus/dbus-transport.c:
7060 Don't ref the connection on calls to the transport
7063 * dbus/dbus-message-handler.c:
7066 * glib/dbus-gmain.c:
7067 Don't use peek_message anymore
7070 * test/debug-thread.c:
7071 * test/debug-thread.h:
7072 Simple thread implementation that asserts() on deadlocks in
7073 single-threaded code.
7076 (main) Call debug_threads_init.
7079 Use disconnect message instead of disconnect callback.
7083 Don't call dbus_connection_set_disconnect_function. Instead export
7084 bus_connection_disconnect.
7087 Call bus_connection_disconnect when we get a disconnected message.
7089 2003-02-15 Havoc Pennington <hp@pobox.com>
7091 * dbus/dbus-message.c (dbus_message_new): fool around with the
7094 2003-02-14 Havoc Pennington <hp@pobox.com>
7096 * dbus/dbus-mempool.c: fail if the debug functions so indicate
7098 * dbus/dbus-memory.c: fail if the debug functions indicate we
7101 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
7102 (_dbus_decrement_fail_alloc_counter): debug functions to
7103 simulate memory allocation failures
7105 2003-02-14 Havoc Pennington <hp@pobox.com>
7107 * dbus/dbus-errors.h (struct DBusError): add a word of padding
7110 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7112 * bus/driver.c: (bus_driver_handle_hello):
7114 * bus/services.c: (bus_service_lookup):
7115 Reorder message sending so we get a more sane order.
7117 * test/bus-test.c: (message_handler):
7120 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7122 * bus/driver.c: (bus_driver_send_service_deleted),
7123 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7124 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
7125 (bus_driver_send_welcome_message),
7126 (bus_driver_handle_list_services),
7127 (bus_driver_handle_acquire_service),
7128 (bus_driver_handle_service_exists):
7129 * dbus/dbus-bus.c: (dbus_bus_register_client),
7130 (dbus_bus_acquire_service), (dbus_bus_service_exists):
7131 * dbus/dbus-errors.c: (dbus_result_to_string):
7132 * dbus/dbus-errors.h:
7133 * dbus/dbus-message.c: (dbus_message_append_args),
7134 (dbus_message_append_args_valist), (dbus_message_get_args),
7135 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
7136 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
7137 (dbus_message_iter_get_byte_array),
7138 (dbus_message_iter_get_string_array), (message_iter_test),
7139 (check_message_handling), (_dbus_message_test):
7140 * dbus/dbus-message.h:
7141 * test/bus-test.c: (main):
7142 Change fields to arguments in messages, so that they won't be
7143 confused with header fields.
7145 * glib/test-dbus-glib.c: (main):
7146 Remove append_fields from hello message.
7148 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7150 * dbus/dbus-errors.c:
7151 * dbus/dbus-message.c:
7152 * dbus/dbus-string.c:
7153 Documentation fixes.
7155 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7157 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
7159 Implement support for timeouts in dbus-glib.
7161 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7163 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7164 * dbus/dbus-message.c: (process_test_subdir):
7165 * test/break-loader.c: (find_breaks_based_on):
7166 Plug some memory leaks.
7168 2003-02-13 Richard Hult <rhult@codefactory.se>
7170 * bus/main.c: Fix build.
7172 * dbus/dbus-errors.h:
7173 * dbus/dbus-errors.c: Fix copyright for Anders.
7175 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7180 * bus/connection.c: (bus_connection_foreach):
7183 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
7184 (unescape_string), (new_section), (parse_section_start),
7185 (parse_key_value), (report_error), (bus_desktop_file_load),
7186 (bus_desktop_file_get_string):
7187 * bus/desktop-file.h:
7188 Use DBusError for error reporting.
7190 * bus/dispatch.c: (send_one_message),
7191 (bus_dispatch_message_handler):
7192 * bus/driver.c: (bus_driver_send_service_deleted),
7193 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7194 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
7195 (bus_driver_send_welcome_message),
7196 (bus_driver_handle_list_services),
7197 (bus_driver_handle_acquire_service),
7198 (bus_driver_handle_service_exists):
7199 * bus/loop.c: (bus_loop_run):
7201 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
7203 * bus/utils.c: (bus_wait_for_memory):
7205 New files with general utility functions.
7207 * dbus/dbus-internals.h:
7208 Remove _DBUS_HANDLE_OOM.
7210 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7212 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
7213 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
7214 * dbus/dbus-errors.h:
7215 Add DBusError structure.
7217 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7219 * test/data/valid-messages/standard-acquire-service.message:
7220 * test/data/valid-messages/standard-hello.message:
7221 * test/data/valid-messages/standard-list-services.message:
7222 * test/data/valid-messages/standard-service-exists.message:
7223 Add some standard messages.
7225 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7227 * bus/driver.c: (bus_driver_send_welcome_message),
7228 (bus_driver_handle_list_services),
7229 (bus_driver_handle_acquire_service),
7230 (bus_driver_handle_service_exists), (bus_driver_handle_message):
7231 Update for API changes in libdbus.
7233 * dbus/dbus-message.c: (dbus_message_new_reply):
7234 * dbus/dbus-message.h:
7235 Remove the name argument. The spec states that replies shouldn't
7238 2003-02-13 Anders Carlsson <andersca@codefactory.se>
7240 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
7241 (report_error), (bus_desktop_file_load), (lookup_section),
7242 (lookup_line), (bus_desktop_file_get_raw),
7243 (bus_desktop_file_get_string):
7244 * bus/desktop-file.h:
7245 Some fixes, and new functions for getting a key value from a section.
7247 2003-02-13 Havoc Pennington <hp@pobox.com>
7249 * test/data/auth/fail-after-n-attempts.auth-script: new test
7251 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
7254 2003-02-13 Havoc Pennington <hp@pobox.com>
7256 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
7257 dbus_credentials_match were backward
7259 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
7260 NO_CREDENTIALS and ROOT_CREDENTIALS
7262 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
7263 into here. Never process more commands after we've reached an
7264 end state; store further data as unused bytes.
7266 * test/data/auth/*: add more auth tests
7268 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
7269 command to match exact string and EXPECT_UNUSED to match unused
7272 * test/Makefile.am (dist-hook): fix to dist all the test stuff
7274 2003-02-12 Havoc Pennington <hp@pobox.com>
7276 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
7277 \r off of popped lines
7279 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
7282 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
7285 2003-02-12 Havoc Pennington <hp@pobox.com>
7287 * dbus/Makefile.am: remove break-loader from the build, since it
7290 * configure.in: add --enable-gcov to turn on coverage profiling
7291 flags and disable optimization
7293 2003-02-10 Havoc Pennington <hp@pobox.com>
7295 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
7296 initial cut at test framework for DBusAuth from laptop.
7297 Doesn't quite work yet but it compiles and I need to get
7298 it off the 266mhz laptop. ;-)
7300 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
7301 fix a memleak in error case
7303 2003-02-12 Anders Carlsson <andersca@codefactory.se>
7306 * bus/desktop-file.c:
7307 * bus/desktop-file.h:
7308 Add a desktop file parser.
7310 2003-02-11 Zack Rusin <zack@kde.org>
7312 * qt/message.[h|cpp]: sample implementation
7313 of the KDE wrapper for DBusMessage
7315 2003-02-09 Zack Rusin <zack@kde.org>
7317 * test/bus-test.c: make_it_compile
7318 * doc/dbus-specification.sgml: minimal semantic fix
7320 2003-02-06 Anders Carlsson <andersca@codefactory.se>
7326 2003-02-06 Anders Carlsson <andersca@codefactory.se>
7329 * dbus/dbus-break-loader.c:
7331 * test/break-loader.c:
7332 Move dbus-break-loader to test/ and rename it to break-loader.
7334 2003-02-02 Havoc Pennington <hp@pobox.com>
7336 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
7337 for code to manage cookies in your home directory
7339 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
7341 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
7342 to authenticate, then disconnect the client.
7344 2003-02-03 Alexander Larsson <alexl@redhat.com>
7346 * dbus/dbus-message.c (dbus_message_append_fields):
7349 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7351 * doc/dbus-specification.sgml:
7352 Update address format section.
7354 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7357 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
7358 (message_handler), (new_connection_callback), (loop_quit),
7362 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7364 * bus/driver.c: (bus_driver_handle_service_exists):
7365 Simplify the code a bit.
7367 * dbus/dbus-bus.c: (dbus_bus_service_exists):
7370 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7373 Add libdbus-daemon.la and link to it.
7375 2003-02-01 James Willcox <jwillcox@gnome.org>
7377 * bus/driver.c: (bus_driver_handle_own_service):
7378 Actually include the service reply code in the message.
7380 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7382 * bus/driver.c: (bus_driver_handle_service_exists):
7383 Don't unref the incoming message.
7385 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7387 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
7389 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7391 * dbus/dbus-server.c: (dbus_server_listen):
7392 * dbus/dbus-transport.c: (_dbus_transport_open):
7393 ifdef out the calls to the debug transport and server.
7395 2003-02-02 Alexander Larsson <alexl@redhat.com>
7397 * dbus/dbus-watch.c (dbus_watch_get_flags):
7398 Add note in the docs that ERROR or HANGUP won't be returned
7399 and are assumed always on.
7401 * glib/dbus-gmain.c (add_watch):
7402 Always add IO_ERR | IO_HUP
7404 * dbus/dbus-message.h:
7405 Add semicolon after dbus_message_iter_get_string_array().
7406 Makes qt code build again
7408 2003-02-01 Anders Carlsson <andersca@codefactory.se>
7410 * bus/driver.c: (create_unique_client_name),
7411 (bus_driver_handle_hello):
7412 Don't take a name, just use a numeric id to identify
7416 * dbus/dbus-bus.c: (dbus_bus_register_client),
7417 (dbus_bus_acquire_service), (dbus_bus_service_exists):
7419 Add new convenience functions for communicating with the bus.
7421 * dbus/dbus-message.h:
7423 * dbus/dbus-protocol.h:
7426 2003-02-01 Alexander Larsson <alexl@redhat.com>
7428 * dbus/dbus-message.c (dbus_message_append_fields):
7429 Add some more doc comments.
7431 2003-02-01 Havoc Pennington <hp@pobox.com>
7433 * dbus/dbus-break-loader.c (randomly_modify_length): change
7434 a 4-byte value in the message as if it were a length
7436 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
7437 execute bit on saved files
7439 2003-02-01 Havoc Pennington <hp@pobox.com>
7441 * dbus/dbus-break-loader.c (main): new program to find messages
7442 that break the loader.
7444 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
7445 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
7447 * dbus/dbus-string.c (_dbus_string_set_byte): new
7449 2003-01-31 Havoc Pennington <hp@pobox.com>
7451 * dbus/dbus-message.c: refactor the test code to be more general,
7452 in preparation for writing a "randomly permute test cases to
7453 try to break the loader" program.
7455 2003-01-31 Havoc Pennington <hp@pobox.com>
7457 * doc/dbus-specification.sgml: work on the specification
7459 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
7460 the protocol version of the message.
7462 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
7463 no longer specifies that.
7464 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
7467 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
7468 "break" for DBUS_TYPE_NIL, remove @todo
7470 2003-01-31 Havoc Pennington <hp@pobox.com>
7472 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
7473 just set_is_error/get_is_error as this is a commonly-used
7474 function, and write docs.
7476 2003-01-31 Anders Carlsson <andersca@codefactory.se>
7478 * dbus/dbus-address.c: (dbus_address_entry_free):
7479 Free key and value lists.
7481 * dbus/dbus-internals.c: (_dbus_type_to_string):
7482 Add the types we didn't have.
7484 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7485 (_dbus_marshal_validate_arg):
7488 * dbus/dbus-message.c: (dbus_message_set_sender):
7489 Remove todo about being able to set sender to NULL.
7491 (dbus_message_set_is_error_reply),
7492 (dbus_message_get_is_error_reply):
7493 * dbus/dbus-message.h:
7496 * dbus/dbus-protocol.h:
7497 Add error reply flag.
7499 * test/data/valid-messages/opposite-endian.message:
7500 Add NIL type to test.
7502 2003-01-31 Havoc Pennington <hp@pobox.com>
7504 * doc/dbus-specification.sgml: fully specify the header. Add
7505 flags and major protocol version, and change header/body len to
7508 * dbus/dbus-message-builder.c (append_saved_length): append length
7511 * dbus/dbus-message.c (dbus_message_create_header): change header
7512 length and body length to unsigned. Add the new fields from the
7514 (_dbus_message_loader_return_buffer): unsigned header/body len
7516 2003-01-30 Havoc Pennington <hp@pobox.com>
7518 * dbus/dbus-auth.c: rework to use only REJECTED, no
7521 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
7522 use REJECTED, suggested by Mark McLoughlin
7524 2003-01-30 Havoc Pennington <hp@pobox.com>
7526 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
7527 a better way to report errors here. e.g. "unix address lacks
7528 path" or something. also "no such file" when the path doesn't
7531 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
7533 (dbus_parse_address): add @todo about documenting address format,
7534 and allowing , and ; to be escaped
7536 2003-01-30 Anders Carlsson <andersca@codefactory.se>
7539 Add dbus-address.[ch]
7541 * dbus/dbus-address.c: (dbus_address_entry_free),
7542 (dbus_address_entries_free), (create_entry),
7543 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
7544 (dbus_parse_address), (_dbus_address_test):
7545 * dbus/dbus-address.h:
7546 New files for dealing with address parsing.
7548 * dbus/dbus-connection.c:
7549 Document timeout functions.
7551 * dbus/dbus-message.c:
7552 Document dbus_message_new_from_message.
7554 * dbus/dbus-server-debug.c:
7557 * dbus/dbus-server.c: (dbus_server_listen):
7558 Parse address and use correct server implementation.
7560 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
7561 * dbus/dbus-string.h:
7562 New function with test.
7564 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
7568 * dbus/dbus-transport-debug.c:
7571 * dbus/dbus-transport.c: (_dbus_transport_open):
7572 Parse address and use correct transport implementation.
7574 2003-01-30 Havoc Pennington <hp@pobox.com>
7576 * dbus/dbus-message.c: use message->byte_order instead of
7577 DBUS_COMPILER_BYTE_ORDER throughout.
7578 (dbus_message_create_header): pad header to align the
7579 start of the body of the message to 8-byte boundary
7581 * dbus/dbus-marshal.h: make all the demarshalers take const
7582 DBusString arguments.
7584 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
7585 validate message args here, so we don't have to do slow validation
7586 later, and so we catch bad messages as they are incoming. Also add
7587 better checks on header_len and body_len. Also fill in
7590 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
7591 implemented properly)
7592 (_dbus_string_validate_nul): new function to check all-nul
7594 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
7595 get_arg_end_pos and remove all validation
7596 (_dbus_marshal_validate_arg): actually do validation here.
7598 2003-01-29 Havoc Pennington <hp@pobox.com>
7600 * dbus/dbus-message.c (check_message_handling): fix assertion
7601 failure on set_client_serial
7603 2003-01-28 Havoc Pennington <hp@pobox.com>
7605 * dbus/dbus-server-debug.c: Add doc section comments
7607 * dbus/dbus-transport-debug.c: add doc section comments
7609 2003-01-28 Havoc Pennington <hp@redhat.com>
7611 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
7612 the reverse order from how I had it
7613 (_dbus_string_base64_encode): reverse encoding order. I was
7614 basically byteswapping everything during encoding.
7616 2003-01-28 Anders Carlsson <andersca@codefactory.se>
7618 * dbus/dbus-connection-internal.h:
7619 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
7620 (_dbus_connection_remove_timeout):
7621 Add functions for adding and removing timeouts.
7623 * dbus/dbus-message.c: (dbus_message_new_from_message):
7624 Add new function that takes a message and creates an exact
7625 copy of it, but with the refcount set to 1.
7626 (check_message_handling):
7629 * dbus/dbus-server-protected.h:
7630 * dbus/dbus-server.c: (_dbus_server_init_base),
7631 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
7632 (dbus_server_set_timeout_functions):
7633 (_dbus_server_remove_timeout):
7634 New functions so that a server can add and remove timeouts.
7636 (dbus_server_listen):
7637 Add commented out call to dbus_server_debug_new.
7639 * dbus/dbus-timeout.c: (_dbus_timeout_new):
7640 Actually set the handler, doh.
7642 * dbus/dbus-transport.c: (_dbus_transport_open):
7643 Add commented out call to dbus_transport_debug_client_new.
7646 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
7648 2003-01-28 Havoc Pennington <hp@pobox.com>
7650 * dbus/dbus-message.c (check_message_handling): function to check
7651 on the loaded message, iterates over it etc.
7653 2003-01-28 Havoc Pennington <hp@pobox.com>
7655 * test/Makefile.am (dist-hook): fix make distdir
7657 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
7659 2003-01-27 Havoc Pennington <hp@pobox.com>
7661 * dbus/dbus-mempool.c (time_for_size): replace printf with
7664 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
7665 empty lines; fix the SAVE_LENGTH stuff to be
7666 START_LENGTH/END_LENGTH so it actually works; couple other
7669 * test/Makefile.am (dist-hook): add dist-hook for .message files
7671 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
7672 can be constant or locked.
7673 (_dbus_string_free): allow freeing a const string as
7676 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
7678 * dbus/dbus-test-main.c (main): take an argument which is the
7679 directory containing test data
7681 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
7682 argument to this and load all the messages in test/data/
7683 checking that they can be loaded or not loaded as appropriate.
7685 2003-01-27 Anders Carlsson <andersca@codefactory.se>
7687 * bus/dispatch.c: (bus_dispatch_message_handler):
7688 Dispatch messages sent to services.
7690 * bus/driver.c: (bus_driver_send_service_deleted),
7691 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7692 (bus_driver_send_service_acquired):
7693 Add helper functions for sending service related messages.
7695 (bus_driver_send_welcome_message):
7696 Send HELLO_REPLY instead of WELCOME.
7698 (bus_driver_handle_list_services):
7699 Send LIST_SERVICES_REPLY instead of SERVICES.
7701 (bus_driver_handle_own_service),
7702 (bus_driver_handle_service_exists):
7703 New message handlers.
7705 (bus_driver_handle_message):
7706 Invoke new message handlers.
7708 (bus_driver_remove_connection):
7709 Don't remove any services here since that's done automatically
7710 by bus_service_remove_owner now.
7713 New function signatures.
7715 * bus/services.c: (bus_service_add_owner):
7716 Send ServiceAcquired message if we're the only primary owner.
7718 (bus_service_remove_owner):
7719 Send ServiceAcquired/ServiceLost messages.
7721 (bus_service_set_prohibit_replacement),
7722 (bus_service_get_prohibit_replacement):
7723 Functions for setting prohibit replacement.
7725 (bus_service_has_owner):
7726 New function that checks if a connection is in the owner queue of
7730 Add new function signatures.
7732 * dbus/dbus-list.c: (_dbus_list_test):
7733 Add tests for _dbus_list_remove_last and traversing the list backwards.
7736 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
7737 go any further, so return NULL then.
7739 * dbus/dbus-protocol.h:
7740 Add new messages, service flags and service replies.
7742 2003-01-26 Havoc Pennington <hp@pobox.com>
7744 * dbus/dbus-message-builder.c: implement, completely untested.
7746 * test/data/*: add data to be used in testing.
7747 ".message" files are our simple loadable text format.
7748 ".message-raw" will be binary dumps of messages.
7750 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
7752 2003-01-26 Havoc Pennington <hp@pobox.com>
7754 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7756 * dbus/dbus-errors.c (dbus_result_to_string): add
7759 * dbus/dbus-message-builder.c: new file, will contain code to load
7760 up messages from files. Not implemented yet.
7762 2003-01-26 Havoc Pennington <hp@pobox.com>
7764 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7765 the sender by setting to NULL
7767 2003-01-26 Havoc Pennington <hp@pobox.com>
7769 The unit tests pass, but otherwise untested. If it breaks, the
7770 tests should have been better. ;-)
7772 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7775 * dbus/dbus-message.c: redo everything so we maintain
7776 message->header as the only copy of the various fields.
7777 This avoids the possibility of out-of-memory in some cases,
7778 for example dbus_message_lock() can't run out of memory anymore,
7779 and avoids extra copying. Figured I may as well go ahead and do
7780 this since it was busted for dbus_message_lock to not return
7781 failure on OOM, and dbus_message_write_header was totally
7782 unchecked for OOM. Also fixed some random other bugs.
7784 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7785 that strings are nul-terminated. Also, end_pos can be equal
7786 to string length just not greater than, I think.
7787 (_dbus_marshal_set_int32): new function
7788 (_dbus_marshal_set_uint32): new function
7789 (_dbus_marshal_set_string): new function
7791 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7792 a warning, init timeout_list to NULL
7793 (dbus_connection_send_message): don't use uninitialized variable
7796 * dbus/dbus-string.c (_dbus_string_replace_len): new function
7798 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7800 * bus/driver.c: (bus_driver_handle_hello),
7801 (bus_driver_send_welcome_message):
7804 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7806 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7807 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7808 (dbus_connection_unref):
7809 * dbus/dbus-marshal.c: (_dbus_marshal_test):
7810 * dbus/dbus-message.c: (dbus_message_unref),
7813 (dbus_message_get_fields):
7814 Remove debugging printout.
7816 (_dbus_message_loader_return_buffer):
7817 Don't store the header string.
7819 (_dbus_message_test):
7822 2003-01-26 Richard Hult <rhult@codefactory.se>
7824 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7825 the file descriptor list, since it can change under us.
7827 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7829 * glib/dbus-gmain.c: (dbus_connection_prepare),
7830 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7831 (remove_watch), (dbus_connection_hookup_with_g_main):
7832 Rewrite the glib handling to use its own GSource instead of a
7833 GIOChannel so we can catch messages put in the queue while waiting
7836 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7839 * bus/connection.c: (connection_disconnect_handler),
7840 (connection_watch_callback), (bus_connection_setup):
7841 * bus/dispatch.c: (send_one_message),
7842 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7843 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7845 * bus/driver.c: (bus_driver_send_service_deleted),
7846 (bus_driver_send_service_created), (bus_driver_handle_hello),
7847 (bus_driver_send_welcome_message),
7848 (bus_driver_handle_list_services), (bus_driver_remove_connection),
7849 (bus_driver_handle_message):
7851 Refactor code, put the message dispatching in its own file. Use
7852 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7855 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7857 * dbus/dbus-internals.h:
7858 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7860 * dbus/dbus-message.c: (dbus_message_get_sender):
7861 * dbus/dbus-message.h:
7862 Implement dbus_message_get_sender.
7864 * dbus/dbus-protocol.h:
7865 Add message and service defines.
7867 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7869 * dbus/dbus-connection.c: (dbus_connection_send_message):
7870 * dbus/dbus-message-internal.h:
7871 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7872 (dbus_message_write_header):
7873 Remove _dbus_messag_unlock and don't set the client serial on a
7874 message if one already exists.
7876 2003-01-24 Havoc Pennington <hp@pobox.com>
7878 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7881 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7884 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7886 * dbus/dbus-list.c: (alloc_link), (free_link):
7887 Use a memory pool for the links.
7889 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7891 * bus/connection.c: (bus_connection_foreach):
7893 Add new bus_connection_foreach function.
7895 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7896 Add function that broadcasts a message to all clients.
7898 (bus_driver_send_service_created), (bus_driver_handle_hello),
7899 (bus_driver_send_welcome_message),
7900 (bus_driver_handle_list_services), (bus_driver_message_handler):
7901 Implement functions that take care of listing services, and notifying
7902 clients when new services are created.
7904 * bus/services.c: (bus_services_list):
7906 Add new function that returns an array of strings with the currently
7907 registered services.
7910 * glib/dbus-gmain.c:
7911 Update copyright year.
7913 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7915 * dbus/dbus-connection.c: (dbus_connection_send_message):
7916 Unlock the message in case it was sent earlier.
7918 (dbus_connection_send_message_with_reply_and_block):
7919 Remove the reply message from the list.
7921 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7922 Set array_len and new_pos correctly.
7924 (_dbus_marshal_test):
7925 Remove debug output.
7927 * dbus/dbus-message-internal.h:
7928 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7929 New function that returns the reply serial.
7931 (_dbus_message_unlock):
7932 New function that unlocks a message and resets its header.
7934 (dbus_message_append_string_array),
7935 (dbus_message_get_fields_valist),
7936 (dbus_message_iter_get_field_type),
7937 (dbus_message_iter_get_string_array),
7938 (dbus_message_get_fields),
7939 (dbus_message_append_fields_valist):
7940 Handle string arrays.
7942 (dbus_message_set_sender):
7943 Make this function public since the bus daemon needs it.
7945 (decode_header_data):
7946 Set the reply serial to -1 initially.
7948 * dbus/dbus-message.h:
7949 Add dbus_message_set_sender.
7951 2003-01-24 Havoc Pennington <hp@pobox.com>
7953 * doc/dbus-specification.sgml: add some stuff
7955 2003-01-22 Havoc Pennington <hp@pobox.com>
7957 * doc/dbus-specification.sgml: Start to document the protocol.
7959 2003-01-22 Havoc Pennington <hp@pobox.com>
7961 * dbus/dbus-connection.c
7962 (dbus_connection_send_message_with_reply_and_block): add some @todo
7964 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7966 2003-01-21 Havoc Pennington <hp@pobox.com>
7968 (patch untested because can't compile)
7970 * bus/driver.c (create_unique_client_name): make this function
7971 never recycle client names. Also, caller should initialize
7974 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7976 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7978 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7979 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7980 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7981 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7982 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7983 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7984 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7985 * dbus/dbus-marshal.h:
7986 * dbus/dbus-protocol.h:
7987 Add support for marshalling and demarshalling integer, double
7990 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7995 * bus/connection.c: (connection_disconnect_handler):
7996 Remove the connection from the bus driver's list.
7998 (connection_watch_callback): Dispatch messages.
8000 (free_connection_data): Free connection name.
8002 (bus_connection_setup): Add connection to the bus driver's list.
8003 (bus_connection_remove_owned_service):
8004 (bus_connection_set_name), (bus_connection_get_name):
8005 Add functions for setting and getting the connection's name.
8008 Add function headers.
8010 * bus/driver.c: (create_unique_client_name),
8011 (bus_driver_handle_hello_message),
8012 (bus_driver_send_welcome_message), (bus_driver_message_handler),
8013 (bus_driver_add_connection), (bus_driver_remove_connection):
8016 * bus/services.c: (bus_service_free):
8018 New file that handles communication and registreation with the bus
8021 2003-01-21 Anders Carlsson <andersca@codefactory.se>
8023 * dbus/dbus-connection.c: (dbus_connection_send_message):
8024 Add a new client_serial parameter.
8026 (dbus_connection_send_message_with_reply):
8027 Remove a @todo since we've implemented the blocking function.
8029 (dbus_connection_send_message_with_reply_and_block):
8030 New function that sends a message and waits for a reply and
8031 then returns the reply.
8033 * dbus/dbus-connection.h:
8036 * dbus/dbus-errors.c: (dbus_result_to_string):
8037 * dbus/dbus-errors.h:
8038 Add new DBUS_RESULT.
8040 * dbus/dbus-message-internal.h:
8041 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
8042 (_dbus_message_set_sender), (dbus_message_write_header),
8043 (dbus_message_new_reply), (decode_header_data),
8044 (_dbus_message_loader_return_buffer), (_dbus_message_test):
8045 * dbus/dbus-message.h:
8046 Add new functions that set the reply serial and sender.
8047 Also marshal and demarshal them correctly and add test.
8049 * dbus/dbus-protocol.h:
8050 Add new DBUS_MESSAGE_TYPE_SENDER.
8053 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
8054 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
8055 (dbus_connection_hookup_with_g_main):
8056 * glib/test-dbus-glib.c: (main):
8057 Rewrite to use GIOChannel and remove the GSource crack.
8059 * test/echo-client.c: (main):
8060 * test/watch.c: (check_messages):
8061 Update for changed APIs
8063 2003-01-19 Anders Carlsson <andersca@codefactory.se>
8065 * dbus/Makefile.am: Add dbus-timeout.[cħ]
8067 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
8068 Create a DBusTimeoutList.
8069 (dbus_connection_set_timeout_functions): Add new function to
8070 set timeout callbacks
8072 * dbus/dbus-connection.h: Add public DBusTimeout API.
8074 * dbus/dbus-message.c: (dbus_message_get_service):
8075 * dbus/dbus-message.h: New function.
8077 * dbus/dbus-server.c: Fix small doc typo.
8079 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
8081 2003-01-19 Anders Carlsson <andersca@codefactory.se>
8083 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
8084 of the string, just as long as specified.
8086 2003-01-19 Havoc Pennington <hp@pobox.com>
8088 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
8091 * dbus/dbus-server.c (dbus_server_set_max_connections)
8092 (dbus_server_get_max_connections, dbus_server_get_n_connections):
8093 keep track of current number of connections, and add API for
8094 setting a max (but haven't implemented enforcing the max yet)
8096 2003-01-18 Havoc Pennington <hp@pobox.com>
8098 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
8099 reading/writing if read_watch != NULL or write_watch != NULL.
8101 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
8102 the message loader code to actually load message->header and
8103 message->body into the newly-created message.
8105 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
8108 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
8109 (dbus_connection_get_max_message_size)
8110 (dbus_connection_set_max_live_messages_size)
8111 (dbus_connection_get_max_live_messages_size): implement some
8112 resource limitation functions
8114 * dbus/dbus-resources.c: new file implementing some of the
8115 resource limits stuff
8117 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
8118 missing docs, add @todo to handle OOM etc.
8120 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
8123 2003-01-18 Havoc Pennington <hp@pobox.com>
8125 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
8126 connection if it hasn't been already.
8128 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
8129 replace with DisconnectFunction.
8131 2003-01-18 Havoc Pennington <hp@pobox.com>
8133 Building --disable-verbose-mode --disable-asserts --disable-tests
8134 cuts the library from 112K to 45K or so
8136 * configure.in: check for varargs macro support,
8137 add --enable-verbose-mode, --enable-asserts.
8139 * dbus/dbus-internals.h (_dbus_assert): support
8141 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
8143 2003-01-18 Havoc Pennington <hp@pobox.com>
8145 * dbus/dbus-test.c: include config.h so that tests actually run
8147 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
8148 so the failure mode when that assumption fails will be plenty
8151 2003-01-18 Havoc Pennington <hp@pobox.com>
8153 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
8155 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
8158 * test/Makefile.am: don't use special variable "TESTS" for echo-*
8159 since we don't want to use those in make check
8161 2003-01-15 Havoc Pennington <hp@redhat.com>
8167 2003-01-15 Havoc Pennington <hp@redhat.com>
8169 * test/Makefile.am: fix so that test source code ends up in the
8170 distribution on make distcheck
8172 2003-01-15 Havoc Pennington <hp@redhat.com>
8178 2003-01-15 Havoc Pennington <hp@redhat.com>
8180 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
8181 fix build when --disable-tests
8183 * Makefile.am (EXTRA_DIST): put HACKING in here
8185 * HACKING: document procedure for making a tarball release.
8187 2003-01-14 Anders Carlsson <andersca@codefactory.se>
8189 * bus/connection.c: (connection_error_handler),
8190 (bus_connection_setup):
8191 * bus/main.c: (main):
8192 Make sure that the DBusConnectionData struct is NULLed
8193 out to prevent a segfault.
8195 * dbus/dbus-errors.c: (dbus_result_to_string):
8196 * dbus/dbus-errors.h:
8197 * dbus/dbus-message.c: (dbus_message_get_fields),
8198 (dbus_message_get_fields_valist), (_dbus_message_test):
8199 * dbus/dbus-message.h:
8200 Make dbus_message_get_fields return a result code so we can
8201 track invalid fields as well as oom.
8203 2003-01-11 Havoc Pennington <hp@pobox.com>
8205 * configure.in: change --enable-test/--enable-ansi action-if-given
8206 to enable_foo=$enableval instead of enable_foo=yes
8208 2003-01-08 Havoc Pennington <hp@pobox.com>
8210 * dbus/dbus-string.c (_dbus_string_align_length): new function
8212 * dbus/dbus-test-main.c: move main() for test app here
8214 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
8215 symbol to run tests, because dbus-test isn't in the main
8218 Code review nitpicks.
8220 * dbus/dbus-message.c (dbus_message_write_header): add newlines
8221 for people with narrow emacs ;-). Assert client_serial was filled
8222 in. Assert message->name != NULL.
8223 (dbus_message_append_fields): have "first_field_type" arg separate
8224 from va list, needed for C++ binding that also uses varargs IIRC
8225 and helps with type safety
8226 (dbus_message_new): add @todo about using DBusString to store
8227 service/name internally
8228 (dbus_message_new): don't leak ->service and ->name on OOM later
8230 (dbus_message_unref): free the service name
8231 (dbus_message_get_fields): same change to varargs
8232 i.e. first_field_type
8233 (_dbus_message_loader_return_buffer): assert that the message data
8234 is aligned (if not it's a bug in our code). Put in verbose griping
8235 about why we set corrupted = TRUE.
8236 (decode_header_data): add FIXME that char* is evil. Was going to
8237 add FIXME about evil locale-specific string.h strncmp, but just
8238 switched to wacky string-as-uint32 optimization. Move check for
8239 "no room for field name" above get_const_data_len() to avoid
8240 assertion failure in get_const_data_len if we have trailing 2
8241 bytes or the like. Check for service and name fields being
8242 provided twice. Don't leak service/name on error. Require field
8243 names to be aligned to 4 bytes.
8245 * dbus/dbus-marshal.c: move byte swap stuff to header
8246 (_dbus_pack_int32): uscore-prefix
8247 (_dbus_unpack_int32): uscore-prefix
8248 (_dbus_unpack_uint32): export
8249 (_dbus_demarshal_string): add @todo complaining about use of
8251 (_dbus_marshal_get_field_end_pos): add @todo about bad error
8252 handling allowing corrupt data to go unchecked
8254 2003-01-08 Havoc Pennington <hp@redhat.com>
8256 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
8257 to the select() as needed for authentication. (should be using
8258 _dbus_poll() not select, but for another day)
8260 * dbus/dbus.h: include dbus/dbus-protocol.h
8262 2003-01-08 Anders Carlsson <andersca@codefactory.se>
8264 * dbus/Makefile.am (dbusinclude_HEADERS): Install
8267 2003-01-08 Anders Carlsson <andersca@codefactory.se>
8269 * dbus/dbus-internals.c: (_dbus_type_to_string):
8270 New function that returns a string describing a type.
8272 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
8273 * dbus/dbus-marshal.h:
8274 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
8275 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
8276 (dbus_message_iter_get_byte_array):
8277 * dbus/dbus-message.h:
8278 Add new convenience functions for appending and getting message fields.
8279 Also add demarshalling routines for byte arrays.
8281 2003-01-07 Anders Carlsson <andersca@codefactory.se>
8283 * dbus/dbus-connection-internal.h:
8284 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
8285 (_dbus_connection_get_next_client_serial),
8286 (dbus_connection_send_message):
8287 * dbus/dbus-internals.h:
8288 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
8289 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
8290 (_dbus_marshal_uint32), (_dbus_demarshal_double),
8291 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
8292 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
8293 (_dbus_verbose_bytes), (_dbus_marshal_test):
8294 * dbus/dbus-marshal.h:
8295 * dbus/dbus-message-internal.h:
8296 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
8297 (dbus_message_write_header), (_dbus_message_lock),
8298 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
8299 (dbus_message_get_name), (dbus_message_append_int32),
8300 (dbus_message_append_uint32), (dbus_message_append_double),
8301 (dbus_message_append_string), (dbus_message_append_byte_array),
8302 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
8303 (dbus_message_iter_unref), (dbus_message_iter_has_next),
8304 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
8305 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
8306 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
8307 (decode_header_data), (_dbus_message_loader_return_buffer),
8308 (message_iter_test), (_dbus_message_test):
8309 * dbus/dbus-message.h:
8310 * dbus/dbus-protocol.h:
8311 * dbus/dbus-test.c: (main):
8313 * glib/test-dbus-glib.c: (message_handler), (main):
8314 * test/echo-client.c: (main):
8315 * test/watch.c: (check_messages):
8316 Make messages sendable and receivable for real.
8318 2003-01-07 Anders Carlsson <andersca@codefactory.se>
8320 * dbus/dbus-marshal.c: (_dbus_marshal_double),
8321 (_dbus_marshal_string), (_dbus_marshal_byte_array):
8322 * dbus/dbus-message.c: (dbus_message_append_int32),
8323 (dbus_message_append_uint32), (dbus_message_append_double),
8324 (dbus_message_append_string), (dbus_message_append_byte_array):
8325 Handle OOM restoration.
8327 2003-01-07 Anders Carlsson <andersca@codefactory.se>
8329 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8330 (_dbus_demarshal_string), (_dbus_marshal_test):
8331 * dbus/dbus-marshal.h:
8332 * dbus/dbus-message.c: (dbus_message_get_name),
8333 Document these functions.
8335 (dbus_message_append_int32), (dbus_message_append_uint32),
8336 (dbus_message_append_double), (dbus_message_append_string),
8337 (dbus_message_append_byte_array):
8338 * dbus/dbus-message.h:
8339 Add functions for adding message fields of different types.
8341 * dbus/dbus-protocol.h:
8342 Add the different types.
8344 2003-01-05 Havoc Pennington <hp@pobox.com>
8346 * bus/connection.c: implement routines for handling connections,
8347 first thing is keeping a list of owned services on each connection
8348 and setting up watches etc.
8350 * bus/services.c: implement a mapping from service names to lists
8353 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
8355 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
8356 to use static mutexes for global data
8358 * dbus/dbus-connection.c (dbus_connection_set_data): add new
8359 collection of functions to set/get application-specific data
8360 on the DBusConnection.
8362 2003-01-04 Havoc Pennington <hp@pobox.com>
8364 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
8365 (_dbus_poll): new function
8367 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
8370 * bus/loop.c: initial code for the daemon main loop
8372 2003-01-04 Havoc Pennington <hp@pobox.com>
8374 * test/watch.c (error_handler): make it safe if the error handler
8375 is called multiple times (if we s/error handler/disconnect
8376 handler/ we should just guarantee it's called only once)
8378 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
8379 error handler on disconnect (it's quite possible we should
8380 just change the error handler to a "disconnect handler," I'm
8381 not sure we have any other meaningful errors)
8383 * configure.in: check for getpwnam_r
8385 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8386 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
8387 mechanism as in SASL spec, using socket credentials
8389 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
8390 (_dbus_send_credentials_unix_socket): new function
8392 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
8394 (_dbus_write): only check errno if <0 returned
8395 (_dbus_write_two): ditto
8397 2003-01-02 Anders Carlsson <andersca@codefactory.se>
8399 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
8400 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
8401 (_dbus_marshal_test):
8402 * dbus/dbus-marshal.h:
8403 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
8404 to _dbus_marshal_utf8_string. Also fix some tests.
8406 2002-12-28 Harri Porten <porten@kde.org>
8408 * configure.in: added check for C++ compiler and a very cheesy
8409 check for the Qt integration
8411 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
8413 * qt/Makefile.am: added
8415 * qt/.cvsignore: added
8417 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
8418 latter, added #ifdef QT_THREAD_SUPPORT guard.
8420 * dbus/Makefile.am: added missing headers for make dist
8422 2002-12-28 Kristian Rietveld <kris@gtk.org>
8424 * dbus/Makefile.am: fixup export-symbols-regex.
8426 2002-12-27 Anders Carlsson <andersca@codefactory.se>
8428 * acinclude.m4: Add this file and put the
8429 PKG_CHECK_MODULE macro in it.
8431 2002-12-27 Anders Carlsson <andersca@codefactory.se>
8433 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8434 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8435 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8436 (_dbus_marshal_test):
8437 Make the demarshalling routines align the pos argument.
8438 Add string marshalling tests and fix the obvious bugs
8441 2002-12-26 Havoc Pennington <hp@pobox.com>
8443 * dbus/dbus-auth.c: fixes fixes fixes
8445 * dbus/dbus-transport-unix.c: wire up support for
8446 encoding/decoding data on the wire
8448 * dbus/dbus-auth.c (_dbus_auth_encode_data)
8449 (_dbus_auth_decode_data): append to target string
8450 instead of nuking it.
8452 2002-12-26 Havoc Pennington <hp@pobox.com>
8454 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
8455 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
8458 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
8459 avoid swap_bytes() overhead (ignoring possible assembly stuff for
8460 now). Main point is because I wanted unpack_uint32 to implement
8462 (_dbus_verbose_bytes): new function
8464 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
8466 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
8467 mechanism to handle a corrupt message stream
8468 (_dbus_message_loader_new): fix preallocation to only prealloc,
8471 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
8472 (_dbus_string_test): enhance tests for copy/move and fix the
8475 * dbus/dbus-transport-unix.c: Hold references in more places to
8476 avoid reentrancy problems
8478 * dbus/dbus-transport.c: ditto
8480 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
8481 leak reference count in no-message case
8483 * test/watch.c (do_mainloop): handle adding/removing watches
8484 during iteration over the watches. Also, ref the connection/server
8485 stored on a watch, so we don't try to mangle a destroyed one.
8487 * dbus/dbus-transport-unix.c (do_authentication): perform
8490 * dbus/dbus-auth.c (get_state): add a state
8491 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
8492 (_dbus_auth_get_unused_bytes): append the unused bytes
8493 to the passed in string, rather than prepend
8495 * dbus/dbus-transport.c (_dbus_transport_init_base): create
8496 the auth conversation DBusAuth
8498 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
8499 (_dbus_transport_new_for_domain_socket): when creating a
8500 transport, pass in whether it's a client-side or server-side
8501 transport so we know which DBusAuth to create
8503 2002-12-03 Havoc Pennington <hp@pobox.com>
8505 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
8506 _after_ finalizing the derived members
8507 (unix_connection_set): unref watch if we fail to add it
8509 * dbus/dbus-connection.c (dbus_connection_unref): delete the
8510 transport first, so that the connection owned by the
8511 transport will be valid as the transport finalizes.
8513 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
8514 if necessary, and remove watches from the connection.
8516 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
8518 2002-12-26 Anders Carlsson <andersca@codefactory.se>
8520 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8521 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8522 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8523 (_dbus_marshal_test):
8524 * dbus/dbus-marshal.h:
8525 Add string marshal functions and have the demarshal functions
8526 return the new position.
8528 2002-12-25 Havoc Pennington <hp@pobox.com>
8530 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
8531 it is a simple protocol that just maps directly to SASL.
8533 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
8534 initial implementation, not actually used yet.
8536 * dbus/dbus-string.c (_dbus_string_find): new function
8537 (_dbus_string_equal): new function
8538 (_dbus_string_base64_encode): new function
8539 (_dbus_string_base64_decode): new function
8541 2002-12-25 Anders Carlsson <andersca@codefactory.se>
8544 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
8545 (_dbus_marshal_int32), (_dbus_marshal_uint32),
8546 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8547 (_dbus_demarshal_uint32), (_dbus_marshal_test):
8548 * dbus/dbus-marshal.h:
8549 * dbus/dbus-protocol.h:
8550 * dbus/dbus-test.c: (main):
8552 Add un-optimized marshalling/demarshalling routines.
8554 2002-12-25 Harri Porten <porten@kde.org>
8556 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
8558 2002-12-24 Zack Rusin <zack@kde.org>
8560 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
8561 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
8564 2002-12-24 Havoc Pennington <hp@pobox.com>
8566 * glib/dbus-gthread.c: fix include
8568 * glib/dbus-glib.h: rename DBusMessageHandler for now.
8569 I think glib API needs to change, though, as you don't
8570 want to use DBusMessageFunction, you want to use the
8571 DBusMessageHandler object. Probably
8572 dbus_connection_open_with_g_main_loop()
8573 and dbus_connection_setup_g_main_loop() or something like that
8574 (but think of better names...) that just create a connection
8575 that has watch/timeout functions etc. already set up.
8577 * dbus/dbus-connection.c
8578 (dbus_connection_send_message_with_reply): new function just to
8579 show how the message handler helps us deal with replies.
8581 * dbus/dbus-list.c (_dbus_list_remove_last): new function
8583 * dbus/dbus-string.c (_dbus_string_test): free a string that
8586 * dbus/dbus-hash.c: use memory pools for the hash entries
8587 (rebuild_table): be more paranoid about overflow, and
8588 shrink table when we can
8589 (_dbus_hash_test): reduce number of sprintfs and write
8590 valid C89. Add tests for case where we grow and then
8591 shrink the hash table.
8593 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
8595 * dbus/dbus-connection.c (dbus_connection_register_handler)
8596 (dbus_connection_unregister_handler): new functions
8598 * dbus/dbus-message.c (dbus_message_get_name): new
8600 * dbus/dbus-list.c: fix docs typo
8602 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
8603 an object representing a handler for messages.
8605 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8608 * glib/dbus-gthread.c: (dbus_gthread_init):
8609 Don't use the gdbus prefix for public functions.
8611 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8615 Add GLib checks and fixup .pc files
8619 * glib/dbus-gmain.c: (gdbus_connection_prepare),
8620 (gdbus_connection_check), (gdbus_connection_dispatch),
8621 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
8622 (dbus_connection_gsource_new):
8623 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
8624 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
8625 * glib/test-dbus-glib.c: (message_handler), (main):
8628 2002-12-15 Harri Porten <porten@kde.org>
8630 * autogen.sh: check for libtoolize before attempting to use it
8632 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
8635 * .cvsignore: ignore more stamp files
8637 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
8639 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
8640 without make install.
8642 2002-12-15 Havoc Pennington <hp@pobox.com>
8644 * dbus/dbus-threads.c: add thread stubs that a higher library
8645 layer can fill in. e.g. the GLib wrapper might fill them in with
8646 GThread stuff. We still need to use this thread API to
8647 thread-safe-ize the library.
8649 2002-12-12 Havoc Pennington <hp@pobox.com>
8651 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
8652 below new interfaces and include fewer system headers.
8654 * dbus/dbus-sysdeps.c (_dbus_read): new function
8655 (_dbus_write): new function
8656 (_dbus_write_two): new function
8657 (_dbus_connect_unix_socket): new function
8658 (_dbus_listen_unix_socket): new function
8660 * dbus/dbus-message-internal.h: change interfaces to use
8663 2002-12-11 Havoc Pennington <hp@pobox.com>
8665 * dbus/dbus-types.h: add dbus_unichar
8667 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
8669 * dbus/dbus-connection.c (dbus_connection_send_message): return
8672 * dbus/dbus-transport.c: include dbus-watch.h
8674 * dbus/dbus-connection.c: include dbus-message-internal.h
8676 * HACKING: add file with coding guidelines stuff.
8678 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
8679 handling here, for security purposes (as in vsftpd). Not actually
8680 using this class yet.
8682 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
8683 system/libc usage here, as in vsftpd, for ease of auditing (and
8684 should also simplify portability). Haven't actually moved all the
8685 system/libc usage into here yet.
8687 2002-11-25 Havoc Pennington <hp@pobox.com>
8689 * dbus/dbus-internals.c (_dbus_verbose): fix to not
8690 always print the first verbose message.
8692 2002-11-24 Havoc Pennington <hp@pobox.com>
8694 * test/echo-client.c, test/echo-server.c: cheesy test
8697 * configure.in (AC_CHECK_FUNCS): check for writev
8699 * dbus/dbus-message.c (_dbus_message_get_network_data): new
8702 * dbus/dbus-list.c (_dbus_list_foreach): new function
8704 * dbus/dbus-internals.c (_dbus_verbose): new function
8706 * dbus/dbus-server.c, dbus/dbus-server.h: public object
8707 representing a server that listens for connections.
8709 * dbus/.cvsignore: create
8711 * dbus/dbus-errors.h, dbus/dbus-errors.c:
8712 public API for reporting errors
8714 * dbus/dbus-connection.h, dbus/dbus-connection.c:
8715 public object representing a connection that
8716 sends/receives messages. (Same object used for
8717 both client and server.)
8719 * dbus/dbus-transport.h, dbus/dbus-transport.c:
8720 Basic abstraction for different kinds of stream
8721 that we might read/write messages from.
8723 2002-11-23 Havoc Pennington <hp@pobox.com>
8725 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
8728 * dbus/dbus-test.c (main): add list test, and include
8729 dbus-test.h as intended
8731 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
8732 (_dbus_hash_table_remove_int): return value indicates
8733 whether the entry existed to remove
8735 * dbus/dbus-list.c: add linked list utility class,
8738 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
8741 2002-11-23 Havoc Pennington <hp@pobox.com>
8743 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
8744 DBUS_END_DECLS to nothing, that should fix this once and for all
8746 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
8748 * dbus/dbus-message.c, dbus/dbus-hash.c:
8749 add some missing @brief
8751 2002-11-23 Havoc Pennington <hp@pobox.com>
8753 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8754 to avoid confusing Doxygen
8756 * dbus/dbus-hash.c: @} not }@
8758 * dbus/dbus-message.c (struct DBusMessage): split out
8761 2002-11-23 Havoc Pennington <hp@pobox.com>
8763 * configure.in: pile on more warning flags if using gcc
8765 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8766 to document static functions
8768 * configure.in: add summary to end of configure so it
8769 looks nice and attractive
8771 * dbus/dbus-hash.c: finish implementation and write unit
8774 * configure.in: add --enable-tests to enable unit tests
8776 * dbus/dbus-test.c: test program to run unit tests
8777 for all files in dbus/*, initially runs a test for
8780 * dbus/dbus-internals.h: file to hold some internal utility stuff
8782 2002-11-22 Havoc Pennington <hp@redhat.com>
8784 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8785 "ported" away from Tcl
8787 * dbus/dbus-types.h: header for types such as dbus_bool_t
8789 2002-11-22 Havoc Pennington <hp@redhat.com>
8791 * dbus/dbus.h: fixups for doc warnings
8793 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8795 (QUIET): make it quiet so we can see warnings
8797 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8799 2002-11-22 Havoc Pennington <hp@redhat.com>
8801 * Makefile.am: include "Doxyfile" target in all-local
8803 * configure.in: generate the Doxyfile
8805 * Doxyfile.in: move Doxyfile here, so we can use
8806 configure to generate a Doxyfile with the right
8809 2002-11-22 Havoc Pennington <hp@redhat.com>
8811 * dbus/dbus-message.c: move inline docs into .c file
8813 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8814 so all docs are under doc/
8815 (MAN_EXTENSION): generate man pages. Use extension
8816 ".3dbus" which matches ".3qt" on my system,
8817 I guess this is OK, I don't know really.
8818 (FILE_PATTERNS): look for .c files not .h, makes sense
8821 2002-11-22 Havoc Pennington <hp@pobox.com>
8823 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8824 because any app can be a server, and any app can be a client,
8825 the bus is a special kind of server.
8827 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
8829 * Doxyfile : adding. Still needs Makefile rules to be generated
8830 automatically (just run "doxygen" in the toplevel dir for now to
8833 * dbus/dbus-message.h : Adding sample docs (javadoc since
8834 resembles gtk-doc a little more)
8836 * dbus/dbus.h : Adding sample docs
8838 2002-11-21 Havoc Pennington <hp@redhat.com>
8840 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8841 so we can allow ourselves to include files directly,
8842 instead of having to use dbus.h
8844 * dbus/dbus.h: fill in
8846 * dbus/dbus-message.h: sketch out a sample header file.
8847 Include griping if you include it directly instead of
8850 * dbus/dbus-macros.h: new file with macros for extern "C",
8851 TRUE/FALSE, NULL, etc.
8853 * doc/file-boilerplate.c: put include guards in here
8855 2002-11-21 Havoc Pennington <hp@redhat.com>
8857 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8859 * COPYING: include the GPL as well, and license code
8860 under both AFL and GPL.
8862 2002-11-21 Havoc Pennington <hp@redhat.com>
8864 * acconfig.h: get rid of this
8866 * autogen.sh (run_configure): add --no-configure option
8868 * configure.in: remove AC_ARG_PROGRAM to make
8869 autoconf complain less. add AC_PREREQ.
8870 add AC_DEFINE third arg.
8872 2002-11-21 Anders Carlsson <andersca@codefactory.se>
8875 Fix references so we can distcheck.
8877 2002-11-21 Havoc Pennington <hp@redhat.com>
8879 * Initial module creation