1 2003-10-11 Havoc Pennington <hp@pobox.com>
3 * test/decode-gcov.c (function_solve_graph): make broken block
4 graph a nonfatal error since it seems to be broken. Need to debug
7 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8 can't just check type > INVALID < LAST anymore
10 * dbus/dbus-message.c (dbus_message_get_signature): new function
11 (dbus_message_has_signature): new function
12 (struct DBusMessage): add signature field (right now it isn't sent
13 over the wire, just generated on the fly)
14 (dbus_message_copy): copy the signature, and init strings to
15 proper length to avoid some reallocs
16 (dbus_message_iter_init_array_iterator): return void, since it
18 (dbus_message_iter_init_dict_iterator): return void since it can't fail
19 (_dbus_message_loader_queue_messages): add silly temporary hack to
20 fill in message->signature on load
22 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
23 characters, so they are relatively human-readable.
25 2003-10-11 Havoc Pennington <hp@pobox.com>
27 * dbus/dbus-message.c (_dbus_message_test): add more test
28 coverage, but #if 0 for now since they uncover a bug
29 not fixed yet; I think in re_align_field_recurse()
30 (re_align_field_recurse): add FIXME about broken assertion
32 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
34 * bus/connection.c: share a couple code bits with expirelist.c
36 * bus/expirelist.h, bus/expirelist.c: implement a generic
37 expire-items-after-N-seconds facility, was going to share between
38 expiring connections and replies, decided not to use for expiring
41 * COPYING: include AFL 2.0 (still need to change all the file headers)
43 2003-10-09 Havoc Pennington <hp@redhat.com>
45 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
46 gcc 3.3. Not that we do anything about it yet.
48 * bus/signals.c (bus_match_rule_parse): impose max length on the
51 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
53 2003-10-09 Havoc Pennington <hp@redhat.com>
55 Make matching rules theoretically work (add parser).
57 * bus/bus.c (bus_context_check_security_policy): fix up to handle
58 the case where destination is explicitly specified as bus driver
59 and someone else is eavesdropping.
61 * bus/policy.c (bus_client_policy_check_can_receive): fix up
62 definition of eavesdropping and assertion
64 * tools/dbus-send.c (main): use dbus_message_type_from_string
66 * bus/signals.c (bus_match_rule_parse): implement
68 * dbus/dbus-message.c (dbus_message_type_from_string): new
70 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
72 2003-10-02 Havoc Pennington <hp@pobox.com>
74 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
75 dbus_gproxy_oneway_call
77 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
78 (dbus_server_setup_with_g_main): fix to allow calling them more
79 than once on the same args
80 (dbus_bus_get_with_g_main): new function
82 2003-10-02 Havoc Pennington <hp@redhat.com>
84 * doc/dbus-tutorial.xml: write some stuff
86 2003-09-29 Havoc Pennington <hp@pobox.com>
88 * configure.in: split checks for Doxygen from XML docs, check for
91 * doc/Makefile.am: XML-ify all the docs, and add a blank
94 2003-09-29 Havoc Pennington <hp@pobox.com>
96 * Merge dbus-object-names branch. To see the entire patch
97 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
99 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
101 2003-09-28 Havoc Pennington <hp@pobox.com>
103 * HACKING: update to reflect new server
105 2003-09-26 Seth Nickell <seth@gnome.org>
108 * python/examples/example-signals.py:
110 Start implementing some notions of signals. The API
111 is really terrible, but they sort of work (with the
112 exception of being able to filter by service, and to
113 transmit signals *as* a particular service). Need to
114 figure out how to make messages come from the service
117 * python/dbus_bindings.pyx.in:
119 Removed duplicate message_handler callbacks.
121 2003-09-25 Havoc Pennington <hp@redhat.com>
123 * bus/session.conf.in: fix my mess
125 2003-09-25 Havoc Pennington <hp@pobox.com>
127 * bus/session.conf.in: fix security policy, reported by Seth Nickell
129 2003-09-25 Seth Nickell <seth@gnome.org>
131 * python/examples/example-service.py:
133 Johan notices complete wrong code in example-service, but
134 completely wrong in a way that works exactly the same (!).
135 Johan is confused, how could this possibly work? Example
136 code fails to serve purpose of making things clear.
139 2003-09-25 Mark McLoughlin <mark@skynet.ie>
141 * doc/dbus-specification.sgml: don't require header fields
142 to be 4-byte aligned and specify that fields should be
143 distinguished from padding by the fact that zero is not
146 * doc/TODO: remove re-alignment item and add item to doc
147 the OBJECT_PATH type.
149 * dbus/dbus-message.c:
150 (HeaderField): rename the original member to value_offset
151 and introduce a name_offset member to keep track of where
152 the field actually begins.
153 (adjust_field_offsets): remove.
154 (append_int_field), (append_uint_field),
155 (append_string_field): don't align the start of the header
156 field to a 4-byte boundary.
157 (get_next_field): impl finding the next marhsalled field
159 (re_align_field_recurse): impl re-aligning a number of
160 already marshalled fields.
161 (delete_field): impl deleting a field of any type and
162 re-aligning any following fields.
163 (delete_int_or_uint_field), (delete_string_field): remove.
164 (set_int_field), (set_uint_field): no need to re-check
165 that we have the correct type for the field.
166 (set_string_field): ditto and impl re-aligning any
168 (decode_header_data): update to take into account that
169 the fields aren't 4-byte aligned any more and the new
170 way to distinguish padding from header fields. Also,
171 don't exit when there is too much header padding.
172 (process_test_subdir): print the directory.
173 (_dbus_message_test): add test to make sure a following
174 field is re-aligned correctly after field deletion.
176 * dbus/dbus-string.[ch]:
177 (_dbus_string_insert_bytes): rename from insert_byte and
178 allow the insert of multiple bytes.
179 (_dbus_string_test): test inserting multiple bytes.
181 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
182 warning note to docs about having to re-align any
183 marshalled values following the string.
185 * dbus/dbus-message-builder.c:
186 (append_string_field), (_dbus_message_data_load):
187 don't align the header field.
189 * dbus/dbus-auth.c: (process_test_subdir): print the
192 * test/break-loader.c: (randomly_add_one_byte): upd. for
195 * test/data/invalid-messages/bad-header-field-alignment.message:
198 * test/data/valid-messages/unknown-header-field.message: shove
199 a dict in the unknown field.
201 2003-09-25 Seth Nickell <seth@gnome.org>
204 * python/dbus_bindings.pyx.in:
206 Handle return values.
208 * python/examples/example-client.py:
209 * python/examples/example-service.py:
211 Pass back return values from the service to the client.
213 2003-09-24 Seth Nickell <seth@gnome.org>
217 Connect Object methods (when you are sharing an object) up... pass
218 in a list of methods to be shared. Sharing all the methods just
219 worked out too weird. You can now create nice Services over the
222 * python/dbus_bindings.pyx.in:
224 Keep references to user_data tuples passed into C functions so
225 Python doesn't garbage collect on us.
227 Implement MethodReturn and Error subclasses of Message for creating
228 DBusMessage's of those types.
230 * python/examples/example-client.py:
231 * python/examples/example-service.py:
233 Simple example code showing both how create DBus services and objects,
236 2003-09-23 Havoc Pennington <hp@pobox.com>
238 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
240 2003-09-23 Havoc Pennington <hp@redhat.com>
242 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
243 (dbus_gproxy_disconnect_signal): implement
244 (dbus_gproxy_manager_remove_signal_match): implement
245 (dbus_gproxy_manager_add_signal_match): implement
246 (dbus_gproxy_oneway_call): implement
248 2003-09-23 Havoc Pennington <hp@pobox.com>
250 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
251 subclass. This means dropping the transparent thread safety of the
252 proxy; you now need a separate proxy per-thread, or your own
253 locking on the proxy. Probably right anyway.
254 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
256 2003-09-22 Havoc Pennington <hp@redhat.com>
258 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
260 2003-09-21 Seth Nickell <seth@gnome.org>
262 First checkin of the Python bindings.
265 * python/Makefile.am:
266 * python/dbus_bindings.pyx.in:
267 * python/dbus_h_wrapper.h:
269 Pieces for Pyrex to operate on, building a dbus_bindings.so
270 python module for low-level access to the DBus APIs.
274 High-level Python module for accessing DBus objects.
279 Build stuff for the python bindings.
283 Extra macro needed for finding the Python C header files.
285 2003-09-21 Havoc Pennington <hp@pobox.com>
287 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
288 implementing the proxy manager, didn't get very far.
290 * dbus/dbus-bus.c (dbus_bus_add_match): new
291 (dbus_bus_remove_match): new
293 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
294 path_name argument; adjust the other not-yet-implemented
295 gproxy constructors to be what I think they should be.
297 2003-09-21 Havoc Pennington <hp@pobox.com>
299 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
300 by default for message bus connections.
302 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
303 exit_on_disconnect flag is set and we process the disconnected
305 (dbus_connection_set_exit_on_disconnect): new function
307 2003-09-21 Havoc Pennington <hp@pobox.com>
309 Get matching rules mostly working in the bus; only actually
310 parsing the rule text remains. However, the client side of
311 "signal connections" hasn't been started, this patch is only the
314 * dbus/dispatch.c: fix for the matching rules changes
316 * bus/driver.c (bus_driver_handle_remove_match)
317 (bus_driver_handle_add_match): send an ack reply from these
320 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
321 arguments, reported by Seth Nickell
323 * bus/config-parser.c (append_rule_from_element): support
324 eavesdrop=true|false attribute on policies so match rules
325 can be prevented from snooping on the system bus.
327 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
328 and "destination" in attribute names; fix some docs bugs;
329 add eavesdrop=true|false attribute
331 * bus/driver.c (bus_driver_handle_add_match)
332 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
335 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
336 rid of broadcast service concept, signals are just always broadcast
338 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
339 mostly implement matching rules stuff (currently only exposed as signal
342 2003-09-21 Mark McLoughlin <mark@skynet.ie>
344 * doc/dbus-specification.sgml: Change the header field name
345 to be an enum and update the rest of the spec to reference
346 the fields using the conventinal name.
348 * dbus/dbus-protocol.h: update to reflect the spec.
350 * doc/TODO: add item to remove the 4 byte alignment requirement.
352 * dbus/dbus-message.c: Remove the code to generalise the
353 header/body length and serial number header fields as named
354 header fields so we can reference field names using the
356 (append_int_field), (append_uint_field), (append_string_field):
357 Append the field name as a byte rather than four chars.
358 (delete_int_or_uint_field), (delete_string_field): reflect the
359 fact that the field name and typecode now occupy 4 bytes instead
361 (decode_string_field), (decode_header_data): update to reflect
362 protocol changes and move the field specific encoding from
363 decode_string_field() back into decode_header_data().
365 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
366 Add utility to aid debugging.
368 * dbus/dbus-message-builder.c:
369 (append_string_field), (_dbus_message_data_load): Update to
370 reflect protocol changes; Change the FIELD_NAME directive
371 to HEADER_FIELD and allow it to take the field's conventional
372 name rather than the actual value.
374 * test/data/*/*.message: Update to use HEADER_FIELD instead
375 of FIELD_NAME; Always align the header on an 8 byte boundary
376 *before* updating the header length.
378 2003-09-15 Havoc Pennington <hp@pobox.com>
380 * dbus/dbus-pending-call.c: add the get/set object data
381 boilerplate as for DBusConnection, etc. Use generic object data
382 for the notify callback.
384 * glib/dbus-gparser.c (parse_node): parse child nodes
386 * tools/dbus-viewer.c: more hacking on the dbus-viewer
388 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
389 contain functions shared between the convenience lib and the
392 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
393 -export-symbols-regex to the GLib library
395 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
396 fix the locking in here, and add a default handler for
397 Introspect() that just returns sub-nodes.
399 2003-09-14 Havoc Pennington <hp@pobox.com>
401 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
402 rather than gfoo consistent
404 * glib/dbus-gproxy.h: delete for now, move contents to
405 dbus-glib.h, because the include files don't work right since we
406 aren't in the dbus/ subdir.
408 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
409 (dbus_gproxy_end_call): finish
410 (dbus_gproxy_begin_call): finish
412 * glib/dbus-gmain.c (dbus_set_g_error): new
414 * glib/dbus-gobject.c (handle_introspect): include information
415 about child nodes in the introspection
417 * dbus/dbus-connection.c (dbus_connection_list_registered): new
418 function to help in implementation of introspection
420 * dbus/dbus-object-tree.c
421 (_dbus_object_tree_list_registered_and_unlock): new function
423 2003-09-12 Havoc Pennington <hp@pobox.com>
425 * glib/dbus-gidl.h: add common base class for all the foo_info
428 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
431 * test/Makefile.am: try test srcdir -ef . in addition to test
432 srcdir = ., one of them should work (yeah lame)
434 * glib/Makefile.am: build the "idl" parser stuff as a convenience
437 * glib/dbus-gparser.h: make description_load routines return
438 NodeInfo* not Parser*
440 * Makefile.am (SUBDIRS): build test dir after all library dirs
442 * configure.in: add GTK+ detection
444 2003-09-07 Havoc Pennington <hp@pobox.com>
446 * Make Doxygen contented.
448 2003-09-07 Havoc Pennington <hp@pobox.com>
450 * doc/dbus-specification.sgml: more updates
452 2003-09-06 Havoc Pennington <hp@pobox.com>
454 * doc/dbus-specification.sgml: partial updates
456 * bus/dbus-daemon-1.1.in: fix the config file docs for the
457 zillionth time; hopefully I edited the right file this time.
459 * bus/config-parser.c (append_rule_from_element): support
460 send_type, send_path, receive_type, receive_path
462 * bus/policy.c: add message type and path to the list of things
463 that can be "firewalled"
465 2003-09-06 Havoc Pennington <hp@pobox.com>
467 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
468 (dbus_connection_register_object_path): make this not handle
469 messages to paths below the given path
471 2003-09-03 Havoc Pennington <hp@pobox.com>
473 * test/glib/Makefile.am: add this with random glib-linked test
476 * glib/Makefile.am: remove the random test programs from here,
477 leave only the unit tests
479 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
480 uscore/javacaps conversion, and fix
481 (get_object_property, set_object_property): change to .NET
482 convention for mapping props to methods, set_FooBar/get_FooBar,
483 since one language has such a convention we may as well copy it.
484 Plus real methods in either getFooBar or get_foo_bar style won't
485 collide with this convention.
487 2003-09-01 Havoc Pennington <hp@pobox.com>
489 * glib/dbus-gparser.c: implement
491 * glib/dbus-gobject.c: start implementing skeletons support
493 * configure.in: when disabling checks/assert, also define
494 G_DISABLE_ASSERT and G_DISABLE_CHECKS
496 2003-09-01 Havoc Pennington <hp@pobox.com>
498 * glib/Makefile.am: rearrange a bunch of files and get "make
499 check" framework set up
501 2003-08-31 Havoc Pennington <hp@pobox.com>
503 * fix build with --disable-tests
505 2003-08-30 Havoc Pennington <hp@pobox.com>
507 * dbus/dbus-connection.c: purge DBusMessageHandler
509 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
510 use callbacks everywhere
512 2003-08-30 Havoc Pennington <hp@pobox.com>
514 * test/data/valid-config-files/system.d/test.conf: change to
515 root for the user so warnings don't get printed
517 * dbus/dbus-message.c: add dbus_message_get_path,
518 dbus_message_set_path
520 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
521 dispatching to a path
523 * dbus/dbus-string.c (_dbus_string_validate_path): add
525 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
526 (_dbus_marshal_object_path): implement
528 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
529 to contain the path to the target object
530 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
531 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
533 2003-08-30 Havoc Pennington <hp@pobox.com>
535 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
537 2003-08-29 Havoc Pennington <hp@pobox.com>
539 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
541 (struct DBusObjectSubtree): shrink this
542 a lot, since we may have a lot of them
543 (_dbus_object_tree_free_all_unlocked): implement
544 (_dbus_object_tree_dispatch_and_unlock): implement
546 2003-08-29 Havoc Pennington <hp@pobox.com>
548 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
550 2003-08-28 Havoc Pennington <hp@pobox.com>
554 * dbus/dbus-connection.c: port to no ObjectID, create a
555 DBusObjectTree, rename ObjectTree to ObjectPath in public API
557 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
558 everything except UnregisterFunction and MessageFunction
560 * dbus/dbus-marshal.c: port away from DBusObjectID,
561 add DBUS_TYPE_OBJECT_PATH
563 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
564 dbus/dbus-objectid.[hc]: remove these, we are moving to
565 path-based object IDs
567 2003-08-25 Havoc Pennington <hp@pobox.com>
569 Just noticed that dbus_message_test is hosed, I wonder when I
570 broke that. I thought make check was passing earlier...
572 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
573 container tree, will replace most of dbus-object-registry
575 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
578 2003-08-19 Havoc Pennington <hp@pobox.com>
580 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
581 (dbus_message_is_error): fix this function
583 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
586 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
587 reflect clarified man page
588 (bus_client_policy_check_can_send): ditto
590 * bus/session.conf.in: fixup
592 * bus/system.conf.in: fixup
594 2003-08-18 Havoc Pennington <hp@redhat.com>
596 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
598 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
599 dumb bug created earlier (wrong order of args to
600 decode_header_data())
602 * tools/dbus-send.c: port
604 * tools/dbus-print-message.c (print_message): port
606 * test/data/*messages: port all messages over
608 * dbus/dbus-message-builder.c: support including
611 * bus/driver.c: port over
613 * bus/dispatch.c: port over to new stuff
615 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
616 rename disconnect signal to "Disconnected"
618 2003-08-17 Havoc Pennington <hp@pobox.com>
620 This doesn't compile yet, but syncing up so I can hack on it from
621 work. What are branches for if not broken code? ;-)
623 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
624 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
625 DBUS_HEADER_FIELD_ERROR_NAME
627 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
628 for the interface+member pairs
629 (string_hash): change to use g_str_hash algorithm
630 (find_direct_function, find_string_function): refactor these to
633 * dbus/dbus-message.c: port all of this over to support
634 interface/member fields instead of name field
636 * dbus/dbus-object-registry.c: port over
638 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
639 from _dbus_string_validate_name
641 * bus/dbus-daemon-1.1: change file format for the
642 <deny>/<allow> stuff to match new message naming scheme
644 * bus/policy.c: port over
646 * bus/config-parser.c: parse new format
648 2003-08-16 Havoc Pennington <hp@pobox.com>
650 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
653 * glib/dbus-gproxy.c: some hacking
655 2003-08-15 Havoc Pennington <hp@redhat.com>
657 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
659 * dbus/dbus-connection.c
660 (dbus_connection_send_with_reply_and_block): factor out internals;
661 change to convert any error replies to DBusError instead of
662 returning them as a message
664 2003-08-15 Havoc Pennington <hp@pobox.com>
666 * dbus/dbus-connection.c,
667 dbus/dbus-pending-call.c: Finish the pending call stuff
669 2003-08-14 Havoc Pennington <hp@redhat.com>
671 * dbus/dbus-pending-call.c: start on new object that will replace
672 DBusMessageHandler and ReplyHandlerData for tracking outstanding
675 * dbus/dbus-gproxy.c: start on proxy object used to communicate
676 with remote interfaces
678 * dbus/dbus-gidl.c: do the boring boilerplate in here
680 2003-08-12 Havoc Pennington <hp@pobox.com>
682 * bus/dispatch.c (bus_dispatch): make this return proper
683 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
685 * dbus/dbus-errors.c (dbus_set_error): use
686 _dbus_string_append_printf_valist
688 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
689 (_dbus_string_append_printf): new
691 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
694 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
695 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
696 message is unhandled.
698 2003-08-11 Havoc Pennington <hp@pobox.com>
700 * bus/test.c (client_disconnect_handler): change to return
701 HANDLED (would have been REMOVE_MESSAGE)
703 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
704 HANDLED/NOT_YET_HANDLED instead of
705 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
708 2003-08-10 Havoc Pennington <hp@pobox.com>
710 * tools/dbus-send.c (main): add --type argument, for now
711 supporting only method_call and signal types.
713 * tools/dbus-print-message.c: print message type
715 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
716 init connection->objects
718 * doc/dbus-specification.sgml: fix sgml
720 * bus/*.c: port over to object-instance API changes
722 * test/test-service.c: ditto
724 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
725 name, we will have to fix up the rest of the code to also handle
727 (dbus_message_new): generic message-creation call
728 (set_string_field): allow appending name field
730 2003-08-06 Havoc Pennington <hp@pobox.com>
732 * dbus/dbus-object-registry.c: implement signal connection
735 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
737 * dbus/dbus-internals.c (_dbus_memdup): new function
739 2003-08-02 Havoc Pennington <hp@pobox.com>
741 * dbus/dbus-message.c (dbus_message_get_no_reply)
742 (dbus_message_set_no_reply): add these and remove
743 set_is_error/get_is_error
745 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
746 remove the ERROR flag, since there's now an ERROR type
748 2003-08-01 Havoc Pennington <hp@pobox.com>
750 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
753 * dbus/dbus-message.c (dbus_message_get_type): new function
755 * doc/dbus-specification.sgml: add "type" byte to messages
757 2003-08-01 Havoc Pennington <hp@pobox.com>
759 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
760 a message type enum to distinguish kinds of message
761 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
762 that need not be replied to
764 2003-08-01 Havoc Pennington <hp@pobox.com>
766 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
767 (unpack_8_octets): fix no-64-bit-int bug
769 * dbus/dbus-object-registry.c (validate_id): validate the
770 connection ID bits, not just the instance ID.
772 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
773 the connection-global 33 bits of the object ID
775 * dbus/dbus-object-registry.c (info_from_entry): fill in
776 object ID in the new way
778 * dbus/dbus-objectid.h: rather than high/low bits, specifically
779 define server/client/instance bits.
781 2003-07-30 Havoc Pennington <hp@pobox.com>
783 * dbus/dbus-connection.c (dbus_connection_register_object): fix
786 2003-07-13 Havoc Pennington <hp@pobox.com>
788 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
789 fields to DBusObjectVTable and DBusObjectInfo
791 2003-07-12 Havoc Pennington <hp@pobox.com>
793 * dbus/dbus-object-registry.c: implement unit test,
794 fix bugs discovered in process
796 * dbus/dbus-connection.c: remove handler_table and
797 register_handler(), add DBusObjectRegistry usage
799 * dbus/dbus-objectid.c (dbus_object_id_is_null)
800 (dbus_object_id_set_null): new functions
802 2003-07-08 Havoc Pennington <hp@pobox.com>
804 * dbus/dbus-object.c: implement some of this
806 * dbus/dbus-object-registry.c
807 (_dbus_object_registry_add_and_unlock): fill in the object_id out
809 (_dbus_object_registry_new): handle OOM
811 2003-07-08 Havoc Pennington <hp@pobox.com>
813 * dbus/dbus-object.h: sketch out an API for registering objects
814 with a connection, that allows us to use as little as 24 bytes
815 per object and lets application code represent an object in
818 * dbus/dbus-object-registry.c: implement the hard bits of the
819 DBusConnection aspect of object API. Not yet wired up.
821 2003-07-06 Havoc Pennington <hp@pobox.com>
823 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
824 (_dbus_marshal_object_id): new
825 (_dbus_demarshal_object_id): new
826 (_dbus_marshal_get_arg_end_pos): support object ID type, and
827 consolidate identical switch cases. Don't conditionalize handling
828 of DBUS_TYPE_UINT64, need to handle the type always.
829 (_dbus_marshal_validate_arg): consolidate identical cases, and
830 handle DBUS_TYPE_OBJECT_ID
832 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
834 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
836 2003-09-28 Havoc Pennington <hp@pobox.com>
840 2003-09-28 Havoc Pennington <hp@pobox.com>
842 * doc/Makefile.am (dbus-specification.html): testing a funky hack
843 to work with Debian db2html
845 2003-09-28 Havoc Pennington <hp@pobox.com>
849 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
850 stylesheet-images for benefit of Debian
852 Change back to using filesystem-linked sockets for the system
853 bus, so only root can create the default system bus address.
855 * bus/system.conf.in: change to use
856 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
858 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
861 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
862 here, and AC_DEFINE DBUS_SYSTEM_PATH
864 2003-08-09 Anders Carlsson <andersca@codefactory.se>
870 2003-08-09 Anders Carlsson <andersca@codefactory.se>
872 * doc/dbus-specification.sgml:
873 Add activation reply values.
875 2003-08-05 Havoc Pennington <hp@redhat.com>
879 2003-08-05 Anders Carlsson <andersca@codefactory.se>
881 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
882 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
883 (add_watch), (remove_watch), (create_source):
884 Refcount fds, fixes some reentrancy issues.
886 2003-07-30 Havoc Pennington <hp@redhat.com>
888 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
889 bus address to be abstract if we have abstract sockets
893 2003-07-28 Havoc Pennington <hp@redhat.com>
895 * bus/messagebus.in: fix to avoid processname/servicename
896 confusion, from Michael Kearey
897 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
899 2003-07-23 Havoc Pennington <hp@pobox.com>
901 * dbus/dbus-message.c (dbus_message_iter_get_named):
902 fix from Andy Hanton to remove broken "+1"
904 2003-07-16 Havoc Pennington <hp@pobox.com>
906 * tools/dbus-launch.c (babysit): close stdout/stderr in the
907 babysitter process, as suggested by Thomas Leonard, so
908 an "eval `dbus-launch --exit-with-session`" will actually
911 2003-07-16 Havoc Pennington <hp@pobox.com>
913 * configure.in: print out EXPANDED_* variables in the summary at
914 the end; clean up the code that computes EXPANDED_ variables and
915 get the ones using exec_prefix right. Should make things work
916 when you build without --prefix
918 2003-06-29 Havoc Pennington <hp@pobox.com>
920 * mono/Test.cs (class Test): fire up a main loop and run it
922 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
923 done once, the app has to do it
925 2003-06-26 Havoc Pennington <hp@pobox.com>
927 * mono/Connection.cs: set up connection with the glib main loop
929 2003-07-01 Havoc Pennington <hp@redhat.com>
931 * doc/dbus-specification.sgml: clarify the format of a type code,
932 change suggested by Jim Blandy
934 2003-06-29 Miloslav Trmac <mitr@volny.cz>
937 * tools/Makefile.am: Don't assume srcdir == builddir.
939 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
941 (_dbus_memory_test): New function.
942 * dbus/dbus-test.h: Add _dbus_memory_test ().
943 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
945 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
947 (dbus_message_new): Remove obsolete @todo.
949 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
950 (_dbus_marshal_set_uint64): Fix comment.
952 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
953 hardcode FIELD_REPLY_SERIAL.
955 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
956 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
958 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
959 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
961 2003-06-24 Havoc Pennington <hp@pobox.com>
963 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
965 2003-06-23 Anders Carlsson <andersca@codefactory.se>
971 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
972 * gcj/org/.cvsignore:
973 * gcj/org/Makefile.am:
974 * gcj/org/freedesktop/.cvsignore:
975 * gcj/org/freedesktop/Makefile.am:
976 * gcj/org/freedesktop/dbus/.cvsignore:
977 * gcj/org/freedesktop/dbus/Makefile.am:
978 * gcj/org/freedesktop/dbus/Message.java: (Message),
980 * gcj/org/freedesktop/dbus/natMessage.cc:
981 Fix the build system.
983 2003-06-22 Havoc Pennington <hp@pobox.com>
985 * mono/Connection.cs: add more bindings
987 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
990 2003-06-22 Havoc Pennington <hp@pobox.com>
992 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
993 Start wrapping more stuff.
995 2003-06-22 Havoc Pennington <hp@pobox.com>
997 * mono/Message.cs: implement Message.Wrap() that ensures we only
998 have a single C# wrapper per DBusMessage, assuming it works which
1001 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
1002 (dbus_message_free_data_slot): new
1003 (dbus_message_set_data): new
1004 (dbus_message_get_data): new
1006 2003-06-22 Havoc Pennington <hp@pobox.com>
1008 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
1009 (_dbus_data_slot_allocator_alloc): rework these to keep a
1010 reference count on each slot and automatically manage a global
1011 slot ID variable passed in by address
1013 * bus/bus.c: convert to new dataslot API
1015 * dbus/dbus-bus.c: convert to new dataslot API
1017 * dbus/dbus-connection.c: convert to new dataslot API
1019 * dbus/dbus-server.c: convert to new dataslot API
1021 * glib/dbus-gmain.c: ditto
1025 * bus/connection.c: ditto
1027 2003-06-22 Anders Carlsson <andersca@codefactory.se>
1029 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
1030 after the gcj checks so that the correct configuration tags
1031 will be added to libtool.
1033 * dbus-glib-1.pc.in: No need to specify any includes since
1034 dbus-1.pc.in has those.
1036 2003-06-22 Havoc Pennington <hp@pobox.com>
1038 * mono/*, gcj/*, configure.in, Makefile.am:
1039 Check in makefiles and subdirs for mono and gcj bindings.
1040 Neither binding actually exists, just trying to get through
1041 all the build and other boring bits.
1043 2003-06-21 Philip Blundell <philb@gnu.org>
1045 * tools/dbus-monitor.1: Updated.
1047 * tools/dbus-send.1: Likewise.
1049 2003-06-20 Anders Carlsson <andersca@codefactory.se>
1051 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
1052 for hangup and error after checking read so we won't discard
1053 pending data if both hangup and read are set.
1055 2003-06-19 Philip Blundell <philb@gnu.org>
1057 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
1059 * tools/dbus-send.c: Accept both --system and --session.
1061 * tools/dbus-monitor.c: Same here.
1063 2003-06-19 Anders Carlsson <andersca@codefactory.se>
1065 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
1066 from C++ (Patch by Miloslav Trmac).
1068 2003-06-15 Joe Shaw <joe@assbarn.com>
1070 * configure.in: Check for socklen_t.
1072 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1074 * test/test-segfault.c: Add #include <sys/time.h>
1076 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1077 dbus-launch needs it.
1079 2003-06-09 Havoc Pennington <hp@redhat.com>
1081 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1082 SUN_LEN, it breaks abstract socket usage
1084 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1087 2003-06-04 Havoc Pennington <hp@pobox.com>
1089 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1090 using unix:abstract=/foo, and when listening in a tmpdir
1091 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1093 * dbus/dbus-transport.c (_dbus_transport_open): support
1096 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1097 support abstract sockets
1099 * dbus/dbus-transport-unix.c
1100 (_dbus_transport_new_for_domain_socket): support abstract sockets
1102 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1103 toggle as an argument, implement abstract namespace support
1104 (_dbus_listen_unix_socket): ditto
1106 * configure.in: add --enable-abstract-sockets and implement
1107 a configure check for autodetection of the right value.
1109 2003-06-01 Havoc Pennington <hp@pobox.com>
1111 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1112 in /tmp (though on Linux this will end up being useless,
1113 when we add abstract namespace support)
1115 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1118 2003-05-28 Colin Walters <walters@verbum.org>
1120 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1122 2003-05-18 Anders Carlsson <andersca@codefactory.se>
1124 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1126 2003-05-17 Colin Walters <walters@gnu.org>
1128 * tools/dbus-send.c: Don't exit with an error code if --help was
1129 passed. Default to using the session bus instead of the system
1132 * tools/dbus-launch.c: Ditto.
1134 * tools/dbus-monitor.c: Ditto.
1136 * tools/dbus-send.1: Update with new arguments.
1138 * tools/dbus-launch.c: Emit code to export variables. New
1139 arguments -s and -c to specify shell syntax, and a bit of code to
1140 autodetect syntax. Also, allow specifying a program to run.
1142 * tools/dbus-launch.1: Update with new arguments.
1144 * tools/dbus-send.1: Ditto.
1146 * tools/dbus-monitor.1: Ditto.
1148 2003-05-17 Havoc Pennington <hp@pobox.com>
1150 * bus/config-parser.c (merge_included): merge in policies from
1151 child configuration file.
1153 * bus/policy.c (bus_policy_merge): function to merge two policies
1156 2003-05-16 Havoc Pennington <hp@redhat.com>
1158 * dbus/dbus-connection.c: disable verbose lock spew
1160 * tools/dbus-send.c: add --print-reply command line option
1162 * tools/dbus-print-message.h (print_message): new util function
1163 shared by dbus-send and dbus-monitor
1165 * tools/dbus-monitor.c (handler_func): exit on disconnect
1167 * dbus/dbus-transport-unix.c (do_reading): if the transport is
1168 disconnected, don't try to use the read_watch
1170 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1171 so we can find this bug more easily
1173 2003-05-16 Havoc Pennington <hp@redhat.com>
1175 * bus/policy.c (free_rule_list_func): avoid a crash when passed
1176 NULL as DBusHashTable is annoyingly likely to do.
1178 2003-05-16 Colin Walters <walters@verbum.org>
1180 * tools/dbus-monitor.c: Add --session argument and usage()
1183 * tools/dbus-monitor.1: Update with new --session arg.
1185 * bus/Makefile.am (install-data-hook): Create
1186 $(libdir)/dbus-1.0/services so that the session bus is happy.
1188 2003-05-15 Havoc Pennington <hp@redhat.com>
1190 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
1191 on non-x86. ifdef's are evil.
1193 2003-05-15 Havoc Pennington <hp@redhat.com>
1195 * configure.in: 0.11
1199 * bus/Makefile.am (initddir): apparently we are supposed to put
1200 init scripts in /etc/rc.d/init.d not /etc/init.d
1202 * bus/Makefile.am: remove the "you must --enable-tests to make
1203 check" as it broke distcheck
1205 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
1207 2003-05-13 James Willcox <jwillcox@gnome.org>
1210 * bus/activation.c: (bus_activation_service_created),
1211 (bus_activation_activate_service):
1212 * bus/driver.c: (bus_driver_send_service_deleted),
1213 (bus_driver_send_service_created), (bus_driver_send_service_lost),
1214 (bus_driver_send_service_acquired),
1215 (bus_driver_send_welcome_message),
1216 (bus_driver_handle_list_services):
1217 * bus/session.conf.in:
1218 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
1219 (dbus_bus_service_exists), (dbus_bus_activate_service):
1222 Add some convenience API which lets you activate a service, and did a
1223 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
1224 and dbus_message_get_args()
1226 2003-05-11 Havoc Pennington <hp@pobox.com>
1228 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
1229 calling _dbus_marshal_validate_arg() for every byte in a byte
1232 * dbus/dbus-message-handler.c: use atomic reference counting to
1233 reduce number of locks slightly; the global lock in here sucks
1235 * dbus/dbus-connection.c
1236 (_dbus_connection_update_dispatch_status_and_unlock): variant of
1237 update_dispatch_status that can be called with lock held; then use
1238 in a couple places to reduce locking/unlocking
1239 (dbus_connection_send): hold the lock over the whole function
1240 instead of acquiring it twice.
1242 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
1244 * bus/connection.c (bus_connections_setup_connection): fix access
1245 to already-freed memory.
1247 * dbus/dbus-connection.c: keep a little cache of linked list
1248 nodes, to avoid using the global linked list alloc lock in the
1249 normal send-message case. Instead we just use the connection lock
1250 that we already have to take.
1252 * dbus/dbus-list.c (_dbus_list_find_last): new function
1254 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
1255 change to use a struct for the atomic type; fix docs,
1256 they return value before increment, not after increment.
1258 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
1259 (_dbus_string_append_8_aligned): new functions to try to
1260 microoptimize this operation.
1261 (reallocate_for_length): break this out of set_length(), to
1262 improve profile info, and also so we can consider inlining the
1265 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
1266 strings with some preallocation, cuts down on our calls to realloc
1267 a fair bit. Though if we can get the "move entire string to empty
1268 string" optimization below to kick in here, it would be better.
1270 * dbus/dbus-string.c (_dbus_string_move): just call
1271 _dbus_string_move_len
1272 (_dbus_string_move_len): add a special case for moving
1273 an entire string into an empty string; we can just
1274 swap the string data instead of doing any reallocs.
1275 (_dbus_string_init_preallocated): new function
1277 2003-05-11 Havoc Pennington <hp@pobox.com>
1279 Write a "test-profile" that does echo client-server with threads;
1280 profile reveals lock contention, memcpy/realloc of buffers, and
1281 UTF-8 validation as hot spots. 20% of lock contention eliminated
1282 with dbus_atomic_inc/dec implementation on x86. Much remaining
1283 contention is global mempool locks for GList and DBusList.
1285 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
1288 * dbus/dbus-connection.c (struct DBusConnection): use
1289 dbus_atomic_t for the reference count
1291 * dbus/dbus-message.c (struct DBusMessage): declare
1292 dbus_atomic_t values as volatile
1294 * configure.in: code to detect ability to use atomic integer
1295 operations in assembly, from GLib patch
1297 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
1298 time, tired of it being wrong in threads and forked processes
1300 * glib/test-profile.c: a little program to bounce messages back
1301 and forth between threads and eat CPU
1303 * dbus/dbus-connection.c: add debug spew macros for debugging
1304 thread locks; include config.h at top; fix deadlock in
1305 dbus_connection_flush()
1307 2003-05-08 Havoc Pennington <hp@pobox.com>
1309 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
1310 data from getting written, and there wasn't a good reason to
1313 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
1314 dbus_verbose lines in test coverage
1315 (main): add list of functions sorted by # of untested blocks
1316 to the coverage report
1318 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
1320 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
1322 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
1323 extend test coverage
1325 * test/data/auth/cancel.auth-script: test canceling an
1328 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
1329 aren't used. in CVS history if we end up needing them.
1331 2003-05-04 Havoc Pennington <hp@pobox.com>
1333 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
1336 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
1337 function, which assumed length was in # of strings, not bytes
1339 * dbus/dbus-message.c (_dbus_message_test): add tests for some
1342 * dbus/dbus-connection.c
1343 (_dbus_connection_queue_received_message): disable function for
1344 now, we are only using it in test mode
1346 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1347 remove a mistaken FIXME
1349 2003-05-04 Havoc Pennington <hp@pobox.com>
1351 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
1352 unlock mutex on successful return, patch from Anders Gustafsson
1354 2003-05-04 Havoc Pennington <hp@pobox.com>
1356 * dbus-glib-1.pc.in (Requires): fix dependencies, from
1359 2003-05-04 Havoc Pennington <hp@pobox.com>
1361 * tools/dbus-launch.c: implement
1363 * bus/main.c (main), bus/bus.c (bus_context_new):
1364 implement --print-pid and --fork
1366 2003-05-03 Havoc Pennington <hp@redhat.com>
1368 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
1369 the address had no value, and add to test suite. Fix and
1370 regression test from Miloslav Trmac
1372 2003-05-03 Havoc Pennington <hp@pobox.com>
1374 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
1375 watch is invalid when handled
1377 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
1378 dbus-launch utility to launch the bus from a shell script. Didn't
1379 actually implement dbus-launch yet, it's just a placeholder still.
1381 2003-05-03 Havoc Pennington <hp@pobox.com>
1383 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
1384 daemon; also documents daemon config file, so replaces
1385 doc/config-file.txt. Corrected some stuff from config-file.txt in
1386 the process of moving it.
1388 2003-05-03 Havoc Pennington <hp@pobox.com>
1390 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
1393 2003-05-03 Colin Walters <walters@verbum.org>
1395 * dbus/dbus-sysdeps.c (fill_user_info): Test against
1396 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
1398 * Makefile.am: Update to use new .pc versioning scheme.
1400 2003-05-02 Havoc Pennington <hp@redhat.com>
1402 * bus/system.conf.in: allow send/receive to/from message bus
1405 2003-04-30 Havoc Pennington <hp@redhat.com>
1407 * configure.in: print a note when building with unit tests and
1410 2003-04-30 Havoc Pennington <hp@redhat.com>
1412 * Makefile.am: add a check-local that complains if you didn't
1413 configure with --enable-tests
1415 2003-04-29 Havoc Pennington <hp@redhat.com>
1417 * glib/dbus-gmain.c: docs cleanups
1419 * dbus/dbus-types.h: add docs on int64 types
1421 * dbus/dbus-memory.c: fix docs to avoid putting private API in
1422 public API docs section
1424 2003-04-29 Havoc Pennington <hp@redhat.com>
1426 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1427 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1428 parallel install API version, not with the D-BUS package version.
1430 * HACKING: move some of README over here
1432 * README: updates, and document API/ABI policy
1434 * configure.in: reindentation
1436 2003-04-29 Havoc Pennington <hp@redhat.com>
1438 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1439 to use this library" to be sure people have the right
1442 2003-04-28 Havoc Pennington <hp@redhat.com>
1444 * configure.in: add --enable-docs which by default is auto yes if
1445 doxygen and db2html found, no otherwise; but can be forced on/off
1447 * doc/Makefile.am: conditionalize whether to build docs on
1450 2003-04-28 Havoc Pennington <hp@redhat.com>
1452 * configure.in: 0.10
1456 * bus/system.conf.in: add <includedir>system.d</includedir>
1458 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1459 username was provided but not uid
1461 * bus/config-parser.c (struct BusConfigParser): keep track of
1462 whether the parser is toplevel or was included; change some
1463 of the error handling if it's included.
1465 2003-04-27 Havoc Pennington <hp@pobox.com>
1469 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1470 report correct status if we finish processing authentication
1471 inside this function.
1473 * bus/activation.c (try_send_activation_failure): use
1474 bus_transaction_send_error_reply
1476 * bus/connection.c (bus_connection_get_groups): return an error
1477 explaining the problem
1479 * bus/bus.c (bus_context_check_security_policy): implement
1480 restriction here that inactive connections can only send the
1481 hello message. Also, allow bus driver to send anything to
1484 * bus/connection.c (bus_connection_complete): create the
1485 BusClientPolicy here instead of on-demand.
1486 (bus_connection_get_policy): don't return an error
1488 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1489 sender field in message being replied to
1491 * bus/bus.c (bus_context_check_security_policy): fix silly typo
1492 causing it to return FALSE always
1494 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1495 we checked sender rather than destination
1497 2003-04-25 Havoc Pennington <hp@redhat.com>
1499 test suite is slightly hosed at the moment, will fix soon
1501 * bus/connection.c (bus_connections_expire_incomplete): fix to
1502 properly disable the timeout when required
1503 (bus_connection_set_name): check whether we can remove incomplete
1504 connections timeout after we complete each connection.
1506 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1507 probably still broken.
1509 * bus/services.c (bus_registry_acquire_service): implement max
1510 number of services owned, and honor allow/deny rules on which
1511 services a connection can own.
1513 * bus/connection.c (bus_connection_get_policy): report errors here
1515 * bus/activation.c: implement limit on number of pending
1518 2003-04-25 Havoc Pennington <hp@redhat.com>
1520 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1521 where we used >= 0 instead of != DBUS_UID_UNSET.
1523 2003-04-25 Havoc Pennington <hp@redhat.com>
1525 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
1526 were toggled without add/remove, fix from Anders Gustafsson
1528 2003-04-24 Havoc Pennington <hp@redhat.com>
1530 * test/data/valid-config-files/basic.conf: add <limit> tags to
1533 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
1534 <limit> tag in configuration file.
1536 2003-04-24 Havoc Pennington <hp@redhat.com>
1538 * bus/dispatch.c: somehow missed some name_is
1540 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
1541 (_dbus_timeout_set_interval): new
1543 * bus/connection.c (bus_connections_setup_connection): record time
1544 when each connection is first set up, and expire them after the
1545 auth timeout passes.
1547 2003-04-24 Havoc Pennington <hp@redhat.com>
1549 * dbus/dbus-message.c (dbus_message_name_is): rename
1550 (dbus_message_service_is): rename
1551 (dbus_message_sender_is): rename
1552 (dbus_message_get_service): rename
1554 2003-04-24 Havoc Pennington <hp@redhat.com>
1556 * configure.in: add --enable-checks
1558 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
1560 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
1561 to use thread locks.
1562 (_dbus_connection_handler_destroyed_locked): move some private
1563 functions into proper docs group
1565 * dbus/dbus-internals.h: add _dbus_return_if_fail,
1566 _dbus_return_val_if_fail
1568 Throughout: use dbus_return_if_fail
1570 2003-04-23 James Willcox <jwillcox@gnome.org>
1573 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
1574 (dbus_connection_setup_with_g_main),
1575 (dbus_server_setup_with_g_main):
1576 * glib/test-dbus-glib.c: (main):
1577 * glib/test-thread-client.c: (main):
1578 * glib/test-thread-server.c: (new_connection_callback), (main):
1579 * tools/dbus-monitor.c: (main):
1581 Added a GMainContext argument to dbus_connection_setup_with_g_main()
1582 and dbus_server_setup_with_g_main().
1584 2003-04-20 Havoc Pennington <hp@pobox.com>
1586 * doc/dbus-specification.sgml: document the restrictions on
1587 message and service names
1589 2003-04-22 Havoc Pennington <hp@redhat.com>
1591 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
1592 support, and do some code cleanups to share more code and
1593 speed up array marshal/demarshal.
1595 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
1597 * configure.in: generate dbus-arch-deps.h
1599 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
1602 2003-04-22 Havoc Pennington <hp@redhat.com>
1604 * test/data/valid-messages/opposite-endian.message: fix test
1605 to use proper type for rply field
1607 * test/data/invalid-messages: add tests for below validation
1609 * dbus/dbus-message.c (decode_header_data): validate field types,
1610 and validate that named fields are valid names
1611 (decode_name_field): consider messages in the
1612 org.freedesktop.Local. namespace to be invalid.
1614 * dbus/dbus-string.c (_dbus_string_validate_name): new
1616 2003-04-19 Havoc Pennington <hp@pobox.com>
1618 * bus/driver.c (bus_driver_handle_hello): check limits and
1619 return an error if they are exceeded.
1621 * bus/connection.c: maintain separate lists of active and inactive
1622 connections, and a count of each. Maintain count of completed
1623 connections per user. Implement code to check connection limits.
1625 * dbus/dbus-list.c (_dbus_list_unlink): export
1627 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
1628 number of bytes in the message queue for a connection
1630 2003-04-18 Havoc Pennington <hp@pobox.com>
1632 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
1634 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
1637 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
1638 on realloc be sure to update the pointer in the keyring
1640 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
1641 offset to avoid writing to unallocated memory
1643 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
1644 try the next mechanism, so we properly handle OOM
1646 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
1648 (_dbus_keyring_new): fix OOM bug
1649 (_dbus_keyring_new_homedir): always set error; impose a maximum
1650 number of keys we'll load from the file, mostly to speed up the
1651 test suite and make its OOM checks more useful, but also for
1654 * dbus/dbus-auth.c (process_error_server): reject authentication
1655 if we get an error from the client
1656 (process_cancel): on cancel, send REJECTED, per the spec
1657 (process_error_client): send CANCEL if we get an error from the
1660 2003-04-18 Havoc Pennington <hp@pobox.com>
1662 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
1665 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
1668 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
1669 about DBUS_TEST_HOMEDIR once
1671 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
1674 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
1675 config file so we test the right thing
1677 Throughout: assorted docs improvements
1679 2003-04-18 Havoc Pennington <hp@pobox.com>
1681 * glib/dbus-gmain.c: adapt to watch changes
1683 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
1685 * dbus/dbus-server.h: remove dbus_server_handle_watch
1687 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
1689 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
1690 like DBusTimeout, so we don't need dbus_connection_handle_watch
1693 2003-04-17 Havoc Pennington <hp@redhat.com>
1695 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
1696 database usage so it all goes via the DBusUserDatabase cache.
1698 2003-04-17 Havoc Pennington <hp@redhat.com>
1700 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
1701 there was an OOM watch we skipped, we always return TRUE so we
1702 iterate again to have a look at it again. Fixes test suite hang.
1703 Code rearrangement also lets us lose some memset and only iterate
1704 over callbacks once.
1706 * bus/driver.c (bus_driver_handle_message): sense of test for
1709 2003-04-16 Havoc Pennington <hp@pobox.com>
1711 * doc/dbus-specification.sgml: make spec say serials are unsigned
1713 * dbus/dbus-message.h: change message serials to unsigned
1715 * dbus/dbus-connection.c: adapt to message serials being unsigned
1717 2003-04-15 Havoc Pennington <hp@pobox.com>
1719 * bus/bus.c: create and keep around a shared DBusUserDatabase
1722 * bus/connection.c (bus_connection_get_groups): don't cache
1723 groups for user in the connection object, since user database
1724 object now does that.
1726 2003-04-16 Havoc Pennington <hp@redhat.com>
1728 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
1729 list of size counters
1730 (_dbus_message_loader_putback_message_link): put back a popped link
1732 * dbus/dbus-connection.c
1733 (dbus_connection_set_max_live_messages_size): rename
1735 (dbus_connection_get_outgoing_size): get size of outgoing
1737 (_dbus_connection_set_connection_counter): remove this cruft
1739 2003-04-14 Havoc Pennington <hp@redhat.com>
1741 * dbus/dbus-userdb.c: user database abstraction, mostly to get
1742 caching, but at some point we might want to be able to use a
1745 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
1746 SHA1 conf file to test the sha1 auth mechanism, since the regular
1747 test always uses EXTERNAL when available.
1750 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
1751 add conf file that requires use of sha1 auth
1753 2003-04-13 Havoc Pennington <hp@pobox.com>
1755 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
1756 from Philip Blundell to send messages and monitor them.
1758 2003-04-13 Havoc Pennington <hp@pobox.com>
1760 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
1763 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
1766 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1767 fix to only recover unused bytes if we're already authenticated
1768 (_dbus_transport_get_is_authenticated): fix to still mark us
1769 authenticated if there are unused bytes.
1771 * bus/dispatch.c: implement security policy checking
1773 * bus/connection.c (bus_transaction_send_from_driver): new
1775 * bus/bus.c (bus_context_check_security_policy): new
1777 * bus/dispatch.c (send_service_nonexistent_error): delete this,
1778 now we just set the DBusError and it gets converted to an error
1781 * bus/connection.c (allow_user_function): enable code using actual
1782 data from the config file
1784 * bus/policy.c (list_allows_user): handle wildcard rules for
1785 user/group connection perms
1787 2003-04-13 Havoc Pennington <hp@pobox.com>
1789 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
1791 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
1793 * bus/policy.c (bus_policy_append_mandatory_rule)
1794 (bus_policy_append_default_rule, bus_policy_append_user_rule)
1795 (bus_policy_append_group_rule): new functions
1797 2003-04-12 Havoc Pennington <hp@pobox.com>
1799 * bus/config-parser.c (bus_config_parser_new): fix a memleak
1801 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
1802 the pid/gid/uid, just for paranoia.
1804 * test/break-loader.c (randomly_do_n_things): find a byte
1805 containing a type code, and randomly change it to a different
1808 2003-04-12 Havoc Pennington <hp@pobox.com>
1810 * bus/policy.h: change BusPolicy to be the thing from the config
1811 file, and rename old BusPolicy to BusClientPolicy
1813 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
1814 match change in how policy works
1816 * dbus/dbus-internals.h: mark assert_not_reached as
1817 __attribute((noreturn))__
1819 2003-04-11 Havoc Pennington <hp@redhat.com>
1821 * doc/dbus-specification.sgml: fix a spot with the wrong name for
1822 the broadcast service. Use boolean return for ServiceExists.
1824 2003-04-11 Havoc Pennington <hp@redhat.com>
1826 * configure.in: add another directory to look for qt in.
1828 2003-04-11 Havoc Pennington <hp@redhat.com>
1830 * AUTHORS: add Colin Walters
1832 2003-04-11 Havoc Pennington <hp@redhat.com>
1838 2003-04-11 Havoc Pennington <hp@redhat.com>
1840 * bus/messagebus.in: remove pid file when stopping the
1841 message bus, since the bus won't have privileges to remove it
1844 2003-04-11 Havoc Pennington <hp@redhat.com>
1846 * bus/bus.c (bus_context_new): move credentials change after
1849 2003-04-11 Havoc Pennington <hp@pobox.com>
1851 * test/decode-gcov.c: add "below average functions" to the
1852 coverage report, and change how some of the code works.
1854 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
1855 not in the coverage stats.
1857 * test/test-service.c (main): use _dbus_verbose not fprintf in a
1858 couple places so running the test suite doesn't result in megaspam.
1860 2003-04-11 Havoc Pennington <hp@pobox.com>
1862 * bus/dispatch.c (check_existent_service_activation): accept a no
1863 memory error in a place we didn't before
1865 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
1866 in case the first one failed," since the test suite is less
1869 2003-04-10 Havoc Pennington <hp@pobox.com>
1871 * bus/dispatch.c (check_segfault_service_activation): add test
1872 for launching an executable that just crashes.
1874 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
1875 don't leave a million cores. We'll see how portable this is.
1877 2003-04-10 Havoc Pennington <hp@pobox.com>
1879 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
1880 the possible parent failures before we fork, so that we don't
1881 fail to create a babysitter after creating the child.
1883 * bus/activation.c (bus_activation_activate_service): kill child
1884 if we don't successfully complete the activation.
1886 2003-04-10 Havoc Pennington <hp@redhat.com>
1888 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
1889 the connection if it's disconnected
1891 * bus/activation.c (bus_activation_service_created): use new
1892 transaction features to roll back removal of pending activation if
1893 we don't successfully create the service after all. Don't remove
1894 pending activation if the function fails.
1896 * dbus/dbus-list.c (_dbus_list_insert_before_link)
1897 (_dbus_list_insert_after_link): new code to facilitate
1900 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
1901 new functionality, so we can preallocate the ability to insert
1904 * bus/connection.c (bus_transaction_add_cancel_hook): new function
1905 allowing us to put custom hooks in a transaction to be used for
1906 cancelling said transaction
1908 * doc/dbus-specification.sgml: add some discussion of secondary
1909 service owners, and disallow zero-length service names
1911 * bus/services.c (bus_registry_acquire_service): new function,
1912 splits out part of bus_driver_handle_acquire_service() and fixes
1913 a bug where we didn't remove the service doing the acquiring
1914 from the secondary queue if we failed to remove the current owner
1915 from the front of the queue.
1917 2003-04-10 Alexander Larsson <alexl@redhat.com>
1919 * doc/dbus-specification.sgml:
1920 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1922 2003-04-10 Alexander Larsson <alexl@redhat.com>
1927 Added files to cvsignore
1929 * dbus/dbus-message.h:
1930 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1931 Make get_named() take two out argument and return a boolean.
1932 (dbus_message_iter_get_args_valist):
1933 Update usage of get_named().
1934 (dbus_message_iter_append_byte):
1936 (dbus_message_iter_append_named)
1938 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1941 2003-04-10 Alexander Larsson <alexl@redhat.com>
1943 * dbus/dbus-marshal.[ch]:
1944 Add array_type_pos argument to _dbus_marshal_validate_arg.
1945 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1947 * dbus/dbus-message.[ch]:
1948 Multi-dimensional arrays have full type specification in the
1949 outermost array. Iter code re-arranged to handle this.
1950 Added some more iter tests.
1952 * doc/dbus-specification.sgml:
1955 Update new array encoding description.
1956 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1958 * test/data/invalid-messages/array-with-mixed-types.message:
1959 * test/data/valid-messages/array-of-array-of-uint32.message:
1960 Change to the new array format.
1962 * test/data/invalid-messages/too-short-dict.message:
1965 * test/data/valid-messages/recursive-types.message:
1966 Fix up and extend test.
1968 2003-04-10 Havoc Pennington <hp@pobox.com>
1970 * bus/dispatch.c: lots of fixes
1972 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1973 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1974 that was crack, broke the test service.
1976 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1977 handling to avoid piling up errors if we get a failure on the
1980 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1981 pid in assertion failures.
1983 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1984 to some fixed size of file descriptor array. Don't return TRUE
1985 anytime a timeout exists, that led to lots of busy loop silliness
1988 2003-04-09 Havoc Pennington <hp@redhat.com>
1990 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1991 I'd checked this in earlier but hadn't.
1993 2003-04-09 Havoc Pennington <hp@redhat.com>
1995 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1996 the activation test (man this is getting old!)
1998 2003-04-09 Havoc Pennington <hp@redhat.com>
2000 * test/test-utils.c: use dispatch status function to fix this up
2002 * bus/connection.c (connection_watch_callback): don't dispatch
2004 (connection_timeout_callback): don't dispatch from here
2005 (bus_connections_setup_connection): set the dispatch status function
2006 (bus_connection_disconnected): unset it
2008 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
2009 used to add a connection to be dispatched
2010 (_dbus_loop_iterate): do the dispatching at the end of each
2013 * dbus/dbus-connection.c
2014 (dbus_connection_set_dispatch_status_function): new function
2015 allowing us to fix up main loop usage
2016 (_dbus_connection_last_unref): free all the various function
2018 (dbus_connection_dispatch): call the DispatchStatusFunction
2019 whenever this function returns
2020 (dbus_connection_handle_watch): call DispatchStatusFunction
2021 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
2022 (reply_handler_timeout): call DispatchStatusFunction
2023 (dbus_connection_flush): call DispatchStatusFunction
2025 2003-04-09 Havoc Pennington <hp@redhat.com>
2027 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
2030 * bus/dispatch.c (check_service_activated): fix bug in test
2032 * dbus/dbus-mainloop.c (check_timeout): fix this up
2034 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
2035 verbose output so we can sort out output from different processes,
2036 e.g. in the activation case.
2038 2003-04-08 Colin Walters <walters@gnu.org>
2040 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
2042 (bus_context_new): Set it.
2043 (bus_context_unref): Use it to delete the pid file.
2045 2003-04-08 Havoc Pennington <hp@redhat.com>
2047 * test/data/invalid-messages/array-with-mixed-types.message:
2048 regression test that fails for the moment
2050 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
2051 tests for convenience
2053 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
2054 array of nil, it broke things.
2056 * test/data/invalid-messages/array-of-nil.message: regression test
2058 * test/data/valid-messages/array-of-array-of-uint32.message:
2059 happened to write this so added it to suite
2061 2003-04-08 Havoc Pennington <hp@redhat.com>
2063 * bus/driver.c (bus_driver_handle_acquire_service): init
2064 retval/reply before checking name
2066 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
2067 recursion depth argument
2069 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
2070 in the public struct for future extension
2072 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2075 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2078 * doc/dbus-specification.sgml: fix typo
2080 2003-04-08 Alexander Larsson <alexl@redhat.com>
2082 Implemented recursive types, named types and new-style iters
2085 * glib/test-thread-client.c: (thread_func):
2086 * glib/test-thread-server.c: (handle_test_message):
2087 * test/test-service.c: (handle_echo):
2096 * dbus/dbus-internals.c: (_dbus_type_to_string):
2097 Update for new types.
2099 * dbus/dbus-marshal.[ch]:
2100 Implement recursive types and the new marshalling format.
2101 Remove hardcoded dict marshalling.
2102 Marshal named types.
2104 * dbus/dbus-message-builder.c:
2106 Remove references to old types
2108 * dbus/dbus-message.[ch]:
2109 New non-refcounted iter API that supports recursive iters.
2110 Use iters for appending, including support for recursive
2112 Add byte and named type support.
2113 Update everything to new marshalling formats.
2114 Add tests for new API.
2116 * dbus/dbus-protocol.h:
2117 Remove old array types.
2118 Add types: BYTE, ARRAY, DICT, NAMED
2120 * dbus/dbus-string.c:
2121 * dbus/dbus-sysdeps.c:
2122 Make parse_double locale safe.
2124 * dbus/dbus-test-main.c:
2130 * doc/dbus-specification.sgml:
2133 * test/data/incomplete-messages/missing-body.message:
2134 * test/data/invalid-messages/bad-boolean.message:
2135 * test/data/invalid-messages/bad-boolean-array.message:
2136 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2137 * test/data/invalid-messages/boolean-has-no-value.message-raw:
2138 * test/data/invalid-messages/too-short-dict.message:
2139 * test/data/valid-messages/dict-simple.message:
2140 * test/data/valid-messages/dict.message:
2141 * test/data/valid-messages/emptiness.message:
2142 * test/data/valid-messages/lots-of-arguments.message:
2143 * test/data/valid-messages/no-padding.message:
2144 * test/data/valid-messages/recursive-types.message:
2145 Add missing NAME fields
2146 Fix up dicts & arrays
2148 * test/data/invalid-messages/dict-with-nil-value.message:
2149 Removed, this is not invalid anymore.
2151 * test/data/valid-messages/recursive-types.message:
2152 Add new test for deeply recursive types.
2154 2003-04-07 Havoc Pennington <hp@pobox.com>
2156 * bus/driver.c (bus_driver_handle_acquire_service): return an
2157 error if you try to acquire a service that starts with ':'
2159 2003-04-07 Havoc Pennington <hp@redhat.com>
2161 * doc/dbus-specification.sgml: require that base service names
2162 start with ':' and that the base service is created/deleted
2163 as first and last things a connection does on the bus
2165 * bus/dispatch.c (check_existent_service_activation): lots more
2166 work on the activation test; it doesn't fully pass yet...
2168 * test/test-service.c (main): fix so we don't memleak the
2169 connection to the message bus
2170 (filter_func): accept a message asking us to exit
2172 2003-04-06 Havoc Pennington <hp@pobox.com>
2174 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2177 * configure.in: fixes to Qt detection from Colin Walters
2179 * doc/Makefile.am: Only remove generated docbook dirs if they
2180 exist, from Colin Walters
2182 * dbus/dbus-bus.c: change how we set well-known connections to
2183 NULL, so that it works if a single connection is stored in
2184 two well-known array slots.
2186 * test/Makefile.am: remove a lot of stuff that isn't immediately
2187 useful, it's in CVS history if we want it.
2189 * test/test-service.c: use dbus-mainloop instead of that
2192 2003-04-06 Havoc Pennington <hp@pobox.com>
2194 * dbus/Makefile.am: split lists of sources into stuff that goes in
2195 the library, util functions that go in the lib and are also used
2196 elsewhere, and util functions that are used in tests/daemon but
2197 don't go in the lib.
2199 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
2200 here so it can be used in test binaries also
2202 2003-04-06 Havoc Pennington <hp@pobox.com>
2204 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
2205 here in the parent process, so we can return an error if it
2206 fails. Also, move some of the code into the child so the parent
2207 is less hosed if we fail midway through.
2209 * bus/bus.c (bus_context_new): move pidfile detection further up
2210 in the function, before we start overwriting sockets and such.
2212 * bus/messagebus.in: adjust this a bit, not sure if it will work.
2214 * configure.in: add --with-system-pid-file and --with-system-socket
2216 2003-04-06 Colin Walters <walters@verbum.org>
2218 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
2220 * bus/system.conf.in: Declare a pidfile.
2222 * bus/bus.c (bus_context_new): Test for an existing pid file, and
2223 create one (if appropriate).
2225 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
2226 (struct BusConfigParser) [pidfile]: New.
2227 (element_type_to_name, merge_included, start_busconfig_child)
2228 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
2229 (bus_config_parser_unref): Free it.
2230 (bus_config_parser_get_pidfile): New function.
2232 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
2234 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
2236 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
2238 * dbus/dbus-sysdeps.h: Prototype it.
2240 2003-04-06 Havoc Pennington <hp@pobox.com>
2242 * bus/bus.c (bus_context_new): print the address in here, rather
2243 than in main(), because we need to do it before forking the daemon
2245 * bus/dispatch.c (send_service_nonexistent_error): set the sender
2246 on the service nonexistent error
2248 * bus/driver.c (bus_driver_handle_acquire_service): set the
2249 sender on the AcquireService reply
2251 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
2252 server also listen on a UNIX socket so services can connect to it.
2254 2003-04-06 Havoc Pennington <hp@pobox.com>
2256 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
2257 so it detects deadlocks and also we actually init threads when
2260 2003-04-06 Havoc Pennington <hp@pobox.com>
2262 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2263 save the domain socket name, and unlink it when we disconnect the
2264 server. Means that at least when we exit normally, we won't leave
2265 a bunch of junk in /tmp
2267 * dbus/dbus-transport-unix.c
2268 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
2269 memory management). (I was making a real change here but then
2272 2003-04-06 Havoc Pennington <hp@pobox.com>
2274 * bus/bus.c (bus_context_new): fix wrong handling of
2275 server_data_slot_unref() in the error case.
2277 * dbus/dbus-internals.h (_dbus_assert): change so it passes
2278 "(condition) != 0" to _dbus_real_assert so that
2279 "_dbus_assert (pointer)" doesn't cause a warning
2281 * bus/main.c (main): accept --print-address option to print out
2282 the message bus address
2284 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
2286 * dbus/dbus-transport.c (_dbus_transport_open): special error for
2287 "tmpdir" option to unix: address on client side
2289 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
2292 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
2293 we can use to create sockets in the test suite.
2295 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
2296 cleanly. To be used for testing.
2298 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
2300 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
2302 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2303 handle trying to call this when there's no servers active
2305 2003-04-05 Havoc Pennington <hp@pobox.com>
2311 2003-04-05 Havoc Pennington <hp@pobox.com>
2313 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
2314 crash on startup. Need to get "try starting the daemon"
2315 in the test suite I guess. ;-)
2317 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
2318 tracked the number of open connections; it's better done in
2319 application-specific code as you want it to span all servers etc.
2321 2003-04-05 Havoc Pennington <hp@pobox.com>
2323 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
2324 patch from Colin Walters
2326 2003-04-05 Havoc Pennington <hp@pobox.com>
2328 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
2329 reality; in fact multiple mechanisms are allowed.
2331 * dbus/dbus-internals.c (_dbus_real_assert)
2332 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
2333 _dbus_assert_not_reached() into functions, so that they don't show
2334 up in basic block counts for test coverage, and don't use up as
2335 much disk space. Does mean slower execution speed though, so
2336 assumes --disable-asserts is the normal production case.
2338 2003-04-05 Havoc Pennington <hp@pobox.com>
2340 * test/Makefile.am (dist-hook): also dist *.in files
2346 2003-04-05 Havoc Pennington <hp@pobox.com>
2348 * dbus/dbus-string.c: docs warning
2350 * dbus/dbus-spawn.c: missing docs
2352 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2354 2003-04-05 Havoc Pennington <hp@pobox.com>
2356 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
2359 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
2360 to -1 once we've reaped the babysitter
2361 (_dbus_babysitter_handle_watch): do as much work as we can, not
2364 * bus/activation.c: add code using DBusBabysitter so that we
2365 handle it when a service fails to start up properly.
2366 (bus_activation_service_created): don't remove the activation
2367 entries as we go, just let them get removed when we free the pending
2368 activation. Unref reply messages after sending them.
2370 2003-04-05 Havoc Pennington <hp@pobox.com>
2372 * test/decode-gcov.c (main): print per-directory stats in the report
2374 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
2376 2003-04-05 Havoc Pennington <hp@pobox.com>
2378 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
2380 * test/decode-gcov.c: hack up a little program to suck data
2381 out of gcov files. Yes this is sort of silly.
2383 * configure.in: define something in config.h and do an
2384 AM_CONDITIONAL when gcov is enabled
2386 2003-04-04 Havoc Pennington <hp@redhat.com>
2388 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
2389 return a "babysitter" object that is used to monitor the status of
2390 the spawned process and reap it when required.
2392 * test/test-segfault.c, test/test-exit.c,
2393 test/test-sleep-forever.c: binaries that do various lame things,
2394 used in the test suite.
2396 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
2398 2003-04-03 Havoc Pennington <hp@pobox.com>
2400 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
2401 in preparation for modifying it, dbus-sysdeps is getting
2404 2003-04-03 Havoc Pennington <hp@redhat.com>
2406 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
2409 * bus/*.[hc]: adapt to mainloop change
2411 2003-04-03 Havoc Pennington <hp@redhat.com>
2413 * bus/activation.c (load_directory): fix up memleaks
2414 (bus_activation_entry_free): free the entry
2416 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
2417 we get one from the message bus; fix memleaks.
2419 * dbus/dbus-message.c (dbus_set_error_from_message): new function
2421 2003-04-03 Havoc Pennington <hp@pobox.com>
2423 * bus/config-parser.c (bus_config_parser_unref): free
2424 list of mechanisms, bug discovered by test suite enhancements
2425 (putting system.conf and session.conf into suite)
2427 * test/Makefile.am, test/test-service.c: add placeholder for a
2428 test service that we'll activate as part of test suite. Doesn't
2431 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2432 setting NULL value, and use system malloc not dbus_malloc()
2433 when we have unavoidable memleakage.
2435 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2436 didn't work, and support DBUS_BUS_ACTIVATION.
2438 * bus/activation.c (child_setup): pass our well-known bus type to
2441 * bus/config-parser.c: support <type> to specify well-known type
2443 * doc/dbus-specification.sgml: document the env variables to
2444 locate well-known buses and find service activator
2446 2003-04-02 Havoc Pennington <hp@redhat.com>
2448 * test/Makefile.am (all-local): add a rule to copy tests to
2449 builddir, so we can have generated tests. Use this to remove the
2450 silly hack for testing system.conf and session.conf. Will use this
2451 shortly to generate .service files pointing to test binaries.
2453 2003-04-02 Havoc Pennington <hp@redhat.com>
2455 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2456 current alloc and needed new length, not max of the doubled
2457 allocation and needed new length. Also, when building tests,
2458 don't do the double-allocation stuff, just realloc every time.
2460 2003-04-02 Havoc Pennington <hp@redhat.com>
2462 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2464 (_dbus_string_get_dirname): new
2465 (_dbus_sysdeps_test): new
2466 (_dbus_directory_open): include dirnames in error messages
2468 * bus/config-parser.c: interpret <include> and <includedir> and
2469 <servicedir> relative to config file location if the given
2470 filename is not absolute.
2472 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2474 2003-04-02 Havoc Pennington <hp@redhat.com>
2476 * bus/connection.c (bus_transaction_send_error_reply): set sender
2477 service for the error, and unref the reply on success
2479 * bus/activation.c: convert to use BusTransaction so OOM can be
2481 (bus_activation_service_created): set sender of the message
2483 2003-04-01 Havoc Pennington <hp@redhat.com>
2485 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2486 <includedir> (at least mostly)
2488 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2489 first, then the user ID
2491 2003-04-01 Havoc Pennington <hp@pobox.com>
2493 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2496 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2498 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2500 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2501 socket 0777, and unlink any existing socket.
2503 * bus/bus.c (bus_context_new): change our UID/GID and fork if
2504 the configuration file so specifies; set up auth mechanism
2507 * bus/config-parser.c (bus_config_parser_content): add support
2508 for <fork> option and fill in code for <auth>
2510 * bus/system.conf.in: add <fork/> to default configuration,
2511 and limit auth mechanisms to EXTERNAL
2513 * doc/config-file.txt (Elements): add <fork>
2515 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2516 (_dbus_change_identity): new function
2518 2003-03-31 Havoc Pennington <hp@redhat.com>
2520 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2521 (_dbus_listen_unix_socket): fix off-by-one error in null
2522 termination spotted by Nalin
2524 2003-03-31 Havoc Pennington <hp@redhat.com>
2526 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
2527 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
2528 having a real home directory available.
2530 2003-03-31 Havoc Pennington <hp@redhat.com>
2532 * bus/Makefile.am (install-data-hook): create /var/run/dbus
2534 * bus/messagebus.in: add init script for Red Hat /etc/init.d
2536 * configure.in: add support for specifying a style of init script
2539 2003-03-31 Havoc Pennington <hp@redhat.com>
2541 Fix some annoying DBusString API and fix all affected code.
2543 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
2545 (_dbus_string_get_data): change to return string instead of using
2547 (_dbus_string_get_const_data): ditto
2548 (_dbus_string_get_data_len): ditto
2549 (_dbus_string_get_const_data_len): ditto
2551 2003-03-31 Havoc Pennington <hp@redhat.com>
2553 * bus/main.c (main): fix up the command line arguments to be nicer
2555 2003-03-31 Havoc Pennington <hp@redhat.com>
2557 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
2558 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
2559 final location that lands in the config file
2561 * bus/config-loader-expat.c (bus_config_load): fix type of
2564 * doc/TODO: remove TODO item for dbus_bus_get()
2566 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
2568 2003-03-31 Havoc Pennington <hp@pobox.com>
2570 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
2571 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
2572 argument since they are always client side
2574 * dbus/dbus-server.c (dbus_server_get_address): new function
2576 * bus/main.c (main): take the configuration file as an argument.
2578 * test/data/valid-config-files/debug-allow-all.conf: new file to
2579 use with dispatch.c tests for example
2581 * bus/test-main.c (main): require test data dir
2583 * bus/bus.c (bus_context_new): change this to take a
2584 configuration file name as argument
2586 * doc/config-file.txt (Elements): add <servicedir>
2588 * bus/system.conf, bus/session.conf: new files
2590 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
2591 well-known socket if none set
2593 * configure.in: create system.conf and session.conf
2595 2003-03-30 Havoc Pennington <hp@pobox.com>
2597 * bus/config-parser.c: hacking
2599 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
2600 to shut down, since it could cause weirdness with the DBusList
2603 * dbus/dbus-list.c (_dbus_list_test): add tests for the
2604 link-oriented stack routines
2605 (alloc_link): free the mempool if the first alloc from it fails
2607 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
2609 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
2611 (_dbus_string_skip_white): new
2613 * doc/config-file.txt (Elements): add <includedir>
2615 2003-03-28 Havoc Pennington <hp@pobox.com>
2617 * dbus/dbus-string.c (_dbus_string_copy_data_len)
2618 (_dbus_string_copy_data): new functions
2620 2003-03-28 Anders Carlsson <andersca@codefactory.se>
2622 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
2626 * dbus/dbus-memory.c:
2629 2003-03-28 Havoc Pennington <hp@pobox.com>
2631 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
2632 I think it may have just been superstition. Not sure.
2634 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
2635 failures that were not being handled.
2637 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
2639 * dbus/dbus-memory.c: add ability to set number of mallocs in a
2640 row that will fail on out-of-memory.
2642 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
2643 function for testing out-of-memory handling.
2645 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
2646 allocation functions, they do map exactly to the expat ones.
2648 2003-03-27 Havoc Pennington <hp@redhat.com>
2650 * bus/config-loader-libxml.c (bus_config_load): add another error
2653 2003-03-26 Anders Carlsson <andersca@codefactory.se>
2656 Add note about automatic service activation.
2658 * doc/dbus-specification.sgml:
2659 Rename the specification and clarify a few things.
2661 2003-03-26 Anders Carlsson <andersca@codefactory.se>
2664 * dbus/dbus-address.c:
2666 * dbus/dbus-marshal.c:
2667 * dbus/dbus-server-debug-pipe.c:
2668 * dbus/dbus-transport-unix.c:
2669 Fix documentation warnings.
2671 2003-03-26 Havoc Pennington <hp@pobox.com>
2673 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
2674 after every test so it's quick and easy to see which leaked, and
2675 so we test multiple dbus_shutdown() calls
2677 * configure.in: change configure.in XML stuff to also support
2680 * config-loader-libxml.c: some hacking
2682 * config-loader-expat.c: some hacking
2684 * config-parser.c: some hacking, plus tests
2686 2003-03-25 Havoc Pennington <hp@redhat.com>
2688 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
2690 * configure.in: add --with-xml option to specify XML library,
2691 right now only libxml is supported.
2693 * bus/config-loader-libxml.c, config-parser.c: sync some minor
2694 nonworking code between home and work, still just stubs
2696 2003-03-24 Havoc Pennington <hp@redhat.com>
2698 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
2701 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
2702 NULL argument for "message" if the error is a well-known one,
2703 fill in a generic message in this case.
2705 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
2708 * bus/test.c (bus_test_flush_bus): add
2710 * bus/policy.c (bus_policy_test): test code stub
2712 2003-03-24 Havoc Pennington <hp@pobox.com>
2714 * bus/connection.c (bus_connections_setup_connection): set up
2715 the "can this user connect" function, but it always returns
2716 TRUE until we have a config file parser so we can have a config
2717 file that allows connections.
2719 2003-03-23 Havoc Pennington <hp@pobox.com>
2721 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
2722 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
2723 the mutex, so we can check for proper memory management
2726 * dbus/dbus-dataslot.c: remove the mutex from
2727 DBusDataSlotAllocator and lock it manually when using it,
2728 to simplify fitting it into the global slots framework.
2730 * dbus/dbus-threads.c (init_static_locks): rework how we're
2731 handling global locks so they are easily shut down.
2733 * bus/policy.c (bus_policy_append_rule): fix
2735 * bus/test-main.c (main): check for memleaks
2737 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
2738 test suite check for memleaks
2740 * dbus/dbus-memory.c: add support in test mode for tracking
2741 number of outstanding blocks
2743 2003-03-23 Havoc Pennington <hp@pobox.com>
2745 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
2748 * dbus/dbus-hash.h: add ULONG hash keys
2750 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
2751 (_dbus_get_group_id): new function
2753 2003-03-20 Havoc Pennington <hp@redhat.com>
2755 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
2757 (dbus_connection_get_unix_user): new function
2759 2003-03-20 Havoc Pennington <hp@pobox.com>
2761 * bus/connection.c (bus_connection_send_oom_error): assert that
2762 message has a sender
2763 (connection_execute_transaction): ditto
2764 (bus_connection_preallocate_oom_error): fix to set the sender, and
2765 set recipient to the destination service, not the bus driver
2767 * bus/policy.c: hacking
2769 * dbus/dbus-message.c (dbus_message_service_is): new function
2770 (dbus_message_sender_is): new
2772 2003-03-19 Havoc Pennington <hp@redhat.com>
2774 * bus/policy.c: start sketching code for policy restrictions on
2775 what connections can do.
2777 2003-03-18 Havoc Pennington <hp@redhat.com>
2779 * doc/TODO: some notes on high-level todo items. Little nitpick
2780 stuff is all in @todo, so no need to add it here.
2782 * doc/config-file.txt: some notes on how config file might look
2784 2003-03-18 Anders Carlsson <andersca@codefactory.se>
2790 2003-03-17 Havoc Pennington <hp@redhat.com>
2792 * dbus/dbus-internals.h: add gcc attributes so that
2793 our printf-style functions warn on bad arguments to
2796 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
2799 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2802 2003-03-17 Havoc Pennington <hp@redhat.com>
2804 * bus/test-main.c (main): make it print something as it runs
2805 so make check doesn't look stuck
2807 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
2808 from CVS, now obsolete
2810 2003-03-17 Anders Carlsson <andersca@codefactory.se>
2812 * bus/dispatch.c: (bus_dispatch):
2813 Refetch the service name since it may have been reallocated
2814 when dbus_message_set_sender was called.
2816 * dbus/dbus-sysdeps.c: (_dbus_accept):
2817 Add address and address length variables and use them to stop
2818 valgrind from complaining.
2820 2003-03-17 Havoc Pennington <hp@pobox.com>
2822 All tests pass, no memleaks, no valgrind complaints.
2824 * bus/test.c: refcount handler_slot
2826 * bus/connection.c (bus_connections_new): refcount
2827 connection_data_slot
2829 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
2830 bytes so that auth scripts pass.
2832 * bus/dispatch.c: init message_handler_slot so it gets allocated
2835 * bus/dispatch.c (message_handler_slot_ref): fix memleak
2837 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
2838 dealloc server_pipe_hash when no longer used for benefit of
2841 * dbus/dbus-auth.c (process_command): memleak fix
2843 * bus/dispatch.c (check_hello_message): memleak fix
2845 2003-03-16 Havoc Pennington <hp@pobox.com>
2847 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
2849 2003-03-17 Anders Carlsson <andersca@codefactory.se>
2851 * bus/activation.c (bus_activation_activate_service): Append
2852 the pending activation entry to the list of pending activations.
2854 2003-03-16 Havoc Pennington <hp@pobox.com>
2856 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
2859 * dbus/dbus-address.c (create_entry): fix OOM handling when
2860 failing to alloc entry->method
2862 2003-03-16 Havoc Pennington <hp@pobox.com>
2864 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
2867 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2868 add some missing dbus_set_result
2870 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
2871 alloc the DBusMessageHandler
2873 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
2874 the transport here, since we call this from the finalizer; it
2875 resulted in a double-finalize.
2877 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
2878 where we tried to use transport->connection that was NULL,
2879 happened when transport was disconnected early on due to OOM
2881 * bus/*.c: adapt to handle OOM for watches/timeouts
2883 * dbus/dbus-transport-unix.c: port to handle OOM during
2886 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
2887 reference to unused bytes instead of a copy
2889 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
2892 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
2895 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
2898 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2900 * doc/dbus-specification.sgml:
2901 Document reply message for ActivateService.
2903 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2905 * bus/activation.c: (bus_pending_activation_entry_free),
2906 (bus_pending_activation_free), (bus_activation_new),
2907 (bus_activation_unref), (bus_activation_service_created),
2908 (bus_activation_activate_service):
2910 * bus/bus.c: (bus_context_new):
2911 * bus/desktop-file.c: (new_section):
2912 * bus/driver.c: (bus_driver_send_service_deleted),
2913 (bus_driver_handle_activate_service):
2914 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2916 * dbus/dbus-connection.c:
2917 (dbus_connection_send_with_reply_and_block):
2918 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2919 * dbus/dbus-protocol.h:
2920 Make activation work better. Now pending activations will be queued
2921 and the daemon won't try to activate services that are already registered.
2923 2003-03-16 Havoc Pennington <hp@pobox.com>
2925 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2928 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2929 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2931 2003-03-16 Havoc Pennington <hp@pobox.com>
2933 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2934 this. always run the test suite before commit...
2936 * bus/*: adapt to DBusConnection API changes
2938 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2939 requires renaming stuff to avoid dbus_connection_dispatch name
2942 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2945 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2946 separate from _dbus_message_loader_return_buffer()
2948 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2949 this, because it's now always broken to use; the number of
2950 messages in queue vs. the number still buffered by the message
2951 loader is undefined/meaningless. Should use
2952 dbus_connection_get_dispatch_state().
2953 (dbus_connection_dispatch): rename from
2954 dbus_connection_dispatch_message
2956 2003-03-16 Havoc Pennington <hp@pobox.com>
2958 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2961 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2963 * dbus/dbus-connection.c:
2964 (dbus_connection_send_with_reply_and_block):
2965 Decrease connection->n_incoming when removing an entry
2967 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2968 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2969 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2970 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2971 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2972 (dbus_dict_get_byte_array):
2973 Handle NULL arrays and strings. Also add support for byte arrays.
2975 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2976 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2977 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2978 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2979 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2980 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2981 * dbus/dbus-marshal.h:
2982 Add support for marshalling and demarshalling empty arrays and strings.
2984 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2985 (dbus_message_append_string_array),
2986 (dbus_message_iter_get_boolean),
2987 (dbus_message_iter_get_boolean_array),
2988 (dbus_message_iter_get_int32_array),
2989 (dbus_message_iter_get_uint32_array),
2990 (dbus_message_iter_get_double_array),
2991 (dbus_message_iter_get_byte_array),
2992 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2993 (check_message_handling):
2994 Add support for getting empty arrays and dicts.
2996 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2997 Don't do any validation at all for now, that's better than just checking
3000 * test/data/valid-messages/emptiness.message:
3001 New test message with lots of empty arrays.
3003 2003-03-16 Havoc Pennington <hp@pobox.com>
3005 * dbus/dbus-connection.c
3006 (_dbus_connection_queue_received_message_link): new function that
3007 can't fail due to OOM
3009 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
3010 new function pops a message together with a list link
3013 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
3014 message queuing functions to avoid needing to alloc memory
3016 2003-03-16 Havoc Pennington <hp@pobox.com>
3018 Oops - test code was only testing failure of around 30 of the
3019 mallocs in the test path, but it turns out there are 500+
3020 mallocs. I believe this was due to misguided linking setup such
3021 that there was one copy of dbus_malloc etc. in the daemon and one
3022 in the shared lib, and only daemon mallocs were tested. In any
3023 case, the test case now tests all 500+ mallocs, and doesn't pass
3024 yet, though there are lots of fixes in this patch.
3026 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3027 this so that it doesn't need to allocate memory, since it
3028 has no way of indicating failure due to OOM (and would be
3029 annoying if it did).
3031 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
3033 * bus/Makefile.am: rearrange to create two self-contained
3034 libraries, to avoid having libraries with overlapping symbols.
3035 that was resulting in weirdness, e.g. I'm pretty sure there
3036 were two copies of global static variables.
3038 * dbus/dbus-internals.c: move the malloc debug stuff to
3041 * dbus/dbus-list.c (free_link): free list mempool if it becomes
3044 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
3046 * dbus/dbus-address.c (dbus_parse_address): free list nodes
3049 * bus/dispatch.c (bus_dispatch_add_connection): free
3050 message_handler_slot when no longer using it, so
3051 memory leak checkers are happy for the test suite.
3053 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
3055 * bus/bus.c (new_connection_callback): disconnect in here if
3056 bus_connections_setup_connection fails.
3058 * bus/connection.c (bus_connections_unref): fix to free the
3060 (bus_connections_setup_connection): if this fails, don't
3061 disconnect the connection, just be sure there are no side
3064 * dbus/dbus-string.c (undo_alignment): unbreak this
3066 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
3068 (_dbus_auth_new): fix the order in which we free strings
3071 * bus/connection.c (bus_connection_disconnected): fix to
3072 not send ServiceDeleted multiple times in case of memory
3075 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3076 get the base service name
3077 (dbus_bus_register_client): don't return base service name,
3078 instead store it on the DBusConnection and have an accessor
3080 (dbus_bus_register_client): rename dbus_bus_register()
3082 * bus/dispatch.c (check_hello_message): verify that other
3083 connections on the bus also got the correct results, not
3084 just the one sending hello
3086 2003-03-15 Havoc Pennington <hp@pobox.com>
3088 Make it pass the Hello handling test including all OOM codepaths.
3089 Now to do other messages...
3091 * bus/services.c (bus_service_remove_owner): fix crash when
3092 removing owner from an empty list of owners
3093 (bus_registry_ensure): don't leave service in the list of
3094 a connection's owned services if we fail to put the service
3097 * bus/connection.c (bus_connection_preallocate_oom_error): set
3098 error flag on the OOM error.
3100 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3101 handle _dbus_transport_set_connection failure
3103 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3104 to create watches up front and simply enable/disable them as
3106 (unix_connection_set): this can now fail on OOM
3108 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3109 of enabling/disabling a watch or timeout.
3111 * bus/loop.c (bus_loop_iterate): don't touch disabled
3114 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3116 2003-03-15 Havoc Pennington <hp@pobox.com>
3118 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3119 write useful test code, after all that futzing around ;-)
3121 Test does not yet pass because we can't handle OOM in
3122 _dbus_transport_messages_pending (basically,
3123 dbus_connection_preallocate_send() does not prealloc the write
3124 watch). To fix this, I think we need to add new stuff to
3125 set_watch_functions, namely a SetEnabled function so we can alloc
3126 the watch earlier, then enable it later.
3128 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3129 dbus-memory.c to the convenience lib
3131 * bus/test.c: rename some static functions to keep them clearly
3132 distinct from stuff in connection.c. Handle client disconnection.
3134 2003-03-14 Havoc Pennington <hp@pobox.com>
3136 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3137 transport, tests more of the real codepath. Set up clients
3138 with bus_setup_debug_client.
3140 * bus/test.c (bus_setup_debug_client): function to set up debug
3141 "clients" on the main loop
3143 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3146 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3149 * dbus/dbus-server-debug.c: support a debug server based on pipes
3151 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3152 (_dbus_close): new function
3154 * configure.in: check for socketpair
3156 2003-03-14 Havoc Pennington <hp@redhat.com>
3158 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3161 * dbus/dbus-transport-debug.c: rework this a good bit to be
3162 less complicated. hopefully still works.
3164 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3167 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3170 * dbus/dbus-message.c (dbus_message_copy): rename from
3171 dbus_message_new_from_message, fix it up to copy
3172 all the message fields, add test case
3174 * bus/dispatch.c (bus_dispatch_test): add some more test code,
3175 not quite passing yet
3177 2003-03-14 Havoc Pennington <hp@pobox.com>
3179 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3180 until no work remains" in test code. (the large diff here
3181 is just code movement, no actual changes)
3183 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3184 1, no point waiting around for test code.
3185 (_dbus_server_debug_accept_transport): unref the timeout
3186 after adding it (right?)
3188 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
3190 2003-03-13 Havoc Pennington <hp@redhat.com>
3192 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
3195 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
3198 * dbus/dbus-connection.h: Make AddWatchFunction and
3199 AddTimeoutFunction return a bool so they can fail on out-of-memory
3201 * bus/bus.c (bus_context_new): set up timeout handlers
3203 * bus/connection.c (bus_connections_setup_connection): set up
3206 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
3209 * bus/bus.c (bus_context_new): adapt to changes
3211 * bus/connection.c: adapt to changes
3213 * test/watch.c: adapt to DBusWatch changes
3215 * bus/dispatch.c (bus_dispatch_test): started adding this but
3218 2003-03-14 Anders Carlsson <andersca@codefactory.se>
3220 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
3222 2003-03-13 Havoc Pennington <hp@pobox.com>
3224 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
3225 set up a test framework as for the library
3227 2003-03-12 Havoc Pennington <hp@pobox.com>
3229 Throughout: purge global variables, introduce BusActivation,
3230 BusConnections, BusRegistry, etc. objects instead.
3232 * bus/bus.h, bus/bus.c: introduce BusContext as a global
3235 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
3236 going to redo this a bit differently I think
3238 2003-03-12 Havoc Pennington <hp@redhat.com>
3240 Mega-patch that gets the message bus daemon initially handling
3241 out-of-memory. Work still needed. Also lots of random
3242 moving stuff to DBusError instead of ResultCode.
3244 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
3246 * dbus/dbus-connection.c
3247 (dbus_connection_send_with_reply_and_block): use DBusError
3249 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
3252 * dbus/dbus-connection.c (dbus_connection_send): drop the result
3253 code here, as the only failure possible is OOM.
3255 * bus/connection.c (bus_connection_disconnect):
3256 rename bus_connection_disconnected as it's a notification only
3258 * bus/driver.c (bus_driver_handle_acquire_service): don't free
3259 "name" on get_args failure, should be done by get_args;
3260 don't disconnect client for bad args, just return an error.
3261 (bus_driver_handle_service_exists): ditto
3263 * bus/services.c (bus_services_list): NULL-terminate returned array
3265 * bus/driver.c (bus_driver_send_service_lost)
3266 (bus_driver_send_service_acquired): send messages from driver to a
3267 specific client to the client's unique name, not to the broadcast
3270 * dbus/dbus-message.c (decode_header_data): reject messages that
3271 contain no name field
3272 (_dbus_message_get_client_serial): rename to
3273 dbus_message_get_serial and make public
3274 (_dbus_message_set_serial): rename from set_client_serial
3275 (_dbus_message_set_reply_serial): make public
3276 (_dbus_message_get_reply_serial): make public
3278 * bus/connection.c (bus_connection_foreach): allow stopping
3279 iteration by returning FALSE from foreach function.
3281 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
3282 (dbus_connection_free_preallocated_send)
3283 (dbus_connection_preallocate_send): new API for sending a message
3284 without possibility of malloc failure.
3285 (dbus_connection_send_message): rename to just
3286 dbus_connection_send (and same for whole function family)
3288 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
3290 * dbus/dbus-sysdeps.c (_dbus_exit): new function
3292 * bus/activation.c: handle/return errors
3294 * dbus/dbus-errors.h: add more DBUS_ERROR #define
3296 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
3297 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
3298 (_dbus_result_from_errno): move to this file
3300 2003-03-10 Anders Carlsson <andersca@codefactory.se>
3302 * dbus/dbus-marshal.c:
3303 (_dbus_marshal_set_string):
3304 Take a length argument so we can marshal the correct string
3307 (_dbus_marshal_dict), (_dbus_demarshal_dict),
3308 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
3309 (_dbus_marshal_test):
3310 * dbus/dbus-marshal.h:
3311 Add support for marshalling and demarshalling dicts.
3313 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3314 Add support for TYPE DICT.
3316 * dbus/dbus-message.c: (set_string_field):
3317 Adjust header padding.
3319 (dbus_message_append_args_valist), (dbus_message_append_dict),
3320 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
3321 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
3322 (check_message_handling), (check_have_valid_message):
3323 * dbus/dbus-message.h:
3324 Add functions for setting and getting dicts.
3326 * dbus/dbus-protocol.h:
3332 * doc/dbus-specification.sgml:
3333 Add information about how dicts are marshalled.
3335 * test/data/invalid-messages/dict-with-nil-value.message:
3336 * test/data/invalid-messages/too-short-dict.message:
3337 * test/data/valid-messages/dict-simple.message:
3338 * test/data/valid-messages/dict.message:
3339 Add sample messages containing dicts.
3341 2003-03-08 Anders Carlsson <andersca@codefactory.se>
3343 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
3345 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3348 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3349 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
3350 (dbus_dict_set_int32), (dbus_dict_set_uint32),
3351 (dbus_dict_set_double), (dbus_dict_set_string),
3352 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3353 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3354 (dbus_dict_set_string_array), (_dbus_dict_test):
3356 Fix according to comments from Havoc.
3358 2003-03-06 Michael Meeks <michael@server.home>
3360 * configure.in: if we don't have kde-config, disable have_qt.
3362 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3367 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3368 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
3369 (dbus_dict_remove), (dbus_dict_get_value_type),
3370 (dbus_dict_get_keys), (dbus_dict_put_boolean),
3371 (dbus_dict_put_int32), (dbus_dict_put_uint32),
3372 (dbus_dict_put_double), (dbus_dict_put_string),
3373 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
3374 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
3375 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
3376 (dbus_dict_get_int32), (dbus_dict_get_uint32),
3377 (dbus_dict_get_double), (dbus_dict_get_string),
3378 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
3379 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
3380 (dbus_dict_get_string_array), (_dbus_dict_test):
3382 Add DBusDict implementation
3384 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
3388 2003-03-04 Havoc Pennington <hp@pobox.com>
3390 * test/data/auth/*: adapt to changes
3392 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
3393 USERID_BASE64 and change USERNAME_BASE64 to put in username not
3396 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
3397 more stuff from being in a context name, to make the protocol
3398 simpler to deal with
3400 * dbus/dbus-errors.c (dbus_error_has_name): new function
3401 (dbus_error_is_set): new function
3403 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
3404 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
3406 * dbus/dbus-connection.c (dbus_connection_flush): also read
3407 messages during a flush operation
3409 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
3411 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3413 * configure.in: Check for gethostbyname on Solaris.
3415 * dbus/dbus-transport.c: (_dbus_transport_open):
3416 Remove duplicate "tcp" entry.
3418 * doc/dbus-specification.sgml:
3419 Clarify some things.
3421 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3423 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3424 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3425 (_dbus_keyring_test):
3426 * dbus/dbus-md5.c: (_dbus_md5_compute):
3427 * dbus/dbus-sha.c: (_dbus_sha_compute):
3430 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3432 * README: Add some things.
3434 2003-03-04 Anders Carlsson <andersca@codefactory.se>
3436 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3437 after case DBUS_TYPE_BOOELAN.
3439 2003-03-02 Havoc Pennington <hp@pobox.com>
3441 * test/break-loader.c (randomly_set_extreme_ints): add test that
3442 sets really huge and small integers
3444 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3445 that length of boolean array fits in the string, and that
3446 string has room for boolean value in single-bool case.
3448 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3449 optional value to "ALIGN" command which is what to fill the
3452 * test/data/valid-messages/no-padding.message: add regression
3453 test for the message padding problem
3455 2003-03-02 Havoc Pennington <hp@pobox.com>
3457 * dbus/dbus-message.c (decode_header_data): fix to always init
3458 message_padding, from Benjamin Dauvergne
3460 2003-03-02 Havoc Pennington <hp@pobox.com>
3466 2003-03-01 Joe Shaw <joe@assbarn.com>
3468 * configure.in: Check for "struct cmsgcred" and try to access its
3469 members for BSD-like unices.
3471 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3472 _dbus_read_credentials_unix_socket().
3473 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3474 read() for reading the credential byte off the unix socket. Use
3475 struct cmsgcred on systems that support it.
3477 2003-02-27 Alexander Larsson <alexl@redhat.com>
3481 Make gthreads-2.0 dependency optional. Don't build thread test if
3484 2003-02-27 Havoc Pennington <hp@pobox.com>
3486 * dbus/dbus-connection.c
3487 (dbus_connection_send_message_with_reply_and_block): fix doh!
3488 doh! doh! bug that resulted in never removing a reply from the
3489 queue, no wonder we called get_reply_serial so much ;-)
3491 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3492 and client serial instead of demarshaling them every time
3494 2003-02-27 Havoc Pennington <hp@pobox.com>
3496 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3497 more inlined, using dbus-string-private.h, speeds things up
3500 * dbus/dbus-string.c (_dbus_string_free): apply align offset
3501 when freeing the string
3502 (_dbus_string_steal_data): fix for align offset
3503 (undo_alignment): new function
3505 2003-02-26 Havoc Pennington <hp@redhat.com>
3507 All kinds of audit fixes from Owen, plus initial attempt to
3508 handle unaligned memory returned from malloc.
3510 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3511 leave room for align_offset and nul byte
3512 (fixup_alignment): function to track an align_offset and
3513 ensure real->str is aligned
3514 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3515 to allow a nul byte plus align offset
3516 (_dbus_string_lock): fix overflow issue
3517 (_dbus_string_init_const_len): add assertions on sanity of len,
3518 assign allocated to be ALLOCATION_PADDING larger than len
3519 (set_length): fixup the overflow handling
3520 (_dbus_string_get_data_len): fix overflow in assertion
3521 (open_gap): detect overflow in size of gap to be opened
3522 (_dbus_string_lengthen): add overflow check
3523 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
3524 (_dbus_string_append): add overflow check
3525 (_dbus_string_append_unichar): overflow
3526 (_dbus_string_delete): fix overflow in assertion
3527 (_dbus_string_copy_len): overflow in assertion
3528 (_dbus_string_replace_len): overflows in assertions
3529 (_dbus_string_find): change to implement in terms of
3530 _dbus_string_find_to
3531 (_dbus_string_find_to): assorted fixage
3532 (_dbus_string_equal_c_str): assert c_str != NULL,
3533 fix logic so the function works
3534 (_dbus_string_ends_with_c_str): fix overflow thingy
3535 (_dbus_string_base64_encode): overflow fix
3536 (_dbus_string_validate_ascii): overflow
3537 (_dbus_string_validate_nul): overflow
3539 2003-02-26 Havoc Pennington <hp@redhat.com>
3541 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
3543 2003-02-26 Alexander Larsson <alexl@redhat.com>
3546 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
3548 * dbus/dbus-connection.c:
3549 * dbus/dbus-connection.h:
3550 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
3551 Add dbus_connection_set_wakeup_main_function and use it when queueing
3552 incoming and outgoing messages.
3555 * dbus/dbus-dataslot.c:
3556 Threadsafe usage of DBusDataSlotAllocator
3558 * dbus/dbus-message.c: (dbus_message_get_args_iter):
3561 * dbus/dbus-server-unix.c:
3564 * glib/dbus-gmain.c:
3565 Implement the new wakeup functions for glib.
3568 * glib/test-thread-client.c:
3569 * glib/test-thread-server.c:
3570 * glib/test-thread.h:
3571 Initial cut at some thread test code. Not really done yet.
3573 2003-02-26 Havoc Pennington <hp@pobox.com>
3575 * dbus/dbus-connection.c
3576 (dbus_connection_send_message_with_reply_and_block): fix crash
3577 where we ref'd the outgoing message instead of the returned reply
3579 * dbus/dbus-transport-unix.c (do_authentication): check read watch
3580 at the end of this function, so if we didn't need to read for
3581 authentication, we reinstall it for receiving messages
3583 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
3584 a NULL sender for peer-to-peer case
3586 * dbus/dbus-transport-unix.c (check_read_watch): handle
3587 !authenticated case correctly
3589 * glib/dbus-gmain.c: add support for DBusServer
3591 * dbus/dbus-server.c: add data slot support
3593 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
3594 return values and handle errors
3596 * dbus/dbus-dataslot.c: factor out the data slot stuff from
3599 * Doxyfile.in (INPUT): add glib subdir
3601 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
3602 setup_with_g_main instead of hookup_with_g_main; write docs
3604 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3606 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
3607 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3608 * dbus/dbus-message.c: (dbus_message_append_boolean),
3609 (dbus_message_append_boolean_array),
3610 (dbus_message_get_args_valist), (_dbus_message_test):
3611 * dbus/dbus-message.h:
3612 * doc/dbus-specification.sgml:
3613 Various fixes as pointed out by Havoc.
3615 * test/data/invalid-messages/bad-boolean-array.message:
3616 * test/data/invalid-messages/bad-boolean.message:
3617 Add invalid boolean value test cases.
3619 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3621 * dbus/dbus-internals.c: (_dbus_type_to_string):
3622 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3623 (_dbus_marshal_validate_arg):
3624 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3625 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3626 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
3627 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
3628 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
3629 (dbus_message_iter_get_double),
3630 (dbus_message_iter_get_boolean_array), (message_iter_test):
3631 * dbus/dbus-message.h:
3632 * dbus/dbus-protocol.h:
3633 * doc/dbus-specification.sgml:
3634 * test/data/valid-messages/lots-of-arguments.message:
3635 Add support for boolean and boolean array types.
3637 2003-02-23 Havoc Pennington <hp@pobox.com>
3639 * dbus/dbus-keyring.c: finish most of this implementation and
3642 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
3643 these barf if the error isn't cleared to NULL
3645 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
3646 (_dbus_create_directory): new function
3648 * dbus/dbus-errors.c (dbus_set_error): fix warning
3650 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
3651 (_dbus_string_hex_decode): new function
3652 (test_hex_roundtrip): test code
3654 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
3656 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
3658 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
3659 the save-to-temp/rename trick to atomically write the new file
3660 (_dbus_string_parse_uint): new function
3662 2003-02-22 Havoc Pennington <hp@pobox.com>
3664 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
3666 2003-02-22 Havoc Pennington <hp@pobox.com>
3668 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
3669 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
3671 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
3673 * dbus/test/data/sha-1: add US government test suite for SHA-1
3675 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3677 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3678 Make string arrays NULL-terminated.
3680 * dbus/dbus-memory.c: (dbus_free_string_array):
3681 * dbus/dbus-memory.h:
3682 New function for freeing NULL-terminated string arrays.
3684 * dbus/dbus-message-builder.c: (append_quoted_string),
3685 (_dbus_message_data_load):
3686 Add support for array types.
3688 * dbus/dbus-message.c: (check_message_handling):
3689 Add more types as test cases.
3691 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
3692 (_dbus_string_parse_double):
3693 Add the start offset to the end offset.
3695 * test/data/valid-messages/lots-of-arguments.message:
3696 New test message with lots of arguments.
3698 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3700 * dbus/dbus-message.c: (dbus_message_append_nil),
3701 (dbus_message_append_int32), (dbus_message_append_uint32),
3702 (dbus_message_append_double), (dbus_message_append_string),
3703 (dbus_message_append_int32_array),
3704 (dbus_message_append_uint32_array),
3705 (dbus_message_append_double_array),
3706 (dbus_message_append_byte_array),
3707 (dbus_message_append_string_array):
3708 Fix all out-of-memory handling in these functions.
3710 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3712 * dbus/dbus-message.c: (dbus_message_append_nil):
3715 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3717 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3718 (dbus_message_append_nil), (dbus_message_append_int32_array),
3719 (dbus_message_append_uint32_array),
3720 (dbus_message_append_double_array),
3721 (dbus_message_append_byte_array),
3722 (dbus_message_append_string_array), (dbus_message_get_args_valist),
3723 (dbus_message_iter_get_int32_array),
3724 (dbus_message_iter_get_uint32_array),
3725 (dbus_message_iter_get_double_array),
3726 (dbus_message_iter_get_byte_array),
3727 (dbus_message_iter_get_string_array):
3729 * dbus/dbus-message.h:
3730 Add functions for appending and getting arrays.
3732 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3734 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
3735 element size at least 8 bytes, fixes mempool tests on
3738 2003-02-20 Alexander Larsson <alexl@redhat.com>
3740 * dbus/dbus-transport-unix.c (unix_do_iteration):
3741 Unlock the connection mutex during a blocking select call.
3742 Add todo about how we need a way to wake up the select.
3744 * dbus/dbus-connection-internal.h:
3745 * dbus/dbus-connection.c:
3746 Add _dbus_connection_lock and _dbus_connection_unlock.
3748 2003-02-19 Havoc Pennington <hp@pobox.com>
3750 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
3751 Doxyfile.in, not Doxyfile
3753 * dbus/dbus-keyring.c: do some hacking on this
3755 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
3757 * dbus/dbus-errors.c (dbus_set_error_const): do not call
3759 (dbus_set_error): remove dbus_error_init, check for message ==
3760 NULL *before* we sprintf into it, and add @todo about including
3761 system headers in this file
3763 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
3765 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
3767 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
3768 get various bits of user information based on either username
3770 (_dbus_homedir_from_username): new function
3772 2003-02-19 Anders Carlsson <andersca@codefactory.se>
3775 Add check for nonposix getpwnam_r
3777 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
3778 Align the pool element size to a sizeof (void *) boundary.
3780 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
3781 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
3782 General Solaris fixes.
3784 * test/data/valid-messages/simplest-manual.message:
3785 Explicitly state that we want little-endian packing.
3787 2003-02-19 Mikael Hallendal <micke@codefactory.se>
3789 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
3791 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
3792 Added to create a transport connecting using a tcp/ip socket.
3794 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
3795 to a tcp socket at given host and port.
3796 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
3799 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
3801 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3802 Added to create a server listening on a TCP/IP socket.
3804 2003-02-19 Havoc Pennington <hp@pobox.com>
3806 Throughout: mop up all the Doxygen warnings and undocumented
3809 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
3810 to search any paths.
3812 * dbus/dbus-threads.c: move global mutex initializers to
3813 dbus-internals.h, multiple prototypes was confusing doxygen
3814 besides being kind of ugly
3816 * Doxyfile (PREDEFINED): have Doxygen define
3817 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
3818 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
3819 (do not abuse the feature! it's for stuff like the autogenerated
3820 macros in dbus-md5.c, not just for things you don't feel like
3823 2003-02-18 Havoc Pennington <hp@pobox.com>
3825 * dbus/dbus-string.c (_dbus_string_zero): new function
3827 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
3828 wrap it in some dbus-friendly API
3830 * dbus/dbus-types.h: add 16-bit types
3832 2003-02-18 Joe Shaw <joe@assbarn.com>
3834 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
3835 credentials from our currently running process.
3836 (get_word): Fix a buglet where we were copying the entire length
3837 instead of relative to our position.
3839 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
3840 keys on the stack... it's 640k of data.
3842 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
3843 read the credentials byte off the socket, even if we don't have
3845 (_dbus_poll): Implement poll() using select() for systems which
3848 * glib/test-dbus-glib.c (main): Print out an error if no
3849 parameters are given.
3851 * test/data/auth/fallback.auth-script: Added. Tests that a client
3852 can fallback to a secondary auth mechanism if the first fails.
3854 2003-02-18 Havoc Pennington <hp@pobox.com>
3858 2003-02-17 Havoc Pennington <hp@pobox.com>
3860 * doc/dbus-specification.sgml: lots of cosmetic
3861 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
3862 env variable to DBUS_BUS_ADDRESS, s/client/application/,
3863 s/server/bus/ (except in authentication section). Add a section
3864 "Message Bus Message Routing"
3866 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
3872 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3874 * doc/dbus-specification.sgml:
3875 Specification updates.
3877 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3879 * bus/activation.c: (bus_activation_init), (child_setup),
3880 (bus_activation_activate_service):
3882 * bus/main.c: (main):
3883 Set DBUS_ADDRESS environment variable.
3885 * dbus/dbus-errors.c: (dbus_set_error):
3886 Don't use va_copy since that's a C99 feature.
3888 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
3889 (_dbus_spawn_async):
3890 * dbus/dbus-sysdeps.h:
3891 Add child_setup_func to _dbus_spawn_async.
3893 * doc/dbus-specification.sgml:
3894 Update specification.
3896 * test/spawn-test.c: (setup_func), (main):
3899 2003-02-17 Alexander Larsson <alexl@redhat.com>
3901 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
3904 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3908 * doc/dbus-test-plan.sgml:
3909 Add test plan document.
3914 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3916 * dbus/dbus-message.c: (decode_header_data),
3917 (_dbus_message_loader_return_buffer):
3918 Set the header padding amount when loading a message.
3920 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3922 * bus/dispatch.c: (send_one_message):
3923 Only send broadcast messages to registered connections.
3925 * dbus/dbus-message.c: (dbus_message_name_is):
3926 * dbus/dbus-message.h:
3927 New convenience function.
3929 * dbus/dbus-transport-debug.c: (do_reading):
3930 Only dispatch one message per run.
3933 * test/bus-test.c: (new_connection_callback), (die),
3934 (test_hello_client1_handler), (test_hello_client2_handler),
3935 (test_hello_replies), (main):
3937 * test/bus-test-loop.[ch]:
3940 2003-02-16 Havoc Pennington <hp@pobox.com>
3942 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3943 backward conditional
3945 2003-02-16 Alexander Larsson <alexl@redhat.com>
3947 * dbus/dbus-connection.c:
3948 Implement sent_message_with_reply. (with_reply_and block is still
3950 Made dispatch_message not lose message if OOM.
3952 * dbus/dbus-errors.h:
3953 Add NoReply error (for reply timeouts).
3955 2003-02-16 Alexander Larsson <alexl@redhat.com>
3957 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3958 Actually free keys and values when destroying hashtable.
3960 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3962 * dbus/dbus-auth.c: (client_try_next_mechanism):
3965 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3966 Return TRUE if there's no thread implementation around.
3968 * glib/dbus-gmain.c: (free_source),
3969 (dbus_connection_hookup_with_g_main):
3970 Make sure to remove the GSource when the connection is finalized.
3972 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3974 * bus/dispatch.c: (bus_dispatch_message_handler):
3975 * dbus/dbus-errors.h:
3976 Return an error if someone tries to send a message to a service
3979 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3981 * bus/activation.c: (load_directory), (bus_activation_init),
3982 (bus_activation_activate_service):
3985 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3986 More work on the activation handling.
3988 * dbus/dbus-errors.h:
3989 Add some error messages
3991 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3992 * dbus/dbus-message.h:
3993 New function that creates an error message.
3995 * dbus/dbus-protocol.h:
3996 Add ACTIVATE_SERVER message.
3998 * dbus/dbus-server-unix.c: (unix_handle_watch),
3999 (_dbus_server_new_for_domain_socket):
4000 Call _dbus_fd_set_close_on_exec.
4002 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
4003 (_dbus_spawn_async), (_dbus_disable_sigpipe),
4004 (_dbus_fd_set_close_on_exec):
4005 * dbus/dbus-sysdeps.h:
4006 Add _dbus_fd_set_close_on exec function. Also add function that checks
4007 that all open fds are set to close-on-exec and warns otherwise.
4009 * dbus/dbus-transport-unix.c:
4010 (_dbus_transport_new_for_domain_socket):
4011 Call _dbus_fd_set_close_on_exec.
4013 2003-02-16 Havoc Pennington <hp@pobox.com>
4015 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
4016 allow people to avoid setting SIGPIPE to SIG_IGN
4017 (_dbus_connection_new_for_transport): disable SIGPIPE unless
4018 we've been asked not to
4020 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4022 * dbus/dbus-list.c: (_dbus_list_append_link),
4023 (_dbus_list_prepend_link):
4024 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
4028 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4031 * bus/activation.c: (bus_activation_entry_free),
4032 (add_desktop_file_entry), (load_directory), (bus_activation_init):
4034 * bus/main.c: (main):
4035 Add simple activation support, doesn't work yet though.
4037 2003-02-15 Zack Rusin <zack@kde.org>
4039 * qt/dbus-qthread.cpp: small casting fix
4041 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4043 * dbus/dbus-errors.c: (dbus_set_error):
4044 * dbus/dbus-errors.h:
4045 Add a few errors and make dbus_set_error void.
4047 * dbus/dbus-sysdeps.c:
4048 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
4049 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
4050 * dbus/dbus-sysdeps.h:
4051 Add _dbus_spawn_async.
4053 * test/spawn-test.c: (main):
4054 Test for _dbus_spawn_async.
4056 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4058 * dbus/dbus-internals.h:
4059 Fix build without tests.
4061 * dbus/dbus-list.c: (alloc_link):
4062 Fix a segfault when a malloc fails.
4064 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
4065 (dbus_malloc0), (dbus_realloc):
4066 Add support for malloc debugging.
4068 2003-02-15 Alexander Larsson <alexl@redhat.com>
4070 * dbus/dbus-threads.c:
4071 * dbus/dbus-threads.h:
4072 Add condvars. Remove static mutext from API.
4073 Implement static mutexes by initializing them from threads_init.
4075 * glib/dbus-gthread.c:
4076 * qt/dbus-qthread.cpp:
4077 Update with the thread api changes.
4082 Turn StaticMutex into normal mutex + init function.
4083 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4084 _dbus_list_append_link, _dbus_list_prepend_link
4087 * dbus/dbus-sysdeps.c:
4088 * dbus/dbus-sysdeps.h:
4089 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4090 _dbus_atomic_dec. Only slow fallback implementation at the moment.
4092 * dbus/dbus-protocol.h:
4093 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4095 * dbus/dbus-message.c:
4096 Make ref/unref atomic.
4099 * dbus/dbus-connection-internal.h:
4100 * dbus/dbus-connection.c:
4101 * dbus/dbus-connection.h:
4103 Change _peek to _borrow,_return & _steal_borrowed.
4104 Change disconnect callback to event.
4105 Make dbus_connection_dispatch_messages reentrant.
4107 * dbus/dbus-transport.c:
4108 Don't ref the connection on calls to the transport
4111 * dbus/dbus-message-handler.c:
4114 * glib/dbus-gmain.c:
4115 Don't use peek_message anymore
4118 * test/debug-thread.c:
4119 * test/debug-thread.h:
4120 Simple thread implementation that asserts() on deadlocks in
4121 single-threaded code.
4124 (main) Call debug_threads_init.
4127 Use disconnect message instead of disconnect callback.
4131 Don't call dbus_connection_set_disconnect_function. Instead export
4132 bus_connection_disconnect.
4135 Call bus_connection_disconnect when we get a disconnected message.
4137 2003-02-15 Havoc Pennington <hp@pobox.com>
4139 * dbus/dbus-message.c (dbus_message_new): fool around with the
4142 2003-02-14 Havoc Pennington <hp@pobox.com>
4144 * dbus/dbus-mempool.c: fail if the debug functions so indicate
4146 * dbus/dbus-memory.c: fail if the debug functions indicate we
4149 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4150 (_dbus_decrement_fail_alloc_counter): debug functions to
4151 simulate memory allocation failures
4153 2003-02-14 Havoc Pennington <hp@pobox.com>
4155 * dbus/dbus-errors.h (struct DBusError): add a word of padding
4158 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4160 * bus/driver.c: (bus_driver_handle_hello):
4162 * bus/services.c: (bus_service_lookup):
4163 Reorder message sending so we get a more sane order.
4165 * test/bus-test.c: (message_handler):
4168 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4170 * bus/driver.c: (bus_driver_send_service_deleted),
4171 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4172 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4173 (bus_driver_send_welcome_message),
4174 (bus_driver_handle_list_services),
4175 (bus_driver_handle_acquire_service),
4176 (bus_driver_handle_service_exists):
4177 * dbus/dbus-bus.c: (dbus_bus_register_client),
4178 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4179 * dbus/dbus-errors.c: (dbus_result_to_string):
4180 * dbus/dbus-errors.h:
4181 * dbus/dbus-message.c: (dbus_message_append_args),
4182 (dbus_message_append_args_valist), (dbus_message_get_args),
4183 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4184 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4185 (dbus_message_iter_get_byte_array),
4186 (dbus_message_iter_get_string_array), (message_iter_test),
4187 (check_message_handling), (_dbus_message_test):
4188 * dbus/dbus-message.h:
4189 * test/bus-test.c: (main):
4190 Change fields to arguments in messages, so that they won't be
4191 confused with header fields.
4193 * glib/test-dbus-glib.c: (main):
4194 Remove append_fields from hello message.
4196 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4198 * dbus/dbus-errors.c:
4199 * dbus/dbus-message.c:
4200 * dbus/dbus-string.c:
4201 Documentation fixes.
4203 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4205 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
4207 Implement support for timeouts in dbus-glib.
4209 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4211 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4212 * dbus/dbus-message.c: (process_test_subdir):
4213 * test/break-loader.c: (find_breaks_based_on):
4214 Plug some memory leaks.
4216 2003-02-13 Richard Hult <rhult@codefactory.se>
4218 * bus/main.c: Fix build.
4220 * dbus/dbus-errors.h:
4221 * dbus/dbus-errors.c: Fix copyright for Anders.
4223 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4228 * bus/connection.c: (bus_connection_foreach):
4231 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
4232 (unescape_string), (new_section), (parse_section_start),
4233 (parse_key_value), (report_error), (bus_desktop_file_load),
4234 (bus_desktop_file_get_string):
4235 * bus/desktop-file.h:
4236 Use DBusError for error reporting.
4238 * bus/dispatch.c: (send_one_message),
4239 (bus_dispatch_message_handler):
4240 * bus/driver.c: (bus_driver_send_service_deleted),
4241 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4242 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4243 (bus_driver_send_welcome_message),
4244 (bus_driver_handle_list_services),
4245 (bus_driver_handle_acquire_service),
4246 (bus_driver_handle_service_exists):
4247 * bus/loop.c: (bus_loop_run):
4249 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
4251 * bus/utils.c: (bus_wait_for_memory):
4253 New files with general utility functions.
4255 * dbus/dbus-internals.h:
4256 Remove _DBUS_HANDLE_OOM.
4258 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4260 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
4261 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
4262 * dbus/dbus-errors.h:
4263 Add DBusError structure.
4265 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4267 * test/data/valid-messages/standard-acquire-service.message:
4268 * test/data/valid-messages/standard-hello.message:
4269 * test/data/valid-messages/standard-list-services.message:
4270 * test/data/valid-messages/standard-service-exists.message:
4271 Add some standard messages.
4273 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4275 * bus/driver.c: (bus_driver_send_welcome_message),
4276 (bus_driver_handle_list_services),
4277 (bus_driver_handle_acquire_service),
4278 (bus_driver_handle_service_exists), (bus_driver_handle_message):
4279 Update for API changes in libdbus.
4281 * dbus/dbus-message.c: (dbus_message_new_reply):
4282 * dbus/dbus-message.h:
4283 Remove the name argument. The spec states that replies shouldn't
4286 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4288 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
4289 (report_error), (bus_desktop_file_load), (lookup_section),
4290 (lookup_line), (bus_desktop_file_get_raw),
4291 (bus_desktop_file_get_string):
4292 * bus/desktop-file.h:
4293 Some fixes, and new functions for getting a key value from a section.
4295 2003-02-13 Havoc Pennington <hp@pobox.com>
4297 * test/data/auth/fail-after-n-attempts.auth-script: new test
4299 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
4302 2003-02-13 Havoc Pennington <hp@pobox.com>
4304 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
4305 dbus_credentials_match were backward
4307 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
4308 NO_CREDENTIALS and ROOT_CREDENTIALS
4310 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
4311 into here. Never process more commands after we've reached an
4312 end state; store further data as unused bytes.
4314 * test/data/auth/*: add more auth tests
4316 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
4317 command to match exact string and EXPECT_UNUSED to match unused
4320 * test/Makefile.am (dist-hook): fix to dist all the test stuff
4322 2003-02-12 Havoc Pennington <hp@pobox.com>
4324 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
4325 \r off of popped lines
4327 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
4330 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
4333 2003-02-12 Havoc Pennington <hp@pobox.com>
4335 * dbus/Makefile.am: remove break-loader from the build, since it
4338 * configure.in: add --enable-gcov to turn on coverage profiling
4339 flags and disable optimization
4341 2003-02-10 Havoc Pennington <hp@pobox.com>
4343 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
4344 initial cut at test framework for DBusAuth from laptop.
4345 Doesn't quite work yet but it compiles and I need to get
4346 it off the 266mhz laptop. ;-)
4348 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
4349 fix a memleak in error case
4351 2003-02-12 Anders Carlsson <andersca@codefactory.se>
4354 * bus/desktop-file.c:
4355 * bus/desktop-file.h:
4356 Add a desktop file parser.
4358 2003-02-11 Zack Rusin <zack@kde.org>
4360 * qt/message.[h|cpp]: sample implementation
4361 of the KDE wrapper for DBusMessage
4363 2003-02-09 Zack Rusin <zack@kde.org>
4365 * test/bus-test.c: make_it_compile
4366 * doc/dbus-specification.sgml: minimal semantic fix
4368 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4374 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4377 * dbus/dbus-break-loader.c:
4379 * test/break-loader.c:
4380 Move dbus-break-loader to test/ and rename it to break-loader.
4382 2003-02-02 Havoc Pennington <hp@pobox.com>
4384 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
4385 for code to manage cookies in your home directory
4387 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
4389 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
4390 to authenticate, then disconnect the client.
4392 2003-02-03 Alexander Larsson <alexl@redhat.com>
4394 * dbus/dbus-message.c (dbus_message_append_fields):
4397 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4399 * doc/dbus-specification.sgml:
4400 Update address format section.
4402 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4405 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
4406 (message_handler), (new_connection_callback), (loop_quit),
4410 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4412 * bus/driver.c: (bus_driver_handle_service_exists):
4413 Simplify the code a bit.
4415 * dbus/dbus-bus.c: (dbus_bus_service_exists):
4418 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4421 Add libdbus-daemon.la and link to it.
4423 2003-02-01 James Willcox <jwillcox@gnome.org>
4425 * bus/driver.c: (bus_driver_handle_own_service):
4426 Actually include the service reply code in the message.
4428 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4430 * bus/driver.c: (bus_driver_handle_service_exists):
4431 Don't unref the incoming message.
4433 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4435 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4437 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4439 * dbus/dbus-server.c: (dbus_server_listen):
4440 * dbus/dbus-transport.c: (_dbus_transport_open):
4441 ifdef out the calls to the debug transport and server.
4443 2003-02-02 Alexander Larsson <alexl@redhat.com>
4445 * dbus/dbus-watch.c (dbus_watch_get_flags):
4446 Add note in the docs that ERROR or HANGUP won't be returned
4447 and are assumed always on.
4449 * glib/dbus-gmain.c (add_watch):
4450 Always add IO_ERR | IO_HUP
4452 * dbus/dbus-message.h:
4453 Add semicolon after dbus_message_iter_get_string_array().
4454 Makes qt code build again
4456 2003-02-01 Anders Carlsson <andersca@codefactory.se>
4458 * bus/driver.c: (create_unique_client_name),
4459 (bus_driver_handle_hello):
4460 Don't take a name, just use a numeric id to identify
4464 * dbus/dbus-bus.c: (dbus_bus_register_client),
4465 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4467 Add new convenience functions for communicating with the bus.
4469 * dbus/dbus-message.h:
4471 * dbus/dbus-protocol.h:
4474 2003-02-01 Alexander Larsson <alexl@redhat.com>
4476 * dbus/dbus-message.c (dbus_message_append_fields):
4477 Add some more doc comments.
4479 2003-02-01 Havoc Pennington <hp@pobox.com>
4481 * dbus/dbus-break-loader.c (randomly_modify_length): change
4482 a 4-byte value in the message as if it were a length
4484 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4485 execute bit on saved files
4487 2003-02-01 Havoc Pennington <hp@pobox.com>
4489 * dbus/dbus-break-loader.c (main): new program to find messages
4490 that break the loader.
4492 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4493 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4495 * dbus/dbus-string.c (_dbus_string_set_byte): new
4497 2003-01-31 Havoc Pennington <hp@pobox.com>
4499 * dbus/dbus-message.c: refactor the test code to be more general,
4500 in preparation for writing a "randomly permute test cases to
4501 try to break the loader" program.
4503 2003-01-31 Havoc Pennington <hp@pobox.com>
4505 * doc/dbus-specification.sgml: work on the specification
4507 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4508 the protocol version of the message.
4510 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4511 no longer specifies that.
4512 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4515 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4516 "break" for DBUS_TYPE_NIL, remove @todo
4518 2003-01-31 Havoc Pennington <hp@pobox.com>
4520 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4521 just set_is_error/get_is_error as this is a commonly-used
4522 function, and write docs.
4524 2003-01-31 Anders Carlsson <andersca@codefactory.se>
4526 * dbus/dbus-address.c: (dbus_address_entry_free):
4527 Free key and value lists.
4529 * dbus/dbus-internals.c: (_dbus_type_to_string):
4530 Add the types we didn't have.
4532 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4533 (_dbus_marshal_validate_arg):
4536 * dbus/dbus-message.c: (dbus_message_set_sender):
4537 Remove todo about being able to set sender to NULL.
4539 (dbus_message_set_is_error_reply),
4540 (dbus_message_get_is_error_reply):
4541 * dbus/dbus-message.h:
4544 * dbus/dbus-protocol.h:
4545 Add error reply flag.
4547 * test/data/valid-messages/opposite-endian.message:
4548 Add NIL type to test.
4550 2003-01-31 Havoc Pennington <hp@pobox.com>
4552 * doc/dbus-specification.sgml: fully specify the header. Add
4553 flags and major protocol version, and change header/body len to
4556 * dbus/dbus-message-builder.c (append_saved_length): append length
4559 * dbus/dbus-message.c (dbus_message_create_header): change header
4560 length and body length to unsigned. Add the new fields from the
4562 (_dbus_message_loader_return_buffer): unsigned header/body len
4564 2003-01-30 Havoc Pennington <hp@pobox.com>
4566 * dbus/dbus-auth.c: rework to use only REJECTED, no
4569 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
4570 use REJECTED, suggested by Mark McLoughlin
4572 2003-01-30 Havoc Pennington <hp@pobox.com>
4574 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
4575 a better way to report errors here. e.g. "unix address lacks
4576 path" or something. also "no such file" when the path doesn't
4579 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
4581 (dbus_parse_address): add @todo about documenting address format,
4582 and allowing , and ; to be escaped
4584 2003-01-30 Anders Carlsson <andersca@codefactory.se>
4587 Add dbus-address.[ch]
4589 * dbus/dbus-address.c: (dbus_address_entry_free),
4590 (dbus_address_entries_free), (create_entry),
4591 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
4592 (dbus_parse_address), (_dbus_address_test):
4593 * dbus/dbus-address.h:
4594 New files for dealing with address parsing.
4596 * dbus/dbus-connection.c:
4597 Document timeout functions.
4599 * dbus/dbus-message.c:
4600 Document dbus_message_new_from_message.
4602 * dbus/dbus-server-debug.c:
4605 * dbus/dbus-server.c: (dbus_server_listen):
4606 Parse address and use correct server implementation.
4608 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
4609 * dbus/dbus-string.h:
4610 New function with test.
4612 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
4616 * dbus/dbus-transport-debug.c:
4619 * dbus/dbus-transport.c: (_dbus_transport_open):
4620 Parse address and use correct transport implementation.
4622 2003-01-30 Havoc Pennington <hp@pobox.com>
4624 * dbus/dbus-message.c: use message->byte_order instead of
4625 DBUS_COMPILER_BYTE_ORDER throughout.
4626 (dbus_message_create_header): pad header to align the
4627 start of the body of the message to 8-byte boundary
4629 * dbus/dbus-marshal.h: make all the demarshalers take const
4630 DBusString arguments.
4632 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
4633 validate message args here, so we don't have to do slow validation
4634 later, and so we catch bad messages as they are incoming. Also add
4635 better checks on header_len and body_len. Also fill in
4638 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
4639 implemented properly)
4640 (_dbus_string_validate_nul): new function to check all-nul
4642 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
4643 get_arg_end_pos and remove all validation
4644 (_dbus_marshal_validate_arg): actually do validation here.
4646 2003-01-29 Havoc Pennington <hp@pobox.com>
4648 * dbus/dbus-message.c (check_message_handling): fix assertion
4649 failure on set_client_serial
4651 2003-01-28 Havoc Pennington <hp@pobox.com>
4653 * dbus/dbus-server-debug.c: Add doc section comments
4655 * dbus/dbus-transport-debug.c: add doc section comments
4657 2003-01-28 Havoc Pennington <hp@redhat.com>
4659 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
4660 the reverse order from how I had it
4661 (_dbus_string_base64_encode): reverse encoding order. I was
4662 basically byteswapping everything during encoding.
4664 2003-01-28 Anders Carlsson <andersca@codefactory.se>
4666 * dbus/dbus-connection-internal.h:
4667 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
4668 (_dbus_connection_remove_timeout):
4669 Add functions for adding and removing timeouts.
4671 * dbus/dbus-message.c: (dbus_message_new_from_message):
4672 Add new function that takes a message and creates an exact
4673 copy of it, but with the refcount set to 1.
4674 (check_message_handling):
4677 * dbus/dbus-server-protected.h:
4678 * dbus/dbus-server.c: (_dbus_server_init_base),
4679 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
4680 (dbus_server_set_timeout_functions):
4681 (_dbus_server_remove_timeout):
4682 New functions so that a server can add and remove timeouts.
4684 (dbus_server_listen):
4685 Add commented out call to dbus_server_debug_new.
4687 * dbus/dbus-timeout.c: (_dbus_timeout_new):
4688 Actually set the handler, doh.
4690 * dbus/dbus-transport.c: (_dbus_transport_open):
4691 Add commented out call to dbus_transport_debug_client_new.
4694 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
4696 2003-01-28 Havoc Pennington <hp@pobox.com>
4698 * dbus/dbus-message.c (check_message_handling): function to check
4699 on the loaded message, iterates over it etc.
4701 2003-01-28 Havoc Pennington <hp@pobox.com>
4703 * test/Makefile.am (dist-hook): fix make distdir
4705 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
4707 2003-01-27 Havoc Pennington <hp@pobox.com>
4709 * dbus/dbus-mempool.c (time_for_size): replace printf with
4712 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
4713 empty lines; fix the SAVE_LENGTH stuff to be
4714 START_LENGTH/END_LENGTH so it actually works; couple other
4717 * test/Makefile.am (dist-hook): add dist-hook for .message files
4719 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
4720 can be constant or locked.
4721 (_dbus_string_free): allow freeing a const string as
4724 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
4726 * dbus/dbus-test-main.c (main): take an argument which is the
4727 directory containing test data
4729 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
4730 argument to this and load all the messages in test/data/
4731 checking that they can be loaded or not loaded as appropriate.
4733 2003-01-27 Anders Carlsson <andersca@codefactory.se>
4735 * bus/dispatch.c: (bus_dispatch_message_handler):
4736 Dispatch messages sent to services.
4738 * bus/driver.c: (bus_driver_send_service_deleted),
4739 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4740 (bus_driver_send_service_acquired):
4741 Add helper functions for sending service related messages.
4743 (bus_driver_send_welcome_message):
4744 Send HELLO_REPLY instead of WELCOME.
4746 (bus_driver_handle_list_services):
4747 Send LIST_SERVICES_REPLY instead of SERVICES.
4749 (bus_driver_handle_own_service),
4750 (bus_driver_handle_service_exists):
4751 New message handlers.
4753 (bus_driver_handle_message):
4754 Invoke new message handlers.
4756 (bus_driver_remove_connection):
4757 Don't remove any services here since that's done automatically
4758 by bus_service_remove_owner now.
4761 New function signatures.
4763 * bus/services.c: (bus_service_add_owner):
4764 Send ServiceAcquired message if we're the only primary owner.
4766 (bus_service_remove_owner):
4767 Send ServiceAcquired/ServiceLost messages.
4769 (bus_service_set_prohibit_replacement),
4770 (bus_service_get_prohibit_replacement):
4771 Functions for setting prohibit replacement.
4773 (bus_service_has_owner):
4774 New function that checks if a connection is in the owner queue of
4778 Add new function signatures.
4780 * dbus/dbus-list.c: (_dbus_list_test):
4781 Add tests for _dbus_list_remove_last and traversing the list backwards.
4784 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
4785 go any further, so return NULL then.
4787 * dbus/dbus-protocol.h:
4788 Add new messages, service flags and service replies.
4790 2003-01-26 Havoc Pennington <hp@pobox.com>
4792 * dbus/dbus-message-builder.c: implement, completely untested.
4794 * test/data/*: add data to be used in testing.
4795 ".message" files are our simple loadable text format.
4796 ".message-raw" will be binary dumps of messages.
4798 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
4800 2003-01-26 Havoc Pennington <hp@pobox.com>
4802 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
4804 * dbus/dbus-errors.c (dbus_result_to_string): add
4807 * dbus/dbus-message-builder.c: new file, will contain code to load
4808 up messages from files. Not implemented yet.
4810 2003-01-26 Havoc Pennington <hp@pobox.com>
4812 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
4813 the sender by setting to NULL
4815 2003-01-26 Havoc Pennington <hp@pobox.com>
4817 The unit tests pass, but otherwise untested. If it breaks, the
4818 tests should have been better. ;-)
4820 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
4823 * dbus/dbus-message.c: redo everything so we maintain
4824 message->header as the only copy of the various fields.
4825 This avoids the possibility of out-of-memory in some cases,
4826 for example dbus_message_lock() can't run out of memory anymore,
4827 and avoids extra copying. Figured I may as well go ahead and do
4828 this since it was busted for dbus_message_lock to not return
4829 failure on OOM, and dbus_message_write_header was totally
4830 unchecked for OOM. Also fixed some random other bugs.
4832 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
4833 that strings are nul-terminated. Also, end_pos can be equal
4834 to string length just not greater than, I think.
4835 (_dbus_marshal_set_int32): new function
4836 (_dbus_marshal_set_uint32): new function
4837 (_dbus_marshal_set_string): new function
4839 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
4840 a warning, init timeout_list to NULL
4841 (dbus_connection_send_message): don't use uninitialized variable
4844 * dbus/dbus-string.c (_dbus_string_replace_len): new function
4846 2003-01-26 Anders Carlsson <andersca@codefactory.se>
4848 * bus/driver.c: (bus_driver_handle_hello),
4849 (bus_driver_send_welcome_message):
4852 2003-01-26 Anders Carlsson <andersca@codefactory.se>
4854 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
4855 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4856 (dbus_connection_unref):
4857 * dbus/dbus-marshal.c: (_dbus_marshal_test):
4858 * dbus/dbus-message.c: (dbus_message_unref),
4861 (dbus_message_get_fields):
4862 Remove debugging printout.
4864 (_dbus_message_loader_return_buffer):
4865 Don't store the header string.
4867 (_dbus_message_test):
4870 2003-01-26 Richard Hult <rhult@codefactory.se>
4872 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
4873 the file descriptor list, since it can change under us.
4875 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4877 * glib/dbus-gmain.c: (dbus_connection_prepare),
4878 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
4879 (remove_watch), (dbus_connection_hookup_with_g_main):
4880 Rewrite the glib handling to use its own GSource instead of a
4881 GIOChannel so we can catch messages put in the queue while waiting
4884 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4887 * bus/connection.c: (connection_disconnect_handler),
4888 (connection_watch_callback), (bus_connection_setup):
4889 * bus/dispatch.c: (send_one_message),
4890 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
4891 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
4893 * bus/driver.c: (bus_driver_send_service_deleted),
4894 (bus_driver_send_service_created), (bus_driver_handle_hello),
4895 (bus_driver_send_welcome_message),
4896 (bus_driver_handle_list_services), (bus_driver_remove_connection),
4897 (bus_driver_handle_message):
4899 Refactor code, put the message dispatching in its own file. Use
4900 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
4903 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4905 * dbus/dbus-internals.h:
4906 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
4908 * dbus/dbus-message.c: (dbus_message_get_sender):
4909 * dbus/dbus-message.h:
4910 Implement dbus_message_get_sender.
4912 * dbus/dbus-protocol.h:
4913 Add message and service defines.
4915 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4917 * dbus/dbus-connection.c: (dbus_connection_send_message):
4918 * dbus/dbus-message-internal.h:
4919 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4920 (dbus_message_write_header):
4921 Remove _dbus_messag_unlock and don't set the client serial on a
4922 message if one already exists.
4924 2003-01-24 Havoc Pennington <hp@pobox.com>
4926 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4929 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4932 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4934 * dbus/dbus-list.c: (alloc_link), (free_link):
4935 Use a memory pool for the links.
4937 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4939 * bus/connection.c: (bus_connection_foreach):
4941 Add new bus_connection_foreach function.
4943 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4944 Add function that broadcasts a message to all clients.
4946 (bus_driver_send_service_created), (bus_driver_handle_hello),
4947 (bus_driver_send_welcome_message),
4948 (bus_driver_handle_list_services), (bus_driver_message_handler):
4949 Implement functions that take care of listing services, and notifying
4950 clients when new services are created.
4952 * bus/services.c: (bus_services_list):
4954 Add new function that returns an array of strings with the currently
4955 registered services.
4958 * glib/dbus-gmain.c:
4959 Update copyright year.
4961 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4963 * dbus/dbus-connection.c: (dbus_connection_send_message):
4964 Unlock the message in case it was sent earlier.
4966 (dbus_connection_send_message_with_reply_and_block):
4967 Remove the reply message from the list.
4969 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4970 Set array_len and new_pos correctly.
4972 (_dbus_marshal_test):
4973 Remove debug output.
4975 * dbus/dbus-message-internal.h:
4976 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4977 New function that returns the reply serial.
4979 (_dbus_message_unlock):
4980 New function that unlocks a message and resets its header.
4982 (dbus_message_append_string_array),
4983 (dbus_message_get_fields_valist),
4984 (dbus_message_iter_get_field_type),
4985 (dbus_message_iter_get_string_array),
4986 (dbus_message_get_fields),
4987 (dbus_message_append_fields_valist):
4988 Handle string arrays.
4990 (dbus_message_set_sender):
4991 Make this function public since the bus daemon needs it.
4993 (decode_header_data):
4994 Set the reply serial to -1 initially.
4996 * dbus/dbus-message.h:
4997 Add dbus_message_set_sender.
4999 2003-01-24 Havoc Pennington <hp@pobox.com>
5001 * doc/dbus-specification.sgml: add some stuff
5003 2003-01-22 Havoc Pennington <hp@pobox.com>
5005 * doc/dbus-specification.sgml: Start to document the protocol.
5007 2003-01-22 Havoc Pennington <hp@pobox.com>
5009 * dbus/dbus-connection.c
5010 (dbus_connection_send_message_with_reply_and_block): add some @todo
5012 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
5014 2003-01-21 Havoc Pennington <hp@pobox.com>
5016 (patch untested because can't compile)
5018 * bus/driver.c (create_unique_client_name): make this function
5019 never recycle client names. Also, caller should initialize
5022 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
5024 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5026 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5027 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5028 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
5029 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
5030 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5031 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5032 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
5033 * dbus/dbus-marshal.h:
5034 * dbus/dbus-protocol.h:
5035 Add support for marshalling and demarshalling integer, double
5038 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5043 * bus/connection.c: (connection_disconnect_handler):
5044 Remove the connection from the bus driver's list.
5046 (connection_watch_callback): Dispatch messages.
5048 (free_connection_data): Free connection name.
5050 (bus_connection_setup): Add connection to the bus driver's list.
5051 (bus_connection_remove_owned_service):
5052 (bus_connection_set_name), (bus_connection_get_name):
5053 Add functions for setting and getting the connection's name.
5056 Add function headers.
5058 * bus/driver.c: (create_unique_client_name),
5059 (bus_driver_handle_hello_message),
5060 (bus_driver_send_welcome_message), (bus_driver_message_handler),
5061 (bus_driver_add_connection), (bus_driver_remove_connection):
5064 * bus/services.c: (bus_service_free):
5066 New file that handles communication and registreation with the bus
5069 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5071 * dbus/dbus-connection.c: (dbus_connection_send_message):
5072 Add a new client_serial parameter.
5074 (dbus_connection_send_message_with_reply):
5075 Remove a @todo since we've implemented the blocking function.
5077 (dbus_connection_send_message_with_reply_and_block):
5078 New function that sends a message and waits for a reply and
5079 then returns the reply.
5081 * dbus/dbus-connection.h:
5084 * dbus/dbus-errors.c: (dbus_result_to_string):
5085 * dbus/dbus-errors.h:
5086 Add new DBUS_RESULT.
5088 * dbus/dbus-message-internal.h:
5089 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5090 (_dbus_message_set_sender), (dbus_message_write_header),
5091 (dbus_message_new_reply), (decode_header_data),
5092 (_dbus_message_loader_return_buffer), (_dbus_message_test):
5093 * dbus/dbus-message.h:
5094 Add new functions that set the reply serial and sender.
5095 Also marshal and demarshal them correctly and add test.
5097 * dbus/dbus-protocol.h:
5098 Add new DBUS_MESSAGE_TYPE_SENDER.
5101 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5102 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5103 (dbus_connection_hookup_with_g_main):
5104 * glib/test-dbus-glib.c: (main):
5105 Rewrite to use GIOChannel and remove the GSource crack.
5107 * test/echo-client.c: (main):
5108 * test/watch.c: (check_messages):
5109 Update for changed APIs
5111 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5113 * dbus/Makefile.am: Add dbus-timeout.[cħ]
5115 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5116 Create a DBusTimeoutList.
5117 (dbus_connection_set_timeout_functions): Add new function to
5118 set timeout callbacks
5120 * dbus/dbus-connection.h: Add public DBusTimeout API.
5122 * dbus/dbus-message.c: (dbus_message_get_service):
5123 * dbus/dbus-message.h: New function.
5125 * dbus/dbus-server.c: Fix small doc typo.
5127 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5129 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5131 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5132 of the string, just as long as specified.
5134 2003-01-19 Havoc Pennington <hp@pobox.com>
5136 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5139 * dbus/dbus-server.c (dbus_server_set_max_connections)
5140 (dbus_server_get_max_connections, dbus_server_get_n_connections):
5141 keep track of current number of connections, and add API for
5142 setting a max (but haven't implemented enforcing the max yet)
5144 2003-01-18 Havoc Pennington <hp@pobox.com>
5146 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5147 reading/writing if read_watch != NULL or write_watch != NULL.
5149 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5150 the message loader code to actually load message->header and
5151 message->body into the newly-created message.
5153 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5156 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5157 (dbus_connection_get_max_message_size)
5158 (dbus_connection_set_max_live_messages_size)
5159 (dbus_connection_get_max_live_messages_size): implement some
5160 resource limitation functions
5162 * dbus/dbus-resources.c: new file implementing some of the
5163 resource limits stuff
5165 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5166 missing docs, add @todo to handle OOM etc.
5168 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5171 2003-01-18 Havoc Pennington <hp@pobox.com>
5173 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5174 connection if it hasn't been already.
5176 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5177 replace with DisconnectFunction.
5179 2003-01-18 Havoc Pennington <hp@pobox.com>
5181 Building --disable-verbose-mode --disable-asserts --disable-tests
5182 cuts the library from 112K to 45K or so
5184 * configure.in: check for varargs macro support,
5185 add --enable-verbose-mode, --enable-asserts.
5187 * dbus/dbus-internals.h (_dbus_assert): support
5189 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
5191 2003-01-18 Havoc Pennington <hp@pobox.com>
5193 * dbus/dbus-test.c: include config.h so that tests actually run
5195 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
5196 so the failure mode when that assumption fails will be plenty
5199 2003-01-18 Havoc Pennington <hp@pobox.com>
5201 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
5203 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
5206 * test/Makefile.am: don't use special variable "TESTS" for echo-*
5207 since we don't want to use those in make check
5209 2003-01-15 Havoc Pennington <hp@redhat.com>
5215 2003-01-15 Havoc Pennington <hp@redhat.com>
5217 * test/Makefile.am: fix so that test source code ends up in the
5218 distribution on make distcheck
5220 2003-01-15 Havoc Pennington <hp@redhat.com>
5226 2003-01-15 Havoc Pennington <hp@redhat.com>
5228 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
5229 fix build when --disable-tests
5231 * Makefile.am (EXTRA_DIST): put HACKING in here
5233 * HACKING: document procedure for making a tarball release.
5235 2003-01-14 Anders Carlsson <andersca@codefactory.se>
5237 * bus/connection.c: (connection_error_handler),
5238 (bus_connection_setup):
5239 * bus/main.c: (main):
5240 Make sure that the DBusConnectionData struct is NULLed
5241 out to prevent a segfault.
5243 * dbus/dbus-errors.c: (dbus_result_to_string):
5244 * dbus/dbus-errors.h:
5245 * dbus/dbus-message.c: (dbus_message_get_fields),
5246 (dbus_message_get_fields_valist), (_dbus_message_test):
5247 * dbus/dbus-message.h:
5248 Make dbus_message_get_fields return a result code so we can
5249 track invalid fields as well as oom.
5251 2003-01-11 Havoc Pennington <hp@pobox.com>
5253 * configure.in: change --enable-test/--enable-ansi action-if-given
5254 to enable_foo=$enableval instead of enable_foo=yes
5256 2003-01-08 Havoc Pennington <hp@pobox.com>
5258 * dbus/dbus-string.c (_dbus_string_align_length): new function
5260 * dbus/dbus-test-main.c: move main() for test app here
5262 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
5263 symbol to run tests, because dbus-test isn't in the main
5266 Code review nitpicks.
5268 * dbus/dbus-message.c (dbus_message_write_header): add newlines
5269 for people with narrow emacs ;-). Assert client_serial was filled
5270 in. Assert message->name != NULL.
5271 (dbus_message_append_fields): have "first_field_type" arg separate
5272 from va list, needed for C++ binding that also uses varargs IIRC
5273 and helps with type safety
5274 (dbus_message_new): add @todo about using DBusString to store
5275 service/name internally
5276 (dbus_message_new): don't leak ->service and ->name on OOM later
5278 (dbus_message_unref): free the service name
5279 (dbus_message_get_fields): same change to varargs
5280 i.e. first_field_type
5281 (_dbus_message_loader_return_buffer): assert that the message data
5282 is aligned (if not it's a bug in our code). Put in verbose griping
5283 about why we set corrupted = TRUE.
5284 (decode_header_data): add FIXME that char* is evil. Was going to
5285 add FIXME about evil locale-specific string.h strncmp, but just
5286 switched to wacky string-as-uint32 optimization. Move check for
5287 "no room for field name" above get_const_data_len() to avoid
5288 assertion failure in get_const_data_len if we have trailing 2
5289 bytes or the like. Check for service and name fields being
5290 provided twice. Don't leak service/name on error. Require field
5291 names to be aligned to 4 bytes.
5293 * dbus/dbus-marshal.c: move byte swap stuff to header
5294 (_dbus_pack_int32): uscore-prefix
5295 (_dbus_unpack_int32): uscore-prefix
5296 (_dbus_unpack_uint32): export
5297 (_dbus_demarshal_string): add @todo complaining about use of
5299 (_dbus_marshal_get_field_end_pos): add @todo about bad error
5300 handling allowing corrupt data to go unchecked
5302 2003-01-08 Havoc Pennington <hp@redhat.com>
5304 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
5305 to the select() as needed for authentication. (should be using
5306 _dbus_poll() not select, but for another day)
5308 * dbus/dbus.h: include dbus/dbus-protocol.h
5310 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5312 * dbus/Makefile.am (dbusinclude_HEADERS): Install
5315 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5317 * dbus/dbus-internals.c: (_dbus_type_to_string):
5318 New function that returns a string describing a type.
5320 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
5321 * dbus/dbus-marshal.h:
5322 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
5323 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
5324 (dbus_message_iter_get_byte_array):
5325 * dbus/dbus-message.h:
5326 Add new convenience functions for appending and getting message fields.
5327 Also add demarshalling routines for byte arrays.
5329 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5331 * dbus/dbus-connection-internal.h:
5332 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5333 (_dbus_connection_get_next_client_serial),
5334 (dbus_connection_send_message):
5335 * dbus/dbus-internals.h:
5336 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
5337 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
5338 (_dbus_marshal_uint32), (_dbus_demarshal_double),
5339 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
5340 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
5341 (_dbus_verbose_bytes), (_dbus_marshal_test):
5342 * dbus/dbus-marshal.h:
5343 * dbus/dbus-message-internal.h:
5344 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
5345 (dbus_message_write_header), (_dbus_message_lock),
5346 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
5347 (dbus_message_get_name), (dbus_message_append_int32),
5348 (dbus_message_append_uint32), (dbus_message_append_double),
5349 (dbus_message_append_string), (dbus_message_append_byte_array),
5350 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
5351 (dbus_message_iter_unref), (dbus_message_iter_has_next),
5352 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
5353 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
5354 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
5355 (decode_header_data), (_dbus_message_loader_return_buffer),
5356 (message_iter_test), (_dbus_message_test):
5357 * dbus/dbus-message.h:
5358 * dbus/dbus-protocol.h:
5359 * dbus/dbus-test.c: (main):
5361 * glib/test-dbus-glib.c: (message_handler), (main):
5362 * test/echo-client.c: (main):
5363 * test/watch.c: (check_messages):
5364 Make messages sendable and receivable for real.
5366 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5368 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5369 (_dbus_marshal_string), (_dbus_marshal_byte_array):
5370 * dbus/dbus-message.c: (dbus_message_append_int32),
5371 (dbus_message_append_uint32), (dbus_message_append_double),
5372 (dbus_message_append_string), (dbus_message_append_byte_array):
5373 Handle OOM restoration.
5375 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5377 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5378 (_dbus_demarshal_string), (_dbus_marshal_test):
5379 * dbus/dbus-marshal.h:
5380 * dbus/dbus-message.c: (dbus_message_get_name),
5381 Document these functions.
5383 (dbus_message_append_int32), (dbus_message_append_uint32),
5384 (dbus_message_append_double), (dbus_message_append_string),
5385 (dbus_message_append_byte_array):
5386 * dbus/dbus-message.h:
5387 Add functions for adding message fields of different types.
5389 * dbus/dbus-protocol.h:
5390 Add the different types.
5392 2003-01-05 Havoc Pennington <hp@pobox.com>
5394 * bus/connection.c: implement routines for handling connections,
5395 first thing is keeping a list of owned services on each connection
5396 and setting up watches etc.
5398 * bus/services.c: implement a mapping from service names to lists
5401 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
5403 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
5404 to use static mutexes for global data
5406 * dbus/dbus-connection.c (dbus_connection_set_data): add new
5407 collection of functions to set/get application-specific data
5408 on the DBusConnection.
5410 2003-01-04 Havoc Pennington <hp@pobox.com>
5412 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
5413 (_dbus_poll): new function
5415 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
5418 * bus/loop.c: initial code for the daemon main loop
5420 2003-01-04 Havoc Pennington <hp@pobox.com>
5422 * test/watch.c (error_handler): make it safe if the error handler
5423 is called multiple times (if we s/error handler/disconnect
5424 handler/ we should just guarantee it's called only once)
5426 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5427 error handler on disconnect (it's quite possible we should
5428 just change the error handler to a "disconnect handler," I'm
5429 not sure we have any other meaningful errors)
5431 * configure.in: check for getpwnam_r
5433 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5434 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5435 mechanism as in SASL spec, using socket credentials
5437 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5438 (_dbus_send_credentials_unix_socket): new function
5440 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5442 (_dbus_write): only check errno if <0 returned
5443 (_dbus_write_two): ditto
5445 2003-01-02 Anders Carlsson <andersca@codefactory.se>
5447 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5448 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5449 (_dbus_marshal_test):
5450 * dbus/dbus-marshal.h:
5451 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5452 to _dbus_marshal_utf8_string. Also fix some tests.
5454 2002-12-28 Harri Porten <porten@kde.org>
5456 * configure.in: added check for C++ compiler and a very cheesy
5457 check for the Qt integration
5459 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5461 * qt/Makefile.am: added
5463 * qt/.cvsignore: added
5465 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5466 latter, added #ifdef QT_THREAD_SUPPORT guard.
5468 * dbus/Makefile.am: added missing headers for make dist
5470 2002-12-28 Kristian Rietveld <kris@gtk.org>
5472 * dbus/Makefile.am: fixup export-symbols-regex.
5474 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5476 * acinclude.m4: Add this file and put the
5477 PKG_CHECK_MODULE macro in it.
5479 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5481 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5482 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5483 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5484 (_dbus_marshal_test):
5485 Make the demarshalling routines align the pos argument.
5486 Add string marshalling tests and fix the obvious bugs
5489 2002-12-26 Havoc Pennington <hp@pobox.com>
5491 * dbus/dbus-auth.c: fixes fixes fixes
5493 * dbus/dbus-transport-unix.c: wire up support for
5494 encoding/decoding data on the wire
5496 * dbus/dbus-auth.c (_dbus_auth_encode_data)
5497 (_dbus_auth_decode_data): append to target string
5498 instead of nuking it.
5500 2002-12-26 Havoc Pennington <hp@pobox.com>
5502 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5503 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5506 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5507 avoid swap_bytes() overhead (ignoring possible assembly stuff for
5508 now). Main point is because I wanted unpack_uint32 to implement
5510 (_dbus_verbose_bytes): new function
5512 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5514 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5515 mechanism to handle a corrupt message stream
5516 (_dbus_message_loader_new): fix preallocation to only prealloc,
5519 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5520 (_dbus_string_test): enhance tests for copy/move and fix the
5523 * dbus/dbus-transport-unix.c: Hold references in more places to
5524 avoid reentrancy problems
5526 * dbus/dbus-transport.c: ditto
5528 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
5529 leak reference count in no-message case
5531 * test/watch.c (do_mainloop): handle adding/removing watches
5532 during iteration over the watches. Also, ref the connection/server
5533 stored on a watch, so we don't try to mangle a destroyed one.
5535 * dbus/dbus-transport-unix.c (do_authentication): perform
5538 * dbus/dbus-auth.c (get_state): add a state
5539 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
5540 (_dbus_auth_get_unused_bytes): append the unused bytes
5541 to the passed in string, rather than prepend
5543 * dbus/dbus-transport.c (_dbus_transport_init_base): create
5544 the auth conversation DBusAuth
5546 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
5547 (_dbus_transport_new_for_domain_socket): when creating a
5548 transport, pass in whether it's a client-side or server-side
5549 transport so we know which DBusAuth to create
5551 2002-12-03 Havoc Pennington <hp@pobox.com>
5553 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
5554 _after_ finalizing the derived members
5555 (unix_connection_set): unref watch if we fail to add it
5557 * dbus/dbus-connection.c (dbus_connection_unref): delete the
5558 transport first, so that the connection owned by the
5559 transport will be valid as the transport finalizes.
5561 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
5562 if necessary, and remove watches from the connection.
5564 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
5566 2002-12-26 Anders Carlsson <andersca@codefactory.se>
5568 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5569 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5570 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5571 (_dbus_marshal_test):
5572 * dbus/dbus-marshal.h:
5573 Add string marshal functions and have the demarshal functions
5574 return the new position.
5576 2002-12-25 Havoc Pennington <hp@pobox.com>
5578 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
5579 it is a simple protocol that just maps directly to SASL.
5581 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
5582 initial implementation, not actually used yet.
5584 * dbus/dbus-string.c (_dbus_string_find): new function
5585 (_dbus_string_equal): new function
5586 (_dbus_string_base64_encode): new function
5587 (_dbus_string_base64_decode): new function
5589 2002-12-25 Anders Carlsson <andersca@codefactory.se>
5592 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
5593 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5594 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5595 (_dbus_demarshal_uint32), (_dbus_marshal_test):
5596 * dbus/dbus-marshal.h:
5597 * dbus/dbus-protocol.h:
5598 * dbus/dbus-test.c: (main):
5600 Add un-optimized marshalling/demarshalling routines.
5602 2002-12-25 Harri Porten <porten@kde.org>
5604 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
5606 2002-12-24 Zack Rusin <zack@kde.org>
5608 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
5609 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
5612 2002-12-24 Havoc Pennington <hp@pobox.com>
5614 * glib/dbus-gthread.c: fix include
5616 * glib/dbus-glib.h: rename DBusMessageHandler for now.
5617 I think glib API needs to change, though, as you don't
5618 want to use DBusMessageFunction, you want to use the
5619 DBusMessageHandler object. Probably
5620 dbus_connection_open_with_g_main_loop()
5621 and dbus_connection_setup_g_main_loop() or something like that
5622 (but think of better names...) that just create a connection
5623 that has watch/timeout functions etc. already set up.
5625 * dbus/dbus-connection.c
5626 (dbus_connection_send_message_with_reply): new function just to
5627 show how the message handler helps us deal with replies.
5629 * dbus/dbus-list.c (_dbus_list_remove_last): new function
5631 * dbus/dbus-string.c (_dbus_string_test): free a string that
5634 * dbus/dbus-hash.c: use memory pools for the hash entries
5635 (rebuild_table): be more paranoid about overflow, and
5636 shrink table when we can
5637 (_dbus_hash_test): reduce number of sprintfs and write
5638 valid C89. Add tests for case where we grow and then
5639 shrink the hash table.
5641 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
5643 * dbus/dbus-connection.c (dbus_connection_register_handler)
5644 (dbus_connection_unregister_handler): new functions
5646 * dbus/dbus-message.c (dbus_message_get_name): new
5648 * dbus/dbus-list.c: fix docs typo
5650 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
5651 an object representing a handler for messages.
5653 2002-12-16 Anders Carlsson <andersca@codefactory.se>
5656 * glib/dbus-gthread.c: (dbus_gthread_init):
5657 Don't use the gdbus prefix for public functions.
5659 2002-12-16 Anders Carlsson <andersca@codefactory.se>
5663 Add GLib checks and fixup .pc files
5667 * glib/dbus-gmain.c: (gdbus_connection_prepare),
5668 (gdbus_connection_check), (gdbus_connection_dispatch),
5669 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
5670 (dbus_connection_gsource_new):
5671 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
5672 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
5673 * glib/test-dbus-glib.c: (message_handler), (main):
5676 2002-12-15 Harri Porten <porten@kde.org>
5678 * autogen.sh: check for libtoolize before attempting to use it
5680 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
5683 * .cvsignore: ignore more stamp files
5685 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
5687 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
5688 without make install.
5690 2002-12-15 Havoc Pennington <hp@pobox.com>
5692 * dbus/dbus-threads.c: add thread stubs that a higher library
5693 layer can fill in. e.g. the GLib wrapper might fill them in with
5694 GThread stuff. We still need to use this thread API to
5695 thread-safe-ize the library.
5697 2002-12-12 Havoc Pennington <hp@pobox.com>
5699 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
5700 below new interfaces and include fewer system headers.
5702 * dbus/dbus-sysdeps.c (_dbus_read): new function
5703 (_dbus_write): new function
5704 (_dbus_write_two): new function
5705 (_dbus_connect_unix_socket): new function
5706 (_dbus_listen_unix_socket): new function
5708 * dbus/dbus-message-internal.h: change interfaces to use
5711 2002-12-11 Havoc Pennington <hp@pobox.com>
5713 * dbus/dbus-types.h: add dbus_unichar
5715 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
5717 * dbus/dbus-connection.c (dbus_connection_send_message): return
5720 * dbus/dbus-transport.c: include dbus-watch.h
5722 * dbus/dbus-connection.c: include dbus-message-internal.h
5724 * HACKING: add file with coding guidelines stuff.
5726 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
5727 handling here, for security purposes (as in vsftpd). Not actually
5728 using this class yet.
5730 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
5731 system/libc usage here, as in vsftpd, for ease of auditing (and
5732 should also simplify portability). Haven't actually moved all the
5733 system/libc usage into here yet.
5735 2002-11-25 Havoc Pennington <hp@pobox.com>
5737 * dbus/dbus-internals.c (_dbus_verbose): fix to not
5738 always print the first verbose message.
5740 2002-11-24 Havoc Pennington <hp@pobox.com>
5742 * test/echo-client.c, test/echo-server.c: cheesy test
5745 * configure.in (AC_CHECK_FUNCS): check for writev
5747 * dbus/dbus-message.c (_dbus_message_get_network_data): new
5750 * dbus/dbus-list.c (_dbus_list_foreach): new function
5752 * dbus/dbus-internals.c (_dbus_verbose): new function
5754 * dbus/dbus-server.c, dbus/dbus-server.h: public object
5755 representing a server that listens for connections.
5757 * dbus/.cvsignore: create
5759 * dbus/dbus-errors.h, dbus/dbus-errors.c:
5760 public API for reporting errors
5762 * dbus/dbus-connection.h, dbus/dbus-connection.c:
5763 public object representing a connection that
5764 sends/receives messages. (Same object used for
5765 both client and server.)
5767 * dbus/dbus-transport.h, dbus/dbus-transport.c:
5768 Basic abstraction for different kinds of stream
5769 that we might read/write messages from.
5771 2002-11-23 Havoc Pennington <hp@pobox.com>
5773 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
5776 * dbus/dbus-test.c (main): add list test, and include
5777 dbus-test.h as intended
5779 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
5780 (_dbus_hash_table_remove_int): return value indicates
5781 whether the entry existed to remove
5783 * dbus/dbus-list.c: add linked list utility class,
5786 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
5789 2002-11-23 Havoc Pennington <hp@pobox.com>
5791 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
5792 DBUS_END_DECLS to nothing, that should fix this once and for all
5794 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
5796 * dbus/dbus-message.c, dbus/dbus-hash.c:
5797 add some missing @brief
5799 2002-11-23 Havoc Pennington <hp@pobox.com>
5801 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
5802 to avoid confusing Doxygen
5804 * dbus/dbus-hash.c: @} not }@
5806 * dbus/dbus-message.c (struct DBusMessage): split out
5809 2002-11-23 Havoc Pennington <hp@pobox.com>
5811 * configure.in: pile on more warning flags if using gcc
5813 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
5814 to document static functions
5816 * configure.in: add summary to end of configure so it
5817 looks nice and attractive
5819 * dbus/dbus-hash.c: finish implementation and write unit
5822 * configure.in: add --enable-tests to enable unit tests
5824 * dbus/dbus-test.c: test program to run unit tests
5825 for all files in dbus/*, initially runs a test for
5828 * dbus/dbus-internals.h: file to hold some internal utility stuff
5830 2002-11-22 Havoc Pennington <hp@redhat.com>
5832 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
5833 "ported" away from Tcl
5835 * dbus/dbus-types.h: header for types such as dbus_bool_t
5837 2002-11-22 Havoc Pennington <hp@redhat.com>
5839 * dbus/dbus.h: fixups for doc warnings
5841 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
5843 (QUIET): make it quiet so we can see warnings
5845 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
5847 2002-11-22 Havoc Pennington <hp@redhat.com>
5849 * Makefile.am: include "Doxyfile" target in all-local
5851 * configure.in: generate the Doxyfile
5853 * Doxyfile.in: move Doxyfile here, so we can use
5854 configure to generate a Doxyfile with the right
5857 2002-11-22 Havoc Pennington <hp@redhat.com>
5859 * dbus/dbus-message.c: move inline docs into .c file
5861 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
5862 so all docs are under doc/
5863 (MAN_EXTENSION): generate man pages. Use extension
5864 ".3dbus" which matches ".3qt" on my system,
5865 I guess this is OK, I don't know really.
5866 (FILE_PATTERNS): look for .c files not .h, makes sense
5869 2002-11-22 Havoc Pennington <hp@pobox.com>
5871 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
5872 because any app can be a server, and any app can be a client,
5873 the bus is a special kind of server.
5875 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
5877 * Doxyfile : adding. Still needs Makefile rules to be generated
5878 automatically (just run "doxygen" in the toplevel dir for now to
5881 * dbus/dbus-message.h : Adding sample docs (javadoc since
5882 resembles gtk-doc a little more)
5884 * dbus/dbus.h : Adding sample docs
5886 2002-11-21 Havoc Pennington <hp@redhat.com>
5888 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
5889 so we can allow ourselves to include files directly,
5890 instead of having to use dbus.h
5892 * dbus/dbus.h: fill in
5894 * dbus/dbus-message.h: sketch out a sample header file.
5895 Include griping if you include it directly instead of
5898 * dbus/dbus-macros.h: new file with macros for extern "C",
5899 TRUE/FALSE, NULL, etc.
5901 * doc/file-boilerplate.c: put include guards in here
5903 2002-11-21 Havoc Pennington <hp@redhat.com>
5905 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
5907 * COPYING: include the GPL as well, and license code
5908 under both AFL and GPL.
5910 2002-11-21 Havoc Pennington <hp@redhat.com>
5912 * acconfig.h: get rid of this
5914 * autogen.sh (run_configure): add --no-configure option
5916 * configure.in: remove AC_ARG_PROGRAM to make
5917 autoconf complain less. add AC_PREREQ.
5918 add AC_DEFINE third arg.
5920 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5923 Fix references so we can distcheck.
5925 2002-11-21 Havoc Pennington <hp@redhat.com>
5927 * Initial module creation