1 2003-10-02 Havoc Pennington <hp@pobox.com>
3 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
4 dbus_gproxy_oneway_call
6 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
7 (dbus_server_setup_with_g_main): fix to allow calling them more
8 than once on the same args
9 (dbus_bus_get_with_g_main): new function
11 2003-10-02 Havoc Pennington <hp@redhat.com>
13 * doc/dbus-tutorial.xml: write some stuff
15 2003-09-29 Havoc Pennington <hp@pobox.com>
17 * configure.in: split checks for Doxygen from XML docs, check for
20 * doc/Makefile.am: XML-ify all the docs, and add a blank
23 2003-09-29 Havoc Pennington <hp@pobox.com>
25 * Merge dbus-object-names branch. To see the entire patch
26 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
28 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
30 2003-09-28 Havoc Pennington <hp@pobox.com>
32 * HACKING: update to reflect new server
34 2003-09-26 Seth Nickell <seth@gnome.org>
37 * python/examples/example-signals.py:
39 Start implementing some notions of signals. The API
40 is really terrible, but they sort of work (with the
41 exception of being able to filter by service, and to
42 transmit signals *as* a particular service). Need to
43 figure out how to make messages come from the service
46 * python/dbus_bindings.pyx.in:
48 Removed duplicate message_handler callbacks.
50 2003-09-25 Havoc Pennington <hp@redhat.com>
52 * bus/session.conf.in: fix my mess
54 2003-09-25 Havoc Pennington <hp@pobox.com>
56 * bus/session.conf.in: fix security policy, reported by Seth Nickell
58 2003-09-25 Seth Nickell <seth@gnome.org>
60 * python/examples/example-service.py:
62 Johan notices complete wrong code in example-service, but
63 completely wrong in a way that works exactly the same (!).
64 Johan is confused, how could this possibly work? Example
65 code fails to serve purpose of making things clear.
68 2003-09-25 Mark McLoughlin <mark@skynet.ie>
70 * doc/dbus-specification.sgml: don't require header fields
71 to be 4-byte aligned and specify that fields should be
72 distinguished from padding by the fact that zero is not
75 * doc/TODO: remove re-alignment item and add item to doc
78 * dbus/dbus-message.c:
79 (HeaderField): rename the original member to value_offset
80 and introduce a name_offset member to keep track of where
81 the field actually begins.
82 (adjust_field_offsets): remove.
83 (append_int_field), (append_uint_field),
84 (append_string_field): don't align the start of the header
85 field to a 4-byte boundary.
86 (get_next_field): impl finding the next marhsalled field
88 (re_align_field_recurse): impl re-aligning a number of
89 already marshalled fields.
90 (delete_field): impl deleting a field of any type and
91 re-aligning any following fields.
92 (delete_int_or_uint_field), (delete_string_field): remove.
93 (set_int_field), (set_uint_field): no need to re-check
94 that we have the correct type for the field.
95 (set_string_field): ditto and impl re-aligning any
97 (decode_header_data): update to take into account that
98 the fields aren't 4-byte aligned any more and the new
99 way to distinguish padding from header fields. Also,
100 don't exit when there is too much header padding.
101 (process_test_subdir): print the directory.
102 (_dbus_message_test): add test to make sure a following
103 field is re-aligned correctly after field deletion.
105 * dbus/dbus-string.[ch]:
106 (_dbus_string_insert_bytes): rename from insert_byte and
107 allow the insert of multiple bytes.
108 (_dbus_string_test): test inserting multiple bytes.
110 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
111 warning note to docs about having to re-align any
112 marshalled values following the string.
114 * dbus/dbus-message-builder.c:
115 (append_string_field), (_dbus_message_data_load):
116 don't align the header field.
118 * dbus/dbus-auth.c: (process_test_subdir): print the
121 * test/break-loader.c: (randomly_add_one_byte): upd. for
124 * test/data/invalid-messages/bad-header-field-alignment.message:
127 * test/data/valid-messages/unknown-header-field.message: shove
128 a dict in the unknown field.
130 2003-09-25 Seth Nickell <seth@gnome.org>
133 * python/dbus_bindings.pyx.in:
135 Handle return values.
137 * python/examples/example-client.py:
138 * python/examples/example-service.py:
140 Pass back return values from the service to the client.
142 2003-09-24 Seth Nickell <seth@gnome.org>
146 Connect Object methods (when you are sharing an object) up... pass
147 in a list of methods to be shared. Sharing all the methods just
148 worked out too weird. You can now create nice Services over the
151 * python/dbus_bindings.pyx.in:
153 Keep references to user_data tuples passed into C functions so
154 Python doesn't garbage collect on us.
156 Implement MethodReturn and Error subclasses of Message for creating
157 DBusMessage's of those types.
159 * python/examples/example-client.py:
160 * python/examples/example-service.py:
162 Simple example code showing both how create DBus services and objects,
165 2003-09-23 Havoc Pennington <hp@pobox.com>
167 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
169 2003-09-23 Havoc Pennington <hp@redhat.com>
171 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
172 (dbus_gproxy_disconnect_signal): implement
173 (dbus_gproxy_manager_remove_signal_match): implement
174 (dbus_gproxy_manager_add_signal_match): implement
175 (dbus_gproxy_oneway_call): implement
177 2003-09-23 Havoc Pennington <hp@pobox.com>
179 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
180 subclass. This means dropping the transparent thread safety of the
181 proxy; you now need a separate proxy per-thread, or your own
182 locking on the proxy. Probably right anyway.
183 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
185 2003-09-22 Havoc Pennington <hp@redhat.com>
187 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
189 2003-09-21 Seth Nickell <seth@gnome.org>
191 First checkin of the Python bindings.
194 * python/Makefile.am:
195 * python/dbus_bindings.pyx.in:
196 * python/dbus_h_wrapper.h:
198 Pieces for Pyrex to operate on, building a dbus_bindings.so
199 python module for low-level access to the DBus APIs.
203 High-level Python module for accessing DBus objects.
208 Build stuff for the python bindings.
212 Extra macro needed for finding the Python C header files.
214 2003-09-21 Havoc Pennington <hp@pobox.com>
216 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
217 implementing the proxy manager, didn't get very far.
219 * dbus/dbus-bus.c (dbus_bus_add_match): new
220 (dbus_bus_remove_match): new
222 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
223 path_name argument; adjust the other not-yet-implemented
224 gproxy constructors to be what I think they should be.
226 2003-09-21 Havoc Pennington <hp@pobox.com>
228 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
229 by default for message bus connections.
231 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
232 exit_on_disconnect flag is set and we process the disconnected
234 (dbus_connection_set_exit_on_disconnect): new function
236 2003-09-21 Havoc Pennington <hp@pobox.com>
238 Get matching rules mostly working in the bus; only actually
239 parsing the rule text remains. However, the client side of
240 "signal connections" hasn't been started, this patch is only the
243 * dbus/dispatch.c: fix for the matching rules changes
245 * bus/driver.c (bus_driver_handle_remove_match)
246 (bus_driver_handle_add_match): send an ack reply from these
249 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
250 arguments, reported by Seth Nickell
252 * bus/config-parser.c (append_rule_from_element): support
253 eavesdrop=true|false attribute on policies so match rules
254 can be prevented from snooping on the system bus.
256 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
257 and "destination" in attribute names; fix some docs bugs;
258 add eavesdrop=true|false attribute
260 * bus/driver.c (bus_driver_handle_add_match)
261 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
264 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
265 rid of broadcast service concept, signals are just always broadcast
267 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
268 mostly implement matching rules stuff (currently only exposed as signal
271 2003-09-21 Mark McLoughlin <mark@skynet.ie>
273 * doc/dbus-specification.sgml: Change the header field name
274 to be an enum and update the rest of the spec to reference
275 the fields using the conventinal name.
277 * dbus/dbus-protocol.h: update to reflect the spec.
279 * doc/TODO: add item to remove the 4 byte alignment requirement.
281 * dbus/dbus-message.c: Remove the code to generalise the
282 header/body length and serial number header fields as named
283 header fields so we can reference field names using the
285 (append_int_field), (append_uint_field), (append_string_field):
286 Append the field name as a byte rather than four chars.
287 (delete_int_or_uint_field), (delete_string_field): reflect the
288 fact that the field name and typecode now occupy 4 bytes instead
290 (decode_string_field), (decode_header_data): update to reflect
291 protocol changes and move the field specific encoding from
292 decode_string_field() back into decode_header_data().
294 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
295 Add utility to aid debugging.
297 * dbus/dbus-message-builder.c:
298 (append_string_field), (_dbus_message_data_load): Update to
299 reflect protocol changes; Change the FIELD_NAME directive
300 to HEADER_FIELD and allow it to take the field's conventional
301 name rather than the actual value.
303 * test/data/*/*.message: Update to use HEADER_FIELD instead
304 of FIELD_NAME; Always align the header on an 8 byte boundary
305 *before* updating the header length.
307 2003-09-15 Havoc Pennington <hp@pobox.com>
309 * dbus/dbus-pending-call.c: add the get/set object data
310 boilerplate as for DBusConnection, etc. Use generic object data
311 for the notify callback.
313 * glib/dbus-gparser.c (parse_node): parse child nodes
315 * tools/dbus-viewer.c: more hacking on the dbus-viewer
317 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
318 contain functions shared between the convenience lib and the
321 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
322 -export-symbols-regex to the GLib library
324 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
325 fix the locking in here, and add a default handler for
326 Introspect() that just returns sub-nodes.
328 2003-09-14 Havoc Pennington <hp@pobox.com>
330 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
331 rather than gfoo consistent
333 * glib/dbus-gproxy.h: delete for now, move contents to
334 dbus-glib.h, because the include files don't work right since we
335 aren't in the dbus/ subdir.
337 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
338 (dbus_gproxy_end_call): finish
339 (dbus_gproxy_begin_call): finish
341 * glib/dbus-gmain.c (dbus_set_g_error): new
343 * glib/dbus-gobject.c (handle_introspect): include information
344 about child nodes in the introspection
346 * dbus/dbus-connection.c (dbus_connection_list_registered): new
347 function to help in implementation of introspection
349 * dbus/dbus-object-tree.c
350 (_dbus_object_tree_list_registered_and_unlock): new function
352 2003-09-12 Havoc Pennington <hp@pobox.com>
354 * glib/dbus-gidl.h: add common base class for all the foo_info
357 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
360 * test/Makefile.am: try test srcdir -ef . in addition to test
361 srcdir = ., one of them should work (yeah lame)
363 * glib/Makefile.am: build the "idl" parser stuff as a convenience
366 * glib/dbus-gparser.h: make description_load routines return
367 NodeInfo* not Parser*
369 * Makefile.am (SUBDIRS): build test dir after all library dirs
371 * configure.in: add GTK+ detection
373 2003-09-07 Havoc Pennington <hp@pobox.com>
375 * Make Doxygen contented.
377 2003-09-07 Havoc Pennington <hp@pobox.com>
379 * doc/dbus-specification.sgml: more updates
381 2003-09-06 Havoc Pennington <hp@pobox.com>
383 * doc/dbus-specification.sgml: partial updates
385 * bus/dbus-daemon-1.1.in: fix the config file docs for the
386 zillionth time; hopefully I edited the right file this time.
388 * bus/config-parser.c (append_rule_from_element): support
389 send_type, send_path, receive_type, receive_path
391 * bus/policy.c: add message type and path to the list of things
392 that can be "firewalled"
394 2003-09-06 Havoc Pennington <hp@pobox.com>
396 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
397 (dbus_connection_register_object_path): make this not handle
398 messages to paths below the given path
400 2003-09-03 Havoc Pennington <hp@pobox.com>
402 * test/glib/Makefile.am: add this with random glib-linked test
405 * glib/Makefile.am: remove the random test programs from here,
406 leave only the unit tests
408 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
409 uscore/javacaps conversion, and fix
410 (get_object_property, set_object_property): change to .NET
411 convention for mapping props to methods, set_FooBar/get_FooBar,
412 since one language has such a convention we may as well copy it.
413 Plus real methods in either getFooBar or get_foo_bar style won't
414 collide with this convention.
416 2003-09-01 Havoc Pennington <hp@pobox.com>
418 * glib/dbus-gparser.c: implement
420 * glib/dbus-gobject.c: start implementing skeletons support
422 * configure.in: when disabling checks/assert, also define
423 G_DISABLE_ASSERT and G_DISABLE_CHECKS
425 2003-09-01 Havoc Pennington <hp@pobox.com>
427 * glib/Makefile.am: rearrange a bunch of files and get "make
428 check" framework set up
430 2003-08-31 Havoc Pennington <hp@pobox.com>
432 * fix build with --disable-tests
434 2003-08-30 Havoc Pennington <hp@pobox.com>
436 * dbus/dbus-connection.c: purge DBusMessageHandler
438 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
439 use callbacks everywhere
441 2003-08-30 Havoc Pennington <hp@pobox.com>
443 * test/data/valid-config-files/system.d/test.conf: change to
444 root for the user so warnings don't get printed
446 * dbus/dbus-message.c: add dbus_message_get_path,
447 dbus_message_set_path
449 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
450 dispatching to a path
452 * dbus/dbus-string.c (_dbus_string_validate_path): add
454 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
455 (_dbus_marshal_object_path): implement
457 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
458 to contain the path to the target object
459 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
460 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
462 2003-08-30 Havoc Pennington <hp@pobox.com>
464 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
466 2003-08-29 Havoc Pennington <hp@pobox.com>
468 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
470 (struct DBusObjectSubtree): shrink this
471 a lot, since we may have a lot of them
472 (_dbus_object_tree_free_all_unlocked): implement
473 (_dbus_object_tree_dispatch_and_unlock): implement
475 2003-08-29 Havoc Pennington <hp@pobox.com>
477 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
479 2003-08-28 Havoc Pennington <hp@pobox.com>
483 * dbus/dbus-connection.c: port to no ObjectID, create a
484 DBusObjectTree, rename ObjectTree to ObjectPath in public API
486 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
487 everything except UnregisterFunction and MessageFunction
489 * dbus/dbus-marshal.c: port away from DBusObjectID,
490 add DBUS_TYPE_OBJECT_PATH
492 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
493 dbus/dbus-objectid.[hc]: remove these, we are moving to
494 path-based object IDs
496 2003-08-25 Havoc Pennington <hp@pobox.com>
498 Just noticed that dbus_message_test is hosed, I wonder when I
499 broke that. I thought make check was passing earlier...
501 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
502 container tree, will replace most of dbus-object-registry
504 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
507 2003-08-19 Havoc Pennington <hp@pobox.com>
509 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
510 (dbus_message_is_error): fix this function
512 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
515 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
516 reflect clarified man page
517 (bus_client_policy_check_can_send): ditto
519 * bus/session.conf.in: fixup
521 * bus/system.conf.in: fixup
523 2003-08-18 Havoc Pennington <hp@redhat.com>
525 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
527 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
528 dumb bug created earlier (wrong order of args to
529 decode_header_data())
531 * tools/dbus-send.c: port
533 * tools/dbus-print-message.c (print_message): port
535 * test/data/*messages: port all messages over
537 * dbus/dbus-message-builder.c: support including
540 * bus/driver.c: port over
542 * bus/dispatch.c: port over to new stuff
544 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
545 rename disconnect signal to "Disconnected"
547 2003-08-17 Havoc Pennington <hp@pobox.com>
549 This doesn't compile yet, but syncing up so I can hack on it from
550 work. What are branches for if not broken code? ;-)
552 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
553 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
554 DBUS_HEADER_FIELD_ERROR_NAME
556 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
557 for the interface+member pairs
558 (string_hash): change to use g_str_hash algorithm
559 (find_direct_function, find_string_function): refactor these to
562 * dbus/dbus-message.c: port all of this over to support
563 interface/member fields instead of name field
565 * dbus/dbus-object-registry.c: port over
567 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
568 from _dbus_string_validate_name
570 * bus/dbus-daemon-1.1: change file format for the
571 <deny>/<allow> stuff to match new message naming scheme
573 * bus/policy.c: port over
575 * bus/config-parser.c: parse new format
577 2003-08-16 Havoc Pennington <hp@pobox.com>
579 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
582 * glib/dbus-gproxy.c: some hacking
584 2003-08-15 Havoc Pennington <hp@redhat.com>
586 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
588 * dbus/dbus-connection.c
589 (dbus_connection_send_with_reply_and_block): factor out internals;
590 change to convert any error replies to DBusError instead of
591 returning them as a message
593 2003-08-15 Havoc Pennington <hp@pobox.com>
595 * dbus/dbus-connection.c,
596 dbus/dbus-pending-call.c: Finish the pending call stuff
598 2003-08-14 Havoc Pennington <hp@redhat.com>
600 * dbus/dbus-pending-call.c: start on new object that will replace
601 DBusMessageHandler and ReplyHandlerData for tracking outstanding
604 * dbus/dbus-gproxy.c: start on proxy object used to communicate
605 with remote interfaces
607 * dbus/dbus-gidl.c: do the boring boilerplate in here
609 2003-08-12 Havoc Pennington <hp@pobox.com>
611 * bus/dispatch.c (bus_dispatch): make this return proper
612 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
614 * dbus/dbus-errors.c (dbus_set_error): use
615 _dbus_string_append_printf_valist
617 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
618 (_dbus_string_append_printf): new
620 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
623 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
624 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
625 message is unhandled.
627 2003-08-11 Havoc Pennington <hp@pobox.com>
629 * bus/test.c (client_disconnect_handler): change to return
630 HANDLED (would have been REMOVE_MESSAGE)
632 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
633 HANDLED/NOT_YET_HANDLED instead of
634 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
637 2003-08-10 Havoc Pennington <hp@pobox.com>
639 * tools/dbus-send.c (main): add --type argument, for now
640 supporting only method_call and signal types.
642 * tools/dbus-print-message.c: print message type
644 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
645 init connection->objects
647 * doc/dbus-specification.sgml: fix sgml
649 * bus/*.c: port over to object-instance API changes
651 * test/test-service.c: ditto
653 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
654 name, we will have to fix up the rest of the code to also handle
656 (dbus_message_new): generic message-creation call
657 (set_string_field): allow appending name field
659 2003-08-06 Havoc Pennington <hp@pobox.com>
661 * dbus/dbus-object-registry.c: implement signal connection
664 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
666 * dbus/dbus-internals.c (_dbus_memdup): new function
668 2003-08-02 Havoc Pennington <hp@pobox.com>
670 * dbus/dbus-message.c (dbus_message_get_no_reply)
671 (dbus_message_set_no_reply): add these and remove
672 set_is_error/get_is_error
674 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
675 remove the ERROR flag, since there's now an ERROR type
677 2003-08-01 Havoc Pennington <hp@pobox.com>
679 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
682 * dbus/dbus-message.c (dbus_message_get_type): new function
684 * doc/dbus-specification.sgml: add "type" byte to messages
686 2003-08-01 Havoc Pennington <hp@pobox.com>
688 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
689 a message type enum to distinguish kinds of message
690 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
691 that need not be replied to
693 2003-08-01 Havoc Pennington <hp@pobox.com>
695 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
696 (unpack_8_octets): fix no-64-bit-int bug
698 * dbus/dbus-object-registry.c (validate_id): validate the
699 connection ID bits, not just the instance ID.
701 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
702 the connection-global 33 bits of the object ID
704 * dbus/dbus-object-registry.c (info_from_entry): fill in
705 object ID in the new way
707 * dbus/dbus-objectid.h: rather than high/low bits, specifically
708 define server/client/instance bits.
710 2003-07-30 Havoc Pennington <hp@pobox.com>
712 * dbus/dbus-connection.c (dbus_connection_register_object): fix
715 2003-07-13 Havoc Pennington <hp@pobox.com>
717 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
718 fields to DBusObjectVTable and DBusObjectInfo
720 2003-07-12 Havoc Pennington <hp@pobox.com>
722 * dbus/dbus-object-registry.c: implement unit test,
723 fix bugs discovered in process
725 * dbus/dbus-connection.c: remove handler_table and
726 register_handler(), add DBusObjectRegistry usage
728 * dbus/dbus-objectid.c (dbus_object_id_is_null)
729 (dbus_object_id_set_null): new functions
731 2003-07-08 Havoc Pennington <hp@pobox.com>
733 * dbus/dbus-object.c: implement some of this
735 * dbus/dbus-object-registry.c
736 (_dbus_object_registry_add_and_unlock): fill in the object_id out
738 (_dbus_object_registry_new): handle OOM
740 2003-07-08 Havoc Pennington <hp@pobox.com>
742 * dbus/dbus-object.h: sketch out an API for registering objects
743 with a connection, that allows us to use as little as 24 bytes
744 per object and lets application code represent an object in
747 * dbus/dbus-object-registry.c: implement the hard bits of the
748 DBusConnection aspect of object API. Not yet wired up.
750 2003-07-06 Havoc Pennington <hp@pobox.com>
752 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
753 (_dbus_marshal_object_id): new
754 (_dbus_demarshal_object_id): new
755 (_dbus_marshal_get_arg_end_pos): support object ID type, and
756 consolidate identical switch cases. Don't conditionalize handling
757 of DBUS_TYPE_UINT64, need to handle the type always.
758 (_dbus_marshal_validate_arg): consolidate identical cases, and
759 handle DBUS_TYPE_OBJECT_ID
761 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
763 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
765 2003-09-28 Havoc Pennington <hp@pobox.com>
769 2003-09-28 Havoc Pennington <hp@pobox.com>
771 * doc/Makefile.am (dbus-specification.html): testing a funky hack
772 to work with Debian db2html
774 2003-09-28 Havoc Pennington <hp@pobox.com>
778 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
779 stylesheet-images for benefit of Debian
781 Change back to using filesystem-linked sockets for the system
782 bus, so only root can create the default system bus address.
784 * bus/system.conf.in: change to use
785 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
787 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
790 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
791 here, and AC_DEFINE DBUS_SYSTEM_PATH
793 2003-08-09 Anders Carlsson <andersca@codefactory.se>
799 2003-08-09 Anders Carlsson <andersca@codefactory.se>
801 * doc/dbus-specification.sgml:
802 Add activation reply values.
804 2003-08-05 Havoc Pennington <hp@redhat.com>
808 2003-08-05 Anders Carlsson <andersca@codefactory.se>
810 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
811 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
812 (add_watch), (remove_watch), (create_source):
813 Refcount fds, fixes some reentrancy issues.
815 2003-07-30 Havoc Pennington <hp@redhat.com>
817 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
818 bus address to be abstract if we have abstract sockets
822 2003-07-28 Havoc Pennington <hp@redhat.com>
824 * bus/messagebus.in: fix to avoid processname/servicename
825 confusion, from Michael Kearey
826 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
828 2003-07-23 Havoc Pennington <hp@pobox.com>
830 * dbus/dbus-message.c (dbus_message_iter_get_named):
831 fix from Andy Hanton to remove broken "+1"
833 2003-07-16 Havoc Pennington <hp@pobox.com>
835 * tools/dbus-launch.c (babysit): close stdout/stderr in the
836 babysitter process, as suggested by Thomas Leonard, so
837 an "eval `dbus-launch --exit-with-session`" will actually
840 2003-07-16 Havoc Pennington <hp@pobox.com>
842 * configure.in: print out EXPANDED_* variables in the summary at
843 the end; clean up the code that computes EXPANDED_ variables and
844 get the ones using exec_prefix right. Should make things work
845 when you build without --prefix
847 2003-06-29 Havoc Pennington <hp@pobox.com>
849 * mono/Test.cs (class Test): fire up a main loop and run it
851 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
852 done once, the app has to do it
854 2003-06-26 Havoc Pennington <hp@pobox.com>
856 * mono/Connection.cs: set up connection with the glib main loop
858 2003-07-01 Havoc Pennington <hp@redhat.com>
860 * doc/dbus-specification.sgml: clarify the format of a type code,
861 change suggested by Jim Blandy
863 2003-06-29 Miloslav Trmac <mitr@volny.cz>
866 * tools/Makefile.am: Don't assume srcdir == builddir.
868 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
870 (_dbus_memory_test): New function.
871 * dbus/dbus-test.h: Add _dbus_memory_test ().
872 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
874 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
876 (dbus_message_new): Remove obsolete @todo.
878 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
879 (_dbus_marshal_set_uint64): Fix comment.
881 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
882 hardcode FIELD_REPLY_SERIAL.
884 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
885 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
887 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
888 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
890 2003-06-24 Havoc Pennington <hp@pobox.com>
892 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
894 2003-06-23 Anders Carlsson <andersca@codefactory.se>
900 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
901 * gcj/org/.cvsignore:
902 * gcj/org/Makefile.am:
903 * gcj/org/freedesktop/.cvsignore:
904 * gcj/org/freedesktop/Makefile.am:
905 * gcj/org/freedesktop/dbus/.cvsignore:
906 * gcj/org/freedesktop/dbus/Makefile.am:
907 * gcj/org/freedesktop/dbus/Message.java: (Message),
909 * gcj/org/freedesktop/dbus/natMessage.cc:
910 Fix the build system.
912 2003-06-22 Havoc Pennington <hp@pobox.com>
914 * mono/Connection.cs: add more bindings
916 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
919 2003-06-22 Havoc Pennington <hp@pobox.com>
921 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
922 Start wrapping more stuff.
924 2003-06-22 Havoc Pennington <hp@pobox.com>
926 * mono/Message.cs: implement Message.Wrap() that ensures we only
927 have a single C# wrapper per DBusMessage, assuming it works which
930 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
931 (dbus_message_free_data_slot): new
932 (dbus_message_set_data): new
933 (dbus_message_get_data): new
935 2003-06-22 Havoc Pennington <hp@pobox.com>
937 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
938 (_dbus_data_slot_allocator_alloc): rework these to keep a
939 reference count on each slot and automatically manage a global
940 slot ID variable passed in by address
942 * bus/bus.c: convert to new dataslot API
944 * dbus/dbus-bus.c: convert to new dataslot API
946 * dbus/dbus-connection.c: convert to new dataslot API
948 * dbus/dbus-server.c: convert to new dataslot API
950 * glib/dbus-gmain.c: ditto
954 * bus/connection.c: ditto
956 2003-06-22 Anders Carlsson <andersca@codefactory.se>
958 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
959 after the gcj checks so that the correct configuration tags
960 will be added to libtool.
962 * dbus-glib-1.pc.in: No need to specify any includes since
963 dbus-1.pc.in has those.
965 2003-06-22 Havoc Pennington <hp@pobox.com>
967 * mono/*, gcj/*, configure.in, Makefile.am:
968 Check in makefiles and subdirs for mono and gcj bindings.
969 Neither binding actually exists, just trying to get through
970 all the build and other boring bits.
972 2003-06-21 Philip Blundell <philb@gnu.org>
974 * tools/dbus-monitor.1: Updated.
976 * tools/dbus-send.1: Likewise.
978 2003-06-20 Anders Carlsson <andersca@codefactory.se>
980 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
981 for hangup and error after checking read so we won't discard
982 pending data if both hangup and read are set.
984 2003-06-19 Philip Blundell <philb@gnu.org>
986 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
988 * tools/dbus-send.c: Accept both --system and --session.
990 * tools/dbus-monitor.c: Same here.
992 2003-06-19 Anders Carlsson <andersca@codefactory.se>
994 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
995 from C++ (Patch by Miloslav Trmac).
997 2003-06-15 Joe Shaw <joe@assbarn.com>
999 * configure.in: Check for socklen_t.
1001 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1003 * test/test-segfault.c: Add #include <sys/time.h>
1005 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1006 dbus-launch needs it.
1008 2003-06-09 Havoc Pennington <hp@redhat.com>
1010 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1011 SUN_LEN, it breaks abstract socket usage
1013 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1016 2003-06-04 Havoc Pennington <hp@pobox.com>
1018 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1019 using unix:abstract=/foo, and when listening in a tmpdir
1020 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1022 * dbus/dbus-transport.c (_dbus_transport_open): support
1025 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1026 support abstract sockets
1028 * dbus/dbus-transport-unix.c
1029 (_dbus_transport_new_for_domain_socket): support abstract sockets
1031 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1032 toggle as an argument, implement abstract namespace support
1033 (_dbus_listen_unix_socket): ditto
1035 * configure.in: add --enable-abstract-sockets and implement
1036 a configure check for autodetection of the right value.
1038 2003-06-01 Havoc Pennington <hp@pobox.com>
1040 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1041 in /tmp (though on Linux this will end up being useless,
1042 when we add abstract namespace support)
1044 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1047 2003-05-28 Colin Walters <walters@verbum.org>
1049 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1051 2003-05-18 Anders Carlsson <andersca@codefactory.se>
1053 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1055 2003-05-17 Colin Walters <walters@gnu.org>
1057 * tools/dbus-send.c: Don't exit with an error code if --help was
1058 passed. Default to using the session bus instead of the system
1061 * tools/dbus-launch.c: Ditto.
1063 * tools/dbus-monitor.c: Ditto.
1065 * tools/dbus-send.1: Update with new arguments.
1067 * tools/dbus-launch.c: Emit code to export variables. New
1068 arguments -s and -c to specify shell syntax, and a bit of code to
1069 autodetect syntax. Also, allow specifying a program to run.
1071 * tools/dbus-launch.1: Update with new arguments.
1073 * tools/dbus-send.1: Ditto.
1075 * tools/dbus-monitor.1: Ditto.
1077 2003-05-17 Havoc Pennington <hp@pobox.com>
1079 * bus/config-parser.c (merge_included): merge in policies from
1080 child configuration file.
1082 * bus/policy.c (bus_policy_merge): function to merge two policies
1085 2003-05-16 Havoc Pennington <hp@redhat.com>
1087 * dbus/dbus-connection.c: disable verbose lock spew
1089 * tools/dbus-send.c: add --print-reply command line option
1091 * tools/dbus-print-message.h (print_message): new util function
1092 shared by dbus-send and dbus-monitor
1094 * tools/dbus-monitor.c (handler_func): exit on disconnect
1096 * dbus/dbus-transport-unix.c (do_reading): if the transport is
1097 disconnected, don't try to use the read_watch
1099 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1100 so we can find this bug more easily
1102 2003-05-16 Havoc Pennington <hp@redhat.com>
1104 * bus/policy.c (free_rule_list_func): avoid a crash when passed
1105 NULL as DBusHashTable is annoyingly likely to do.
1107 2003-05-16 Colin Walters <walters@verbum.org>
1109 * tools/dbus-monitor.c: Add --session argument and usage()
1112 * tools/dbus-monitor.1: Update with new --session arg.
1114 * bus/Makefile.am (install-data-hook): Create
1115 $(libdir)/dbus-1.0/services so that the session bus is happy.
1117 2003-05-15 Havoc Pennington <hp@redhat.com>
1119 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
1120 on non-x86. ifdef's are evil.
1122 2003-05-15 Havoc Pennington <hp@redhat.com>
1124 * configure.in: 0.11
1128 * bus/Makefile.am (initddir): apparently we are supposed to put
1129 init scripts in /etc/rc.d/init.d not /etc/init.d
1131 * bus/Makefile.am: remove the "you must --enable-tests to make
1132 check" as it broke distcheck
1134 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
1136 2003-05-13 James Willcox <jwillcox@gnome.org>
1139 * bus/activation.c: (bus_activation_service_created),
1140 (bus_activation_activate_service):
1141 * bus/driver.c: (bus_driver_send_service_deleted),
1142 (bus_driver_send_service_created), (bus_driver_send_service_lost),
1143 (bus_driver_send_service_acquired),
1144 (bus_driver_send_welcome_message),
1145 (bus_driver_handle_list_services):
1146 * bus/session.conf.in:
1147 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
1148 (dbus_bus_service_exists), (dbus_bus_activate_service):
1151 Add some convenience API which lets you activate a service, and did a
1152 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
1153 and dbus_message_get_args()
1155 2003-05-11 Havoc Pennington <hp@pobox.com>
1157 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
1158 calling _dbus_marshal_validate_arg() for every byte in a byte
1161 * dbus/dbus-message-handler.c: use atomic reference counting to
1162 reduce number of locks slightly; the global lock in here sucks
1164 * dbus/dbus-connection.c
1165 (_dbus_connection_update_dispatch_status_and_unlock): variant of
1166 update_dispatch_status that can be called with lock held; then use
1167 in a couple places to reduce locking/unlocking
1168 (dbus_connection_send): hold the lock over the whole function
1169 instead of acquiring it twice.
1171 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
1173 * bus/connection.c (bus_connections_setup_connection): fix access
1174 to already-freed memory.
1176 * dbus/dbus-connection.c: keep a little cache of linked list
1177 nodes, to avoid using the global linked list alloc lock in the
1178 normal send-message case. Instead we just use the connection lock
1179 that we already have to take.
1181 * dbus/dbus-list.c (_dbus_list_find_last): new function
1183 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
1184 change to use a struct for the atomic type; fix docs,
1185 they return value before increment, not after increment.
1187 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
1188 (_dbus_string_append_8_aligned): new functions to try to
1189 microoptimize this operation.
1190 (reallocate_for_length): break this out of set_length(), to
1191 improve profile info, and also so we can consider inlining the
1194 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
1195 strings with some preallocation, cuts down on our calls to realloc
1196 a fair bit. Though if we can get the "move entire string to empty
1197 string" optimization below to kick in here, it would be better.
1199 * dbus/dbus-string.c (_dbus_string_move): just call
1200 _dbus_string_move_len
1201 (_dbus_string_move_len): add a special case for moving
1202 an entire string into an empty string; we can just
1203 swap the string data instead of doing any reallocs.
1204 (_dbus_string_init_preallocated): new function
1206 2003-05-11 Havoc Pennington <hp@pobox.com>
1208 Write a "test-profile" that does echo client-server with threads;
1209 profile reveals lock contention, memcpy/realloc of buffers, and
1210 UTF-8 validation as hot spots. 20% of lock contention eliminated
1211 with dbus_atomic_inc/dec implementation on x86. Much remaining
1212 contention is global mempool locks for GList and DBusList.
1214 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
1217 * dbus/dbus-connection.c (struct DBusConnection): use
1218 dbus_atomic_t for the reference count
1220 * dbus/dbus-message.c (struct DBusMessage): declare
1221 dbus_atomic_t values as volatile
1223 * configure.in: code to detect ability to use atomic integer
1224 operations in assembly, from GLib patch
1226 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
1227 time, tired of it being wrong in threads and forked processes
1229 * glib/test-profile.c: a little program to bounce messages back
1230 and forth between threads and eat CPU
1232 * dbus/dbus-connection.c: add debug spew macros for debugging
1233 thread locks; include config.h at top; fix deadlock in
1234 dbus_connection_flush()
1236 2003-05-08 Havoc Pennington <hp@pobox.com>
1238 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
1239 data from getting written, and there wasn't a good reason to
1242 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
1243 dbus_verbose lines in test coverage
1244 (main): add list of functions sorted by # of untested blocks
1245 to the coverage report
1247 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
1249 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
1251 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
1252 extend test coverage
1254 * test/data/auth/cancel.auth-script: test canceling an
1257 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
1258 aren't used. in CVS history if we end up needing them.
1260 2003-05-04 Havoc Pennington <hp@pobox.com>
1262 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
1265 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
1266 function, which assumed length was in # of strings, not bytes
1268 * dbus/dbus-message.c (_dbus_message_test): add tests for some
1271 * dbus/dbus-connection.c
1272 (_dbus_connection_queue_received_message): disable function for
1273 now, we are only using it in test mode
1275 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1276 remove a mistaken FIXME
1278 2003-05-04 Havoc Pennington <hp@pobox.com>
1280 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
1281 unlock mutex on successful return, patch from Anders Gustafsson
1283 2003-05-04 Havoc Pennington <hp@pobox.com>
1285 * dbus-glib-1.pc.in (Requires): fix dependencies, from
1288 2003-05-04 Havoc Pennington <hp@pobox.com>
1290 * tools/dbus-launch.c: implement
1292 * bus/main.c (main), bus/bus.c (bus_context_new):
1293 implement --print-pid and --fork
1295 2003-05-03 Havoc Pennington <hp@redhat.com>
1297 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
1298 the address had no value, and add to test suite. Fix and
1299 regression test from Miloslav Trmac
1301 2003-05-03 Havoc Pennington <hp@pobox.com>
1303 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
1304 watch is invalid when handled
1306 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
1307 dbus-launch utility to launch the bus from a shell script. Didn't
1308 actually implement dbus-launch yet, it's just a placeholder still.
1310 2003-05-03 Havoc Pennington <hp@pobox.com>
1312 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
1313 daemon; also documents daemon config file, so replaces
1314 doc/config-file.txt. Corrected some stuff from config-file.txt in
1315 the process of moving it.
1317 2003-05-03 Havoc Pennington <hp@pobox.com>
1319 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
1322 2003-05-03 Colin Walters <walters@verbum.org>
1324 * dbus/dbus-sysdeps.c (fill_user_info): Test against
1325 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
1327 * Makefile.am: Update to use new .pc versioning scheme.
1329 2003-05-02 Havoc Pennington <hp@redhat.com>
1331 * bus/system.conf.in: allow send/receive to/from message bus
1334 2003-04-30 Havoc Pennington <hp@redhat.com>
1336 * configure.in: print a note when building with unit tests and
1339 2003-04-30 Havoc Pennington <hp@redhat.com>
1341 * Makefile.am: add a check-local that complains if you didn't
1342 configure with --enable-tests
1344 2003-04-29 Havoc Pennington <hp@redhat.com>
1346 * glib/dbus-gmain.c: docs cleanups
1348 * dbus/dbus-types.h: add docs on int64 types
1350 * dbus/dbus-memory.c: fix docs to avoid putting private API in
1351 public API docs section
1353 2003-04-29 Havoc Pennington <hp@redhat.com>
1355 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1356 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1357 parallel install API version, not with the D-BUS package version.
1359 * HACKING: move some of README over here
1361 * README: updates, and document API/ABI policy
1363 * configure.in: reindentation
1365 2003-04-29 Havoc Pennington <hp@redhat.com>
1367 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1368 to use this library" to be sure people have the right
1371 2003-04-28 Havoc Pennington <hp@redhat.com>
1373 * configure.in: add --enable-docs which by default is auto yes if
1374 doxygen and db2html found, no otherwise; but can be forced on/off
1376 * doc/Makefile.am: conditionalize whether to build docs on
1379 2003-04-28 Havoc Pennington <hp@redhat.com>
1381 * configure.in: 0.10
1385 * bus/system.conf.in: add <includedir>system.d</includedir>
1387 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1388 username was provided but not uid
1390 * bus/config-parser.c (struct BusConfigParser): keep track of
1391 whether the parser is toplevel or was included; change some
1392 of the error handling if it's included.
1394 2003-04-27 Havoc Pennington <hp@pobox.com>
1398 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1399 report correct status if we finish processing authentication
1400 inside this function.
1402 * bus/activation.c (try_send_activation_failure): use
1403 bus_transaction_send_error_reply
1405 * bus/connection.c (bus_connection_get_groups): return an error
1406 explaining the problem
1408 * bus/bus.c (bus_context_check_security_policy): implement
1409 restriction here that inactive connections can only send the
1410 hello message. Also, allow bus driver to send anything to
1413 * bus/connection.c (bus_connection_complete): create the
1414 BusClientPolicy here instead of on-demand.
1415 (bus_connection_get_policy): don't return an error
1417 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1418 sender field in message being replied to
1420 * bus/bus.c (bus_context_check_security_policy): fix silly typo
1421 causing it to return FALSE always
1423 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1424 we checked sender rather than destination
1426 2003-04-25 Havoc Pennington <hp@redhat.com>
1428 test suite is slightly hosed at the moment, will fix soon
1430 * bus/connection.c (bus_connections_expire_incomplete): fix to
1431 properly disable the timeout when required
1432 (bus_connection_set_name): check whether we can remove incomplete
1433 connections timeout after we complete each connection.
1435 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1436 probably still broken.
1438 * bus/services.c (bus_registry_acquire_service): implement max
1439 number of services owned, and honor allow/deny rules on which
1440 services a connection can own.
1442 * bus/connection.c (bus_connection_get_policy): report errors here
1444 * bus/activation.c: implement limit on number of pending
1447 2003-04-25 Havoc Pennington <hp@redhat.com>
1449 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1450 where we used >= 0 instead of != DBUS_UID_UNSET.
1452 2003-04-25 Havoc Pennington <hp@redhat.com>
1454 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
1455 were toggled without add/remove, fix from Anders Gustafsson
1457 2003-04-24 Havoc Pennington <hp@redhat.com>
1459 * test/data/valid-config-files/basic.conf: add <limit> tags to
1462 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
1463 <limit> tag in configuration file.
1465 2003-04-24 Havoc Pennington <hp@redhat.com>
1467 * bus/dispatch.c: somehow missed some name_is
1469 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
1470 (_dbus_timeout_set_interval): new
1472 * bus/connection.c (bus_connections_setup_connection): record time
1473 when each connection is first set up, and expire them after the
1474 auth timeout passes.
1476 2003-04-24 Havoc Pennington <hp@redhat.com>
1478 * dbus/dbus-message.c (dbus_message_name_is): rename
1479 (dbus_message_service_is): rename
1480 (dbus_message_sender_is): rename
1481 (dbus_message_get_service): rename
1483 2003-04-24 Havoc Pennington <hp@redhat.com>
1485 * configure.in: add --enable-checks
1487 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
1489 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
1490 to use thread locks.
1491 (_dbus_connection_handler_destroyed_locked): move some private
1492 functions into proper docs group
1494 * dbus/dbus-internals.h: add _dbus_return_if_fail,
1495 _dbus_return_val_if_fail
1497 Throughout: use dbus_return_if_fail
1499 2003-04-23 James Willcox <jwillcox@gnome.org>
1502 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
1503 (dbus_connection_setup_with_g_main),
1504 (dbus_server_setup_with_g_main):
1505 * glib/test-dbus-glib.c: (main):
1506 * glib/test-thread-client.c: (main):
1507 * glib/test-thread-server.c: (new_connection_callback), (main):
1508 * tools/dbus-monitor.c: (main):
1510 Added a GMainContext argument to dbus_connection_setup_with_g_main()
1511 and dbus_server_setup_with_g_main().
1513 2003-04-20 Havoc Pennington <hp@pobox.com>
1515 * doc/dbus-specification.sgml: document the restrictions on
1516 message and service names
1518 2003-04-22 Havoc Pennington <hp@redhat.com>
1520 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
1521 support, and do some code cleanups to share more code and
1522 speed up array marshal/demarshal.
1524 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
1526 * configure.in: generate dbus-arch-deps.h
1528 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
1531 2003-04-22 Havoc Pennington <hp@redhat.com>
1533 * test/data/valid-messages/opposite-endian.message: fix test
1534 to use proper type for rply field
1536 * test/data/invalid-messages: add tests for below validation
1538 * dbus/dbus-message.c (decode_header_data): validate field types,
1539 and validate that named fields are valid names
1540 (decode_name_field): consider messages in the
1541 org.freedesktop.Local. namespace to be invalid.
1543 * dbus/dbus-string.c (_dbus_string_validate_name): new
1545 2003-04-19 Havoc Pennington <hp@pobox.com>
1547 * bus/driver.c (bus_driver_handle_hello): check limits and
1548 return an error if they are exceeded.
1550 * bus/connection.c: maintain separate lists of active and inactive
1551 connections, and a count of each. Maintain count of completed
1552 connections per user. Implement code to check connection limits.
1554 * dbus/dbus-list.c (_dbus_list_unlink): export
1556 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
1557 number of bytes in the message queue for a connection
1559 2003-04-18 Havoc Pennington <hp@pobox.com>
1561 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
1563 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
1566 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
1567 on realloc be sure to update the pointer in the keyring
1569 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
1570 offset to avoid writing to unallocated memory
1572 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
1573 try the next mechanism, so we properly handle OOM
1575 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
1577 (_dbus_keyring_new): fix OOM bug
1578 (_dbus_keyring_new_homedir): always set error; impose a maximum
1579 number of keys we'll load from the file, mostly to speed up the
1580 test suite and make its OOM checks more useful, but also for
1583 * dbus/dbus-auth.c (process_error_server): reject authentication
1584 if we get an error from the client
1585 (process_cancel): on cancel, send REJECTED, per the spec
1586 (process_error_client): send CANCEL if we get an error from the
1589 2003-04-18 Havoc Pennington <hp@pobox.com>
1591 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
1594 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
1597 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
1598 about DBUS_TEST_HOMEDIR once
1600 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
1603 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
1604 config file so we test the right thing
1606 Throughout: assorted docs improvements
1608 2003-04-18 Havoc Pennington <hp@pobox.com>
1610 * glib/dbus-gmain.c: adapt to watch changes
1612 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
1614 * dbus/dbus-server.h: remove dbus_server_handle_watch
1616 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
1618 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
1619 like DBusTimeout, so we don't need dbus_connection_handle_watch
1622 2003-04-17 Havoc Pennington <hp@redhat.com>
1624 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
1625 database usage so it all goes via the DBusUserDatabase cache.
1627 2003-04-17 Havoc Pennington <hp@redhat.com>
1629 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
1630 there was an OOM watch we skipped, we always return TRUE so we
1631 iterate again to have a look at it again. Fixes test suite hang.
1632 Code rearrangement also lets us lose some memset and only iterate
1633 over callbacks once.
1635 * bus/driver.c (bus_driver_handle_message): sense of test for
1638 2003-04-16 Havoc Pennington <hp@pobox.com>
1640 * doc/dbus-specification.sgml: make spec say serials are unsigned
1642 * dbus/dbus-message.h: change message serials to unsigned
1644 * dbus/dbus-connection.c: adapt to message serials being unsigned
1646 2003-04-15 Havoc Pennington <hp@pobox.com>
1648 * bus/bus.c: create and keep around a shared DBusUserDatabase
1651 * bus/connection.c (bus_connection_get_groups): don't cache
1652 groups for user in the connection object, since user database
1653 object now does that.
1655 2003-04-16 Havoc Pennington <hp@redhat.com>
1657 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
1658 list of size counters
1659 (_dbus_message_loader_putback_message_link): put back a popped link
1661 * dbus/dbus-connection.c
1662 (dbus_connection_set_max_live_messages_size): rename
1664 (dbus_connection_get_outgoing_size): get size of outgoing
1666 (_dbus_connection_set_connection_counter): remove this cruft
1668 2003-04-14 Havoc Pennington <hp@redhat.com>
1670 * dbus/dbus-userdb.c: user database abstraction, mostly to get
1671 caching, but at some point we might want to be able to use a
1674 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
1675 SHA1 conf file to test the sha1 auth mechanism, since the regular
1676 test always uses EXTERNAL when available.
1679 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
1680 add conf file that requires use of sha1 auth
1682 2003-04-13 Havoc Pennington <hp@pobox.com>
1684 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
1685 from Philip Blundell to send messages and monitor them.
1687 2003-04-13 Havoc Pennington <hp@pobox.com>
1689 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
1692 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
1695 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1696 fix to only recover unused bytes if we're already authenticated
1697 (_dbus_transport_get_is_authenticated): fix to still mark us
1698 authenticated if there are unused bytes.
1700 * bus/dispatch.c: implement security policy checking
1702 * bus/connection.c (bus_transaction_send_from_driver): new
1704 * bus/bus.c (bus_context_check_security_policy): new
1706 * bus/dispatch.c (send_service_nonexistent_error): delete this,
1707 now we just set the DBusError and it gets converted to an error
1710 * bus/connection.c (allow_user_function): enable code using actual
1711 data from the config file
1713 * bus/policy.c (list_allows_user): handle wildcard rules for
1714 user/group connection perms
1716 2003-04-13 Havoc Pennington <hp@pobox.com>
1718 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
1720 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
1722 * bus/policy.c (bus_policy_append_mandatory_rule)
1723 (bus_policy_append_default_rule, bus_policy_append_user_rule)
1724 (bus_policy_append_group_rule): new functions
1726 2003-04-12 Havoc Pennington <hp@pobox.com>
1728 * bus/config-parser.c (bus_config_parser_new): fix a memleak
1730 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
1731 the pid/gid/uid, just for paranoia.
1733 * test/break-loader.c (randomly_do_n_things): find a byte
1734 containing a type code, and randomly change it to a different
1737 2003-04-12 Havoc Pennington <hp@pobox.com>
1739 * bus/policy.h: change BusPolicy to be the thing from the config
1740 file, and rename old BusPolicy to BusClientPolicy
1742 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
1743 match change in how policy works
1745 * dbus/dbus-internals.h: mark assert_not_reached as
1746 __attribute((noreturn))__
1748 2003-04-11 Havoc Pennington <hp@redhat.com>
1750 * doc/dbus-specification.sgml: fix a spot with the wrong name for
1751 the broadcast service. Use boolean return for ServiceExists.
1753 2003-04-11 Havoc Pennington <hp@redhat.com>
1755 * configure.in: add another directory to look for qt in.
1757 2003-04-11 Havoc Pennington <hp@redhat.com>
1759 * AUTHORS: add Colin Walters
1761 2003-04-11 Havoc Pennington <hp@redhat.com>
1767 2003-04-11 Havoc Pennington <hp@redhat.com>
1769 * bus/messagebus.in: remove pid file when stopping the
1770 message bus, since the bus won't have privileges to remove it
1773 2003-04-11 Havoc Pennington <hp@redhat.com>
1775 * bus/bus.c (bus_context_new): move credentials change after
1778 2003-04-11 Havoc Pennington <hp@pobox.com>
1780 * test/decode-gcov.c: add "below average functions" to the
1781 coverage report, and change how some of the code works.
1783 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
1784 not in the coverage stats.
1786 * test/test-service.c (main): use _dbus_verbose not fprintf in a
1787 couple places so running the test suite doesn't result in megaspam.
1789 2003-04-11 Havoc Pennington <hp@pobox.com>
1791 * bus/dispatch.c (check_existent_service_activation): accept a no
1792 memory error in a place we didn't before
1794 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
1795 in case the first one failed," since the test suite is less
1798 2003-04-10 Havoc Pennington <hp@pobox.com>
1800 * bus/dispatch.c (check_segfault_service_activation): add test
1801 for launching an executable that just crashes.
1803 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
1804 don't leave a million cores. We'll see how portable this is.
1806 2003-04-10 Havoc Pennington <hp@pobox.com>
1808 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
1809 the possible parent failures before we fork, so that we don't
1810 fail to create a babysitter after creating the child.
1812 * bus/activation.c (bus_activation_activate_service): kill child
1813 if we don't successfully complete the activation.
1815 2003-04-10 Havoc Pennington <hp@redhat.com>
1817 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
1818 the connection if it's disconnected
1820 * bus/activation.c (bus_activation_service_created): use new
1821 transaction features to roll back removal of pending activation if
1822 we don't successfully create the service after all. Don't remove
1823 pending activation if the function fails.
1825 * dbus/dbus-list.c (_dbus_list_insert_before_link)
1826 (_dbus_list_insert_after_link): new code to facilitate
1829 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
1830 new functionality, so we can preallocate the ability to insert
1833 * bus/connection.c (bus_transaction_add_cancel_hook): new function
1834 allowing us to put custom hooks in a transaction to be used for
1835 cancelling said transaction
1837 * doc/dbus-specification.sgml: add some discussion of secondary
1838 service owners, and disallow zero-length service names
1840 * bus/services.c (bus_registry_acquire_service): new function,
1841 splits out part of bus_driver_handle_acquire_service() and fixes
1842 a bug where we didn't remove the service doing the acquiring
1843 from the secondary queue if we failed to remove the current owner
1844 from the front of the queue.
1846 2003-04-10 Alexander Larsson <alexl@redhat.com>
1848 * doc/dbus-specification.sgml:
1849 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1851 2003-04-10 Alexander Larsson <alexl@redhat.com>
1856 Added files to cvsignore
1858 * dbus/dbus-message.h:
1859 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1860 Make get_named() take two out argument and return a boolean.
1861 (dbus_message_iter_get_args_valist):
1862 Update usage of get_named().
1863 (dbus_message_iter_append_byte):
1865 (dbus_message_iter_append_named)
1867 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1870 2003-04-10 Alexander Larsson <alexl@redhat.com>
1872 * dbus/dbus-marshal.[ch]:
1873 Add array_type_pos argument to _dbus_marshal_validate_arg.
1874 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1876 * dbus/dbus-message.[ch]:
1877 Multi-dimensional arrays have full type specification in the
1878 outermost array. Iter code re-arranged to handle this.
1879 Added some more iter tests.
1881 * doc/dbus-specification.sgml:
1884 Update new array encoding description.
1885 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1887 * test/data/invalid-messages/array-with-mixed-types.message:
1888 * test/data/valid-messages/array-of-array-of-uint32.message:
1889 Change to the new array format.
1891 * test/data/invalid-messages/too-short-dict.message:
1894 * test/data/valid-messages/recursive-types.message:
1895 Fix up and extend test.
1897 2003-04-10 Havoc Pennington <hp@pobox.com>
1899 * bus/dispatch.c: lots of fixes
1901 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1902 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1903 that was crack, broke the test service.
1905 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1906 handling to avoid piling up errors if we get a failure on the
1909 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1910 pid in assertion failures.
1912 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1913 to some fixed size of file descriptor array. Don't return TRUE
1914 anytime a timeout exists, that led to lots of busy loop silliness
1917 2003-04-09 Havoc Pennington <hp@redhat.com>
1919 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1920 I'd checked this in earlier but hadn't.
1922 2003-04-09 Havoc Pennington <hp@redhat.com>
1924 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1925 the activation test (man this is getting old!)
1927 2003-04-09 Havoc Pennington <hp@redhat.com>
1929 * test/test-utils.c: use dispatch status function to fix this up
1931 * bus/connection.c (connection_watch_callback): don't dispatch
1933 (connection_timeout_callback): don't dispatch from here
1934 (bus_connections_setup_connection): set the dispatch status function
1935 (bus_connection_disconnected): unset it
1937 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1938 used to add a connection to be dispatched
1939 (_dbus_loop_iterate): do the dispatching at the end of each
1942 * dbus/dbus-connection.c
1943 (dbus_connection_set_dispatch_status_function): new function
1944 allowing us to fix up main loop usage
1945 (_dbus_connection_last_unref): free all the various function
1947 (dbus_connection_dispatch): call the DispatchStatusFunction
1948 whenever this function returns
1949 (dbus_connection_handle_watch): call DispatchStatusFunction
1950 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1951 (reply_handler_timeout): call DispatchStatusFunction
1952 (dbus_connection_flush): call DispatchStatusFunction
1954 2003-04-09 Havoc Pennington <hp@redhat.com>
1956 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1959 * bus/dispatch.c (check_service_activated): fix bug in test
1961 * dbus/dbus-mainloop.c (check_timeout): fix this up
1963 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1964 verbose output so we can sort out output from different processes,
1965 e.g. in the activation case.
1967 2003-04-08 Colin Walters <walters@gnu.org>
1969 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1971 (bus_context_new): Set it.
1972 (bus_context_unref): Use it to delete the pid file.
1974 2003-04-08 Havoc Pennington <hp@redhat.com>
1976 * test/data/invalid-messages/array-with-mixed-types.message:
1977 regression test that fails for the moment
1979 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1980 tests for convenience
1982 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1983 array of nil, it broke things.
1985 * test/data/invalid-messages/array-of-nil.message: regression test
1987 * test/data/valid-messages/array-of-array-of-uint32.message:
1988 happened to write this so added it to suite
1990 2003-04-08 Havoc Pennington <hp@redhat.com>
1992 * bus/driver.c (bus_driver_handle_acquire_service): init
1993 retval/reply before checking name
1995 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1996 recursion depth argument
1998 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1999 in the public struct for future extension
2001 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2004 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2007 * doc/dbus-specification.sgml: fix typo
2009 2003-04-08 Alexander Larsson <alexl@redhat.com>
2011 Implemented recursive types, named types and new-style iters
2014 * glib/test-thread-client.c: (thread_func):
2015 * glib/test-thread-server.c: (handle_test_message):
2016 * test/test-service.c: (handle_echo):
2025 * dbus/dbus-internals.c: (_dbus_type_to_string):
2026 Update for new types.
2028 * dbus/dbus-marshal.[ch]:
2029 Implement recursive types and the new marshalling format.
2030 Remove hardcoded dict marshalling.
2031 Marshal named types.
2033 * dbus/dbus-message-builder.c:
2035 Remove references to old types
2037 * dbus/dbus-message.[ch]:
2038 New non-refcounted iter API that supports recursive iters.
2039 Use iters for appending, including support for recursive
2041 Add byte and named type support.
2042 Update everything to new marshalling formats.
2043 Add tests for new API.
2045 * dbus/dbus-protocol.h:
2046 Remove old array types.
2047 Add types: BYTE, ARRAY, DICT, NAMED
2049 * dbus/dbus-string.c:
2050 * dbus/dbus-sysdeps.c:
2051 Make parse_double locale safe.
2053 * dbus/dbus-test-main.c:
2059 * doc/dbus-specification.sgml:
2062 * test/data/incomplete-messages/missing-body.message:
2063 * test/data/invalid-messages/bad-boolean.message:
2064 * test/data/invalid-messages/bad-boolean-array.message:
2065 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2066 * test/data/invalid-messages/boolean-has-no-value.message-raw:
2067 * test/data/invalid-messages/too-short-dict.message:
2068 * test/data/valid-messages/dict-simple.message:
2069 * test/data/valid-messages/dict.message:
2070 * test/data/valid-messages/emptiness.message:
2071 * test/data/valid-messages/lots-of-arguments.message:
2072 * test/data/valid-messages/no-padding.message:
2073 * test/data/valid-messages/recursive-types.message:
2074 Add missing NAME fields
2075 Fix up dicts & arrays
2077 * test/data/invalid-messages/dict-with-nil-value.message:
2078 Removed, this is not invalid anymore.
2080 * test/data/valid-messages/recursive-types.message:
2081 Add new test for deeply recursive types.
2083 2003-04-07 Havoc Pennington <hp@pobox.com>
2085 * bus/driver.c (bus_driver_handle_acquire_service): return an
2086 error if you try to acquire a service that starts with ':'
2088 2003-04-07 Havoc Pennington <hp@redhat.com>
2090 * doc/dbus-specification.sgml: require that base service names
2091 start with ':' and that the base service is created/deleted
2092 as first and last things a connection does on the bus
2094 * bus/dispatch.c (check_existent_service_activation): lots more
2095 work on the activation test; it doesn't fully pass yet...
2097 * test/test-service.c (main): fix so we don't memleak the
2098 connection to the message bus
2099 (filter_func): accept a message asking us to exit
2101 2003-04-06 Havoc Pennington <hp@pobox.com>
2103 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2106 * configure.in: fixes to Qt detection from Colin Walters
2108 * doc/Makefile.am: Only remove generated docbook dirs if they
2109 exist, from Colin Walters
2111 * dbus/dbus-bus.c: change how we set well-known connections to
2112 NULL, so that it works if a single connection is stored in
2113 two well-known array slots.
2115 * test/Makefile.am: remove a lot of stuff that isn't immediately
2116 useful, it's in CVS history if we want it.
2118 * test/test-service.c: use dbus-mainloop instead of that
2121 2003-04-06 Havoc Pennington <hp@pobox.com>
2123 * dbus/Makefile.am: split lists of sources into stuff that goes in
2124 the library, util functions that go in the lib and are also used
2125 elsewhere, and util functions that are used in tests/daemon but
2126 don't go in the lib.
2128 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
2129 here so it can be used in test binaries also
2131 2003-04-06 Havoc Pennington <hp@pobox.com>
2133 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
2134 here in the parent process, so we can return an error if it
2135 fails. Also, move some of the code into the child so the parent
2136 is less hosed if we fail midway through.
2138 * bus/bus.c (bus_context_new): move pidfile detection further up
2139 in the function, before we start overwriting sockets and such.
2141 * bus/messagebus.in: adjust this a bit, not sure if it will work.
2143 * configure.in: add --with-system-pid-file and --with-system-socket
2145 2003-04-06 Colin Walters <walters@verbum.org>
2147 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
2149 * bus/system.conf.in: Declare a pidfile.
2151 * bus/bus.c (bus_context_new): Test for an existing pid file, and
2152 create one (if appropriate).
2154 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
2155 (struct BusConfigParser) [pidfile]: New.
2156 (element_type_to_name, merge_included, start_busconfig_child)
2157 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
2158 (bus_config_parser_unref): Free it.
2159 (bus_config_parser_get_pidfile): New function.
2161 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
2163 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
2165 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
2167 * dbus/dbus-sysdeps.h: Prototype it.
2169 2003-04-06 Havoc Pennington <hp@pobox.com>
2171 * bus/bus.c (bus_context_new): print the address in here, rather
2172 than in main(), because we need to do it before forking the daemon
2174 * bus/dispatch.c (send_service_nonexistent_error): set the sender
2175 on the service nonexistent error
2177 * bus/driver.c (bus_driver_handle_acquire_service): set the
2178 sender on the AcquireService reply
2180 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
2181 server also listen on a UNIX socket so services can connect to it.
2183 2003-04-06 Havoc Pennington <hp@pobox.com>
2185 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
2186 so it detects deadlocks and also we actually init threads when
2189 2003-04-06 Havoc Pennington <hp@pobox.com>
2191 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2192 save the domain socket name, and unlink it when we disconnect the
2193 server. Means that at least when we exit normally, we won't leave
2194 a bunch of junk in /tmp
2196 * dbus/dbus-transport-unix.c
2197 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
2198 memory management). (I was making a real change here but then
2201 2003-04-06 Havoc Pennington <hp@pobox.com>
2203 * bus/bus.c (bus_context_new): fix wrong handling of
2204 server_data_slot_unref() in the error case.
2206 * dbus/dbus-internals.h (_dbus_assert): change so it passes
2207 "(condition) != 0" to _dbus_real_assert so that
2208 "_dbus_assert (pointer)" doesn't cause a warning
2210 * bus/main.c (main): accept --print-address option to print out
2211 the message bus address
2213 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
2215 * dbus/dbus-transport.c (_dbus_transport_open): special error for
2216 "tmpdir" option to unix: address on client side
2218 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
2221 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
2222 we can use to create sockets in the test suite.
2224 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
2225 cleanly. To be used for testing.
2227 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
2229 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
2231 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2232 handle trying to call this when there's no servers active
2234 2003-04-05 Havoc Pennington <hp@pobox.com>
2240 2003-04-05 Havoc Pennington <hp@pobox.com>
2242 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
2243 crash on startup. Need to get "try starting the daemon"
2244 in the test suite I guess. ;-)
2246 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
2247 tracked the number of open connections; it's better done in
2248 application-specific code as you want it to span all servers etc.
2250 2003-04-05 Havoc Pennington <hp@pobox.com>
2252 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
2253 patch from Colin Walters
2255 2003-04-05 Havoc Pennington <hp@pobox.com>
2257 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
2258 reality; in fact multiple mechanisms are allowed.
2260 * dbus/dbus-internals.c (_dbus_real_assert)
2261 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
2262 _dbus_assert_not_reached() into functions, so that they don't show
2263 up in basic block counts for test coverage, and don't use up as
2264 much disk space. Does mean slower execution speed though, so
2265 assumes --disable-asserts is the normal production case.
2267 2003-04-05 Havoc Pennington <hp@pobox.com>
2269 * test/Makefile.am (dist-hook): also dist *.in files
2275 2003-04-05 Havoc Pennington <hp@pobox.com>
2277 * dbus/dbus-string.c: docs warning
2279 * dbus/dbus-spawn.c: missing docs
2281 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2283 2003-04-05 Havoc Pennington <hp@pobox.com>
2285 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
2288 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
2289 to -1 once we've reaped the babysitter
2290 (_dbus_babysitter_handle_watch): do as much work as we can, not
2293 * bus/activation.c: add code using DBusBabysitter so that we
2294 handle it when a service fails to start up properly.
2295 (bus_activation_service_created): don't remove the activation
2296 entries as we go, just let them get removed when we free the pending
2297 activation. Unref reply messages after sending them.
2299 2003-04-05 Havoc Pennington <hp@pobox.com>
2301 * test/decode-gcov.c (main): print per-directory stats in the report
2303 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
2305 2003-04-05 Havoc Pennington <hp@pobox.com>
2307 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
2309 * test/decode-gcov.c: hack up a little program to suck data
2310 out of gcov files. Yes this is sort of silly.
2312 * configure.in: define something in config.h and do an
2313 AM_CONDITIONAL when gcov is enabled
2315 2003-04-04 Havoc Pennington <hp@redhat.com>
2317 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
2318 return a "babysitter" object that is used to monitor the status of
2319 the spawned process and reap it when required.
2321 * test/test-segfault.c, test/test-exit.c,
2322 test/test-sleep-forever.c: binaries that do various lame things,
2323 used in the test suite.
2325 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
2327 2003-04-03 Havoc Pennington <hp@pobox.com>
2329 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
2330 in preparation for modifying it, dbus-sysdeps is getting
2333 2003-04-03 Havoc Pennington <hp@redhat.com>
2335 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
2338 * bus/*.[hc]: adapt to mainloop change
2340 2003-04-03 Havoc Pennington <hp@redhat.com>
2342 * bus/activation.c (load_directory): fix up memleaks
2343 (bus_activation_entry_free): free the entry
2345 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
2346 we get one from the message bus; fix memleaks.
2348 * dbus/dbus-message.c (dbus_set_error_from_message): new function
2350 2003-04-03 Havoc Pennington <hp@pobox.com>
2352 * bus/config-parser.c (bus_config_parser_unref): free
2353 list of mechanisms, bug discovered by test suite enhancements
2354 (putting system.conf and session.conf into suite)
2356 * test/Makefile.am, test/test-service.c: add placeholder for a
2357 test service that we'll activate as part of test suite. Doesn't
2360 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2361 setting NULL value, and use system malloc not dbus_malloc()
2362 when we have unavoidable memleakage.
2364 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2365 didn't work, and support DBUS_BUS_ACTIVATION.
2367 * bus/activation.c (child_setup): pass our well-known bus type to
2370 * bus/config-parser.c: support <type> to specify well-known type
2372 * doc/dbus-specification.sgml: document the env variables to
2373 locate well-known buses and find service activator
2375 2003-04-02 Havoc Pennington <hp@redhat.com>
2377 * test/Makefile.am (all-local): add a rule to copy tests to
2378 builddir, so we can have generated tests. Use this to remove the
2379 silly hack for testing system.conf and session.conf. Will use this
2380 shortly to generate .service files pointing to test binaries.
2382 2003-04-02 Havoc Pennington <hp@redhat.com>
2384 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2385 current alloc and needed new length, not max of the doubled
2386 allocation and needed new length. Also, when building tests,
2387 don't do the double-allocation stuff, just realloc every time.
2389 2003-04-02 Havoc Pennington <hp@redhat.com>
2391 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2393 (_dbus_string_get_dirname): new
2394 (_dbus_sysdeps_test): new
2395 (_dbus_directory_open): include dirnames in error messages
2397 * bus/config-parser.c: interpret <include> and <includedir> and
2398 <servicedir> relative to config file location if the given
2399 filename is not absolute.
2401 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2403 2003-04-02 Havoc Pennington <hp@redhat.com>
2405 * bus/connection.c (bus_transaction_send_error_reply): set sender
2406 service for the error, and unref the reply on success
2408 * bus/activation.c: convert to use BusTransaction so OOM can be
2410 (bus_activation_service_created): set sender of the message
2412 2003-04-01 Havoc Pennington <hp@redhat.com>
2414 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2415 <includedir> (at least mostly)
2417 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2418 first, then the user ID
2420 2003-04-01 Havoc Pennington <hp@pobox.com>
2422 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2425 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2427 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2429 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2430 socket 0777, and unlink any existing socket.
2432 * bus/bus.c (bus_context_new): change our UID/GID and fork if
2433 the configuration file so specifies; set up auth mechanism
2436 * bus/config-parser.c (bus_config_parser_content): add support
2437 for <fork> option and fill in code for <auth>
2439 * bus/system.conf.in: add <fork/> to default configuration,
2440 and limit auth mechanisms to EXTERNAL
2442 * doc/config-file.txt (Elements): add <fork>
2444 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2445 (_dbus_change_identity): new function
2447 2003-03-31 Havoc Pennington <hp@redhat.com>
2449 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2450 (_dbus_listen_unix_socket): fix off-by-one error in null
2451 termination spotted by Nalin
2453 2003-03-31 Havoc Pennington <hp@redhat.com>
2455 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
2456 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
2457 having a real home directory available.
2459 2003-03-31 Havoc Pennington <hp@redhat.com>
2461 * bus/Makefile.am (install-data-hook): create /var/run/dbus
2463 * bus/messagebus.in: add init script for Red Hat /etc/init.d
2465 * configure.in: add support for specifying a style of init script
2468 2003-03-31 Havoc Pennington <hp@redhat.com>
2470 Fix some annoying DBusString API and fix all affected code.
2472 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
2474 (_dbus_string_get_data): change to return string instead of using
2476 (_dbus_string_get_const_data): ditto
2477 (_dbus_string_get_data_len): ditto
2478 (_dbus_string_get_const_data_len): ditto
2480 2003-03-31 Havoc Pennington <hp@redhat.com>
2482 * bus/main.c (main): fix up the command line arguments to be nicer
2484 2003-03-31 Havoc Pennington <hp@redhat.com>
2486 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
2487 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
2488 final location that lands in the config file
2490 * bus/config-loader-expat.c (bus_config_load): fix type of
2493 * doc/TODO: remove TODO item for dbus_bus_get()
2495 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
2497 2003-03-31 Havoc Pennington <hp@pobox.com>
2499 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
2500 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
2501 argument since they are always client side
2503 * dbus/dbus-server.c (dbus_server_get_address): new function
2505 * bus/main.c (main): take the configuration file as an argument.
2507 * test/data/valid-config-files/debug-allow-all.conf: new file to
2508 use with dispatch.c tests for example
2510 * bus/test-main.c (main): require test data dir
2512 * bus/bus.c (bus_context_new): change this to take a
2513 configuration file name as argument
2515 * doc/config-file.txt (Elements): add <servicedir>
2517 * bus/system.conf, bus/session.conf: new files
2519 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
2520 well-known socket if none set
2522 * configure.in: create system.conf and session.conf
2524 2003-03-30 Havoc Pennington <hp@pobox.com>
2526 * bus/config-parser.c: hacking
2528 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
2529 to shut down, since it could cause weirdness with the DBusList
2532 * dbus/dbus-list.c (_dbus_list_test): add tests for the
2533 link-oriented stack routines
2534 (alloc_link): free the mempool if the first alloc from it fails
2536 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
2538 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
2540 (_dbus_string_skip_white): new
2542 * doc/config-file.txt (Elements): add <includedir>
2544 2003-03-28 Havoc Pennington <hp@pobox.com>
2546 * dbus/dbus-string.c (_dbus_string_copy_data_len)
2547 (_dbus_string_copy_data): new functions
2549 2003-03-28 Anders Carlsson <andersca@codefactory.se>
2551 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
2555 * dbus/dbus-memory.c:
2558 2003-03-28 Havoc Pennington <hp@pobox.com>
2560 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
2561 I think it may have just been superstition. Not sure.
2563 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
2564 failures that were not being handled.
2566 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
2568 * dbus/dbus-memory.c: add ability to set number of mallocs in a
2569 row that will fail on out-of-memory.
2571 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
2572 function for testing out-of-memory handling.
2574 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
2575 allocation functions, they do map exactly to the expat ones.
2577 2003-03-27 Havoc Pennington <hp@redhat.com>
2579 * bus/config-loader-libxml.c (bus_config_load): add another error
2582 2003-03-26 Anders Carlsson <andersca@codefactory.se>
2585 Add note about automatic service activation.
2587 * doc/dbus-specification.sgml:
2588 Rename the specification and clarify a few things.
2590 2003-03-26 Anders Carlsson <andersca@codefactory.se>
2593 * dbus/dbus-address.c:
2595 * dbus/dbus-marshal.c:
2596 * dbus/dbus-server-debug-pipe.c:
2597 * dbus/dbus-transport-unix.c:
2598 Fix documentation warnings.
2600 2003-03-26 Havoc Pennington <hp@pobox.com>
2602 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
2603 after every test so it's quick and easy to see which leaked, and
2604 so we test multiple dbus_shutdown() calls
2606 * configure.in: change configure.in XML stuff to also support
2609 * config-loader-libxml.c: some hacking
2611 * config-loader-expat.c: some hacking
2613 * config-parser.c: some hacking, plus tests
2615 2003-03-25 Havoc Pennington <hp@redhat.com>
2617 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
2619 * configure.in: add --with-xml option to specify XML library,
2620 right now only libxml is supported.
2622 * bus/config-loader-libxml.c, config-parser.c: sync some minor
2623 nonworking code between home and work, still just stubs
2625 2003-03-24 Havoc Pennington <hp@redhat.com>
2627 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
2630 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
2631 NULL argument for "message" if the error is a well-known one,
2632 fill in a generic message in this case.
2634 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
2637 * bus/test.c (bus_test_flush_bus): add
2639 * bus/policy.c (bus_policy_test): test code stub
2641 2003-03-24 Havoc Pennington <hp@pobox.com>
2643 * bus/connection.c (bus_connections_setup_connection): set up
2644 the "can this user connect" function, but it always returns
2645 TRUE until we have a config file parser so we can have a config
2646 file that allows connections.
2648 2003-03-23 Havoc Pennington <hp@pobox.com>
2650 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
2651 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
2652 the mutex, so we can check for proper memory management
2655 * dbus/dbus-dataslot.c: remove the mutex from
2656 DBusDataSlotAllocator and lock it manually when using it,
2657 to simplify fitting it into the global slots framework.
2659 * dbus/dbus-threads.c (init_static_locks): rework how we're
2660 handling global locks so they are easily shut down.
2662 * bus/policy.c (bus_policy_append_rule): fix
2664 * bus/test-main.c (main): check for memleaks
2666 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
2667 test suite check for memleaks
2669 * dbus/dbus-memory.c: add support in test mode for tracking
2670 number of outstanding blocks
2672 2003-03-23 Havoc Pennington <hp@pobox.com>
2674 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
2677 * dbus/dbus-hash.h: add ULONG hash keys
2679 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
2680 (_dbus_get_group_id): new function
2682 2003-03-20 Havoc Pennington <hp@redhat.com>
2684 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
2686 (dbus_connection_get_unix_user): new function
2688 2003-03-20 Havoc Pennington <hp@pobox.com>
2690 * bus/connection.c (bus_connection_send_oom_error): assert that
2691 message has a sender
2692 (connection_execute_transaction): ditto
2693 (bus_connection_preallocate_oom_error): fix to set the sender, and
2694 set recipient to the destination service, not the bus driver
2696 * bus/policy.c: hacking
2698 * dbus/dbus-message.c (dbus_message_service_is): new function
2699 (dbus_message_sender_is): new
2701 2003-03-19 Havoc Pennington <hp@redhat.com>
2703 * bus/policy.c: start sketching code for policy restrictions on
2704 what connections can do.
2706 2003-03-18 Havoc Pennington <hp@redhat.com>
2708 * doc/TODO: some notes on high-level todo items. Little nitpick
2709 stuff is all in @todo, so no need to add it here.
2711 * doc/config-file.txt: some notes on how config file might look
2713 2003-03-18 Anders Carlsson <andersca@codefactory.se>
2719 2003-03-17 Havoc Pennington <hp@redhat.com>
2721 * dbus/dbus-internals.h: add gcc attributes so that
2722 our printf-style functions warn on bad arguments to
2725 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
2728 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2731 2003-03-17 Havoc Pennington <hp@redhat.com>
2733 * bus/test-main.c (main): make it print something as it runs
2734 so make check doesn't look stuck
2736 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
2737 from CVS, now obsolete
2739 2003-03-17 Anders Carlsson <andersca@codefactory.se>
2741 * bus/dispatch.c: (bus_dispatch):
2742 Refetch the service name since it may have been reallocated
2743 when dbus_message_set_sender was called.
2745 * dbus/dbus-sysdeps.c: (_dbus_accept):
2746 Add address and address length variables and use them to stop
2747 valgrind from complaining.
2749 2003-03-17 Havoc Pennington <hp@pobox.com>
2751 All tests pass, no memleaks, no valgrind complaints.
2753 * bus/test.c: refcount handler_slot
2755 * bus/connection.c (bus_connections_new): refcount
2756 connection_data_slot
2758 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
2759 bytes so that auth scripts pass.
2761 * bus/dispatch.c: init message_handler_slot so it gets allocated
2764 * bus/dispatch.c (message_handler_slot_ref): fix memleak
2766 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
2767 dealloc server_pipe_hash when no longer used for benefit of
2770 * dbus/dbus-auth.c (process_command): memleak fix
2772 * bus/dispatch.c (check_hello_message): memleak fix
2774 2003-03-16 Havoc Pennington <hp@pobox.com>
2776 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
2778 2003-03-17 Anders Carlsson <andersca@codefactory.se>
2780 * bus/activation.c (bus_activation_activate_service): Append
2781 the pending activation entry to the list of pending activations.
2783 2003-03-16 Havoc Pennington <hp@pobox.com>
2785 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
2788 * dbus/dbus-address.c (create_entry): fix OOM handling when
2789 failing to alloc entry->method
2791 2003-03-16 Havoc Pennington <hp@pobox.com>
2793 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
2796 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2797 add some missing dbus_set_result
2799 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
2800 alloc the DBusMessageHandler
2802 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
2803 the transport here, since we call this from the finalizer; it
2804 resulted in a double-finalize.
2806 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
2807 where we tried to use transport->connection that was NULL,
2808 happened when transport was disconnected early on due to OOM
2810 * bus/*.c: adapt to handle OOM for watches/timeouts
2812 * dbus/dbus-transport-unix.c: port to handle OOM during
2815 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
2816 reference to unused bytes instead of a copy
2818 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
2821 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
2824 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
2827 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2829 * doc/dbus-specification.sgml:
2830 Document reply message for ActivateService.
2832 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2834 * bus/activation.c: (bus_pending_activation_entry_free),
2835 (bus_pending_activation_free), (bus_activation_new),
2836 (bus_activation_unref), (bus_activation_service_created),
2837 (bus_activation_activate_service):
2839 * bus/bus.c: (bus_context_new):
2840 * bus/desktop-file.c: (new_section):
2841 * bus/driver.c: (bus_driver_send_service_deleted),
2842 (bus_driver_handle_activate_service):
2843 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2845 * dbus/dbus-connection.c:
2846 (dbus_connection_send_with_reply_and_block):
2847 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2848 * dbus/dbus-protocol.h:
2849 Make activation work better. Now pending activations will be queued
2850 and the daemon won't try to activate services that are already registered.
2852 2003-03-16 Havoc Pennington <hp@pobox.com>
2854 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2857 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2858 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2860 2003-03-16 Havoc Pennington <hp@pobox.com>
2862 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2863 this. always run the test suite before commit...
2865 * bus/*: adapt to DBusConnection API changes
2867 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2868 requires renaming stuff to avoid dbus_connection_dispatch name
2871 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2874 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2875 separate from _dbus_message_loader_return_buffer()
2877 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2878 this, because it's now always broken to use; the number of
2879 messages in queue vs. the number still buffered by the message
2880 loader is undefined/meaningless. Should use
2881 dbus_connection_get_dispatch_state().
2882 (dbus_connection_dispatch): rename from
2883 dbus_connection_dispatch_message
2885 2003-03-16 Havoc Pennington <hp@pobox.com>
2887 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2890 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2892 * dbus/dbus-connection.c:
2893 (dbus_connection_send_with_reply_and_block):
2894 Decrease connection->n_incoming when removing an entry
2896 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2897 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2898 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2899 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2900 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2901 (dbus_dict_get_byte_array):
2902 Handle NULL arrays and strings. Also add support for byte arrays.
2904 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2905 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2906 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2907 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2908 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2909 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2910 * dbus/dbus-marshal.h:
2911 Add support for marshalling and demarshalling empty arrays and strings.
2913 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2914 (dbus_message_append_string_array),
2915 (dbus_message_iter_get_boolean),
2916 (dbus_message_iter_get_boolean_array),
2917 (dbus_message_iter_get_int32_array),
2918 (dbus_message_iter_get_uint32_array),
2919 (dbus_message_iter_get_double_array),
2920 (dbus_message_iter_get_byte_array),
2921 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2922 (check_message_handling):
2923 Add support for getting empty arrays and dicts.
2925 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2926 Don't do any validation at all for now, that's better than just checking
2929 * test/data/valid-messages/emptiness.message:
2930 New test message with lots of empty arrays.
2932 2003-03-16 Havoc Pennington <hp@pobox.com>
2934 * dbus/dbus-connection.c
2935 (_dbus_connection_queue_received_message_link): new function that
2936 can't fail due to OOM
2938 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2939 new function pops a message together with a list link
2942 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2943 message queuing functions to avoid needing to alloc memory
2945 2003-03-16 Havoc Pennington <hp@pobox.com>
2947 Oops - test code was only testing failure of around 30 of the
2948 mallocs in the test path, but it turns out there are 500+
2949 mallocs. I believe this was due to misguided linking setup such
2950 that there was one copy of dbus_malloc etc. in the daemon and one
2951 in the shared lib, and only daemon mallocs were tested. In any
2952 case, the test case now tests all 500+ mallocs, and doesn't pass
2953 yet, though there are lots of fixes in this patch.
2955 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2956 this so that it doesn't need to allocate memory, since it
2957 has no way of indicating failure due to OOM (and would be
2958 annoying if it did).
2960 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2962 * bus/Makefile.am: rearrange to create two self-contained
2963 libraries, to avoid having libraries with overlapping symbols.
2964 that was resulting in weirdness, e.g. I'm pretty sure there
2965 were two copies of global static variables.
2967 * dbus/dbus-internals.c: move the malloc debug stuff to
2970 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2973 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2975 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2978 * bus/dispatch.c (bus_dispatch_add_connection): free
2979 message_handler_slot when no longer using it, so
2980 memory leak checkers are happy for the test suite.
2982 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2984 * bus/bus.c (new_connection_callback): disconnect in here if
2985 bus_connections_setup_connection fails.
2987 * bus/connection.c (bus_connections_unref): fix to free the
2989 (bus_connections_setup_connection): if this fails, don't
2990 disconnect the connection, just be sure there are no side
2993 * dbus/dbus-string.c (undo_alignment): unbreak this
2995 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2997 (_dbus_auth_new): fix the order in which we free strings
3000 * bus/connection.c (bus_connection_disconnected): fix to
3001 not send ServiceDeleted multiple times in case of memory
3004 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3005 get the base service name
3006 (dbus_bus_register_client): don't return base service name,
3007 instead store it on the DBusConnection and have an accessor
3009 (dbus_bus_register_client): rename dbus_bus_register()
3011 * bus/dispatch.c (check_hello_message): verify that other
3012 connections on the bus also got the correct results, not
3013 just the one sending hello
3015 2003-03-15 Havoc Pennington <hp@pobox.com>
3017 Make it pass the Hello handling test including all OOM codepaths.
3018 Now to do other messages...
3020 * bus/services.c (bus_service_remove_owner): fix crash when
3021 removing owner from an empty list of owners
3022 (bus_registry_ensure): don't leave service in the list of
3023 a connection's owned services if we fail to put the service
3026 * bus/connection.c (bus_connection_preallocate_oom_error): set
3027 error flag on the OOM error.
3029 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3030 handle _dbus_transport_set_connection failure
3032 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3033 to create watches up front and simply enable/disable them as
3035 (unix_connection_set): this can now fail on OOM
3037 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3038 of enabling/disabling a watch or timeout.
3040 * bus/loop.c (bus_loop_iterate): don't touch disabled
3043 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3045 2003-03-15 Havoc Pennington <hp@pobox.com>
3047 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3048 write useful test code, after all that futzing around ;-)
3050 Test does not yet pass because we can't handle OOM in
3051 _dbus_transport_messages_pending (basically,
3052 dbus_connection_preallocate_send() does not prealloc the write
3053 watch). To fix this, I think we need to add new stuff to
3054 set_watch_functions, namely a SetEnabled function so we can alloc
3055 the watch earlier, then enable it later.
3057 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3058 dbus-memory.c to the convenience lib
3060 * bus/test.c: rename some static functions to keep them clearly
3061 distinct from stuff in connection.c. Handle client disconnection.
3063 2003-03-14 Havoc Pennington <hp@pobox.com>
3065 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3066 transport, tests more of the real codepath. Set up clients
3067 with bus_setup_debug_client.
3069 * bus/test.c (bus_setup_debug_client): function to set up debug
3070 "clients" on the main loop
3072 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3075 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3078 * dbus/dbus-server-debug.c: support a debug server based on pipes
3080 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3081 (_dbus_close): new function
3083 * configure.in: check for socketpair
3085 2003-03-14 Havoc Pennington <hp@redhat.com>
3087 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3090 * dbus/dbus-transport-debug.c: rework this a good bit to be
3091 less complicated. hopefully still works.
3093 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3096 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3099 * dbus/dbus-message.c (dbus_message_copy): rename from
3100 dbus_message_new_from_message, fix it up to copy
3101 all the message fields, add test case
3103 * bus/dispatch.c (bus_dispatch_test): add some more test code,
3104 not quite passing yet
3106 2003-03-14 Havoc Pennington <hp@pobox.com>
3108 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3109 until no work remains" in test code. (the large diff here
3110 is just code movement, no actual changes)
3112 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3113 1, no point waiting around for test code.
3114 (_dbus_server_debug_accept_transport): unref the timeout
3115 after adding it (right?)
3117 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
3119 2003-03-13 Havoc Pennington <hp@redhat.com>
3121 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
3124 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
3127 * dbus/dbus-connection.h: Make AddWatchFunction and
3128 AddTimeoutFunction return a bool so they can fail on out-of-memory
3130 * bus/bus.c (bus_context_new): set up timeout handlers
3132 * bus/connection.c (bus_connections_setup_connection): set up
3135 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
3138 * bus/bus.c (bus_context_new): adapt to changes
3140 * bus/connection.c: adapt to changes
3142 * test/watch.c: adapt to DBusWatch changes
3144 * bus/dispatch.c (bus_dispatch_test): started adding this but
3147 2003-03-14 Anders Carlsson <andersca@codefactory.se>
3149 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
3151 2003-03-13 Havoc Pennington <hp@pobox.com>
3153 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
3154 set up a test framework as for the library
3156 2003-03-12 Havoc Pennington <hp@pobox.com>
3158 Throughout: purge global variables, introduce BusActivation,
3159 BusConnections, BusRegistry, etc. objects instead.
3161 * bus/bus.h, bus/bus.c: introduce BusContext as a global
3164 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
3165 going to redo this a bit differently I think
3167 2003-03-12 Havoc Pennington <hp@redhat.com>
3169 Mega-patch that gets the message bus daemon initially handling
3170 out-of-memory. Work still needed. Also lots of random
3171 moving stuff to DBusError instead of ResultCode.
3173 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
3175 * dbus/dbus-connection.c
3176 (dbus_connection_send_with_reply_and_block): use DBusError
3178 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
3181 * dbus/dbus-connection.c (dbus_connection_send): drop the result
3182 code here, as the only failure possible is OOM.
3184 * bus/connection.c (bus_connection_disconnect):
3185 rename bus_connection_disconnected as it's a notification only
3187 * bus/driver.c (bus_driver_handle_acquire_service): don't free
3188 "name" on get_args failure, should be done by get_args;
3189 don't disconnect client for bad args, just return an error.
3190 (bus_driver_handle_service_exists): ditto
3192 * bus/services.c (bus_services_list): NULL-terminate returned array
3194 * bus/driver.c (bus_driver_send_service_lost)
3195 (bus_driver_send_service_acquired): send messages from driver to a
3196 specific client to the client's unique name, not to the broadcast
3199 * dbus/dbus-message.c (decode_header_data): reject messages that
3200 contain no name field
3201 (_dbus_message_get_client_serial): rename to
3202 dbus_message_get_serial and make public
3203 (_dbus_message_set_serial): rename from set_client_serial
3204 (_dbus_message_set_reply_serial): make public
3205 (_dbus_message_get_reply_serial): make public
3207 * bus/connection.c (bus_connection_foreach): allow stopping
3208 iteration by returning FALSE from foreach function.
3210 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
3211 (dbus_connection_free_preallocated_send)
3212 (dbus_connection_preallocate_send): new API for sending a message
3213 without possibility of malloc failure.
3214 (dbus_connection_send_message): rename to just
3215 dbus_connection_send (and same for whole function family)
3217 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
3219 * dbus/dbus-sysdeps.c (_dbus_exit): new function
3221 * bus/activation.c: handle/return errors
3223 * dbus/dbus-errors.h: add more DBUS_ERROR #define
3225 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
3226 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
3227 (_dbus_result_from_errno): move to this file
3229 2003-03-10 Anders Carlsson <andersca@codefactory.se>
3231 * dbus/dbus-marshal.c:
3232 (_dbus_marshal_set_string):
3233 Take a length argument so we can marshal the correct string
3236 (_dbus_marshal_dict), (_dbus_demarshal_dict),
3237 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
3238 (_dbus_marshal_test):
3239 * dbus/dbus-marshal.h:
3240 Add support for marshalling and demarshalling dicts.
3242 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3243 Add support for TYPE DICT.
3245 * dbus/dbus-message.c: (set_string_field):
3246 Adjust header padding.
3248 (dbus_message_append_args_valist), (dbus_message_append_dict),
3249 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
3250 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
3251 (check_message_handling), (check_have_valid_message):
3252 * dbus/dbus-message.h:
3253 Add functions for setting and getting dicts.
3255 * dbus/dbus-protocol.h:
3261 * doc/dbus-specification.sgml:
3262 Add information about how dicts are marshalled.
3264 * test/data/invalid-messages/dict-with-nil-value.message:
3265 * test/data/invalid-messages/too-short-dict.message:
3266 * test/data/valid-messages/dict-simple.message:
3267 * test/data/valid-messages/dict.message:
3268 Add sample messages containing dicts.
3270 2003-03-08 Anders Carlsson <andersca@codefactory.se>
3272 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
3274 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3277 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3278 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
3279 (dbus_dict_set_int32), (dbus_dict_set_uint32),
3280 (dbus_dict_set_double), (dbus_dict_set_string),
3281 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3282 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3283 (dbus_dict_set_string_array), (_dbus_dict_test):
3285 Fix according to comments from Havoc.
3287 2003-03-06 Michael Meeks <michael@server.home>
3289 * configure.in: if we don't have kde-config, disable have_qt.
3291 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3296 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3297 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
3298 (dbus_dict_remove), (dbus_dict_get_value_type),
3299 (dbus_dict_get_keys), (dbus_dict_put_boolean),
3300 (dbus_dict_put_int32), (dbus_dict_put_uint32),
3301 (dbus_dict_put_double), (dbus_dict_put_string),
3302 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
3303 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
3304 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
3305 (dbus_dict_get_int32), (dbus_dict_get_uint32),
3306 (dbus_dict_get_double), (dbus_dict_get_string),
3307 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
3308 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
3309 (dbus_dict_get_string_array), (_dbus_dict_test):
3311 Add DBusDict implementation
3313 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
3317 2003-03-04 Havoc Pennington <hp@pobox.com>
3319 * test/data/auth/*: adapt to changes
3321 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
3322 USERID_BASE64 and change USERNAME_BASE64 to put in username not
3325 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
3326 more stuff from being in a context name, to make the protocol
3327 simpler to deal with
3329 * dbus/dbus-errors.c (dbus_error_has_name): new function
3330 (dbus_error_is_set): new function
3332 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
3333 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
3335 * dbus/dbus-connection.c (dbus_connection_flush): also read
3336 messages during a flush operation
3338 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
3340 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3342 * configure.in: Check for gethostbyname on Solaris.
3344 * dbus/dbus-transport.c: (_dbus_transport_open):
3345 Remove duplicate "tcp" entry.
3347 * doc/dbus-specification.sgml:
3348 Clarify some things.
3350 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3352 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3353 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3354 (_dbus_keyring_test):
3355 * dbus/dbus-md5.c: (_dbus_md5_compute):
3356 * dbus/dbus-sha.c: (_dbus_sha_compute):
3359 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3361 * README: Add some things.
3363 2003-03-04 Anders Carlsson <andersca@codefactory.se>
3365 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3366 after case DBUS_TYPE_BOOELAN.
3368 2003-03-02 Havoc Pennington <hp@pobox.com>
3370 * test/break-loader.c (randomly_set_extreme_ints): add test that
3371 sets really huge and small integers
3373 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3374 that length of boolean array fits in the string, and that
3375 string has room for boolean value in single-bool case.
3377 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3378 optional value to "ALIGN" command which is what to fill the
3381 * test/data/valid-messages/no-padding.message: add regression
3382 test for the message padding problem
3384 2003-03-02 Havoc Pennington <hp@pobox.com>
3386 * dbus/dbus-message.c (decode_header_data): fix to always init
3387 message_padding, from Benjamin Dauvergne
3389 2003-03-02 Havoc Pennington <hp@pobox.com>
3395 2003-03-01 Joe Shaw <joe@assbarn.com>
3397 * configure.in: Check for "struct cmsgcred" and try to access its
3398 members for BSD-like unices.
3400 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3401 _dbus_read_credentials_unix_socket().
3402 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3403 read() for reading the credential byte off the unix socket. Use
3404 struct cmsgcred on systems that support it.
3406 2003-02-27 Alexander Larsson <alexl@redhat.com>
3410 Make gthreads-2.0 dependency optional. Don't build thread test if
3413 2003-02-27 Havoc Pennington <hp@pobox.com>
3415 * dbus/dbus-connection.c
3416 (dbus_connection_send_message_with_reply_and_block): fix doh!
3417 doh! doh! bug that resulted in never removing a reply from the
3418 queue, no wonder we called get_reply_serial so much ;-)
3420 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3421 and client serial instead of demarshaling them every time
3423 2003-02-27 Havoc Pennington <hp@pobox.com>
3425 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3426 more inlined, using dbus-string-private.h, speeds things up
3429 * dbus/dbus-string.c (_dbus_string_free): apply align offset
3430 when freeing the string
3431 (_dbus_string_steal_data): fix for align offset
3432 (undo_alignment): new function
3434 2003-02-26 Havoc Pennington <hp@redhat.com>
3436 All kinds of audit fixes from Owen, plus initial attempt to
3437 handle unaligned memory returned from malloc.
3439 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3440 leave room for align_offset and nul byte
3441 (fixup_alignment): function to track an align_offset and
3442 ensure real->str is aligned
3443 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3444 to allow a nul byte plus align offset
3445 (_dbus_string_lock): fix overflow issue
3446 (_dbus_string_init_const_len): add assertions on sanity of len,
3447 assign allocated to be ALLOCATION_PADDING larger than len
3448 (set_length): fixup the overflow handling
3449 (_dbus_string_get_data_len): fix overflow in assertion
3450 (open_gap): detect overflow in size of gap to be opened
3451 (_dbus_string_lengthen): add overflow check
3452 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
3453 (_dbus_string_append): add overflow check
3454 (_dbus_string_append_unichar): overflow
3455 (_dbus_string_delete): fix overflow in assertion
3456 (_dbus_string_copy_len): overflow in assertion
3457 (_dbus_string_replace_len): overflows in assertions
3458 (_dbus_string_find): change to implement in terms of
3459 _dbus_string_find_to
3460 (_dbus_string_find_to): assorted fixage
3461 (_dbus_string_equal_c_str): assert c_str != NULL,
3462 fix logic so the function works
3463 (_dbus_string_ends_with_c_str): fix overflow thingy
3464 (_dbus_string_base64_encode): overflow fix
3465 (_dbus_string_validate_ascii): overflow
3466 (_dbus_string_validate_nul): overflow
3468 2003-02-26 Havoc Pennington <hp@redhat.com>
3470 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
3472 2003-02-26 Alexander Larsson <alexl@redhat.com>
3475 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
3477 * dbus/dbus-connection.c:
3478 * dbus/dbus-connection.h:
3479 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
3480 Add dbus_connection_set_wakeup_main_function and use it when queueing
3481 incoming and outgoing messages.
3484 * dbus/dbus-dataslot.c:
3485 Threadsafe usage of DBusDataSlotAllocator
3487 * dbus/dbus-message.c: (dbus_message_get_args_iter):
3490 * dbus/dbus-server-unix.c:
3493 * glib/dbus-gmain.c:
3494 Implement the new wakeup functions for glib.
3497 * glib/test-thread-client.c:
3498 * glib/test-thread-server.c:
3499 * glib/test-thread.h:
3500 Initial cut at some thread test code. Not really done yet.
3502 2003-02-26 Havoc Pennington <hp@pobox.com>
3504 * dbus/dbus-connection.c
3505 (dbus_connection_send_message_with_reply_and_block): fix crash
3506 where we ref'd the outgoing message instead of the returned reply
3508 * dbus/dbus-transport-unix.c (do_authentication): check read watch
3509 at the end of this function, so if we didn't need to read for
3510 authentication, we reinstall it for receiving messages
3512 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
3513 a NULL sender for peer-to-peer case
3515 * dbus/dbus-transport-unix.c (check_read_watch): handle
3516 !authenticated case correctly
3518 * glib/dbus-gmain.c: add support for DBusServer
3520 * dbus/dbus-server.c: add data slot support
3522 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
3523 return values and handle errors
3525 * dbus/dbus-dataslot.c: factor out the data slot stuff from
3528 * Doxyfile.in (INPUT): add glib subdir
3530 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
3531 setup_with_g_main instead of hookup_with_g_main; write docs
3533 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3535 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
3536 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3537 * dbus/dbus-message.c: (dbus_message_append_boolean),
3538 (dbus_message_append_boolean_array),
3539 (dbus_message_get_args_valist), (_dbus_message_test):
3540 * dbus/dbus-message.h:
3541 * doc/dbus-specification.sgml:
3542 Various fixes as pointed out by Havoc.
3544 * test/data/invalid-messages/bad-boolean-array.message:
3545 * test/data/invalid-messages/bad-boolean.message:
3546 Add invalid boolean value test cases.
3548 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3550 * dbus/dbus-internals.c: (_dbus_type_to_string):
3551 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3552 (_dbus_marshal_validate_arg):
3553 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3554 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3555 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
3556 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
3557 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
3558 (dbus_message_iter_get_double),
3559 (dbus_message_iter_get_boolean_array), (message_iter_test):
3560 * dbus/dbus-message.h:
3561 * dbus/dbus-protocol.h:
3562 * doc/dbus-specification.sgml:
3563 * test/data/valid-messages/lots-of-arguments.message:
3564 Add support for boolean and boolean array types.
3566 2003-02-23 Havoc Pennington <hp@pobox.com>
3568 * dbus/dbus-keyring.c: finish most of this implementation and
3571 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
3572 these barf if the error isn't cleared to NULL
3574 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
3575 (_dbus_create_directory): new function
3577 * dbus/dbus-errors.c (dbus_set_error): fix warning
3579 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
3580 (_dbus_string_hex_decode): new function
3581 (test_hex_roundtrip): test code
3583 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
3585 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
3587 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
3588 the save-to-temp/rename trick to atomically write the new file
3589 (_dbus_string_parse_uint): new function
3591 2003-02-22 Havoc Pennington <hp@pobox.com>
3593 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
3595 2003-02-22 Havoc Pennington <hp@pobox.com>
3597 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
3598 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
3600 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
3602 * dbus/test/data/sha-1: add US government test suite for SHA-1
3604 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3606 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3607 Make string arrays NULL-terminated.
3609 * dbus/dbus-memory.c: (dbus_free_string_array):
3610 * dbus/dbus-memory.h:
3611 New function for freeing NULL-terminated string arrays.
3613 * dbus/dbus-message-builder.c: (append_quoted_string),
3614 (_dbus_message_data_load):
3615 Add support for array types.
3617 * dbus/dbus-message.c: (check_message_handling):
3618 Add more types as test cases.
3620 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
3621 (_dbus_string_parse_double):
3622 Add the start offset to the end offset.
3624 * test/data/valid-messages/lots-of-arguments.message:
3625 New test message with lots of arguments.
3627 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3629 * dbus/dbus-message.c: (dbus_message_append_nil),
3630 (dbus_message_append_int32), (dbus_message_append_uint32),
3631 (dbus_message_append_double), (dbus_message_append_string),
3632 (dbus_message_append_int32_array),
3633 (dbus_message_append_uint32_array),
3634 (dbus_message_append_double_array),
3635 (dbus_message_append_byte_array),
3636 (dbus_message_append_string_array):
3637 Fix all out-of-memory handling in these functions.
3639 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3641 * dbus/dbus-message.c: (dbus_message_append_nil):
3644 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3646 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3647 (dbus_message_append_nil), (dbus_message_append_int32_array),
3648 (dbus_message_append_uint32_array),
3649 (dbus_message_append_double_array),
3650 (dbus_message_append_byte_array),
3651 (dbus_message_append_string_array), (dbus_message_get_args_valist),
3652 (dbus_message_iter_get_int32_array),
3653 (dbus_message_iter_get_uint32_array),
3654 (dbus_message_iter_get_double_array),
3655 (dbus_message_iter_get_byte_array),
3656 (dbus_message_iter_get_string_array):
3658 * dbus/dbus-message.h:
3659 Add functions for appending and getting arrays.
3661 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3663 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
3664 element size at least 8 bytes, fixes mempool tests on
3667 2003-02-20 Alexander Larsson <alexl@redhat.com>
3669 * dbus/dbus-transport-unix.c (unix_do_iteration):
3670 Unlock the connection mutex during a blocking select call.
3671 Add todo about how we need a way to wake up the select.
3673 * dbus/dbus-connection-internal.h:
3674 * dbus/dbus-connection.c:
3675 Add _dbus_connection_lock and _dbus_connection_unlock.
3677 2003-02-19 Havoc Pennington <hp@pobox.com>
3679 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
3680 Doxyfile.in, not Doxyfile
3682 * dbus/dbus-keyring.c: do some hacking on this
3684 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
3686 * dbus/dbus-errors.c (dbus_set_error_const): do not call
3688 (dbus_set_error): remove dbus_error_init, check for message ==
3689 NULL *before* we sprintf into it, and add @todo about including
3690 system headers in this file
3692 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
3694 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
3696 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
3697 get various bits of user information based on either username
3699 (_dbus_homedir_from_username): new function
3701 2003-02-19 Anders Carlsson <andersca@codefactory.se>
3704 Add check for nonposix getpwnam_r
3706 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
3707 Align the pool element size to a sizeof (void *) boundary.
3709 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
3710 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
3711 General Solaris fixes.
3713 * test/data/valid-messages/simplest-manual.message:
3714 Explicitly state that we want little-endian packing.
3716 2003-02-19 Mikael Hallendal <micke@codefactory.se>
3718 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
3720 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
3721 Added to create a transport connecting using a tcp/ip socket.
3723 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
3724 to a tcp socket at given host and port.
3725 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
3728 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
3730 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3731 Added to create a server listening on a TCP/IP socket.
3733 2003-02-19 Havoc Pennington <hp@pobox.com>
3735 Throughout: mop up all the Doxygen warnings and undocumented
3738 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
3739 to search any paths.
3741 * dbus/dbus-threads.c: move global mutex initializers to
3742 dbus-internals.h, multiple prototypes was confusing doxygen
3743 besides being kind of ugly
3745 * Doxyfile (PREDEFINED): have Doxygen define
3746 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
3747 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
3748 (do not abuse the feature! it's for stuff like the autogenerated
3749 macros in dbus-md5.c, not just for things you don't feel like
3752 2003-02-18 Havoc Pennington <hp@pobox.com>
3754 * dbus/dbus-string.c (_dbus_string_zero): new function
3756 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
3757 wrap it in some dbus-friendly API
3759 * dbus/dbus-types.h: add 16-bit types
3761 2003-02-18 Joe Shaw <joe@assbarn.com>
3763 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
3764 credentials from our currently running process.
3765 (get_word): Fix a buglet where we were copying the entire length
3766 instead of relative to our position.
3768 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
3769 keys on the stack... it's 640k of data.
3771 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
3772 read the credentials byte off the socket, even if we don't have
3774 (_dbus_poll): Implement poll() using select() for systems which
3777 * glib/test-dbus-glib.c (main): Print out an error if no
3778 parameters are given.
3780 * test/data/auth/fallback.auth-script: Added. Tests that a client
3781 can fallback to a secondary auth mechanism if the first fails.
3783 2003-02-18 Havoc Pennington <hp@pobox.com>
3787 2003-02-17 Havoc Pennington <hp@pobox.com>
3789 * doc/dbus-specification.sgml: lots of cosmetic
3790 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
3791 env variable to DBUS_BUS_ADDRESS, s/client/application/,
3792 s/server/bus/ (except in authentication section). Add a section
3793 "Message Bus Message Routing"
3795 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
3801 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3803 * doc/dbus-specification.sgml:
3804 Specification updates.
3806 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3808 * bus/activation.c: (bus_activation_init), (child_setup),
3809 (bus_activation_activate_service):
3811 * bus/main.c: (main):
3812 Set DBUS_ADDRESS environment variable.
3814 * dbus/dbus-errors.c: (dbus_set_error):
3815 Don't use va_copy since that's a C99 feature.
3817 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
3818 (_dbus_spawn_async):
3819 * dbus/dbus-sysdeps.h:
3820 Add child_setup_func to _dbus_spawn_async.
3822 * doc/dbus-specification.sgml:
3823 Update specification.
3825 * test/spawn-test.c: (setup_func), (main):
3828 2003-02-17 Alexander Larsson <alexl@redhat.com>
3830 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
3833 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3837 * doc/dbus-test-plan.sgml:
3838 Add test plan document.
3843 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3845 * dbus/dbus-message.c: (decode_header_data),
3846 (_dbus_message_loader_return_buffer):
3847 Set the header padding amount when loading a message.
3849 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3851 * bus/dispatch.c: (send_one_message):
3852 Only send broadcast messages to registered connections.
3854 * dbus/dbus-message.c: (dbus_message_name_is):
3855 * dbus/dbus-message.h:
3856 New convenience function.
3858 * dbus/dbus-transport-debug.c: (do_reading):
3859 Only dispatch one message per run.
3862 * test/bus-test.c: (new_connection_callback), (die),
3863 (test_hello_client1_handler), (test_hello_client2_handler),
3864 (test_hello_replies), (main):
3866 * test/bus-test-loop.[ch]:
3869 2003-02-16 Havoc Pennington <hp@pobox.com>
3871 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3872 backward conditional
3874 2003-02-16 Alexander Larsson <alexl@redhat.com>
3876 * dbus/dbus-connection.c:
3877 Implement sent_message_with_reply. (with_reply_and block is still
3879 Made dispatch_message not lose message if OOM.
3881 * dbus/dbus-errors.h:
3882 Add NoReply error (for reply timeouts).
3884 2003-02-16 Alexander Larsson <alexl@redhat.com>
3886 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3887 Actually free keys and values when destroying hashtable.
3889 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3891 * dbus/dbus-auth.c: (client_try_next_mechanism):
3894 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3895 Return TRUE if there's no thread implementation around.
3897 * glib/dbus-gmain.c: (free_source),
3898 (dbus_connection_hookup_with_g_main):
3899 Make sure to remove the GSource when the connection is finalized.
3901 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3903 * bus/dispatch.c: (bus_dispatch_message_handler):
3904 * dbus/dbus-errors.h:
3905 Return an error if someone tries to send a message to a service
3908 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3910 * bus/activation.c: (load_directory), (bus_activation_init),
3911 (bus_activation_activate_service):
3914 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3915 More work on the activation handling.
3917 * dbus/dbus-errors.h:
3918 Add some error messages
3920 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3921 * dbus/dbus-message.h:
3922 New function that creates an error message.
3924 * dbus/dbus-protocol.h:
3925 Add ACTIVATE_SERVER message.
3927 * dbus/dbus-server-unix.c: (unix_handle_watch),
3928 (_dbus_server_new_for_domain_socket):
3929 Call _dbus_fd_set_close_on_exec.
3931 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3932 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3933 (_dbus_fd_set_close_on_exec):
3934 * dbus/dbus-sysdeps.h:
3935 Add _dbus_fd_set_close_on exec function. Also add function that checks
3936 that all open fds are set to close-on-exec and warns otherwise.
3938 * dbus/dbus-transport-unix.c:
3939 (_dbus_transport_new_for_domain_socket):
3940 Call _dbus_fd_set_close_on_exec.
3942 2003-02-16 Havoc Pennington <hp@pobox.com>
3944 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3945 allow people to avoid setting SIGPIPE to SIG_IGN
3946 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3947 we've been asked not to
3949 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3951 * dbus/dbus-list.c: (_dbus_list_append_link),
3952 (_dbus_list_prepend_link):
3953 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3957 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3960 * bus/activation.c: (bus_activation_entry_free),
3961 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3963 * bus/main.c: (main):
3964 Add simple activation support, doesn't work yet though.
3966 2003-02-15 Zack Rusin <zack@kde.org>
3968 * qt/dbus-qthread.cpp: small casting fix
3970 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3972 * dbus/dbus-errors.c: (dbus_set_error):
3973 * dbus/dbus-errors.h:
3974 Add a few errors and make dbus_set_error void.
3976 * dbus/dbus-sysdeps.c:
3977 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3978 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3979 * dbus/dbus-sysdeps.h:
3980 Add _dbus_spawn_async.
3982 * test/spawn-test.c: (main):
3983 Test for _dbus_spawn_async.
3985 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3987 * dbus/dbus-internals.h:
3988 Fix build without tests.
3990 * dbus/dbus-list.c: (alloc_link):
3991 Fix a segfault when a malloc fails.
3993 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3994 (dbus_malloc0), (dbus_realloc):
3995 Add support for malloc debugging.
3997 2003-02-15 Alexander Larsson <alexl@redhat.com>
3999 * dbus/dbus-threads.c:
4000 * dbus/dbus-threads.h:
4001 Add condvars. Remove static mutext from API.
4002 Implement static mutexes by initializing them from threads_init.
4004 * glib/dbus-gthread.c:
4005 * qt/dbus-qthread.cpp:
4006 Update with the thread api changes.
4011 Turn StaticMutex into normal mutex + init function.
4012 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4013 _dbus_list_append_link, _dbus_list_prepend_link
4016 * dbus/dbus-sysdeps.c:
4017 * dbus/dbus-sysdeps.h:
4018 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4019 _dbus_atomic_dec. Only slow fallback implementation at the moment.
4021 * dbus/dbus-protocol.h:
4022 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4024 * dbus/dbus-message.c:
4025 Make ref/unref atomic.
4028 * dbus/dbus-connection-internal.h:
4029 * dbus/dbus-connection.c:
4030 * dbus/dbus-connection.h:
4032 Change _peek to _borrow,_return & _steal_borrowed.
4033 Change disconnect callback to event.
4034 Make dbus_connection_dispatch_messages reentrant.
4036 * dbus/dbus-transport.c:
4037 Don't ref the connection on calls to the transport
4040 * dbus/dbus-message-handler.c:
4043 * glib/dbus-gmain.c:
4044 Don't use peek_message anymore
4047 * test/debug-thread.c:
4048 * test/debug-thread.h:
4049 Simple thread implementation that asserts() on deadlocks in
4050 single-threaded code.
4053 (main) Call debug_threads_init.
4056 Use disconnect message instead of disconnect callback.
4060 Don't call dbus_connection_set_disconnect_function. Instead export
4061 bus_connection_disconnect.
4064 Call bus_connection_disconnect when we get a disconnected message.
4066 2003-02-15 Havoc Pennington <hp@pobox.com>
4068 * dbus/dbus-message.c (dbus_message_new): fool around with the
4071 2003-02-14 Havoc Pennington <hp@pobox.com>
4073 * dbus/dbus-mempool.c: fail if the debug functions so indicate
4075 * dbus/dbus-memory.c: fail if the debug functions indicate we
4078 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4079 (_dbus_decrement_fail_alloc_counter): debug functions to
4080 simulate memory allocation failures
4082 2003-02-14 Havoc Pennington <hp@pobox.com>
4084 * dbus/dbus-errors.h (struct DBusError): add a word of padding
4087 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4089 * bus/driver.c: (bus_driver_handle_hello):
4091 * bus/services.c: (bus_service_lookup):
4092 Reorder message sending so we get a more sane order.
4094 * test/bus-test.c: (message_handler):
4097 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4099 * bus/driver.c: (bus_driver_send_service_deleted),
4100 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4101 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4102 (bus_driver_send_welcome_message),
4103 (bus_driver_handle_list_services),
4104 (bus_driver_handle_acquire_service),
4105 (bus_driver_handle_service_exists):
4106 * dbus/dbus-bus.c: (dbus_bus_register_client),
4107 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4108 * dbus/dbus-errors.c: (dbus_result_to_string):
4109 * dbus/dbus-errors.h:
4110 * dbus/dbus-message.c: (dbus_message_append_args),
4111 (dbus_message_append_args_valist), (dbus_message_get_args),
4112 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4113 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4114 (dbus_message_iter_get_byte_array),
4115 (dbus_message_iter_get_string_array), (message_iter_test),
4116 (check_message_handling), (_dbus_message_test):
4117 * dbus/dbus-message.h:
4118 * test/bus-test.c: (main):
4119 Change fields to arguments in messages, so that they won't be
4120 confused with header fields.
4122 * glib/test-dbus-glib.c: (main):
4123 Remove append_fields from hello message.
4125 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4127 * dbus/dbus-errors.c:
4128 * dbus/dbus-message.c:
4129 * dbus/dbus-string.c:
4130 Documentation fixes.
4132 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4134 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
4136 Implement support for timeouts in dbus-glib.
4138 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4140 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4141 * dbus/dbus-message.c: (process_test_subdir):
4142 * test/break-loader.c: (find_breaks_based_on):
4143 Plug some memory leaks.
4145 2003-02-13 Richard Hult <rhult@codefactory.se>
4147 * bus/main.c: Fix build.
4149 * dbus/dbus-errors.h:
4150 * dbus/dbus-errors.c: Fix copyright for Anders.
4152 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4157 * bus/connection.c: (bus_connection_foreach):
4160 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
4161 (unescape_string), (new_section), (parse_section_start),
4162 (parse_key_value), (report_error), (bus_desktop_file_load),
4163 (bus_desktop_file_get_string):
4164 * bus/desktop-file.h:
4165 Use DBusError for error reporting.
4167 * bus/dispatch.c: (send_one_message),
4168 (bus_dispatch_message_handler):
4169 * bus/driver.c: (bus_driver_send_service_deleted),
4170 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4171 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4172 (bus_driver_send_welcome_message),
4173 (bus_driver_handle_list_services),
4174 (bus_driver_handle_acquire_service),
4175 (bus_driver_handle_service_exists):
4176 * bus/loop.c: (bus_loop_run):
4178 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
4180 * bus/utils.c: (bus_wait_for_memory):
4182 New files with general utility functions.
4184 * dbus/dbus-internals.h:
4185 Remove _DBUS_HANDLE_OOM.
4187 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4189 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
4190 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
4191 * dbus/dbus-errors.h:
4192 Add DBusError structure.
4194 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4196 * test/data/valid-messages/standard-acquire-service.message:
4197 * test/data/valid-messages/standard-hello.message:
4198 * test/data/valid-messages/standard-list-services.message:
4199 * test/data/valid-messages/standard-service-exists.message:
4200 Add some standard messages.
4202 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4204 * bus/driver.c: (bus_driver_send_welcome_message),
4205 (bus_driver_handle_list_services),
4206 (bus_driver_handle_acquire_service),
4207 (bus_driver_handle_service_exists), (bus_driver_handle_message):
4208 Update for API changes in libdbus.
4210 * dbus/dbus-message.c: (dbus_message_new_reply):
4211 * dbus/dbus-message.h:
4212 Remove the name argument. The spec states that replies shouldn't
4215 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4217 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
4218 (report_error), (bus_desktop_file_load), (lookup_section),
4219 (lookup_line), (bus_desktop_file_get_raw),
4220 (bus_desktop_file_get_string):
4221 * bus/desktop-file.h:
4222 Some fixes, and new functions for getting a key value from a section.
4224 2003-02-13 Havoc Pennington <hp@pobox.com>
4226 * test/data/auth/fail-after-n-attempts.auth-script: new test
4228 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
4231 2003-02-13 Havoc Pennington <hp@pobox.com>
4233 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
4234 dbus_credentials_match were backward
4236 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
4237 NO_CREDENTIALS and ROOT_CREDENTIALS
4239 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
4240 into here. Never process more commands after we've reached an
4241 end state; store further data as unused bytes.
4243 * test/data/auth/*: add more auth tests
4245 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
4246 command to match exact string and EXPECT_UNUSED to match unused
4249 * test/Makefile.am (dist-hook): fix to dist all the test stuff
4251 2003-02-12 Havoc Pennington <hp@pobox.com>
4253 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
4254 \r off of popped lines
4256 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
4259 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
4262 2003-02-12 Havoc Pennington <hp@pobox.com>
4264 * dbus/Makefile.am: remove break-loader from the build, since it
4267 * configure.in: add --enable-gcov to turn on coverage profiling
4268 flags and disable optimization
4270 2003-02-10 Havoc Pennington <hp@pobox.com>
4272 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
4273 initial cut at test framework for DBusAuth from laptop.
4274 Doesn't quite work yet but it compiles and I need to get
4275 it off the 266mhz laptop. ;-)
4277 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
4278 fix a memleak in error case
4280 2003-02-12 Anders Carlsson <andersca@codefactory.se>
4283 * bus/desktop-file.c:
4284 * bus/desktop-file.h:
4285 Add a desktop file parser.
4287 2003-02-11 Zack Rusin <zack@kde.org>
4289 * qt/message.[h|cpp]: sample implementation
4290 of the KDE wrapper for DBusMessage
4292 2003-02-09 Zack Rusin <zack@kde.org>
4294 * test/bus-test.c: make_it_compile
4295 * doc/dbus-specification.sgml: minimal semantic fix
4297 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4303 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4306 * dbus/dbus-break-loader.c:
4308 * test/break-loader.c:
4309 Move dbus-break-loader to test/ and rename it to break-loader.
4311 2003-02-02 Havoc Pennington <hp@pobox.com>
4313 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
4314 for code to manage cookies in your home directory
4316 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
4318 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
4319 to authenticate, then disconnect the client.
4321 2003-02-03 Alexander Larsson <alexl@redhat.com>
4323 * dbus/dbus-message.c (dbus_message_append_fields):
4326 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4328 * doc/dbus-specification.sgml:
4329 Update address format section.
4331 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4334 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
4335 (message_handler), (new_connection_callback), (loop_quit),
4339 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4341 * bus/driver.c: (bus_driver_handle_service_exists):
4342 Simplify the code a bit.
4344 * dbus/dbus-bus.c: (dbus_bus_service_exists):
4347 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4350 Add libdbus-daemon.la and link to it.
4352 2003-02-01 James Willcox <jwillcox@gnome.org>
4354 * bus/driver.c: (bus_driver_handle_own_service):
4355 Actually include the service reply code in the message.
4357 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4359 * bus/driver.c: (bus_driver_handle_service_exists):
4360 Don't unref the incoming message.
4362 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4364 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4366 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4368 * dbus/dbus-server.c: (dbus_server_listen):
4369 * dbus/dbus-transport.c: (_dbus_transport_open):
4370 ifdef out the calls to the debug transport and server.
4372 2003-02-02 Alexander Larsson <alexl@redhat.com>
4374 * dbus/dbus-watch.c (dbus_watch_get_flags):
4375 Add note in the docs that ERROR or HANGUP won't be returned
4376 and are assumed always on.
4378 * glib/dbus-gmain.c (add_watch):
4379 Always add IO_ERR | IO_HUP
4381 * dbus/dbus-message.h:
4382 Add semicolon after dbus_message_iter_get_string_array().
4383 Makes qt code build again
4385 2003-02-01 Anders Carlsson <andersca@codefactory.se>
4387 * bus/driver.c: (create_unique_client_name),
4388 (bus_driver_handle_hello):
4389 Don't take a name, just use a numeric id to identify
4393 * dbus/dbus-bus.c: (dbus_bus_register_client),
4394 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4396 Add new convenience functions for communicating with the bus.
4398 * dbus/dbus-message.h:
4400 * dbus/dbus-protocol.h:
4403 2003-02-01 Alexander Larsson <alexl@redhat.com>
4405 * dbus/dbus-message.c (dbus_message_append_fields):
4406 Add some more doc comments.
4408 2003-02-01 Havoc Pennington <hp@pobox.com>
4410 * dbus/dbus-break-loader.c (randomly_modify_length): change
4411 a 4-byte value in the message as if it were a length
4413 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4414 execute bit on saved files
4416 2003-02-01 Havoc Pennington <hp@pobox.com>
4418 * dbus/dbus-break-loader.c (main): new program to find messages
4419 that break the loader.
4421 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4422 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4424 * dbus/dbus-string.c (_dbus_string_set_byte): new
4426 2003-01-31 Havoc Pennington <hp@pobox.com>
4428 * dbus/dbus-message.c: refactor the test code to be more general,
4429 in preparation for writing a "randomly permute test cases to
4430 try to break the loader" program.
4432 2003-01-31 Havoc Pennington <hp@pobox.com>
4434 * doc/dbus-specification.sgml: work on the specification
4436 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4437 the protocol version of the message.
4439 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4440 no longer specifies that.
4441 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4444 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4445 "break" for DBUS_TYPE_NIL, remove @todo
4447 2003-01-31 Havoc Pennington <hp@pobox.com>
4449 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4450 just set_is_error/get_is_error as this is a commonly-used
4451 function, and write docs.
4453 2003-01-31 Anders Carlsson <andersca@codefactory.se>
4455 * dbus/dbus-address.c: (dbus_address_entry_free):
4456 Free key and value lists.
4458 * dbus/dbus-internals.c: (_dbus_type_to_string):
4459 Add the types we didn't have.
4461 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4462 (_dbus_marshal_validate_arg):
4465 * dbus/dbus-message.c: (dbus_message_set_sender):
4466 Remove todo about being able to set sender to NULL.
4468 (dbus_message_set_is_error_reply),
4469 (dbus_message_get_is_error_reply):
4470 * dbus/dbus-message.h:
4473 * dbus/dbus-protocol.h:
4474 Add error reply flag.
4476 * test/data/valid-messages/opposite-endian.message:
4477 Add NIL type to test.
4479 2003-01-31 Havoc Pennington <hp@pobox.com>
4481 * doc/dbus-specification.sgml: fully specify the header. Add
4482 flags and major protocol version, and change header/body len to
4485 * dbus/dbus-message-builder.c (append_saved_length): append length
4488 * dbus/dbus-message.c (dbus_message_create_header): change header
4489 length and body length to unsigned. Add the new fields from the
4491 (_dbus_message_loader_return_buffer): unsigned header/body len
4493 2003-01-30 Havoc Pennington <hp@pobox.com>
4495 * dbus/dbus-auth.c: rework to use only REJECTED, no
4498 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
4499 use REJECTED, suggested by Mark McLoughlin
4501 2003-01-30 Havoc Pennington <hp@pobox.com>
4503 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
4504 a better way to report errors here. e.g. "unix address lacks
4505 path" or something. also "no such file" when the path doesn't
4508 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
4510 (dbus_parse_address): add @todo about documenting address format,
4511 and allowing , and ; to be escaped
4513 2003-01-30 Anders Carlsson <andersca@codefactory.se>
4516 Add dbus-address.[ch]
4518 * dbus/dbus-address.c: (dbus_address_entry_free),
4519 (dbus_address_entries_free), (create_entry),
4520 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
4521 (dbus_parse_address), (_dbus_address_test):
4522 * dbus/dbus-address.h:
4523 New files for dealing with address parsing.
4525 * dbus/dbus-connection.c:
4526 Document timeout functions.
4528 * dbus/dbus-message.c:
4529 Document dbus_message_new_from_message.
4531 * dbus/dbus-server-debug.c:
4534 * dbus/dbus-server.c: (dbus_server_listen):
4535 Parse address and use correct server implementation.
4537 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
4538 * dbus/dbus-string.h:
4539 New function with test.
4541 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
4545 * dbus/dbus-transport-debug.c:
4548 * dbus/dbus-transport.c: (_dbus_transport_open):
4549 Parse address and use correct transport implementation.
4551 2003-01-30 Havoc Pennington <hp@pobox.com>
4553 * dbus/dbus-message.c: use message->byte_order instead of
4554 DBUS_COMPILER_BYTE_ORDER throughout.
4555 (dbus_message_create_header): pad header to align the
4556 start of the body of the message to 8-byte boundary
4558 * dbus/dbus-marshal.h: make all the demarshalers take const
4559 DBusString arguments.
4561 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
4562 validate message args here, so we don't have to do slow validation
4563 later, and so we catch bad messages as they are incoming. Also add
4564 better checks on header_len and body_len. Also fill in
4567 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
4568 implemented properly)
4569 (_dbus_string_validate_nul): new function to check all-nul
4571 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
4572 get_arg_end_pos and remove all validation
4573 (_dbus_marshal_validate_arg): actually do validation here.
4575 2003-01-29 Havoc Pennington <hp@pobox.com>
4577 * dbus/dbus-message.c (check_message_handling): fix assertion
4578 failure on set_client_serial
4580 2003-01-28 Havoc Pennington <hp@pobox.com>
4582 * dbus/dbus-server-debug.c: Add doc section comments
4584 * dbus/dbus-transport-debug.c: add doc section comments
4586 2003-01-28 Havoc Pennington <hp@redhat.com>
4588 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
4589 the reverse order from how I had it
4590 (_dbus_string_base64_encode): reverse encoding order. I was
4591 basically byteswapping everything during encoding.
4593 2003-01-28 Anders Carlsson <andersca@codefactory.se>
4595 * dbus/dbus-connection-internal.h:
4596 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
4597 (_dbus_connection_remove_timeout):
4598 Add functions for adding and removing timeouts.
4600 * dbus/dbus-message.c: (dbus_message_new_from_message):
4601 Add new function that takes a message and creates an exact
4602 copy of it, but with the refcount set to 1.
4603 (check_message_handling):
4606 * dbus/dbus-server-protected.h:
4607 * dbus/dbus-server.c: (_dbus_server_init_base),
4608 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
4609 (dbus_server_set_timeout_functions):
4610 (_dbus_server_remove_timeout):
4611 New functions so that a server can add and remove timeouts.
4613 (dbus_server_listen):
4614 Add commented out call to dbus_server_debug_new.
4616 * dbus/dbus-timeout.c: (_dbus_timeout_new):
4617 Actually set the handler, doh.
4619 * dbus/dbus-transport.c: (_dbus_transport_open):
4620 Add commented out call to dbus_transport_debug_client_new.
4623 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
4625 2003-01-28 Havoc Pennington <hp@pobox.com>
4627 * dbus/dbus-message.c (check_message_handling): function to check
4628 on the loaded message, iterates over it etc.
4630 2003-01-28 Havoc Pennington <hp@pobox.com>
4632 * test/Makefile.am (dist-hook): fix make distdir
4634 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
4636 2003-01-27 Havoc Pennington <hp@pobox.com>
4638 * dbus/dbus-mempool.c (time_for_size): replace printf with
4641 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
4642 empty lines; fix the SAVE_LENGTH stuff to be
4643 START_LENGTH/END_LENGTH so it actually works; couple other
4646 * test/Makefile.am (dist-hook): add dist-hook for .message files
4648 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
4649 can be constant or locked.
4650 (_dbus_string_free): allow freeing a const string as
4653 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
4655 * dbus/dbus-test-main.c (main): take an argument which is the
4656 directory containing test data
4658 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
4659 argument to this and load all the messages in test/data/
4660 checking that they can be loaded or not loaded as appropriate.
4662 2003-01-27 Anders Carlsson <andersca@codefactory.se>
4664 * bus/dispatch.c: (bus_dispatch_message_handler):
4665 Dispatch messages sent to services.
4667 * bus/driver.c: (bus_driver_send_service_deleted),
4668 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4669 (bus_driver_send_service_acquired):
4670 Add helper functions for sending service related messages.
4672 (bus_driver_send_welcome_message):
4673 Send HELLO_REPLY instead of WELCOME.
4675 (bus_driver_handle_list_services):
4676 Send LIST_SERVICES_REPLY instead of SERVICES.
4678 (bus_driver_handle_own_service),
4679 (bus_driver_handle_service_exists):
4680 New message handlers.
4682 (bus_driver_handle_message):
4683 Invoke new message handlers.
4685 (bus_driver_remove_connection):
4686 Don't remove any services here since that's done automatically
4687 by bus_service_remove_owner now.
4690 New function signatures.
4692 * bus/services.c: (bus_service_add_owner):
4693 Send ServiceAcquired message if we're the only primary owner.
4695 (bus_service_remove_owner):
4696 Send ServiceAcquired/ServiceLost messages.
4698 (bus_service_set_prohibit_replacement),
4699 (bus_service_get_prohibit_replacement):
4700 Functions for setting prohibit replacement.
4702 (bus_service_has_owner):
4703 New function that checks if a connection is in the owner queue of
4707 Add new function signatures.
4709 * dbus/dbus-list.c: (_dbus_list_test):
4710 Add tests for _dbus_list_remove_last and traversing the list backwards.
4713 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
4714 go any further, so return NULL then.
4716 * dbus/dbus-protocol.h:
4717 Add new messages, service flags and service replies.
4719 2003-01-26 Havoc Pennington <hp@pobox.com>
4721 * dbus/dbus-message-builder.c: implement, completely untested.
4723 * test/data/*: add data to be used in testing.
4724 ".message" files are our simple loadable text format.
4725 ".message-raw" will be binary dumps of messages.
4727 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
4729 2003-01-26 Havoc Pennington <hp@pobox.com>
4731 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
4733 * dbus/dbus-errors.c (dbus_result_to_string): add
4736 * dbus/dbus-message-builder.c: new file, will contain code to load
4737 up messages from files. Not implemented yet.
4739 2003-01-26 Havoc Pennington <hp@pobox.com>
4741 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
4742 the sender by setting to NULL
4744 2003-01-26 Havoc Pennington <hp@pobox.com>
4746 The unit tests pass, but otherwise untested. If it breaks, the
4747 tests should have been better. ;-)
4749 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
4752 * dbus/dbus-message.c: redo everything so we maintain
4753 message->header as the only copy of the various fields.
4754 This avoids the possibility of out-of-memory in some cases,
4755 for example dbus_message_lock() can't run out of memory anymore,
4756 and avoids extra copying. Figured I may as well go ahead and do
4757 this since it was busted for dbus_message_lock to not return
4758 failure on OOM, and dbus_message_write_header was totally
4759 unchecked for OOM. Also fixed some random other bugs.
4761 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
4762 that strings are nul-terminated. Also, end_pos can be equal
4763 to string length just not greater than, I think.
4764 (_dbus_marshal_set_int32): new function
4765 (_dbus_marshal_set_uint32): new function
4766 (_dbus_marshal_set_string): new function
4768 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
4769 a warning, init timeout_list to NULL
4770 (dbus_connection_send_message): don't use uninitialized variable
4773 * dbus/dbus-string.c (_dbus_string_replace_len): new function
4775 2003-01-26 Anders Carlsson <andersca@codefactory.se>
4777 * bus/driver.c: (bus_driver_handle_hello),
4778 (bus_driver_send_welcome_message):
4781 2003-01-26 Anders Carlsson <andersca@codefactory.se>
4783 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
4784 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4785 (dbus_connection_unref):
4786 * dbus/dbus-marshal.c: (_dbus_marshal_test):
4787 * dbus/dbus-message.c: (dbus_message_unref),
4790 (dbus_message_get_fields):
4791 Remove debugging printout.
4793 (_dbus_message_loader_return_buffer):
4794 Don't store the header string.
4796 (_dbus_message_test):
4799 2003-01-26 Richard Hult <rhult@codefactory.se>
4801 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
4802 the file descriptor list, since it can change under us.
4804 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4806 * glib/dbus-gmain.c: (dbus_connection_prepare),
4807 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
4808 (remove_watch), (dbus_connection_hookup_with_g_main):
4809 Rewrite the glib handling to use its own GSource instead of a
4810 GIOChannel so we can catch messages put in the queue while waiting
4813 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4816 * bus/connection.c: (connection_disconnect_handler),
4817 (connection_watch_callback), (bus_connection_setup):
4818 * bus/dispatch.c: (send_one_message),
4819 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
4820 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
4822 * bus/driver.c: (bus_driver_send_service_deleted),
4823 (bus_driver_send_service_created), (bus_driver_handle_hello),
4824 (bus_driver_send_welcome_message),
4825 (bus_driver_handle_list_services), (bus_driver_remove_connection),
4826 (bus_driver_handle_message):
4828 Refactor code, put the message dispatching in its own file. Use
4829 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
4832 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4834 * dbus/dbus-internals.h:
4835 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
4837 * dbus/dbus-message.c: (dbus_message_get_sender):
4838 * dbus/dbus-message.h:
4839 Implement dbus_message_get_sender.
4841 * dbus/dbus-protocol.h:
4842 Add message and service defines.
4844 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4846 * dbus/dbus-connection.c: (dbus_connection_send_message):
4847 * dbus/dbus-message-internal.h:
4848 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4849 (dbus_message_write_header):
4850 Remove _dbus_messag_unlock and don't set the client serial on a
4851 message if one already exists.
4853 2003-01-24 Havoc Pennington <hp@pobox.com>
4855 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4858 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4861 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4863 * dbus/dbus-list.c: (alloc_link), (free_link):
4864 Use a memory pool for the links.
4866 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4868 * bus/connection.c: (bus_connection_foreach):
4870 Add new bus_connection_foreach function.
4872 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4873 Add function that broadcasts a message to all clients.
4875 (bus_driver_send_service_created), (bus_driver_handle_hello),
4876 (bus_driver_send_welcome_message),
4877 (bus_driver_handle_list_services), (bus_driver_message_handler):
4878 Implement functions that take care of listing services, and notifying
4879 clients when new services are created.
4881 * bus/services.c: (bus_services_list):
4883 Add new function that returns an array of strings with the currently
4884 registered services.
4887 * glib/dbus-gmain.c:
4888 Update copyright year.
4890 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4892 * dbus/dbus-connection.c: (dbus_connection_send_message):
4893 Unlock the message in case it was sent earlier.
4895 (dbus_connection_send_message_with_reply_and_block):
4896 Remove the reply message from the list.
4898 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4899 Set array_len and new_pos correctly.
4901 (_dbus_marshal_test):
4902 Remove debug output.
4904 * dbus/dbus-message-internal.h:
4905 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4906 New function that returns the reply serial.
4908 (_dbus_message_unlock):
4909 New function that unlocks a message and resets its header.
4911 (dbus_message_append_string_array),
4912 (dbus_message_get_fields_valist),
4913 (dbus_message_iter_get_field_type),
4914 (dbus_message_iter_get_string_array),
4915 (dbus_message_get_fields),
4916 (dbus_message_append_fields_valist):
4917 Handle string arrays.
4919 (dbus_message_set_sender):
4920 Make this function public since the bus daemon needs it.
4922 (decode_header_data):
4923 Set the reply serial to -1 initially.
4925 * dbus/dbus-message.h:
4926 Add dbus_message_set_sender.
4928 2003-01-24 Havoc Pennington <hp@pobox.com>
4930 * doc/dbus-specification.sgml: add some stuff
4932 2003-01-22 Havoc Pennington <hp@pobox.com>
4934 * doc/dbus-specification.sgml: Start to document the protocol.
4936 2003-01-22 Havoc Pennington <hp@pobox.com>
4938 * dbus/dbus-connection.c
4939 (dbus_connection_send_message_with_reply_and_block): add some @todo
4941 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4943 2003-01-21 Havoc Pennington <hp@pobox.com>
4945 (patch untested because can't compile)
4947 * bus/driver.c (create_unique_client_name): make this function
4948 never recycle client names. Also, caller should initialize
4951 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4953 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4955 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4956 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4957 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4958 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4959 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4960 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4961 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4962 * dbus/dbus-marshal.h:
4963 * dbus/dbus-protocol.h:
4964 Add support for marshalling and demarshalling integer, double
4967 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4972 * bus/connection.c: (connection_disconnect_handler):
4973 Remove the connection from the bus driver's list.
4975 (connection_watch_callback): Dispatch messages.
4977 (free_connection_data): Free connection name.
4979 (bus_connection_setup): Add connection to the bus driver's list.
4980 (bus_connection_remove_owned_service):
4981 (bus_connection_set_name), (bus_connection_get_name):
4982 Add functions for setting and getting the connection's name.
4985 Add function headers.
4987 * bus/driver.c: (create_unique_client_name),
4988 (bus_driver_handle_hello_message),
4989 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4990 (bus_driver_add_connection), (bus_driver_remove_connection):
4993 * bus/services.c: (bus_service_free):
4995 New file that handles communication and registreation with the bus
4998 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5000 * dbus/dbus-connection.c: (dbus_connection_send_message):
5001 Add a new client_serial parameter.
5003 (dbus_connection_send_message_with_reply):
5004 Remove a @todo since we've implemented the blocking function.
5006 (dbus_connection_send_message_with_reply_and_block):
5007 New function that sends a message and waits for a reply and
5008 then returns the reply.
5010 * dbus/dbus-connection.h:
5013 * dbus/dbus-errors.c: (dbus_result_to_string):
5014 * dbus/dbus-errors.h:
5015 Add new DBUS_RESULT.
5017 * dbus/dbus-message-internal.h:
5018 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5019 (_dbus_message_set_sender), (dbus_message_write_header),
5020 (dbus_message_new_reply), (decode_header_data),
5021 (_dbus_message_loader_return_buffer), (_dbus_message_test):
5022 * dbus/dbus-message.h:
5023 Add new functions that set the reply serial and sender.
5024 Also marshal and demarshal them correctly and add test.
5026 * dbus/dbus-protocol.h:
5027 Add new DBUS_MESSAGE_TYPE_SENDER.
5030 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5031 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5032 (dbus_connection_hookup_with_g_main):
5033 * glib/test-dbus-glib.c: (main):
5034 Rewrite to use GIOChannel and remove the GSource crack.
5036 * test/echo-client.c: (main):
5037 * test/watch.c: (check_messages):
5038 Update for changed APIs
5040 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5042 * dbus/Makefile.am: Add dbus-timeout.[cħ]
5044 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5045 Create a DBusTimeoutList.
5046 (dbus_connection_set_timeout_functions): Add new function to
5047 set timeout callbacks
5049 * dbus/dbus-connection.h: Add public DBusTimeout API.
5051 * dbus/dbus-message.c: (dbus_message_get_service):
5052 * dbus/dbus-message.h: New function.
5054 * dbus/dbus-server.c: Fix small doc typo.
5056 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5058 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5060 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5061 of the string, just as long as specified.
5063 2003-01-19 Havoc Pennington <hp@pobox.com>
5065 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5068 * dbus/dbus-server.c (dbus_server_set_max_connections)
5069 (dbus_server_get_max_connections, dbus_server_get_n_connections):
5070 keep track of current number of connections, and add API for
5071 setting a max (but haven't implemented enforcing the max yet)
5073 2003-01-18 Havoc Pennington <hp@pobox.com>
5075 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5076 reading/writing if read_watch != NULL or write_watch != NULL.
5078 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5079 the message loader code to actually load message->header and
5080 message->body into the newly-created message.
5082 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5085 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5086 (dbus_connection_get_max_message_size)
5087 (dbus_connection_set_max_live_messages_size)
5088 (dbus_connection_get_max_live_messages_size): implement some
5089 resource limitation functions
5091 * dbus/dbus-resources.c: new file implementing some of the
5092 resource limits stuff
5094 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5095 missing docs, add @todo to handle OOM etc.
5097 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5100 2003-01-18 Havoc Pennington <hp@pobox.com>
5102 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5103 connection if it hasn't been already.
5105 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5106 replace with DisconnectFunction.
5108 2003-01-18 Havoc Pennington <hp@pobox.com>
5110 Building --disable-verbose-mode --disable-asserts --disable-tests
5111 cuts the library from 112K to 45K or so
5113 * configure.in: check for varargs macro support,
5114 add --enable-verbose-mode, --enable-asserts.
5116 * dbus/dbus-internals.h (_dbus_assert): support
5118 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
5120 2003-01-18 Havoc Pennington <hp@pobox.com>
5122 * dbus/dbus-test.c: include config.h so that tests actually run
5124 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
5125 so the failure mode when that assumption fails will be plenty
5128 2003-01-18 Havoc Pennington <hp@pobox.com>
5130 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
5132 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
5135 * test/Makefile.am: don't use special variable "TESTS" for echo-*
5136 since we don't want to use those in make check
5138 2003-01-15 Havoc Pennington <hp@redhat.com>
5144 2003-01-15 Havoc Pennington <hp@redhat.com>
5146 * test/Makefile.am: fix so that test source code ends up in the
5147 distribution on make distcheck
5149 2003-01-15 Havoc Pennington <hp@redhat.com>
5155 2003-01-15 Havoc Pennington <hp@redhat.com>
5157 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
5158 fix build when --disable-tests
5160 * Makefile.am (EXTRA_DIST): put HACKING in here
5162 * HACKING: document procedure for making a tarball release.
5164 2003-01-14 Anders Carlsson <andersca@codefactory.se>
5166 * bus/connection.c: (connection_error_handler),
5167 (bus_connection_setup):
5168 * bus/main.c: (main):
5169 Make sure that the DBusConnectionData struct is NULLed
5170 out to prevent a segfault.
5172 * dbus/dbus-errors.c: (dbus_result_to_string):
5173 * dbus/dbus-errors.h:
5174 * dbus/dbus-message.c: (dbus_message_get_fields),
5175 (dbus_message_get_fields_valist), (_dbus_message_test):
5176 * dbus/dbus-message.h:
5177 Make dbus_message_get_fields return a result code so we can
5178 track invalid fields as well as oom.
5180 2003-01-11 Havoc Pennington <hp@pobox.com>
5182 * configure.in: change --enable-test/--enable-ansi action-if-given
5183 to enable_foo=$enableval instead of enable_foo=yes
5185 2003-01-08 Havoc Pennington <hp@pobox.com>
5187 * dbus/dbus-string.c (_dbus_string_align_length): new function
5189 * dbus/dbus-test-main.c: move main() for test app here
5191 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
5192 symbol to run tests, because dbus-test isn't in the main
5195 Code review nitpicks.
5197 * dbus/dbus-message.c (dbus_message_write_header): add newlines
5198 for people with narrow emacs ;-). Assert client_serial was filled
5199 in. Assert message->name != NULL.
5200 (dbus_message_append_fields): have "first_field_type" arg separate
5201 from va list, needed for C++ binding that also uses varargs IIRC
5202 and helps with type safety
5203 (dbus_message_new): add @todo about using DBusString to store
5204 service/name internally
5205 (dbus_message_new): don't leak ->service and ->name on OOM later
5207 (dbus_message_unref): free the service name
5208 (dbus_message_get_fields): same change to varargs
5209 i.e. first_field_type
5210 (_dbus_message_loader_return_buffer): assert that the message data
5211 is aligned (if not it's a bug in our code). Put in verbose griping
5212 about why we set corrupted = TRUE.
5213 (decode_header_data): add FIXME that char* is evil. Was going to
5214 add FIXME about evil locale-specific string.h strncmp, but just
5215 switched to wacky string-as-uint32 optimization. Move check for
5216 "no room for field name" above get_const_data_len() to avoid
5217 assertion failure in get_const_data_len if we have trailing 2
5218 bytes or the like. Check for service and name fields being
5219 provided twice. Don't leak service/name on error. Require field
5220 names to be aligned to 4 bytes.
5222 * dbus/dbus-marshal.c: move byte swap stuff to header
5223 (_dbus_pack_int32): uscore-prefix
5224 (_dbus_unpack_int32): uscore-prefix
5225 (_dbus_unpack_uint32): export
5226 (_dbus_demarshal_string): add @todo complaining about use of
5228 (_dbus_marshal_get_field_end_pos): add @todo about bad error
5229 handling allowing corrupt data to go unchecked
5231 2003-01-08 Havoc Pennington <hp@redhat.com>
5233 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
5234 to the select() as needed for authentication. (should be using
5235 _dbus_poll() not select, but for another day)
5237 * dbus/dbus.h: include dbus/dbus-protocol.h
5239 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5241 * dbus/Makefile.am (dbusinclude_HEADERS): Install
5244 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5246 * dbus/dbus-internals.c: (_dbus_type_to_string):
5247 New function that returns a string describing a type.
5249 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
5250 * dbus/dbus-marshal.h:
5251 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
5252 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
5253 (dbus_message_iter_get_byte_array):
5254 * dbus/dbus-message.h:
5255 Add new convenience functions for appending and getting message fields.
5256 Also add demarshalling routines for byte arrays.
5258 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5260 * dbus/dbus-connection-internal.h:
5261 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5262 (_dbus_connection_get_next_client_serial),
5263 (dbus_connection_send_message):
5264 * dbus/dbus-internals.h:
5265 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
5266 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
5267 (_dbus_marshal_uint32), (_dbus_demarshal_double),
5268 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
5269 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
5270 (_dbus_verbose_bytes), (_dbus_marshal_test):
5271 * dbus/dbus-marshal.h:
5272 * dbus/dbus-message-internal.h:
5273 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
5274 (dbus_message_write_header), (_dbus_message_lock),
5275 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
5276 (dbus_message_get_name), (dbus_message_append_int32),
5277 (dbus_message_append_uint32), (dbus_message_append_double),
5278 (dbus_message_append_string), (dbus_message_append_byte_array),
5279 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
5280 (dbus_message_iter_unref), (dbus_message_iter_has_next),
5281 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
5282 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
5283 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
5284 (decode_header_data), (_dbus_message_loader_return_buffer),
5285 (message_iter_test), (_dbus_message_test):
5286 * dbus/dbus-message.h:
5287 * dbus/dbus-protocol.h:
5288 * dbus/dbus-test.c: (main):
5290 * glib/test-dbus-glib.c: (message_handler), (main):
5291 * test/echo-client.c: (main):
5292 * test/watch.c: (check_messages):
5293 Make messages sendable and receivable for real.
5295 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5297 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5298 (_dbus_marshal_string), (_dbus_marshal_byte_array):
5299 * dbus/dbus-message.c: (dbus_message_append_int32),
5300 (dbus_message_append_uint32), (dbus_message_append_double),
5301 (dbus_message_append_string), (dbus_message_append_byte_array):
5302 Handle OOM restoration.
5304 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5306 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5307 (_dbus_demarshal_string), (_dbus_marshal_test):
5308 * dbus/dbus-marshal.h:
5309 * dbus/dbus-message.c: (dbus_message_get_name),
5310 Document these functions.
5312 (dbus_message_append_int32), (dbus_message_append_uint32),
5313 (dbus_message_append_double), (dbus_message_append_string),
5314 (dbus_message_append_byte_array):
5315 * dbus/dbus-message.h:
5316 Add functions for adding message fields of different types.
5318 * dbus/dbus-protocol.h:
5319 Add the different types.
5321 2003-01-05 Havoc Pennington <hp@pobox.com>
5323 * bus/connection.c: implement routines for handling connections,
5324 first thing is keeping a list of owned services on each connection
5325 and setting up watches etc.
5327 * bus/services.c: implement a mapping from service names to lists
5330 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
5332 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
5333 to use static mutexes for global data
5335 * dbus/dbus-connection.c (dbus_connection_set_data): add new
5336 collection of functions to set/get application-specific data
5337 on the DBusConnection.
5339 2003-01-04 Havoc Pennington <hp@pobox.com>
5341 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
5342 (_dbus_poll): new function
5344 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
5347 * bus/loop.c: initial code for the daemon main loop
5349 2003-01-04 Havoc Pennington <hp@pobox.com>
5351 * test/watch.c (error_handler): make it safe if the error handler
5352 is called multiple times (if we s/error handler/disconnect
5353 handler/ we should just guarantee it's called only once)
5355 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5356 error handler on disconnect (it's quite possible we should
5357 just change the error handler to a "disconnect handler," I'm
5358 not sure we have any other meaningful errors)
5360 * configure.in: check for getpwnam_r
5362 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5363 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5364 mechanism as in SASL spec, using socket credentials
5366 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5367 (_dbus_send_credentials_unix_socket): new function
5369 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5371 (_dbus_write): only check errno if <0 returned
5372 (_dbus_write_two): ditto
5374 2003-01-02 Anders Carlsson <andersca@codefactory.se>
5376 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5377 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5378 (_dbus_marshal_test):
5379 * dbus/dbus-marshal.h:
5380 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5381 to _dbus_marshal_utf8_string. Also fix some tests.
5383 2002-12-28 Harri Porten <porten@kde.org>
5385 * configure.in: added check for C++ compiler and a very cheesy
5386 check for the Qt integration
5388 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5390 * qt/Makefile.am: added
5392 * qt/.cvsignore: added
5394 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5395 latter, added #ifdef QT_THREAD_SUPPORT guard.
5397 * dbus/Makefile.am: added missing headers for make dist
5399 2002-12-28 Kristian Rietveld <kris@gtk.org>
5401 * dbus/Makefile.am: fixup export-symbols-regex.
5403 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5405 * acinclude.m4: Add this file and put the
5406 PKG_CHECK_MODULE macro in it.
5408 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5410 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5411 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5412 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5413 (_dbus_marshal_test):
5414 Make the demarshalling routines align the pos argument.
5415 Add string marshalling tests and fix the obvious bugs
5418 2002-12-26 Havoc Pennington <hp@pobox.com>
5420 * dbus/dbus-auth.c: fixes fixes fixes
5422 * dbus/dbus-transport-unix.c: wire up support for
5423 encoding/decoding data on the wire
5425 * dbus/dbus-auth.c (_dbus_auth_encode_data)
5426 (_dbus_auth_decode_data): append to target string
5427 instead of nuking it.
5429 2002-12-26 Havoc Pennington <hp@pobox.com>
5431 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5432 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5435 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5436 avoid swap_bytes() overhead (ignoring possible assembly stuff for
5437 now). Main point is because I wanted unpack_uint32 to implement
5439 (_dbus_verbose_bytes): new function
5441 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5443 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5444 mechanism to handle a corrupt message stream
5445 (_dbus_message_loader_new): fix preallocation to only prealloc,
5448 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5449 (_dbus_string_test): enhance tests for copy/move and fix the
5452 * dbus/dbus-transport-unix.c: Hold references in more places to
5453 avoid reentrancy problems
5455 * dbus/dbus-transport.c: ditto
5457 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
5458 leak reference count in no-message case
5460 * test/watch.c (do_mainloop): handle adding/removing watches
5461 during iteration over the watches. Also, ref the connection/server
5462 stored on a watch, so we don't try to mangle a destroyed one.
5464 * dbus/dbus-transport-unix.c (do_authentication): perform
5467 * dbus/dbus-auth.c (get_state): add a state
5468 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
5469 (_dbus_auth_get_unused_bytes): append the unused bytes
5470 to the passed in string, rather than prepend
5472 * dbus/dbus-transport.c (_dbus_transport_init_base): create
5473 the auth conversation DBusAuth
5475 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
5476 (_dbus_transport_new_for_domain_socket): when creating a
5477 transport, pass in whether it's a client-side or server-side
5478 transport so we know which DBusAuth to create
5480 2002-12-03 Havoc Pennington <hp@pobox.com>
5482 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
5483 _after_ finalizing the derived members
5484 (unix_connection_set): unref watch if we fail to add it
5486 * dbus/dbus-connection.c (dbus_connection_unref): delete the
5487 transport first, so that the connection owned by the
5488 transport will be valid as the transport finalizes.
5490 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
5491 if necessary, and remove watches from the connection.
5493 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
5495 2002-12-26 Anders Carlsson <andersca@codefactory.se>
5497 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5498 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5499 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5500 (_dbus_marshal_test):
5501 * dbus/dbus-marshal.h:
5502 Add string marshal functions and have the demarshal functions
5503 return the new position.
5505 2002-12-25 Havoc Pennington <hp@pobox.com>
5507 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
5508 it is a simple protocol that just maps directly to SASL.
5510 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
5511 initial implementation, not actually used yet.
5513 * dbus/dbus-string.c (_dbus_string_find): new function
5514 (_dbus_string_equal): new function
5515 (_dbus_string_base64_encode): new function
5516 (_dbus_string_base64_decode): new function
5518 2002-12-25 Anders Carlsson <andersca@codefactory.se>
5521 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
5522 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5523 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5524 (_dbus_demarshal_uint32), (_dbus_marshal_test):
5525 * dbus/dbus-marshal.h:
5526 * dbus/dbus-protocol.h:
5527 * dbus/dbus-test.c: (main):
5529 Add un-optimized marshalling/demarshalling routines.
5531 2002-12-25 Harri Porten <porten@kde.org>
5533 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
5535 2002-12-24 Zack Rusin <zack@kde.org>
5537 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
5538 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
5541 2002-12-24 Havoc Pennington <hp@pobox.com>
5543 * glib/dbus-gthread.c: fix include
5545 * glib/dbus-glib.h: rename DBusMessageHandler for now.
5546 I think glib API needs to change, though, as you don't
5547 want to use DBusMessageFunction, you want to use the
5548 DBusMessageHandler object. Probably
5549 dbus_connection_open_with_g_main_loop()
5550 and dbus_connection_setup_g_main_loop() or something like that
5551 (but think of better names...) that just create a connection
5552 that has watch/timeout functions etc. already set up.
5554 * dbus/dbus-connection.c
5555 (dbus_connection_send_message_with_reply): new function just to
5556 show how the message handler helps us deal with replies.
5558 * dbus/dbus-list.c (_dbus_list_remove_last): new function
5560 * dbus/dbus-string.c (_dbus_string_test): free a string that
5563 * dbus/dbus-hash.c: use memory pools for the hash entries
5564 (rebuild_table): be more paranoid about overflow, and
5565 shrink table when we can
5566 (_dbus_hash_test): reduce number of sprintfs and write
5567 valid C89. Add tests for case where we grow and then
5568 shrink the hash table.
5570 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
5572 * dbus/dbus-connection.c (dbus_connection_register_handler)
5573 (dbus_connection_unregister_handler): new functions
5575 * dbus/dbus-message.c (dbus_message_get_name): new
5577 * dbus/dbus-list.c: fix docs typo
5579 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
5580 an object representing a handler for messages.
5582 2002-12-16 Anders Carlsson <andersca@codefactory.se>
5585 * glib/dbus-gthread.c: (dbus_gthread_init):
5586 Don't use the gdbus prefix for public functions.
5588 2002-12-16 Anders Carlsson <andersca@codefactory.se>
5592 Add GLib checks and fixup .pc files
5596 * glib/dbus-gmain.c: (gdbus_connection_prepare),
5597 (gdbus_connection_check), (gdbus_connection_dispatch),
5598 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
5599 (dbus_connection_gsource_new):
5600 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
5601 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
5602 * glib/test-dbus-glib.c: (message_handler), (main):
5605 2002-12-15 Harri Porten <porten@kde.org>
5607 * autogen.sh: check for libtoolize before attempting to use it
5609 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
5612 * .cvsignore: ignore more stamp files
5614 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
5616 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
5617 without make install.
5619 2002-12-15 Havoc Pennington <hp@pobox.com>
5621 * dbus/dbus-threads.c: add thread stubs that a higher library
5622 layer can fill in. e.g. the GLib wrapper might fill them in with
5623 GThread stuff. We still need to use this thread API to
5624 thread-safe-ize the library.
5626 2002-12-12 Havoc Pennington <hp@pobox.com>
5628 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
5629 below new interfaces and include fewer system headers.
5631 * dbus/dbus-sysdeps.c (_dbus_read): new function
5632 (_dbus_write): new function
5633 (_dbus_write_two): new function
5634 (_dbus_connect_unix_socket): new function
5635 (_dbus_listen_unix_socket): new function
5637 * dbus/dbus-message-internal.h: change interfaces to use
5640 2002-12-11 Havoc Pennington <hp@pobox.com>
5642 * dbus/dbus-types.h: add dbus_unichar
5644 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
5646 * dbus/dbus-connection.c (dbus_connection_send_message): return
5649 * dbus/dbus-transport.c: include dbus-watch.h
5651 * dbus/dbus-connection.c: include dbus-message-internal.h
5653 * HACKING: add file with coding guidelines stuff.
5655 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
5656 handling here, for security purposes (as in vsftpd). Not actually
5657 using this class yet.
5659 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
5660 system/libc usage here, as in vsftpd, for ease of auditing (and
5661 should also simplify portability). Haven't actually moved all the
5662 system/libc usage into here yet.
5664 2002-11-25 Havoc Pennington <hp@pobox.com>
5666 * dbus/dbus-internals.c (_dbus_verbose): fix to not
5667 always print the first verbose message.
5669 2002-11-24 Havoc Pennington <hp@pobox.com>
5671 * test/echo-client.c, test/echo-server.c: cheesy test
5674 * configure.in (AC_CHECK_FUNCS): check for writev
5676 * dbus/dbus-message.c (_dbus_message_get_network_data): new
5679 * dbus/dbus-list.c (_dbus_list_foreach): new function
5681 * dbus/dbus-internals.c (_dbus_verbose): new function
5683 * dbus/dbus-server.c, dbus/dbus-server.h: public object
5684 representing a server that listens for connections.
5686 * dbus/.cvsignore: create
5688 * dbus/dbus-errors.h, dbus/dbus-errors.c:
5689 public API for reporting errors
5691 * dbus/dbus-connection.h, dbus/dbus-connection.c:
5692 public object representing a connection that
5693 sends/receives messages. (Same object used for
5694 both client and server.)
5696 * dbus/dbus-transport.h, dbus/dbus-transport.c:
5697 Basic abstraction for different kinds of stream
5698 that we might read/write messages from.
5700 2002-11-23 Havoc Pennington <hp@pobox.com>
5702 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
5705 * dbus/dbus-test.c (main): add list test, and include
5706 dbus-test.h as intended
5708 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
5709 (_dbus_hash_table_remove_int): return value indicates
5710 whether the entry existed to remove
5712 * dbus/dbus-list.c: add linked list utility class,
5715 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
5718 2002-11-23 Havoc Pennington <hp@pobox.com>
5720 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
5721 DBUS_END_DECLS to nothing, that should fix this once and for all
5723 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
5725 * dbus/dbus-message.c, dbus/dbus-hash.c:
5726 add some missing @brief
5728 2002-11-23 Havoc Pennington <hp@pobox.com>
5730 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
5731 to avoid confusing Doxygen
5733 * dbus/dbus-hash.c: @} not }@
5735 * dbus/dbus-message.c (struct DBusMessage): split out
5738 2002-11-23 Havoc Pennington <hp@pobox.com>
5740 * configure.in: pile on more warning flags if using gcc
5742 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
5743 to document static functions
5745 * configure.in: add summary to end of configure so it
5746 looks nice and attractive
5748 * dbus/dbus-hash.c: finish implementation and write unit
5751 * configure.in: add --enable-tests to enable unit tests
5753 * dbus/dbus-test.c: test program to run unit tests
5754 for all files in dbus/*, initially runs a test for
5757 * dbus/dbus-internals.h: file to hold some internal utility stuff
5759 2002-11-22 Havoc Pennington <hp@redhat.com>
5761 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
5762 "ported" away from Tcl
5764 * dbus/dbus-types.h: header for types such as dbus_bool_t
5766 2002-11-22 Havoc Pennington <hp@redhat.com>
5768 * dbus/dbus.h: fixups for doc warnings
5770 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
5772 (QUIET): make it quiet so we can see warnings
5774 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
5776 2002-11-22 Havoc Pennington <hp@redhat.com>
5778 * Makefile.am: include "Doxyfile" target in all-local
5780 * configure.in: generate the Doxyfile
5782 * Doxyfile.in: move Doxyfile here, so we can use
5783 configure to generate a Doxyfile with the right
5786 2002-11-22 Havoc Pennington <hp@redhat.com>
5788 * dbus/dbus-message.c: move inline docs into .c file
5790 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
5791 so all docs are under doc/
5792 (MAN_EXTENSION): generate man pages. Use extension
5793 ".3dbus" which matches ".3qt" on my system,
5794 I guess this is OK, I don't know really.
5795 (FILE_PATTERNS): look for .c files not .h, makes sense
5798 2002-11-22 Havoc Pennington <hp@pobox.com>
5800 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
5801 because any app can be a server, and any app can be a client,
5802 the bus is a special kind of server.
5804 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
5806 * Doxyfile : adding. Still needs Makefile rules to be generated
5807 automatically (just run "doxygen" in the toplevel dir for now to
5810 * dbus/dbus-message.h : Adding sample docs (javadoc since
5811 resembles gtk-doc a little more)
5813 * dbus/dbus.h : Adding sample docs
5815 2002-11-21 Havoc Pennington <hp@redhat.com>
5817 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
5818 so we can allow ourselves to include files directly,
5819 instead of having to use dbus.h
5821 * dbus/dbus.h: fill in
5823 * dbus/dbus-message.h: sketch out a sample header file.
5824 Include griping if you include it directly instead of
5827 * dbus/dbus-macros.h: new file with macros for extern "C",
5828 TRUE/FALSE, NULL, etc.
5830 * doc/file-boilerplate.c: put include guards in here
5832 2002-11-21 Havoc Pennington <hp@redhat.com>
5834 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
5836 * COPYING: include the GPL as well, and license code
5837 under both AFL and GPL.
5839 2002-11-21 Havoc Pennington <hp@redhat.com>
5841 * acconfig.h: get rid of this
5843 * autogen.sh (run_configure): add --no-configure option
5845 * configure.in: remove AC_ARG_PROGRAM to make
5846 autoconf complain less. add AC_PREREQ.
5847 add AC_DEFINE third arg.
5849 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5852 Fix references so we can distcheck.
5854 2002-11-21 Havoc Pennington <hp@redhat.com>
5856 * Initial module creation