1 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7 (dbus_message_iter_init_array_iterator)
8 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9 indicate whether the iterator is empty
11 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
14 2004-03-19 Havoc Pennington <hp@redhat.com>
20 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
22 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
23 you don't need pyrex to make dist
25 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
28 2004-03-18 Richard Hult <richard@imendio.com>
30 * dbus/dbus-message.c (dbus_message_get_auto_activation)
31 (dbus_message_set_auto_activation): Add doxygen docs.
33 2004-03-16 Richard Hult <richard@imendio.com>
35 * bus/activation.c: (bus_activation_service_created),
36 (bus_activation_send_pending_auto_activation_messages),
37 (bus_activation_activate_service):
39 * bus/dispatch.c: (bus_dispatch),
40 (check_nonexistent_service_auto_activation),
41 (check_service_auto_activated),
42 (check_segfault_service_auto_activation),
43 (check_existent_service_auto_activation), (bus_dispatch_test):
44 * bus/driver.c: (bus_driver_handle_activate_service):
45 * bus/services.c: (bus_registry_acquire_service):
46 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
47 (dbus_message_get_auto_activation):
48 * dbus/dbus-message.h:
49 * dbus/dbus-protocol.h: Implement auto-activation.
51 * doc/dbus-specification.xml: Add auto-activation to the spec.
53 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
55 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
56 fix a bug with CUSTOM types.
58 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
59 a unit test for this bug (used to fail).
61 2004-03-12 Mikael Hallendal <micke@imendio.com>
64 (babysitter_watch_callback): notify all pending activations waiting for
65 the same exec that the activation failed.
66 (bus_activation_activate_service): shortcut the activation if we
67 already waiting for the same executable to start up.
69 2004-03-12 Mikael Hallendal <micke@imendio.com>
72 - Added service file reloading.
73 Each service files directory is kept in an hash table in
74 BusActivation and each BusActivationEntry knows what .service-file it
75 was read from. So when you try to activate a service the bus will
76 check if it's been updated, removed or if new .service-files has
78 - Test code at the bottom for the service file reloading.
79 * bus/test-main.c: (main):
81 - added service reloading test.
82 * dbus/dbus-sysdeps.c:
83 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
85 2004-03-08 Michael Meeks <michael@ximian.com>
87 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
88 bail immediately if disconnected, to avoid busy loop.
90 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
91 cleanup cut/paste/inefficiency.
93 2004-03-01 David Zeuthen <david@fubar.dk>
95 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
96 bug where args were used twice. This bug resulted in a segfault
97 on a Debian/PPC system when starting the messagebus daemon. Include
98 dbus-sysdeps.h for DBUS_VA_COPY
100 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
102 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
103 appropriate va_copy implementation. From GLib
105 2004-02-24 Joe Shaw <joe@ximian.com>
107 * bus/services.c (bus_registry_acquire_service): We need to pass
108 in the service name to dbus_set_error() to prevent a crash.
110 2003-12-26 Anders Carlsson <andersca@gnome.org>
112 * AUTHORS: Reveal my True identity.
114 2003-12-17 Mikael Hallendal <micke@imendio.com>
116 * dbus/dbus-message.c: (dbus_message_append_args_valist):
117 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
119 2003-12-13 Mikael Hallendal <micke@imendio.com>
121 * doc/TODO: Added not about better error check of configuration files.
123 2003-12-02 Richard Hult <richard@imendio.com>
125 * Update AFL version to 2.0 throughout the source files to reflect
126 the update that was done a while ago.
128 2003-12-02 Richard Hult <richard@imendio.com>
130 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
131 wrote_dict_key to FALSE on the iter that the dict is appended to,
132 just like when appending other types. Fixes a bug where a dict
133 couldn't be put inside a dict.
134 (dbus_message_iter_append_dict_key): Fix typo in warning message.
135 (message_iter_test, _dbus_message_test): Add test case for dict
138 2003-12-01 David Zeuthen <david@fubar.dk>
140 * python/dbus.py: Add the actual message when calling the reciever
141 of a signal such that parameters can be inspected. Add the method
142 remove_signal_receiver
144 2003-11-26 Mikael Hallendal <micke@imendio.com>
148 * glib/*.[ch]: Made ref functions return the pointer
150 2003-11-25 Zack Rusin <zack@kde.org>
152 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
154 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
157 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
158 the Integrator and to better fit with the server,
160 2003-11-24 Zack Rusin <zack@kde.org>
162 * qt/connection.h, qt/connection.cpp: removing initDbus method since
163 the integrator handles it now
165 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
166 since QTimer wasn't really meant to be used the way DBusTimeout is
168 2003-11-24 Zack Rusin <zack@kde.org>
170 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
171 Integrator class which integrates D-BUS with the Qt event loop,
173 * qt/connection.h, qt/connection.cpp: Move all the code which
174 was dealing with D-BUS integration to the Integrator class,
175 and start using Integrator,
177 2003-11-23 Zack Rusin <zack@kde.org>
179 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
182 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
183 switching namespaces to DBusQt, reworking the class,
185 * Makefile.cvs: switching dependencies so that it matches KDE
188 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
191 2003-11-19 Havoc Pennington <hp@redhat.com>
195 * configure.in: bump version to 0.20
197 * configure.in (have_qt): add yet another place to look for qt
198 (someone hand trolltech a .pc file...)
200 2003-11-01 Havoc Pennington <hp@redhat.com>
202 * doc/dbus-specification.xml: add state machine docs on the auth
203 protocol; just a first draft, I'm sure it's wrong.
205 2003-10-28 David Zeuthen <david@fubar.dk>
207 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
208 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
210 2003-10-28 Havoc Pennington <hp@redhat.com>
212 * dbus/dbus-message.c (get_next_field): delete unused function
214 2003-10-28 Havoc Pennington <hp@redhat.com>
216 * bus/expirelist.c (do_expiration_with_current_time): detect
217 failure of the expire_func due to OOM
219 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
221 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
222 NoReply error that's now created by the bus when the service exits
224 2003-10-28 Havoc Pennington <hp@redhat.com>
226 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
227 tests for set_path, set_interface, set_member, etc.
229 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
231 * dbus/dbus-message.c (set_string_field): always just delete and
232 re-append the field; accept NULL for deletion
233 (re_align_fields_recurse): reimplement
235 2003-10-26 Havoc Pennington <hp@redhat.com>
237 * dbus/dbus-connection.c: fix docs to properly describe the
239 (_dbus_connection_notify_disconnected): remove this function;
240 we can't synchronously add the disconnected message, we have to
241 do it after we've queued any remaining real messages
242 (_dbus_connection_get_dispatch_status_unlocked): queue the
243 disconnect message only if the transport has finished queueing all
244 its real messages and is disconnected.
245 (dbus_connection_disconnect): update the dispatch status here
247 2003-10-22 Havoc Pennington <hp@redhat.com>
249 * bus/bus.c (bus_context_check_security_policy): fix up assertion
251 * bus/connection.c (bus_transaction_send_from_driver): set the
252 destination to the connection's base service
254 2003-10-20 Havoc Pennington <hp@redhat.com>
256 hmm, make check is currently not passing.
258 * doc/dbus-specification.xml: add requirement that custom type
259 names follow the same rules as interface names.
261 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
262 duplication and allow 'c' to be 'custom'; dict is now 'm' for
265 * doc/dbus-specification.xml: update type codes to match
266 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
267 CUSTOM. Add type OBJECT_PATH to the spec.
269 2003-10-17 Havoc Pennington <hp@redhat.com>
271 * bus/driver.c (create_unique_client_name): use "." as separator
272 in base service names instead of '-'
274 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
275 byte at the end of the string
277 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
278 optimization macros since string validation seems to be a slow
281 * doc/dbus-specification.xml: restrict valid
282 service/interface/member/error names. Add test suite code for the
285 * dbus/dbus-string.c: limit service/interface/member/error names
288 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
289 format arg to verbose spew
291 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
292 memory, return instead of g_error
294 * test/test-service.c (path_message_func): support emitting a
297 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
298 activation bus type if DBUS_BUS_ACTIVATION was set; default to
299 assuming the activation bus was the session bus so that services
300 started manually will still register.
301 (init_connections_unlocked): fix so that in OOM situation we get
302 the same semantics when retrying the function
304 * test/test-service.c (main): change to use path registration, to
305 test those codepaths; register with DBUS_BUS_ACTIVATION rather
306 than DBUS_BUS_SESSION
308 2003-10-16 Havoc Pennington <hp@redhat.com>
310 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
312 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
313 coverage of the tests
314 (coverage-report.txt): don't move the .da and .bbg files around
316 2003-10-16 Havoc Pennington <hp@redhat.com>
318 * bus/bus.c (struct BusContext): remove struct field I didn't mean
321 2003-10-16 Havoc Pennington <hp@redhat.com>
323 * bus/connection.c (bus_pending_reply_expired): either cancel or
325 (bus_connections_check_reply): use unlink, not remove_link, as we
326 don't want to free the link; fixes double free mess
328 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
329 where no reply was received
331 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
334 * bus/signals.c (match_rule_matches): add special cases for the
335 bus driver, so you can match on sender/destination for it.
337 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
338 DBUS_PRINT_BACKTRACE is set
340 * dbus/dbus-internals.c: add pid to assertion failure messages
342 * dbus/dbus-connection.c: add message type code to the debug spew
344 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
345 sender=foo not service=foo
347 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
348 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
349 DBUS_ACTIVATION_ADDRESS instead
351 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
352 DBUS_SYSTEM_BUS_ADDRESS if appropriate
354 * bus/bus.c (bus_context_new): handle OOM copying bus type into
357 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
358 (dbus_message_iter_get_object_path_array): new function (half
359 finished, disabled for the moment)
361 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
362 DBUS_MESSAGE_TYPE_ERROR
364 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
365 avoid redirecting stderr to /dev/null
366 (babysit): close stdin if not doing the "exit_with_session" thing
368 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
369 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
370 stdout/stdin, so things don't get confused
372 * bus/system.conf.in: fix to allow replies, I modified .conf
373 instead of .conf.in again.
375 2003-10-14 David Zeuthen <david@fubar.dk>
377 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
378 argtype to arg_type when raising unknown arg type exception.
379 Changed type list to reflect the changes in dbus-protocol.h so
380 the bindings actually work.
382 2003-10-14 Havoc Pennington <hp@redhat.com>
384 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
385 to have a bug keeping it from outputting the .da files sometimes
386 (string_get_string): don't append garbage nul bytes to the string.
388 2003-10-15 Seth Nickell <seth@gnome.org>
390 * python/Makefile.am:
392 Include dbus_h_wrapper.h in the dist tarball.
394 2003-10-14 Havoc Pennington <hp@redhat.com>
396 * bus/bus.c (bus_context_check_security_policy): revamp this to
397 work more sanely with new policy-based requested reply setup
399 * bus/connection.c (bus_transaction_send_from_driver): set bus
400 driver messages as no reply
402 * bus/policy.c (bus_client_policy_check_can_receive): handle a
403 requested_reply attribute on allow/deny rules
405 * bus/system.conf: add <allow requested_reply="true"/>
407 * bus/driver.c (bus_driver_handle_message): fix check for replies
408 sent to the bus driver, which was backward. How did this ever work
409 at all though? I think I'm missing something.
411 * dbus/dbus-message.c (decode_header_data): require error and
412 method return messages to have a reply serial field to be valid
413 (_dbus_message_loader_queue_messages): break up this function;
414 validate that reply serial and plain serial are nonzero;
415 clean up the OOM/error handling.
416 (get_uint_field): don't return -1 from this
417 (dbus_message_create_header): fix signed/unsigned bug
419 * bus/connection.c (bus_connections_expect_reply): save serial of
420 the incoming message, not reply serial
422 2003-10-14 Havoc Pennington <hp@redhat.com>
424 * bus/connection.c: implement pending reply tracking using
427 * bus/bus.c (bus_context_check_security_policy): verify that a
428 reply is pending in order to allow a reply to be sent. Deny
429 messages of unknown type.
431 * bus/dbus-daemon-1.1.in: update to mention new resource limits
433 * bus/bus.c (bus_context_get_max_replies_per_connection): new
434 (bus_context_get_reply_timeout): new
436 2003-10-13 Seth Nickell <seth@gnome.org>
438 * python/Makefile.am:
440 Pass "make distcheck": remove a couple files from DIST_FILES
441 that weren't included in the final version.
443 2003-10-12 Havoc Pennington <hp@pobox.com>
445 Added test code that 1) starts an actual bus daemon and 2) uses
446 DBusGProxy; fixed bugs that were revealed by the test. Lots
447 more testing possible, but this is the basic framework.
449 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
450 empty proxy lists from the proxy list hash
452 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
453 couple of return_if_fail checks
455 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
456 to allocate, so everything is cleared to NULL as it should be.
458 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
459 source as data to dbus_connection_set_timeout_functions() as the
460 timeout functions expected
462 * test/glib/run-test.sh: add a little script to start up a message
463 bus and run tests using it
465 * tools/dbus-launch.1: updates
467 * tools/dbus-launch.c (main): add --config-file option
469 * tools/dbus-launch.c (main): remove confusing else if (runprog)
470 that could never be reached.
472 * dbus/dbus-message.c (dbus_message_new_method_return)
473 (dbus_message_new_error, dbus_message_new_signal): set the
474 no-reply-expected flag on all these. Redundant, but may
475 as well be consistent.
477 2003-10-11 Havoc Pennington <hp@pobox.com>
479 * test/decode-gcov.c (function_solve_graph): make broken block
480 graph a nonfatal error since it seems to be broken. Need to debug
483 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
484 can't just check type > INVALID < LAST anymore
486 * dbus/dbus-message.c (dbus_message_get_signature): new function
487 (dbus_message_has_signature): new function
488 (struct DBusMessage): add signature field (right now it isn't sent
489 over the wire, just generated on the fly)
490 (dbus_message_copy): copy the signature, and init strings to
491 proper length to avoid some reallocs
492 (dbus_message_iter_init_array_iterator): return void, since it
494 (dbus_message_iter_init_dict_iterator): return void since it can't fail
495 (_dbus_message_loader_queue_messages): add silly temporary hack to
496 fill in message->signature on load
498 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
499 characters, so they are relatively human-readable.
501 2003-10-11 Havoc Pennington <hp@pobox.com>
503 * dbus/dbus-message.c (_dbus_message_test): add more test
504 coverage, but #if 0 for now since they uncover a bug
505 not fixed yet; I think in re_align_field_recurse()
506 (re_align_field_recurse): add FIXME about broken assertion
508 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
510 * bus/connection.c: share a couple code bits with expirelist.c
512 * bus/expirelist.h, bus/expirelist.c: implement a generic
513 expire-items-after-N-seconds facility, was going to share between
514 expiring connections and replies, decided not to use for expiring
517 * COPYING: include AFL 2.0 (still need to change all the file headers)
519 2003-10-09 Havoc Pennington <hp@redhat.com>
521 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
522 gcc 3.3. Not that we do anything about it yet.
524 * bus/signals.c (bus_match_rule_parse): impose max length on the
527 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
529 2003-10-09 Havoc Pennington <hp@redhat.com>
531 Make matching rules theoretically work (add parser).
533 * bus/bus.c (bus_context_check_security_policy): fix up to handle
534 the case where destination is explicitly specified as bus driver
535 and someone else is eavesdropping.
537 * bus/policy.c (bus_client_policy_check_can_receive): fix up
538 definition of eavesdropping and assertion
540 * tools/dbus-send.c (main): use dbus_message_type_from_string
542 * bus/signals.c (bus_match_rule_parse): implement
544 * dbus/dbus-message.c (dbus_message_type_from_string): new
546 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
548 2003-10-02 Havoc Pennington <hp@pobox.com>
550 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
551 dbus_gproxy_oneway_call
553 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
554 (dbus_server_setup_with_g_main): fix to allow calling them more
555 than once on the same args
556 (dbus_bus_get_with_g_main): new function
558 2003-10-02 Havoc Pennington <hp@redhat.com>
560 * doc/dbus-tutorial.xml: write some stuff
562 2003-09-29 Havoc Pennington <hp@pobox.com>
564 * configure.in: split checks for Doxygen from XML docs, check for
567 * doc/Makefile.am: XML-ify all the docs, and add a blank
570 2003-09-29 Havoc Pennington <hp@pobox.com>
572 * Merge dbus-object-names branch. To see the entire patch
573 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
575 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
577 2003-09-28 Havoc Pennington <hp@pobox.com>
579 * HACKING: update to reflect new server
581 2003-09-26 Seth Nickell <seth@gnome.org>
584 * python/examples/example-signals.py:
586 Start implementing some notions of signals. The API
587 is really terrible, but they sort of work (with the
588 exception of being able to filter by service, and to
589 transmit signals *as* a particular service). Need to
590 figure out how to make messages come from the service
593 * python/dbus_bindings.pyx.in:
595 Removed duplicate message_handler callbacks.
597 2003-09-25 Havoc Pennington <hp@redhat.com>
599 * bus/session.conf.in: fix my mess
601 2003-09-25 Havoc Pennington <hp@pobox.com>
603 * bus/session.conf.in: fix security policy, reported by Seth Nickell
605 2003-09-25 Seth Nickell <seth@gnome.org>
607 * python/examples/example-service.py:
609 Johan notices complete wrong code in example-service, but
610 completely wrong in a way that works exactly the same (!).
611 Johan is confused, how could this possibly work? Example
612 code fails to serve purpose of making things clear.
615 2003-09-25 Mark McLoughlin <mark@skynet.ie>
617 * doc/dbus-specification.sgml: don't require header fields
618 to be 4-byte aligned and specify that fields should be
619 distinguished from padding by the fact that zero is not
622 * doc/TODO: remove re-alignment item and add item to doc
623 the OBJECT_PATH type.
625 * dbus/dbus-message.c:
626 (HeaderField): rename the original member to value_offset
627 and introduce a name_offset member to keep track of where
628 the field actually begins.
629 (adjust_field_offsets): remove.
630 (append_int_field), (append_uint_field),
631 (append_string_field): don't align the start of the header
632 field to a 4-byte boundary.
633 (get_next_field): impl finding the next marhsalled field
635 (re_align_field_recurse): impl re-aligning a number of
636 already marshalled fields.
637 (delete_field): impl deleting a field of any type and
638 re-aligning any following fields.
639 (delete_int_or_uint_field), (delete_string_field): remove.
640 (set_int_field), (set_uint_field): no need to re-check
641 that we have the correct type for the field.
642 (set_string_field): ditto and impl re-aligning any
644 (decode_header_data): update to take into account that
645 the fields aren't 4-byte aligned any more and the new
646 way to distinguish padding from header fields. Also,
647 don't exit when there is too much header padding.
648 (process_test_subdir): print the directory.
649 (_dbus_message_test): add test to make sure a following
650 field is re-aligned correctly after field deletion.
652 * dbus/dbus-string.[ch]:
653 (_dbus_string_insert_bytes): rename from insert_byte and
654 allow the insert of multiple bytes.
655 (_dbus_string_test): test inserting multiple bytes.
657 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
658 warning note to docs about having to re-align any
659 marshalled values following the string.
661 * dbus/dbus-message-builder.c:
662 (append_string_field), (_dbus_message_data_load):
663 don't align the header field.
665 * dbus/dbus-auth.c: (process_test_subdir): print the
668 * test/break-loader.c: (randomly_add_one_byte): upd. for
671 * test/data/invalid-messages/bad-header-field-alignment.message:
674 * test/data/valid-messages/unknown-header-field.message: shove
675 a dict in the unknown field.
677 2003-09-25 Seth Nickell <seth@gnome.org>
680 * python/dbus_bindings.pyx.in:
682 Handle return values.
684 * python/examples/example-client.py:
685 * python/examples/example-service.py:
687 Pass back return values from the service to the client.
689 2003-09-24 Seth Nickell <seth@gnome.org>
693 Connect Object methods (when you are sharing an object) up... pass
694 in a list of methods to be shared. Sharing all the methods just
695 worked out too weird. You can now create nice Services over the
698 * python/dbus_bindings.pyx.in:
700 Keep references to user_data tuples passed into C functions so
701 Python doesn't garbage collect on us.
703 Implement MethodReturn and Error subclasses of Message for creating
704 DBusMessage's of those types.
706 * python/examples/example-client.py:
707 * python/examples/example-service.py:
709 Simple example code showing both how create DBus services and objects,
712 2003-09-23 Havoc Pennington <hp@pobox.com>
714 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
716 2003-09-23 Havoc Pennington <hp@redhat.com>
718 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
719 (dbus_gproxy_disconnect_signal): implement
720 (dbus_gproxy_manager_remove_signal_match): implement
721 (dbus_gproxy_manager_add_signal_match): implement
722 (dbus_gproxy_oneway_call): implement
724 2003-09-23 Havoc Pennington <hp@pobox.com>
726 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
727 subclass. This means dropping the transparent thread safety of the
728 proxy; you now need a separate proxy per-thread, or your own
729 locking on the proxy. Probably right anyway.
730 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
732 2003-09-22 Havoc Pennington <hp@redhat.com>
734 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
736 2003-09-21 Seth Nickell <seth@gnome.org>
738 First checkin of the Python bindings.
741 * python/Makefile.am:
742 * python/dbus_bindings.pyx.in:
743 * python/dbus_h_wrapper.h:
745 Pieces for Pyrex to operate on, building a dbus_bindings.so
746 python module for low-level access to the DBus APIs.
750 High-level Python module for accessing DBus objects.
755 Build stuff for the python bindings.
759 Extra macro needed for finding the Python C header files.
761 2003-09-21 Havoc Pennington <hp@pobox.com>
763 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
764 implementing the proxy manager, didn't get very far.
766 * dbus/dbus-bus.c (dbus_bus_add_match): new
767 (dbus_bus_remove_match): new
769 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
770 path_name argument; adjust the other not-yet-implemented
771 gproxy constructors to be what I think they should be.
773 2003-09-21 Havoc Pennington <hp@pobox.com>
775 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
776 by default for message bus connections.
778 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
779 exit_on_disconnect flag is set and we process the disconnected
781 (dbus_connection_set_exit_on_disconnect): new function
783 2003-09-21 Havoc Pennington <hp@pobox.com>
785 Get matching rules mostly working in the bus; only actually
786 parsing the rule text remains. However, the client side of
787 "signal connections" hasn't been started, this patch is only the
790 * dbus/dispatch.c: fix for the matching rules changes
792 * bus/driver.c (bus_driver_handle_remove_match)
793 (bus_driver_handle_add_match): send an ack reply from these
796 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
797 arguments, reported by Seth Nickell
799 * bus/config-parser.c (append_rule_from_element): support
800 eavesdrop=true|false attribute on policies so match rules
801 can be prevented from snooping on the system bus.
803 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
804 and "destination" in attribute names; fix some docs bugs;
805 add eavesdrop=true|false attribute
807 * bus/driver.c (bus_driver_handle_add_match)
808 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
811 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
812 rid of broadcast service concept, signals are just always broadcast
814 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
815 mostly implement matching rules stuff (currently only exposed as signal
818 2003-09-21 Mark McLoughlin <mark@skynet.ie>
820 * doc/dbus-specification.sgml: Change the header field name
821 to be an enum and update the rest of the spec to reference
822 the fields using the conventinal name.
824 * dbus/dbus-protocol.h: update to reflect the spec.
826 * doc/TODO: add item to remove the 4 byte alignment requirement.
828 * dbus/dbus-message.c: Remove the code to generalise the
829 header/body length and serial number header fields as named
830 header fields so we can reference field names using the
832 (append_int_field), (append_uint_field), (append_string_field):
833 Append the field name as a byte rather than four chars.
834 (delete_int_or_uint_field), (delete_string_field): reflect the
835 fact that the field name and typecode now occupy 4 bytes instead
837 (decode_string_field), (decode_header_data): update to reflect
838 protocol changes and move the field specific encoding from
839 decode_string_field() back into decode_header_data().
841 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
842 Add utility to aid debugging.
844 * dbus/dbus-message-builder.c:
845 (append_string_field), (_dbus_message_data_load): Update to
846 reflect protocol changes; Change the FIELD_NAME directive
847 to HEADER_FIELD and allow it to take the field's conventional
848 name rather than the actual value.
850 * test/data/*/*.message: Update to use HEADER_FIELD instead
851 of FIELD_NAME; Always align the header on an 8 byte boundary
852 *before* updating the header length.
854 2003-09-15 Havoc Pennington <hp@pobox.com>
856 * dbus/dbus-pending-call.c: add the get/set object data
857 boilerplate as for DBusConnection, etc. Use generic object data
858 for the notify callback.
860 * glib/dbus-gparser.c (parse_node): parse child nodes
862 * tools/dbus-viewer.c: more hacking on the dbus-viewer
864 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
865 contain functions shared between the convenience lib and the
868 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
869 -export-symbols-regex to the GLib library
871 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
872 fix the locking in here, and add a default handler for
873 Introspect() that just returns sub-nodes.
875 2003-09-14 Havoc Pennington <hp@pobox.com>
877 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
878 rather than gfoo consistent
880 * glib/dbus-gproxy.h: delete for now, move contents to
881 dbus-glib.h, because the include files don't work right since we
882 aren't in the dbus/ subdir.
884 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
885 (dbus_gproxy_end_call): finish
886 (dbus_gproxy_begin_call): finish
888 * glib/dbus-gmain.c (dbus_set_g_error): new
890 * glib/dbus-gobject.c (handle_introspect): include information
891 about child nodes in the introspection
893 * dbus/dbus-connection.c (dbus_connection_list_registered): new
894 function to help in implementation of introspection
896 * dbus/dbus-object-tree.c
897 (_dbus_object_tree_list_registered_and_unlock): new function
899 2003-09-12 Havoc Pennington <hp@pobox.com>
901 * glib/dbus-gidl.h: add common base class for all the foo_info
904 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
907 * test/Makefile.am: try test srcdir -ef . in addition to test
908 srcdir = ., one of them should work (yeah lame)
910 * glib/Makefile.am: build the "idl" parser stuff as a convenience
913 * glib/dbus-gparser.h: make description_load routines return
914 NodeInfo* not Parser*
916 * Makefile.am (SUBDIRS): build test dir after all library dirs
918 * configure.in: add GTK+ detection
920 2003-09-07 Havoc Pennington <hp@pobox.com>
922 * Make Doxygen contented.
924 2003-09-07 Havoc Pennington <hp@pobox.com>
926 * doc/dbus-specification.sgml: more updates
928 2003-09-06 Havoc Pennington <hp@pobox.com>
930 * doc/dbus-specification.sgml: partial updates
932 * bus/dbus-daemon-1.1.in: fix the config file docs for the
933 zillionth time; hopefully I edited the right file this time.
935 * bus/config-parser.c (append_rule_from_element): support
936 send_type, send_path, receive_type, receive_path
938 * bus/policy.c: add message type and path to the list of things
939 that can be "firewalled"
941 2003-09-06 Havoc Pennington <hp@pobox.com>
943 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
944 (dbus_connection_register_object_path): make this not handle
945 messages to paths below the given path
947 2003-09-03 Havoc Pennington <hp@pobox.com>
949 * test/glib/Makefile.am: add this with random glib-linked test
952 * glib/Makefile.am: remove the random test programs from here,
953 leave only the unit tests
955 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
956 uscore/javacaps conversion, and fix
957 (get_object_property, set_object_property): change to .NET
958 convention for mapping props to methods, set_FooBar/get_FooBar,
959 since one language has such a convention we may as well copy it.
960 Plus real methods in either getFooBar or get_foo_bar style won't
961 collide with this convention.
963 2003-09-01 Havoc Pennington <hp@pobox.com>
965 * glib/dbus-gparser.c: implement
967 * glib/dbus-gobject.c: start implementing skeletons support
969 * configure.in: when disabling checks/assert, also define
970 G_DISABLE_ASSERT and G_DISABLE_CHECKS
972 2003-09-01 Havoc Pennington <hp@pobox.com>
974 * glib/Makefile.am: rearrange a bunch of files and get "make
975 check" framework set up
977 2003-08-31 Havoc Pennington <hp@pobox.com>
979 * fix build with --disable-tests
981 2003-08-30 Havoc Pennington <hp@pobox.com>
983 * dbus/dbus-connection.c: purge DBusMessageHandler
985 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
986 use callbacks everywhere
988 2003-08-30 Havoc Pennington <hp@pobox.com>
990 * test/data/valid-config-files/system.d/test.conf: change to
991 root for the user so warnings don't get printed
993 * dbus/dbus-message.c: add dbus_message_get_path,
994 dbus_message_set_path
996 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
997 dispatching to a path
999 * dbus/dbus-string.c (_dbus_string_validate_path): add
1001 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
1002 (_dbus_marshal_object_path): implement
1004 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
1005 to contain the path to the target object
1006 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
1007 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
1009 2003-08-30 Havoc Pennington <hp@pobox.com>
1011 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
1013 2003-08-29 Havoc Pennington <hp@pobox.com>
1015 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
1017 (struct DBusObjectSubtree): shrink this
1018 a lot, since we may have a lot of them
1019 (_dbus_object_tree_free_all_unlocked): implement
1020 (_dbus_object_tree_dispatch_and_unlock): implement
1022 2003-08-29 Havoc Pennington <hp@pobox.com>
1024 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
1026 2003-08-28 Havoc Pennington <hp@pobox.com>
1030 * dbus/dbus-connection.c: port to no ObjectID, create a
1031 DBusObjectTree, rename ObjectTree to ObjectPath in public API
1033 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
1034 everything except UnregisterFunction and MessageFunction
1036 * dbus/dbus-marshal.c: port away from DBusObjectID,
1037 add DBUS_TYPE_OBJECT_PATH
1039 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
1040 dbus/dbus-objectid.[hc]: remove these, we are moving to
1041 path-based object IDs
1043 2003-08-25 Havoc Pennington <hp@pobox.com>
1045 Just noticed that dbus_message_test is hosed, I wonder when I
1046 broke that. I thought make check was passing earlier...
1048 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
1049 container tree, will replace most of dbus-object-registry
1051 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
1054 2003-08-19 Havoc Pennington <hp@pobox.com>
1056 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
1057 (dbus_message_is_error): fix this function
1059 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
1062 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
1063 reflect clarified man page
1064 (bus_client_policy_check_can_send): ditto
1066 * bus/session.conf.in: fixup
1068 * bus/system.conf.in: fixup
1070 2003-08-18 Havoc Pennington <hp@redhat.com>
1072 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
1074 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1075 dumb bug created earlier (wrong order of args to
1076 decode_header_data())
1078 * tools/dbus-send.c: port
1080 * tools/dbus-print-message.c (print_message): port
1082 * test/data/*messages: port all messages over
1084 * dbus/dbus-message-builder.c: support including
1087 * bus/driver.c: port over
1089 * bus/dispatch.c: port over to new stuff
1091 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1092 rename disconnect signal to "Disconnected"
1094 2003-08-17 Havoc Pennington <hp@pobox.com>
1096 This doesn't compile yet, but syncing up so I can hack on it from
1097 work. What are branches for if not broken code? ;-)
1099 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
1100 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
1101 DBUS_HEADER_FIELD_ERROR_NAME
1103 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
1104 for the interface+member pairs
1105 (string_hash): change to use g_str_hash algorithm
1106 (find_direct_function, find_string_function): refactor these to
1109 * dbus/dbus-message.c: port all of this over to support
1110 interface/member fields instead of name field
1112 * dbus/dbus-object-registry.c: port over
1114 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
1115 from _dbus_string_validate_name
1117 * bus/dbus-daemon-1.1: change file format for the
1118 <deny>/<allow> stuff to match new message naming scheme
1120 * bus/policy.c: port over
1122 * bus/config-parser.c: parse new format
1124 2003-08-16 Havoc Pennington <hp@pobox.com>
1126 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
1129 * glib/dbus-gproxy.c: some hacking
1131 2003-08-15 Havoc Pennington <hp@redhat.com>
1133 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
1135 * dbus/dbus-connection.c
1136 (dbus_connection_send_with_reply_and_block): factor out internals;
1137 change to convert any error replies to DBusError instead of
1138 returning them as a message
1140 2003-08-15 Havoc Pennington <hp@pobox.com>
1142 * dbus/dbus-connection.c,
1143 dbus/dbus-pending-call.c: Finish the pending call stuff
1145 2003-08-14 Havoc Pennington <hp@redhat.com>
1147 * dbus/dbus-pending-call.c: start on new object that will replace
1148 DBusMessageHandler and ReplyHandlerData for tracking outstanding
1151 * dbus/dbus-gproxy.c: start on proxy object used to communicate
1152 with remote interfaces
1154 * dbus/dbus-gidl.c: do the boring boilerplate in here
1156 2003-08-12 Havoc Pennington <hp@pobox.com>
1158 * bus/dispatch.c (bus_dispatch): make this return proper
1159 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
1161 * dbus/dbus-errors.c (dbus_set_error): use
1162 _dbus_string_append_printf_valist
1164 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
1165 (_dbus_string_append_printf): new
1167 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
1170 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
1171 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
1172 message is unhandled.
1174 2003-08-11 Havoc Pennington <hp@pobox.com>
1176 * bus/test.c (client_disconnect_handler): change to return
1177 HANDLED (would have been REMOVE_MESSAGE)
1179 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
1180 HANDLED/NOT_YET_HANDLED instead of
1181 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
1184 2003-08-10 Havoc Pennington <hp@pobox.com>
1186 * tools/dbus-send.c (main): add --type argument, for now
1187 supporting only method_call and signal types.
1189 * tools/dbus-print-message.c: print message type
1191 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1192 init connection->objects
1194 * doc/dbus-specification.sgml: fix sgml
1196 * bus/*.c: port over to object-instance API changes
1198 * test/test-service.c: ditto
1200 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
1201 name, we will have to fix up the rest of the code to also handle
1203 (dbus_message_new): generic message-creation call
1204 (set_string_field): allow appending name field
1206 2003-08-06 Havoc Pennington <hp@pobox.com>
1208 * dbus/dbus-object-registry.c: implement signal connection
1211 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
1213 * dbus/dbus-internals.c (_dbus_memdup): new function
1215 2003-08-02 Havoc Pennington <hp@pobox.com>
1217 * dbus/dbus-message.c (dbus_message_get_no_reply)
1218 (dbus_message_set_no_reply): add these and remove
1219 set_is_error/get_is_error
1221 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
1222 remove the ERROR flag, since there's now an ERROR type
1224 2003-08-01 Havoc Pennington <hp@pobox.com>
1226 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
1229 * dbus/dbus-message.c (dbus_message_get_type): new function
1231 * doc/dbus-specification.sgml: add "type" byte to messages
1233 2003-08-01 Havoc Pennington <hp@pobox.com>
1235 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
1236 a message type enum to distinguish kinds of message
1237 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
1238 that need not be replied to
1240 2003-08-01 Havoc Pennington <hp@pobox.com>
1242 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
1243 (unpack_8_octets): fix no-64-bit-int bug
1245 * dbus/dbus-object-registry.c (validate_id): validate the
1246 connection ID bits, not just the instance ID.
1248 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
1249 the connection-global 33 bits of the object ID
1251 * dbus/dbus-object-registry.c (info_from_entry): fill in
1252 object ID in the new way
1254 * dbus/dbus-objectid.h: rather than high/low bits, specifically
1255 define server/client/instance bits.
1257 2003-07-30 Havoc Pennington <hp@pobox.com>
1259 * dbus/dbus-connection.c (dbus_connection_register_object): fix
1262 2003-07-13 Havoc Pennington <hp@pobox.com>
1264 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
1265 fields to DBusObjectVTable and DBusObjectInfo
1267 2003-07-12 Havoc Pennington <hp@pobox.com>
1269 * dbus/dbus-object-registry.c: implement unit test,
1270 fix bugs discovered in process
1272 * dbus/dbus-connection.c: remove handler_table and
1273 register_handler(), add DBusObjectRegistry usage
1275 * dbus/dbus-objectid.c (dbus_object_id_is_null)
1276 (dbus_object_id_set_null): new functions
1278 2003-07-08 Havoc Pennington <hp@pobox.com>
1280 * dbus/dbus-object.c: implement some of this
1282 * dbus/dbus-object-registry.c
1283 (_dbus_object_registry_add_and_unlock): fill in the object_id out
1285 (_dbus_object_registry_new): handle OOM
1287 2003-07-08 Havoc Pennington <hp@pobox.com>
1289 * dbus/dbus-object.h: sketch out an API for registering objects
1290 with a connection, that allows us to use as little as 24 bytes
1291 per object and lets application code represent an object in
1292 any conceivable way.
1294 * dbus/dbus-object-registry.c: implement the hard bits of the
1295 DBusConnection aspect of object API. Not yet wired up.
1297 2003-07-06 Havoc Pennington <hp@pobox.com>
1299 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
1300 (_dbus_marshal_object_id): new
1301 (_dbus_demarshal_object_id): new
1302 (_dbus_marshal_get_arg_end_pos): support object ID type, and
1303 consolidate identical switch cases. Don't conditionalize handling
1304 of DBUS_TYPE_UINT64, need to handle the type always.
1305 (_dbus_marshal_validate_arg): consolidate identical cases, and
1306 handle DBUS_TYPE_OBJECT_ID
1308 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
1310 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
1312 2003-09-28 Havoc Pennington <hp@pobox.com>
1316 2003-09-28 Havoc Pennington <hp@pobox.com>
1318 * doc/Makefile.am (dbus-specification.html): testing a funky hack
1319 to work with Debian db2html
1321 2003-09-28 Havoc Pennington <hp@pobox.com>
1323 * configure.in: 0.13
1325 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
1326 stylesheet-images for benefit of Debian
1328 Change back to using filesystem-linked sockets for the system
1329 bus, so only root can create the default system bus address.
1331 * bus/system.conf.in: change to use
1332 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1334 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
1337 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1338 here, and AC_DEFINE DBUS_SYSTEM_PATH
1340 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1343 * doc/busconfig.dtd:
1346 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1348 * doc/dbus-specification.sgml:
1349 Add activation reply values.
1351 2003-08-05 Havoc Pennington <hp@redhat.com>
1353 * configure.in: 0.12
1355 2003-08-05 Anders Carlsson <andersca@codefactory.se>
1357 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
1358 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
1359 (add_watch), (remove_watch), (create_source):
1360 Refcount fds, fixes some reentrancy issues.
1362 2003-07-30 Havoc Pennington <hp@redhat.com>
1364 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
1365 bus address to be abstract if we have abstract sockets
1369 2003-07-28 Havoc Pennington <hp@redhat.com>
1371 * bus/messagebus.in: fix to avoid processname/servicename
1372 confusion, from Michael Kearey
1373 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
1375 2003-07-23 Havoc Pennington <hp@pobox.com>
1377 * dbus/dbus-message.c (dbus_message_iter_get_named):
1378 fix from Andy Hanton to remove broken "+1"
1380 2003-07-16 Havoc Pennington <hp@pobox.com>
1382 * tools/dbus-launch.c (babysit): close stdout/stderr in the
1383 babysitter process, as suggested by Thomas Leonard, so
1384 an "eval `dbus-launch --exit-with-session`" will actually
1387 2003-07-16 Havoc Pennington <hp@pobox.com>
1389 * configure.in: print out EXPANDED_* variables in the summary at
1390 the end; clean up the code that computes EXPANDED_ variables and
1391 get the ones using exec_prefix right. Should make things work
1392 when you build without --prefix
1394 2003-06-29 Havoc Pennington <hp@pobox.com>
1396 * mono/Test.cs (class Test): fire up a main loop and run it
1398 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
1399 done once, the app has to do it
1401 2003-06-26 Havoc Pennington <hp@pobox.com>
1403 * mono/Connection.cs: set up connection with the glib main loop
1405 2003-07-01 Havoc Pennington <hp@redhat.com>
1407 * doc/dbus-specification.sgml: clarify the format of a type code,
1408 change suggested by Jim Blandy
1410 2003-06-29 Miloslav Trmac <mitr@volny.cz>
1413 * tools/Makefile.am: Don't assume srcdir == builddir.
1415 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
1416 the allocated block.
1417 (_dbus_memory_test): New function.
1418 * dbus/dbus-test.h: Add _dbus_memory_test ().
1419 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
1421 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
1423 (dbus_message_new): Remove obsolete @todo.
1425 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
1426 (_dbus_marshal_set_uint64): Fix comment.
1428 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
1429 hardcode FIELD_REPLY_SERIAL.
1431 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
1432 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
1434 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
1435 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
1437 2003-06-24 Havoc Pennington <hp@pobox.com>
1439 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
1441 2003-06-23 Anders Carlsson <andersca@codefactory.se>
1447 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
1448 * gcj/org/.cvsignore:
1449 * gcj/org/Makefile.am:
1450 * gcj/org/freedesktop/.cvsignore:
1451 * gcj/org/freedesktop/Makefile.am:
1452 * gcj/org/freedesktop/dbus/.cvsignore:
1453 * gcj/org/freedesktop/dbus/Makefile.am:
1454 * gcj/org/freedesktop/dbus/Message.java: (Message),
1456 * gcj/org/freedesktop/dbus/natMessage.cc:
1457 Fix the build system.
1459 2003-06-22 Havoc Pennington <hp@pobox.com>
1461 * mono/Connection.cs: add more bindings
1463 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
1466 2003-06-22 Havoc Pennington <hp@pobox.com>
1468 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
1469 Start wrapping more stuff.
1471 2003-06-22 Havoc Pennington <hp@pobox.com>
1473 * mono/Message.cs: implement Message.Wrap() that ensures we only
1474 have a single C# wrapper per DBusMessage, assuming it works which
1475 it probably doesn't.
1477 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
1478 (dbus_message_free_data_slot): new
1479 (dbus_message_set_data): new
1480 (dbus_message_get_data): new
1482 2003-06-22 Havoc Pennington <hp@pobox.com>
1484 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
1485 (_dbus_data_slot_allocator_alloc): rework these to keep a
1486 reference count on each slot and automatically manage a global
1487 slot ID variable passed in by address
1489 * bus/bus.c: convert to new dataslot API
1491 * dbus/dbus-bus.c: convert to new dataslot API
1493 * dbus/dbus-connection.c: convert to new dataslot API
1495 * dbus/dbus-server.c: convert to new dataslot API
1497 * glib/dbus-gmain.c: ditto
1501 * bus/connection.c: ditto
1503 2003-06-22 Anders Carlsson <andersca@codefactory.se>
1505 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
1506 after the gcj checks so that the correct configuration tags
1507 will be added to libtool.
1509 * dbus-glib-1.pc.in: No need to specify any includes since
1510 dbus-1.pc.in has those.
1512 2003-06-22 Havoc Pennington <hp@pobox.com>
1514 * mono/*, gcj/*, configure.in, Makefile.am:
1515 Check in makefiles and subdirs for mono and gcj bindings.
1516 Neither binding actually exists, just trying to get through
1517 all the build and other boring bits.
1519 2003-06-21 Philip Blundell <philb@gnu.org>
1521 * tools/dbus-monitor.1: Updated.
1523 * tools/dbus-send.1: Likewise.
1525 2003-06-20 Anders Carlsson <andersca@codefactory.se>
1527 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
1528 for hangup and error after checking read so we won't discard
1529 pending data if both hangup and read are set.
1531 2003-06-19 Philip Blundell <philb@gnu.org>
1533 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
1535 * tools/dbus-send.c: Accept both --system and --session.
1537 * tools/dbus-monitor.c: Same here.
1539 2003-06-19 Anders Carlsson <andersca@codefactory.se>
1541 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
1542 from C++ (Patch by Miloslav Trmac).
1544 2003-06-15 Joe Shaw <joe@assbarn.com>
1546 * configure.in: Check for socklen_t.
1548 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1550 * test/test-segfault.c: Add #include <sys/time.h>
1552 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1553 dbus-launch needs it.
1555 2003-06-09 Havoc Pennington <hp@redhat.com>
1557 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1558 SUN_LEN, it breaks abstract socket usage
1560 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1563 2003-06-04 Havoc Pennington <hp@pobox.com>
1565 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1566 using unix:abstract=/foo, and when listening in a tmpdir
1567 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1569 * dbus/dbus-transport.c (_dbus_transport_open): support
1572 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1573 support abstract sockets
1575 * dbus/dbus-transport-unix.c
1576 (_dbus_transport_new_for_domain_socket): support abstract sockets
1578 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1579 toggle as an argument, implement abstract namespace support
1580 (_dbus_listen_unix_socket): ditto
1582 * configure.in: add --enable-abstract-sockets and implement
1583 a configure check for autodetection of the right value.
1585 2003-06-01 Havoc Pennington <hp@pobox.com>
1587 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1588 in /tmp (though on Linux this will end up being useless,
1589 when we add abstract namespace support)
1591 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1594 2003-05-28 Colin Walters <walters@verbum.org>
1596 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1598 2003-05-18 Anders Carlsson <andersca@codefactory.se>
1600 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1602 2003-05-17 Colin Walters <walters@gnu.org>
1604 * tools/dbus-send.c: Don't exit with an error code if --help was
1605 passed. Default to using the session bus instead of the system
1608 * tools/dbus-launch.c: Ditto.
1610 * tools/dbus-monitor.c: Ditto.
1612 * tools/dbus-send.1: Update with new arguments.
1614 * tools/dbus-launch.c: Emit code to export variables. New
1615 arguments -s and -c to specify shell syntax, and a bit of code to
1616 autodetect syntax. Also, allow specifying a program to run.
1618 * tools/dbus-launch.1: Update with new arguments.
1620 * tools/dbus-send.1: Ditto.
1622 * tools/dbus-monitor.1: Ditto.
1624 2003-05-17 Havoc Pennington <hp@pobox.com>
1626 * bus/config-parser.c (merge_included): merge in policies from
1627 child configuration file.
1629 * bus/policy.c (bus_policy_merge): function to merge two policies
1632 2003-05-16 Havoc Pennington <hp@redhat.com>
1634 * dbus/dbus-connection.c: disable verbose lock spew
1636 * tools/dbus-send.c: add --print-reply command line option
1638 * tools/dbus-print-message.h (print_message): new util function
1639 shared by dbus-send and dbus-monitor
1641 * tools/dbus-monitor.c (handler_func): exit on disconnect
1643 * dbus/dbus-transport-unix.c (do_reading): if the transport is
1644 disconnected, don't try to use the read_watch
1646 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1647 so we can find this bug more easily
1649 2003-05-16 Havoc Pennington <hp@redhat.com>
1651 * bus/policy.c (free_rule_list_func): avoid a crash when passed
1652 NULL as DBusHashTable is annoyingly likely to do.
1654 2003-05-16 Colin Walters <walters@verbum.org>
1656 * tools/dbus-monitor.c: Add --session argument and usage()
1659 * tools/dbus-monitor.1: Update with new --session arg.
1661 * bus/Makefile.am (install-data-hook): Create
1662 $(libdir)/dbus-1.0/services so that the session bus is happy.
1664 2003-05-15 Havoc Pennington <hp@redhat.com>
1666 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
1667 on non-x86. ifdef's are evil.
1669 2003-05-15 Havoc Pennington <hp@redhat.com>
1671 * configure.in: 0.11
1675 * bus/Makefile.am (initddir): apparently we are supposed to put
1676 init scripts in /etc/rc.d/init.d not /etc/init.d
1678 * bus/Makefile.am: remove the "you must --enable-tests to make
1679 check" as it broke distcheck
1681 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
1683 2003-05-13 James Willcox <jwillcox@gnome.org>
1686 * bus/activation.c: (bus_activation_service_created),
1687 (bus_activation_activate_service):
1688 * bus/driver.c: (bus_driver_send_service_deleted),
1689 (bus_driver_send_service_created), (bus_driver_send_service_lost),
1690 (bus_driver_send_service_acquired),
1691 (bus_driver_send_welcome_message),
1692 (bus_driver_handle_list_services):
1693 * bus/session.conf.in:
1694 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
1695 (dbus_bus_service_exists), (dbus_bus_activate_service):
1698 Add some convenience API which lets you activate a service, and did a
1699 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
1700 and dbus_message_get_args()
1702 2003-05-11 Havoc Pennington <hp@pobox.com>
1704 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
1705 calling _dbus_marshal_validate_arg() for every byte in a byte
1708 * dbus/dbus-message-handler.c: use atomic reference counting to
1709 reduce number of locks slightly; the global lock in here sucks
1711 * dbus/dbus-connection.c
1712 (_dbus_connection_update_dispatch_status_and_unlock): variant of
1713 update_dispatch_status that can be called with lock held; then use
1714 in a couple places to reduce locking/unlocking
1715 (dbus_connection_send): hold the lock over the whole function
1716 instead of acquiring it twice.
1718 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
1720 * bus/connection.c (bus_connections_setup_connection): fix access
1721 to already-freed memory.
1723 * dbus/dbus-connection.c: keep a little cache of linked list
1724 nodes, to avoid using the global linked list alloc lock in the
1725 normal send-message case. Instead we just use the connection lock
1726 that we already have to take.
1728 * dbus/dbus-list.c (_dbus_list_find_last): new function
1730 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
1731 change to use a struct for the atomic type; fix docs,
1732 they return value before increment, not after increment.
1734 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
1735 (_dbus_string_append_8_aligned): new functions to try to
1736 microoptimize this operation.
1737 (reallocate_for_length): break this out of set_length(), to
1738 improve profile info, and also so we can consider inlining the
1741 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
1742 strings with some preallocation, cuts down on our calls to realloc
1743 a fair bit. Though if we can get the "move entire string to empty
1744 string" optimization below to kick in here, it would be better.
1746 * dbus/dbus-string.c (_dbus_string_move): just call
1747 _dbus_string_move_len
1748 (_dbus_string_move_len): add a special case for moving
1749 an entire string into an empty string; we can just
1750 swap the string data instead of doing any reallocs.
1751 (_dbus_string_init_preallocated): new function
1753 2003-05-11 Havoc Pennington <hp@pobox.com>
1755 Write a "test-profile" that does echo client-server with threads;
1756 profile reveals lock contention, memcpy/realloc of buffers, and
1757 UTF-8 validation as hot spots. 20% of lock contention eliminated
1758 with dbus_atomic_inc/dec implementation on x86. Much remaining
1759 contention is global mempool locks for GList and DBusList.
1761 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
1764 * dbus/dbus-connection.c (struct DBusConnection): use
1765 dbus_atomic_t for the reference count
1767 * dbus/dbus-message.c (struct DBusMessage): declare
1768 dbus_atomic_t values as volatile
1770 * configure.in: code to detect ability to use atomic integer
1771 operations in assembly, from GLib patch
1773 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
1774 time, tired of it being wrong in threads and forked processes
1776 * glib/test-profile.c: a little program to bounce messages back
1777 and forth between threads and eat CPU
1779 * dbus/dbus-connection.c: add debug spew macros for debugging
1780 thread locks; include config.h at top; fix deadlock in
1781 dbus_connection_flush()
1783 2003-05-08 Havoc Pennington <hp@pobox.com>
1785 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
1786 data from getting written, and there wasn't a good reason to
1789 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
1790 dbus_verbose lines in test coverage
1791 (main): add list of functions sorted by # of untested blocks
1792 to the coverage report
1794 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
1796 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
1798 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
1799 extend test coverage
1801 * test/data/auth/cancel.auth-script: test canceling an
1804 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
1805 aren't used. in CVS history if we end up needing them.
1807 2003-05-04 Havoc Pennington <hp@pobox.com>
1809 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
1812 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
1813 function, which assumed length was in # of strings, not bytes
1815 * dbus/dbus-message.c (_dbus_message_test): add tests for some
1818 * dbus/dbus-connection.c
1819 (_dbus_connection_queue_received_message): disable function for
1820 now, we are only using it in test mode
1822 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1823 remove a mistaken FIXME
1825 2003-05-04 Havoc Pennington <hp@pobox.com>
1827 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
1828 unlock mutex on successful return, patch from Anders Gustafsson
1830 2003-05-04 Havoc Pennington <hp@pobox.com>
1832 * dbus-glib-1.pc.in (Requires): fix dependencies, from
1835 2003-05-04 Havoc Pennington <hp@pobox.com>
1837 * tools/dbus-launch.c: implement
1839 * bus/main.c (main), bus/bus.c (bus_context_new):
1840 implement --print-pid and --fork
1842 2003-05-03 Havoc Pennington <hp@redhat.com>
1844 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
1845 the address had no value, and add to test suite. Fix and
1846 regression test from Miloslav Trmac
1848 2003-05-03 Havoc Pennington <hp@pobox.com>
1850 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
1851 watch is invalid when handled
1853 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
1854 dbus-launch utility to launch the bus from a shell script. Didn't
1855 actually implement dbus-launch yet, it's just a placeholder still.
1857 2003-05-03 Havoc Pennington <hp@pobox.com>
1859 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
1860 daemon; also documents daemon config file, so replaces
1861 doc/config-file.txt. Corrected some stuff from config-file.txt in
1862 the process of moving it.
1864 2003-05-03 Havoc Pennington <hp@pobox.com>
1866 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
1869 2003-05-03 Colin Walters <walters@verbum.org>
1871 * dbus/dbus-sysdeps.c (fill_user_info): Test against
1872 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
1874 * Makefile.am: Update to use new .pc versioning scheme.
1876 2003-05-02 Havoc Pennington <hp@redhat.com>
1878 * bus/system.conf.in: allow send/receive to/from message bus
1881 2003-04-30 Havoc Pennington <hp@redhat.com>
1883 * configure.in: print a note when building with unit tests and
1886 2003-04-30 Havoc Pennington <hp@redhat.com>
1888 * Makefile.am: add a check-local that complains if you didn't
1889 configure with --enable-tests
1891 2003-04-29 Havoc Pennington <hp@redhat.com>
1893 * glib/dbus-gmain.c: docs cleanups
1895 * dbus/dbus-types.h: add docs on int64 types
1897 * dbus/dbus-memory.c: fix docs to avoid putting private API in
1898 public API docs section
1900 2003-04-29 Havoc Pennington <hp@redhat.com>
1902 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1903 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1904 parallel install API version, not with the D-BUS package version.
1906 * HACKING: move some of README over here
1908 * README: updates, and document API/ABI policy
1910 * configure.in: reindentation
1912 2003-04-29 Havoc Pennington <hp@redhat.com>
1914 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1915 to use this library" to be sure people have the right
1918 2003-04-28 Havoc Pennington <hp@redhat.com>
1920 * configure.in: add --enable-docs which by default is auto yes if
1921 doxygen and db2html found, no otherwise; but can be forced on/off
1923 * doc/Makefile.am: conditionalize whether to build docs on
1926 2003-04-28 Havoc Pennington <hp@redhat.com>
1928 * configure.in: 0.10
1932 * bus/system.conf.in: add <includedir>system.d</includedir>
1934 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1935 username was provided but not uid
1937 * bus/config-parser.c (struct BusConfigParser): keep track of
1938 whether the parser is toplevel or was included; change some
1939 of the error handling if it's included.
1941 2003-04-27 Havoc Pennington <hp@pobox.com>
1945 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1946 report correct status if we finish processing authentication
1947 inside this function.
1949 * bus/activation.c (try_send_activation_failure): use
1950 bus_transaction_send_error_reply
1952 * bus/connection.c (bus_connection_get_groups): return an error
1953 explaining the problem
1955 * bus/bus.c (bus_context_check_security_policy): implement
1956 restriction here that inactive connections can only send the
1957 hello message. Also, allow bus driver to send anything to
1960 * bus/connection.c (bus_connection_complete): create the
1961 BusClientPolicy here instead of on-demand.
1962 (bus_connection_get_policy): don't return an error
1964 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1965 sender field in message being replied to
1967 * bus/bus.c (bus_context_check_security_policy): fix silly typo
1968 causing it to return FALSE always
1970 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1971 we checked sender rather than destination
1973 2003-04-25 Havoc Pennington <hp@redhat.com>
1975 test suite is slightly hosed at the moment, will fix soon
1977 * bus/connection.c (bus_connections_expire_incomplete): fix to
1978 properly disable the timeout when required
1979 (bus_connection_set_name): check whether we can remove incomplete
1980 connections timeout after we complete each connection.
1982 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1983 probably still broken.
1985 * bus/services.c (bus_registry_acquire_service): implement max
1986 number of services owned, and honor allow/deny rules on which
1987 services a connection can own.
1989 * bus/connection.c (bus_connection_get_policy): report errors here
1991 * bus/activation.c: implement limit on number of pending
1994 2003-04-25 Havoc Pennington <hp@redhat.com>
1996 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1997 where we used >= 0 instead of != DBUS_UID_UNSET.
1999 2003-04-25 Havoc Pennington <hp@redhat.com>
2001 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
2002 were toggled without add/remove, fix from Anders Gustafsson
2004 2003-04-24 Havoc Pennington <hp@redhat.com>
2006 * test/data/valid-config-files/basic.conf: add <limit> tags to
2009 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
2010 <limit> tag in configuration file.
2012 2003-04-24 Havoc Pennington <hp@redhat.com>
2014 * bus/dispatch.c: somehow missed some name_is
2016 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
2017 (_dbus_timeout_set_interval): new
2019 * bus/connection.c (bus_connections_setup_connection): record time
2020 when each connection is first set up, and expire them after the
2021 auth timeout passes.
2023 2003-04-24 Havoc Pennington <hp@redhat.com>
2025 * dbus/dbus-message.c (dbus_message_name_is): rename
2026 (dbus_message_service_is): rename
2027 (dbus_message_sender_is): rename
2028 (dbus_message_get_service): rename
2030 2003-04-24 Havoc Pennington <hp@redhat.com>
2032 * configure.in: add --enable-checks
2034 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
2036 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
2037 to use thread locks.
2038 (_dbus_connection_handler_destroyed_locked): move some private
2039 functions into proper docs group
2041 * dbus/dbus-internals.h: add _dbus_return_if_fail,
2042 _dbus_return_val_if_fail
2044 Throughout: use dbus_return_if_fail
2046 2003-04-23 James Willcox <jwillcox@gnome.org>
2049 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
2050 (dbus_connection_setup_with_g_main),
2051 (dbus_server_setup_with_g_main):
2052 * glib/test-dbus-glib.c: (main):
2053 * glib/test-thread-client.c: (main):
2054 * glib/test-thread-server.c: (new_connection_callback), (main):
2055 * tools/dbus-monitor.c: (main):
2057 Added a GMainContext argument to dbus_connection_setup_with_g_main()
2058 and dbus_server_setup_with_g_main().
2060 2003-04-20 Havoc Pennington <hp@pobox.com>
2062 * doc/dbus-specification.sgml: document the restrictions on
2063 message and service names
2065 2003-04-22 Havoc Pennington <hp@redhat.com>
2067 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
2068 support, and do some code cleanups to share more code and
2069 speed up array marshal/demarshal.
2071 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
2073 * configure.in: generate dbus-arch-deps.h
2075 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
2078 2003-04-22 Havoc Pennington <hp@redhat.com>
2080 * test/data/valid-messages/opposite-endian.message: fix test
2081 to use proper type for rply field
2083 * test/data/invalid-messages: add tests for below validation
2085 * dbus/dbus-message.c (decode_header_data): validate field types,
2086 and validate that named fields are valid names
2087 (decode_name_field): consider messages in the
2088 org.freedesktop.Local. namespace to be invalid.
2090 * dbus/dbus-string.c (_dbus_string_validate_name): new
2092 2003-04-19 Havoc Pennington <hp@pobox.com>
2094 * bus/driver.c (bus_driver_handle_hello): check limits and
2095 return an error if they are exceeded.
2097 * bus/connection.c: maintain separate lists of active and inactive
2098 connections, and a count of each. Maintain count of completed
2099 connections per user. Implement code to check connection limits.
2101 * dbus/dbus-list.c (_dbus_list_unlink): export
2103 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
2104 number of bytes in the message queue for a connection
2106 2003-04-18 Havoc Pennington <hp@pobox.com>
2108 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
2110 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
2113 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
2114 on realloc be sure to update the pointer in the keyring
2116 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
2117 offset to avoid writing to unallocated memory
2119 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
2120 try the next mechanism, so we properly handle OOM
2122 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
2124 (_dbus_keyring_new): fix OOM bug
2125 (_dbus_keyring_new_homedir): always set error; impose a maximum
2126 number of keys we'll load from the file, mostly to speed up the
2127 test suite and make its OOM checks more useful, but also for
2130 * dbus/dbus-auth.c (process_error_server): reject authentication
2131 if we get an error from the client
2132 (process_cancel): on cancel, send REJECTED, per the spec
2133 (process_error_client): send CANCEL if we get an error from the
2136 2003-04-18 Havoc Pennington <hp@pobox.com>
2138 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
2141 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
2144 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
2145 about DBUS_TEST_HOMEDIR once
2147 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
2150 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
2151 config file so we test the right thing
2153 Throughout: assorted docs improvements
2155 2003-04-18 Havoc Pennington <hp@pobox.com>
2157 * glib/dbus-gmain.c: adapt to watch changes
2159 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
2161 * dbus/dbus-server.h: remove dbus_server_handle_watch
2163 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
2165 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
2166 like DBusTimeout, so we don't need dbus_connection_handle_watch
2169 2003-04-17 Havoc Pennington <hp@redhat.com>
2171 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
2172 database usage so it all goes via the DBusUserDatabase cache.
2174 2003-04-17 Havoc Pennington <hp@redhat.com>
2176 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
2177 there was an OOM watch we skipped, we always return TRUE so we
2178 iterate again to have a look at it again. Fixes test suite hang.
2179 Code rearrangement also lets us lose some memset and only iterate
2180 over callbacks once.
2182 * bus/driver.c (bus_driver_handle_message): sense of test for
2185 2003-04-16 Havoc Pennington <hp@pobox.com>
2187 * doc/dbus-specification.sgml: make spec say serials are unsigned
2189 * dbus/dbus-message.h: change message serials to unsigned
2191 * dbus/dbus-connection.c: adapt to message serials being unsigned
2193 2003-04-15 Havoc Pennington <hp@pobox.com>
2195 * bus/bus.c: create and keep around a shared DBusUserDatabase
2198 * bus/connection.c (bus_connection_get_groups): don't cache
2199 groups for user in the connection object, since user database
2200 object now does that.
2202 2003-04-16 Havoc Pennington <hp@redhat.com>
2204 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
2205 list of size counters
2206 (_dbus_message_loader_putback_message_link): put back a popped link
2208 * dbus/dbus-connection.c
2209 (dbus_connection_set_max_live_messages_size): rename
2211 (dbus_connection_get_outgoing_size): get size of outgoing
2213 (_dbus_connection_set_connection_counter): remove this cruft
2215 2003-04-14 Havoc Pennington <hp@redhat.com>
2217 * dbus/dbus-userdb.c: user database abstraction, mostly to get
2218 caching, but at some point we might want to be able to use a
2221 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
2222 SHA1 conf file to test the sha1 auth mechanism, since the regular
2223 test always uses EXTERNAL when available.
2226 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
2227 add conf file that requires use of sha1 auth
2229 2003-04-13 Havoc Pennington <hp@pobox.com>
2231 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
2232 from Philip Blundell to send messages and monitor them.
2234 2003-04-13 Havoc Pennington <hp@pobox.com>
2236 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
2239 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
2242 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2243 fix to only recover unused bytes if we're already authenticated
2244 (_dbus_transport_get_is_authenticated): fix to still mark us
2245 authenticated if there are unused bytes.
2247 * bus/dispatch.c: implement security policy checking
2249 * bus/connection.c (bus_transaction_send_from_driver): new
2251 * bus/bus.c (bus_context_check_security_policy): new
2253 * bus/dispatch.c (send_service_nonexistent_error): delete this,
2254 now we just set the DBusError and it gets converted to an error
2257 * bus/connection.c (allow_user_function): enable code using actual
2258 data from the config file
2260 * bus/policy.c (list_allows_user): handle wildcard rules for
2261 user/group connection perms
2263 2003-04-13 Havoc Pennington <hp@pobox.com>
2265 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
2267 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
2269 * bus/policy.c (bus_policy_append_mandatory_rule)
2270 (bus_policy_append_default_rule, bus_policy_append_user_rule)
2271 (bus_policy_append_group_rule): new functions
2273 2003-04-12 Havoc Pennington <hp@pobox.com>
2275 * bus/config-parser.c (bus_config_parser_new): fix a memleak
2277 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
2278 the pid/gid/uid, just for paranoia.
2280 * test/break-loader.c (randomly_do_n_things): find a byte
2281 containing a type code, and randomly change it to a different
2284 2003-04-12 Havoc Pennington <hp@pobox.com>
2286 * bus/policy.h: change BusPolicy to be the thing from the config
2287 file, and rename old BusPolicy to BusClientPolicy
2289 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
2290 match change in how policy works
2292 * dbus/dbus-internals.h: mark assert_not_reached as
2293 __attribute((noreturn))__
2295 2003-04-11 Havoc Pennington <hp@redhat.com>
2297 * doc/dbus-specification.sgml: fix a spot with the wrong name for
2298 the broadcast service. Use boolean return for ServiceExists.
2300 2003-04-11 Havoc Pennington <hp@redhat.com>
2302 * configure.in: add another directory to look for qt in.
2304 2003-04-11 Havoc Pennington <hp@redhat.com>
2306 * AUTHORS: add Colin Walters
2308 2003-04-11 Havoc Pennington <hp@redhat.com>
2314 2003-04-11 Havoc Pennington <hp@redhat.com>
2316 * bus/messagebus.in: remove pid file when stopping the
2317 message bus, since the bus won't have privileges to remove it
2320 2003-04-11 Havoc Pennington <hp@redhat.com>
2322 * bus/bus.c (bus_context_new): move credentials change after
2325 2003-04-11 Havoc Pennington <hp@pobox.com>
2327 * test/decode-gcov.c: add "below average functions" to the
2328 coverage report, and change how some of the code works.
2330 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
2331 not in the coverage stats.
2333 * test/test-service.c (main): use _dbus_verbose not fprintf in a
2334 couple places so running the test suite doesn't result in megaspam.
2336 2003-04-11 Havoc Pennington <hp@pobox.com>
2338 * bus/dispatch.c (check_existent_service_activation): accept a no
2339 memory error in a place we didn't before
2341 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
2342 in case the first one failed," since the test suite is less
2345 2003-04-10 Havoc Pennington <hp@pobox.com>
2347 * bus/dispatch.c (check_segfault_service_activation): add test
2348 for launching an executable that just crashes.
2350 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
2351 don't leave a million cores. We'll see how portable this is.
2353 2003-04-10 Havoc Pennington <hp@pobox.com>
2355 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
2356 the possible parent failures before we fork, so that we don't
2357 fail to create a babysitter after creating the child.
2359 * bus/activation.c (bus_activation_activate_service): kill child
2360 if we don't successfully complete the activation.
2362 2003-04-10 Havoc Pennington <hp@redhat.com>
2364 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
2365 the connection if it's disconnected
2367 * bus/activation.c (bus_activation_service_created): use new
2368 transaction features to roll back removal of pending activation if
2369 we don't successfully create the service after all. Don't remove
2370 pending activation if the function fails.
2372 * dbus/dbus-list.c (_dbus_list_insert_before_link)
2373 (_dbus_list_insert_after_link): new code to facilitate
2376 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
2377 new functionality, so we can preallocate the ability to insert
2380 * bus/connection.c (bus_transaction_add_cancel_hook): new function
2381 allowing us to put custom hooks in a transaction to be used for
2382 cancelling said transaction
2384 * doc/dbus-specification.sgml: add some discussion of secondary
2385 service owners, and disallow zero-length service names
2387 * bus/services.c (bus_registry_acquire_service): new function,
2388 splits out part of bus_driver_handle_acquire_service() and fixes
2389 a bug where we didn't remove the service doing the acquiring
2390 from the secondary queue if we failed to remove the current owner
2391 from the front of the queue.
2393 2003-04-10 Alexander Larsson <alexl@redhat.com>
2395 * doc/dbus-specification.sgml:
2396 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
2398 2003-04-10 Alexander Larsson <alexl@redhat.com>
2403 Added files to cvsignore
2405 * dbus/dbus-message.h:
2406 * dbus/dbus-message.c: (dbus_message_iter_get_named):
2407 Make get_named() take two out argument and return a boolean.
2408 (dbus_message_iter_get_args_valist):
2409 Update usage of get_named().
2410 (dbus_message_iter_append_byte):
2412 (dbus_message_iter_append_named)
2414 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
2417 2003-04-10 Alexander Larsson <alexl@redhat.com>
2419 * dbus/dbus-marshal.[ch]:
2420 Add array_type_pos argument to _dbus_marshal_validate_arg.
2421 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
2423 * dbus/dbus-message.[ch]:
2424 Multi-dimensional arrays have full type specification in the
2425 outermost array. Iter code re-arranged to handle this.
2426 Added some more iter tests.
2428 * doc/dbus-specification.sgml:
2431 Update new array encoding description.
2432 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
2434 * test/data/invalid-messages/array-with-mixed-types.message:
2435 * test/data/valid-messages/array-of-array-of-uint32.message:
2436 Change to the new array format.
2438 * test/data/invalid-messages/too-short-dict.message:
2441 * test/data/valid-messages/recursive-types.message:
2442 Fix up and extend test.
2444 2003-04-10 Havoc Pennington <hp@pobox.com>
2446 * bus/dispatch.c: lots of fixes
2448 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
2449 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
2450 that was crack, broke the test service.
2452 * dbus/dbus-transport.c (_dbus_transport_open): fix error
2453 handling to avoid piling up errors if we get a failure on the
2456 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
2457 pid in assertion failures.
2459 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
2460 to some fixed size of file descriptor array. Don't return TRUE
2461 anytime a timeout exists, that led to lots of busy loop silliness
2464 2003-04-09 Havoc Pennington <hp@redhat.com>
2466 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
2467 I'd checked this in earlier but hadn't.
2469 2003-04-09 Havoc Pennington <hp@redhat.com>
2471 * bus/dispatch.c (bus_dispatch_test): get a bit further through
2472 the activation test (man this is getting old!)
2474 2003-04-09 Havoc Pennington <hp@redhat.com>
2476 * test/test-utils.c: use dispatch status function to fix this up
2478 * bus/connection.c (connection_watch_callback): don't dispatch
2480 (connection_timeout_callback): don't dispatch from here
2481 (bus_connections_setup_connection): set the dispatch status function
2482 (bus_connection_disconnected): unset it
2484 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
2485 used to add a connection to be dispatched
2486 (_dbus_loop_iterate): do the dispatching at the end of each
2489 * dbus/dbus-connection.c
2490 (dbus_connection_set_dispatch_status_function): new function
2491 allowing us to fix up main loop usage
2492 (_dbus_connection_last_unref): free all the various function
2494 (dbus_connection_dispatch): call the DispatchStatusFunction
2495 whenever this function returns
2496 (dbus_connection_handle_watch): call DispatchStatusFunction
2497 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
2498 (reply_handler_timeout): call DispatchStatusFunction
2499 (dbus_connection_flush): call DispatchStatusFunction
2501 2003-04-09 Havoc Pennington <hp@redhat.com>
2503 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
2506 * bus/dispatch.c (check_service_activated): fix bug in test
2508 * dbus/dbus-mainloop.c (check_timeout): fix this up
2510 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
2511 verbose output so we can sort out output from different processes,
2512 e.g. in the activation case.
2514 2003-04-08 Colin Walters <walters@gnu.org>
2516 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
2518 (bus_context_new): Set it.
2519 (bus_context_unref): Use it to delete the pid file.
2521 2003-04-08 Havoc Pennington <hp@redhat.com>
2523 * test/data/invalid-messages/array-with-mixed-types.message:
2524 regression test that fails for the moment
2526 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
2527 tests for convenience
2529 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
2530 array of nil, it broke things.
2532 * test/data/invalid-messages/array-of-nil.message: regression test
2534 * test/data/valid-messages/array-of-array-of-uint32.message:
2535 happened to write this so added it to suite
2537 2003-04-08 Havoc Pennington <hp@redhat.com>
2539 * bus/driver.c (bus_driver_handle_acquire_service): init
2540 retval/reply before checking name
2542 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
2543 recursion depth argument
2545 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
2546 in the public struct for future extension
2548 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2551 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2554 * doc/dbus-specification.sgml: fix typo
2556 2003-04-08 Alexander Larsson <alexl@redhat.com>
2558 Implemented recursive types, named types and new-style iters
2561 * glib/test-thread-client.c: (thread_func):
2562 * glib/test-thread-server.c: (handle_test_message):
2563 * test/test-service.c: (handle_echo):
2572 * dbus/dbus-internals.c: (_dbus_type_to_string):
2573 Update for new types.
2575 * dbus/dbus-marshal.[ch]:
2576 Implement recursive types and the new marshalling format.
2577 Remove hardcoded dict marshalling.
2578 Marshal named types.
2580 * dbus/dbus-message-builder.c:
2582 Remove references to old types
2584 * dbus/dbus-message.[ch]:
2585 New non-refcounted iter API that supports recursive iters.
2586 Use iters for appending, including support for recursive
2588 Add byte and named type support.
2589 Update everything to new marshalling formats.
2590 Add tests for new API.
2592 * dbus/dbus-protocol.h:
2593 Remove old array types.
2594 Add types: BYTE, ARRAY, DICT, NAMED
2596 * dbus/dbus-string.c:
2597 * dbus/dbus-sysdeps.c:
2598 Make parse_double locale safe.
2600 * dbus/dbus-test-main.c:
2606 * doc/dbus-specification.sgml:
2609 * test/data/incomplete-messages/missing-body.message:
2610 * test/data/invalid-messages/bad-boolean.message:
2611 * test/data/invalid-messages/bad-boolean-array.message:
2612 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2613 * test/data/invalid-messages/boolean-has-no-value.message-raw:
2614 * test/data/invalid-messages/too-short-dict.message:
2615 * test/data/valid-messages/dict-simple.message:
2616 * test/data/valid-messages/dict.message:
2617 * test/data/valid-messages/emptiness.message:
2618 * test/data/valid-messages/lots-of-arguments.message:
2619 * test/data/valid-messages/no-padding.message:
2620 * test/data/valid-messages/recursive-types.message:
2621 Add missing NAME fields
2622 Fix up dicts & arrays
2624 * test/data/invalid-messages/dict-with-nil-value.message:
2625 Removed, this is not invalid anymore.
2627 * test/data/valid-messages/recursive-types.message:
2628 Add new test for deeply recursive types.
2630 2003-04-07 Havoc Pennington <hp@pobox.com>
2632 * bus/driver.c (bus_driver_handle_acquire_service): return an
2633 error if you try to acquire a service that starts with ':'
2635 2003-04-07 Havoc Pennington <hp@redhat.com>
2637 * doc/dbus-specification.sgml: require that base service names
2638 start with ':' and that the base service is created/deleted
2639 as first and last things a connection does on the bus
2641 * bus/dispatch.c (check_existent_service_activation): lots more
2642 work on the activation test; it doesn't fully pass yet...
2644 * test/test-service.c (main): fix so we don't memleak the
2645 connection to the message bus
2646 (filter_func): accept a message asking us to exit
2648 2003-04-06 Havoc Pennington <hp@pobox.com>
2650 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2653 * configure.in: fixes to Qt detection from Colin Walters
2655 * doc/Makefile.am: Only remove generated docbook dirs if they
2656 exist, from Colin Walters
2658 * dbus/dbus-bus.c: change how we set well-known connections to
2659 NULL, so that it works if a single connection is stored in
2660 two well-known array slots.
2662 * test/Makefile.am: remove a lot of stuff that isn't immediately
2663 useful, it's in CVS history if we want it.
2665 * test/test-service.c: use dbus-mainloop instead of that
2668 2003-04-06 Havoc Pennington <hp@pobox.com>
2670 * dbus/Makefile.am: split lists of sources into stuff that goes in
2671 the library, util functions that go in the lib and are also used
2672 elsewhere, and util functions that are used in tests/daemon but
2673 don't go in the lib.
2675 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
2676 here so it can be used in test binaries also
2678 2003-04-06 Havoc Pennington <hp@pobox.com>
2680 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
2681 here in the parent process, so we can return an error if it
2682 fails. Also, move some of the code into the child so the parent
2683 is less hosed if we fail midway through.
2685 * bus/bus.c (bus_context_new): move pidfile detection further up
2686 in the function, before we start overwriting sockets and such.
2688 * bus/messagebus.in: adjust this a bit, not sure if it will work.
2690 * configure.in: add --with-system-pid-file and --with-system-socket
2692 2003-04-06 Colin Walters <walters@verbum.org>
2694 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
2696 * bus/system.conf.in: Declare a pidfile.
2698 * bus/bus.c (bus_context_new): Test for an existing pid file, and
2699 create one (if appropriate).
2701 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
2702 (struct BusConfigParser) [pidfile]: New.
2703 (element_type_to_name, merge_included, start_busconfig_child)
2704 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
2705 (bus_config_parser_unref): Free it.
2706 (bus_config_parser_get_pidfile): New function.
2708 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
2710 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
2712 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
2714 * dbus/dbus-sysdeps.h: Prototype it.
2716 2003-04-06 Havoc Pennington <hp@pobox.com>
2718 * bus/bus.c (bus_context_new): print the address in here, rather
2719 than in main(), because we need to do it before forking the daemon
2721 * bus/dispatch.c (send_service_nonexistent_error): set the sender
2722 on the service nonexistent error
2724 * bus/driver.c (bus_driver_handle_acquire_service): set the
2725 sender on the AcquireService reply
2727 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
2728 server also listen on a UNIX socket so services can connect to it.
2730 2003-04-06 Havoc Pennington <hp@pobox.com>
2732 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
2733 so it detects deadlocks and also we actually init threads when
2736 2003-04-06 Havoc Pennington <hp@pobox.com>
2738 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2739 save the domain socket name, and unlink it when we disconnect the
2740 server. Means that at least when we exit normally, we won't leave
2741 a bunch of junk in /tmp
2743 * dbus/dbus-transport-unix.c
2744 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
2745 memory management). (I was making a real change here but then
2748 2003-04-06 Havoc Pennington <hp@pobox.com>
2750 * bus/bus.c (bus_context_new): fix wrong handling of
2751 server_data_slot_unref() in the error case.
2753 * dbus/dbus-internals.h (_dbus_assert): change so it passes
2754 "(condition) != 0" to _dbus_real_assert so that
2755 "_dbus_assert (pointer)" doesn't cause a warning
2757 * bus/main.c (main): accept --print-address option to print out
2758 the message bus address
2760 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
2762 * dbus/dbus-transport.c (_dbus_transport_open): special error for
2763 "tmpdir" option to unix: address on client side
2765 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
2768 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
2769 we can use to create sockets in the test suite.
2771 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
2772 cleanly. To be used for testing.
2774 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
2776 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
2778 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2779 handle trying to call this when there's no servers active
2781 2003-04-05 Havoc Pennington <hp@pobox.com>
2787 2003-04-05 Havoc Pennington <hp@pobox.com>
2789 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
2790 crash on startup. Need to get "try starting the daemon"
2791 in the test suite I guess. ;-)
2793 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
2794 tracked the number of open connections; it's better done in
2795 application-specific code as you want it to span all servers etc.
2797 2003-04-05 Havoc Pennington <hp@pobox.com>
2799 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
2800 patch from Colin Walters
2802 2003-04-05 Havoc Pennington <hp@pobox.com>
2804 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
2805 reality; in fact multiple mechanisms are allowed.
2807 * dbus/dbus-internals.c (_dbus_real_assert)
2808 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
2809 _dbus_assert_not_reached() into functions, so that they don't show
2810 up in basic block counts for test coverage, and don't use up as
2811 much disk space. Does mean slower execution speed though, so
2812 assumes --disable-asserts is the normal production case.
2814 2003-04-05 Havoc Pennington <hp@pobox.com>
2816 * test/Makefile.am (dist-hook): also dist *.in files
2822 2003-04-05 Havoc Pennington <hp@pobox.com>
2824 * dbus/dbus-string.c: docs warning
2826 * dbus/dbus-spawn.c: missing docs
2828 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2830 2003-04-05 Havoc Pennington <hp@pobox.com>
2832 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
2835 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
2836 to -1 once we've reaped the babysitter
2837 (_dbus_babysitter_handle_watch): do as much work as we can, not
2840 * bus/activation.c: add code using DBusBabysitter so that we
2841 handle it when a service fails to start up properly.
2842 (bus_activation_service_created): don't remove the activation
2843 entries as we go, just let them get removed when we free the pending
2844 activation. Unref reply messages after sending them.
2846 2003-04-05 Havoc Pennington <hp@pobox.com>
2848 * test/decode-gcov.c (main): print per-directory stats in the report
2850 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
2852 2003-04-05 Havoc Pennington <hp@pobox.com>
2854 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
2856 * test/decode-gcov.c: hack up a little program to suck data
2857 out of gcov files. Yes this is sort of silly.
2859 * configure.in: define something in config.h and do an
2860 AM_CONDITIONAL when gcov is enabled
2862 2003-04-04 Havoc Pennington <hp@redhat.com>
2864 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
2865 return a "babysitter" object that is used to monitor the status of
2866 the spawned process and reap it when required.
2868 * test/test-segfault.c, test/test-exit.c,
2869 test/test-sleep-forever.c: binaries that do various lame things,
2870 used in the test suite.
2872 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
2874 2003-04-03 Havoc Pennington <hp@pobox.com>
2876 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
2877 in preparation for modifying it, dbus-sysdeps is getting
2880 2003-04-03 Havoc Pennington <hp@redhat.com>
2882 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
2885 * bus/*.[hc]: adapt to mainloop change
2887 2003-04-03 Havoc Pennington <hp@redhat.com>
2889 * bus/activation.c (load_directory): fix up memleaks
2890 (bus_activation_entry_free): free the entry
2892 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
2893 we get one from the message bus; fix memleaks.
2895 * dbus/dbus-message.c (dbus_set_error_from_message): new function
2897 2003-04-03 Havoc Pennington <hp@pobox.com>
2899 * bus/config-parser.c (bus_config_parser_unref): free
2900 list of mechanisms, bug discovered by test suite enhancements
2901 (putting system.conf and session.conf into suite)
2903 * test/Makefile.am, test/test-service.c: add placeholder for a
2904 test service that we'll activate as part of test suite. Doesn't
2907 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2908 setting NULL value, and use system malloc not dbus_malloc()
2909 when we have unavoidable memleakage.
2911 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2912 didn't work, and support DBUS_BUS_ACTIVATION.
2914 * bus/activation.c (child_setup): pass our well-known bus type to
2917 * bus/config-parser.c: support <type> to specify well-known type
2919 * doc/dbus-specification.sgml: document the env variables to
2920 locate well-known buses and find service activator
2922 2003-04-02 Havoc Pennington <hp@redhat.com>
2924 * test/Makefile.am (all-local): add a rule to copy tests to
2925 builddir, so we can have generated tests. Use this to remove the
2926 silly hack for testing system.conf and session.conf. Will use this
2927 shortly to generate .service files pointing to test binaries.
2929 2003-04-02 Havoc Pennington <hp@redhat.com>
2931 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2932 current alloc and needed new length, not max of the doubled
2933 allocation and needed new length. Also, when building tests,
2934 don't do the double-allocation stuff, just realloc every time.
2936 2003-04-02 Havoc Pennington <hp@redhat.com>
2938 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2940 (_dbus_string_get_dirname): new
2941 (_dbus_sysdeps_test): new
2942 (_dbus_directory_open): include dirnames in error messages
2944 * bus/config-parser.c: interpret <include> and <includedir> and
2945 <servicedir> relative to config file location if the given
2946 filename is not absolute.
2948 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2950 2003-04-02 Havoc Pennington <hp@redhat.com>
2952 * bus/connection.c (bus_transaction_send_error_reply): set sender
2953 service for the error, and unref the reply on success
2955 * bus/activation.c: convert to use BusTransaction so OOM can be
2957 (bus_activation_service_created): set sender of the message
2959 2003-04-01 Havoc Pennington <hp@redhat.com>
2961 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2962 <includedir> (at least mostly)
2964 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2965 first, then the user ID
2967 2003-04-01 Havoc Pennington <hp@pobox.com>
2969 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2972 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2974 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2976 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2977 socket 0777, and unlink any existing socket.
2979 * bus/bus.c (bus_context_new): change our UID/GID and fork if
2980 the configuration file so specifies; set up auth mechanism
2983 * bus/config-parser.c (bus_config_parser_content): add support
2984 for <fork> option and fill in code for <auth>
2986 * bus/system.conf.in: add <fork/> to default configuration,
2987 and limit auth mechanisms to EXTERNAL
2989 * doc/config-file.txt (Elements): add <fork>
2991 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2992 (_dbus_change_identity): new function
2994 2003-03-31 Havoc Pennington <hp@redhat.com>
2996 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2997 (_dbus_listen_unix_socket): fix off-by-one error in null
2998 termination spotted by Nalin
3000 2003-03-31 Havoc Pennington <hp@redhat.com>
3002 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
3003 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
3004 having a real home directory available.
3006 2003-03-31 Havoc Pennington <hp@redhat.com>
3008 * bus/Makefile.am (install-data-hook): create /var/run/dbus
3010 * bus/messagebus.in: add init script for Red Hat /etc/init.d
3012 * configure.in: add support for specifying a style of init script
3015 2003-03-31 Havoc Pennington <hp@redhat.com>
3017 Fix some annoying DBusString API and fix all affected code.
3019 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
3021 (_dbus_string_get_data): change to return string instead of using
3023 (_dbus_string_get_const_data): ditto
3024 (_dbus_string_get_data_len): ditto
3025 (_dbus_string_get_const_data_len): ditto
3027 2003-03-31 Havoc Pennington <hp@redhat.com>
3029 * bus/main.c (main): fix up the command line arguments to be nicer
3031 2003-03-31 Havoc Pennington <hp@redhat.com>
3033 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
3034 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
3035 final location that lands in the config file
3037 * bus/config-loader-expat.c (bus_config_load): fix type of
3040 * doc/TODO: remove TODO item for dbus_bus_get()
3042 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
3044 2003-03-31 Havoc Pennington <hp@pobox.com>
3046 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
3047 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
3048 argument since they are always client side
3050 * dbus/dbus-server.c (dbus_server_get_address): new function
3052 * bus/main.c (main): take the configuration file as an argument.
3054 * test/data/valid-config-files/debug-allow-all.conf: new file to
3055 use with dispatch.c tests for example
3057 * bus/test-main.c (main): require test data dir
3059 * bus/bus.c (bus_context_new): change this to take a
3060 configuration file name as argument
3062 * doc/config-file.txt (Elements): add <servicedir>
3064 * bus/system.conf, bus/session.conf: new files
3066 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
3067 well-known socket if none set
3069 * configure.in: create system.conf and session.conf
3071 2003-03-30 Havoc Pennington <hp@pobox.com>
3073 * bus/config-parser.c: hacking
3075 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
3076 to shut down, since it could cause weirdness with the DBusList
3079 * dbus/dbus-list.c (_dbus_list_test): add tests for the
3080 link-oriented stack routines
3081 (alloc_link): free the mempool if the first alloc from it fails
3083 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
3085 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
3087 (_dbus_string_skip_white): new
3089 * doc/config-file.txt (Elements): add <includedir>
3091 2003-03-28 Havoc Pennington <hp@pobox.com>
3093 * dbus/dbus-string.c (_dbus_string_copy_data_len)
3094 (_dbus_string_copy_data): new functions
3096 2003-03-28 Anders Carlsson <andersca@codefactory.se>
3098 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
3102 * dbus/dbus-memory.c:
3105 2003-03-28 Havoc Pennington <hp@pobox.com>
3107 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
3108 I think it may have just been superstition. Not sure.
3110 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
3111 failures that were not being handled.
3113 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
3115 * dbus/dbus-memory.c: add ability to set number of mallocs in a
3116 row that will fail on out-of-memory.
3118 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
3119 function for testing out-of-memory handling.
3121 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
3122 allocation functions, they do map exactly to the expat ones.
3124 2003-03-27 Havoc Pennington <hp@redhat.com>
3126 * bus/config-loader-libxml.c (bus_config_load): add another error
3129 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3132 Add note about automatic service activation.
3134 * doc/dbus-specification.sgml:
3135 Rename the specification and clarify a few things.
3137 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3140 * dbus/dbus-address.c:
3142 * dbus/dbus-marshal.c:
3143 * dbus/dbus-server-debug-pipe.c:
3144 * dbus/dbus-transport-unix.c:
3145 Fix documentation warnings.
3147 2003-03-26 Havoc Pennington <hp@pobox.com>
3149 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
3150 after every test so it's quick and easy to see which leaked, and
3151 so we test multiple dbus_shutdown() calls
3153 * configure.in: change configure.in XML stuff to also support
3156 * config-loader-libxml.c: some hacking
3158 * config-loader-expat.c: some hacking
3160 * config-parser.c: some hacking, plus tests
3162 2003-03-25 Havoc Pennington <hp@redhat.com>
3164 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
3166 * configure.in: add --with-xml option to specify XML library,
3167 right now only libxml is supported.
3169 * bus/config-loader-libxml.c, config-parser.c: sync some minor
3170 nonworking code between home and work, still just stubs
3172 2003-03-24 Havoc Pennington <hp@redhat.com>
3174 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
3177 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
3178 NULL argument for "message" if the error is a well-known one,
3179 fill in a generic message in this case.
3181 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
3184 * bus/test.c (bus_test_flush_bus): add
3186 * bus/policy.c (bus_policy_test): test code stub
3188 2003-03-24 Havoc Pennington <hp@pobox.com>
3190 * bus/connection.c (bus_connections_setup_connection): set up
3191 the "can this user connect" function, but it always returns
3192 TRUE until we have a config file parser so we can have a config
3193 file that allows connections.
3195 2003-03-23 Havoc Pennington <hp@pobox.com>
3197 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
3198 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
3199 the mutex, so we can check for proper memory management
3202 * dbus/dbus-dataslot.c: remove the mutex from
3203 DBusDataSlotAllocator and lock it manually when using it,
3204 to simplify fitting it into the global slots framework.
3206 * dbus/dbus-threads.c (init_static_locks): rework how we're
3207 handling global locks so they are easily shut down.
3209 * bus/policy.c (bus_policy_append_rule): fix
3211 * bus/test-main.c (main): check for memleaks
3213 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
3214 test suite check for memleaks
3216 * dbus/dbus-memory.c: add support in test mode for tracking
3217 number of outstanding blocks
3219 2003-03-23 Havoc Pennington <hp@pobox.com>
3221 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
3224 * dbus/dbus-hash.h: add ULONG hash keys
3226 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
3227 (_dbus_get_group_id): new function
3229 2003-03-20 Havoc Pennington <hp@redhat.com>
3231 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
3233 (dbus_connection_get_unix_user): new function
3235 2003-03-20 Havoc Pennington <hp@pobox.com>
3237 * bus/connection.c (bus_connection_send_oom_error): assert that
3238 message has a sender
3239 (connection_execute_transaction): ditto
3240 (bus_connection_preallocate_oom_error): fix to set the sender, and
3241 set recipient to the destination service, not the bus driver
3243 * bus/policy.c: hacking
3245 * dbus/dbus-message.c (dbus_message_service_is): new function
3246 (dbus_message_sender_is): new
3248 2003-03-19 Havoc Pennington <hp@redhat.com>
3250 * bus/policy.c: start sketching code for policy restrictions on
3251 what connections can do.
3253 2003-03-18 Havoc Pennington <hp@redhat.com>
3255 * doc/TODO: some notes on high-level todo items. Little nitpick
3256 stuff is all in @todo, so no need to add it here.
3258 * doc/config-file.txt: some notes on how config file might look
3260 2003-03-18 Anders Carlsson <andersca@codefactory.se>
3266 2003-03-17 Havoc Pennington <hp@redhat.com>
3268 * dbus/dbus-internals.h: add gcc attributes so that
3269 our printf-style functions warn on bad arguments to
3272 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
3275 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3278 2003-03-17 Havoc Pennington <hp@redhat.com>
3280 * bus/test-main.c (main): make it print something as it runs
3281 so make check doesn't look stuck
3283 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
3284 from CVS, now obsolete
3286 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3288 * bus/dispatch.c: (bus_dispatch):
3289 Refetch the service name since it may have been reallocated
3290 when dbus_message_set_sender was called.
3292 * dbus/dbus-sysdeps.c: (_dbus_accept):
3293 Add address and address length variables and use them to stop
3294 valgrind from complaining.
3296 2003-03-17 Havoc Pennington <hp@pobox.com>
3298 All tests pass, no memleaks, no valgrind complaints.
3300 * bus/test.c: refcount handler_slot
3302 * bus/connection.c (bus_connections_new): refcount
3303 connection_data_slot
3305 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
3306 bytes so that auth scripts pass.
3308 * bus/dispatch.c: init message_handler_slot so it gets allocated
3311 * bus/dispatch.c (message_handler_slot_ref): fix memleak
3313 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
3314 dealloc server_pipe_hash when no longer used for benefit of
3317 * dbus/dbus-auth.c (process_command): memleak fix
3319 * bus/dispatch.c (check_hello_message): memleak fix
3321 2003-03-16 Havoc Pennington <hp@pobox.com>
3323 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
3325 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3327 * bus/activation.c (bus_activation_activate_service): Append
3328 the pending activation entry to the list of pending activations.
3330 2003-03-16 Havoc Pennington <hp@pobox.com>
3332 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
3335 * dbus/dbus-address.c (create_entry): fix OOM handling when
3336 failing to alloc entry->method
3338 2003-03-16 Havoc Pennington <hp@pobox.com>
3340 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
3343 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3344 add some missing dbus_set_result
3346 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
3347 alloc the DBusMessageHandler
3349 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
3350 the transport here, since we call this from the finalizer; it
3351 resulted in a double-finalize.
3353 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
3354 where we tried to use transport->connection that was NULL,
3355 happened when transport was disconnected early on due to OOM
3357 * bus/*.c: adapt to handle OOM for watches/timeouts
3359 * dbus/dbus-transport-unix.c: port to handle OOM during
3362 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
3363 reference to unused bytes instead of a copy
3365 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
3368 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
3371 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
3374 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3376 * doc/dbus-specification.sgml:
3377 Document reply message for ActivateService.
3379 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3381 * bus/activation.c: (bus_pending_activation_entry_free),
3382 (bus_pending_activation_free), (bus_activation_new),
3383 (bus_activation_unref), (bus_activation_service_created),
3384 (bus_activation_activate_service):
3386 * bus/bus.c: (bus_context_new):
3387 * bus/desktop-file.c: (new_section):
3388 * bus/driver.c: (bus_driver_send_service_deleted),
3389 (bus_driver_handle_activate_service):
3390 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
3392 * dbus/dbus-connection.c:
3393 (dbus_connection_send_with_reply_and_block):
3394 * dbus/dbus-message.c: (dbus_message_append_args_valist):
3395 * dbus/dbus-protocol.h:
3396 Make activation work better. Now pending activations will be queued
3397 and the daemon won't try to activate services that are already registered.
3399 2003-03-16 Havoc Pennington <hp@pobox.com>
3401 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
3404 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
3405 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
3407 2003-03-16 Havoc Pennington <hp@pobox.com>
3409 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
3410 this. always run the test suite before commit...
3412 * bus/*: adapt to DBusConnection API changes
3414 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
3415 requires renaming stuff to avoid dbus_connection_dispatch name
3418 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
3421 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3422 separate from _dbus_message_loader_return_buffer()
3424 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
3425 this, because it's now always broken to use; the number of
3426 messages in queue vs. the number still buffered by the message
3427 loader is undefined/meaningless. Should use
3428 dbus_connection_get_dispatch_state().
3429 (dbus_connection_dispatch): rename from
3430 dbus_connection_dispatch_message
3432 2003-03-16 Havoc Pennington <hp@pobox.com>
3434 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
3437 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3439 * dbus/dbus-connection.c:
3440 (dbus_connection_send_with_reply_and_block):
3441 Decrease connection->n_incoming when removing an entry
3443 * dbus/dbus-dict.c: (dbus_dict_entry_free),
3444 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3445 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3446 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
3447 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
3448 (dbus_dict_get_byte_array):
3449 Handle NULL arrays and strings. Also add support for byte arrays.
3451 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
3452 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
3453 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3454 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3455 (_dbus_demarshal_dict), (demarshal_and_validate_len),
3456 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
3457 * dbus/dbus-marshal.h:
3458 Add support for marshalling and demarshalling empty arrays and strings.
3460 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3461 (dbus_message_append_string_array),
3462 (dbus_message_iter_get_boolean),
3463 (dbus_message_iter_get_boolean_array),
3464 (dbus_message_iter_get_int32_array),
3465 (dbus_message_iter_get_uint32_array),
3466 (dbus_message_iter_get_double_array),
3467 (dbus_message_iter_get_byte_array),
3468 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
3469 (check_message_handling):
3470 Add support for getting empty arrays and dicts.
3472 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
3473 Don't do any validation at all for now, that's better than just checking
3476 * test/data/valid-messages/emptiness.message:
3477 New test message with lots of empty arrays.
3479 2003-03-16 Havoc Pennington <hp@pobox.com>
3481 * dbus/dbus-connection.c
3482 (_dbus_connection_queue_received_message_link): new function that
3483 can't fail due to OOM
3485 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
3486 new function pops a message together with a list link
3489 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
3490 message queuing functions to avoid needing to alloc memory
3492 2003-03-16 Havoc Pennington <hp@pobox.com>
3494 Oops - test code was only testing failure of around 30 of the
3495 mallocs in the test path, but it turns out there are 500+
3496 mallocs. I believe this was due to misguided linking setup such
3497 that there was one copy of dbus_malloc etc. in the daemon and one
3498 in the shared lib, and only daemon mallocs were tested. In any
3499 case, the test case now tests all 500+ mallocs, and doesn't pass
3500 yet, though there are lots of fixes in this patch.
3502 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3503 this so that it doesn't need to allocate memory, since it
3504 has no way of indicating failure due to OOM (and would be
3505 annoying if it did).
3507 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
3509 * bus/Makefile.am: rearrange to create two self-contained
3510 libraries, to avoid having libraries with overlapping symbols.
3511 that was resulting in weirdness, e.g. I'm pretty sure there
3512 were two copies of global static variables.
3514 * dbus/dbus-internals.c: move the malloc debug stuff to
3517 * dbus/dbus-list.c (free_link): free list mempool if it becomes
3520 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
3522 * dbus/dbus-address.c (dbus_parse_address): free list nodes
3525 * bus/dispatch.c (bus_dispatch_add_connection): free
3526 message_handler_slot when no longer using it, so
3527 memory leak checkers are happy for the test suite.
3529 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
3531 * bus/bus.c (new_connection_callback): disconnect in here if
3532 bus_connections_setup_connection fails.
3534 * bus/connection.c (bus_connections_unref): fix to free the
3536 (bus_connections_setup_connection): if this fails, don't
3537 disconnect the connection, just be sure there are no side
3540 * dbus/dbus-string.c (undo_alignment): unbreak this
3542 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
3544 (_dbus_auth_new): fix the order in which we free strings
3547 * bus/connection.c (bus_connection_disconnected): fix to
3548 not send ServiceDeleted multiple times in case of memory
3551 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3552 get the base service name
3553 (dbus_bus_register_client): don't return base service name,
3554 instead store it on the DBusConnection and have an accessor
3556 (dbus_bus_register_client): rename dbus_bus_register()
3558 * bus/dispatch.c (check_hello_message): verify that other
3559 connections on the bus also got the correct results, not
3560 just the one sending hello
3562 2003-03-15 Havoc Pennington <hp@pobox.com>
3564 Make it pass the Hello handling test including all OOM codepaths.
3565 Now to do other messages...
3567 * bus/services.c (bus_service_remove_owner): fix crash when
3568 removing owner from an empty list of owners
3569 (bus_registry_ensure): don't leave service in the list of
3570 a connection's owned services if we fail to put the service
3573 * bus/connection.c (bus_connection_preallocate_oom_error): set
3574 error flag on the OOM error.
3576 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3577 handle _dbus_transport_set_connection failure
3579 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3580 to create watches up front and simply enable/disable them as
3582 (unix_connection_set): this can now fail on OOM
3584 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3585 of enabling/disabling a watch or timeout.
3587 * bus/loop.c (bus_loop_iterate): don't touch disabled
3590 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3592 2003-03-15 Havoc Pennington <hp@pobox.com>
3594 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3595 write useful test code, after all that futzing around ;-)
3597 Test does not yet pass because we can't handle OOM in
3598 _dbus_transport_messages_pending (basically,
3599 dbus_connection_preallocate_send() does not prealloc the write
3600 watch). To fix this, I think we need to add new stuff to
3601 set_watch_functions, namely a SetEnabled function so we can alloc
3602 the watch earlier, then enable it later.
3604 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3605 dbus-memory.c to the convenience lib
3607 * bus/test.c: rename some static functions to keep them clearly
3608 distinct from stuff in connection.c. Handle client disconnection.
3610 2003-03-14 Havoc Pennington <hp@pobox.com>
3612 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3613 transport, tests more of the real codepath. Set up clients
3614 with bus_setup_debug_client.
3616 * bus/test.c (bus_setup_debug_client): function to set up debug
3617 "clients" on the main loop
3619 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3622 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3625 * dbus/dbus-server-debug.c: support a debug server based on pipes
3627 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3628 (_dbus_close): new function
3630 * configure.in: check for socketpair
3632 2003-03-14 Havoc Pennington <hp@redhat.com>
3634 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3637 * dbus/dbus-transport-debug.c: rework this a good bit to be
3638 less complicated. hopefully still works.
3640 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3643 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3646 * dbus/dbus-message.c (dbus_message_copy): rename from
3647 dbus_message_new_from_message, fix it up to copy
3648 all the message fields, add test case
3650 * bus/dispatch.c (bus_dispatch_test): add some more test code,
3651 not quite passing yet
3653 2003-03-14 Havoc Pennington <hp@pobox.com>
3655 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3656 until no work remains" in test code. (the large diff here
3657 is just code movement, no actual changes)
3659 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3660 1, no point waiting around for test code.
3661 (_dbus_server_debug_accept_transport): unref the timeout
3662 after adding it (right?)
3664 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
3666 2003-03-13 Havoc Pennington <hp@redhat.com>
3668 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
3671 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
3674 * dbus/dbus-connection.h: Make AddWatchFunction and
3675 AddTimeoutFunction return a bool so they can fail on out-of-memory
3677 * bus/bus.c (bus_context_new): set up timeout handlers
3679 * bus/connection.c (bus_connections_setup_connection): set up
3682 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
3685 * bus/bus.c (bus_context_new): adapt to changes
3687 * bus/connection.c: adapt to changes
3689 * test/watch.c: adapt to DBusWatch changes
3691 * bus/dispatch.c (bus_dispatch_test): started adding this but
3694 2003-03-14 Anders Carlsson <andersca@codefactory.se>
3696 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
3698 2003-03-13 Havoc Pennington <hp@pobox.com>
3700 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
3701 set up a test framework as for the library
3703 2003-03-12 Havoc Pennington <hp@pobox.com>
3705 Throughout: purge global variables, introduce BusActivation,
3706 BusConnections, BusRegistry, etc. objects instead.
3708 * bus/bus.h, bus/bus.c: introduce BusContext as a global
3711 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
3712 going to redo this a bit differently I think
3714 2003-03-12 Havoc Pennington <hp@redhat.com>
3716 Mega-patch that gets the message bus daemon initially handling
3717 out-of-memory. Work still needed. Also lots of random
3718 moving stuff to DBusError instead of ResultCode.
3720 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
3722 * dbus/dbus-connection.c
3723 (dbus_connection_send_with_reply_and_block): use DBusError
3725 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
3728 * dbus/dbus-connection.c (dbus_connection_send): drop the result
3729 code here, as the only failure possible is OOM.
3731 * bus/connection.c (bus_connection_disconnect):
3732 rename bus_connection_disconnected as it's a notification only
3734 * bus/driver.c (bus_driver_handle_acquire_service): don't free
3735 "name" on get_args failure, should be done by get_args;
3736 don't disconnect client for bad args, just return an error.
3737 (bus_driver_handle_service_exists): ditto
3739 * bus/services.c (bus_services_list): NULL-terminate returned array
3741 * bus/driver.c (bus_driver_send_service_lost)
3742 (bus_driver_send_service_acquired): send messages from driver to a
3743 specific client to the client's unique name, not to the broadcast
3746 * dbus/dbus-message.c (decode_header_data): reject messages that
3747 contain no name field
3748 (_dbus_message_get_client_serial): rename to
3749 dbus_message_get_serial and make public
3750 (_dbus_message_set_serial): rename from set_client_serial
3751 (_dbus_message_set_reply_serial): make public
3752 (_dbus_message_get_reply_serial): make public
3754 * bus/connection.c (bus_connection_foreach): allow stopping
3755 iteration by returning FALSE from foreach function.
3757 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
3758 (dbus_connection_free_preallocated_send)
3759 (dbus_connection_preallocate_send): new API for sending a message
3760 without possibility of malloc failure.
3761 (dbus_connection_send_message): rename to just
3762 dbus_connection_send (and same for whole function family)
3764 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
3766 * dbus/dbus-sysdeps.c (_dbus_exit): new function
3768 * bus/activation.c: handle/return errors
3770 * dbus/dbus-errors.h: add more DBUS_ERROR #define
3772 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
3773 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
3774 (_dbus_result_from_errno): move to this file
3776 2003-03-10 Anders Carlsson <andersca@codefactory.se>
3778 * dbus/dbus-marshal.c:
3779 (_dbus_marshal_set_string):
3780 Take a length argument so we can marshal the correct string
3783 (_dbus_marshal_dict), (_dbus_demarshal_dict),
3784 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
3785 (_dbus_marshal_test):
3786 * dbus/dbus-marshal.h:
3787 Add support for marshalling and demarshalling dicts.
3789 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3790 Add support for TYPE DICT.
3792 * dbus/dbus-message.c: (set_string_field):
3793 Adjust header padding.
3795 (dbus_message_append_args_valist), (dbus_message_append_dict),
3796 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
3797 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
3798 (check_message_handling), (check_have_valid_message):
3799 * dbus/dbus-message.h:
3800 Add functions for setting and getting dicts.
3802 * dbus/dbus-protocol.h:
3808 * doc/dbus-specification.sgml:
3809 Add information about how dicts are marshalled.
3811 * test/data/invalid-messages/dict-with-nil-value.message:
3812 * test/data/invalid-messages/too-short-dict.message:
3813 * test/data/valid-messages/dict-simple.message:
3814 * test/data/valid-messages/dict.message:
3815 Add sample messages containing dicts.
3817 2003-03-08 Anders Carlsson <andersca@codefactory.se>
3819 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
3821 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3824 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3825 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
3826 (dbus_dict_set_int32), (dbus_dict_set_uint32),
3827 (dbus_dict_set_double), (dbus_dict_set_string),
3828 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3829 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3830 (dbus_dict_set_string_array), (_dbus_dict_test):
3832 Fix according to comments from Havoc.
3834 2003-03-06 Michael Meeks <michael@server.home>
3836 * configure.in: if we don't have kde-config, disable have_qt.
3838 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3843 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3844 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
3845 (dbus_dict_remove), (dbus_dict_get_value_type),
3846 (dbus_dict_get_keys), (dbus_dict_put_boolean),
3847 (dbus_dict_put_int32), (dbus_dict_put_uint32),
3848 (dbus_dict_put_double), (dbus_dict_put_string),
3849 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
3850 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
3851 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
3852 (dbus_dict_get_int32), (dbus_dict_get_uint32),
3853 (dbus_dict_get_double), (dbus_dict_get_string),
3854 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
3855 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
3856 (dbus_dict_get_string_array), (_dbus_dict_test):
3858 Add DBusDict implementation
3860 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
3864 2003-03-04 Havoc Pennington <hp@pobox.com>
3866 * test/data/auth/*: adapt to changes
3868 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
3869 USERID_BASE64 and change USERNAME_BASE64 to put in username not
3872 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
3873 more stuff from being in a context name, to make the protocol
3874 simpler to deal with
3876 * dbus/dbus-errors.c (dbus_error_has_name): new function
3877 (dbus_error_is_set): new function
3879 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
3880 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
3882 * dbus/dbus-connection.c (dbus_connection_flush): also read
3883 messages during a flush operation
3885 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
3887 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3889 * configure.in: Check for gethostbyname on Solaris.
3891 * dbus/dbus-transport.c: (_dbus_transport_open):
3892 Remove duplicate "tcp" entry.
3894 * doc/dbus-specification.sgml:
3895 Clarify some things.
3897 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3899 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3900 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3901 (_dbus_keyring_test):
3902 * dbus/dbus-md5.c: (_dbus_md5_compute):
3903 * dbus/dbus-sha.c: (_dbus_sha_compute):
3906 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3908 * README: Add some things.
3910 2003-03-04 Anders Carlsson <andersca@codefactory.se>
3912 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3913 after case DBUS_TYPE_BOOELAN.
3915 2003-03-02 Havoc Pennington <hp@pobox.com>
3917 * test/break-loader.c (randomly_set_extreme_ints): add test that
3918 sets really huge and small integers
3920 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3921 that length of boolean array fits in the string, and that
3922 string has room for boolean value in single-bool case.
3924 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3925 optional value to "ALIGN" command which is what to fill the
3928 * test/data/valid-messages/no-padding.message: add regression
3929 test for the message padding problem
3931 2003-03-02 Havoc Pennington <hp@pobox.com>
3933 * dbus/dbus-message.c (decode_header_data): fix to always init
3934 message_padding, from Benjamin Dauvergne
3936 2003-03-02 Havoc Pennington <hp@pobox.com>
3942 2003-03-01 Joe Shaw <joe@assbarn.com>
3944 * configure.in: Check for "struct cmsgcred" and try to access its
3945 members for BSD-like unices.
3947 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3948 _dbus_read_credentials_unix_socket().
3949 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3950 read() for reading the credential byte off the unix socket. Use
3951 struct cmsgcred on systems that support it.
3953 2003-02-27 Alexander Larsson <alexl@redhat.com>
3957 Make gthreads-2.0 dependency optional. Don't build thread test if
3960 2003-02-27 Havoc Pennington <hp@pobox.com>
3962 * dbus/dbus-connection.c
3963 (dbus_connection_send_message_with_reply_and_block): fix doh!
3964 doh! doh! bug that resulted in never removing a reply from the
3965 queue, no wonder we called get_reply_serial so much ;-)
3967 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3968 and client serial instead of demarshaling them every time
3970 2003-02-27 Havoc Pennington <hp@pobox.com>
3972 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3973 more inlined, using dbus-string-private.h, speeds things up
3976 * dbus/dbus-string.c (_dbus_string_free): apply align offset
3977 when freeing the string
3978 (_dbus_string_steal_data): fix for align offset
3979 (undo_alignment): new function
3981 2003-02-26 Havoc Pennington <hp@redhat.com>
3983 All kinds of audit fixes from Owen, plus initial attempt to
3984 handle unaligned memory returned from malloc.
3986 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3987 leave room for align_offset and nul byte
3988 (fixup_alignment): function to track an align_offset and
3989 ensure real->str is aligned
3990 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3991 to allow a nul byte plus align offset
3992 (_dbus_string_lock): fix overflow issue
3993 (_dbus_string_init_const_len): add assertions on sanity of len,
3994 assign allocated to be ALLOCATION_PADDING larger than len
3995 (set_length): fixup the overflow handling
3996 (_dbus_string_get_data_len): fix overflow in assertion
3997 (open_gap): detect overflow in size of gap to be opened
3998 (_dbus_string_lengthen): add overflow check
3999 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
4000 (_dbus_string_append): add overflow check
4001 (_dbus_string_append_unichar): overflow
4002 (_dbus_string_delete): fix overflow in assertion
4003 (_dbus_string_copy_len): overflow in assertion
4004 (_dbus_string_replace_len): overflows in assertions
4005 (_dbus_string_find): change to implement in terms of
4006 _dbus_string_find_to
4007 (_dbus_string_find_to): assorted fixage
4008 (_dbus_string_equal_c_str): assert c_str != NULL,
4009 fix logic so the function works
4010 (_dbus_string_ends_with_c_str): fix overflow thingy
4011 (_dbus_string_base64_encode): overflow fix
4012 (_dbus_string_validate_ascii): overflow
4013 (_dbus_string_validate_nul): overflow
4015 2003-02-26 Havoc Pennington <hp@redhat.com>
4017 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
4019 2003-02-26 Alexander Larsson <alexl@redhat.com>
4022 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
4024 * dbus/dbus-connection.c:
4025 * dbus/dbus-connection.h:
4026 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
4027 Add dbus_connection_set_wakeup_main_function and use it when queueing
4028 incoming and outgoing messages.
4031 * dbus/dbus-dataslot.c:
4032 Threadsafe usage of DBusDataSlotAllocator
4034 * dbus/dbus-message.c: (dbus_message_get_args_iter):
4037 * dbus/dbus-server-unix.c:
4040 * glib/dbus-gmain.c:
4041 Implement the new wakeup functions for glib.
4044 * glib/test-thread-client.c:
4045 * glib/test-thread-server.c:
4046 * glib/test-thread.h:
4047 Initial cut at some thread test code. Not really done yet.
4049 2003-02-26 Havoc Pennington <hp@pobox.com>
4051 * dbus/dbus-connection.c
4052 (dbus_connection_send_message_with_reply_and_block): fix crash
4053 where we ref'd the outgoing message instead of the returned reply
4055 * dbus/dbus-transport-unix.c (do_authentication): check read watch
4056 at the end of this function, so if we didn't need to read for
4057 authentication, we reinstall it for receiving messages
4059 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
4060 a NULL sender for peer-to-peer case
4062 * dbus/dbus-transport-unix.c (check_read_watch): handle
4063 !authenticated case correctly
4065 * glib/dbus-gmain.c: add support for DBusServer
4067 * dbus/dbus-server.c: add data slot support
4069 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
4070 return values and handle errors
4072 * dbus/dbus-dataslot.c: factor out the data slot stuff from
4075 * Doxyfile.in (INPUT): add glib subdir
4077 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
4078 setup_with_g_main instead of hookup_with_g_main; write docs
4080 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4082 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
4083 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4084 * dbus/dbus-message.c: (dbus_message_append_boolean),
4085 (dbus_message_append_boolean_array),
4086 (dbus_message_get_args_valist), (_dbus_message_test):
4087 * dbus/dbus-message.h:
4088 * doc/dbus-specification.sgml:
4089 Various fixes as pointed out by Havoc.
4091 * test/data/invalid-messages/bad-boolean-array.message:
4092 * test/data/invalid-messages/bad-boolean.message:
4093 Add invalid boolean value test cases.
4095 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4097 * dbus/dbus-internals.c: (_dbus_type_to_string):
4098 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4099 (_dbus_marshal_validate_arg):
4100 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4101 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4102 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
4103 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
4104 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
4105 (dbus_message_iter_get_double),
4106 (dbus_message_iter_get_boolean_array), (message_iter_test):
4107 * dbus/dbus-message.h:
4108 * dbus/dbus-protocol.h:
4109 * doc/dbus-specification.sgml:
4110 * test/data/valid-messages/lots-of-arguments.message:
4111 Add support for boolean and boolean array types.
4113 2003-02-23 Havoc Pennington <hp@pobox.com>
4115 * dbus/dbus-keyring.c: finish most of this implementation and
4118 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
4119 these barf if the error isn't cleared to NULL
4121 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
4122 (_dbus_create_directory): new function
4124 * dbus/dbus-errors.c (dbus_set_error): fix warning
4126 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
4127 (_dbus_string_hex_decode): new function
4128 (test_hex_roundtrip): test code
4130 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
4132 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
4134 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
4135 the save-to-temp/rename trick to atomically write the new file
4136 (_dbus_string_parse_uint): new function
4138 2003-02-22 Havoc Pennington <hp@pobox.com>
4140 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
4142 2003-02-22 Havoc Pennington <hp@pobox.com>
4144 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
4145 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
4147 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
4149 * dbus/test/data/sha-1: add US government test suite for SHA-1
4151 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4153 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4154 Make string arrays NULL-terminated.
4156 * dbus/dbus-memory.c: (dbus_free_string_array):
4157 * dbus/dbus-memory.h:
4158 New function for freeing NULL-terminated string arrays.
4160 * dbus/dbus-message-builder.c: (append_quoted_string),
4161 (_dbus_message_data_load):
4162 Add support for array types.
4164 * dbus/dbus-message.c: (check_message_handling):
4165 Add more types as test cases.
4167 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
4168 (_dbus_string_parse_double):
4169 Add the start offset to the end offset.
4171 * test/data/valid-messages/lots-of-arguments.message:
4172 New test message with lots of arguments.
4174 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4176 * dbus/dbus-message.c: (dbus_message_append_nil),
4177 (dbus_message_append_int32), (dbus_message_append_uint32),
4178 (dbus_message_append_double), (dbus_message_append_string),
4179 (dbus_message_append_int32_array),
4180 (dbus_message_append_uint32_array),
4181 (dbus_message_append_double_array),
4182 (dbus_message_append_byte_array),
4183 (dbus_message_append_string_array):
4184 Fix all out-of-memory handling in these functions.
4186 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4188 * dbus/dbus-message.c: (dbus_message_append_nil):
4191 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4193 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4194 (dbus_message_append_nil), (dbus_message_append_int32_array),
4195 (dbus_message_append_uint32_array),
4196 (dbus_message_append_double_array),
4197 (dbus_message_append_byte_array),
4198 (dbus_message_append_string_array), (dbus_message_get_args_valist),
4199 (dbus_message_iter_get_int32_array),
4200 (dbus_message_iter_get_uint32_array),
4201 (dbus_message_iter_get_double_array),
4202 (dbus_message_iter_get_byte_array),
4203 (dbus_message_iter_get_string_array):
4205 * dbus/dbus-message.h:
4206 Add functions for appending and getting arrays.
4208 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4210 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
4211 element size at least 8 bytes, fixes mempool tests on
4214 2003-02-20 Alexander Larsson <alexl@redhat.com>
4216 * dbus/dbus-transport-unix.c (unix_do_iteration):
4217 Unlock the connection mutex during a blocking select call.
4218 Add todo about how we need a way to wake up the select.
4220 * dbus/dbus-connection-internal.h:
4221 * dbus/dbus-connection.c:
4222 Add _dbus_connection_lock and _dbus_connection_unlock.
4224 2003-02-19 Havoc Pennington <hp@pobox.com>
4226 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
4227 Doxyfile.in, not Doxyfile
4229 * dbus/dbus-keyring.c: do some hacking on this
4231 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
4233 * dbus/dbus-errors.c (dbus_set_error_const): do not call
4235 (dbus_set_error): remove dbus_error_init, check for message ==
4236 NULL *before* we sprintf into it, and add @todo about including
4237 system headers in this file
4239 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
4241 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
4243 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
4244 get various bits of user information based on either username
4246 (_dbus_homedir_from_username): new function
4248 2003-02-19 Anders Carlsson <andersca@codefactory.se>
4251 Add check for nonposix getpwnam_r
4253 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
4254 Align the pool element size to a sizeof (void *) boundary.
4256 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
4257 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
4258 General Solaris fixes.
4260 * test/data/valid-messages/simplest-manual.message:
4261 Explicitly state that we want little-endian packing.
4263 2003-02-19 Mikael Hallendal <micke@codefactory.se>
4265 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4267 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
4268 Added to create a transport connecting using a tcp/ip socket.
4270 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
4271 to a tcp socket at given host and port.
4272 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
4275 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4277 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4278 Added to create a server listening on a TCP/IP socket.
4280 2003-02-19 Havoc Pennington <hp@pobox.com>
4282 Throughout: mop up all the Doxygen warnings and undocumented
4285 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
4286 to search any paths.
4288 * dbus/dbus-threads.c: move global mutex initializers to
4289 dbus-internals.h, multiple prototypes was confusing doxygen
4290 besides being kind of ugly
4292 * Doxyfile (PREDEFINED): have Doxygen define
4293 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
4294 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
4295 (do not abuse the feature! it's for stuff like the autogenerated
4296 macros in dbus-md5.c, not just for things you don't feel like
4299 2003-02-18 Havoc Pennington <hp@pobox.com>
4301 * dbus/dbus-string.c (_dbus_string_zero): new function
4303 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
4304 wrap it in some dbus-friendly API
4306 * dbus/dbus-types.h: add 16-bit types
4308 2003-02-18 Joe Shaw <joe@assbarn.com>
4310 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
4311 credentials from our currently running process.
4312 (get_word): Fix a buglet where we were copying the entire length
4313 instead of relative to our position.
4315 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
4316 keys on the stack... it's 640k of data.
4318 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
4319 read the credentials byte off the socket, even if we don't have
4321 (_dbus_poll): Implement poll() using select() for systems which
4324 * glib/test-dbus-glib.c (main): Print out an error if no
4325 parameters are given.
4327 * test/data/auth/fallback.auth-script: Added. Tests that a client
4328 can fallback to a secondary auth mechanism if the first fails.
4330 2003-02-18 Havoc Pennington <hp@pobox.com>
4334 2003-02-17 Havoc Pennington <hp@pobox.com>
4336 * doc/dbus-specification.sgml: lots of cosmetic
4337 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
4338 env variable to DBUS_BUS_ADDRESS, s/client/application/,
4339 s/server/bus/ (except in authentication section). Add a section
4340 "Message Bus Message Routing"
4342 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
4348 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4350 * doc/dbus-specification.sgml:
4351 Specification updates.
4353 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4355 * bus/activation.c: (bus_activation_init), (child_setup),
4356 (bus_activation_activate_service):
4358 * bus/main.c: (main):
4359 Set DBUS_ADDRESS environment variable.
4361 * dbus/dbus-errors.c: (dbus_set_error):
4362 Don't use va_copy since that's a C99 feature.
4364 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
4365 (_dbus_spawn_async):
4366 * dbus/dbus-sysdeps.h:
4367 Add child_setup_func to _dbus_spawn_async.
4369 * doc/dbus-specification.sgml:
4370 Update specification.
4372 * test/spawn-test.c: (setup_func), (main):
4375 2003-02-17 Alexander Larsson <alexl@redhat.com>
4377 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
4380 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4384 * doc/dbus-test-plan.sgml:
4385 Add test plan document.
4390 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4392 * dbus/dbus-message.c: (decode_header_data),
4393 (_dbus_message_loader_return_buffer):
4394 Set the header padding amount when loading a message.
4396 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4398 * bus/dispatch.c: (send_one_message):
4399 Only send broadcast messages to registered connections.
4401 * dbus/dbus-message.c: (dbus_message_name_is):
4402 * dbus/dbus-message.h:
4403 New convenience function.
4405 * dbus/dbus-transport-debug.c: (do_reading):
4406 Only dispatch one message per run.
4409 * test/bus-test.c: (new_connection_callback), (die),
4410 (test_hello_client1_handler), (test_hello_client2_handler),
4411 (test_hello_replies), (main):
4413 * test/bus-test-loop.[ch]:
4416 2003-02-16 Havoc Pennington <hp@pobox.com>
4418 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4419 backward conditional
4421 2003-02-16 Alexander Larsson <alexl@redhat.com>
4423 * dbus/dbus-connection.c:
4424 Implement sent_message_with_reply. (with_reply_and block is still
4426 Made dispatch_message not lose message if OOM.
4428 * dbus/dbus-errors.h:
4429 Add NoReply error (for reply timeouts).
4431 2003-02-16 Alexander Larsson <alexl@redhat.com>
4433 * dbus/dbus-hash.c (_dbus_hash_table_unref):
4434 Actually free keys and values when destroying hashtable.
4436 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4438 * dbus/dbus-auth.c: (client_try_next_mechanism):
4441 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
4442 Return TRUE if there's no thread implementation around.
4444 * glib/dbus-gmain.c: (free_source),
4445 (dbus_connection_hookup_with_g_main):
4446 Make sure to remove the GSource when the connection is finalized.
4448 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4450 * bus/dispatch.c: (bus_dispatch_message_handler):
4451 * dbus/dbus-errors.h:
4452 Return an error if someone tries to send a message to a service
4455 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4457 * bus/activation.c: (load_directory), (bus_activation_init),
4458 (bus_activation_activate_service):
4461 (bus_driver_handle_activate_service), (bus_driver_handle_message):
4462 More work on the activation handling.
4464 * dbus/dbus-errors.h:
4465 Add some error messages
4467 * dbus/dbus-message.c: (dbus_message_new_error_reply):
4468 * dbus/dbus-message.h:
4469 New function that creates an error message.
4471 * dbus/dbus-protocol.h:
4472 Add ACTIVATE_SERVER message.
4474 * dbus/dbus-server-unix.c: (unix_handle_watch),
4475 (_dbus_server_new_for_domain_socket):
4476 Call _dbus_fd_set_close_on_exec.
4478 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
4479 (_dbus_spawn_async), (_dbus_disable_sigpipe),
4480 (_dbus_fd_set_close_on_exec):
4481 * dbus/dbus-sysdeps.h:
4482 Add _dbus_fd_set_close_on exec function. Also add function that checks
4483 that all open fds are set to close-on-exec and warns otherwise.
4485 * dbus/dbus-transport-unix.c:
4486 (_dbus_transport_new_for_domain_socket):
4487 Call _dbus_fd_set_close_on_exec.
4489 2003-02-16 Havoc Pennington <hp@pobox.com>
4491 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
4492 allow people to avoid setting SIGPIPE to SIG_IGN
4493 (_dbus_connection_new_for_transport): disable SIGPIPE unless
4494 we've been asked not to
4496 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4498 * dbus/dbus-list.c: (_dbus_list_append_link),
4499 (_dbus_list_prepend_link):
4500 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
4504 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4507 * bus/activation.c: (bus_activation_entry_free),
4508 (add_desktop_file_entry), (load_directory), (bus_activation_init):
4510 * bus/main.c: (main):
4511 Add simple activation support, doesn't work yet though.
4513 2003-02-15 Zack Rusin <zack@kde.org>
4515 * qt/dbus-qthread.cpp: small casting fix
4517 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4519 * dbus/dbus-errors.c: (dbus_set_error):
4520 * dbus/dbus-errors.h:
4521 Add a few errors and make dbus_set_error void.
4523 * dbus/dbus-sysdeps.c:
4524 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
4525 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
4526 * dbus/dbus-sysdeps.h:
4527 Add _dbus_spawn_async.
4529 * test/spawn-test.c: (main):
4530 Test for _dbus_spawn_async.
4532 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4534 * dbus/dbus-internals.h:
4535 Fix build without tests.
4537 * dbus/dbus-list.c: (alloc_link):
4538 Fix a segfault when a malloc fails.
4540 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
4541 (dbus_malloc0), (dbus_realloc):
4542 Add support for malloc debugging.
4544 2003-02-15 Alexander Larsson <alexl@redhat.com>
4546 * dbus/dbus-threads.c:
4547 * dbus/dbus-threads.h:
4548 Add condvars. Remove static mutext from API.
4549 Implement static mutexes by initializing them from threads_init.
4551 * glib/dbus-gthread.c:
4552 * qt/dbus-qthread.cpp:
4553 Update with the thread api changes.
4558 Turn StaticMutex into normal mutex + init function.
4559 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4560 _dbus_list_append_link, _dbus_list_prepend_link
4563 * dbus/dbus-sysdeps.c:
4564 * dbus/dbus-sysdeps.h:
4565 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4566 _dbus_atomic_dec. Only slow fallback implementation at the moment.
4568 * dbus/dbus-protocol.h:
4569 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4571 * dbus/dbus-message.c:
4572 Make ref/unref atomic.
4575 * dbus/dbus-connection-internal.h:
4576 * dbus/dbus-connection.c:
4577 * dbus/dbus-connection.h:
4579 Change _peek to _borrow,_return & _steal_borrowed.
4580 Change disconnect callback to event.
4581 Make dbus_connection_dispatch_messages reentrant.
4583 * dbus/dbus-transport.c:
4584 Don't ref the connection on calls to the transport
4587 * dbus/dbus-message-handler.c:
4590 * glib/dbus-gmain.c:
4591 Don't use peek_message anymore
4594 * test/debug-thread.c:
4595 * test/debug-thread.h:
4596 Simple thread implementation that asserts() on deadlocks in
4597 single-threaded code.
4600 (main) Call debug_threads_init.
4603 Use disconnect message instead of disconnect callback.
4607 Don't call dbus_connection_set_disconnect_function. Instead export
4608 bus_connection_disconnect.
4611 Call bus_connection_disconnect when we get a disconnected message.
4613 2003-02-15 Havoc Pennington <hp@pobox.com>
4615 * dbus/dbus-message.c (dbus_message_new): fool around with the
4618 2003-02-14 Havoc Pennington <hp@pobox.com>
4620 * dbus/dbus-mempool.c: fail if the debug functions so indicate
4622 * dbus/dbus-memory.c: fail if the debug functions indicate we
4625 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4626 (_dbus_decrement_fail_alloc_counter): debug functions to
4627 simulate memory allocation failures
4629 2003-02-14 Havoc Pennington <hp@pobox.com>
4631 * dbus/dbus-errors.h (struct DBusError): add a word of padding
4634 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4636 * bus/driver.c: (bus_driver_handle_hello):
4638 * bus/services.c: (bus_service_lookup):
4639 Reorder message sending so we get a more sane order.
4641 * test/bus-test.c: (message_handler):
4644 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4646 * bus/driver.c: (bus_driver_send_service_deleted),
4647 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4648 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4649 (bus_driver_send_welcome_message),
4650 (bus_driver_handle_list_services),
4651 (bus_driver_handle_acquire_service),
4652 (bus_driver_handle_service_exists):
4653 * dbus/dbus-bus.c: (dbus_bus_register_client),
4654 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4655 * dbus/dbus-errors.c: (dbus_result_to_string):
4656 * dbus/dbus-errors.h:
4657 * dbus/dbus-message.c: (dbus_message_append_args),
4658 (dbus_message_append_args_valist), (dbus_message_get_args),
4659 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4660 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4661 (dbus_message_iter_get_byte_array),
4662 (dbus_message_iter_get_string_array), (message_iter_test),
4663 (check_message_handling), (_dbus_message_test):
4664 * dbus/dbus-message.h:
4665 * test/bus-test.c: (main):
4666 Change fields to arguments in messages, so that they won't be
4667 confused with header fields.
4669 * glib/test-dbus-glib.c: (main):
4670 Remove append_fields from hello message.
4672 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4674 * dbus/dbus-errors.c:
4675 * dbus/dbus-message.c:
4676 * dbus/dbus-string.c:
4677 Documentation fixes.
4679 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4681 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
4683 Implement support for timeouts in dbus-glib.
4685 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4687 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4688 * dbus/dbus-message.c: (process_test_subdir):
4689 * test/break-loader.c: (find_breaks_based_on):
4690 Plug some memory leaks.
4692 2003-02-13 Richard Hult <rhult@codefactory.se>
4694 * bus/main.c: Fix build.
4696 * dbus/dbus-errors.h:
4697 * dbus/dbus-errors.c: Fix copyright for Anders.
4699 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4704 * bus/connection.c: (bus_connection_foreach):
4707 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
4708 (unescape_string), (new_section), (parse_section_start),
4709 (parse_key_value), (report_error), (bus_desktop_file_load),
4710 (bus_desktop_file_get_string):
4711 * bus/desktop-file.h:
4712 Use DBusError for error reporting.
4714 * bus/dispatch.c: (send_one_message),
4715 (bus_dispatch_message_handler):
4716 * bus/driver.c: (bus_driver_send_service_deleted),
4717 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4718 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4719 (bus_driver_send_welcome_message),
4720 (bus_driver_handle_list_services),
4721 (bus_driver_handle_acquire_service),
4722 (bus_driver_handle_service_exists):
4723 * bus/loop.c: (bus_loop_run):
4725 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
4727 * bus/utils.c: (bus_wait_for_memory):
4729 New files with general utility functions.
4731 * dbus/dbus-internals.h:
4732 Remove _DBUS_HANDLE_OOM.
4734 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4736 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
4737 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
4738 * dbus/dbus-errors.h:
4739 Add DBusError structure.
4741 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4743 * test/data/valid-messages/standard-acquire-service.message:
4744 * test/data/valid-messages/standard-hello.message:
4745 * test/data/valid-messages/standard-list-services.message:
4746 * test/data/valid-messages/standard-service-exists.message:
4747 Add some standard messages.
4749 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4751 * bus/driver.c: (bus_driver_send_welcome_message),
4752 (bus_driver_handle_list_services),
4753 (bus_driver_handle_acquire_service),
4754 (bus_driver_handle_service_exists), (bus_driver_handle_message):
4755 Update for API changes in libdbus.
4757 * dbus/dbus-message.c: (dbus_message_new_reply):
4758 * dbus/dbus-message.h:
4759 Remove the name argument. The spec states that replies shouldn't
4762 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4764 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
4765 (report_error), (bus_desktop_file_load), (lookup_section),
4766 (lookup_line), (bus_desktop_file_get_raw),
4767 (bus_desktop_file_get_string):
4768 * bus/desktop-file.h:
4769 Some fixes, and new functions for getting a key value from a section.
4771 2003-02-13 Havoc Pennington <hp@pobox.com>
4773 * test/data/auth/fail-after-n-attempts.auth-script: new test
4775 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
4778 2003-02-13 Havoc Pennington <hp@pobox.com>
4780 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
4781 dbus_credentials_match were backward
4783 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
4784 NO_CREDENTIALS and ROOT_CREDENTIALS
4786 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
4787 into here. Never process more commands after we've reached an
4788 end state; store further data as unused bytes.
4790 * test/data/auth/*: add more auth tests
4792 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
4793 command to match exact string and EXPECT_UNUSED to match unused
4796 * test/Makefile.am (dist-hook): fix to dist all the test stuff
4798 2003-02-12 Havoc Pennington <hp@pobox.com>
4800 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
4801 \r off of popped lines
4803 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
4806 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
4809 2003-02-12 Havoc Pennington <hp@pobox.com>
4811 * dbus/Makefile.am: remove break-loader from the build, since it
4814 * configure.in: add --enable-gcov to turn on coverage profiling
4815 flags and disable optimization
4817 2003-02-10 Havoc Pennington <hp@pobox.com>
4819 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
4820 initial cut at test framework for DBusAuth from laptop.
4821 Doesn't quite work yet but it compiles and I need to get
4822 it off the 266mhz laptop. ;-)
4824 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
4825 fix a memleak in error case
4827 2003-02-12 Anders Carlsson <andersca@codefactory.se>
4830 * bus/desktop-file.c:
4831 * bus/desktop-file.h:
4832 Add a desktop file parser.
4834 2003-02-11 Zack Rusin <zack@kde.org>
4836 * qt/message.[h|cpp]: sample implementation
4837 of the KDE wrapper for DBusMessage
4839 2003-02-09 Zack Rusin <zack@kde.org>
4841 * test/bus-test.c: make_it_compile
4842 * doc/dbus-specification.sgml: minimal semantic fix
4844 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4850 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4853 * dbus/dbus-break-loader.c:
4855 * test/break-loader.c:
4856 Move dbus-break-loader to test/ and rename it to break-loader.
4858 2003-02-02 Havoc Pennington <hp@pobox.com>
4860 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
4861 for code to manage cookies in your home directory
4863 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
4865 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
4866 to authenticate, then disconnect the client.
4868 2003-02-03 Alexander Larsson <alexl@redhat.com>
4870 * dbus/dbus-message.c (dbus_message_append_fields):
4873 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4875 * doc/dbus-specification.sgml:
4876 Update address format section.
4878 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4881 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
4882 (message_handler), (new_connection_callback), (loop_quit),
4886 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4888 * bus/driver.c: (bus_driver_handle_service_exists):
4889 Simplify the code a bit.
4891 * dbus/dbus-bus.c: (dbus_bus_service_exists):
4894 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4897 Add libdbus-daemon.la and link to it.
4899 2003-02-01 James Willcox <jwillcox@gnome.org>
4901 * bus/driver.c: (bus_driver_handle_own_service):
4902 Actually include the service reply code in the message.
4904 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4906 * bus/driver.c: (bus_driver_handle_service_exists):
4907 Don't unref the incoming message.
4909 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4911 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4913 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4915 * dbus/dbus-server.c: (dbus_server_listen):
4916 * dbus/dbus-transport.c: (_dbus_transport_open):
4917 ifdef out the calls to the debug transport and server.
4919 2003-02-02 Alexander Larsson <alexl@redhat.com>
4921 * dbus/dbus-watch.c (dbus_watch_get_flags):
4922 Add note in the docs that ERROR or HANGUP won't be returned
4923 and are assumed always on.
4925 * glib/dbus-gmain.c (add_watch):
4926 Always add IO_ERR | IO_HUP
4928 * dbus/dbus-message.h:
4929 Add semicolon after dbus_message_iter_get_string_array().
4930 Makes qt code build again
4932 2003-02-01 Anders Carlsson <andersca@codefactory.se>
4934 * bus/driver.c: (create_unique_client_name),
4935 (bus_driver_handle_hello):
4936 Don't take a name, just use a numeric id to identify
4940 * dbus/dbus-bus.c: (dbus_bus_register_client),
4941 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4943 Add new convenience functions for communicating with the bus.
4945 * dbus/dbus-message.h:
4947 * dbus/dbus-protocol.h:
4950 2003-02-01 Alexander Larsson <alexl@redhat.com>
4952 * dbus/dbus-message.c (dbus_message_append_fields):
4953 Add some more doc comments.
4955 2003-02-01 Havoc Pennington <hp@pobox.com>
4957 * dbus/dbus-break-loader.c (randomly_modify_length): change
4958 a 4-byte value in the message as if it were a length
4960 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4961 execute bit on saved files
4963 2003-02-01 Havoc Pennington <hp@pobox.com>
4965 * dbus/dbus-break-loader.c (main): new program to find messages
4966 that break the loader.
4968 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4969 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4971 * dbus/dbus-string.c (_dbus_string_set_byte): new
4973 2003-01-31 Havoc Pennington <hp@pobox.com>
4975 * dbus/dbus-message.c: refactor the test code to be more general,
4976 in preparation for writing a "randomly permute test cases to
4977 try to break the loader" program.
4979 2003-01-31 Havoc Pennington <hp@pobox.com>
4981 * doc/dbus-specification.sgml: work on the specification
4983 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4984 the protocol version of the message.
4986 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4987 no longer specifies that.
4988 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4991 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4992 "break" for DBUS_TYPE_NIL, remove @todo
4994 2003-01-31 Havoc Pennington <hp@pobox.com>
4996 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4997 just set_is_error/get_is_error as this is a commonly-used
4998 function, and write docs.
5000 2003-01-31 Anders Carlsson <andersca@codefactory.se>
5002 * dbus/dbus-address.c: (dbus_address_entry_free):
5003 Free key and value lists.
5005 * dbus/dbus-internals.c: (_dbus_type_to_string):
5006 Add the types we didn't have.
5008 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5009 (_dbus_marshal_validate_arg):
5012 * dbus/dbus-message.c: (dbus_message_set_sender):
5013 Remove todo about being able to set sender to NULL.
5015 (dbus_message_set_is_error_reply),
5016 (dbus_message_get_is_error_reply):
5017 * dbus/dbus-message.h:
5020 * dbus/dbus-protocol.h:
5021 Add error reply flag.
5023 * test/data/valid-messages/opposite-endian.message:
5024 Add NIL type to test.
5026 2003-01-31 Havoc Pennington <hp@pobox.com>
5028 * doc/dbus-specification.sgml: fully specify the header. Add
5029 flags and major protocol version, and change header/body len to
5032 * dbus/dbus-message-builder.c (append_saved_length): append length
5035 * dbus/dbus-message.c (dbus_message_create_header): change header
5036 length and body length to unsigned. Add the new fields from the
5038 (_dbus_message_loader_return_buffer): unsigned header/body len
5040 2003-01-30 Havoc Pennington <hp@pobox.com>
5042 * dbus/dbus-auth.c: rework to use only REJECTED, no
5045 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
5046 use REJECTED, suggested by Mark McLoughlin
5048 2003-01-30 Havoc Pennington <hp@pobox.com>
5050 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
5051 a better way to report errors here. e.g. "unix address lacks
5052 path" or something. also "no such file" when the path doesn't
5055 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
5057 (dbus_parse_address): add @todo about documenting address format,
5058 and allowing , and ; to be escaped
5060 2003-01-30 Anders Carlsson <andersca@codefactory.se>
5063 Add dbus-address.[ch]
5065 * dbus/dbus-address.c: (dbus_address_entry_free),
5066 (dbus_address_entries_free), (create_entry),
5067 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
5068 (dbus_parse_address), (_dbus_address_test):
5069 * dbus/dbus-address.h:
5070 New files for dealing with address parsing.
5072 * dbus/dbus-connection.c:
5073 Document timeout functions.
5075 * dbus/dbus-message.c:
5076 Document dbus_message_new_from_message.
5078 * dbus/dbus-server-debug.c:
5081 * dbus/dbus-server.c: (dbus_server_listen):
5082 Parse address and use correct server implementation.
5084 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
5085 * dbus/dbus-string.h:
5086 New function with test.
5088 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
5092 * dbus/dbus-transport-debug.c:
5095 * dbus/dbus-transport.c: (_dbus_transport_open):
5096 Parse address and use correct transport implementation.
5098 2003-01-30 Havoc Pennington <hp@pobox.com>
5100 * dbus/dbus-message.c: use message->byte_order instead of
5101 DBUS_COMPILER_BYTE_ORDER throughout.
5102 (dbus_message_create_header): pad header to align the
5103 start of the body of the message to 8-byte boundary
5105 * dbus/dbus-marshal.h: make all the demarshalers take const
5106 DBusString arguments.
5108 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
5109 validate message args here, so we don't have to do slow validation
5110 later, and so we catch bad messages as they are incoming. Also add
5111 better checks on header_len and body_len. Also fill in
5114 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
5115 implemented properly)
5116 (_dbus_string_validate_nul): new function to check all-nul
5118 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
5119 get_arg_end_pos and remove all validation
5120 (_dbus_marshal_validate_arg): actually do validation here.
5122 2003-01-29 Havoc Pennington <hp@pobox.com>
5124 * dbus/dbus-message.c (check_message_handling): fix assertion
5125 failure on set_client_serial
5127 2003-01-28 Havoc Pennington <hp@pobox.com>
5129 * dbus/dbus-server-debug.c: Add doc section comments
5131 * dbus/dbus-transport-debug.c: add doc section comments
5133 2003-01-28 Havoc Pennington <hp@redhat.com>
5135 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
5136 the reverse order from how I had it
5137 (_dbus_string_base64_encode): reverse encoding order. I was
5138 basically byteswapping everything during encoding.
5140 2003-01-28 Anders Carlsson <andersca@codefactory.se>
5142 * dbus/dbus-connection-internal.h:
5143 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
5144 (_dbus_connection_remove_timeout):
5145 Add functions for adding and removing timeouts.
5147 * dbus/dbus-message.c: (dbus_message_new_from_message):
5148 Add new function that takes a message and creates an exact
5149 copy of it, but with the refcount set to 1.
5150 (check_message_handling):
5153 * dbus/dbus-server-protected.h:
5154 * dbus/dbus-server.c: (_dbus_server_init_base),
5155 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
5156 (dbus_server_set_timeout_functions):
5157 (_dbus_server_remove_timeout):
5158 New functions so that a server can add and remove timeouts.
5160 (dbus_server_listen):
5161 Add commented out call to dbus_server_debug_new.
5163 * dbus/dbus-timeout.c: (_dbus_timeout_new):
5164 Actually set the handler, doh.
5166 * dbus/dbus-transport.c: (_dbus_transport_open):
5167 Add commented out call to dbus_transport_debug_client_new.
5170 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
5172 2003-01-28 Havoc Pennington <hp@pobox.com>
5174 * dbus/dbus-message.c (check_message_handling): function to check
5175 on the loaded message, iterates over it etc.
5177 2003-01-28 Havoc Pennington <hp@pobox.com>
5179 * test/Makefile.am (dist-hook): fix make distdir
5181 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
5183 2003-01-27 Havoc Pennington <hp@pobox.com>
5185 * dbus/dbus-mempool.c (time_for_size): replace printf with
5188 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
5189 empty lines; fix the SAVE_LENGTH stuff to be
5190 START_LENGTH/END_LENGTH so it actually works; couple other
5193 * test/Makefile.am (dist-hook): add dist-hook for .message files
5195 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
5196 can be constant or locked.
5197 (_dbus_string_free): allow freeing a const string as
5200 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
5202 * dbus/dbus-test-main.c (main): take an argument which is the
5203 directory containing test data
5205 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
5206 argument to this and load all the messages in test/data/
5207 checking that they can be loaded or not loaded as appropriate.
5209 2003-01-27 Anders Carlsson <andersca@codefactory.se>
5211 * bus/dispatch.c: (bus_dispatch_message_handler):
5212 Dispatch messages sent to services.
5214 * bus/driver.c: (bus_driver_send_service_deleted),
5215 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5216 (bus_driver_send_service_acquired):
5217 Add helper functions for sending service related messages.
5219 (bus_driver_send_welcome_message):
5220 Send HELLO_REPLY instead of WELCOME.
5222 (bus_driver_handle_list_services):
5223 Send LIST_SERVICES_REPLY instead of SERVICES.
5225 (bus_driver_handle_own_service),
5226 (bus_driver_handle_service_exists):
5227 New message handlers.
5229 (bus_driver_handle_message):
5230 Invoke new message handlers.
5232 (bus_driver_remove_connection):
5233 Don't remove any services here since that's done automatically
5234 by bus_service_remove_owner now.
5237 New function signatures.
5239 * bus/services.c: (bus_service_add_owner):
5240 Send ServiceAcquired message if we're the only primary owner.
5242 (bus_service_remove_owner):
5243 Send ServiceAcquired/ServiceLost messages.
5245 (bus_service_set_prohibit_replacement),
5246 (bus_service_get_prohibit_replacement):
5247 Functions for setting prohibit replacement.
5249 (bus_service_has_owner):
5250 New function that checks if a connection is in the owner queue of
5254 Add new function signatures.
5256 * dbus/dbus-list.c: (_dbus_list_test):
5257 Add tests for _dbus_list_remove_last and traversing the list backwards.
5260 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
5261 go any further, so return NULL then.
5263 * dbus/dbus-protocol.h:
5264 Add new messages, service flags and service replies.
5266 2003-01-26 Havoc Pennington <hp@pobox.com>
5268 * dbus/dbus-message-builder.c: implement, completely untested.
5270 * test/data/*: add data to be used in testing.
5271 ".message" files are our simple loadable text format.
5272 ".message-raw" will be binary dumps of messages.
5274 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
5276 2003-01-26 Havoc Pennington <hp@pobox.com>
5278 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
5280 * dbus/dbus-errors.c (dbus_result_to_string): add
5283 * dbus/dbus-message-builder.c: new file, will contain code to load
5284 up messages from files. Not implemented yet.
5286 2003-01-26 Havoc Pennington <hp@pobox.com>
5288 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
5289 the sender by setting to NULL
5291 2003-01-26 Havoc Pennington <hp@pobox.com>
5293 The unit tests pass, but otherwise untested. If it breaks, the
5294 tests should have been better. ;-)
5296 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
5299 * dbus/dbus-message.c: redo everything so we maintain
5300 message->header as the only copy of the various fields.
5301 This avoids the possibility of out-of-memory in some cases,
5302 for example dbus_message_lock() can't run out of memory anymore,
5303 and avoids extra copying. Figured I may as well go ahead and do
5304 this since it was busted for dbus_message_lock to not return
5305 failure on OOM, and dbus_message_write_header was totally
5306 unchecked for OOM. Also fixed some random other bugs.
5308 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
5309 that strings are nul-terminated. Also, end_pos can be equal
5310 to string length just not greater than, I think.
5311 (_dbus_marshal_set_int32): new function
5312 (_dbus_marshal_set_uint32): new function
5313 (_dbus_marshal_set_string): new function
5315 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
5316 a warning, init timeout_list to NULL
5317 (dbus_connection_send_message): don't use uninitialized variable
5320 * dbus/dbus-string.c (_dbus_string_replace_len): new function
5322 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5324 * bus/driver.c: (bus_driver_handle_hello),
5325 (bus_driver_send_welcome_message):
5328 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5330 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
5331 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5332 (dbus_connection_unref):
5333 * dbus/dbus-marshal.c: (_dbus_marshal_test):
5334 * dbus/dbus-message.c: (dbus_message_unref),
5337 (dbus_message_get_fields):
5338 Remove debugging printout.
5340 (_dbus_message_loader_return_buffer):
5341 Don't store the header string.
5343 (_dbus_message_test):
5346 2003-01-26 Richard Hult <rhult@codefactory.se>
5348 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
5349 the file descriptor list, since it can change under us.
5351 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5353 * glib/dbus-gmain.c: (dbus_connection_prepare),
5354 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
5355 (remove_watch), (dbus_connection_hookup_with_g_main):
5356 Rewrite the glib handling to use its own GSource instead of a
5357 GIOChannel so we can catch messages put in the queue while waiting
5360 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5363 * bus/connection.c: (connection_disconnect_handler),
5364 (connection_watch_callback), (bus_connection_setup):
5365 * bus/dispatch.c: (send_one_message),
5366 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
5367 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
5369 * bus/driver.c: (bus_driver_send_service_deleted),
5370 (bus_driver_send_service_created), (bus_driver_handle_hello),
5371 (bus_driver_send_welcome_message),
5372 (bus_driver_handle_list_services), (bus_driver_remove_connection),
5373 (bus_driver_handle_message):
5375 Refactor code, put the message dispatching in its own file. Use
5376 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
5379 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5381 * dbus/dbus-internals.h:
5382 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
5384 * dbus/dbus-message.c: (dbus_message_get_sender):
5385 * dbus/dbus-message.h:
5386 Implement dbus_message_get_sender.
5388 * dbus/dbus-protocol.h:
5389 Add message and service defines.
5391 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5393 * dbus/dbus-connection.c: (dbus_connection_send_message):
5394 * dbus/dbus-message-internal.h:
5395 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
5396 (dbus_message_write_header):
5397 Remove _dbus_messag_unlock and don't set the client serial on a
5398 message if one already exists.
5400 2003-01-24 Havoc Pennington <hp@pobox.com>
5402 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
5405 * bus/driver.c (bus_driver_handle_list_services): fix a leak
5408 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5410 * dbus/dbus-list.c: (alloc_link), (free_link):
5411 Use a memory pool for the links.
5413 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5415 * bus/connection.c: (bus_connection_foreach):
5417 Add new bus_connection_foreach function.
5419 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
5420 Add function that broadcasts a message to all clients.
5422 (bus_driver_send_service_created), (bus_driver_handle_hello),
5423 (bus_driver_send_welcome_message),
5424 (bus_driver_handle_list_services), (bus_driver_message_handler):
5425 Implement functions that take care of listing services, and notifying
5426 clients when new services are created.
5428 * bus/services.c: (bus_services_list):
5430 Add new function that returns an array of strings with the currently
5431 registered services.
5434 * glib/dbus-gmain.c:
5435 Update copyright year.
5437 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5439 * dbus/dbus-connection.c: (dbus_connection_send_message):
5440 Unlock the message in case it was sent earlier.
5442 (dbus_connection_send_message_with_reply_and_block):
5443 Remove the reply message from the list.
5445 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5446 Set array_len and new_pos correctly.
5448 (_dbus_marshal_test):
5449 Remove debug output.
5451 * dbus/dbus-message-internal.h:
5452 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
5453 New function that returns the reply serial.
5455 (_dbus_message_unlock):
5456 New function that unlocks a message and resets its header.
5458 (dbus_message_append_string_array),
5459 (dbus_message_get_fields_valist),
5460 (dbus_message_iter_get_field_type),
5461 (dbus_message_iter_get_string_array),
5462 (dbus_message_get_fields),
5463 (dbus_message_append_fields_valist):
5464 Handle string arrays.
5466 (dbus_message_set_sender):
5467 Make this function public since the bus daemon needs it.
5469 (decode_header_data):
5470 Set the reply serial to -1 initially.
5472 * dbus/dbus-message.h:
5473 Add dbus_message_set_sender.
5475 2003-01-24 Havoc Pennington <hp@pobox.com>
5477 * doc/dbus-specification.sgml: add some stuff
5479 2003-01-22 Havoc Pennington <hp@pobox.com>
5481 * doc/dbus-specification.sgml: Start to document the protocol.
5483 2003-01-22 Havoc Pennington <hp@pobox.com>
5485 * dbus/dbus-connection.c
5486 (dbus_connection_send_message_with_reply_and_block): add some @todo
5488 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
5490 2003-01-21 Havoc Pennington <hp@pobox.com>
5492 (patch untested because can't compile)
5494 * bus/driver.c (create_unique_client_name): make this function
5495 never recycle client names. Also, caller should initialize
5498 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
5500 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5502 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5503 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5504 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
5505 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
5506 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5507 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5508 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
5509 * dbus/dbus-marshal.h:
5510 * dbus/dbus-protocol.h:
5511 Add support for marshalling and demarshalling integer, double
5514 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5519 * bus/connection.c: (connection_disconnect_handler):
5520 Remove the connection from the bus driver's list.
5522 (connection_watch_callback): Dispatch messages.
5524 (free_connection_data): Free connection name.
5526 (bus_connection_setup): Add connection to the bus driver's list.
5527 (bus_connection_remove_owned_service):
5528 (bus_connection_set_name), (bus_connection_get_name):
5529 Add functions for setting and getting the connection's name.
5532 Add function headers.
5534 * bus/driver.c: (create_unique_client_name),
5535 (bus_driver_handle_hello_message),
5536 (bus_driver_send_welcome_message), (bus_driver_message_handler),
5537 (bus_driver_add_connection), (bus_driver_remove_connection):
5540 * bus/services.c: (bus_service_free):
5542 New file that handles communication and registreation with the bus
5545 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5547 * dbus/dbus-connection.c: (dbus_connection_send_message):
5548 Add a new client_serial parameter.
5550 (dbus_connection_send_message_with_reply):
5551 Remove a @todo since we've implemented the blocking function.
5553 (dbus_connection_send_message_with_reply_and_block):
5554 New function that sends a message and waits for a reply and
5555 then returns the reply.
5557 * dbus/dbus-connection.h:
5560 * dbus/dbus-errors.c: (dbus_result_to_string):
5561 * dbus/dbus-errors.h:
5562 Add new DBUS_RESULT.
5564 * dbus/dbus-message-internal.h:
5565 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5566 (_dbus_message_set_sender), (dbus_message_write_header),
5567 (dbus_message_new_reply), (decode_header_data),
5568 (_dbus_message_loader_return_buffer), (_dbus_message_test):
5569 * dbus/dbus-message.h:
5570 Add new functions that set the reply serial and sender.
5571 Also marshal and demarshal them correctly and add test.
5573 * dbus/dbus-protocol.h:
5574 Add new DBUS_MESSAGE_TYPE_SENDER.
5577 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5578 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5579 (dbus_connection_hookup_with_g_main):
5580 * glib/test-dbus-glib.c: (main):
5581 Rewrite to use GIOChannel and remove the GSource crack.
5583 * test/echo-client.c: (main):
5584 * test/watch.c: (check_messages):
5585 Update for changed APIs
5587 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5589 * dbus/Makefile.am: Add dbus-timeout.[cħ]
5591 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5592 Create a DBusTimeoutList.
5593 (dbus_connection_set_timeout_functions): Add new function to
5594 set timeout callbacks
5596 * dbus/dbus-connection.h: Add public DBusTimeout API.
5598 * dbus/dbus-message.c: (dbus_message_get_service):
5599 * dbus/dbus-message.h: New function.
5601 * dbus/dbus-server.c: Fix small doc typo.
5603 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5605 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5607 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5608 of the string, just as long as specified.
5610 2003-01-19 Havoc Pennington <hp@pobox.com>
5612 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5615 * dbus/dbus-server.c (dbus_server_set_max_connections)
5616 (dbus_server_get_max_connections, dbus_server_get_n_connections):
5617 keep track of current number of connections, and add API for
5618 setting a max (but haven't implemented enforcing the max yet)
5620 2003-01-18 Havoc Pennington <hp@pobox.com>
5622 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5623 reading/writing if read_watch != NULL or write_watch != NULL.
5625 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5626 the message loader code to actually load message->header and
5627 message->body into the newly-created message.
5629 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5632 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5633 (dbus_connection_get_max_message_size)
5634 (dbus_connection_set_max_live_messages_size)
5635 (dbus_connection_get_max_live_messages_size): implement some
5636 resource limitation functions
5638 * dbus/dbus-resources.c: new file implementing some of the
5639 resource limits stuff
5641 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5642 missing docs, add @todo to handle OOM etc.
5644 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5647 2003-01-18 Havoc Pennington <hp@pobox.com>
5649 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5650 connection if it hasn't been already.
5652 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5653 replace with DisconnectFunction.
5655 2003-01-18 Havoc Pennington <hp@pobox.com>
5657 Building --disable-verbose-mode --disable-asserts --disable-tests
5658 cuts the library from 112K to 45K or so
5660 * configure.in: check for varargs macro support,
5661 add --enable-verbose-mode, --enable-asserts.
5663 * dbus/dbus-internals.h (_dbus_assert): support
5665 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
5667 2003-01-18 Havoc Pennington <hp@pobox.com>
5669 * dbus/dbus-test.c: include config.h so that tests actually run
5671 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
5672 so the failure mode when that assumption fails will be plenty
5675 2003-01-18 Havoc Pennington <hp@pobox.com>
5677 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
5679 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
5682 * test/Makefile.am: don't use special variable "TESTS" for echo-*
5683 since we don't want to use those in make check
5685 2003-01-15 Havoc Pennington <hp@redhat.com>
5691 2003-01-15 Havoc Pennington <hp@redhat.com>
5693 * test/Makefile.am: fix so that test source code ends up in the
5694 distribution on make distcheck
5696 2003-01-15 Havoc Pennington <hp@redhat.com>
5702 2003-01-15 Havoc Pennington <hp@redhat.com>
5704 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
5705 fix build when --disable-tests
5707 * Makefile.am (EXTRA_DIST): put HACKING in here
5709 * HACKING: document procedure for making a tarball release.
5711 2003-01-14 Anders Carlsson <andersca@codefactory.se>
5713 * bus/connection.c: (connection_error_handler),
5714 (bus_connection_setup):
5715 * bus/main.c: (main):
5716 Make sure that the DBusConnectionData struct is NULLed
5717 out to prevent a segfault.
5719 * dbus/dbus-errors.c: (dbus_result_to_string):
5720 * dbus/dbus-errors.h:
5721 * dbus/dbus-message.c: (dbus_message_get_fields),
5722 (dbus_message_get_fields_valist), (_dbus_message_test):
5723 * dbus/dbus-message.h:
5724 Make dbus_message_get_fields return a result code so we can
5725 track invalid fields as well as oom.
5727 2003-01-11 Havoc Pennington <hp@pobox.com>
5729 * configure.in: change --enable-test/--enable-ansi action-if-given
5730 to enable_foo=$enableval instead of enable_foo=yes
5732 2003-01-08 Havoc Pennington <hp@pobox.com>
5734 * dbus/dbus-string.c (_dbus_string_align_length): new function
5736 * dbus/dbus-test-main.c: move main() for test app here
5738 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
5739 symbol to run tests, because dbus-test isn't in the main
5742 Code review nitpicks.
5744 * dbus/dbus-message.c (dbus_message_write_header): add newlines
5745 for people with narrow emacs ;-). Assert client_serial was filled
5746 in. Assert message->name != NULL.
5747 (dbus_message_append_fields): have "first_field_type" arg separate
5748 from va list, needed for C++ binding that also uses varargs IIRC
5749 and helps with type safety
5750 (dbus_message_new): add @todo about using DBusString to store
5751 service/name internally
5752 (dbus_message_new): don't leak ->service and ->name on OOM later
5754 (dbus_message_unref): free the service name
5755 (dbus_message_get_fields): same change to varargs
5756 i.e. first_field_type
5757 (_dbus_message_loader_return_buffer): assert that the message data
5758 is aligned (if not it's a bug in our code). Put in verbose griping
5759 about why we set corrupted = TRUE.
5760 (decode_header_data): add FIXME that char* is evil. Was going to
5761 add FIXME about evil locale-specific string.h strncmp, but just
5762 switched to wacky string-as-uint32 optimization. Move check for
5763 "no room for field name" above get_const_data_len() to avoid
5764 assertion failure in get_const_data_len if we have trailing 2
5765 bytes or the like. Check for service and name fields being
5766 provided twice. Don't leak service/name on error. Require field
5767 names to be aligned to 4 bytes.
5769 * dbus/dbus-marshal.c: move byte swap stuff to header
5770 (_dbus_pack_int32): uscore-prefix
5771 (_dbus_unpack_int32): uscore-prefix
5772 (_dbus_unpack_uint32): export
5773 (_dbus_demarshal_string): add @todo complaining about use of
5775 (_dbus_marshal_get_field_end_pos): add @todo about bad error
5776 handling allowing corrupt data to go unchecked
5778 2003-01-08 Havoc Pennington <hp@redhat.com>
5780 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
5781 to the select() as needed for authentication. (should be using
5782 _dbus_poll() not select, but for another day)
5784 * dbus/dbus.h: include dbus/dbus-protocol.h
5786 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5788 * dbus/Makefile.am (dbusinclude_HEADERS): Install
5791 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5793 * dbus/dbus-internals.c: (_dbus_type_to_string):
5794 New function that returns a string describing a type.
5796 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
5797 * dbus/dbus-marshal.h:
5798 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
5799 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
5800 (dbus_message_iter_get_byte_array):
5801 * dbus/dbus-message.h:
5802 Add new convenience functions for appending and getting message fields.
5803 Also add demarshalling routines for byte arrays.
5805 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5807 * dbus/dbus-connection-internal.h:
5808 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5809 (_dbus_connection_get_next_client_serial),
5810 (dbus_connection_send_message):
5811 * dbus/dbus-internals.h:
5812 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
5813 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
5814 (_dbus_marshal_uint32), (_dbus_demarshal_double),
5815 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
5816 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
5817 (_dbus_verbose_bytes), (_dbus_marshal_test):
5818 * dbus/dbus-marshal.h:
5819 * dbus/dbus-message-internal.h:
5820 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
5821 (dbus_message_write_header), (_dbus_message_lock),
5822 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
5823 (dbus_message_get_name), (dbus_message_append_int32),
5824 (dbus_message_append_uint32), (dbus_message_append_double),
5825 (dbus_message_append_string), (dbus_message_append_byte_array),
5826 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
5827 (dbus_message_iter_unref), (dbus_message_iter_has_next),
5828 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
5829 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
5830 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
5831 (decode_header_data), (_dbus_message_loader_return_buffer),
5832 (message_iter_test), (_dbus_message_test):
5833 * dbus/dbus-message.h:
5834 * dbus/dbus-protocol.h:
5835 * dbus/dbus-test.c: (main):
5837 * glib/test-dbus-glib.c: (message_handler), (main):
5838 * test/echo-client.c: (main):
5839 * test/watch.c: (check_messages):
5840 Make messages sendable and receivable for real.
5842 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5844 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5845 (_dbus_marshal_string), (_dbus_marshal_byte_array):
5846 * dbus/dbus-message.c: (dbus_message_append_int32),
5847 (dbus_message_append_uint32), (dbus_message_append_double),
5848 (dbus_message_append_string), (dbus_message_append_byte_array):
5849 Handle OOM restoration.
5851 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5853 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5854 (_dbus_demarshal_string), (_dbus_marshal_test):
5855 * dbus/dbus-marshal.h:
5856 * dbus/dbus-message.c: (dbus_message_get_name),
5857 Document these functions.
5859 (dbus_message_append_int32), (dbus_message_append_uint32),
5860 (dbus_message_append_double), (dbus_message_append_string),
5861 (dbus_message_append_byte_array):
5862 * dbus/dbus-message.h:
5863 Add functions for adding message fields of different types.
5865 * dbus/dbus-protocol.h:
5866 Add the different types.
5868 2003-01-05 Havoc Pennington <hp@pobox.com>
5870 * bus/connection.c: implement routines for handling connections,
5871 first thing is keeping a list of owned services on each connection
5872 and setting up watches etc.
5874 * bus/services.c: implement a mapping from service names to lists
5877 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
5879 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
5880 to use static mutexes for global data
5882 * dbus/dbus-connection.c (dbus_connection_set_data): add new
5883 collection of functions to set/get application-specific data
5884 on the DBusConnection.
5886 2003-01-04 Havoc Pennington <hp@pobox.com>
5888 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
5889 (_dbus_poll): new function
5891 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
5894 * bus/loop.c: initial code for the daemon main loop
5896 2003-01-04 Havoc Pennington <hp@pobox.com>
5898 * test/watch.c (error_handler): make it safe if the error handler
5899 is called multiple times (if we s/error handler/disconnect
5900 handler/ we should just guarantee it's called only once)
5902 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5903 error handler on disconnect (it's quite possible we should
5904 just change the error handler to a "disconnect handler," I'm
5905 not sure we have any other meaningful errors)
5907 * configure.in: check for getpwnam_r
5909 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5910 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5911 mechanism as in SASL spec, using socket credentials
5913 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5914 (_dbus_send_credentials_unix_socket): new function
5916 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5918 (_dbus_write): only check errno if <0 returned
5919 (_dbus_write_two): ditto
5921 2003-01-02 Anders Carlsson <andersca@codefactory.se>
5923 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5924 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5925 (_dbus_marshal_test):
5926 * dbus/dbus-marshal.h:
5927 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5928 to _dbus_marshal_utf8_string. Also fix some tests.
5930 2002-12-28 Harri Porten <porten@kde.org>
5932 * configure.in: added check for C++ compiler and a very cheesy
5933 check for the Qt integration
5935 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5937 * qt/Makefile.am: added
5939 * qt/.cvsignore: added
5941 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5942 latter, added #ifdef QT_THREAD_SUPPORT guard.
5944 * dbus/Makefile.am: added missing headers for make dist
5946 2002-12-28 Kristian Rietveld <kris@gtk.org>
5948 * dbus/Makefile.am: fixup export-symbols-regex.
5950 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5952 * acinclude.m4: Add this file and put the
5953 PKG_CHECK_MODULE macro in it.
5955 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5957 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5958 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5959 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5960 (_dbus_marshal_test):
5961 Make the demarshalling routines align the pos argument.
5962 Add string marshalling tests and fix the obvious bugs
5965 2002-12-26 Havoc Pennington <hp@pobox.com>
5967 * dbus/dbus-auth.c: fixes fixes fixes
5969 * dbus/dbus-transport-unix.c: wire up support for
5970 encoding/decoding data on the wire
5972 * dbus/dbus-auth.c (_dbus_auth_encode_data)
5973 (_dbus_auth_decode_data): append to target string
5974 instead of nuking it.
5976 2002-12-26 Havoc Pennington <hp@pobox.com>
5978 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5979 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5982 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5983 avoid swap_bytes() overhead (ignoring possible assembly stuff for
5984 now). Main point is because I wanted unpack_uint32 to implement
5986 (_dbus_verbose_bytes): new function
5988 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5990 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5991 mechanism to handle a corrupt message stream
5992 (_dbus_message_loader_new): fix preallocation to only prealloc,
5995 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5996 (_dbus_string_test): enhance tests for copy/move and fix the
5999 * dbus/dbus-transport-unix.c: Hold references in more places to
6000 avoid reentrancy problems
6002 * dbus/dbus-transport.c: ditto
6004 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
6005 leak reference count in no-message case
6007 * test/watch.c (do_mainloop): handle adding/removing watches
6008 during iteration over the watches. Also, ref the connection/server
6009 stored on a watch, so we don't try to mangle a destroyed one.
6011 * dbus/dbus-transport-unix.c (do_authentication): perform
6014 * dbus/dbus-auth.c (get_state): add a state
6015 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
6016 (_dbus_auth_get_unused_bytes): append the unused bytes
6017 to the passed in string, rather than prepend
6019 * dbus/dbus-transport.c (_dbus_transport_init_base): create
6020 the auth conversation DBusAuth
6022 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
6023 (_dbus_transport_new_for_domain_socket): when creating a
6024 transport, pass in whether it's a client-side or server-side
6025 transport so we know which DBusAuth to create
6027 2002-12-03 Havoc Pennington <hp@pobox.com>
6029 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
6030 _after_ finalizing the derived members
6031 (unix_connection_set): unref watch if we fail to add it
6033 * dbus/dbus-connection.c (dbus_connection_unref): delete the
6034 transport first, so that the connection owned by the
6035 transport will be valid as the transport finalizes.
6037 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
6038 if necessary, and remove watches from the connection.
6040 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
6042 2002-12-26 Anders Carlsson <andersca@codefactory.se>
6044 * dbus/dbus-marshal.c: (_dbus_marshal_string),
6045 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6046 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
6047 (_dbus_marshal_test):
6048 * dbus/dbus-marshal.h:
6049 Add string marshal functions and have the demarshal functions
6050 return the new position.
6052 2002-12-25 Havoc Pennington <hp@pobox.com>
6054 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
6055 it is a simple protocol that just maps directly to SASL.
6057 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
6058 initial implementation, not actually used yet.
6060 * dbus/dbus-string.c (_dbus_string_find): new function
6061 (_dbus_string_equal): new function
6062 (_dbus_string_base64_encode): new function
6063 (_dbus_string_base64_decode): new function
6065 2002-12-25 Anders Carlsson <andersca@codefactory.se>
6068 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
6069 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6070 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6071 (_dbus_demarshal_uint32), (_dbus_marshal_test):
6072 * dbus/dbus-marshal.h:
6073 * dbus/dbus-protocol.h:
6074 * dbus/dbus-test.c: (main):
6076 Add un-optimized marshalling/demarshalling routines.
6078 2002-12-25 Harri Porten <porten@kde.org>
6080 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
6082 2002-12-24 Zack Rusin <zack@kde.org>
6084 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
6085 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
6088 2002-12-24 Havoc Pennington <hp@pobox.com>
6090 * glib/dbus-gthread.c: fix include
6092 * glib/dbus-glib.h: rename DBusMessageHandler for now.
6093 I think glib API needs to change, though, as you don't
6094 want to use DBusMessageFunction, you want to use the
6095 DBusMessageHandler object. Probably
6096 dbus_connection_open_with_g_main_loop()
6097 and dbus_connection_setup_g_main_loop() or something like that
6098 (but think of better names...) that just create a connection
6099 that has watch/timeout functions etc. already set up.
6101 * dbus/dbus-connection.c
6102 (dbus_connection_send_message_with_reply): new function just to
6103 show how the message handler helps us deal with replies.
6105 * dbus/dbus-list.c (_dbus_list_remove_last): new function
6107 * dbus/dbus-string.c (_dbus_string_test): free a string that
6110 * dbus/dbus-hash.c: use memory pools for the hash entries
6111 (rebuild_table): be more paranoid about overflow, and
6112 shrink table when we can
6113 (_dbus_hash_test): reduce number of sprintfs and write
6114 valid C89. Add tests for case where we grow and then
6115 shrink the hash table.
6117 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
6119 * dbus/dbus-connection.c (dbus_connection_register_handler)
6120 (dbus_connection_unregister_handler): new functions
6122 * dbus/dbus-message.c (dbus_message_get_name): new
6124 * dbus/dbus-list.c: fix docs typo
6126 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
6127 an object representing a handler for messages.
6129 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6132 * glib/dbus-gthread.c: (dbus_gthread_init):
6133 Don't use the gdbus prefix for public functions.
6135 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6139 Add GLib checks and fixup .pc files
6143 * glib/dbus-gmain.c: (gdbus_connection_prepare),
6144 (gdbus_connection_check), (gdbus_connection_dispatch),
6145 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
6146 (dbus_connection_gsource_new):
6147 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
6148 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
6149 * glib/test-dbus-glib.c: (message_handler), (main):
6152 2002-12-15 Harri Porten <porten@kde.org>
6154 * autogen.sh: check for libtoolize before attempting to use it
6156 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
6159 * .cvsignore: ignore more stamp files
6161 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
6163 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
6164 without make install.
6166 2002-12-15 Havoc Pennington <hp@pobox.com>
6168 * dbus/dbus-threads.c: add thread stubs that a higher library
6169 layer can fill in. e.g. the GLib wrapper might fill them in with
6170 GThread stuff. We still need to use this thread API to
6171 thread-safe-ize the library.
6173 2002-12-12 Havoc Pennington <hp@pobox.com>
6175 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
6176 below new interfaces and include fewer system headers.
6178 * dbus/dbus-sysdeps.c (_dbus_read): new function
6179 (_dbus_write): new function
6180 (_dbus_write_two): new function
6181 (_dbus_connect_unix_socket): new function
6182 (_dbus_listen_unix_socket): new function
6184 * dbus/dbus-message-internal.h: change interfaces to use
6187 2002-12-11 Havoc Pennington <hp@pobox.com>
6189 * dbus/dbus-types.h: add dbus_unichar
6191 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
6193 * dbus/dbus-connection.c (dbus_connection_send_message): return
6196 * dbus/dbus-transport.c: include dbus-watch.h
6198 * dbus/dbus-connection.c: include dbus-message-internal.h
6200 * HACKING: add file with coding guidelines stuff.
6202 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
6203 handling here, for security purposes (as in vsftpd). Not actually
6204 using this class yet.
6206 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
6207 system/libc usage here, as in vsftpd, for ease of auditing (and
6208 should also simplify portability). Haven't actually moved all the
6209 system/libc usage into here yet.
6211 2002-11-25 Havoc Pennington <hp@pobox.com>
6213 * dbus/dbus-internals.c (_dbus_verbose): fix to not
6214 always print the first verbose message.
6216 2002-11-24 Havoc Pennington <hp@pobox.com>
6218 * test/echo-client.c, test/echo-server.c: cheesy test
6221 * configure.in (AC_CHECK_FUNCS): check for writev
6223 * dbus/dbus-message.c (_dbus_message_get_network_data): new
6226 * dbus/dbus-list.c (_dbus_list_foreach): new function
6228 * dbus/dbus-internals.c (_dbus_verbose): new function
6230 * dbus/dbus-server.c, dbus/dbus-server.h: public object
6231 representing a server that listens for connections.
6233 * dbus/.cvsignore: create
6235 * dbus/dbus-errors.h, dbus/dbus-errors.c:
6236 public API for reporting errors
6238 * dbus/dbus-connection.h, dbus/dbus-connection.c:
6239 public object representing a connection that
6240 sends/receives messages. (Same object used for
6241 both client and server.)
6243 * dbus/dbus-transport.h, dbus/dbus-transport.c:
6244 Basic abstraction for different kinds of stream
6245 that we might read/write messages from.
6247 2002-11-23 Havoc Pennington <hp@pobox.com>
6249 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
6252 * dbus/dbus-test.c (main): add list test, and include
6253 dbus-test.h as intended
6255 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
6256 (_dbus_hash_table_remove_int): return value indicates
6257 whether the entry existed to remove
6259 * dbus/dbus-list.c: add linked list utility class,
6262 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
6265 2002-11-23 Havoc Pennington <hp@pobox.com>
6267 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
6268 DBUS_END_DECLS to nothing, that should fix this once and for all
6270 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
6272 * dbus/dbus-message.c, dbus/dbus-hash.c:
6273 add some missing @brief
6275 2002-11-23 Havoc Pennington <hp@pobox.com>
6277 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
6278 to avoid confusing Doxygen
6280 * dbus/dbus-hash.c: @} not }@
6282 * dbus/dbus-message.c (struct DBusMessage): split out
6285 2002-11-23 Havoc Pennington <hp@pobox.com>
6287 * configure.in: pile on more warning flags if using gcc
6289 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
6290 to document static functions
6292 * configure.in: add summary to end of configure so it
6293 looks nice and attractive
6295 * dbus/dbus-hash.c: finish implementation and write unit
6298 * configure.in: add --enable-tests to enable unit tests
6300 * dbus/dbus-test.c: test program to run unit tests
6301 for all files in dbus/*, initially runs a test for
6304 * dbus/dbus-internals.h: file to hold some internal utility stuff
6306 2002-11-22 Havoc Pennington <hp@redhat.com>
6308 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
6309 "ported" away from Tcl
6311 * dbus/dbus-types.h: header for types such as dbus_bool_t
6313 2002-11-22 Havoc Pennington <hp@redhat.com>
6315 * dbus/dbus.h: fixups for doc warnings
6317 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
6319 (QUIET): make it quiet so we can see warnings
6321 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
6323 2002-11-22 Havoc Pennington <hp@redhat.com>
6325 * Makefile.am: include "Doxyfile" target in all-local
6327 * configure.in: generate the Doxyfile
6329 * Doxyfile.in: move Doxyfile here, so we can use
6330 configure to generate a Doxyfile with the right
6333 2002-11-22 Havoc Pennington <hp@redhat.com>
6335 * dbus/dbus-message.c: move inline docs into .c file
6337 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
6338 so all docs are under doc/
6339 (MAN_EXTENSION): generate man pages. Use extension
6340 ".3dbus" which matches ".3qt" on my system,
6341 I guess this is OK, I don't know really.
6342 (FILE_PATTERNS): look for .c files not .h, makes sense
6345 2002-11-22 Havoc Pennington <hp@pobox.com>
6347 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
6348 because any app can be a server, and any app can be a client,
6349 the bus is a special kind of server.
6351 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
6353 * Doxyfile : adding. Still needs Makefile rules to be generated
6354 automatically (just run "doxygen" in the toplevel dir for now to
6357 * dbus/dbus-message.h : Adding sample docs (javadoc since
6358 resembles gtk-doc a little more)
6360 * dbus/dbus.h : Adding sample docs
6362 2002-11-21 Havoc Pennington <hp@redhat.com>
6364 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
6365 so we can allow ourselves to include files directly,
6366 instead of having to use dbus.h
6368 * dbus/dbus.h: fill in
6370 * dbus/dbus-message.h: sketch out a sample header file.
6371 Include griping if you include it directly instead of
6374 * dbus/dbus-macros.h: new file with macros for extern "C",
6375 TRUE/FALSE, NULL, etc.
6377 * doc/file-boilerplate.c: put include guards in here
6379 2002-11-21 Havoc Pennington <hp@redhat.com>
6381 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
6383 * COPYING: include the GPL as well, and license code
6384 under both AFL and GPL.
6386 2002-11-21 Havoc Pennington <hp@redhat.com>
6388 * acconfig.h: get rid of this
6390 * autogen.sh (run_configure): add --no-configure option
6392 * configure.in: remove AC_ARG_PROGRAM to make
6393 autoconf complain less. add AC_PREREQ.
6394 add AC_DEFINE third arg.
6396 2002-11-21 Anders Carlsson <andersca@codefactory.se>
6399 Fix references so we can distcheck.
6401 2002-11-21 Havoc Pennington <hp@redhat.com>
6403 * Initial module creation