1 2003-10-28 Havoc Pennington <hp@redhat.com>
3 * bus/expirelist.c (do_expiration_with_current_time): detect
4 failure of the expire_func due to OOM
6 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9 NoReply error that's now created by the bus when the service exits
11 2003-10-28 Havoc Pennington <hp@redhat.com>
13 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
14 tests for set_path, set_interface, set_member, etc.
16 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
18 * dbus/dbus-message.c (set_string_field): always just delete and
19 re-append the field; accept NULL for deletion
20 (re_align_fields_recurse): reimplement
22 2003-10-26 Havoc Pennington <hp@redhat.com>
24 * dbus/dbus-connection.c: fix docs to properly describe the
26 (_dbus_connection_notify_disconnected): remove this function;
27 we can't synchronously add the disconnected message, we have to
28 do it after we've queued any remaining real messages
29 (_dbus_connection_get_dispatch_status_unlocked): queue the
30 disconnect message only if the transport has finished queueing all
31 its real messages and is disconnected.
32 (dbus_connection_disconnect): update the dispatch status here
34 2003-10-22 Havoc Pennington <hp@redhat.com>
36 * bus/bus.c (bus_context_check_security_policy): fix up assertion
38 * bus/connection.c (bus_transaction_send_from_driver): set the
39 destination to the connection's base service
41 2003-10-20 Havoc Pennington <hp@redhat.com>
43 hmm, make check is currently not passing.
45 * doc/dbus-specification.xml: add requirement that custom type
46 names follow the same rules as interface names.
48 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
49 duplication and allow 'c' to be 'custom'; dict is now 'm' for
52 * doc/dbus-specification.xml: update type codes to match
53 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
54 CUSTOM. Add type OBJECT_PATH to the spec.
56 2003-10-17 Havoc Pennington <hp@redhat.com>
58 * bus/driver.c (create_unique_client_name): use "." as separator
59 in base service names instead of '-'
61 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
62 byte at the end of the string
64 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
65 optimization macros since string validation seems to be a slow
68 * doc/dbus-specification.xml: restrict valid
69 service/interface/member/error names. Add test suite code for the
72 * dbus/dbus-string.c: limit service/interface/member/error names
75 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
76 format arg to verbose spew
78 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
79 memory, return instead of g_error
81 * test/test-service.c (path_message_func): support emitting a
84 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
85 activation bus type if DBUS_BUS_ACTIVATION was set; default to
86 assuming the activation bus was the session bus so that services
87 started manually will still register.
88 (init_connections_unlocked): fix so that in OOM situation we get
89 the same semantics when retrying the function
91 * test/test-service.c (main): change to use path registration, to
92 test those codepaths; register with DBUS_BUS_ACTIVATION rather
95 2003-10-16 Havoc Pennington <hp@redhat.com>
97 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
99 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
100 coverage of the tests
101 (coverage-report.txt): don't move the .da and .bbg files around
103 2003-10-16 Havoc Pennington <hp@redhat.com>
105 * bus/bus.c (struct BusContext): remove struct field I didn't mean
108 2003-10-16 Havoc Pennington <hp@redhat.com>
110 * bus/connection.c (bus_pending_reply_expired): either cancel or
112 (bus_connections_check_reply): use unlink, not remove_link, as we
113 don't want to free the link; fixes double free mess
115 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
116 where no reply was received
118 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
121 * bus/signals.c (match_rule_matches): add special cases for the
122 bus driver, so you can match on sender/destination for it.
124 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
125 DBUS_PRINT_BACKTRACE is set
127 * dbus/dbus-internals.c: add pid to assertion failure messages
129 * dbus/dbus-connection.c: add message type code to the debug spew
131 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
132 sender=foo not service=foo
134 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
135 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
136 DBUS_ACTIVATION_ADDRESS instead
138 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
139 DBUS_SYSTEM_BUS_ADDRESS if appropriate
141 * bus/bus.c (bus_context_new): handle OOM copying bus type into
144 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
145 (dbus_message_iter_get_object_path_array): new function (half
146 finished, disabled for the moment)
148 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
149 DBUS_MESSAGE_TYPE_ERROR
151 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
152 avoid redirecting stderr to /dev/null
153 (babysit): close stdin if not doing the "exit_with_session" thing
155 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
156 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
157 stdout/stdin, so things don't get confused
159 * bus/system.conf.in: fix to allow replies, I modified .conf
160 instead of .conf.in again.
162 2003-10-14 David Zeuthen <david@fubar.dk>
164 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
165 argtype to arg_type when raising unknown arg type exception.
166 Changed type list to reflect the changes in dbus-protocol.h so
167 the bindings actually work.
169 2003-10-14 Havoc Pennington <hp@redhat.com>
171 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
172 to have a bug keeping it from outputting the .da files sometimes
173 (string_get_string): don't append garbage nul bytes to the string.
175 2003-10-15 Seth Nickell <seth@gnome.org>
177 * python/Makefile.am:
179 Include dbus_h_wrapper.h in the dist tarball.
181 2003-10-14 Havoc Pennington <hp@redhat.com>
183 * bus/bus.c (bus_context_check_security_policy): revamp this to
184 work more sanely with new policy-based requested reply setup
186 * bus/connection.c (bus_transaction_send_from_driver): set bus
187 driver messages as no reply
189 * bus/policy.c (bus_client_policy_check_can_receive): handle a
190 requested_reply attribute on allow/deny rules
192 * bus/system.conf: add <allow requested_reply="true"/>
194 * bus/driver.c (bus_driver_handle_message): fix check for replies
195 sent to the bus driver, which was backward. How did this ever work
196 at all though? I think I'm missing something.
198 * dbus/dbus-message.c (decode_header_data): require error and
199 method return messages to have a reply serial field to be valid
200 (_dbus_message_loader_queue_messages): break up this function;
201 validate that reply serial and plain serial are nonzero;
202 clean up the OOM/error handling.
203 (get_uint_field): don't return -1 from this
204 (dbus_message_create_header): fix signed/unsigned bug
206 * bus/connection.c (bus_connections_expect_reply): save serial of
207 the incoming message, not reply serial
209 2003-10-14 Havoc Pennington <hp@redhat.com>
211 * bus/connection.c: implement pending reply tracking using
214 * bus/bus.c (bus_context_check_security_policy): verify that a
215 reply is pending in order to allow a reply to be sent. Deny
216 messages of unknown type.
218 * bus/dbus-daemon-1.1.in: update to mention new resource limits
220 * bus/bus.c (bus_context_get_max_replies_per_connection): new
221 (bus_context_get_reply_timeout): new
223 2003-10-13 Seth Nickell <seth@gnome.org>
225 * python/Makefile.am:
227 Pass "make distcheck": remove a couple files from DIST_FILES
228 that weren't included in the final version.
230 2003-10-12 Havoc Pennington <hp@pobox.com>
232 Added test code that 1) starts an actual bus daemon and 2) uses
233 DBusGProxy; fixed bugs that were revealed by the test. Lots
234 more testing possible, but this is the basic framework.
236 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
237 empty proxy lists from the proxy list hash
239 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
240 couple of return_if_fail checks
242 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
243 to allocate, so everything is cleared to NULL as it should be.
245 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
246 source as data to dbus_connection_set_timeout_functions() as the
247 timeout functions expected
249 * test/glib/run-test.sh: add a little script to start up a message
250 bus and run tests using it
252 * tools/dbus-launch.1: updates
254 * tools/dbus-launch.c (main): add --config-file option
256 * tools/dbus-launch.c (main): remove confusing else if (runprog)
257 that could never be reached.
259 * dbus/dbus-message.c (dbus_message_new_method_return)
260 (dbus_message_new_error, dbus_message_new_signal): set the
261 no-reply-expected flag on all these. Redundant, but may
262 as well be consistent.
264 2003-10-11 Havoc Pennington <hp@pobox.com>
266 * test/decode-gcov.c (function_solve_graph): make broken block
267 graph a nonfatal error since it seems to be broken. Need to debug
270 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
271 can't just check type > INVALID < LAST anymore
273 * dbus/dbus-message.c (dbus_message_get_signature): new function
274 (dbus_message_has_signature): new function
275 (struct DBusMessage): add signature field (right now it isn't sent
276 over the wire, just generated on the fly)
277 (dbus_message_copy): copy the signature, and init strings to
278 proper length to avoid some reallocs
279 (dbus_message_iter_init_array_iterator): return void, since it
281 (dbus_message_iter_init_dict_iterator): return void since it can't fail
282 (_dbus_message_loader_queue_messages): add silly temporary hack to
283 fill in message->signature on load
285 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
286 characters, so they are relatively human-readable.
288 2003-10-11 Havoc Pennington <hp@pobox.com>
290 * dbus/dbus-message.c (_dbus_message_test): add more test
291 coverage, but #if 0 for now since they uncover a bug
292 not fixed yet; I think in re_align_field_recurse()
293 (re_align_field_recurse): add FIXME about broken assertion
295 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
297 * bus/connection.c: share a couple code bits with expirelist.c
299 * bus/expirelist.h, bus/expirelist.c: implement a generic
300 expire-items-after-N-seconds facility, was going to share between
301 expiring connections and replies, decided not to use for expiring
304 * COPYING: include AFL 2.0 (still need to change all the file headers)
306 2003-10-09 Havoc Pennington <hp@redhat.com>
308 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
309 gcc 3.3. Not that we do anything about it yet.
311 * bus/signals.c (bus_match_rule_parse): impose max length on the
314 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
316 2003-10-09 Havoc Pennington <hp@redhat.com>
318 Make matching rules theoretically work (add parser).
320 * bus/bus.c (bus_context_check_security_policy): fix up to handle
321 the case where destination is explicitly specified as bus driver
322 and someone else is eavesdropping.
324 * bus/policy.c (bus_client_policy_check_can_receive): fix up
325 definition of eavesdropping and assertion
327 * tools/dbus-send.c (main): use dbus_message_type_from_string
329 * bus/signals.c (bus_match_rule_parse): implement
331 * dbus/dbus-message.c (dbus_message_type_from_string): new
333 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
335 2003-10-02 Havoc Pennington <hp@pobox.com>
337 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
338 dbus_gproxy_oneway_call
340 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
341 (dbus_server_setup_with_g_main): fix to allow calling them more
342 than once on the same args
343 (dbus_bus_get_with_g_main): new function
345 2003-10-02 Havoc Pennington <hp@redhat.com>
347 * doc/dbus-tutorial.xml: write some stuff
349 2003-09-29 Havoc Pennington <hp@pobox.com>
351 * configure.in: split checks for Doxygen from XML docs, check for
354 * doc/Makefile.am: XML-ify all the docs, and add a blank
357 2003-09-29 Havoc Pennington <hp@pobox.com>
359 * Merge dbus-object-names branch. To see the entire patch
360 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
362 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
364 2003-09-28 Havoc Pennington <hp@pobox.com>
366 * HACKING: update to reflect new server
368 2003-09-26 Seth Nickell <seth@gnome.org>
371 * python/examples/example-signals.py:
373 Start implementing some notions of signals. The API
374 is really terrible, but they sort of work (with the
375 exception of being able to filter by service, and to
376 transmit signals *as* a particular service). Need to
377 figure out how to make messages come from the service
380 * python/dbus_bindings.pyx.in:
382 Removed duplicate message_handler callbacks.
384 2003-09-25 Havoc Pennington <hp@redhat.com>
386 * bus/session.conf.in: fix my mess
388 2003-09-25 Havoc Pennington <hp@pobox.com>
390 * bus/session.conf.in: fix security policy, reported by Seth Nickell
392 2003-09-25 Seth Nickell <seth@gnome.org>
394 * python/examples/example-service.py:
396 Johan notices complete wrong code in example-service, but
397 completely wrong in a way that works exactly the same (!).
398 Johan is confused, how could this possibly work? Example
399 code fails to serve purpose of making things clear.
402 2003-09-25 Mark McLoughlin <mark@skynet.ie>
404 * doc/dbus-specification.sgml: don't require header fields
405 to be 4-byte aligned and specify that fields should be
406 distinguished from padding by the fact that zero is not
409 * doc/TODO: remove re-alignment item and add item to doc
410 the OBJECT_PATH type.
412 * dbus/dbus-message.c:
413 (HeaderField): rename the original member to value_offset
414 and introduce a name_offset member to keep track of where
415 the field actually begins.
416 (adjust_field_offsets): remove.
417 (append_int_field), (append_uint_field),
418 (append_string_field): don't align the start of the header
419 field to a 4-byte boundary.
420 (get_next_field): impl finding the next marhsalled field
422 (re_align_field_recurse): impl re-aligning a number of
423 already marshalled fields.
424 (delete_field): impl deleting a field of any type and
425 re-aligning any following fields.
426 (delete_int_or_uint_field), (delete_string_field): remove.
427 (set_int_field), (set_uint_field): no need to re-check
428 that we have the correct type for the field.
429 (set_string_field): ditto and impl re-aligning any
431 (decode_header_data): update to take into account that
432 the fields aren't 4-byte aligned any more and the new
433 way to distinguish padding from header fields. Also,
434 don't exit when there is too much header padding.
435 (process_test_subdir): print the directory.
436 (_dbus_message_test): add test to make sure a following
437 field is re-aligned correctly after field deletion.
439 * dbus/dbus-string.[ch]:
440 (_dbus_string_insert_bytes): rename from insert_byte and
441 allow the insert of multiple bytes.
442 (_dbus_string_test): test inserting multiple bytes.
444 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
445 warning note to docs about having to re-align any
446 marshalled values following the string.
448 * dbus/dbus-message-builder.c:
449 (append_string_field), (_dbus_message_data_load):
450 don't align the header field.
452 * dbus/dbus-auth.c: (process_test_subdir): print the
455 * test/break-loader.c: (randomly_add_one_byte): upd. for
458 * test/data/invalid-messages/bad-header-field-alignment.message:
461 * test/data/valid-messages/unknown-header-field.message: shove
462 a dict in the unknown field.
464 2003-09-25 Seth Nickell <seth@gnome.org>
467 * python/dbus_bindings.pyx.in:
469 Handle return values.
471 * python/examples/example-client.py:
472 * python/examples/example-service.py:
474 Pass back return values from the service to the client.
476 2003-09-24 Seth Nickell <seth@gnome.org>
480 Connect Object methods (when you are sharing an object) up... pass
481 in a list of methods to be shared. Sharing all the methods just
482 worked out too weird. You can now create nice Services over the
485 * python/dbus_bindings.pyx.in:
487 Keep references to user_data tuples passed into C functions so
488 Python doesn't garbage collect on us.
490 Implement MethodReturn and Error subclasses of Message for creating
491 DBusMessage's of those types.
493 * python/examples/example-client.py:
494 * python/examples/example-service.py:
496 Simple example code showing both how create DBus services and objects,
499 2003-09-23 Havoc Pennington <hp@pobox.com>
501 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
503 2003-09-23 Havoc Pennington <hp@redhat.com>
505 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
506 (dbus_gproxy_disconnect_signal): implement
507 (dbus_gproxy_manager_remove_signal_match): implement
508 (dbus_gproxy_manager_add_signal_match): implement
509 (dbus_gproxy_oneway_call): implement
511 2003-09-23 Havoc Pennington <hp@pobox.com>
513 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
514 subclass. This means dropping the transparent thread safety of the
515 proxy; you now need a separate proxy per-thread, or your own
516 locking on the proxy. Probably right anyway.
517 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
519 2003-09-22 Havoc Pennington <hp@redhat.com>
521 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
523 2003-09-21 Seth Nickell <seth@gnome.org>
525 First checkin of the Python bindings.
528 * python/Makefile.am:
529 * python/dbus_bindings.pyx.in:
530 * python/dbus_h_wrapper.h:
532 Pieces for Pyrex to operate on, building a dbus_bindings.so
533 python module for low-level access to the DBus APIs.
537 High-level Python module for accessing DBus objects.
542 Build stuff for the python bindings.
546 Extra macro needed for finding the Python C header files.
548 2003-09-21 Havoc Pennington <hp@pobox.com>
550 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
551 implementing the proxy manager, didn't get very far.
553 * dbus/dbus-bus.c (dbus_bus_add_match): new
554 (dbus_bus_remove_match): new
556 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
557 path_name argument; adjust the other not-yet-implemented
558 gproxy constructors to be what I think they should be.
560 2003-09-21 Havoc Pennington <hp@pobox.com>
562 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
563 by default for message bus connections.
565 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
566 exit_on_disconnect flag is set and we process the disconnected
568 (dbus_connection_set_exit_on_disconnect): new function
570 2003-09-21 Havoc Pennington <hp@pobox.com>
572 Get matching rules mostly working in the bus; only actually
573 parsing the rule text remains. However, the client side of
574 "signal connections" hasn't been started, this patch is only the
577 * dbus/dispatch.c: fix for the matching rules changes
579 * bus/driver.c (bus_driver_handle_remove_match)
580 (bus_driver_handle_add_match): send an ack reply from these
583 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
584 arguments, reported by Seth Nickell
586 * bus/config-parser.c (append_rule_from_element): support
587 eavesdrop=true|false attribute on policies so match rules
588 can be prevented from snooping on the system bus.
590 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
591 and "destination" in attribute names; fix some docs bugs;
592 add eavesdrop=true|false attribute
594 * bus/driver.c (bus_driver_handle_add_match)
595 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
598 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
599 rid of broadcast service concept, signals are just always broadcast
601 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
602 mostly implement matching rules stuff (currently only exposed as signal
605 2003-09-21 Mark McLoughlin <mark@skynet.ie>
607 * doc/dbus-specification.sgml: Change the header field name
608 to be an enum and update the rest of the spec to reference
609 the fields using the conventinal name.
611 * dbus/dbus-protocol.h: update to reflect the spec.
613 * doc/TODO: add item to remove the 4 byte alignment requirement.
615 * dbus/dbus-message.c: Remove the code to generalise the
616 header/body length and serial number header fields as named
617 header fields so we can reference field names using the
619 (append_int_field), (append_uint_field), (append_string_field):
620 Append the field name as a byte rather than four chars.
621 (delete_int_or_uint_field), (delete_string_field): reflect the
622 fact that the field name and typecode now occupy 4 bytes instead
624 (decode_string_field), (decode_header_data): update to reflect
625 protocol changes and move the field specific encoding from
626 decode_string_field() back into decode_header_data().
628 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
629 Add utility to aid debugging.
631 * dbus/dbus-message-builder.c:
632 (append_string_field), (_dbus_message_data_load): Update to
633 reflect protocol changes; Change the FIELD_NAME directive
634 to HEADER_FIELD and allow it to take the field's conventional
635 name rather than the actual value.
637 * test/data/*/*.message: Update to use HEADER_FIELD instead
638 of FIELD_NAME; Always align the header on an 8 byte boundary
639 *before* updating the header length.
641 2003-09-15 Havoc Pennington <hp@pobox.com>
643 * dbus/dbus-pending-call.c: add the get/set object data
644 boilerplate as for DBusConnection, etc. Use generic object data
645 for the notify callback.
647 * glib/dbus-gparser.c (parse_node): parse child nodes
649 * tools/dbus-viewer.c: more hacking on the dbus-viewer
651 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
652 contain functions shared between the convenience lib and the
655 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
656 -export-symbols-regex to the GLib library
658 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
659 fix the locking in here, and add a default handler for
660 Introspect() that just returns sub-nodes.
662 2003-09-14 Havoc Pennington <hp@pobox.com>
664 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
665 rather than gfoo consistent
667 * glib/dbus-gproxy.h: delete for now, move contents to
668 dbus-glib.h, because the include files don't work right since we
669 aren't in the dbus/ subdir.
671 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
672 (dbus_gproxy_end_call): finish
673 (dbus_gproxy_begin_call): finish
675 * glib/dbus-gmain.c (dbus_set_g_error): new
677 * glib/dbus-gobject.c (handle_introspect): include information
678 about child nodes in the introspection
680 * dbus/dbus-connection.c (dbus_connection_list_registered): new
681 function to help in implementation of introspection
683 * dbus/dbus-object-tree.c
684 (_dbus_object_tree_list_registered_and_unlock): new function
686 2003-09-12 Havoc Pennington <hp@pobox.com>
688 * glib/dbus-gidl.h: add common base class for all the foo_info
691 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
694 * test/Makefile.am: try test srcdir -ef . in addition to test
695 srcdir = ., one of them should work (yeah lame)
697 * glib/Makefile.am: build the "idl" parser stuff as a convenience
700 * glib/dbus-gparser.h: make description_load routines return
701 NodeInfo* not Parser*
703 * Makefile.am (SUBDIRS): build test dir after all library dirs
705 * configure.in: add GTK+ detection
707 2003-09-07 Havoc Pennington <hp@pobox.com>
709 * Make Doxygen contented.
711 2003-09-07 Havoc Pennington <hp@pobox.com>
713 * doc/dbus-specification.sgml: more updates
715 2003-09-06 Havoc Pennington <hp@pobox.com>
717 * doc/dbus-specification.sgml: partial updates
719 * bus/dbus-daemon-1.1.in: fix the config file docs for the
720 zillionth time; hopefully I edited the right file this time.
722 * bus/config-parser.c (append_rule_from_element): support
723 send_type, send_path, receive_type, receive_path
725 * bus/policy.c: add message type and path to the list of things
726 that can be "firewalled"
728 2003-09-06 Havoc Pennington <hp@pobox.com>
730 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
731 (dbus_connection_register_object_path): make this not handle
732 messages to paths below the given path
734 2003-09-03 Havoc Pennington <hp@pobox.com>
736 * test/glib/Makefile.am: add this with random glib-linked test
739 * glib/Makefile.am: remove the random test programs from here,
740 leave only the unit tests
742 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
743 uscore/javacaps conversion, and fix
744 (get_object_property, set_object_property): change to .NET
745 convention for mapping props to methods, set_FooBar/get_FooBar,
746 since one language has such a convention we may as well copy it.
747 Plus real methods in either getFooBar or get_foo_bar style won't
748 collide with this convention.
750 2003-09-01 Havoc Pennington <hp@pobox.com>
752 * glib/dbus-gparser.c: implement
754 * glib/dbus-gobject.c: start implementing skeletons support
756 * configure.in: when disabling checks/assert, also define
757 G_DISABLE_ASSERT and G_DISABLE_CHECKS
759 2003-09-01 Havoc Pennington <hp@pobox.com>
761 * glib/Makefile.am: rearrange a bunch of files and get "make
762 check" framework set up
764 2003-08-31 Havoc Pennington <hp@pobox.com>
766 * fix build with --disable-tests
768 2003-08-30 Havoc Pennington <hp@pobox.com>
770 * dbus/dbus-connection.c: purge DBusMessageHandler
772 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
773 use callbacks everywhere
775 2003-08-30 Havoc Pennington <hp@pobox.com>
777 * test/data/valid-config-files/system.d/test.conf: change to
778 root for the user so warnings don't get printed
780 * dbus/dbus-message.c: add dbus_message_get_path,
781 dbus_message_set_path
783 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
784 dispatching to a path
786 * dbus/dbus-string.c (_dbus_string_validate_path): add
788 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
789 (_dbus_marshal_object_path): implement
791 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
792 to contain the path to the target object
793 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
794 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
796 2003-08-30 Havoc Pennington <hp@pobox.com>
798 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
800 2003-08-29 Havoc Pennington <hp@pobox.com>
802 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
804 (struct DBusObjectSubtree): shrink this
805 a lot, since we may have a lot of them
806 (_dbus_object_tree_free_all_unlocked): implement
807 (_dbus_object_tree_dispatch_and_unlock): implement
809 2003-08-29 Havoc Pennington <hp@pobox.com>
811 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
813 2003-08-28 Havoc Pennington <hp@pobox.com>
817 * dbus/dbus-connection.c: port to no ObjectID, create a
818 DBusObjectTree, rename ObjectTree to ObjectPath in public API
820 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
821 everything except UnregisterFunction and MessageFunction
823 * dbus/dbus-marshal.c: port away from DBusObjectID,
824 add DBUS_TYPE_OBJECT_PATH
826 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
827 dbus/dbus-objectid.[hc]: remove these, we are moving to
828 path-based object IDs
830 2003-08-25 Havoc Pennington <hp@pobox.com>
832 Just noticed that dbus_message_test is hosed, I wonder when I
833 broke that. I thought make check was passing earlier...
835 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
836 container tree, will replace most of dbus-object-registry
838 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
841 2003-08-19 Havoc Pennington <hp@pobox.com>
843 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
844 (dbus_message_is_error): fix this function
846 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
849 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
850 reflect clarified man page
851 (bus_client_policy_check_can_send): ditto
853 * bus/session.conf.in: fixup
855 * bus/system.conf.in: fixup
857 2003-08-18 Havoc Pennington <hp@redhat.com>
859 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
861 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
862 dumb bug created earlier (wrong order of args to
863 decode_header_data())
865 * tools/dbus-send.c: port
867 * tools/dbus-print-message.c (print_message): port
869 * test/data/*messages: port all messages over
871 * dbus/dbus-message-builder.c: support including
874 * bus/driver.c: port over
876 * bus/dispatch.c: port over to new stuff
878 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
879 rename disconnect signal to "Disconnected"
881 2003-08-17 Havoc Pennington <hp@pobox.com>
883 This doesn't compile yet, but syncing up so I can hack on it from
884 work. What are branches for if not broken code? ;-)
886 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
887 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
888 DBUS_HEADER_FIELD_ERROR_NAME
890 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
891 for the interface+member pairs
892 (string_hash): change to use g_str_hash algorithm
893 (find_direct_function, find_string_function): refactor these to
896 * dbus/dbus-message.c: port all of this over to support
897 interface/member fields instead of name field
899 * dbus/dbus-object-registry.c: port over
901 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
902 from _dbus_string_validate_name
904 * bus/dbus-daemon-1.1: change file format for the
905 <deny>/<allow> stuff to match new message naming scheme
907 * bus/policy.c: port over
909 * bus/config-parser.c: parse new format
911 2003-08-16 Havoc Pennington <hp@pobox.com>
913 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
916 * glib/dbus-gproxy.c: some hacking
918 2003-08-15 Havoc Pennington <hp@redhat.com>
920 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
922 * dbus/dbus-connection.c
923 (dbus_connection_send_with_reply_and_block): factor out internals;
924 change to convert any error replies to DBusError instead of
925 returning them as a message
927 2003-08-15 Havoc Pennington <hp@pobox.com>
929 * dbus/dbus-connection.c,
930 dbus/dbus-pending-call.c: Finish the pending call stuff
932 2003-08-14 Havoc Pennington <hp@redhat.com>
934 * dbus/dbus-pending-call.c: start on new object that will replace
935 DBusMessageHandler and ReplyHandlerData for tracking outstanding
938 * dbus/dbus-gproxy.c: start on proxy object used to communicate
939 with remote interfaces
941 * dbus/dbus-gidl.c: do the boring boilerplate in here
943 2003-08-12 Havoc Pennington <hp@pobox.com>
945 * bus/dispatch.c (bus_dispatch): make this return proper
946 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
948 * dbus/dbus-errors.c (dbus_set_error): use
949 _dbus_string_append_printf_valist
951 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
952 (_dbus_string_append_printf): new
954 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
957 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
958 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
959 message is unhandled.
961 2003-08-11 Havoc Pennington <hp@pobox.com>
963 * bus/test.c (client_disconnect_handler): change to return
964 HANDLED (would have been REMOVE_MESSAGE)
966 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
967 HANDLED/NOT_YET_HANDLED instead of
968 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
971 2003-08-10 Havoc Pennington <hp@pobox.com>
973 * tools/dbus-send.c (main): add --type argument, for now
974 supporting only method_call and signal types.
976 * tools/dbus-print-message.c: print message type
978 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
979 init connection->objects
981 * doc/dbus-specification.sgml: fix sgml
983 * bus/*.c: port over to object-instance API changes
985 * test/test-service.c: ditto
987 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
988 name, we will have to fix up the rest of the code to also handle
990 (dbus_message_new): generic message-creation call
991 (set_string_field): allow appending name field
993 2003-08-06 Havoc Pennington <hp@pobox.com>
995 * dbus/dbus-object-registry.c: implement signal connection
998 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
1000 * dbus/dbus-internals.c (_dbus_memdup): new function
1002 2003-08-02 Havoc Pennington <hp@pobox.com>
1004 * dbus/dbus-message.c (dbus_message_get_no_reply)
1005 (dbus_message_set_no_reply): add these and remove
1006 set_is_error/get_is_error
1008 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
1009 remove the ERROR flag, since there's now an ERROR type
1011 2003-08-01 Havoc Pennington <hp@pobox.com>
1013 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
1016 * dbus/dbus-message.c (dbus_message_get_type): new function
1018 * doc/dbus-specification.sgml: add "type" byte to messages
1020 2003-08-01 Havoc Pennington <hp@pobox.com>
1022 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
1023 a message type enum to distinguish kinds of message
1024 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
1025 that need not be replied to
1027 2003-08-01 Havoc Pennington <hp@pobox.com>
1029 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
1030 (unpack_8_octets): fix no-64-bit-int bug
1032 * dbus/dbus-object-registry.c (validate_id): validate the
1033 connection ID bits, not just the instance ID.
1035 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
1036 the connection-global 33 bits of the object ID
1038 * dbus/dbus-object-registry.c (info_from_entry): fill in
1039 object ID in the new way
1041 * dbus/dbus-objectid.h: rather than high/low bits, specifically
1042 define server/client/instance bits.
1044 2003-07-30 Havoc Pennington <hp@pobox.com>
1046 * dbus/dbus-connection.c (dbus_connection_register_object): fix
1049 2003-07-13 Havoc Pennington <hp@pobox.com>
1051 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
1052 fields to DBusObjectVTable and DBusObjectInfo
1054 2003-07-12 Havoc Pennington <hp@pobox.com>
1056 * dbus/dbus-object-registry.c: implement unit test,
1057 fix bugs discovered in process
1059 * dbus/dbus-connection.c: remove handler_table and
1060 register_handler(), add DBusObjectRegistry usage
1062 * dbus/dbus-objectid.c (dbus_object_id_is_null)
1063 (dbus_object_id_set_null): new functions
1065 2003-07-08 Havoc Pennington <hp@pobox.com>
1067 * dbus/dbus-object.c: implement some of this
1069 * dbus/dbus-object-registry.c
1070 (_dbus_object_registry_add_and_unlock): fill in the object_id out
1072 (_dbus_object_registry_new): handle OOM
1074 2003-07-08 Havoc Pennington <hp@pobox.com>
1076 * dbus/dbus-object.h: sketch out an API for registering objects
1077 with a connection, that allows us to use as little as 24 bytes
1078 per object and lets application code represent an object in
1079 any conceivable way.
1081 * dbus/dbus-object-registry.c: implement the hard bits of the
1082 DBusConnection aspect of object API. Not yet wired up.
1084 2003-07-06 Havoc Pennington <hp@pobox.com>
1086 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
1087 (_dbus_marshal_object_id): new
1088 (_dbus_demarshal_object_id): new
1089 (_dbus_marshal_get_arg_end_pos): support object ID type, and
1090 consolidate identical switch cases. Don't conditionalize handling
1091 of DBUS_TYPE_UINT64, need to handle the type always.
1092 (_dbus_marshal_validate_arg): consolidate identical cases, and
1093 handle DBUS_TYPE_OBJECT_ID
1095 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
1097 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
1099 2003-09-28 Havoc Pennington <hp@pobox.com>
1103 2003-09-28 Havoc Pennington <hp@pobox.com>
1105 * doc/Makefile.am (dbus-specification.html): testing a funky hack
1106 to work with Debian db2html
1108 2003-09-28 Havoc Pennington <hp@pobox.com>
1110 * configure.in: 0.13
1112 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
1113 stylesheet-images for benefit of Debian
1115 Change back to using filesystem-linked sockets for the system
1116 bus, so only root can create the default system bus address.
1118 * bus/system.conf.in: change to use
1119 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1121 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
1124 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1125 here, and AC_DEFINE DBUS_SYSTEM_PATH
1127 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1130 * doc/busconfig.dtd:
1133 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1135 * doc/dbus-specification.sgml:
1136 Add activation reply values.
1138 2003-08-05 Havoc Pennington <hp@redhat.com>
1140 * configure.in: 0.12
1142 2003-08-05 Anders Carlsson <andersca@codefactory.se>
1144 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
1145 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
1146 (add_watch), (remove_watch), (create_source):
1147 Refcount fds, fixes some reentrancy issues.
1149 2003-07-30 Havoc Pennington <hp@redhat.com>
1151 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
1152 bus address to be abstract if we have abstract sockets
1156 2003-07-28 Havoc Pennington <hp@redhat.com>
1158 * bus/messagebus.in: fix to avoid processname/servicename
1159 confusion, from Michael Kearey
1160 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
1162 2003-07-23 Havoc Pennington <hp@pobox.com>
1164 * dbus/dbus-message.c (dbus_message_iter_get_named):
1165 fix from Andy Hanton to remove broken "+1"
1167 2003-07-16 Havoc Pennington <hp@pobox.com>
1169 * tools/dbus-launch.c (babysit): close stdout/stderr in the
1170 babysitter process, as suggested by Thomas Leonard, so
1171 an "eval `dbus-launch --exit-with-session`" will actually
1174 2003-07-16 Havoc Pennington <hp@pobox.com>
1176 * configure.in: print out EXPANDED_* variables in the summary at
1177 the end; clean up the code that computes EXPANDED_ variables and
1178 get the ones using exec_prefix right. Should make things work
1179 when you build without --prefix
1181 2003-06-29 Havoc Pennington <hp@pobox.com>
1183 * mono/Test.cs (class Test): fire up a main loop and run it
1185 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
1186 done once, the app has to do it
1188 2003-06-26 Havoc Pennington <hp@pobox.com>
1190 * mono/Connection.cs: set up connection with the glib main loop
1192 2003-07-01 Havoc Pennington <hp@redhat.com>
1194 * doc/dbus-specification.sgml: clarify the format of a type code,
1195 change suggested by Jim Blandy
1197 2003-06-29 Miloslav Trmac <mitr@volny.cz>
1200 * tools/Makefile.am: Don't assume srcdir == builddir.
1202 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
1203 the allocated block.
1204 (_dbus_memory_test): New function.
1205 * dbus/dbus-test.h: Add _dbus_memory_test ().
1206 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
1208 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
1210 (dbus_message_new): Remove obsolete @todo.
1212 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
1213 (_dbus_marshal_set_uint64): Fix comment.
1215 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
1216 hardcode FIELD_REPLY_SERIAL.
1218 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
1219 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
1221 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
1222 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
1224 2003-06-24 Havoc Pennington <hp@pobox.com>
1226 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
1228 2003-06-23 Anders Carlsson <andersca@codefactory.se>
1234 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
1235 * gcj/org/.cvsignore:
1236 * gcj/org/Makefile.am:
1237 * gcj/org/freedesktop/.cvsignore:
1238 * gcj/org/freedesktop/Makefile.am:
1239 * gcj/org/freedesktop/dbus/.cvsignore:
1240 * gcj/org/freedesktop/dbus/Makefile.am:
1241 * gcj/org/freedesktop/dbus/Message.java: (Message),
1243 * gcj/org/freedesktop/dbus/natMessage.cc:
1244 Fix the build system.
1246 2003-06-22 Havoc Pennington <hp@pobox.com>
1248 * mono/Connection.cs: add more bindings
1250 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
1253 2003-06-22 Havoc Pennington <hp@pobox.com>
1255 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
1256 Start wrapping more stuff.
1258 2003-06-22 Havoc Pennington <hp@pobox.com>
1260 * mono/Message.cs: implement Message.Wrap() that ensures we only
1261 have a single C# wrapper per DBusMessage, assuming it works which
1262 it probably doesn't.
1264 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
1265 (dbus_message_free_data_slot): new
1266 (dbus_message_set_data): new
1267 (dbus_message_get_data): new
1269 2003-06-22 Havoc Pennington <hp@pobox.com>
1271 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
1272 (_dbus_data_slot_allocator_alloc): rework these to keep a
1273 reference count on each slot and automatically manage a global
1274 slot ID variable passed in by address
1276 * bus/bus.c: convert to new dataslot API
1278 * dbus/dbus-bus.c: convert to new dataslot API
1280 * dbus/dbus-connection.c: convert to new dataslot API
1282 * dbus/dbus-server.c: convert to new dataslot API
1284 * glib/dbus-gmain.c: ditto
1288 * bus/connection.c: ditto
1290 2003-06-22 Anders Carlsson <andersca@codefactory.se>
1292 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
1293 after the gcj checks so that the correct configuration tags
1294 will be added to libtool.
1296 * dbus-glib-1.pc.in: No need to specify any includes since
1297 dbus-1.pc.in has those.
1299 2003-06-22 Havoc Pennington <hp@pobox.com>
1301 * mono/*, gcj/*, configure.in, Makefile.am:
1302 Check in makefiles and subdirs for mono and gcj bindings.
1303 Neither binding actually exists, just trying to get through
1304 all the build and other boring bits.
1306 2003-06-21 Philip Blundell <philb@gnu.org>
1308 * tools/dbus-monitor.1: Updated.
1310 * tools/dbus-send.1: Likewise.
1312 2003-06-20 Anders Carlsson <andersca@codefactory.se>
1314 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
1315 for hangup and error after checking read so we won't discard
1316 pending data if both hangup and read are set.
1318 2003-06-19 Philip Blundell <philb@gnu.org>
1320 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
1322 * tools/dbus-send.c: Accept both --system and --session.
1324 * tools/dbus-monitor.c: Same here.
1326 2003-06-19 Anders Carlsson <andersca@codefactory.se>
1328 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
1329 from C++ (Patch by Miloslav Trmac).
1331 2003-06-15 Joe Shaw <joe@assbarn.com>
1333 * configure.in: Check for socklen_t.
1335 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1337 * test/test-segfault.c: Add #include <sys/time.h>
1339 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1340 dbus-launch needs it.
1342 2003-06-09 Havoc Pennington <hp@redhat.com>
1344 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1345 SUN_LEN, it breaks abstract socket usage
1347 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1350 2003-06-04 Havoc Pennington <hp@pobox.com>
1352 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1353 using unix:abstract=/foo, and when listening in a tmpdir
1354 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1356 * dbus/dbus-transport.c (_dbus_transport_open): support
1359 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1360 support abstract sockets
1362 * dbus/dbus-transport-unix.c
1363 (_dbus_transport_new_for_domain_socket): support abstract sockets
1365 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1366 toggle as an argument, implement abstract namespace support
1367 (_dbus_listen_unix_socket): ditto
1369 * configure.in: add --enable-abstract-sockets and implement
1370 a configure check for autodetection of the right value.
1372 2003-06-01 Havoc Pennington <hp@pobox.com>
1374 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1375 in /tmp (though on Linux this will end up being useless,
1376 when we add abstract namespace support)
1378 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1381 2003-05-28 Colin Walters <walters@verbum.org>
1383 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1385 2003-05-18 Anders Carlsson <andersca@codefactory.se>
1387 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1389 2003-05-17 Colin Walters <walters@gnu.org>
1391 * tools/dbus-send.c: Don't exit with an error code if --help was
1392 passed. Default to using the session bus instead of the system
1395 * tools/dbus-launch.c: Ditto.
1397 * tools/dbus-monitor.c: Ditto.
1399 * tools/dbus-send.1: Update with new arguments.
1401 * tools/dbus-launch.c: Emit code to export variables. New
1402 arguments -s and -c to specify shell syntax, and a bit of code to
1403 autodetect syntax. Also, allow specifying a program to run.
1405 * tools/dbus-launch.1: Update with new arguments.
1407 * tools/dbus-send.1: Ditto.
1409 * tools/dbus-monitor.1: Ditto.
1411 2003-05-17 Havoc Pennington <hp@pobox.com>
1413 * bus/config-parser.c (merge_included): merge in policies from
1414 child configuration file.
1416 * bus/policy.c (bus_policy_merge): function to merge two policies
1419 2003-05-16 Havoc Pennington <hp@redhat.com>
1421 * dbus/dbus-connection.c: disable verbose lock spew
1423 * tools/dbus-send.c: add --print-reply command line option
1425 * tools/dbus-print-message.h (print_message): new util function
1426 shared by dbus-send and dbus-monitor
1428 * tools/dbus-monitor.c (handler_func): exit on disconnect
1430 * dbus/dbus-transport-unix.c (do_reading): if the transport is
1431 disconnected, don't try to use the read_watch
1433 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1434 so we can find this bug more easily
1436 2003-05-16 Havoc Pennington <hp@redhat.com>
1438 * bus/policy.c (free_rule_list_func): avoid a crash when passed
1439 NULL as DBusHashTable is annoyingly likely to do.
1441 2003-05-16 Colin Walters <walters@verbum.org>
1443 * tools/dbus-monitor.c: Add --session argument and usage()
1446 * tools/dbus-monitor.1: Update with new --session arg.
1448 * bus/Makefile.am (install-data-hook): Create
1449 $(libdir)/dbus-1.0/services so that the session bus is happy.
1451 2003-05-15 Havoc Pennington <hp@redhat.com>
1453 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
1454 on non-x86. ifdef's are evil.
1456 2003-05-15 Havoc Pennington <hp@redhat.com>
1458 * configure.in: 0.11
1462 * bus/Makefile.am (initddir): apparently we are supposed to put
1463 init scripts in /etc/rc.d/init.d not /etc/init.d
1465 * bus/Makefile.am: remove the "you must --enable-tests to make
1466 check" as it broke distcheck
1468 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
1470 2003-05-13 James Willcox <jwillcox@gnome.org>
1473 * bus/activation.c: (bus_activation_service_created),
1474 (bus_activation_activate_service):
1475 * bus/driver.c: (bus_driver_send_service_deleted),
1476 (bus_driver_send_service_created), (bus_driver_send_service_lost),
1477 (bus_driver_send_service_acquired),
1478 (bus_driver_send_welcome_message),
1479 (bus_driver_handle_list_services):
1480 * bus/session.conf.in:
1481 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
1482 (dbus_bus_service_exists), (dbus_bus_activate_service):
1485 Add some convenience API which lets you activate a service, and did a
1486 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
1487 and dbus_message_get_args()
1489 2003-05-11 Havoc Pennington <hp@pobox.com>
1491 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
1492 calling _dbus_marshal_validate_arg() for every byte in a byte
1495 * dbus/dbus-message-handler.c: use atomic reference counting to
1496 reduce number of locks slightly; the global lock in here sucks
1498 * dbus/dbus-connection.c
1499 (_dbus_connection_update_dispatch_status_and_unlock): variant of
1500 update_dispatch_status that can be called with lock held; then use
1501 in a couple places to reduce locking/unlocking
1502 (dbus_connection_send): hold the lock over the whole function
1503 instead of acquiring it twice.
1505 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
1507 * bus/connection.c (bus_connections_setup_connection): fix access
1508 to already-freed memory.
1510 * dbus/dbus-connection.c: keep a little cache of linked list
1511 nodes, to avoid using the global linked list alloc lock in the
1512 normal send-message case. Instead we just use the connection lock
1513 that we already have to take.
1515 * dbus/dbus-list.c (_dbus_list_find_last): new function
1517 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
1518 change to use a struct for the atomic type; fix docs,
1519 they return value before increment, not after increment.
1521 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
1522 (_dbus_string_append_8_aligned): new functions to try to
1523 microoptimize this operation.
1524 (reallocate_for_length): break this out of set_length(), to
1525 improve profile info, and also so we can consider inlining the
1528 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
1529 strings with some preallocation, cuts down on our calls to realloc
1530 a fair bit. Though if we can get the "move entire string to empty
1531 string" optimization below to kick in here, it would be better.
1533 * dbus/dbus-string.c (_dbus_string_move): just call
1534 _dbus_string_move_len
1535 (_dbus_string_move_len): add a special case for moving
1536 an entire string into an empty string; we can just
1537 swap the string data instead of doing any reallocs.
1538 (_dbus_string_init_preallocated): new function
1540 2003-05-11 Havoc Pennington <hp@pobox.com>
1542 Write a "test-profile" that does echo client-server with threads;
1543 profile reveals lock contention, memcpy/realloc of buffers, and
1544 UTF-8 validation as hot spots. 20% of lock contention eliminated
1545 with dbus_atomic_inc/dec implementation on x86. Much remaining
1546 contention is global mempool locks for GList and DBusList.
1548 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
1551 * dbus/dbus-connection.c (struct DBusConnection): use
1552 dbus_atomic_t for the reference count
1554 * dbus/dbus-message.c (struct DBusMessage): declare
1555 dbus_atomic_t values as volatile
1557 * configure.in: code to detect ability to use atomic integer
1558 operations in assembly, from GLib patch
1560 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
1561 time, tired of it being wrong in threads and forked processes
1563 * glib/test-profile.c: a little program to bounce messages back
1564 and forth between threads and eat CPU
1566 * dbus/dbus-connection.c: add debug spew macros for debugging
1567 thread locks; include config.h at top; fix deadlock in
1568 dbus_connection_flush()
1570 2003-05-08 Havoc Pennington <hp@pobox.com>
1572 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
1573 data from getting written, and there wasn't a good reason to
1576 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
1577 dbus_verbose lines in test coverage
1578 (main): add list of functions sorted by # of untested blocks
1579 to the coverage report
1581 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
1583 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
1585 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
1586 extend test coverage
1588 * test/data/auth/cancel.auth-script: test canceling an
1591 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
1592 aren't used. in CVS history if we end up needing them.
1594 2003-05-04 Havoc Pennington <hp@pobox.com>
1596 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
1599 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
1600 function, which assumed length was in # of strings, not bytes
1602 * dbus/dbus-message.c (_dbus_message_test): add tests for some
1605 * dbus/dbus-connection.c
1606 (_dbus_connection_queue_received_message): disable function for
1607 now, we are only using it in test mode
1609 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1610 remove a mistaken FIXME
1612 2003-05-04 Havoc Pennington <hp@pobox.com>
1614 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
1615 unlock mutex on successful return, patch from Anders Gustafsson
1617 2003-05-04 Havoc Pennington <hp@pobox.com>
1619 * dbus-glib-1.pc.in (Requires): fix dependencies, from
1622 2003-05-04 Havoc Pennington <hp@pobox.com>
1624 * tools/dbus-launch.c: implement
1626 * bus/main.c (main), bus/bus.c (bus_context_new):
1627 implement --print-pid and --fork
1629 2003-05-03 Havoc Pennington <hp@redhat.com>
1631 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
1632 the address had no value, and add to test suite. Fix and
1633 regression test from Miloslav Trmac
1635 2003-05-03 Havoc Pennington <hp@pobox.com>
1637 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
1638 watch is invalid when handled
1640 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
1641 dbus-launch utility to launch the bus from a shell script. Didn't
1642 actually implement dbus-launch yet, it's just a placeholder still.
1644 2003-05-03 Havoc Pennington <hp@pobox.com>
1646 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
1647 daemon; also documents daemon config file, so replaces
1648 doc/config-file.txt. Corrected some stuff from config-file.txt in
1649 the process of moving it.
1651 2003-05-03 Havoc Pennington <hp@pobox.com>
1653 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
1656 2003-05-03 Colin Walters <walters@verbum.org>
1658 * dbus/dbus-sysdeps.c (fill_user_info): Test against
1659 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
1661 * Makefile.am: Update to use new .pc versioning scheme.
1663 2003-05-02 Havoc Pennington <hp@redhat.com>
1665 * bus/system.conf.in: allow send/receive to/from message bus
1668 2003-04-30 Havoc Pennington <hp@redhat.com>
1670 * configure.in: print a note when building with unit tests and
1673 2003-04-30 Havoc Pennington <hp@redhat.com>
1675 * Makefile.am: add a check-local that complains if you didn't
1676 configure with --enable-tests
1678 2003-04-29 Havoc Pennington <hp@redhat.com>
1680 * glib/dbus-gmain.c: docs cleanups
1682 * dbus/dbus-types.h: add docs on int64 types
1684 * dbus/dbus-memory.c: fix docs to avoid putting private API in
1685 public API docs section
1687 2003-04-29 Havoc Pennington <hp@redhat.com>
1689 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1690 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1691 parallel install API version, not with the D-BUS package version.
1693 * HACKING: move some of README over here
1695 * README: updates, and document API/ABI policy
1697 * configure.in: reindentation
1699 2003-04-29 Havoc Pennington <hp@redhat.com>
1701 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1702 to use this library" to be sure people have the right
1705 2003-04-28 Havoc Pennington <hp@redhat.com>
1707 * configure.in: add --enable-docs which by default is auto yes if
1708 doxygen and db2html found, no otherwise; but can be forced on/off
1710 * doc/Makefile.am: conditionalize whether to build docs on
1713 2003-04-28 Havoc Pennington <hp@redhat.com>
1715 * configure.in: 0.10
1719 * bus/system.conf.in: add <includedir>system.d</includedir>
1721 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1722 username was provided but not uid
1724 * bus/config-parser.c (struct BusConfigParser): keep track of
1725 whether the parser is toplevel or was included; change some
1726 of the error handling if it's included.
1728 2003-04-27 Havoc Pennington <hp@pobox.com>
1732 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1733 report correct status if we finish processing authentication
1734 inside this function.
1736 * bus/activation.c (try_send_activation_failure): use
1737 bus_transaction_send_error_reply
1739 * bus/connection.c (bus_connection_get_groups): return an error
1740 explaining the problem
1742 * bus/bus.c (bus_context_check_security_policy): implement
1743 restriction here that inactive connections can only send the
1744 hello message. Also, allow bus driver to send anything to
1747 * bus/connection.c (bus_connection_complete): create the
1748 BusClientPolicy here instead of on-demand.
1749 (bus_connection_get_policy): don't return an error
1751 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1752 sender field in message being replied to
1754 * bus/bus.c (bus_context_check_security_policy): fix silly typo
1755 causing it to return FALSE always
1757 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1758 we checked sender rather than destination
1760 2003-04-25 Havoc Pennington <hp@redhat.com>
1762 test suite is slightly hosed at the moment, will fix soon
1764 * bus/connection.c (bus_connections_expire_incomplete): fix to
1765 properly disable the timeout when required
1766 (bus_connection_set_name): check whether we can remove incomplete
1767 connections timeout after we complete each connection.
1769 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1770 probably still broken.
1772 * bus/services.c (bus_registry_acquire_service): implement max
1773 number of services owned, and honor allow/deny rules on which
1774 services a connection can own.
1776 * bus/connection.c (bus_connection_get_policy): report errors here
1778 * bus/activation.c: implement limit on number of pending
1781 2003-04-25 Havoc Pennington <hp@redhat.com>
1783 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1784 where we used >= 0 instead of != DBUS_UID_UNSET.
1786 2003-04-25 Havoc Pennington <hp@redhat.com>
1788 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
1789 were toggled without add/remove, fix from Anders Gustafsson
1791 2003-04-24 Havoc Pennington <hp@redhat.com>
1793 * test/data/valid-config-files/basic.conf: add <limit> tags to
1796 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
1797 <limit> tag in configuration file.
1799 2003-04-24 Havoc Pennington <hp@redhat.com>
1801 * bus/dispatch.c: somehow missed some name_is
1803 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
1804 (_dbus_timeout_set_interval): new
1806 * bus/connection.c (bus_connections_setup_connection): record time
1807 when each connection is first set up, and expire them after the
1808 auth timeout passes.
1810 2003-04-24 Havoc Pennington <hp@redhat.com>
1812 * dbus/dbus-message.c (dbus_message_name_is): rename
1813 (dbus_message_service_is): rename
1814 (dbus_message_sender_is): rename
1815 (dbus_message_get_service): rename
1817 2003-04-24 Havoc Pennington <hp@redhat.com>
1819 * configure.in: add --enable-checks
1821 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
1823 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
1824 to use thread locks.
1825 (_dbus_connection_handler_destroyed_locked): move some private
1826 functions into proper docs group
1828 * dbus/dbus-internals.h: add _dbus_return_if_fail,
1829 _dbus_return_val_if_fail
1831 Throughout: use dbus_return_if_fail
1833 2003-04-23 James Willcox <jwillcox@gnome.org>
1836 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
1837 (dbus_connection_setup_with_g_main),
1838 (dbus_server_setup_with_g_main):
1839 * glib/test-dbus-glib.c: (main):
1840 * glib/test-thread-client.c: (main):
1841 * glib/test-thread-server.c: (new_connection_callback), (main):
1842 * tools/dbus-monitor.c: (main):
1844 Added a GMainContext argument to dbus_connection_setup_with_g_main()
1845 and dbus_server_setup_with_g_main().
1847 2003-04-20 Havoc Pennington <hp@pobox.com>
1849 * doc/dbus-specification.sgml: document the restrictions on
1850 message and service names
1852 2003-04-22 Havoc Pennington <hp@redhat.com>
1854 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
1855 support, and do some code cleanups to share more code and
1856 speed up array marshal/demarshal.
1858 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
1860 * configure.in: generate dbus-arch-deps.h
1862 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
1865 2003-04-22 Havoc Pennington <hp@redhat.com>
1867 * test/data/valid-messages/opposite-endian.message: fix test
1868 to use proper type for rply field
1870 * test/data/invalid-messages: add tests for below validation
1872 * dbus/dbus-message.c (decode_header_data): validate field types,
1873 and validate that named fields are valid names
1874 (decode_name_field): consider messages in the
1875 org.freedesktop.Local. namespace to be invalid.
1877 * dbus/dbus-string.c (_dbus_string_validate_name): new
1879 2003-04-19 Havoc Pennington <hp@pobox.com>
1881 * bus/driver.c (bus_driver_handle_hello): check limits and
1882 return an error if they are exceeded.
1884 * bus/connection.c: maintain separate lists of active and inactive
1885 connections, and a count of each. Maintain count of completed
1886 connections per user. Implement code to check connection limits.
1888 * dbus/dbus-list.c (_dbus_list_unlink): export
1890 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
1891 number of bytes in the message queue for a connection
1893 2003-04-18 Havoc Pennington <hp@pobox.com>
1895 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
1897 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
1900 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
1901 on realloc be sure to update the pointer in the keyring
1903 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
1904 offset to avoid writing to unallocated memory
1906 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
1907 try the next mechanism, so we properly handle OOM
1909 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
1911 (_dbus_keyring_new): fix OOM bug
1912 (_dbus_keyring_new_homedir): always set error; impose a maximum
1913 number of keys we'll load from the file, mostly to speed up the
1914 test suite and make its OOM checks more useful, but also for
1917 * dbus/dbus-auth.c (process_error_server): reject authentication
1918 if we get an error from the client
1919 (process_cancel): on cancel, send REJECTED, per the spec
1920 (process_error_client): send CANCEL if we get an error from the
1923 2003-04-18 Havoc Pennington <hp@pobox.com>
1925 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
1928 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
1931 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
1932 about DBUS_TEST_HOMEDIR once
1934 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
1937 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
1938 config file so we test the right thing
1940 Throughout: assorted docs improvements
1942 2003-04-18 Havoc Pennington <hp@pobox.com>
1944 * glib/dbus-gmain.c: adapt to watch changes
1946 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
1948 * dbus/dbus-server.h: remove dbus_server_handle_watch
1950 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
1952 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
1953 like DBusTimeout, so we don't need dbus_connection_handle_watch
1956 2003-04-17 Havoc Pennington <hp@redhat.com>
1958 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
1959 database usage so it all goes via the DBusUserDatabase cache.
1961 2003-04-17 Havoc Pennington <hp@redhat.com>
1963 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
1964 there was an OOM watch we skipped, we always return TRUE so we
1965 iterate again to have a look at it again. Fixes test suite hang.
1966 Code rearrangement also lets us lose some memset and only iterate
1967 over callbacks once.
1969 * bus/driver.c (bus_driver_handle_message): sense of test for
1972 2003-04-16 Havoc Pennington <hp@pobox.com>
1974 * doc/dbus-specification.sgml: make spec say serials are unsigned
1976 * dbus/dbus-message.h: change message serials to unsigned
1978 * dbus/dbus-connection.c: adapt to message serials being unsigned
1980 2003-04-15 Havoc Pennington <hp@pobox.com>
1982 * bus/bus.c: create and keep around a shared DBusUserDatabase
1985 * bus/connection.c (bus_connection_get_groups): don't cache
1986 groups for user in the connection object, since user database
1987 object now does that.
1989 2003-04-16 Havoc Pennington <hp@redhat.com>
1991 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
1992 list of size counters
1993 (_dbus_message_loader_putback_message_link): put back a popped link
1995 * dbus/dbus-connection.c
1996 (dbus_connection_set_max_live_messages_size): rename
1998 (dbus_connection_get_outgoing_size): get size of outgoing
2000 (_dbus_connection_set_connection_counter): remove this cruft
2002 2003-04-14 Havoc Pennington <hp@redhat.com>
2004 * dbus/dbus-userdb.c: user database abstraction, mostly to get
2005 caching, but at some point we might want to be able to use a
2008 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
2009 SHA1 conf file to test the sha1 auth mechanism, since the regular
2010 test always uses EXTERNAL when available.
2013 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
2014 add conf file that requires use of sha1 auth
2016 2003-04-13 Havoc Pennington <hp@pobox.com>
2018 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
2019 from Philip Blundell to send messages and monitor them.
2021 2003-04-13 Havoc Pennington <hp@pobox.com>
2023 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
2026 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
2029 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2030 fix to only recover unused bytes if we're already authenticated
2031 (_dbus_transport_get_is_authenticated): fix to still mark us
2032 authenticated if there are unused bytes.
2034 * bus/dispatch.c: implement security policy checking
2036 * bus/connection.c (bus_transaction_send_from_driver): new
2038 * bus/bus.c (bus_context_check_security_policy): new
2040 * bus/dispatch.c (send_service_nonexistent_error): delete this,
2041 now we just set the DBusError and it gets converted to an error
2044 * bus/connection.c (allow_user_function): enable code using actual
2045 data from the config file
2047 * bus/policy.c (list_allows_user): handle wildcard rules for
2048 user/group connection perms
2050 2003-04-13 Havoc Pennington <hp@pobox.com>
2052 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
2054 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
2056 * bus/policy.c (bus_policy_append_mandatory_rule)
2057 (bus_policy_append_default_rule, bus_policy_append_user_rule)
2058 (bus_policy_append_group_rule): new functions
2060 2003-04-12 Havoc Pennington <hp@pobox.com>
2062 * bus/config-parser.c (bus_config_parser_new): fix a memleak
2064 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
2065 the pid/gid/uid, just for paranoia.
2067 * test/break-loader.c (randomly_do_n_things): find a byte
2068 containing a type code, and randomly change it to a different
2071 2003-04-12 Havoc Pennington <hp@pobox.com>
2073 * bus/policy.h: change BusPolicy to be the thing from the config
2074 file, and rename old BusPolicy to BusClientPolicy
2076 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
2077 match change in how policy works
2079 * dbus/dbus-internals.h: mark assert_not_reached as
2080 __attribute((noreturn))__
2082 2003-04-11 Havoc Pennington <hp@redhat.com>
2084 * doc/dbus-specification.sgml: fix a spot with the wrong name for
2085 the broadcast service. Use boolean return for ServiceExists.
2087 2003-04-11 Havoc Pennington <hp@redhat.com>
2089 * configure.in: add another directory to look for qt in.
2091 2003-04-11 Havoc Pennington <hp@redhat.com>
2093 * AUTHORS: add Colin Walters
2095 2003-04-11 Havoc Pennington <hp@redhat.com>
2101 2003-04-11 Havoc Pennington <hp@redhat.com>
2103 * bus/messagebus.in: remove pid file when stopping the
2104 message bus, since the bus won't have privileges to remove it
2107 2003-04-11 Havoc Pennington <hp@redhat.com>
2109 * bus/bus.c (bus_context_new): move credentials change after
2112 2003-04-11 Havoc Pennington <hp@pobox.com>
2114 * test/decode-gcov.c: add "below average functions" to the
2115 coverage report, and change how some of the code works.
2117 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
2118 not in the coverage stats.
2120 * test/test-service.c (main): use _dbus_verbose not fprintf in a
2121 couple places so running the test suite doesn't result in megaspam.
2123 2003-04-11 Havoc Pennington <hp@pobox.com>
2125 * bus/dispatch.c (check_existent_service_activation): accept a no
2126 memory error in a place we didn't before
2128 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
2129 in case the first one failed," since the test suite is less
2132 2003-04-10 Havoc Pennington <hp@pobox.com>
2134 * bus/dispatch.c (check_segfault_service_activation): add test
2135 for launching an executable that just crashes.
2137 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
2138 don't leave a million cores. We'll see how portable this is.
2140 2003-04-10 Havoc Pennington <hp@pobox.com>
2142 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
2143 the possible parent failures before we fork, so that we don't
2144 fail to create a babysitter after creating the child.
2146 * bus/activation.c (bus_activation_activate_service): kill child
2147 if we don't successfully complete the activation.
2149 2003-04-10 Havoc Pennington <hp@redhat.com>
2151 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
2152 the connection if it's disconnected
2154 * bus/activation.c (bus_activation_service_created): use new
2155 transaction features to roll back removal of pending activation if
2156 we don't successfully create the service after all. Don't remove
2157 pending activation if the function fails.
2159 * dbus/dbus-list.c (_dbus_list_insert_before_link)
2160 (_dbus_list_insert_after_link): new code to facilitate
2163 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
2164 new functionality, so we can preallocate the ability to insert
2167 * bus/connection.c (bus_transaction_add_cancel_hook): new function
2168 allowing us to put custom hooks in a transaction to be used for
2169 cancelling said transaction
2171 * doc/dbus-specification.sgml: add some discussion of secondary
2172 service owners, and disallow zero-length service names
2174 * bus/services.c (bus_registry_acquire_service): new function,
2175 splits out part of bus_driver_handle_acquire_service() and fixes
2176 a bug where we didn't remove the service doing the acquiring
2177 from the secondary queue if we failed to remove the current owner
2178 from the front of the queue.
2180 2003-04-10 Alexander Larsson <alexl@redhat.com>
2182 * doc/dbus-specification.sgml:
2183 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
2185 2003-04-10 Alexander Larsson <alexl@redhat.com>
2190 Added files to cvsignore
2192 * dbus/dbus-message.h:
2193 * dbus/dbus-message.c: (dbus_message_iter_get_named):
2194 Make get_named() take two out argument and return a boolean.
2195 (dbus_message_iter_get_args_valist):
2196 Update usage of get_named().
2197 (dbus_message_iter_append_byte):
2199 (dbus_message_iter_append_named)
2201 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
2204 2003-04-10 Alexander Larsson <alexl@redhat.com>
2206 * dbus/dbus-marshal.[ch]:
2207 Add array_type_pos argument to _dbus_marshal_validate_arg.
2208 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
2210 * dbus/dbus-message.[ch]:
2211 Multi-dimensional arrays have full type specification in the
2212 outermost array. Iter code re-arranged to handle this.
2213 Added some more iter tests.
2215 * doc/dbus-specification.sgml:
2218 Update new array encoding description.
2219 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
2221 * test/data/invalid-messages/array-with-mixed-types.message:
2222 * test/data/valid-messages/array-of-array-of-uint32.message:
2223 Change to the new array format.
2225 * test/data/invalid-messages/too-short-dict.message:
2228 * test/data/valid-messages/recursive-types.message:
2229 Fix up and extend test.
2231 2003-04-10 Havoc Pennington <hp@pobox.com>
2233 * bus/dispatch.c: lots of fixes
2235 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
2236 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
2237 that was crack, broke the test service.
2239 * dbus/dbus-transport.c (_dbus_transport_open): fix error
2240 handling to avoid piling up errors if we get a failure on the
2243 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
2244 pid in assertion failures.
2246 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
2247 to some fixed size of file descriptor array. Don't return TRUE
2248 anytime a timeout exists, that led to lots of busy loop silliness
2251 2003-04-09 Havoc Pennington <hp@redhat.com>
2253 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
2254 I'd checked this in earlier but hadn't.
2256 2003-04-09 Havoc Pennington <hp@redhat.com>
2258 * bus/dispatch.c (bus_dispatch_test): get a bit further through
2259 the activation test (man this is getting old!)
2261 2003-04-09 Havoc Pennington <hp@redhat.com>
2263 * test/test-utils.c: use dispatch status function to fix this up
2265 * bus/connection.c (connection_watch_callback): don't dispatch
2267 (connection_timeout_callback): don't dispatch from here
2268 (bus_connections_setup_connection): set the dispatch status function
2269 (bus_connection_disconnected): unset it
2271 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
2272 used to add a connection to be dispatched
2273 (_dbus_loop_iterate): do the dispatching at the end of each
2276 * dbus/dbus-connection.c
2277 (dbus_connection_set_dispatch_status_function): new function
2278 allowing us to fix up main loop usage
2279 (_dbus_connection_last_unref): free all the various function
2281 (dbus_connection_dispatch): call the DispatchStatusFunction
2282 whenever this function returns
2283 (dbus_connection_handle_watch): call DispatchStatusFunction
2284 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
2285 (reply_handler_timeout): call DispatchStatusFunction
2286 (dbus_connection_flush): call DispatchStatusFunction
2288 2003-04-09 Havoc Pennington <hp@redhat.com>
2290 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
2293 * bus/dispatch.c (check_service_activated): fix bug in test
2295 * dbus/dbus-mainloop.c (check_timeout): fix this up
2297 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
2298 verbose output so we can sort out output from different processes,
2299 e.g. in the activation case.
2301 2003-04-08 Colin Walters <walters@gnu.org>
2303 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
2305 (bus_context_new): Set it.
2306 (bus_context_unref): Use it to delete the pid file.
2308 2003-04-08 Havoc Pennington <hp@redhat.com>
2310 * test/data/invalid-messages/array-with-mixed-types.message:
2311 regression test that fails for the moment
2313 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
2314 tests for convenience
2316 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
2317 array of nil, it broke things.
2319 * test/data/invalid-messages/array-of-nil.message: regression test
2321 * test/data/valid-messages/array-of-array-of-uint32.message:
2322 happened to write this so added it to suite
2324 2003-04-08 Havoc Pennington <hp@redhat.com>
2326 * bus/driver.c (bus_driver_handle_acquire_service): init
2327 retval/reply before checking name
2329 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
2330 recursion depth argument
2332 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
2333 in the public struct for future extension
2335 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2338 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2341 * doc/dbus-specification.sgml: fix typo
2343 2003-04-08 Alexander Larsson <alexl@redhat.com>
2345 Implemented recursive types, named types and new-style iters
2348 * glib/test-thread-client.c: (thread_func):
2349 * glib/test-thread-server.c: (handle_test_message):
2350 * test/test-service.c: (handle_echo):
2359 * dbus/dbus-internals.c: (_dbus_type_to_string):
2360 Update for new types.
2362 * dbus/dbus-marshal.[ch]:
2363 Implement recursive types and the new marshalling format.
2364 Remove hardcoded dict marshalling.
2365 Marshal named types.
2367 * dbus/dbus-message-builder.c:
2369 Remove references to old types
2371 * dbus/dbus-message.[ch]:
2372 New non-refcounted iter API that supports recursive iters.
2373 Use iters for appending, including support for recursive
2375 Add byte and named type support.
2376 Update everything to new marshalling formats.
2377 Add tests for new API.
2379 * dbus/dbus-protocol.h:
2380 Remove old array types.
2381 Add types: BYTE, ARRAY, DICT, NAMED
2383 * dbus/dbus-string.c:
2384 * dbus/dbus-sysdeps.c:
2385 Make parse_double locale safe.
2387 * dbus/dbus-test-main.c:
2393 * doc/dbus-specification.sgml:
2396 * test/data/incomplete-messages/missing-body.message:
2397 * test/data/invalid-messages/bad-boolean.message:
2398 * test/data/invalid-messages/bad-boolean-array.message:
2399 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2400 * test/data/invalid-messages/boolean-has-no-value.message-raw:
2401 * test/data/invalid-messages/too-short-dict.message:
2402 * test/data/valid-messages/dict-simple.message:
2403 * test/data/valid-messages/dict.message:
2404 * test/data/valid-messages/emptiness.message:
2405 * test/data/valid-messages/lots-of-arguments.message:
2406 * test/data/valid-messages/no-padding.message:
2407 * test/data/valid-messages/recursive-types.message:
2408 Add missing NAME fields
2409 Fix up dicts & arrays
2411 * test/data/invalid-messages/dict-with-nil-value.message:
2412 Removed, this is not invalid anymore.
2414 * test/data/valid-messages/recursive-types.message:
2415 Add new test for deeply recursive types.
2417 2003-04-07 Havoc Pennington <hp@pobox.com>
2419 * bus/driver.c (bus_driver_handle_acquire_service): return an
2420 error if you try to acquire a service that starts with ':'
2422 2003-04-07 Havoc Pennington <hp@redhat.com>
2424 * doc/dbus-specification.sgml: require that base service names
2425 start with ':' and that the base service is created/deleted
2426 as first and last things a connection does on the bus
2428 * bus/dispatch.c (check_existent_service_activation): lots more
2429 work on the activation test; it doesn't fully pass yet...
2431 * test/test-service.c (main): fix so we don't memleak the
2432 connection to the message bus
2433 (filter_func): accept a message asking us to exit
2435 2003-04-06 Havoc Pennington <hp@pobox.com>
2437 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2440 * configure.in: fixes to Qt detection from Colin Walters
2442 * doc/Makefile.am: Only remove generated docbook dirs if they
2443 exist, from Colin Walters
2445 * dbus/dbus-bus.c: change how we set well-known connections to
2446 NULL, so that it works if a single connection is stored in
2447 two well-known array slots.
2449 * test/Makefile.am: remove a lot of stuff that isn't immediately
2450 useful, it's in CVS history if we want it.
2452 * test/test-service.c: use dbus-mainloop instead of that
2455 2003-04-06 Havoc Pennington <hp@pobox.com>
2457 * dbus/Makefile.am: split lists of sources into stuff that goes in
2458 the library, util functions that go in the lib and are also used
2459 elsewhere, and util functions that are used in tests/daemon but
2460 don't go in the lib.
2462 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
2463 here so it can be used in test binaries also
2465 2003-04-06 Havoc Pennington <hp@pobox.com>
2467 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
2468 here in the parent process, so we can return an error if it
2469 fails. Also, move some of the code into the child so the parent
2470 is less hosed if we fail midway through.
2472 * bus/bus.c (bus_context_new): move pidfile detection further up
2473 in the function, before we start overwriting sockets and such.
2475 * bus/messagebus.in: adjust this a bit, not sure if it will work.
2477 * configure.in: add --with-system-pid-file and --with-system-socket
2479 2003-04-06 Colin Walters <walters@verbum.org>
2481 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
2483 * bus/system.conf.in: Declare a pidfile.
2485 * bus/bus.c (bus_context_new): Test for an existing pid file, and
2486 create one (if appropriate).
2488 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
2489 (struct BusConfigParser) [pidfile]: New.
2490 (element_type_to_name, merge_included, start_busconfig_child)
2491 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
2492 (bus_config_parser_unref): Free it.
2493 (bus_config_parser_get_pidfile): New function.
2495 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
2497 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
2499 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
2501 * dbus/dbus-sysdeps.h: Prototype it.
2503 2003-04-06 Havoc Pennington <hp@pobox.com>
2505 * bus/bus.c (bus_context_new): print the address in here, rather
2506 than in main(), because we need to do it before forking the daemon
2508 * bus/dispatch.c (send_service_nonexistent_error): set the sender
2509 on the service nonexistent error
2511 * bus/driver.c (bus_driver_handle_acquire_service): set the
2512 sender on the AcquireService reply
2514 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
2515 server also listen on a UNIX socket so services can connect to it.
2517 2003-04-06 Havoc Pennington <hp@pobox.com>
2519 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
2520 so it detects deadlocks and also we actually init threads when
2523 2003-04-06 Havoc Pennington <hp@pobox.com>
2525 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2526 save the domain socket name, and unlink it when we disconnect the
2527 server. Means that at least when we exit normally, we won't leave
2528 a bunch of junk in /tmp
2530 * dbus/dbus-transport-unix.c
2531 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
2532 memory management). (I was making a real change here but then
2535 2003-04-06 Havoc Pennington <hp@pobox.com>
2537 * bus/bus.c (bus_context_new): fix wrong handling of
2538 server_data_slot_unref() in the error case.
2540 * dbus/dbus-internals.h (_dbus_assert): change so it passes
2541 "(condition) != 0" to _dbus_real_assert so that
2542 "_dbus_assert (pointer)" doesn't cause a warning
2544 * bus/main.c (main): accept --print-address option to print out
2545 the message bus address
2547 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
2549 * dbus/dbus-transport.c (_dbus_transport_open): special error for
2550 "tmpdir" option to unix: address on client side
2552 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
2555 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
2556 we can use to create sockets in the test suite.
2558 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
2559 cleanly. To be used for testing.
2561 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
2563 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
2565 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2566 handle trying to call this when there's no servers active
2568 2003-04-05 Havoc Pennington <hp@pobox.com>
2574 2003-04-05 Havoc Pennington <hp@pobox.com>
2576 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
2577 crash on startup. Need to get "try starting the daemon"
2578 in the test suite I guess. ;-)
2580 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
2581 tracked the number of open connections; it's better done in
2582 application-specific code as you want it to span all servers etc.
2584 2003-04-05 Havoc Pennington <hp@pobox.com>
2586 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
2587 patch from Colin Walters
2589 2003-04-05 Havoc Pennington <hp@pobox.com>
2591 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
2592 reality; in fact multiple mechanisms are allowed.
2594 * dbus/dbus-internals.c (_dbus_real_assert)
2595 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
2596 _dbus_assert_not_reached() into functions, so that they don't show
2597 up in basic block counts for test coverage, and don't use up as
2598 much disk space. Does mean slower execution speed though, so
2599 assumes --disable-asserts is the normal production case.
2601 2003-04-05 Havoc Pennington <hp@pobox.com>
2603 * test/Makefile.am (dist-hook): also dist *.in files
2609 2003-04-05 Havoc Pennington <hp@pobox.com>
2611 * dbus/dbus-string.c: docs warning
2613 * dbus/dbus-spawn.c: missing docs
2615 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2617 2003-04-05 Havoc Pennington <hp@pobox.com>
2619 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
2622 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
2623 to -1 once we've reaped the babysitter
2624 (_dbus_babysitter_handle_watch): do as much work as we can, not
2627 * bus/activation.c: add code using DBusBabysitter so that we
2628 handle it when a service fails to start up properly.
2629 (bus_activation_service_created): don't remove the activation
2630 entries as we go, just let them get removed when we free the pending
2631 activation. Unref reply messages after sending them.
2633 2003-04-05 Havoc Pennington <hp@pobox.com>
2635 * test/decode-gcov.c (main): print per-directory stats in the report
2637 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
2639 2003-04-05 Havoc Pennington <hp@pobox.com>
2641 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
2643 * test/decode-gcov.c: hack up a little program to suck data
2644 out of gcov files. Yes this is sort of silly.
2646 * configure.in: define something in config.h and do an
2647 AM_CONDITIONAL when gcov is enabled
2649 2003-04-04 Havoc Pennington <hp@redhat.com>
2651 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
2652 return a "babysitter" object that is used to monitor the status of
2653 the spawned process and reap it when required.
2655 * test/test-segfault.c, test/test-exit.c,
2656 test/test-sleep-forever.c: binaries that do various lame things,
2657 used in the test suite.
2659 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
2661 2003-04-03 Havoc Pennington <hp@pobox.com>
2663 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
2664 in preparation for modifying it, dbus-sysdeps is getting
2667 2003-04-03 Havoc Pennington <hp@redhat.com>
2669 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
2672 * bus/*.[hc]: adapt to mainloop change
2674 2003-04-03 Havoc Pennington <hp@redhat.com>
2676 * bus/activation.c (load_directory): fix up memleaks
2677 (bus_activation_entry_free): free the entry
2679 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
2680 we get one from the message bus; fix memleaks.
2682 * dbus/dbus-message.c (dbus_set_error_from_message): new function
2684 2003-04-03 Havoc Pennington <hp@pobox.com>
2686 * bus/config-parser.c (bus_config_parser_unref): free
2687 list of mechanisms, bug discovered by test suite enhancements
2688 (putting system.conf and session.conf into suite)
2690 * test/Makefile.am, test/test-service.c: add placeholder for a
2691 test service that we'll activate as part of test suite. Doesn't
2694 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2695 setting NULL value, and use system malloc not dbus_malloc()
2696 when we have unavoidable memleakage.
2698 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2699 didn't work, and support DBUS_BUS_ACTIVATION.
2701 * bus/activation.c (child_setup): pass our well-known bus type to
2704 * bus/config-parser.c: support <type> to specify well-known type
2706 * doc/dbus-specification.sgml: document the env variables to
2707 locate well-known buses and find service activator
2709 2003-04-02 Havoc Pennington <hp@redhat.com>
2711 * test/Makefile.am (all-local): add a rule to copy tests to
2712 builddir, so we can have generated tests. Use this to remove the
2713 silly hack for testing system.conf and session.conf. Will use this
2714 shortly to generate .service files pointing to test binaries.
2716 2003-04-02 Havoc Pennington <hp@redhat.com>
2718 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2719 current alloc and needed new length, not max of the doubled
2720 allocation and needed new length. Also, when building tests,
2721 don't do the double-allocation stuff, just realloc every time.
2723 2003-04-02 Havoc Pennington <hp@redhat.com>
2725 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2727 (_dbus_string_get_dirname): new
2728 (_dbus_sysdeps_test): new
2729 (_dbus_directory_open): include dirnames in error messages
2731 * bus/config-parser.c: interpret <include> and <includedir> and
2732 <servicedir> relative to config file location if the given
2733 filename is not absolute.
2735 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2737 2003-04-02 Havoc Pennington <hp@redhat.com>
2739 * bus/connection.c (bus_transaction_send_error_reply): set sender
2740 service for the error, and unref the reply on success
2742 * bus/activation.c: convert to use BusTransaction so OOM can be
2744 (bus_activation_service_created): set sender of the message
2746 2003-04-01 Havoc Pennington <hp@redhat.com>
2748 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2749 <includedir> (at least mostly)
2751 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2752 first, then the user ID
2754 2003-04-01 Havoc Pennington <hp@pobox.com>
2756 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2759 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2761 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2763 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2764 socket 0777, and unlink any existing socket.
2766 * bus/bus.c (bus_context_new): change our UID/GID and fork if
2767 the configuration file so specifies; set up auth mechanism
2770 * bus/config-parser.c (bus_config_parser_content): add support
2771 for <fork> option and fill in code for <auth>
2773 * bus/system.conf.in: add <fork/> to default configuration,
2774 and limit auth mechanisms to EXTERNAL
2776 * doc/config-file.txt (Elements): add <fork>
2778 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2779 (_dbus_change_identity): new function
2781 2003-03-31 Havoc Pennington <hp@redhat.com>
2783 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2784 (_dbus_listen_unix_socket): fix off-by-one error in null
2785 termination spotted by Nalin
2787 2003-03-31 Havoc Pennington <hp@redhat.com>
2789 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
2790 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
2791 having a real home directory available.
2793 2003-03-31 Havoc Pennington <hp@redhat.com>
2795 * bus/Makefile.am (install-data-hook): create /var/run/dbus
2797 * bus/messagebus.in: add init script for Red Hat /etc/init.d
2799 * configure.in: add support for specifying a style of init script
2802 2003-03-31 Havoc Pennington <hp@redhat.com>
2804 Fix some annoying DBusString API and fix all affected code.
2806 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
2808 (_dbus_string_get_data): change to return string instead of using
2810 (_dbus_string_get_const_data): ditto
2811 (_dbus_string_get_data_len): ditto
2812 (_dbus_string_get_const_data_len): ditto
2814 2003-03-31 Havoc Pennington <hp@redhat.com>
2816 * bus/main.c (main): fix up the command line arguments to be nicer
2818 2003-03-31 Havoc Pennington <hp@redhat.com>
2820 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
2821 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
2822 final location that lands in the config file
2824 * bus/config-loader-expat.c (bus_config_load): fix type of
2827 * doc/TODO: remove TODO item for dbus_bus_get()
2829 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
2831 2003-03-31 Havoc Pennington <hp@pobox.com>
2833 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
2834 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
2835 argument since they are always client side
2837 * dbus/dbus-server.c (dbus_server_get_address): new function
2839 * bus/main.c (main): take the configuration file as an argument.
2841 * test/data/valid-config-files/debug-allow-all.conf: new file to
2842 use with dispatch.c tests for example
2844 * bus/test-main.c (main): require test data dir
2846 * bus/bus.c (bus_context_new): change this to take a
2847 configuration file name as argument
2849 * doc/config-file.txt (Elements): add <servicedir>
2851 * bus/system.conf, bus/session.conf: new files
2853 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
2854 well-known socket if none set
2856 * configure.in: create system.conf and session.conf
2858 2003-03-30 Havoc Pennington <hp@pobox.com>
2860 * bus/config-parser.c: hacking
2862 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
2863 to shut down, since it could cause weirdness with the DBusList
2866 * dbus/dbus-list.c (_dbus_list_test): add tests for the
2867 link-oriented stack routines
2868 (alloc_link): free the mempool if the first alloc from it fails
2870 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
2872 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
2874 (_dbus_string_skip_white): new
2876 * doc/config-file.txt (Elements): add <includedir>
2878 2003-03-28 Havoc Pennington <hp@pobox.com>
2880 * dbus/dbus-string.c (_dbus_string_copy_data_len)
2881 (_dbus_string_copy_data): new functions
2883 2003-03-28 Anders Carlsson <andersca@codefactory.se>
2885 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
2889 * dbus/dbus-memory.c:
2892 2003-03-28 Havoc Pennington <hp@pobox.com>
2894 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
2895 I think it may have just been superstition. Not sure.
2897 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
2898 failures that were not being handled.
2900 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
2902 * dbus/dbus-memory.c: add ability to set number of mallocs in a
2903 row that will fail on out-of-memory.
2905 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
2906 function for testing out-of-memory handling.
2908 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
2909 allocation functions, they do map exactly to the expat ones.
2911 2003-03-27 Havoc Pennington <hp@redhat.com>
2913 * bus/config-loader-libxml.c (bus_config_load): add another error
2916 2003-03-26 Anders Carlsson <andersca@codefactory.se>
2919 Add note about automatic service activation.
2921 * doc/dbus-specification.sgml:
2922 Rename the specification and clarify a few things.
2924 2003-03-26 Anders Carlsson <andersca@codefactory.se>
2927 * dbus/dbus-address.c:
2929 * dbus/dbus-marshal.c:
2930 * dbus/dbus-server-debug-pipe.c:
2931 * dbus/dbus-transport-unix.c:
2932 Fix documentation warnings.
2934 2003-03-26 Havoc Pennington <hp@pobox.com>
2936 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
2937 after every test so it's quick and easy to see which leaked, and
2938 so we test multiple dbus_shutdown() calls
2940 * configure.in: change configure.in XML stuff to also support
2943 * config-loader-libxml.c: some hacking
2945 * config-loader-expat.c: some hacking
2947 * config-parser.c: some hacking, plus tests
2949 2003-03-25 Havoc Pennington <hp@redhat.com>
2951 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
2953 * configure.in: add --with-xml option to specify XML library,
2954 right now only libxml is supported.
2956 * bus/config-loader-libxml.c, config-parser.c: sync some minor
2957 nonworking code between home and work, still just stubs
2959 2003-03-24 Havoc Pennington <hp@redhat.com>
2961 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
2964 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
2965 NULL argument for "message" if the error is a well-known one,
2966 fill in a generic message in this case.
2968 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
2971 * bus/test.c (bus_test_flush_bus): add
2973 * bus/policy.c (bus_policy_test): test code stub
2975 2003-03-24 Havoc Pennington <hp@pobox.com>
2977 * bus/connection.c (bus_connections_setup_connection): set up
2978 the "can this user connect" function, but it always returns
2979 TRUE until we have a config file parser so we can have a config
2980 file that allows connections.
2982 2003-03-23 Havoc Pennington <hp@pobox.com>
2984 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
2985 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
2986 the mutex, so we can check for proper memory management
2989 * dbus/dbus-dataslot.c: remove the mutex from
2990 DBusDataSlotAllocator and lock it manually when using it,
2991 to simplify fitting it into the global slots framework.
2993 * dbus/dbus-threads.c (init_static_locks): rework how we're
2994 handling global locks so they are easily shut down.
2996 * bus/policy.c (bus_policy_append_rule): fix
2998 * bus/test-main.c (main): check for memleaks
3000 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
3001 test suite check for memleaks
3003 * dbus/dbus-memory.c: add support in test mode for tracking
3004 number of outstanding blocks
3006 2003-03-23 Havoc Pennington <hp@pobox.com>
3008 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
3011 * dbus/dbus-hash.h: add ULONG hash keys
3013 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
3014 (_dbus_get_group_id): new function
3016 2003-03-20 Havoc Pennington <hp@redhat.com>
3018 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
3020 (dbus_connection_get_unix_user): new function
3022 2003-03-20 Havoc Pennington <hp@pobox.com>
3024 * bus/connection.c (bus_connection_send_oom_error): assert that
3025 message has a sender
3026 (connection_execute_transaction): ditto
3027 (bus_connection_preallocate_oom_error): fix to set the sender, and
3028 set recipient to the destination service, not the bus driver
3030 * bus/policy.c: hacking
3032 * dbus/dbus-message.c (dbus_message_service_is): new function
3033 (dbus_message_sender_is): new
3035 2003-03-19 Havoc Pennington <hp@redhat.com>
3037 * bus/policy.c: start sketching code for policy restrictions on
3038 what connections can do.
3040 2003-03-18 Havoc Pennington <hp@redhat.com>
3042 * doc/TODO: some notes on high-level todo items. Little nitpick
3043 stuff is all in @todo, so no need to add it here.
3045 * doc/config-file.txt: some notes on how config file might look
3047 2003-03-18 Anders Carlsson <andersca@codefactory.se>
3053 2003-03-17 Havoc Pennington <hp@redhat.com>
3055 * dbus/dbus-internals.h: add gcc attributes so that
3056 our printf-style functions warn on bad arguments to
3059 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
3062 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3065 2003-03-17 Havoc Pennington <hp@redhat.com>
3067 * bus/test-main.c (main): make it print something as it runs
3068 so make check doesn't look stuck
3070 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
3071 from CVS, now obsolete
3073 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3075 * bus/dispatch.c: (bus_dispatch):
3076 Refetch the service name since it may have been reallocated
3077 when dbus_message_set_sender was called.
3079 * dbus/dbus-sysdeps.c: (_dbus_accept):
3080 Add address and address length variables and use them to stop
3081 valgrind from complaining.
3083 2003-03-17 Havoc Pennington <hp@pobox.com>
3085 All tests pass, no memleaks, no valgrind complaints.
3087 * bus/test.c: refcount handler_slot
3089 * bus/connection.c (bus_connections_new): refcount
3090 connection_data_slot
3092 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
3093 bytes so that auth scripts pass.
3095 * bus/dispatch.c: init message_handler_slot so it gets allocated
3098 * bus/dispatch.c (message_handler_slot_ref): fix memleak
3100 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
3101 dealloc server_pipe_hash when no longer used for benefit of
3104 * dbus/dbus-auth.c (process_command): memleak fix
3106 * bus/dispatch.c (check_hello_message): memleak fix
3108 2003-03-16 Havoc Pennington <hp@pobox.com>
3110 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
3112 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3114 * bus/activation.c (bus_activation_activate_service): Append
3115 the pending activation entry to the list of pending activations.
3117 2003-03-16 Havoc Pennington <hp@pobox.com>
3119 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
3122 * dbus/dbus-address.c (create_entry): fix OOM handling when
3123 failing to alloc entry->method
3125 2003-03-16 Havoc Pennington <hp@pobox.com>
3127 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
3130 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3131 add some missing dbus_set_result
3133 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
3134 alloc the DBusMessageHandler
3136 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
3137 the transport here, since we call this from the finalizer; it
3138 resulted in a double-finalize.
3140 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
3141 where we tried to use transport->connection that was NULL,
3142 happened when transport was disconnected early on due to OOM
3144 * bus/*.c: adapt to handle OOM for watches/timeouts
3146 * dbus/dbus-transport-unix.c: port to handle OOM during
3149 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
3150 reference to unused bytes instead of a copy
3152 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
3155 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
3158 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
3161 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3163 * doc/dbus-specification.sgml:
3164 Document reply message for ActivateService.
3166 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3168 * bus/activation.c: (bus_pending_activation_entry_free),
3169 (bus_pending_activation_free), (bus_activation_new),
3170 (bus_activation_unref), (bus_activation_service_created),
3171 (bus_activation_activate_service):
3173 * bus/bus.c: (bus_context_new):
3174 * bus/desktop-file.c: (new_section):
3175 * bus/driver.c: (bus_driver_send_service_deleted),
3176 (bus_driver_handle_activate_service):
3177 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
3179 * dbus/dbus-connection.c:
3180 (dbus_connection_send_with_reply_and_block):
3181 * dbus/dbus-message.c: (dbus_message_append_args_valist):
3182 * dbus/dbus-protocol.h:
3183 Make activation work better. Now pending activations will be queued
3184 and the daemon won't try to activate services that are already registered.
3186 2003-03-16 Havoc Pennington <hp@pobox.com>
3188 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
3191 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
3192 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
3194 2003-03-16 Havoc Pennington <hp@pobox.com>
3196 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
3197 this. always run the test suite before commit...
3199 * bus/*: adapt to DBusConnection API changes
3201 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
3202 requires renaming stuff to avoid dbus_connection_dispatch name
3205 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
3208 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3209 separate from _dbus_message_loader_return_buffer()
3211 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
3212 this, because it's now always broken to use; the number of
3213 messages in queue vs. the number still buffered by the message
3214 loader is undefined/meaningless. Should use
3215 dbus_connection_get_dispatch_state().
3216 (dbus_connection_dispatch): rename from
3217 dbus_connection_dispatch_message
3219 2003-03-16 Havoc Pennington <hp@pobox.com>
3221 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
3224 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3226 * dbus/dbus-connection.c:
3227 (dbus_connection_send_with_reply_and_block):
3228 Decrease connection->n_incoming when removing an entry
3230 * dbus/dbus-dict.c: (dbus_dict_entry_free),
3231 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3232 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3233 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
3234 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
3235 (dbus_dict_get_byte_array):
3236 Handle NULL arrays and strings. Also add support for byte arrays.
3238 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
3239 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
3240 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3241 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3242 (_dbus_demarshal_dict), (demarshal_and_validate_len),
3243 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
3244 * dbus/dbus-marshal.h:
3245 Add support for marshalling and demarshalling empty arrays and strings.
3247 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3248 (dbus_message_append_string_array),
3249 (dbus_message_iter_get_boolean),
3250 (dbus_message_iter_get_boolean_array),
3251 (dbus_message_iter_get_int32_array),
3252 (dbus_message_iter_get_uint32_array),
3253 (dbus_message_iter_get_double_array),
3254 (dbus_message_iter_get_byte_array),
3255 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
3256 (check_message_handling):
3257 Add support for getting empty arrays and dicts.
3259 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
3260 Don't do any validation at all for now, that's better than just checking
3263 * test/data/valid-messages/emptiness.message:
3264 New test message with lots of empty arrays.
3266 2003-03-16 Havoc Pennington <hp@pobox.com>
3268 * dbus/dbus-connection.c
3269 (_dbus_connection_queue_received_message_link): new function that
3270 can't fail due to OOM
3272 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
3273 new function pops a message together with a list link
3276 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
3277 message queuing functions to avoid needing to alloc memory
3279 2003-03-16 Havoc Pennington <hp@pobox.com>
3281 Oops - test code was only testing failure of around 30 of the
3282 mallocs in the test path, but it turns out there are 500+
3283 mallocs. I believe this was due to misguided linking setup such
3284 that there was one copy of dbus_malloc etc. in the daemon and one
3285 in the shared lib, and only daemon mallocs were tested. In any
3286 case, the test case now tests all 500+ mallocs, and doesn't pass
3287 yet, though there are lots of fixes in this patch.
3289 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3290 this so that it doesn't need to allocate memory, since it
3291 has no way of indicating failure due to OOM (and would be
3292 annoying if it did).
3294 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
3296 * bus/Makefile.am: rearrange to create two self-contained
3297 libraries, to avoid having libraries with overlapping symbols.
3298 that was resulting in weirdness, e.g. I'm pretty sure there
3299 were two copies of global static variables.
3301 * dbus/dbus-internals.c: move the malloc debug stuff to
3304 * dbus/dbus-list.c (free_link): free list mempool if it becomes
3307 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
3309 * dbus/dbus-address.c (dbus_parse_address): free list nodes
3312 * bus/dispatch.c (bus_dispatch_add_connection): free
3313 message_handler_slot when no longer using it, so
3314 memory leak checkers are happy for the test suite.
3316 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
3318 * bus/bus.c (new_connection_callback): disconnect in here if
3319 bus_connections_setup_connection fails.
3321 * bus/connection.c (bus_connections_unref): fix to free the
3323 (bus_connections_setup_connection): if this fails, don't
3324 disconnect the connection, just be sure there are no side
3327 * dbus/dbus-string.c (undo_alignment): unbreak this
3329 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
3331 (_dbus_auth_new): fix the order in which we free strings
3334 * bus/connection.c (bus_connection_disconnected): fix to
3335 not send ServiceDeleted multiple times in case of memory
3338 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3339 get the base service name
3340 (dbus_bus_register_client): don't return base service name,
3341 instead store it on the DBusConnection and have an accessor
3343 (dbus_bus_register_client): rename dbus_bus_register()
3345 * bus/dispatch.c (check_hello_message): verify that other
3346 connections on the bus also got the correct results, not
3347 just the one sending hello
3349 2003-03-15 Havoc Pennington <hp@pobox.com>
3351 Make it pass the Hello handling test including all OOM codepaths.
3352 Now to do other messages...
3354 * bus/services.c (bus_service_remove_owner): fix crash when
3355 removing owner from an empty list of owners
3356 (bus_registry_ensure): don't leave service in the list of
3357 a connection's owned services if we fail to put the service
3360 * bus/connection.c (bus_connection_preallocate_oom_error): set
3361 error flag on the OOM error.
3363 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3364 handle _dbus_transport_set_connection failure
3366 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3367 to create watches up front and simply enable/disable them as
3369 (unix_connection_set): this can now fail on OOM
3371 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3372 of enabling/disabling a watch or timeout.
3374 * bus/loop.c (bus_loop_iterate): don't touch disabled
3377 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3379 2003-03-15 Havoc Pennington <hp@pobox.com>
3381 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3382 write useful test code, after all that futzing around ;-)
3384 Test does not yet pass because we can't handle OOM in
3385 _dbus_transport_messages_pending (basically,
3386 dbus_connection_preallocate_send() does not prealloc the write
3387 watch). To fix this, I think we need to add new stuff to
3388 set_watch_functions, namely a SetEnabled function so we can alloc
3389 the watch earlier, then enable it later.
3391 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3392 dbus-memory.c to the convenience lib
3394 * bus/test.c: rename some static functions to keep them clearly
3395 distinct from stuff in connection.c. Handle client disconnection.
3397 2003-03-14 Havoc Pennington <hp@pobox.com>
3399 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3400 transport, tests more of the real codepath. Set up clients
3401 with bus_setup_debug_client.
3403 * bus/test.c (bus_setup_debug_client): function to set up debug
3404 "clients" on the main loop
3406 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3409 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3412 * dbus/dbus-server-debug.c: support a debug server based on pipes
3414 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3415 (_dbus_close): new function
3417 * configure.in: check for socketpair
3419 2003-03-14 Havoc Pennington <hp@redhat.com>
3421 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3424 * dbus/dbus-transport-debug.c: rework this a good bit to be
3425 less complicated. hopefully still works.
3427 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3430 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3433 * dbus/dbus-message.c (dbus_message_copy): rename from
3434 dbus_message_new_from_message, fix it up to copy
3435 all the message fields, add test case
3437 * bus/dispatch.c (bus_dispatch_test): add some more test code,
3438 not quite passing yet
3440 2003-03-14 Havoc Pennington <hp@pobox.com>
3442 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3443 until no work remains" in test code. (the large diff here
3444 is just code movement, no actual changes)
3446 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3447 1, no point waiting around for test code.
3448 (_dbus_server_debug_accept_transport): unref the timeout
3449 after adding it (right?)
3451 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
3453 2003-03-13 Havoc Pennington <hp@redhat.com>
3455 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
3458 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
3461 * dbus/dbus-connection.h: Make AddWatchFunction and
3462 AddTimeoutFunction return a bool so they can fail on out-of-memory
3464 * bus/bus.c (bus_context_new): set up timeout handlers
3466 * bus/connection.c (bus_connections_setup_connection): set up
3469 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
3472 * bus/bus.c (bus_context_new): adapt to changes
3474 * bus/connection.c: adapt to changes
3476 * test/watch.c: adapt to DBusWatch changes
3478 * bus/dispatch.c (bus_dispatch_test): started adding this but
3481 2003-03-14 Anders Carlsson <andersca@codefactory.se>
3483 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
3485 2003-03-13 Havoc Pennington <hp@pobox.com>
3487 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
3488 set up a test framework as for the library
3490 2003-03-12 Havoc Pennington <hp@pobox.com>
3492 Throughout: purge global variables, introduce BusActivation,
3493 BusConnections, BusRegistry, etc. objects instead.
3495 * bus/bus.h, bus/bus.c: introduce BusContext as a global
3498 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
3499 going to redo this a bit differently I think
3501 2003-03-12 Havoc Pennington <hp@redhat.com>
3503 Mega-patch that gets the message bus daemon initially handling
3504 out-of-memory. Work still needed. Also lots of random
3505 moving stuff to DBusError instead of ResultCode.
3507 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
3509 * dbus/dbus-connection.c
3510 (dbus_connection_send_with_reply_and_block): use DBusError
3512 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
3515 * dbus/dbus-connection.c (dbus_connection_send): drop the result
3516 code here, as the only failure possible is OOM.
3518 * bus/connection.c (bus_connection_disconnect):
3519 rename bus_connection_disconnected as it's a notification only
3521 * bus/driver.c (bus_driver_handle_acquire_service): don't free
3522 "name" on get_args failure, should be done by get_args;
3523 don't disconnect client for bad args, just return an error.
3524 (bus_driver_handle_service_exists): ditto
3526 * bus/services.c (bus_services_list): NULL-terminate returned array
3528 * bus/driver.c (bus_driver_send_service_lost)
3529 (bus_driver_send_service_acquired): send messages from driver to a
3530 specific client to the client's unique name, not to the broadcast
3533 * dbus/dbus-message.c (decode_header_data): reject messages that
3534 contain no name field
3535 (_dbus_message_get_client_serial): rename to
3536 dbus_message_get_serial and make public
3537 (_dbus_message_set_serial): rename from set_client_serial
3538 (_dbus_message_set_reply_serial): make public
3539 (_dbus_message_get_reply_serial): make public
3541 * bus/connection.c (bus_connection_foreach): allow stopping
3542 iteration by returning FALSE from foreach function.
3544 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
3545 (dbus_connection_free_preallocated_send)
3546 (dbus_connection_preallocate_send): new API for sending a message
3547 without possibility of malloc failure.
3548 (dbus_connection_send_message): rename to just
3549 dbus_connection_send (and same for whole function family)
3551 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
3553 * dbus/dbus-sysdeps.c (_dbus_exit): new function
3555 * bus/activation.c: handle/return errors
3557 * dbus/dbus-errors.h: add more DBUS_ERROR #define
3559 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
3560 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
3561 (_dbus_result_from_errno): move to this file
3563 2003-03-10 Anders Carlsson <andersca@codefactory.se>
3565 * dbus/dbus-marshal.c:
3566 (_dbus_marshal_set_string):
3567 Take a length argument so we can marshal the correct string
3570 (_dbus_marshal_dict), (_dbus_demarshal_dict),
3571 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
3572 (_dbus_marshal_test):
3573 * dbus/dbus-marshal.h:
3574 Add support for marshalling and demarshalling dicts.
3576 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3577 Add support for TYPE DICT.
3579 * dbus/dbus-message.c: (set_string_field):
3580 Adjust header padding.
3582 (dbus_message_append_args_valist), (dbus_message_append_dict),
3583 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
3584 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
3585 (check_message_handling), (check_have_valid_message):
3586 * dbus/dbus-message.h:
3587 Add functions for setting and getting dicts.
3589 * dbus/dbus-protocol.h:
3595 * doc/dbus-specification.sgml:
3596 Add information about how dicts are marshalled.
3598 * test/data/invalid-messages/dict-with-nil-value.message:
3599 * test/data/invalid-messages/too-short-dict.message:
3600 * test/data/valid-messages/dict-simple.message:
3601 * test/data/valid-messages/dict.message:
3602 Add sample messages containing dicts.
3604 2003-03-08 Anders Carlsson <andersca@codefactory.se>
3606 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
3608 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3611 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3612 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
3613 (dbus_dict_set_int32), (dbus_dict_set_uint32),
3614 (dbus_dict_set_double), (dbus_dict_set_string),
3615 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3616 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3617 (dbus_dict_set_string_array), (_dbus_dict_test):
3619 Fix according to comments from Havoc.
3621 2003-03-06 Michael Meeks <michael@server.home>
3623 * configure.in: if we don't have kde-config, disable have_qt.
3625 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3630 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3631 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
3632 (dbus_dict_remove), (dbus_dict_get_value_type),
3633 (dbus_dict_get_keys), (dbus_dict_put_boolean),
3634 (dbus_dict_put_int32), (dbus_dict_put_uint32),
3635 (dbus_dict_put_double), (dbus_dict_put_string),
3636 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
3637 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
3638 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
3639 (dbus_dict_get_int32), (dbus_dict_get_uint32),
3640 (dbus_dict_get_double), (dbus_dict_get_string),
3641 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
3642 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
3643 (dbus_dict_get_string_array), (_dbus_dict_test):
3645 Add DBusDict implementation
3647 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
3651 2003-03-04 Havoc Pennington <hp@pobox.com>
3653 * test/data/auth/*: adapt to changes
3655 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
3656 USERID_BASE64 and change USERNAME_BASE64 to put in username not
3659 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
3660 more stuff from being in a context name, to make the protocol
3661 simpler to deal with
3663 * dbus/dbus-errors.c (dbus_error_has_name): new function
3664 (dbus_error_is_set): new function
3666 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
3667 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
3669 * dbus/dbus-connection.c (dbus_connection_flush): also read
3670 messages during a flush operation
3672 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
3674 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3676 * configure.in: Check for gethostbyname on Solaris.
3678 * dbus/dbus-transport.c: (_dbus_transport_open):
3679 Remove duplicate "tcp" entry.
3681 * doc/dbus-specification.sgml:
3682 Clarify some things.
3684 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3686 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3687 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3688 (_dbus_keyring_test):
3689 * dbus/dbus-md5.c: (_dbus_md5_compute):
3690 * dbus/dbus-sha.c: (_dbus_sha_compute):
3693 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3695 * README: Add some things.
3697 2003-03-04 Anders Carlsson <andersca@codefactory.se>
3699 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3700 after case DBUS_TYPE_BOOELAN.
3702 2003-03-02 Havoc Pennington <hp@pobox.com>
3704 * test/break-loader.c (randomly_set_extreme_ints): add test that
3705 sets really huge and small integers
3707 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3708 that length of boolean array fits in the string, and that
3709 string has room for boolean value in single-bool case.
3711 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3712 optional value to "ALIGN" command which is what to fill the
3715 * test/data/valid-messages/no-padding.message: add regression
3716 test for the message padding problem
3718 2003-03-02 Havoc Pennington <hp@pobox.com>
3720 * dbus/dbus-message.c (decode_header_data): fix to always init
3721 message_padding, from Benjamin Dauvergne
3723 2003-03-02 Havoc Pennington <hp@pobox.com>
3729 2003-03-01 Joe Shaw <joe@assbarn.com>
3731 * configure.in: Check for "struct cmsgcred" and try to access its
3732 members for BSD-like unices.
3734 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3735 _dbus_read_credentials_unix_socket().
3736 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3737 read() for reading the credential byte off the unix socket. Use
3738 struct cmsgcred on systems that support it.
3740 2003-02-27 Alexander Larsson <alexl@redhat.com>
3744 Make gthreads-2.0 dependency optional. Don't build thread test if
3747 2003-02-27 Havoc Pennington <hp@pobox.com>
3749 * dbus/dbus-connection.c
3750 (dbus_connection_send_message_with_reply_and_block): fix doh!
3751 doh! doh! bug that resulted in never removing a reply from the
3752 queue, no wonder we called get_reply_serial so much ;-)
3754 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3755 and client serial instead of demarshaling them every time
3757 2003-02-27 Havoc Pennington <hp@pobox.com>
3759 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3760 more inlined, using dbus-string-private.h, speeds things up
3763 * dbus/dbus-string.c (_dbus_string_free): apply align offset
3764 when freeing the string
3765 (_dbus_string_steal_data): fix for align offset
3766 (undo_alignment): new function
3768 2003-02-26 Havoc Pennington <hp@redhat.com>
3770 All kinds of audit fixes from Owen, plus initial attempt to
3771 handle unaligned memory returned from malloc.
3773 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3774 leave room for align_offset and nul byte
3775 (fixup_alignment): function to track an align_offset and
3776 ensure real->str is aligned
3777 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3778 to allow a nul byte plus align offset
3779 (_dbus_string_lock): fix overflow issue
3780 (_dbus_string_init_const_len): add assertions on sanity of len,
3781 assign allocated to be ALLOCATION_PADDING larger than len
3782 (set_length): fixup the overflow handling
3783 (_dbus_string_get_data_len): fix overflow in assertion
3784 (open_gap): detect overflow in size of gap to be opened
3785 (_dbus_string_lengthen): add overflow check
3786 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
3787 (_dbus_string_append): add overflow check
3788 (_dbus_string_append_unichar): overflow
3789 (_dbus_string_delete): fix overflow in assertion
3790 (_dbus_string_copy_len): overflow in assertion
3791 (_dbus_string_replace_len): overflows in assertions
3792 (_dbus_string_find): change to implement in terms of
3793 _dbus_string_find_to
3794 (_dbus_string_find_to): assorted fixage
3795 (_dbus_string_equal_c_str): assert c_str != NULL,
3796 fix logic so the function works
3797 (_dbus_string_ends_with_c_str): fix overflow thingy
3798 (_dbus_string_base64_encode): overflow fix
3799 (_dbus_string_validate_ascii): overflow
3800 (_dbus_string_validate_nul): overflow
3802 2003-02-26 Havoc Pennington <hp@redhat.com>
3804 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
3806 2003-02-26 Alexander Larsson <alexl@redhat.com>
3809 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
3811 * dbus/dbus-connection.c:
3812 * dbus/dbus-connection.h:
3813 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
3814 Add dbus_connection_set_wakeup_main_function and use it when queueing
3815 incoming and outgoing messages.
3818 * dbus/dbus-dataslot.c:
3819 Threadsafe usage of DBusDataSlotAllocator
3821 * dbus/dbus-message.c: (dbus_message_get_args_iter):
3824 * dbus/dbus-server-unix.c:
3827 * glib/dbus-gmain.c:
3828 Implement the new wakeup functions for glib.
3831 * glib/test-thread-client.c:
3832 * glib/test-thread-server.c:
3833 * glib/test-thread.h:
3834 Initial cut at some thread test code. Not really done yet.
3836 2003-02-26 Havoc Pennington <hp@pobox.com>
3838 * dbus/dbus-connection.c
3839 (dbus_connection_send_message_with_reply_and_block): fix crash
3840 where we ref'd the outgoing message instead of the returned reply
3842 * dbus/dbus-transport-unix.c (do_authentication): check read watch
3843 at the end of this function, so if we didn't need to read for
3844 authentication, we reinstall it for receiving messages
3846 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
3847 a NULL sender for peer-to-peer case
3849 * dbus/dbus-transport-unix.c (check_read_watch): handle
3850 !authenticated case correctly
3852 * glib/dbus-gmain.c: add support for DBusServer
3854 * dbus/dbus-server.c: add data slot support
3856 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
3857 return values and handle errors
3859 * dbus/dbus-dataslot.c: factor out the data slot stuff from
3862 * Doxyfile.in (INPUT): add glib subdir
3864 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
3865 setup_with_g_main instead of hookup_with_g_main; write docs
3867 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3869 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
3870 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3871 * dbus/dbus-message.c: (dbus_message_append_boolean),
3872 (dbus_message_append_boolean_array),
3873 (dbus_message_get_args_valist), (_dbus_message_test):
3874 * dbus/dbus-message.h:
3875 * doc/dbus-specification.sgml:
3876 Various fixes as pointed out by Havoc.
3878 * test/data/invalid-messages/bad-boolean-array.message:
3879 * test/data/invalid-messages/bad-boolean.message:
3880 Add invalid boolean value test cases.
3882 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3884 * dbus/dbus-internals.c: (_dbus_type_to_string):
3885 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3886 (_dbus_marshal_validate_arg):
3887 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3888 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3889 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
3890 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
3891 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
3892 (dbus_message_iter_get_double),
3893 (dbus_message_iter_get_boolean_array), (message_iter_test):
3894 * dbus/dbus-message.h:
3895 * dbus/dbus-protocol.h:
3896 * doc/dbus-specification.sgml:
3897 * test/data/valid-messages/lots-of-arguments.message:
3898 Add support for boolean and boolean array types.
3900 2003-02-23 Havoc Pennington <hp@pobox.com>
3902 * dbus/dbus-keyring.c: finish most of this implementation and
3905 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
3906 these barf if the error isn't cleared to NULL
3908 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
3909 (_dbus_create_directory): new function
3911 * dbus/dbus-errors.c (dbus_set_error): fix warning
3913 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
3914 (_dbus_string_hex_decode): new function
3915 (test_hex_roundtrip): test code
3917 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
3919 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
3921 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
3922 the save-to-temp/rename trick to atomically write the new file
3923 (_dbus_string_parse_uint): new function
3925 2003-02-22 Havoc Pennington <hp@pobox.com>
3927 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
3929 2003-02-22 Havoc Pennington <hp@pobox.com>
3931 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
3932 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
3934 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
3936 * dbus/test/data/sha-1: add US government test suite for SHA-1
3938 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3940 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3941 Make string arrays NULL-terminated.
3943 * dbus/dbus-memory.c: (dbus_free_string_array):
3944 * dbus/dbus-memory.h:
3945 New function for freeing NULL-terminated string arrays.
3947 * dbus/dbus-message-builder.c: (append_quoted_string),
3948 (_dbus_message_data_load):
3949 Add support for array types.
3951 * dbus/dbus-message.c: (check_message_handling):
3952 Add more types as test cases.
3954 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
3955 (_dbus_string_parse_double):
3956 Add the start offset to the end offset.
3958 * test/data/valid-messages/lots-of-arguments.message:
3959 New test message with lots of arguments.
3961 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3963 * dbus/dbus-message.c: (dbus_message_append_nil),
3964 (dbus_message_append_int32), (dbus_message_append_uint32),
3965 (dbus_message_append_double), (dbus_message_append_string),
3966 (dbus_message_append_int32_array),
3967 (dbus_message_append_uint32_array),
3968 (dbus_message_append_double_array),
3969 (dbus_message_append_byte_array),
3970 (dbus_message_append_string_array):
3971 Fix all out-of-memory handling in these functions.
3973 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3975 * dbus/dbus-message.c: (dbus_message_append_nil):
3978 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3980 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3981 (dbus_message_append_nil), (dbus_message_append_int32_array),
3982 (dbus_message_append_uint32_array),
3983 (dbus_message_append_double_array),
3984 (dbus_message_append_byte_array),
3985 (dbus_message_append_string_array), (dbus_message_get_args_valist),
3986 (dbus_message_iter_get_int32_array),
3987 (dbus_message_iter_get_uint32_array),
3988 (dbus_message_iter_get_double_array),
3989 (dbus_message_iter_get_byte_array),
3990 (dbus_message_iter_get_string_array):
3992 * dbus/dbus-message.h:
3993 Add functions for appending and getting arrays.
3995 2003-02-21 Anders Carlsson <andersca@codefactory.se>
3997 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
3998 element size at least 8 bytes, fixes mempool tests on
4001 2003-02-20 Alexander Larsson <alexl@redhat.com>
4003 * dbus/dbus-transport-unix.c (unix_do_iteration):
4004 Unlock the connection mutex during a blocking select call.
4005 Add todo about how we need a way to wake up the select.
4007 * dbus/dbus-connection-internal.h:
4008 * dbus/dbus-connection.c:
4009 Add _dbus_connection_lock and _dbus_connection_unlock.
4011 2003-02-19 Havoc Pennington <hp@pobox.com>
4013 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
4014 Doxyfile.in, not Doxyfile
4016 * dbus/dbus-keyring.c: do some hacking on this
4018 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
4020 * dbus/dbus-errors.c (dbus_set_error_const): do not call
4022 (dbus_set_error): remove dbus_error_init, check for message ==
4023 NULL *before* we sprintf into it, and add @todo about including
4024 system headers in this file
4026 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
4028 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
4030 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
4031 get various bits of user information based on either username
4033 (_dbus_homedir_from_username): new function
4035 2003-02-19 Anders Carlsson <andersca@codefactory.se>
4038 Add check for nonposix getpwnam_r
4040 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
4041 Align the pool element size to a sizeof (void *) boundary.
4043 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
4044 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
4045 General Solaris fixes.
4047 * test/data/valid-messages/simplest-manual.message:
4048 Explicitly state that we want little-endian packing.
4050 2003-02-19 Mikael Hallendal <micke@codefactory.se>
4052 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4054 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
4055 Added to create a transport connecting using a tcp/ip socket.
4057 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
4058 to a tcp socket at given host and port.
4059 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
4062 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4064 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4065 Added to create a server listening on a TCP/IP socket.
4067 2003-02-19 Havoc Pennington <hp@pobox.com>
4069 Throughout: mop up all the Doxygen warnings and undocumented
4072 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
4073 to search any paths.
4075 * dbus/dbus-threads.c: move global mutex initializers to
4076 dbus-internals.h, multiple prototypes was confusing doxygen
4077 besides being kind of ugly
4079 * Doxyfile (PREDEFINED): have Doxygen define
4080 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
4081 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
4082 (do not abuse the feature! it's for stuff like the autogenerated
4083 macros in dbus-md5.c, not just for things you don't feel like
4086 2003-02-18 Havoc Pennington <hp@pobox.com>
4088 * dbus/dbus-string.c (_dbus_string_zero): new function
4090 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
4091 wrap it in some dbus-friendly API
4093 * dbus/dbus-types.h: add 16-bit types
4095 2003-02-18 Joe Shaw <joe@assbarn.com>
4097 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
4098 credentials from our currently running process.
4099 (get_word): Fix a buglet where we were copying the entire length
4100 instead of relative to our position.
4102 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
4103 keys on the stack... it's 640k of data.
4105 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
4106 read the credentials byte off the socket, even if we don't have
4108 (_dbus_poll): Implement poll() using select() for systems which
4111 * glib/test-dbus-glib.c (main): Print out an error if no
4112 parameters are given.
4114 * test/data/auth/fallback.auth-script: Added. Tests that a client
4115 can fallback to a secondary auth mechanism if the first fails.
4117 2003-02-18 Havoc Pennington <hp@pobox.com>
4121 2003-02-17 Havoc Pennington <hp@pobox.com>
4123 * doc/dbus-specification.sgml: lots of cosmetic
4124 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
4125 env variable to DBUS_BUS_ADDRESS, s/client/application/,
4126 s/server/bus/ (except in authentication section). Add a section
4127 "Message Bus Message Routing"
4129 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
4135 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4137 * doc/dbus-specification.sgml:
4138 Specification updates.
4140 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4142 * bus/activation.c: (bus_activation_init), (child_setup),
4143 (bus_activation_activate_service):
4145 * bus/main.c: (main):
4146 Set DBUS_ADDRESS environment variable.
4148 * dbus/dbus-errors.c: (dbus_set_error):
4149 Don't use va_copy since that's a C99 feature.
4151 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
4152 (_dbus_spawn_async):
4153 * dbus/dbus-sysdeps.h:
4154 Add child_setup_func to _dbus_spawn_async.
4156 * doc/dbus-specification.sgml:
4157 Update specification.
4159 * test/spawn-test.c: (setup_func), (main):
4162 2003-02-17 Alexander Larsson <alexl@redhat.com>
4164 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
4167 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4171 * doc/dbus-test-plan.sgml:
4172 Add test plan document.
4177 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4179 * dbus/dbus-message.c: (decode_header_data),
4180 (_dbus_message_loader_return_buffer):
4181 Set the header padding amount when loading a message.
4183 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4185 * bus/dispatch.c: (send_one_message):
4186 Only send broadcast messages to registered connections.
4188 * dbus/dbus-message.c: (dbus_message_name_is):
4189 * dbus/dbus-message.h:
4190 New convenience function.
4192 * dbus/dbus-transport-debug.c: (do_reading):
4193 Only dispatch one message per run.
4196 * test/bus-test.c: (new_connection_callback), (die),
4197 (test_hello_client1_handler), (test_hello_client2_handler),
4198 (test_hello_replies), (main):
4200 * test/bus-test-loop.[ch]:
4203 2003-02-16 Havoc Pennington <hp@pobox.com>
4205 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4206 backward conditional
4208 2003-02-16 Alexander Larsson <alexl@redhat.com>
4210 * dbus/dbus-connection.c:
4211 Implement sent_message_with_reply. (with_reply_and block is still
4213 Made dispatch_message not lose message if OOM.
4215 * dbus/dbus-errors.h:
4216 Add NoReply error (for reply timeouts).
4218 2003-02-16 Alexander Larsson <alexl@redhat.com>
4220 * dbus/dbus-hash.c (_dbus_hash_table_unref):
4221 Actually free keys and values when destroying hashtable.
4223 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4225 * dbus/dbus-auth.c: (client_try_next_mechanism):
4228 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
4229 Return TRUE if there's no thread implementation around.
4231 * glib/dbus-gmain.c: (free_source),
4232 (dbus_connection_hookup_with_g_main):
4233 Make sure to remove the GSource when the connection is finalized.
4235 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4237 * bus/dispatch.c: (bus_dispatch_message_handler):
4238 * dbus/dbus-errors.h:
4239 Return an error if someone tries to send a message to a service
4242 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4244 * bus/activation.c: (load_directory), (bus_activation_init),
4245 (bus_activation_activate_service):
4248 (bus_driver_handle_activate_service), (bus_driver_handle_message):
4249 More work on the activation handling.
4251 * dbus/dbus-errors.h:
4252 Add some error messages
4254 * dbus/dbus-message.c: (dbus_message_new_error_reply):
4255 * dbus/dbus-message.h:
4256 New function that creates an error message.
4258 * dbus/dbus-protocol.h:
4259 Add ACTIVATE_SERVER message.
4261 * dbus/dbus-server-unix.c: (unix_handle_watch),
4262 (_dbus_server_new_for_domain_socket):
4263 Call _dbus_fd_set_close_on_exec.
4265 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
4266 (_dbus_spawn_async), (_dbus_disable_sigpipe),
4267 (_dbus_fd_set_close_on_exec):
4268 * dbus/dbus-sysdeps.h:
4269 Add _dbus_fd_set_close_on exec function. Also add function that checks
4270 that all open fds are set to close-on-exec and warns otherwise.
4272 * dbus/dbus-transport-unix.c:
4273 (_dbus_transport_new_for_domain_socket):
4274 Call _dbus_fd_set_close_on_exec.
4276 2003-02-16 Havoc Pennington <hp@pobox.com>
4278 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
4279 allow people to avoid setting SIGPIPE to SIG_IGN
4280 (_dbus_connection_new_for_transport): disable SIGPIPE unless
4281 we've been asked not to
4283 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4285 * dbus/dbus-list.c: (_dbus_list_append_link),
4286 (_dbus_list_prepend_link):
4287 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
4291 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4294 * bus/activation.c: (bus_activation_entry_free),
4295 (add_desktop_file_entry), (load_directory), (bus_activation_init):
4297 * bus/main.c: (main):
4298 Add simple activation support, doesn't work yet though.
4300 2003-02-15 Zack Rusin <zack@kde.org>
4302 * qt/dbus-qthread.cpp: small casting fix
4304 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4306 * dbus/dbus-errors.c: (dbus_set_error):
4307 * dbus/dbus-errors.h:
4308 Add a few errors and make dbus_set_error void.
4310 * dbus/dbus-sysdeps.c:
4311 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
4312 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
4313 * dbus/dbus-sysdeps.h:
4314 Add _dbus_spawn_async.
4316 * test/spawn-test.c: (main):
4317 Test for _dbus_spawn_async.
4319 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4321 * dbus/dbus-internals.h:
4322 Fix build without tests.
4324 * dbus/dbus-list.c: (alloc_link):
4325 Fix a segfault when a malloc fails.
4327 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
4328 (dbus_malloc0), (dbus_realloc):
4329 Add support for malloc debugging.
4331 2003-02-15 Alexander Larsson <alexl@redhat.com>
4333 * dbus/dbus-threads.c:
4334 * dbus/dbus-threads.h:
4335 Add condvars. Remove static mutext from API.
4336 Implement static mutexes by initializing them from threads_init.
4338 * glib/dbus-gthread.c:
4339 * qt/dbus-qthread.cpp:
4340 Update with the thread api changes.
4345 Turn StaticMutex into normal mutex + init function.
4346 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4347 _dbus_list_append_link, _dbus_list_prepend_link
4350 * dbus/dbus-sysdeps.c:
4351 * dbus/dbus-sysdeps.h:
4352 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4353 _dbus_atomic_dec. Only slow fallback implementation at the moment.
4355 * dbus/dbus-protocol.h:
4356 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4358 * dbus/dbus-message.c:
4359 Make ref/unref atomic.
4362 * dbus/dbus-connection-internal.h:
4363 * dbus/dbus-connection.c:
4364 * dbus/dbus-connection.h:
4366 Change _peek to _borrow,_return & _steal_borrowed.
4367 Change disconnect callback to event.
4368 Make dbus_connection_dispatch_messages reentrant.
4370 * dbus/dbus-transport.c:
4371 Don't ref the connection on calls to the transport
4374 * dbus/dbus-message-handler.c:
4377 * glib/dbus-gmain.c:
4378 Don't use peek_message anymore
4381 * test/debug-thread.c:
4382 * test/debug-thread.h:
4383 Simple thread implementation that asserts() on deadlocks in
4384 single-threaded code.
4387 (main) Call debug_threads_init.
4390 Use disconnect message instead of disconnect callback.
4394 Don't call dbus_connection_set_disconnect_function. Instead export
4395 bus_connection_disconnect.
4398 Call bus_connection_disconnect when we get a disconnected message.
4400 2003-02-15 Havoc Pennington <hp@pobox.com>
4402 * dbus/dbus-message.c (dbus_message_new): fool around with the
4405 2003-02-14 Havoc Pennington <hp@pobox.com>
4407 * dbus/dbus-mempool.c: fail if the debug functions so indicate
4409 * dbus/dbus-memory.c: fail if the debug functions indicate we
4412 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4413 (_dbus_decrement_fail_alloc_counter): debug functions to
4414 simulate memory allocation failures
4416 2003-02-14 Havoc Pennington <hp@pobox.com>
4418 * dbus/dbus-errors.h (struct DBusError): add a word of padding
4421 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4423 * bus/driver.c: (bus_driver_handle_hello):
4425 * bus/services.c: (bus_service_lookup):
4426 Reorder message sending so we get a more sane order.
4428 * test/bus-test.c: (message_handler):
4431 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4433 * bus/driver.c: (bus_driver_send_service_deleted),
4434 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4435 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4436 (bus_driver_send_welcome_message),
4437 (bus_driver_handle_list_services),
4438 (bus_driver_handle_acquire_service),
4439 (bus_driver_handle_service_exists):
4440 * dbus/dbus-bus.c: (dbus_bus_register_client),
4441 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4442 * dbus/dbus-errors.c: (dbus_result_to_string):
4443 * dbus/dbus-errors.h:
4444 * dbus/dbus-message.c: (dbus_message_append_args),
4445 (dbus_message_append_args_valist), (dbus_message_get_args),
4446 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4447 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4448 (dbus_message_iter_get_byte_array),
4449 (dbus_message_iter_get_string_array), (message_iter_test),
4450 (check_message_handling), (_dbus_message_test):
4451 * dbus/dbus-message.h:
4452 * test/bus-test.c: (main):
4453 Change fields to arguments in messages, so that they won't be
4454 confused with header fields.
4456 * glib/test-dbus-glib.c: (main):
4457 Remove append_fields from hello message.
4459 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4461 * dbus/dbus-errors.c:
4462 * dbus/dbus-message.c:
4463 * dbus/dbus-string.c:
4464 Documentation fixes.
4466 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4468 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
4470 Implement support for timeouts in dbus-glib.
4472 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4474 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4475 * dbus/dbus-message.c: (process_test_subdir):
4476 * test/break-loader.c: (find_breaks_based_on):
4477 Plug some memory leaks.
4479 2003-02-13 Richard Hult <rhult@codefactory.se>
4481 * bus/main.c: Fix build.
4483 * dbus/dbus-errors.h:
4484 * dbus/dbus-errors.c: Fix copyright for Anders.
4486 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4491 * bus/connection.c: (bus_connection_foreach):
4494 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
4495 (unescape_string), (new_section), (parse_section_start),
4496 (parse_key_value), (report_error), (bus_desktop_file_load),
4497 (bus_desktop_file_get_string):
4498 * bus/desktop-file.h:
4499 Use DBusError for error reporting.
4501 * bus/dispatch.c: (send_one_message),
4502 (bus_dispatch_message_handler):
4503 * bus/driver.c: (bus_driver_send_service_deleted),
4504 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4505 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4506 (bus_driver_send_welcome_message),
4507 (bus_driver_handle_list_services),
4508 (bus_driver_handle_acquire_service),
4509 (bus_driver_handle_service_exists):
4510 * bus/loop.c: (bus_loop_run):
4512 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
4514 * bus/utils.c: (bus_wait_for_memory):
4516 New files with general utility functions.
4518 * dbus/dbus-internals.h:
4519 Remove _DBUS_HANDLE_OOM.
4521 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4523 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
4524 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
4525 * dbus/dbus-errors.h:
4526 Add DBusError structure.
4528 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4530 * test/data/valid-messages/standard-acquire-service.message:
4531 * test/data/valid-messages/standard-hello.message:
4532 * test/data/valid-messages/standard-list-services.message:
4533 * test/data/valid-messages/standard-service-exists.message:
4534 Add some standard messages.
4536 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4538 * bus/driver.c: (bus_driver_send_welcome_message),
4539 (bus_driver_handle_list_services),
4540 (bus_driver_handle_acquire_service),
4541 (bus_driver_handle_service_exists), (bus_driver_handle_message):
4542 Update for API changes in libdbus.
4544 * dbus/dbus-message.c: (dbus_message_new_reply):
4545 * dbus/dbus-message.h:
4546 Remove the name argument. The spec states that replies shouldn't
4549 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4551 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
4552 (report_error), (bus_desktop_file_load), (lookup_section),
4553 (lookup_line), (bus_desktop_file_get_raw),
4554 (bus_desktop_file_get_string):
4555 * bus/desktop-file.h:
4556 Some fixes, and new functions for getting a key value from a section.
4558 2003-02-13 Havoc Pennington <hp@pobox.com>
4560 * test/data/auth/fail-after-n-attempts.auth-script: new test
4562 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
4565 2003-02-13 Havoc Pennington <hp@pobox.com>
4567 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
4568 dbus_credentials_match were backward
4570 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
4571 NO_CREDENTIALS and ROOT_CREDENTIALS
4573 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
4574 into here. Never process more commands after we've reached an
4575 end state; store further data as unused bytes.
4577 * test/data/auth/*: add more auth tests
4579 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
4580 command to match exact string and EXPECT_UNUSED to match unused
4583 * test/Makefile.am (dist-hook): fix to dist all the test stuff
4585 2003-02-12 Havoc Pennington <hp@pobox.com>
4587 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
4588 \r off of popped lines
4590 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
4593 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
4596 2003-02-12 Havoc Pennington <hp@pobox.com>
4598 * dbus/Makefile.am: remove break-loader from the build, since it
4601 * configure.in: add --enable-gcov to turn on coverage profiling
4602 flags and disable optimization
4604 2003-02-10 Havoc Pennington <hp@pobox.com>
4606 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
4607 initial cut at test framework for DBusAuth from laptop.
4608 Doesn't quite work yet but it compiles and I need to get
4609 it off the 266mhz laptop. ;-)
4611 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
4612 fix a memleak in error case
4614 2003-02-12 Anders Carlsson <andersca@codefactory.se>
4617 * bus/desktop-file.c:
4618 * bus/desktop-file.h:
4619 Add a desktop file parser.
4621 2003-02-11 Zack Rusin <zack@kde.org>
4623 * qt/message.[h|cpp]: sample implementation
4624 of the KDE wrapper for DBusMessage
4626 2003-02-09 Zack Rusin <zack@kde.org>
4628 * test/bus-test.c: make_it_compile
4629 * doc/dbus-specification.sgml: minimal semantic fix
4631 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4637 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4640 * dbus/dbus-break-loader.c:
4642 * test/break-loader.c:
4643 Move dbus-break-loader to test/ and rename it to break-loader.
4645 2003-02-02 Havoc Pennington <hp@pobox.com>
4647 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
4648 for code to manage cookies in your home directory
4650 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
4652 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
4653 to authenticate, then disconnect the client.
4655 2003-02-03 Alexander Larsson <alexl@redhat.com>
4657 * dbus/dbus-message.c (dbus_message_append_fields):
4660 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4662 * doc/dbus-specification.sgml:
4663 Update address format section.
4665 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4668 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
4669 (message_handler), (new_connection_callback), (loop_quit),
4673 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4675 * bus/driver.c: (bus_driver_handle_service_exists):
4676 Simplify the code a bit.
4678 * dbus/dbus-bus.c: (dbus_bus_service_exists):
4681 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4684 Add libdbus-daemon.la and link to it.
4686 2003-02-01 James Willcox <jwillcox@gnome.org>
4688 * bus/driver.c: (bus_driver_handle_own_service):
4689 Actually include the service reply code in the message.
4691 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4693 * bus/driver.c: (bus_driver_handle_service_exists):
4694 Don't unref the incoming message.
4696 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4698 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4700 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4702 * dbus/dbus-server.c: (dbus_server_listen):
4703 * dbus/dbus-transport.c: (_dbus_transport_open):
4704 ifdef out the calls to the debug transport and server.
4706 2003-02-02 Alexander Larsson <alexl@redhat.com>
4708 * dbus/dbus-watch.c (dbus_watch_get_flags):
4709 Add note in the docs that ERROR or HANGUP won't be returned
4710 and are assumed always on.
4712 * glib/dbus-gmain.c (add_watch):
4713 Always add IO_ERR | IO_HUP
4715 * dbus/dbus-message.h:
4716 Add semicolon after dbus_message_iter_get_string_array().
4717 Makes qt code build again
4719 2003-02-01 Anders Carlsson <andersca@codefactory.se>
4721 * bus/driver.c: (create_unique_client_name),
4722 (bus_driver_handle_hello):
4723 Don't take a name, just use a numeric id to identify
4727 * dbus/dbus-bus.c: (dbus_bus_register_client),
4728 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4730 Add new convenience functions for communicating with the bus.
4732 * dbus/dbus-message.h:
4734 * dbus/dbus-protocol.h:
4737 2003-02-01 Alexander Larsson <alexl@redhat.com>
4739 * dbus/dbus-message.c (dbus_message_append_fields):
4740 Add some more doc comments.
4742 2003-02-01 Havoc Pennington <hp@pobox.com>
4744 * dbus/dbus-break-loader.c (randomly_modify_length): change
4745 a 4-byte value in the message as if it were a length
4747 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4748 execute bit on saved files
4750 2003-02-01 Havoc Pennington <hp@pobox.com>
4752 * dbus/dbus-break-loader.c (main): new program to find messages
4753 that break the loader.
4755 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4756 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4758 * dbus/dbus-string.c (_dbus_string_set_byte): new
4760 2003-01-31 Havoc Pennington <hp@pobox.com>
4762 * dbus/dbus-message.c: refactor the test code to be more general,
4763 in preparation for writing a "randomly permute test cases to
4764 try to break the loader" program.
4766 2003-01-31 Havoc Pennington <hp@pobox.com>
4768 * doc/dbus-specification.sgml: work on the specification
4770 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4771 the protocol version of the message.
4773 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4774 no longer specifies that.
4775 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4778 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4779 "break" for DBUS_TYPE_NIL, remove @todo
4781 2003-01-31 Havoc Pennington <hp@pobox.com>
4783 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4784 just set_is_error/get_is_error as this is a commonly-used
4785 function, and write docs.
4787 2003-01-31 Anders Carlsson <andersca@codefactory.se>
4789 * dbus/dbus-address.c: (dbus_address_entry_free):
4790 Free key and value lists.
4792 * dbus/dbus-internals.c: (_dbus_type_to_string):
4793 Add the types we didn't have.
4795 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4796 (_dbus_marshal_validate_arg):
4799 * dbus/dbus-message.c: (dbus_message_set_sender):
4800 Remove todo about being able to set sender to NULL.
4802 (dbus_message_set_is_error_reply),
4803 (dbus_message_get_is_error_reply):
4804 * dbus/dbus-message.h:
4807 * dbus/dbus-protocol.h:
4808 Add error reply flag.
4810 * test/data/valid-messages/opposite-endian.message:
4811 Add NIL type to test.
4813 2003-01-31 Havoc Pennington <hp@pobox.com>
4815 * doc/dbus-specification.sgml: fully specify the header. Add
4816 flags and major protocol version, and change header/body len to
4819 * dbus/dbus-message-builder.c (append_saved_length): append length
4822 * dbus/dbus-message.c (dbus_message_create_header): change header
4823 length and body length to unsigned. Add the new fields from the
4825 (_dbus_message_loader_return_buffer): unsigned header/body len
4827 2003-01-30 Havoc Pennington <hp@pobox.com>
4829 * dbus/dbus-auth.c: rework to use only REJECTED, no
4832 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
4833 use REJECTED, suggested by Mark McLoughlin
4835 2003-01-30 Havoc Pennington <hp@pobox.com>
4837 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
4838 a better way to report errors here. e.g. "unix address lacks
4839 path" or something. also "no such file" when the path doesn't
4842 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
4844 (dbus_parse_address): add @todo about documenting address format,
4845 and allowing , and ; to be escaped
4847 2003-01-30 Anders Carlsson <andersca@codefactory.se>
4850 Add dbus-address.[ch]
4852 * dbus/dbus-address.c: (dbus_address_entry_free),
4853 (dbus_address_entries_free), (create_entry),
4854 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
4855 (dbus_parse_address), (_dbus_address_test):
4856 * dbus/dbus-address.h:
4857 New files for dealing with address parsing.
4859 * dbus/dbus-connection.c:
4860 Document timeout functions.
4862 * dbus/dbus-message.c:
4863 Document dbus_message_new_from_message.
4865 * dbus/dbus-server-debug.c:
4868 * dbus/dbus-server.c: (dbus_server_listen):
4869 Parse address and use correct server implementation.
4871 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
4872 * dbus/dbus-string.h:
4873 New function with test.
4875 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
4879 * dbus/dbus-transport-debug.c:
4882 * dbus/dbus-transport.c: (_dbus_transport_open):
4883 Parse address and use correct transport implementation.
4885 2003-01-30 Havoc Pennington <hp@pobox.com>
4887 * dbus/dbus-message.c: use message->byte_order instead of
4888 DBUS_COMPILER_BYTE_ORDER throughout.
4889 (dbus_message_create_header): pad header to align the
4890 start of the body of the message to 8-byte boundary
4892 * dbus/dbus-marshal.h: make all the demarshalers take const
4893 DBusString arguments.
4895 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
4896 validate message args here, so we don't have to do slow validation
4897 later, and so we catch bad messages as they are incoming. Also add
4898 better checks on header_len and body_len. Also fill in
4901 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
4902 implemented properly)
4903 (_dbus_string_validate_nul): new function to check all-nul
4905 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
4906 get_arg_end_pos and remove all validation
4907 (_dbus_marshal_validate_arg): actually do validation here.
4909 2003-01-29 Havoc Pennington <hp@pobox.com>
4911 * dbus/dbus-message.c (check_message_handling): fix assertion
4912 failure on set_client_serial
4914 2003-01-28 Havoc Pennington <hp@pobox.com>
4916 * dbus/dbus-server-debug.c: Add doc section comments
4918 * dbus/dbus-transport-debug.c: add doc section comments
4920 2003-01-28 Havoc Pennington <hp@redhat.com>
4922 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
4923 the reverse order from how I had it
4924 (_dbus_string_base64_encode): reverse encoding order. I was
4925 basically byteswapping everything during encoding.
4927 2003-01-28 Anders Carlsson <andersca@codefactory.se>
4929 * dbus/dbus-connection-internal.h:
4930 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
4931 (_dbus_connection_remove_timeout):
4932 Add functions for adding and removing timeouts.
4934 * dbus/dbus-message.c: (dbus_message_new_from_message):
4935 Add new function that takes a message and creates an exact
4936 copy of it, but with the refcount set to 1.
4937 (check_message_handling):
4940 * dbus/dbus-server-protected.h:
4941 * dbus/dbus-server.c: (_dbus_server_init_base),
4942 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
4943 (dbus_server_set_timeout_functions):
4944 (_dbus_server_remove_timeout):
4945 New functions so that a server can add and remove timeouts.
4947 (dbus_server_listen):
4948 Add commented out call to dbus_server_debug_new.
4950 * dbus/dbus-timeout.c: (_dbus_timeout_new):
4951 Actually set the handler, doh.
4953 * dbus/dbus-transport.c: (_dbus_transport_open):
4954 Add commented out call to dbus_transport_debug_client_new.
4957 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
4959 2003-01-28 Havoc Pennington <hp@pobox.com>
4961 * dbus/dbus-message.c (check_message_handling): function to check
4962 on the loaded message, iterates over it etc.
4964 2003-01-28 Havoc Pennington <hp@pobox.com>
4966 * test/Makefile.am (dist-hook): fix make distdir
4968 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
4970 2003-01-27 Havoc Pennington <hp@pobox.com>
4972 * dbus/dbus-mempool.c (time_for_size): replace printf with
4975 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
4976 empty lines; fix the SAVE_LENGTH stuff to be
4977 START_LENGTH/END_LENGTH so it actually works; couple other
4980 * test/Makefile.am (dist-hook): add dist-hook for .message files
4982 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
4983 can be constant or locked.
4984 (_dbus_string_free): allow freeing a const string as
4987 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
4989 * dbus/dbus-test-main.c (main): take an argument which is the
4990 directory containing test data
4992 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
4993 argument to this and load all the messages in test/data/
4994 checking that they can be loaded or not loaded as appropriate.
4996 2003-01-27 Anders Carlsson <andersca@codefactory.se>
4998 * bus/dispatch.c: (bus_dispatch_message_handler):
4999 Dispatch messages sent to services.
5001 * bus/driver.c: (bus_driver_send_service_deleted),
5002 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5003 (bus_driver_send_service_acquired):
5004 Add helper functions for sending service related messages.
5006 (bus_driver_send_welcome_message):
5007 Send HELLO_REPLY instead of WELCOME.
5009 (bus_driver_handle_list_services):
5010 Send LIST_SERVICES_REPLY instead of SERVICES.
5012 (bus_driver_handle_own_service),
5013 (bus_driver_handle_service_exists):
5014 New message handlers.
5016 (bus_driver_handle_message):
5017 Invoke new message handlers.
5019 (bus_driver_remove_connection):
5020 Don't remove any services here since that's done automatically
5021 by bus_service_remove_owner now.
5024 New function signatures.
5026 * bus/services.c: (bus_service_add_owner):
5027 Send ServiceAcquired message if we're the only primary owner.
5029 (bus_service_remove_owner):
5030 Send ServiceAcquired/ServiceLost messages.
5032 (bus_service_set_prohibit_replacement),
5033 (bus_service_get_prohibit_replacement):
5034 Functions for setting prohibit replacement.
5036 (bus_service_has_owner):
5037 New function that checks if a connection is in the owner queue of
5041 Add new function signatures.
5043 * dbus/dbus-list.c: (_dbus_list_test):
5044 Add tests for _dbus_list_remove_last and traversing the list backwards.
5047 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
5048 go any further, so return NULL then.
5050 * dbus/dbus-protocol.h:
5051 Add new messages, service flags and service replies.
5053 2003-01-26 Havoc Pennington <hp@pobox.com>
5055 * dbus/dbus-message-builder.c: implement, completely untested.
5057 * test/data/*: add data to be used in testing.
5058 ".message" files are our simple loadable text format.
5059 ".message-raw" will be binary dumps of messages.
5061 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
5063 2003-01-26 Havoc Pennington <hp@pobox.com>
5065 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
5067 * dbus/dbus-errors.c (dbus_result_to_string): add
5070 * dbus/dbus-message-builder.c: new file, will contain code to load
5071 up messages from files. Not implemented yet.
5073 2003-01-26 Havoc Pennington <hp@pobox.com>
5075 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
5076 the sender by setting to NULL
5078 2003-01-26 Havoc Pennington <hp@pobox.com>
5080 The unit tests pass, but otherwise untested. If it breaks, the
5081 tests should have been better. ;-)
5083 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
5086 * dbus/dbus-message.c: redo everything so we maintain
5087 message->header as the only copy of the various fields.
5088 This avoids the possibility of out-of-memory in some cases,
5089 for example dbus_message_lock() can't run out of memory anymore,
5090 and avoids extra copying. Figured I may as well go ahead and do
5091 this since it was busted for dbus_message_lock to not return
5092 failure on OOM, and dbus_message_write_header was totally
5093 unchecked for OOM. Also fixed some random other bugs.
5095 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
5096 that strings are nul-terminated. Also, end_pos can be equal
5097 to string length just not greater than, I think.
5098 (_dbus_marshal_set_int32): new function
5099 (_dbus_marshal_set_uint32): new function
5100 (_dbus_marshal_set_string): new function
5102 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
5103 a warning, init timeout_list to NULL
5104 (dbus_connection_send_message): don't use uninitialized variable
5107 * dbus/dbus-string.c (_dbus_string_replace_len): new function
5109 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5111 * bus/driver.c: (bus_driver_handle_hello),
5112 (bus_driver_send_welcome_message):
5115 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5117 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
5118 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5119 (dbus_connection_unref):
5120 * dbus/dbus-marshal.c: (_dbus_marshal_test):
5121 * dbus/dbus-message.c: (dbus_message_unref),
5124 (dbus_message_get_fields):
5125 Remove debugging printout.
5127 (_dbus_message_loader_return_buffer):
5128 Don't store the header string.
5130 (_dbus_message_test):
5133 2003-01-26 Richard Hult <rhult@codefactory.se>
5135 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
5136 the file descriptor list, since it can change under us.
5138 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5140 * glib/dbus-gmain.c: (dbus_connection_prepare),
5141 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
5142 (remove_watch), (dbus_connection_hookup_with_g_main):
5143 Rewrite the glib handling to use its own GSource instead of a
5144 GIOChannel so we can catch messages put in the queue while waiting
5147 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5150 * bus/connection.c: (connection_disconnect_handler),
5151 (connection_watch_callback), (bus_connection_setup):
5152 * bus/dispatch.c: (send_one_message),
5153 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
5154 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
5156 * bus/driver.c: (bus_driver_send_service_deleted),
5157 (bus_driver_send_service_created), (bus_driver_handle_hello),
5158 (bus_driver_send_welcome_message),
5159 (bus_driver_handle_list_services), (bus_driver_remove_connection),
5160 (bus_driver_handle_message):
5162 Refactor code, put the message dispatching in its own file. Use
5163 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
5166 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5168 * dbus/dbus-internals.h:
5169 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
5171 * dbus/dbus-message.c: (dbus_message_get_sender):
5172 * dbus/dbus-message.h:
5173 Implement dbus_message_get_sender.
5175 * dbus/dbus-protocol.h:
5176 Add message and service defines.
5178 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5180 * dbus/dbus-connection.c: (dbus_connection_send_message):
5181 * dbus/dbus-message-internal.h:
5182 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
5183 (dbus_message_write_header):
5184 Remove _dbus_messag_unlock and don't set the client serial on a
5185 message if one already exists.
5187 2003-01-24 Havoc Pennington <hp@pobox.com>
5189 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
5192 * bus/driver.c (bus_driver_handle_list_services): fix a leak
5195 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5197 * dbus/dbus-list.c: (alloc_link), (free_link):
5198 Use a memory pool for the links.
5200 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5202 * bus/connection.c: (bus_connection_foreach):
5204 Add new bus_connection_foreach function.
5206 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
5207 Add function that broadcasts a message to all clients.
5209 (bus_driver_send_service_created), (bus_driver_handle_hello),
5210 (bus_driver_send_welcome_message),
5211 (bus_driver_handle_list_services), (bus_driver_message_handler):
5212 Implement functions that take care of listing services, and notifying
5213 clients when new services are created.
5215 * bus/services.c: (bus_services_list):
5217 Add new function that returns an array of strings with the currently
5218 registered services.
5221 * glib/dbus-gmain.c:
5222 Update copyright year.
5224 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5226 * dbus/dbus-connection.c: (dbus_connection_send_message):
5227 Unlock the message in case it was sent earlier.
5229 (dbus_connection_send_message_with_reply_and_block):
5230 Remove the reply message from the list.
5232 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5233 Set array_len and new_pos correctly.
5235 (_dbus_marshal_test):
5236 Remove debug output.
5238 * dbus/dbus-message-internal.h:
5239 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
5240 New function that returns the reply serial.
5242 (_dbus_message_unlock):
5243 New function that unlocks a message and resets its header.
5245 (dbus_message_append_string_array),
5246 (dbus_message_get_fields_valist),
5247 (dbus_message_iter_get_field_type),
5248 (dbus_message_iter_get_string_array),
5249 (dbus_message_get_fields),
5250 (dbus_message_append_fields_valist):
5251 Handle string arrays.
5253 (dbus_message_set_sender):
5254 Make this function public since the bus daemon needs it.
5256 (decode_header_data):
5257 Set the reply serial to -1 initially.
5259 * dbus/dbus-message.h:
5260 Add dbus_message_set_sender.
5262 2003-01-24 Havoc Pennington <hp@pobox.com>
5264 * doc/dbus-specification.sgml: add some stuff
5266 2003-01-22 Havoc Pennington <hp@pobox.com>
5268 * doc/dbus-specification.sgml: Start to document the protocol.
5270 2003-01-22 Havoc Pennington <hp@pobox.com>
5272 * dbus/dbus-connection.c
5273 (dbus_connection_send_message_with_reply_and_block): add some @todo
5275 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
5277 2003-01-21 Havoc Pennington <hp@pobox.com>
5279 (patch untested because can't compile)
5281 * bus/driver.c (create_unique_client_name): make this function
5282 never recycle client names. Also, caller should initialize
5285 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
5287 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5289 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5290 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5291 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
5292 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
5293 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5294 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5295 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
5296 * dbus/dbus-marshal.h:
5297 * dbus/dbus-protocol.h:
5298 Add support for marshalling and demarshalling integer, double
5301 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5306 * bus/connection.c: (connection_disconnect_handler):
5307 Remove the connection from the bus driver's list.
5309 (connection_watch_callback): Dispatch messages.
5311 (free_connection_data): Free connection name.
5313 (bus_connection_setup): Add connection to the bus driver's list.
5314 (bus_connection_remove_owned_service):
5315 (bus_connection_set_name), (bus_connection_get_name):
5316 Add functions for setting and getting the connection's name.
5319 Add function headers.
5321 * bus/driver.c: (create_unique_client_name),
5322 (bus_driver_handle_hello_message),
5323 (bus_driver_send_welcome_message), (bus_driver_message_handler),
5324 (bus_driver_add_connection), (bus_driver_remove_connection):
5327 * bus/services.c: (bus_service_free):
5329 New file that handles communication and registreation with the bus
5332 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5334 * dbus/dbus-connection.c: (dbus_connection_send_message):
5335 Add a new client_serial parameter.
5337 (dbus_connection_send_message_with_reply):
5338 Remove a @todo since we've implemented the blocking function.
5340 (dbus_connection_send_message_with_reply_and_block):
5341 New function that sends a message and waits for a reply and
5342 then returns the reply.
5344 * dbus/dbus-connection.h:
5347 * dbus/dbus-errors.c: (dbus_result_to_string):
5348 * dbus/dbus-errors.h:
5349 Add new DBUS_RESULT.
5351 * dbus/dbus-message-internal.h:
5352 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5353 (_dbus_message_set_sender), (dbus_message_write_header),
5354 (dbus_message_new_reply), (decode_header_data),
5355 (_dbus_message_loader_return_buffer), (_dbus_message_test):
5356 * dbus/dbus-message.h:
5357 Add new functions that set the reply serial and sender.
5358 Also marshal and demarshal them correctly and add test.
5360 * dbus/dbus-protocol.h:
5361 Add new DBUS_MESSAGE_TYPE_SENDER.
5364 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5365 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5366 (dbus_connection_hookup_with_g_main):
5367 * glib/test-dbus-glib.c: (main):
5368 Rewrite to use GIOChannel and remove the GSource crack.
5370 * test/echo-client.c: (main):
5371 * test/watch.c: (check_messages):
5372 Update for changed APIs
5374 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5376 * dbus/Makefile.am: Add dbus-timeout.[cħ]
5378 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5379 Create a DBusTimeoutList.
5380 (dbus_connection_set_timeout_functions): Add new function to
5381 set timeout callbacks
5383 * dbus/dbus-connection.h: Add public DBusTimeout API.
5385 * dbus/dbus-message.c: (dbus_message_get_service):
5386 * dbus/dbus-message.h: New function.
5388 * dbus/dbus-server.c: Fix small doc typo.
5390 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5392 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5394 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5395 of the string, just as long as specified.
5397 2003-01-19 Havoc Pennington <hp@pobox.com>
5399 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5402 * dbus/dbus-server.c (dbus_server_set_max_connections)
5403 (dbus_server_get_max_connections, dbus_server_get_n_connections):
5404 keep track of current number of connections, and add API for
5405 setting a max (but haven't implemented enforcing the max yet)
5407 2003-01-18 Havoc Pennington <hp@pobox.com>
5409 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5410 reading/writing if read_watch != NULL or write_watch != NULL.
5412 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5413 the message loader code to actually load message->header and
5414 message->body into the newly-created message.
5416 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5419 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5420 (dbus_connection_get_max_message_size)
5421 (dbus_connection_set_max_live_messages_size)
5422 (dbus_connection_get_max_live_messages_size): implement some
5423 resource limitation functions
5425 * dbus/dbus-resources.c: new file implementing some of the
5426 resource limits stuff
5428 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5429 missing docs, add @todo to handle OOM etc.
5431 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5434 2003-01-18 Havoc Pennington <hp@pobox.com>
5436 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5437 connection if it hasn't been already.
5439 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5440 replace with DisconnectFunction.
5442 2003-01-18 Havoc Pennington <hp@pobox.com>
5444 Building --disable-verbose-mode --disable-asserts --disable-tests
5445 cuts the library from 112K to 45K or so
5447 * configure.in: check for varargs macro support,
5448 add --enable-verbose-mode, --enable-asserts.
5450 * dbus/dbus-internals.h (_dbus_assert): support
5452 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
5454 2003-01-18 Havoc Pennington <hp@pobox.com>
5456 * dbus/dbus-test.c: include config.h so that tests actually run
5458 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
5459 so the failure mode when that assumption fails will be plenty
5462 2003-01-18 Havoc Pennington <hp@pobox.com>
5464 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
5466 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
5469 * test/Makefile.am: don't use special variable "TESTS" for echo-*
5470 since we don't want to use those in make check
5472 2003-01-15 Havoc Pennington <hp@redhat.com>
5478 2003-01-15 Havoc Pennington <hp@redhat.com>
5480 * test/Makefile.am: fix so that test source code ends up in the
5481 distribution on make distcheck
5483 2003-01-15 Havoc Pennington <hp@redhat.com>
5489 2003-01-15 Havoc Pennington <hp@redhat.com>
5491 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
5492 fix build when --disable-tests
5494 * Makefile.am (EXTRA_DIST): put HACKING in here
5496 * HACKING: document procedure for making a tarball release.
5498 2003-01-14 Anders Carlsson <andersca@codefactory.se>
5500 * bus/connection.c: (connection_error_handler),
5501 (bus_connection_setup):
5502 * bus/main.c: (main):
5503 Make sure that the DBusConnectionData struct is NULLed
5504 out to prevent a segfault.
5506 * dbus/dbus-errors.c: (dbus_result_to_string):
5507 * dbus/dbus-errors.h:
5508 * dbus/dbus-message.c: (dbus_message_get_fields),
5509 (dbus_message_get_fields_valist), (_dbus_message_test):
5510 * dbus/dbus-message.h:
5511 Make dbus_message_get_fields return a result code so we can
5512 track invalid fields as well as oom.
5514 2003-01-11 Havoc Pennington <hp@pobox.com>
5516 * configure.in: change --enable-test/--enable-ansi action-if-given
5517 to enable_foo=$enableval instead of enable_foo=yes
5519 2003-01-08 Havoc Pennington <hp@pobox.com>
5521 * dbus/dbus-string.c (_dbus_string_align_length): new function
5523 * dbus/dbus-test-main.c: move main() for test app here
5525 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
5526 symbol to run tests, because dbus-test isn't in the main
5529 Code review nitpicks.
5531 * dbus/dbus-message.c (dbus_message_write_header): add newlines
5532 for people with narrow emacs ;-). Assert client_serial was filled
5533 in. Assert message->name != NULL.
5534 (dbus_message_append_fields): have "first_field_type" arg separate
5535 from va list, needed for C++ binding that also uses varargs IIRC
5536 and helps with type safety
5537 (dbus_message_new): add @todo about using DBusString to store
5538 service/name internally
5539 (dbus_message_new): don't leak ->service and ->name on OOM later
5541 (dbus_message_unref): free the service name
5542 (dbus_message_get_fields): same change to varargs
5543 i.e. first_field_type
5544 (_dbus_message_loader_return_buffer): assert that the message data
5545 is aligned (if not it's a bug in our code). Put in verbose griping
5546 about why we set corrupted = TRUE.
5547 (decode_header_data): add FIXME that char* is evil. Was going to
5548 add FIXME about evil locale-specific string.h strncmp, but just
5549 switched to wacky string-as-uint32 optimization. Move check for
5550 "no room for field name" above get_const_data_len() to avoid
5551 assertion failure in get_const_data_len if we have trailing 2
5552 bytes or the like. Check for service and name fields being
5553 provided twice. Don't leak service/name on error. Require field
5554 names to be aligned to 4 bytes.
5556 * dbus/dbus-marshal.c: move byte swap stuff to header
5557 (_dbus_pack_int32): uscore-prefix
5558 (_dbus_unpack_int32): uscore-prefix
5559 (_dbus_unpack_uint32): export
5560 (_dbus_demarshal_string): add @todo complaining about use of
5562 (_dbus_marshal_get_field_end_pos): add @todo about bad error
5563 handling allowing corrupt data to go unchecked
5565 2003-01-08 Havoc Pennington <hp@redhat.com>
5567 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
5568 to the select() as needed for authentication. (should be using
5569 _dbus_poll() not select, but for another day)
5571 * dbus/dbus.h: include dbus/dbus-protocol.h
5573 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5575 * dbus/Makefile.am (dbusinclude_HEADERS): Install
5578 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5580 * dbus/dbus-internals.c: (_dbus_type_to_string):
5581 New function that returns a string describing a type.
5583 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
5584 * dbus/dbus-marshal.h:
5585 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
5586 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
5587 (dbus_message_iter_get_byte_array):
5588 * dbus/dbus-message.h:
5589 Add new convenience functions for appending and getting message fields.
5590 Also add demarshalling routines for byte arrays.
5592 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5594 * dbus/dbus-connection-internal.h:
5595 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5596 (_dbus_connection_get_next_client_serial),
5597 (dbus_connection_send_message):
5598 * dbus/dbus-internals.h:
5599 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
5600 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
5601 (_dbus_marshal_uint32), (_dbus_demarshal_double),
5602 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
5603 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
5604 (_dbus_verbose_bytes), (_dbus_marshal_test):
5605 * dbus/dbus-marshal.h:
5606 * dbus/dbus-message-internal.h:
5607 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
5608 (dbus_message_write_header), (_dbus_message_lock),
5609 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
5610 (dbus_message_get_name), (dbus_message_append_int32),
5611 (dbus_message_append_uint32), (dbus_message_append_double),
5612 (dbus_message_append_string), (dbus_message_append_byte_array),
5613 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
5614 (dbus_message_iter_unref), (dbus_message_iter_has_next),
5615 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
5616 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
5617 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
5618 (decode_header_data), (_dbus_message_loader_return_buffer),
5619 (message_iter_test), (_dbus_message_test):
5620 * dbus/dbus-message.h:
5621 * dbus/dbus-protocol.h:
5622 * dbus/dbus-test.c: (main):
5624 * glib/test-dbus-glib.c: (message_handler), (main):
5625 * test/echo-client.c: (main):
5626 * test/watch.c: (check_messages):
5627 Make messages sendable and receivable for real.
5629 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5631 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5632 (_dbus_marshal_string), (_dbus_marshal_byte_array):
5633 * dbus/dbus-message.c: (dbus_message_append_int32),
5634 (dbus_message_append_uint32), (dbus_message_append_double),
5635 (dbus_message_append_string), (dbus_message_append_byte_array):
5636 Handle OOM restoration.
5638 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5640 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5641 (_dbus_demarshal_string), (_dbus_marshal_test):
5642 * dbus/dbus-marshal.h:
5643 * dbus/dbus-message.c: (dbus_message_get_name),
5644 Document these functions.
5646 (dbus_message_append_int32), (dbus_message_append_uint32),
5647 (dbus_message_append_double), (dbus_message_append_string),
5648 (dbus_message_append_byte_array):
5649 * dbus/dbus-message.h:
5650 Add functions for adding message fields of different types.
5652 * dbus/dbus-protocol.h:
5653 Add the different types.
5655 2003-01-05 Havoc Pennington <hp@pobox.com>
5657 * bus/connection.c: implement routines for handling connections,
5658 first thing is keeping a list of owned services on each connection
5659 and setting up watches etc.
5661 * bus/services.c: implement a mapping from service names to lists
5664 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
5666 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
5667 to use static mutexes for global data
5669 * dbus/dbus-connection.c (dbus_connection_set_data): add new
5670 collection of functions to set/get application-specific data
5671 on the DBusConnection.
5673 2003-01-04 Havoc Pennington <hp@pobox.com>
5675 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
5676 (_dbus_poll): new function
5678 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
5681 * bus/loop.c: initial code for the daemon main loop
5683 2003-01-04 Havoc Pennington <hp@pobox.com>
5685 * test/watch.c (error_handler): make it safe if the error handler
5686 is called multiple times (if we s/error handler/disconnect
5687 handler/ we should just guarantee it's called only once)
5689 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5690 error handler on disconnect (it's quite possible we should
5691 just change the error handler to a "disconnect handler," I'm
5692 not sure we have any other meaningful errors)
5694 * configure.in: check for getpwnam_r
5696 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5697 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5698 mechanism as in SASL spec, using socket credentials
5700 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5701 (_dbus_send_credentials_unix_socket): new function
5703 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5705 (_dbus_write): only check errno if <0 returned
5706 (_dbus_write_two): ditto
5708 2003-01-02 Anders Carlsson <andersca@codefactory.se>
5710 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5711 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5712 (_dbus_marshal_test):
5713 * dbus/dbus-marshal.h:
5714 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5715 to _dbus_marshal_utf8_string. Also fix some tests.
5717 2002-12-28 Harri Porten <porten@kde.org>
5719 * configure.in: added check for C++ compiler and a very cheesy
5720 check for the Qt integration
5722 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5724 * qt/Makefile.am: added
5726 * qt/.cvsignore: added
5728 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5729 latter, added #ifdef QT_THREAD_SUPPORT guard.
5731 * dbus/Makefile.am: added missing headers for make dist
5733 2002-12-28 Kristian Rietveld <kris@gtk.org>
5735 * dbus/Makefile.am: fixup export-symbols-regex.
5737 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5739 * acinclude.m4: Add this file and put the
5740 PKG_CHECK_MODULE macro in it.
5742 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5744 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5745 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5746 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5747 (_dbus_marshal_test):
5748 Make the demarshalling routines align the pos argument.
5749 Add string marshalling tests and fix the obvious bugs
5752 2002-12-26 Havoc Pennington <hp@pobox.com>
5754 * dbus/dbus-auth.c: fixes fixes fixes
5756 * dbus/dbus-transport-unix.c: wire up support for
5757 encoding/decoding data on the wire
5759 * dbus/dbus-auth.c (_dbus_auth_encode_data)
5760 (_dbus_auth_decode_data): append to target string
5761 instead of nuking it.
5763 2002-12-26 Havoc Pennington <hp@pobox.com>
5765 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5766 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5769 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5770 avoid swap_bytes() overhead (ignoring possible assembly stuff for
5771 now). Main point is because I wanted unpack_uint32 to implement
5773 (_dbus_verbose_bytes): new function
5775 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5777 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5778 mechanism to handle a corrupt message stream
5779 (_dbus_message_loader_new): fix preallocation to only prealloc,
5782 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5783 (_dbus_string_test): enhance tests for copy/move and fix the
5786 * dbus/dbus-transport-unix.c: Hold references in more places to
5787 avoid reentrancy problems
5789 * dbus/dbus-transport.c: ditto
5791 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
5792 leak reference count in no-message case
5794 * test/watch.c (do_mainloop): handle adding/removing watches
5795 during iteration over the watches. Also, ref the connection/server
5796 stored on a watch, so we don't try to mangle a destroyed one.
5798 * dbus/dbus-transport-unix.c (do_authentication): perform
5801 * dbus/dbus-auth.c (get_state): add a state
5802 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
5803 (_dbus_auth_get_unused_bytes): append the unused bytes
5804 to the passed in string, rather than prepend
5806 * dbus/dbus-transport.c (_dbus_transport_init_base): create
5807 the auth conversation DBusAuth
5809 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
5810 (_dbus_transport_new_for_domain_socket): when creating a
5811 transport, pass in whether it's a client-side or server-side
5812 transport so we know which DBusAuth to create
5814 2002-12-03 Havoc Pennington <hp@pobox.com>
5816 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
5817 _after_ finalizing the derived members
5818 (unix_connection_set): unref watch if we fail to add it
5820 * dbus/dbus-connection.c (dbus_connection_unref): delete the
5821 transport first, so that the connection owned by the
5822 transport will be valid as the transport finalizes.
5824 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
5825 if necessary, and remove watches from the connection.
5827 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
5829 2002-12-26 Anders Carlsson <andersca@codefactory.se>
5831 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5832 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5833 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5834 (_dbus_marshal_test):
5835 * dbus/dbus-marshal.h:
5836 Add string marshal functions and have the demarshal functions
5837 return the new position.
5839 2002-12-25 Havoc Pennington <hp@pobox.com>
5841 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
5842 it is a simple protocol that just maps directly to SASL.
5844 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
5845 initial implementation, not actually used yet.
5847 * dbus/dbus-string.c (_dbus_string_find): new function
5848 (_dbus_string_equal): new function
5849 (_dbus_string_base64_encode): new function
5850 (_dbus_string_base64_decode): new function
5852 2002-12-25 Anders Carlsson <andersca@codefactory.se>
5855 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
5856 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5857 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5858 (_dbus_demarshal_uint32), (_dbus_marshal_test):
5859 * dbus/dbus-marshal.h:
5860 * dbus/dbus-protocol.h:
5861 * dbus/dbus-test.c: (main):
5863 Add un-optimized marshalling/demarshalling routines.
5865 2002-12-25 Harri Porten <porten@kde.org>
5867 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
5869 2002-12-24 Zack Rusin <zack@kde.org>
5871 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
5872 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
5875 2002-12-24 Havoc Pennington <hp@pobox.com>
5877 * glib/dbus-gthread.c: fix include
5879 * glib/dbus-glib.h: rename DBusMessageHandler for now.
5880 I think glib API needs to change, though, as you don't
5881 want to use DBusMessageFunction, you want to use the
5882 DBusMessageHandler object. Probably
5883 dbus_connection_open_with_g_main_loop()
5884 and dbus_connection_setup_g_main_loop() or something like that
5885 (but think of better names...) that just create a connection
5886 that has watch/timeout functions etc. already set up.
5888 * dbus/dbus-connection.c
5889 (dbus_connection_send_message_with_reply): new function just to
5890 show how the message handler helps us deal with replies.
5892 * dbus/dbus-list.c (_dbus_list_remove_last): new function
5894 * dbus/dbus-string.c (_dbus_string_test): free a string that
5897 * dbus/dbus-hash.c: use memory pools for the hash entries
5898 (rebuild_table): be more paranoid about overflow, and
5899 shrink table when we can
5900 (_dbus_hash_test): reduce number of sprintfs and write
5901 valid C89. Add tests for case where we grow and then
5902 shrink the hash table.
5904 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
5906 * dbus/dbus-connection.c (dbus_connection_register_handler)
5907 (dbus_connection_unregister_handler): new functions
5909 * dbus/dbus-message.c (dbus_message_get_name): new
5911 * dbus/dbus-list.c: fix docs typo
5913 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
5914 an object representing a handler for messages.
5916 2002-12-16 Anders Carlsson <andersca@codefactory.se>
5919 * glib/dbus-gthread.c: (dbus_gthread_init):
5920 Don't use the gdbus prefix for public functions.
5922 2002-12-16 Anders Carlsson <andersca@codefactory.se>
5926 Add GLib checks and fixup .pc files
5930 * glib/dbus-gmain.c: (gdbus_connection_prepare),
5931 (gdbus_connection_check), (gdbus_connection_dispatch),
5932 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
5933 (dbus_connection_gsource_new):
5934 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
5935 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
5936 * glib/test-dbus-glib.c: (message_handler), (main):
5939 2002-12-15 Harri Porten <porten@kde.org>
5941 * autogen.sh: check for libtoolize before attempting to use it
5943 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
5946 * .cvsignore: ignore more stamp files
5948 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
5950 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
5951 without make install.
5953 2002-12-15 Havoc Pennington <hp@pobox.com>
5955 * dbus/dbus-threads.c: add thread stubs that a higher library
5956 layer can fill in. e.g. the GLib wrapper might fill them in with
5957 GThread stuff. We still need to use this thread API to
5958 thread-safe-ize the library.
5960 2002-12-12 Havoc Pennington <hp@pobox.com>
5962 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
5963 below new interfaces and include fewer system headers.
5965 * dbus/dbus-sysdeps.c (_dbus_read): new function
5966 (_dbus_write): new function
5967 (_dbus_write_two): new function
5968 (_dbus_connect_unix_socket): new function
5969 (_dbus_listen_unix_socket): new function
5971 * dbus/dbus-message-internal.h: change interfaces to use
5974 2002-12-11 Havoc Pennington <hp@pobox.com>
5976 * dbus/dbus-types.h: add dbus_unichar
5978 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
5980 * dbus/dbus-connection.c (dbus_connection_send_message): return
5983 * dbus/dbus-transport.c: include dbus-watch.h
5985 * dbus/dbus-connection.c: include dbus-message-internal.h
5987 * HACKING: add file with coding guidelines stuff.
5989 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
5990 handling here, for security purposes (as in vsftpd). Not actually
5991 using this class yet.
5993 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
5994 system/libc usage here, as in vsftpd, for ease of auditing (and
5995 should also simplify portability). Haven't actually moved all the
5996 system/libc usage into here yet.
5998 2002-11-25 Havoc Pennington <hp@pobox.com>
6000 * dbus/dbus-internals.c (_dbus_verbose): fix to not
6001 always print the first verbose message.
6003 2002-11-24 Havoc Pennington <hp@pobox.com>
6005 * test/echo-client.c, test/echo-server.c: cheesy test
6008 * configure.in (AC_CHECK_FUNCS): check for writev
6010 * dbus/dbus-message.c (_dbus_message_get_network_data): new
6013 * dbus/dbus-list.c (_dbus_list_foreach): new function
6015 * dbus/dbus-internals.c (_dbus_verbose): new function
6017 * dbus/dbus-server.c, dbus/dbus-server.h: public object
6018 representing a server that listens for connections.
6020 * dbus/.cvsignore: create
6022 * dbus/dbus-errors.h, dbus/dbus-errors.c:
6023 public API for reporting errors
6025 * dbus/dbus-connection.h, dbus/dbus-connection.c:
6026 public object representing a connection that
6027 sends/receives messages. (Same object used for
6028 both client and server.)
6030 * dbus/dbus-transport.h, dbus/dbus-transport.c:
6031 Basic abstraction for different kinds of stream
6032 that we might read/write messages from.
6034 2002-11-23 Havoc Pennington <hp@pobox.com>
6036 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
6039 * dbus/dbus-test.c (main): add list test, and include
6040 dbus-test.h as intended
6042 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
6043 (_dbus_hash_table_remove_int): return value indicates
6044 whether the entry existed to remove
6046 * dbus/dbus-list.c: add linked list utility class,
6049 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
6052 2002-11-23 Havoc Pennington <hp@pobox.com>
6054 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
6055 DBUS_END_DECLS to nothing, that should fix this once and for all
6057 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
6059 * dbus/dbus-message.c, dbus/dbus-hash.c:
6060 add some missing @brief
6062 2002-11-23 Havoc Pennington <hp@pobox.com>
6064 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
6065 to avoid confusing Doxygen
6067 * dbus/dbus-hash.c: @} not }@
6069 * dbus/dbus-message.c (struct DBusMessage): split out
6072 2002-11-23 Havoc Pennington <hp@pobox.com>
6074 * configure.in: pile on more warning flags if using gcc
6076 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
6077 to document static functions
6079 * configure.in: add summary to end of configure so it
6080 looks nice and attractive
6082 * dbus/dbus-hash.c: finish implementation and write unit
6085 * configure.in: add --enable-tests to enable unit tests
6087 * dbus/dbus-test.c: test program to run unit tests
6088 for all files in dbus/*, initially runs a test for
6091 * dbus/dbus-internals.h: file to hold some internal utility stuff
6093 2002-11-22 Havoc Pennington <hp@redhat.com>
6095 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
6096 "ported" away from Tcl
6098 * dbus/dbus-types.h: header for types such as dbus_bool_t
6100 2002-11-22 Havoc Pennington <hp@redhat.com>
6102 * dbus/dbus.h: fixups for doc warnings
6104 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
6106 (QUIET): make it quiet so we can see warnings
6108 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
6110 2002-11-22 Havoc Pennington <hp@redhat.com>
6112 * Makefile.am: include "Doxyfile" target in all-local
6114 * configure.in: generate the Doxyfile
6116 * Doxyfile.in: move Doxyfile here, so we can use
6117 configure to generate a Doxyfile with the right
6120 2002-11-22 Havoc Pennington <hp@redhat.com>
6122 * dbus/dbus-message.c: move inline docs into .c file
6124 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
6125 so all docs are under doc/
6126 (MAN_EXTENSION): generate man pages. Use extension
6127 ".3dbus" which matches ".3qt" on my system,
6128 I guess this is OK, I don't know really.
6129 (FILE_PATTERNS): look for .c files not .h, makes sense
6132 2002-11-22 Havoc Pennington <hp@pobox.com>
6134 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
6135 because any app can be a server, and any app can be a client,
6136 the bus is a special kind of server.
6138 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
6140 * Doxyfile : adding. Still needs Makefile rules to be generated
6141 automatically (just run "doxygen" in the toplevel dir for now to
6144 * dbus/dbus-message.h : Adding sample docs (javadoc since
6145 resembles gtk-doc a little more)
6147 * dbus/dbus.h : Adding sample docs
6149 2002-11-21 Havoc Pennington <hp@redhat.com>
6151 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
6152 so we can allow ourselves to include files directly,
6153 instead of having to use dbus.h
6155 * dbus/dbus.h: fill in
6157 * dbus/dbus-message.h: sketch out a sample header file.
6158 Include griping if you include it directly instead of
6161 * dbus/dbus-macros.h: new file with macros for extern "C",
6162 TRUE/FALSE, NULL, etc.
6164 * doc/file-boilerplate.c: put include guards in here
6166 2002-11-21 Havoc Pennington <hp@redhat.com>
6168 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
6170 * COPYING: include the GPL as well, and license code
6171 under both AFL and GPL.
6173 2002-11-21 Havoc Pennington <hp@redhat.com>
6175 * acconfig.h: get rid of this
6177 * autogen.sh (run_configure): add --no-configure option
6179 * configure.in: remove AC_ARG_PROGRAM to make
6180 autoconf complain less. add AC_PREREQ.
6181 add AC_DEFINE third arg.
6183 2002-11-21 Anders Carlsson <andersca@codefactory.se>
6186 Fix references so we can distcheck.
6188 2002-11-21 Havoc Pennington <hp@redhat.com>
6190 * Initial module creation