1 2004-03-08 Michael Meeks <michael@ximian.com>
3 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
4 bail immediately if disconnected, to avoid busy loop.
6 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7 cleanup cut/paste/inefficiency.
9 2004-03-01 David Zeuthen <david@fubar.dk>
11 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
12 bug where args were used twice. This bug resulted in a segfault
13 on a Debian/PPC system when starting the messagebus daemon. Include
14 dbus-sysdeps.h for DBUS_VA_COPY
16 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
18 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
19 appropriate va_copy implementation. From GLib
21 2004-02-24 Joe Shaw <joe@ximian.com>
23 * bus/services.c (bus_registry_acquire_service): We need to pass
24 in the service name to dbus_set_error() to prevent a crash.
26 2003-12-26 Anders Carlsson <andersca@gnome.org>
28 * AUTHORS: Reveal my True identity.
30 2003-12-17 Mikael Hallendal <micke@imendio.com>
32 * dbus/dbus-message.c: (dbus_message_append_args_valist):
33 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
35 2003-12-13 Mikael Hallendal <micke@imendio.com>
37 * doc/TODO: Added not about better error check of configuration files.
39 2003-12-02 Richard Hult <richard@imendio.com>
41 * Update AFL version to 2.0 throughout the source files to reflect
42 the update that was done a while ago.
44 2003-12-02 Richard Hult <richard@imendio.com>
46 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
47 wrote_dict_key to FALSE on the iter that the dict is appended to,
48 just like when appending other types. Fixes a bug where a dict
49 couldn't be put inside a dict.
50 (dbus_message_iter_append_dict_key): Fix typo in warning message.
51 (message_iter_test, _dbus_message_test): Add test case for dict
54 2003-12-01 David Zeuthen <david@fubar.dk>
56 * python/dbus.py: Add the actual message when calling the reciever
57 of a signal such that parameters can be inspected. Add the method
58 remove_signal_receiver
60 2003-11-26 Mikael Hallendal <micke@imendio.com>
64 * glib/*.[ch]: Made ref functions return the pointer
66 2003-11-25 Zack Rusin <zack@kde.org>
68 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
70 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
73 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
74 the Integrator and to better fit with the server,
76 2003-11-24 Zack Rusin <zack@kde.org>
78 * qt/connection.h, qt/connection.cpp: removing initDbus method since
79 the integrator handles it now
81 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
82 since QTimer wasn't really meant to be used the way DBusTimeout is
84 2003-11-24 Zack Rusin <zack@kde.org>
86 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
87 Integrator class which integrates D-BUS with the Qt event loop,
89 * qt/connection.h, qt/connection.cpp: Move all the code which
90 was dealing with D-BUS integration to the Integrator class,
91 and start using Integrator,
93 2003-11-23 Zack Rusin <zack@kde.org>
95 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
98 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
99 switching namespaces to DBusQt, reworking the class,
101 * Makefile.cvs: switching dependencies so that it matches KDE
104 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
107 2003-11-19 Havoc Pennington <hp@redhat.com>
111 * configure.in: bump version to 0.20
113 * configure.in (have_qt): add yet another place to look for qt
114 (someone hand trolltech a .pc file...)
116 2003-11-01 Havoc Pennington <hp@redhat.com>
118 * doc/dbus-specification.xml: add state machine docs on the auth
119 protocol; just a first draft, I'm sure it's wrong.
121 2003-10-28 David Zeuthen <david@fubar.dk>
123 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
124 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
126 2003-10-28 Havoc Pennington <hp@redhat.com>
128 * dbus/dbus-message.c (get_next_field): delete unused function
130 2003-10-28 Havoc Pennington <hp@redhat.com>
132 * bus/expirelist.c (do_expiration_with_current_time): detect
133 failure of the expire_func due to OOM
135 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
137 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
138 NoReply error that's now created by the bus when the service exits
140 2003-10-28 Havoc Pennington <hp@redhat.com>
142 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
143 tests for set_path, set_interface, set_member, etc.
145 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
147 * dbus/dbus-message.c (set_string_field): always just delete and
148 re-append the field; accept NULL for deletion
149 (re_align_fields_recurse): reimplement
151 2003-10-26 Havoc Pennington <hp@redhat.com>
153 * dbus/dbus-connection.c: fix docs to properly describe the
155 (_dbus_connection_notify_disconnected): remove this function;
156 we can't synchronously add the disconnected message, we have to
157 do it after we've queued any remaining real messages
158 (_dbus_connection_get_dispatch_status_unlocked): queue the
159 disconnect message only if the transport has finished queueing all
160 its real messages and is disconnected.
161 (dbus_connection_disconnect): update the dispatch status here
163 2003-10-22 Havoc Pennington <hp@redhat.com>
165 * bus/bus.c (bus_context_check_security_policy): fix up assertion
167 * bus/connection.c (bus_transaction_send_from_driver): set the
168 destination to the connection's base service
170 2003-10-20 Havoc Pennington <hp@redhat.com>
172 hmm, make check is currently not passing.
174 * doc/dbus-specification.xml: add requirement that custom type
175 names follow the same rules as interface names.
177 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
178 duplication and allow 'c' to be 'custom'; dict is now 'm' for
181 * doc/dbus-specification.xml: update type codes to match
182 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
183 CUSTOM. Add type OBJECT_PATH to the spec.
185 2003-10-17 Havoc Pennington <hp@redhat.com>
187 * bus/driver.c (create_unique_client_name): use "." as separator
188 in base service names instead of '-'
190 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
191 byte at the end of the string
193 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
194 optimization macros since string validation seems to be a slow
197 * doc/dbus-specification.xml: restrict valid
198 service/interface/member/error names. Add test suite code for the
201 * dbus/dbus-string.c: limit service/interface/member/error names
204 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
205 format arg to verbose spew
207 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
208 memory, return instead of g_error
210 * test/test-service.c (path_message_func): support emitting a
213 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
214 activation bus type if DBUS_BUS_ACTIVATION was set; default to
215 assuming the activation bus was the session bus so that services
216 started manually will still register.
217 (init_connections_unlocked): fix so that in OOM situation we get
218 the same semantics when retrying the function
220 * test/test-service.c (main): change to use path registration, to
221 test those codepaths; register with DBUS_BUS_ACTIVATION rather
222 than DBUS_BUS_SESSION
224 2003-10-16 Havoc Pennington <hp@redhat.com>
226 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
228 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
229 coverage of the tests
230 (coverage-report.txt): don't move the .da and .bbg files around
232 2003-10-16 Havoc Pennington <hp@redhat.com>
234 * bus/bus.c (struct BusContext): remove struct field I didn't mean
237 2003-10-16 Havoc Pennington <hp@redhat.com>
239 * bus/connection.c (bus_pending_reply_expired): either cancel or
241 (bus_connections_check_reply): use unlink, not remove_link, as we
242 don't want to free the link; fixes double free mess
244 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
245 where no reply was received
247 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
250 * bus/signals.c (match_rule_matches): add special cases for the
251 bus driver, so you can match on sender/destination for it.
253 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
254 DBUS_PRINT_BACKTRACE is set
256 * dbus/dbus-internals.c: add pid to assertion failure messages
258 * dbus/dbus-connection.c: add message type code to the debug spew
260 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
261 sender=foo not service=foo
263 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
264 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
265 DBUS_ACTIVATION_ADDRESS instead
267 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
268 DBUS_SYSTEM_BUS_ADDRESS if appropriate
270 * bus/bus.c (bus_context_new): handle OOM copying bus type into
273 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
274 (dbus_message_iter_get_object_path_array): new function (half
275 finished, disabled for the moment)
277 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
278 DBUS_MESSAGE_TYPE_ERROR
280 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
281 avoid redirecting stderr to /dev/null
282 (babysit): close stdin if not doing the "exit_with_session" thing
284 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
285 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
286 stdout/stdin, so things don't get confused
288 * bus/system.conf.in: fix to allow replies, I modified .conf
289 instead of .conf.in again.
291 2003-10-14 David Zeuthen <david@fubar.dk>
293 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
294 argtype to arg_type when raising unknown arg type exception.
295 Changed type list to reflect the changes in dbus-protocol.h so
296 the bindings actually work.
298 2003-10-14 Havoc Pennington <hp@redhat.com>
300 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
301 to have a bug keeping it from outputting the .da files sometimes
302 (string_get_string): don't append garbage nul bytes to the string.
304 2003-10-15 Seth Nickell <seth@gnome.org>
306 * python/Makefile.am:
308 Include dbus_h_wrapper.h in the dist tarball.
310 2003-10-14 Havoc Pennington <hp@redhat.com>
312 * bus/bus.c (bus_context_check_security_policy): revamp this to
313 work more sanely with new policy-based requested reply setup
315 * bus/connection.c (bus_transaction_send_from_driver): set bus
316 driver messages as no reply
318 * bus/policy.c (bus_client_policy_check_can_receive): handle a
319 requested_reply attribute on allow/deny rules
321 * bus/system.conf: add <allow requested_reply="true"/>
323 * bus/driver.c (bus_driver_handle_message): fix check for replies
324 sent to the bus driver, which was backward. How did this ever work
325 at all though? I think I'm missing something.
327 * dbus/dbus-message.c (decode_header_data): require error and
328 method return messages to have a reply serial field to be valid
329 (_dbus_message_loader_queue_messages): break up this function;
330 validate that reply serial and plain serial are nonzero;
331 clean up the OOM/error handling.
332 (get_uint_field): don't return -1 from this
333 (dbus_message_create_header): fix signed/unsigned bug
335 * bus/connection.c (bus_connections_expect_reply): save serial of
336 the incoming message, not reply serial
338 2003-10-14 Havoc Pennington <hp@redhat.com>
340 * bus/connection.c: implement pending reply tracking using
343 * bus/bus.c (bus_context_check_security_policy): verify that a
344 reply is pending in order to allow a reply to be sent. Deny
345 messages of unknown type.
347 * bus/dbus-daemon-1.1.in: update to mention new resource limits
349 * bus/bus.c (bus_context_get_max_replies_per_connection): new
350 (bus_context_get_reply_timeout): new
352 2003-10-13 Seth Nickell <seth@gnome.org>
354 * python/Makefile.am:
356 Pass "make distcheck": remove a couple files from DIST_FILES
357 that weren't included in the final version.
359 2003-10-12 Havoc Pennington <hp@pobox.com>
361 Added test code that 1) starts an actual bus daemon and 2) uses
362 DBusGProxy; fixed bugs that were revealed by the test. Lots
363 more testing possible, but this is the basic framework.
365 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
366 empty proxy lists from the proxy list hash
368 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
369 couple of return_if_fail checks
371 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
372 to allocate, so everything is cleared to NULL as it should be.
374 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
375 source as data to dbus_connection_set_timeout_functions() as the
376 timeout functions expected
378 * test/glib/run-test.sh: add a little script to start up a message
379 bus and run tests using it
381 * tools/dbus-launch.1: updates
383 * tools/dbus-launch.c (main): add --config-file option
385 * tools/dbus-launch.c (main): remove confusing else if (runprog)
386 that could never be reached.
388 * dbus/dbus-message.c (dbus_message_new_method_return)
389 (dbus_message_new_error, dbus_message_new_signal): set the
390 no-reply-expected flag on all these. Redundant, but may
391 as well be consistent.
393 2003-10-11 Havoc Pennington <hp@pobox.com>
395 * test/decode-gcov.c (function_solve_graph): make broken block
396 graph a nonfatal error since it seems to be broken. Need to debug
399 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
400 can't just check type > INVALID < LAST anymore
402 * dbus/dbus-message.c (dbus_message_get_signature): new function
403 (dbus_message_has_signature): new function
404 (struct DBusMessage): add signature field (right now it isn't sent
405 over the wire, just generated on the fly)
406 (dbus_message_copy): copy the signature, and init strings to
407 proper length to avoid some reallocs
408 (dbus_message_iter_init_array_iterator): return void, since it
410 (dbus_message_iter_init_dict_iterator): return void since it can't fail
411 (_dbus_message_loader_queue_messages): add silly temporary hack to
412 fill in message->signature on load
414 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
415 characters, so they are relatively human-readable.
417 2003-10-11 Havoc Pennington <hp@pobox.com>
419 * dbus/dbus-message.c (_dbus_message_test): add more test
420 coverage, but #if 0 for now since they uncover a bug
421 not fixed yet; I think in re_align_field_recurse()
422 (re_align_field_recurse): add FIXME about broken assertion
424 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
426 * bus/connection.c: share a couple code bits with expirelist.c
428 * bus/expirelist.h, bus/expirelist.c: implement a generic
429 expire-items-after-N-seconds facility, was going to share between
430 expiring connections and replies, decided not to use for expiring
433 * COPYING: include AFL 2.0 (still need to change all the file headers)
435 2003-10-09 Havoc Pennington <hp@redhat.com>
437 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
438 gcc 3.3. Not that we do anything about it yet.
440 * bus/signals.c (bus_match_rule_parse): impose max length on the
443 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
445 2003-10-09 Havoc Pennington <hp@redhat.com>
447 Make matching rules theoretically work (add parser).
449 * bus/bus.c (bus_context_check_security_policy): fix up to handle
450 the case where destination is explicitly specified as bus driver
451 and someone else is eavesdropping.
453 * bus/policy.c (bus_client_policy_check_can_receive): fix up
454 definition of eavesdropping and assertion
456 * tools/dbus-send.c (main): use dbus_message_type_from_string
458 * bus/signals.c (bus_match_rule_parse): implement
460 * dbus/dbus-message.c (dbus_message_type_from_string): new
462 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
464 2003-10-02 Havoc Pennington <hp@pobox.com>
466 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
467 dbus_gproxy_oneway_call
469 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
470 (dbus_server_setup_with_g_main): fix to allow calling them more
471 than once on the same args
472 (dbus_bus_get_with_g_main): new function
474 2003-10-02 Havoc Pennington <hp@redhat.com>
476 * doc/dbus-tutorial.xml: write some stuff
478 2003-09-29 Havoc Pennington <hp@pobox.com>
480 * configure.in: split checks for Doxygen from XML docs, check for
483 * doc/Makefile.am: XML-ify all the docs, and add a blank
486 2003-09-29 Havoc Pennington <hp@pobox.com>
488 * Merge dbus-object-names branch. To see the entire patch
489 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
491 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
493 2003-09-28 Havoc Pennington <hp@pobox.com>
495 * HACKING: update to reflect new server
497 2003-09-26 Seth Nickell <seth@gnome.org>
500 * python/examples/example-signals.py:
502 Start implementing some notions of signals. The API
503 is really terrible, but they sort of work (with the
504 exception of being able to filter by service, and to
505 transmit signals *as* a particular service). Need to
506 figure out how to make messages come from the service
509 * python/dbus_bindings.pyx.in:
511 Removed duplicate message_handler callbacks.
513 2003-09-25 Havoc Pennington <hp@redhat.com>
515 * bus/session.conf.in: fix my mess
517 2003-09-25 Havoc Pennington <hp@pobox.com>
519 * bus/session.conf.in: fix security policy, reported by Seth Nickell
521 2003-09-25 Seth Nickell <seth@gnome.org>
523 * python/examples/example-service.py:
525 Johan notices complete wrong code in example-service, but
526 completely wrong in a way that works exactly the same (!).
527 Johan is confused, how could this possibly work? Example
528 code fails to serve purpose of making things clear.
531 2003-09-25 Mark McLoughlin <mark@skynet.ie>
533 * doc/dbus-specification.sgml: don't require header fields
534 to be 4-byte aligned and specify that fields should be
535 distinguished from padding by the fact that zero is not
538 * doc/TODO: remove re-alignment item and add item to doc
539 the OBJECT_PATH type.
541 * dbus/dbus-message.c:
542 (HeaderField): rename the original member to value_offset
543 and introduce a name_offset member to keep track of where
544 the field actually begins.
545 (adjust_field_offsets): remove.
546 (append_int_field), (append_uint_field),
547 (append_string_field): don't align the start of the header
548 field to a 4-byte boundary.
549 (get_next_field): impl finding the next marhsalled field
551 (re_align_field_recurse): impl re-aligning a number of
552 already marshalled fields.
553 (delete_field): impl deleting a field of any type and
554 re-aligning any following fields.
555 (delete_int_or_uint_field), (delete_string_field): remove.
556 (set_int_field), (set_uint_field): no need to re-check
557 that we have the correct type for the field.
558 (set_string_field): ditto and impl re-aligning any
560 (decode_header_data): update to take into account that
561 the fields aren't 4-byte aligned any more and the new
562 way to distinguish padding from header fields. Also,
563 don't exit when there is too much header padding.
564 (process_test_subdir): print the directory.
565 (_dbus_message_test): add test to make sure a following
566 field is re-aligned correctly after field deletion.
568 * dbus/dbus-string.[ch]:
569 (_dbus_string_insert_bytes): rename from insert_byte and
570 allow the insert of multiple bytes.
571 (_dbus_string_test): test inserting multiple bytes.
573 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
574 warning note to docs about having to re-align any
575 marshalled values following the string.
577 * dbus/dbus-message-builder.c:
578 (append_string_field), (_dbus_message_data_load):
579 don't align the header field.
581 * dbus/dbus-auth.c: (process_test_subdir): print the
584 * test/break-loader.c: (randomly_add_one_byte): upd. for
587 * test/data/invalid-messages/bad-header-field-alignment.message:
590 * test/data/valid-messages/unknown-header-field.message: shove
591 a dict in the unknown field.
593 2003-09-25 Seth Nickell <seth@gnome.org>
596 * python/dbus_bindings.pyx.in:
598 Handle return values.
600 * python/examples/example-client.py:
601 * python/examples/example-service.py:
603 Pass back return values from the service to the client.
605 2003-09-24 Seth Nickell <seth@gnome.org>
609 Connect Object methods (when you are sharing an object) up... pass
610 in a list of methods to be shared. Sharing all the methods just
611 worked out too weird. You can now create nice Services over the
614 * python/dbus_bindings.pyx.in:
616 Keep references to user_data tuples passed into C functions so
617 Python doesn't garbage collect on us.
619 Implement MethodReturn and Error subclasses of Message for creating
620 DBusMessage's of those types.
622 * python/examples/example-client.py:
623 * python/examples/example-service.py:
625 Simple example code showing both how create DBus services and objects,
628 2003-09-23 Havoc Pennington <hp@pobox.com>
630 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
632 2003-09-23 Havoc Pennington <hp@redhat.com>
634 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
635 (dbus_gproxy_disconnect_signal): implement
636 (dbus_gproxy_manager_remove_signal_match): implement
637 (dbus_gproxy_manager_add_signal_match): implement
638 (dbus_gproxy_oneway_call): implement
640 2003-09-23 Havoc Pennington <hp@pobox.com>
642 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
643 subclass. This means dropping the transparent thread safety of the
644 proxy; you now need a separate proxy per-thread, or your own
645 locking on the proxy. Probably right anyway.
646 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
648 2003-09-22 Havoc Pennington <hp@redhat.com>
650 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
652 2003-09-21 Seth Nickell <seth@gnome.org>
654 First checkin of the Python bindings.
657 * python/Makefile.am:
658 * python/dbus_bindings.pyx.in:
659 * python/dbus_h_wrapper.h:
661 Pieces for Pyrex to operate on, building a dbus_bindings.so
662 python module for low-level access to the DBus APIs.
666 High-level Python module for accessing DBus objects.
671 Build stuff for the python bindings.
675 Extra macro needed for finding the Python C header files.
677 2003-09-21 Havoc Pennington <hp@pobox.com>
679 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
680 implementing the proxy manager, didn't get very far.
682 * dbus/dbus-bus.c (dbus_bus_add_match): new
683 (dbus_bus_remove_match): new
685 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
686 path_name argument; adjust the other not-yet-implemented
687 gproxy constructors to be what I think they should be.
689 2003-09-21 Havoc Pennington <hp@pobox.com>
691 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
692 by default for message bus connections.
694 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
695 exit_on_disconnect flag is set and we process the disconnected
697 (dbus_connection_set_exit_on_disconnect): new function
699 2003-09-21 Havoc Pennington <hp@pobox.com>
701 Get matching rules mostly working in the bus; only actually
702 parsing the rule text remains. However, the client side of
703 "signal connections" hasn't been started, this patch is only the
706 * dbus/dispatch.c: fix for the matching rules changes
708 * bus/driver.c (bus_driver_handle_remove_match)
709 (bus_driver_handle_add_match): send an ack reply from these
712 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
713 arguments, reported by Seth Nickell
715 * bus/config-parser.c (append_rule_from_element): support
716 eavesdrop=true|false attribute on policies so match rules
717 can be prevented from snooping on the system bus.
719 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
720 and "destination" in attribute names; fix some docs bugs;
721 add eavesdrop=true|false attribute
723 * bus/driver.c (bus_driver_handle_add_match)
724 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
727 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
728 rid of broadcast service concept, signals are just always broadcast
730 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
731 mostly implement matching rules stuff (currently only exposed as signal
734 2003-09-21 Mark McLoughlin <mark@skynet.ie>
736 * doc/dbus-specification.sgml: Change the header field name
737 to be an enum and update the rest of the spec to reference
738 the fields using the conventinal name.
740 * dbus/dbus-protocol.h: update to reflect the spec.
742 * doc/TODO: add item to remove the 4 byte alignment requirement.
744 * dbus/dbus-message.c: Remove the code to generalise the
745 header/body length and serial number header fields as named
746 header fields so we can reference field names using the
748 (append_int_field), (append_uint_field), (append_string_field):
749 Append the field name as a byte rather than four chars.
750 (delete_int_or_uint_field), (delete_string_field): reflect the
751 fact that the field name and typecode now occupy 4 bytes instead
753 (decode_string_field), (decode_header_data): update to reflect
754 protocol changes and move the field specific encoding from
755 decode_string_field() back into decode_header_data().
757 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
758 Add utility to aid debugging.
760 * dbus/dbus-message-builder.c:
761 (append_string_field), (_dbus_message_data_load): Update to
762 reflect protocol changes; Change the FIELD_NAME directive
763 to HEADER_FIELD and allow it to take the field's conventional
764 name rather than the actual value.
766 * test/data/*/*.message: Update to use HEADER_FIELD instead
767 of FIELD_NAME; Always align the header on an 8 byte boundary
768 *before* updating the header length.
770 2003-09-15 Havoc Pennington <hp@pobox.com>
772 * dbus/dbus-pending-call.c: add the get/set object data
773 boilerplate as for DBusConnection, etc. Use generic object data
774 for the notify callback.
776 * glib/dbus-gparser.c (parse_node): parse child nodes
778 * tools/dbus-viewer.c: more hacking on the dbus-viewer
780 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
781 contain functions shared between the convenience lib and the
784 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
785 -export-symbols-regex to the GLib library
787 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
788 fix the locking in here, and add a default handler for
789 Introspect() that just returns sub-nodes.
791 2003-09-14 Havoc Pennington <hp@pobox.com>
793 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
794 rather than gfoo consistent
796 * glib/dbus-gproxy.h: delete for now, move contents to
797 dbus-glib.h, because the include files don't work right since we
798 aren't in the dbus/ subdir.
800 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
801 (dbus_gproxy_end_call): finish
802 (dbus_gproxy_begin_call): finish
804 * glib/dbus-gmain.c (dbus_set_g_error): new
806 * glib/dbus-gobject.c (handle_introspect): include information
807 about child nodes in the introspection
809 * dbus/dbus-connection.c (dbus_connection_list_registered): new
810 function to help in implementation of introspection
812 * dbus/dbus-object-tree.c
813 (_dbus_object_tree_list_registered_and_unlock): new function
815 2003-09-12 Havoc Pennington <hp@pobox.com>
817 * glib/dbus-gidl.h: add common base class for all the foo_info
820 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
823 * test/Makefile.am: try test srcdir -ef . in addition to test
824 srcdir = ., one of them should work (yeah lame)
826 * glib/Makefile.am: build the "idl" parser stuff as a convenience
829 * glib/dbus-gparser.h: make description_load routines return
830 NodeInfo* not Parser*
832 * Makefile.am (SUBDIRS): build test dir after all library dirs
834 * configure.in: add GTK+ detection
836 2003-09-07 Havoc Pennington <hp@pobox.com>
838 * Make Doxygen contented.
840 2003-09-07 Havoc Pennington <hp@pobox.com>
842 * doc/dbus-specification.sgml: more updates
844 2003-09-06 Havoc Pennington <hp@pobox.com>
846 * doc/dbus-specification.sgml: partial updates
848 * bus/dbus-daemon-1.1.in: fix the config file docs for the
849 zillionth time; hopefully I edited the right file this time.
851 * bus/config-parser.c (append_rule_from_element): support
852 send_type, send_path, receive_type, receive_path
854 * bus/policy.c: add message type and path to the list of things
855 that can be "firewalled"
857 2003-09-06 Havoc Pennington <hp@pobox.com>
859 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
860 (dbus_connection_register_object_path): make this not handle
861 messages to paths below the given path
863 2003-09-03 Havoc Pennington <hp@pobox.com>
865 * test/glib/Makefile.am: add this with random glib-linked test
868 * glib/Makefile.am: remove the random test programs from here,
869 leave only the unit tests
871 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
872 uscore/javacaps conversion, and fix
873 (get_object_property, set_object_property): change to .NET
874 convention for mapping props to methods, set_FooBar/get_FooBar,
875 since one language has such a convention we may as well copy it.
876 Plus real methods in either getFooBar or get_foo_bar style won't
877 collide with this convention.
879 2003-09-01 Havoc Pennington <hp@pobox.com>
881 * glib/dbus-gparser.c: implement
883 * glib/dbus-gobject.c: start implementing skeletons support
885 * configure.in: when disabling checks/assert, also define
886 G_DISABLE_ASSERT and G_DISABLE_CHECKS
888 2003-09-01 Havoc Pennington <hp@pobox.com>
890 * glib/Makefile.am: rearrange a bunch of files and get "make
891 check" framework set up
893 2003-08-31 Havoc Pennington <hp@pobox.com>
895 * fix build with --disable-tests
897 2003-08-30 Havoc Pennington <hp@pobox.com>
899 * dbus/dbus-connection.c: purge DBusMessageHandler
901 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
902 use callbacks everywhere
904 2003-08-30 Havoc Pennington <hp@pobox.com>
906 * test/data/valid-config-files/system.d/test.conf: change to
907 root for the user so warnings don't get printed
909 * dbus/dbus-message.c: add dbus_message_get_path,
910 dbus_message_set_path
912 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
913 dispatching to a path
915 * dbus/dbus-string.c (_dbus_string_validate_path): add
917 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
918 (_dbus_marshal_object_path): implement
920 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
921 to contain the path to the target object
922 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
923 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
925 2003-08-30 Havoc Pennington <hp@pobox.com>
927 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
929 2003-08-29 Havoc Pennington <hp@pobox.com>
931 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
933 (struct DBusObjectSubtree): shrink this
934 a lot, since we may have a lot of them
935 (_dbus_object_tree_free_all_unlocked): implement
936 (_dbus_object_tree_dispatch_and_unlock): implement
938 2003-08-29 Havoc Pennington <hp@pobox.com>
940 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
942 2003-08-28 Havoc Pennington <hp@pobox.com>
946 * dbus/dbus-connection.c: port to no ObjectID, create a
947 DBusObjectTree, rename ObjectTree to ObjectPath in public API
949 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
950 everything except UnregisterFunction and MessageFunction
952 * dbus/dbus-marshal.c: port away from DBusObjectID,
953 add DBUS_TYPE_OBJECT_PATH
955 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
956 dbus/dbus-objectid.[hc]: remove these, we are moving to
957 path-based object IDs
959 2003-08-25 Havoc Pennington <hp@pobox.com>
961 Just noticed that dbus_message_test is hosed, I wonder when I
962 broke that. I thought make check was passing earlier...
964 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
965 container tree, will replace most of dbus-object-registry
967 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
970 2003-08-19 Havoc Pennington <hp@pobox.com>
972 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
973 (dbus_message_is_error): fix this function
975 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
978 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
979 reflect clarified man page
980 (bus_client_policy_check_can_send): ditto
982 * bus/session.conf.in: fixup
984 * bus/system.conf.in: fixup
986 2003-08-18 Havoc Pennington <hp@redhat.com>
988 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
990 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
991 dumb bug created earlier (wrong order of args to
992 decode_header_data())
994 * tools/dbus-send.c: port
996 * tools/dbus-print-message.c (print_message): port
998 * test/data/*messages: port all messages over
1000 * dbus/dbus-message-builder.c: support including
1003 * bus/driver.c: port over
1005 * bus/dispatch.c: port over to new stuff
1007 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1008 rename disconnect signal to "Disconnected"
1010 2003-08-17 Havoc Pennington <hp@pobox.com>
1012 This doesn't compile yet, but syncing up so I can hack on it from
1013 work. What are branches for if not broken code? ;-)
1015 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
1016 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
1017 DBUS_HEADER_FIELD_ERROR_NAME
1019 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
1020 for the interface+member pairs
1021 (string_hash): change to use g_str_hash algorithm
1022 (find_direct_function, find_string_function): refactor these to
1025 * dbus/dbus-message.c: port all of this over to support
1026 interface/member fields instead of name field
1028 * dbus/dbus-object-registry.c: port over
1030 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
1031 from _dbus_string_validate_name
1033 * bus/dbus-daemon-1.1: change file format for the
1034 <deny>/<allow> stuff to match new message naming scheme
1036 * bus/policy.c: port over
1038 * bus/config-parser.c: parse new format
1040 2003-08-16 Havoc Pennington <hp@pobox.com>
1042 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
1045 * glib/dbus-gproxy.c: some hacking
1047 2003-08-15 Havoc Pennington <hp@redhat.com>
1049 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
1051 * dbus/dbus-connection.c
1052 (dbus_connection_send_with_reply_and_block): factor out internals;
1053 change to convert any error replies to DBusError instead of
1054 returning them as a message
1056 2003-08-15 Havoc Pennington <hp@pobox.com>
1058 * dbus/dbus-connection.c,
1059 dbus/dbus-pending-call.c: Finish the pending call stuff
1061 2003-08-14 Havoc Pennington <hp@redhat.com>
1063 * dbus/dbus-pending-call.c: start on new object that will replace
1064 DBusMessageHandler and ReplyHandlerData for tracking outstanding
1067 * dbus/dbus-gproxy.c: start on proxy object used to communicate
1068 with remote interfaces
1070 * dbus/dbus-gidl.c: do the boring boilerplate in here
1072 2003-08-12 Havoc Pennington <hp@pobox.com>
1074 * bus/dispatch.c (bus_dispatch): make this return proper
1075 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
1077 * dbus/dbus-errors.c (dbus_set_error): use
1078 _dbus_string_append_printf_valist
1080 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
1081 (_dbus_string_append_printf): new
1083 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
1086 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
1087 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
1088 message is unhandled.
1090 2003-08-11 Havoc Pennington <hp@pobox.com>
1092 * bus/test.c (client_disconnect_handler): change to return
1093 HANDLED (would have been REMOVE_MESSAGE)
1095 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
1096 HANDLED/NOT_YET_HANDLED instead of
1097 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
1100 2003-08-10 Havoc Pennington <hp@pobox.com>
1102 * tools/dbus-send.c (main): add --type argument, for now
1103 supporting only method_call and signal types.
1105 * tools/dbus-print-message.c: print message type
1107 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1108 init connection->objects
1110 * doc/dbus-specification.sgml: fix sgml
1112 * bus/*.c: port over to object-instance API changes
1114 * test/test-service.c: ditto
1116 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
1117 name, we will have to fix up the rest of the code to also handle
1119 (dbus_message_new): generic message-creation call
1120 (set_string_field): allow appending name field
1122 2003-08-06 Havoc Pennington <hp@pobox.com>
1124 * dbus/dbus-object-registry.c: implement signal connection
1127 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
1129 * dbus/dbus-internals.c (_dbus_memdup): new function
1131 2003-08-02 Havoc Pennington <hp@pobox.com>
1133 * dbus/dbus-message.c (dbus_message_get_no_reply)
1134 (dbus_message_set_no_reply): add these and remove
1135 set_is_error/get_is_error
1137 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
1138 remove the ERROR flag, since there's now an ERROR type
1140 2003-08-01 Havoc Pennington <hp@pobox.com>
1142 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
1145 * dbus/dbus-message.c (dbus_message_get_type): new function
1147 * doc/dbus-specification.sgml: add "type" byte to messages
1149 2003-08-01 Havoc Pennington <hp@pobox.com>
1151 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
1152 a message type enum to distinguish kinds of message
1153 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
1154 that need not be replied to
1156 2003-08-01 Havoc Pennington <hp@pobox.com>
1158 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
1159 (unpack_8_octets): fix no-64-bit-int bug
1161 * dbus/dbus-object-registry.c (validate_id): validate the
1162 connection ID bits, not just the instance ID.
1164 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
1165 the connection-global 33 bits of the object ID
1167 * dbus/dbus-object-registry.c (info_from_entry): fill in
1168 object ID in the new way
1170 * dbus/dbus-objectid.h: rather than high/low bits, specifically
1171 define server/client/instance bits.
1173 2003-07-30 Havoc Pennington <hp@pobox.com>
1175 * dbus/dbus-connection.c (dbus_connection_register_object): fix
1178 2003-07-13 Havoc Pennington <hp@pobox.com>
1180 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
1181 fields to DBusObjectVTable and DBusObjectInfo
1183 2003-07-12 Havoc Pennington <hp@pobox.com>
1185 * dbus/dbus-object-registry.c: implement unit test,
1186 fix bugs discovered in process
1188 * dbus/dbus-connection.c: remove handler_table and
1189 register_handler(), add DBusObjectRegistry usage
1191 * dbus/dbus-objectid.c (dbus_object_id_is_null)
1192 (dbus_object_id_set_null): new functions
1194 2003-07-08 Havoc Pennington <hp@pobox.com>
1196 * dbus/dbus-object.c: implement some of this
1198 * dbus/dbus-object-registry.c
1199 (_dbus_object_registry_add_and_unlock): fill in the object_id out
1201 (_dbus_object_registry_new): handle OOM
1203 2003-07-08 Havoc Pennington <hp@pobox.com>
1205 * dbus/dbus-object.h: sketch out an API for registering objects
1206 with a connection, that allows us to use as little as 24 bytes
1207 per object and lets application code represent an object in
1208 any conceivable way.
1210 * dbus/dbus-object-registry.c: implement the hard bits of the
1211 DBusConnection aspect of object API. Not yet wired up.
1213 2003-07-06 Havoc Pennington <hp@pobox.com>
1215 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
1216 (_dbus_marshal_object_id): new
1217 (_dbus_demarshal_object_id): new
1218 (_dbus_marshal_get_arg_end_pos): support object ID type, and
1219 consolidate identical switch cases. Don't conditionalize handling
1220 of DBUS_TYPE_UINT64, need to handle the type always.
1221 (_dbus_marshal_validate_arg): consolidate identical cases, and
1222 handle DBUS_TYPE_OBJECT_ID
1224 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
1226 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
1228 2003-09-28 Havoc Pennington <hp@pobox.com>
1232 2003-09-28 Havoc Pennington <hp@pobox.com>
1234 * doc/Makefile.am (dbus-specification.html): testing a funky hack
1235 to work with Debian db2html
1237 2003-09-28 Havoc Pennington <hp@pobox.com>
1239 * configure.in: 0.13
1241 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
1242 stylesheet-images for benefit of Debian
1244 Change back to using filesystem-linked sockets for the system
1245 bus, so only root can create the default system bus address.
1247 * bus/system.conf.in: change to use
1248 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1250 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
1253 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1254 here, and AC_DEFINE DBUS_SYSTEM_PATH
1256 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1259 * doc/busconfig.dtd:
1262 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1264 * doc/dbus-specification.sgml:
1265 Add activation reply values.
1267 2003-08-05 Havoc Pennington <hp@redhat.com>
1269 * configure.in: 0.12
1271 2003-08-05 Anders Carlsson <andersca@codefactory.se>
1273 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
1274 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
1275 (add_watch), (remove_watch), (create_source):
1276 Refcount fds, fixes some reentrancy issues.
1278 2003-07-30 Havoc Pennington <hp@redhat.com>
1280 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
1281 bus address to be abstract if we have abstract sockets
1285 2003-07-28 Havoc Pennington <hp@redhat.com>
1287 * bus/messagebus.in: fix to avoid processname/servicename
1288 confusion, from Michael Kearey
1289 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
1291 2003-07-23 Havoc Pennington <hp@pobox.com>
1293 * dbus/dbus-message.c (dbus_message_iter_get_named):
1294 fix from Andy Hanton to remove broken "+1"
1296 2003-07-16 Havoc Pennington <hp@pobox.com>
1298 * tools/dbus-launch.c (babysit): close stdout/stderr in the
1299 babysitter process, as suggested by Thomas Leonard, so
1300 an "eval `dbus-launch --exit-with-session`" will actually
1303 2003-07-16 Havoc Pennington <hp@pobox.com>
1305 * configure.in: print out EXPANDED_* variables in the summary at
1306 the end; clean up the code that computes EXPANDED_ variables and
1307 get the ones using exec_prefix right. Should make things work
1308 when you build without --prefix
1310 2003-06-29 Havoc Pennington <hp@pobox.com>
1312 * mono/Test.cs (class Test): fire up a main loop and run it
1314 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
1315 done once, the app has to do it
1317 2003-06-26 Havoc Pennington <hp@pobox.com>
1319 * mono/Connection.cs: set up connection with the glib main loop
1321 2003-07-01 Havoc Pennington <hp@redhat.com>
1323 * doc/dbus-specification.sgml: clarify the format of a type code,
1324 change suggested by Jim Blandy
1326 2003-06-29 Miloslav Trmac <mitr@volny.cz>
1329 * tools/Makefile.am: Don't assume srcdir == builddir.
1331 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
1332 the allocated block.
1333 (_dbus_memory_test): New function.
1334 * dbus/dbus-test.h: Add _dbus_memory_test ().
1335 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
1337 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
1339 (dbus_message_new): Remove obsolete @todo.
1341 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
1342 (_dbus_marshal_set_uint64): Fix comment.
1344 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
1345 hardcode FIELD_REPLY_SERIAL.
1347 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
1348 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
1350 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
1351 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
1353 2003-06-24 Havoc Pennington <hp@pobox.com>
1355 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
1357 2003-06-23 Anders Carlsson <andersca@codefactory.se>
1363 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
1364 * gcj/org/.cvsignore:
1365 * gcj/org/Makefile.am:
1366 * gcj/org/freedesktop/.cvsignore:
1367 * gcj/org/freedesktop/Makefile.am:
1368 * gcj/org/freedesktop/dbus/.cvsignore:
1369 * gcj/org/freedesktop/dbus/Makefile.am:
1370 * gcj/org/freedesktop/dbus/Message.java: (Message),
1372 * gcj/org/freedesktop/dbus/natMessage.cc:
1373 Fix the build system.
1375 2003-06-22 Havoc Pennington <hp@pobox.com>
1377 * mono/Connection.cs: add more bindings
1379 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
1382 2003-06-22 Havoc Pennington <hp@pobox.com>
1384 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
1385 Start wrapping more stuff.
1387 2003-06-22 Havoc Pennington <hp@pobox.com>
1389 * mono/Message.cs: implement Message.Wrap() that ensures we only
1390 have a single C# wrapper per DBusMessage, assuming it works which
1391 it probably doesn't.
1393 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
1394 (dbus_message_free_data_slot): new
1395 (dbus_message_set_data): new
1396 (dbus_message_get_data): new
1398 2003-06-22 Havoc Pennington <hp@pobox.com>
1400 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
1401 (_dbus_data_slot_allocator_alloc): rework these to keep a
1402 reference count on each slot and automatically manage a global
1403 slot ID variable passed in by address
1405 * bus/bus.c: convert to new dataslot API
1407 * dbus/dbus-bus.c: convert to new dataslot API
1409 * dbus/dbus-connection.c: convert to new dataslot API
1411 * dbus/dbus-server.c: convert to new dataslot API
1413 * glib/dbus-gmain.c: ditto
1417 * bus/connection.c: ditto
1419 2003-06-22 Anders Carlsson <andersca@codefactory.se>
1421 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
1422 after the gcj checks so that the correct configuration tags
1423 will be added to libtool.
1425 * dbus-glib-1.pc.in: No need to specify any includes since
1426 dbus-1.pc.in has those.
1428 2003-06-22 Havoc Pennington <hp@pobox.com>
1430 * mono/*, gcj/*, configure.in, Makefile.am:
1431 Check in makefiles and subdirs for mono and gcj bindings.
1432 Neither binding actually exists, just trying to get through
1433 all the build and other boring bits.
1435 2003-06-21 Philip Blundell <philb@gnu.org>
1437 * tools/dbus-monitor.1: Updated.
1439 * tools/dbus-send.1: Likewise.
1441 2003-06-20 Anders Carlsson <andersca@codefactory.se>
1443 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
1444 for hangup and error after checking read so we won't discard
1445 pending data if both hangup and read are set.
1447 2003-06-19 Philip Blundell <philb@gnu.org>
1449 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
1451 * tools/dbus-send.c: Accept both --system and --session.
1453 * tools/dbus-monitor.c: Same here.
1455 2003-06-19 Anders Carlsson <andersca@codefactory.se>
1457 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
1458 from C++ (Patch by Miloslav Trmac).
1460 2003-06-15 Joe Shaw <joe@assbarn.com>
1462 * configure.in: Check for socklen_t.
1464 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1466 * test/test-segfault.c: Add #include <sys/time.h>
1468 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1469 dbus-launch needs it.
1471 2003-06-09 Havoc Pennington <hp@redhat.com>
1473 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1474 SUN_LEN, it breaks abstract socket usage
1476 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1479 2003-06-04 Havoc Pennington <hp@pobox.com>
1481 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1482 using unix:abstract=/foo, and when listening in a tmpdir
1483 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1485 * dbus/dbus-transport.c (_dbus_transport_open): support
1488 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1489 support abstract sockets
1491 * dbus/dbus-transport-unix.c
1492 (_dbus_transport_new_for_domain_socket): support abstract sockets
1494 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1495 toggle as an argument, implement abstract namespace support
1496 (_dbus_listen_unix_socket): ditto
1498 * configure.in: add --enable-abstract-sockets and implement
1499 a configure check for autodetection of the right value.
1501 2003-06-01 Havoc Pennington <hp@pobox.com>
1503 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1504 in /tmp (though on Linux this will end up being useless,
1505 when we add abstract namespace support)
1507 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1510 2003-05-28 Colin Walters <walters@verbum.org>
1512 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1514 2003-05-18 Anders Carlsson <andersca@codefactory.se>
1516 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1518 2003-05-17 Colin Walters <walters@gnu.org>
1520 * tools/dbus-send.c: Don't exit with an error code if --help was
1521 passed. Default to using the session bus instead of the system
1524 * tools/dbus-launch.c: Ditto.
1526 * tools/dbus-monitor.c: Ditto.
1528 * tools/dbus-send.1: Update with new arguments.
1530 * tools/dbus-launch.c: Emit code to export variables. New
1531 arguments -s and -c to specify shell syntax, and a bit of code to
1532 autodetect syntax. Also, allow specifying a program to run.
1534 * tools/dbus-launch.1: Update with new arguments.
1536 * tools/dbus-send.1: Ditto.
1538 * tools/dbus-monitor.1: Ditto.
1540 2003-05-17 Havoc Pennington <hp@pobox.com>
1542 * bus/config-parser.c (merge_included): merge in policies from
1543 child configuration file.
1545 * bus/policy.c (bus_policy_merge): function to merge two policies
1548 2003-05-16 Havoc Pennington <hp@redhat.com>
1550 * dbus/dbus-connection.c: disable verbose lock spew
1552 * tools/dbus-send.c: add --print-reply command line option
1554 * tools/dbus-print-message.h (print_message): new util function
1555 shared by dbus-send and dbus-monitor
1557 * tools/dbus-monitor.c (handler_func): exit on disconnect
1559 * dbus/dbus-transport-unix.c (do_reading): if the transport is
1560 disconnected, don't try to use the read_watch
1562 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1563 so we can find this bug more easily
1565 2003-05-16 Havoc Pennington <hp@redhat.com>
1567 * bus/policy.c (free_rule_list_func): avoid a crash when passed
1568 NULL as DBusHashTable is annoyingly likely to do.
1570 2003-05-16 Colin Walters <walters@verbum.org>
1572 * tools/dbus-monitor.c: Add --session argument and usage()
1575 * tools/dbus-monitor.1: Update with new --session arg.
1577 * bus/Makefile.am (install-data-hook): Create
1578 $(libdir)/dbus-1.0/services so that the session bus is happy.
1580 2003-05-15 Havoc Pennington <hp@redhat.com>
1582 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
1583 on non-x86. ifdef's are evil.
1585 2003-05-15 Havoc Pennington <hp@redhat.com>
1587 * configure.in: 0.11
1591 * bus/Makefile.am (initddir): apparently we are supposed to put
1592 init scripts in /etc/rc.d/init.d not /etc/init.d
1594 * bus/Makefile.am: remove the "you must --enable-tests to make
1595 check" as it broke distcheck
1597 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
1599 2003-05-13 James Willcox <jwillcox@gnome.org>
1602 * bus/activation.c: (bus_activation_service_created),
1603 (bus_activation_activate_service):
1604 * bus/driver.c: (bus_driver_send_service_deleted),
1605 (bus_driver_send_service_created), (bus_driver_send_service_lost),
1606 (bus_driver_send_service_acquired),
1607 (bus_driver_send_welcome_message),
1608 (bus_driver_handle_list_services):
1609 * bus/session.conf.in:
1610 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
1611 (dbus_bus_service_exists), (dbus_bus_activate_service):
1614 Add some convenience API which lets you activate a service, and did a
1615 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
1616 and dbus_message_get_args()
1618 2003-05-11 Havoc Pennington <hp@pobox.com>
1620 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
1621 calling _dbus_marshal_validate_arg() for every byte in a byte
1624 * dbus/dbus-message-handler.c: use atomic reference counting to
1625 reduce number of locks slightly; the global lock in here sucks
1627 * dbus/dbus-connection.c
1628 (_dbus_connection_update_dispatch_status_and_unlock): variant of
1629 update_dispatch_status that can be called with lock held; then use
1630 in a couple places to reduce locking/unlocking
1631 (dbus_connection_send): hold the lock over the whole function
1632 instead of acquiring it twice.
1634 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
1636 * bus/connection.c (bus_connections_setup_connection): fix access
1637 to already-freed memory.
1639 * dbus/dbus-connection.c: keep a little cache of linked list
1640 nodes, to avoid using the global linked list alloc lock in the
1641 normal send-message case. Instead we just use the connection lock
1642 that we already have to take.
1644 * dbus/dbus-list.c (_dbus_list_find_last): new function
1646 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
1647 change to use a struct for the atomic type; fix docs,
1648 they return value before increment, not after increment.
1650 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
1651 (_dbus_string_append_8_aligned): new functions to try to
1652 microoptimize this operation.
1653 (reallocate_for_length): break this out of set_length(), to
1654 improve profile info, and also so we can consider inlining the
1657 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
1658 strings with some preallocation, cuts down on our calls to realloc
1659 a fair bit. Though if we can get the "move entire string to empty
1660 string" optimization below to kick in here, it would be better.
1662 * dbus/dbus-string.c (_dbus_string_move): just call
1663 _dbus_string_move_len
1664 (_dbus_string_move_len): add a special case for moving
1665 an entire string into an empty string; we can just
1666 swap the string data instead of doing any reallocs.
1667 (_dbus_string_init_preallocated): new function
1669 2003-05-11 Havoc Pennington <hp@pobox.com>
1671 Write a "test-profile" that does echo client-server with threads;
1672 profile reveals lock contention, memcpy/realloc of buffers, and
1673 UTF-8 validation as hot spots. 20% of lock contention eliminated
1674 with dbus_atomic_inc/dec implementation on x86. Much remaining
1675 contention is global mempool locks for GList and DBusList.
1677 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
1680 * dbus/dbus-connection.c (struct DBusConnection): use
1681 dbus_atomic_t for the reference count
1683 * dbus/dbus-message.c (struct DBusMessage): declare
1684 dbus_atomic_t values as volatile
1686 * configure.in: code to detect ability to use atomic integer
1687 operations in assembly, from GLib patch
1689 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
1690 time, tired of it being wrong in threads and forked processes
1692 * glib/test-profile.c: a little program to bounce messages back
1693 and forth between threads and eat CPU
1695 * dbus/dbus-connection.c: add debug spew macros for debugging
1696 thread locks; include config.h at top; fix deadlock in
1697 dbus_connection_flush()
1699 2003-05-08 Havoc Pennington <hp@pobox.com>
1701 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
1702 data from getting written, and there wasn't a good reason to
1705 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
1706 dbus_verbose lines in test coverage
1707 (main): add list of functions sorted by # of untested blocks
1708 to the coverage report
1710 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
1712 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
1714 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
1715 extend test coverage
1717 * test/data/auth/cancel.auth-script: test canceling an
1720 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
1721 aren't used. in CVS history if we end up needing them.
1723 2003-05-04 Havoc Pennington <hp@pobox.com>
1725 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
1728 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
1729 function, which assumed length was in # of strings, not bytes
1731 * dbus/dbus-message.c (_dbus_message_test): add tests for some
1734 * dbus/dbus-connection.c
1735 (_dbus_connection_queue_received_message): disable function for
1736 now, we are only using it in test mode
1738 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1739 remove a mistaken FIXME
1741 2003-05-04 Havoc Pennington <hp@pobox.com>
1743 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
1744 unlock mutex on successful return, patch from Anders Gustafsson
1746 2003-05-04 Havoc Pennington <hp@pobox.com>
1748 * dbus-glib-1.pc.in (Requires): fix dependencies, from
1751 2003-05-04 Havoc Pennington <hp@pobox.com>
1753 * tools/dbus-launch.c: implement
1755 * bus/main.c (main), bus/bus.c (bus_context_new):
1756 implement --print-pid and --fork
1758 2003-05-03 Havoc Pennington <hp@redhat.com>
1760 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
1761 the address had no value, and add to test suite. Fix and
1762 regression test from Miloslav Trmac
1764 2003-05-03 Havoc Pennington <hp@pobox.com>
1766 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
1767 watch is invalid when handled
1769 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
1770 dbus-launch utility to launch the bus from a shell script. Didn't
1771 actually implement dbus-launch yet, it's just a placeholder still.
1773 2003-05-03 Havoc Pennington <hp@pobox.com>
1775 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
1776 daemon; also documents daemon config file, so replaces
1777 doc/config-file.txt. Corrected some stuff from config-file.txt in
1778 the process of moving it.
1780 2003-05-03 Havoc Pennington <hp@pobox.com>
1782 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
1785 2003-05-03 Colin Walters <walters@verbum.org>
1787 * dbus/dbus-sysdeps.c (fill_user_info): Test against
1788 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
1790 * Makefile.am: Update to use new .pc versioning scheme.
1792 2003-05-02 Havoc Pennington <hp@redhat.com>
1794 * bus/system.conf.in: allow send/receive to/from message bus
1797 2003-04-30 Havoc Pennington <hp@redhat.com>
1799 * configure.in: print a note when building with unit tests and
1802 2003-04-30 Havoc Pennington <hp@redhat.com>
1804 * Makefile.am: add a check-local that complains if you didn't
1805 configure with --enable-tests
1807 2003-04-29 Havoc Pennington <hp@redhat.com>
1809 * glib/dbus-gmain.c: docs cleanups
1811 * dbus/dbus-types.h: add docs on int64 types
1813 * dbus/dbus-memory.c: fix docs to avoid putting private API in
1814 public API docs section
1816 2003-04-29 Havoc Pennington <hp@redhat.com>
1818 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1819 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1820 parallel install API version, not with the D-BUS package version.
1822 * HACKING: move some of README over here
1824 * README: updates, and document API/ABI policy
1826 * configure.in: reindentation
1828 2003-04-29 Havoc Pennington <hp@redhat.com>
1830 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1831 to use this library" to be sure people have the right
1834 2003-04-28 Havoc Pennington <hp@redhat.com>
1836 * configure.in: add --enable-docs which by default is auto yes if
1837 doxygen and db2html found, no otherwise; but can be forced on/off
1839 * doc/Makefile.am: conditionalize whether to build docs on
1842 2003-04-28 Havoc Pennington <hp@redhat.com>
1844 * configure.in: 0.10
1848 * bus/system.conf.in: add <includedir>system.d</includedir>
1850 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1851 username was provided but not uid
1853 * bus/config-parser.c (struct BusConfigParser): keep track of
1854 whether the parser is toplevel or was included; change some
1855 of the error handling if it's included.
1857 2003-04-27 Havoc Pennington <hp@pobox.com>
1861 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1862 report correct status if we finish processing authentication
1863 inside this function.
1865 * bus/activation.c (try_send_activation_failure): use
1866 bus_transaction_send_error_reply
1868 * bus/connection.c (bus_connection_get_groups): return an error
1869 explaining the problem
1871 * bus/bus.c (bus_context_check_security_policy): implement
1872 restriction here that inactive connections can only send the
1873 hello message. Also, allow bus driver to send anything to
1876 * bus/connection.c (bus_connection_complete): create the
1877 BusClientPolicy here instead of on-demand.
1878 (bus_connection_get_policy): don't return an error
1880 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1881 sender field in message being replied to
1883 * bus/bus.c (bus_context_check_security_policy): fix silly typo
1884 causing it to return FALSE always
1886 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1887 we checked sender rather than destination
1889 2003-04-25 Havoc Pennington <hp@redhat.com>
1891 test suite is slightly hosed at the moment, will fix soon
1893 * bus/connection.c (bus_connections_expire_incomplete): fix to
1894 properly disable the timeout when required
1895 (bus_connection_set_name): check whether we can remove incomplete
1896 connections timeout after we complete each connection.
1898 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1899 probably still broken.
1901 * bus/services.c (bus_registry_acquire_service): implement max
1902 number of services owned, and honor allow/deny rules on which
1903 services a connection can own.
1905 * bus/connection.c (bus_connection_get_policy): report errors here
1907 * bus/activation.c: implement limit on number of pending
1910 2003-04-25 Havoc Pennington <hp@redhat.com>
1912 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1913 where we used >= 0 instead of != DBUS_UID_UNSET.
1915 2003-04-25 Havoc Pennington <hp@redhat.com>
1917 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
1918 were toggled without add/remove, fix from Anders Gustafsson
1920 2003-04-24 Havoc Pennington <hp@redhat.com>
1922 * test/data/valid-config-files/basic.conf: add <limit> tags to
1925 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
1926 <limit> tag in configuration file.
1928 2003-04-24 Havoc Pennington <hp@redhat.com>
1930 * bus/dispatch.c: somehow missed some name_is
1932 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
1933 (_dbus_timeout_set_interval): new
1935 * bus/connection.c (bus_connections_setup_connection): record time
1936 when each connection is first set up, and expire them after the
1937 auth timeout passes.
1939 2003-04-24 Havoc Pennington <hp@redhat.com>
1941 * dbus/dbus-message.c (dbus_message_name_is): rename
1942 (dbus_message_service_is): rename
1943 (dbus_message_sender_is): rename
1944 (dbus_message_get_service): rename
1946 2003-04-24 Havoc Pennington <hp@redhat.com>
1948 * configure.in: add --enable-checks
1950 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
1952 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
1953 to use thread locks.
1954 (_dbus_connection_handler_destroyed_locked): move some private
1955 functions into proper docs group
1957 * dbus/dbus-internals.h: add _dbus_return_if_fail,
1958 _dbus_return_val_if_fail
1960 Throughout: use dbus_return_if_fail
1962 2003-04-23 James Willcox <jwillcox@gnome.org>
1965 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
1966 (dbus_connection_setup_with_g_main),
1967 (dbus_server_setup_with_g_main):
1968 * glib/test-dbus-glib.c: (main):
1969 * glib/test-thread-client.c: (main):
1970 * glib/test-thread-server.c: (new_connection_callback), (main):
1971 * tools/dbus-monitor.c: (main):
1973 Added a GMainContext argument to dbus_connection_setup_with_g_main()
1974 and dbus_server_setup_with_g_main().
1976 2003-04-20 Havoc Pennington <hp@pobox.com>
1978 * doc/dbus-specification.sgml: document the restrictions on
1979 message and service names
1981 2003-04-22 Havoc Pennington <hp@redhat.com>
1983 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
1984 support, and do some code cleanups to share more code and
1985 speed up array marshal/demarshal.
1987 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
1989 * configure.in: generate dbus-arch-deps.h
1991 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
1994 2003-04-22 Havoc Pennington <hp@redhat.com>
1996 * test/data/valid-messages/opposite-endian.message: fix test
1997 to use proper type for rply field
1999 * test/data/invalid-messages: add tests for below validation
2001 * dbus/dbus-message.c (decode_header_data): validate field types,
2002 and validate that named fields are valid names
2003 (decode_name_field): consider messages in the
2004 org.freedesktop.Local. namespace to be invalid.
2006 * dbus/dbus-string.c (_dbus_string_validate_name): new
2008 2003-04-19 Havoc Pennington <hp@pobox.com>
2010 * bus/driver.c (bus_driver_handle_hello): check limits and
2011 return an error if they are exceeded.
2013 * bus/connection.c: maintain separate lists of active and inactive
2014 connections, and a count of each. Maintain count of completed
2015 connections per user. Implement code to check connection limits.
2017 * dbus/dbus-list.c (_dbus_list_unlink): export
2019 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
2020 number of bytes in the message queue for a connection
2022 2003-04-18 Havoc Pennington <hp@pobox.com>
2024 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
2026 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
2029 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
2030 on realloc be sure to update the pointer in the keyring
2032 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
2033 offset to avoid writing to unallocated memory
2035 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
2036 try the next mechanism, so we properly handle OOM
2038 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
2040 (_dbus_keyring_new): fix OOM bug
2041 (_dbus_keyring_new_homedir): always set error; impose a maximum
2042 number of keys we'll load from the file, mostly to speed up the
2043 test suite and make its OOM checks more useful, but also for
2046 * dbus/dbus-auth.c (process_error_server): reject authentication
2047 if we get an error from the client
2048 (process_cancel): on cancel, send REJECTED, per the spec
2049 (process_error_client): send CANCEL if we get an error from the
2052 2003-04-18 Havoc Pennington <hp@pobox.com>
2054 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
2057 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
2060 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
2061 about DBUS_TEST_HOMEDIR once
2063 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
2066 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
2067 config file so we test the right thing
2069 Throughout: assorted docs improvements
2071 2003-04-18 Havoc Pennington <hp@pobox.com>
2073 * glib/dbus-gmain.c: adapt to watch changes
2075 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
2077 * dbus/dbus-server.h: remove dbus_server_handle_watch
2079 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
2081 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
2082 like DBusTimeout, so we don't need dbus_connection_handle_watch
2085 2003-04-17 Havoc Pennington <hp@redhat.com>
2087 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
2088 database usage so it all goes via the DBusUserDatabase cache.
2090 2003-04-17 Havoc Pennington <hp@redhat.com>
2092 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
2093 there was an OOM watch we skipped, we always return TRUE so we
2094 iterate again to have a look at it again. Fixes test suite hang.
2095 Code rearrangement also lets us lose some memset and only iterate
2096 over callbacks once.
2098 * bus/driver.c (bus_driver_handle_message): sense of test for
2101 2003-04-16 Havoc Pennington <hp@pobox.com>
2103 * doc/dbus-specification.sgml: make spec say serials are unsigned
2105 * dbus/dbus-message.h: change message serials to unsigned
2107 * dbus/dbus-connection.c: adapt to message serials being unsigned
2109 2003-04-15 Havoc Pennington <hp@pobox.com>
2111 * bus/bus.c: create and keep around a shared DBusUserDatabase
2114 * bus/connection.c (bus_connection_get_groups): don't cache
2115 groups for user in the connection object, since user database
2116 object now does that.
2118 2003-04-16 Havoc Pennington <hp@redhat.com>
2120 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
2121 list of size counters
2122 (_dbus_message_loader_putback_message_link): put back a popped link
2124 * dbus/dbus-connection.c
2125 (dbus_connection_set_max_live_messages_size): rename
2127 (dbus_connection_get_outgoing_size): get size of outgoing
2129 (_dbus_connection_set_connection_counter): remove this cruft
2131 2003-04-14 Havoc Pennington <hp@redhat.com>
2133 * dbus/dbus-userdb.c: user database abstraction, mostly to get
2134 caching, but at some point we might want to be able to use a
2137 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
2138 SHA1 conf file to test the sha1 auth mechanism, since the regular
2139 test always uses EXTERNAL when available.
2142 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
2143 add conf file that requires use of sha1 auth
2145 2003-04-13 Havoc Pennington <hp@pobox.com>
2147 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
2148 from Philip Blundell to send messages and monitor them.
2150 2003-04-13 Havoc Pennington <hp@pobox.com>
2152 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
2155 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
2158 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2159 fix to only recover unused bytes if we're already authenticated
2160 (_dbus_transport_get_is_authenticated): fix to still mark us
2161 authenticated if there are unused bytes.
2163 * bus/dispatch.c: implement security policy checking
2165 * bus/connection.c (bus_transaction_send_from_driver): new
2167 * bus/bus.c (bus_context_check_security_policy): new
2169 * bus/dispatch.c (send_service_nonexistent_error): delete this,
2170 now we just set the DBusError and it gets converted to an error
2173 * bus/connection.c (allow_user_function): enable code using actual
2174 data from the config file
2176 * bus/policy.c (list_allows_user): handle wildcard rules for
2177 user/group connection perms
2179 2003-04-13 Havoc Pennington <hp@pobox.com>
2181 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
2183 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
2185 * bus/policy.c (bus_policy_append_mandatory_rule)
2186 (bus_policy_append_default_rule, bus_policy_append_user_rule)
2187 (bus_policy_append_group_rule): new functions
2189 2003-04-12 Havoc Pennington <hp@pobox.com>
2191 * bus/config-parser.c (bus_config_parser_new): fix a memleak
2193 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
2194 the pid/gid/uid, just for paranoia.
2196 * test/break-loader.c (randomly_do_n_things): find a byte
2197 containing a type code, and randomly change it to a different
2200 2003-04-12 Havoc Pennington <hp@pobox.com>
2202 * bus/policy.h: change BusPolicy to be the thing from the config
2203 file, and rename old BusPolicy to BusClientPolicy
2205 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
2206 match change in how policy works
2208 * dbus/dbus-internals.h: mark assert_not_reached as
2209 __attribute((noreturn))__
2211 2003-04-11 Havoc Pennington <hp@redhat.com>
2213 * doc/dbus-specification.sgml: fix a spot with the wrong name for
2214 the broadcast service. Use boolean return for ServiceExists.
2216 2003-04-11 Havoc Pennington <hp@redhat.com>
2218 * configure.in: add another directory to look for qt in.
2220 2003-04-11 Havoc Pennington <hp@redhat.com>
2222 * AUTHORS: add Colin Walters
2224 2003-04-11 Havoc Pennington <hp@redhat.com>
2230 2003-04-11 Havoc Pennington <hp@redhat.com>
2232 * bus/messagebus.in: remove pid file when stopping the
2233 message bus, since the bus won't have privileges to remove it
2236 2003-04-11 Havoc Pennington <hp@redhat.com>
2238 * bus/bus.c (bus_context_new): move credentials change after
2241 2003-04-11 Havoc Pennington <hp@pobox.com>
2243 * test/decode-gcov.c: add "below average functions" to the
2244 coverage report, and change how some of the code works.
2246 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
2247 not in the coverage stats.
2249 * test/test-service.c (main): use _dbus_verbose not fprintf in a
2250 couple places so running the test suite doesn't result in megaspam.
2252 2003-04-11 Havoc Pennington <hp@pobox.com>
2254 * bus/dispatch.c (check_existent_service_activation): accept a no
2255 memory error in a place we didn't before
2257 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
2258 in case the first one failed," since the test suite is less
2261 2003-04-10 Havoc Pennington <hp@pobox.com>
2263 * bus/dispatch.c (check_segfault_service_activation): add test
2264 for launching an executable that just crashes.
2266 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
2267 don't leave a million cores. We'll see how portable this is.
2269 2003-04-10 Havoc Pennington <hp@pobox.com>
2271 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
2272 the possible parent failures before we fork, so that we don't
2273 fail to create a babysitter after creating the child.
2275 * bus/activation.c (bus_activation_activate_service): kill child
2276 if we don't successfully complete the activation.
2278 2003-04-10 Havoc Pennington <hp@redhat.com>
2280 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
2281 the connection if it's disconnected
2283 * bus/activation.c (bus_activation_service_created): use new
2284 transaction features to roll back removal of pending activation if
2285 we don't successfully create the service after all. Don't remove
2286 pending activation if the function fails.
2288 * dbus/dbus-list.c (_dbus_list_insert_before_link)
2289 (_dbus_list_insert_after_link): new code to facilitate
2292 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
2293 new functionality, so we can preallocate the ability to insert
2296 * bus/connection.c (bus_transaction_add_cancel_hook): new function
2297 allowing us to put custom hooks in a transaction to be used for
2298 cancelling said transaction
2300 * doc/dbus-specification.sgml: add some discussion of secondary
2301 service owners, and disallow zero-length service names
2303 * bus/services.c (bus_registry_acquire_service): new function,
2304 splits out part of bus_driver_handle_acquire_service() and fixes
2305 a bug where we didn't remove the service doing the acquiring
2306 from the secondary queue if we failed to remove the current owner
2307 from the front of the queue.
2309 2003-04-10 Alexander Larsson <alexl@redhat.com>
2311 * doc/dbus-specification.sgml:
2312 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
2314 2003-04-10 Alexander Larsson <alexl@redhat.com>
2319 Added files to cvsignore
2321 * dbus/dbus-message.h:
2322 * dbus/dbus-message.c: (dbus_message_iter_get_named):
2323 Make get_named() take two out argument and return a boolean.
2324 (dbus_message_iter_get_args_valist):
2325 Update usage of get_named().
2326 (dbus_message_iter_append_byte):
2328 (dbus_message_iter_append_named)
2330 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
2333 2003-04-10 Alexander Larsson <alexl@redhat.com>
2335 * dbus/dbus-marshal.[ch]:
2336 Add array_type_pos argument to _dbus_marshal_validate_arg.
2337 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
2339 * dbus/dbus-message.[ch]:
2340 Multi-dimensional arrays have full type specification in the
2341 outermost array. Iter code re-arranged to handle this.
2342 Added some more iter tests.
2344 * doc/dbus-specification.sgml:
2347 Update new array encoding description.
2348 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
2350 * test/data/invalid-messages/array-with-mixed-types.message:
2351 * test/data/valid-messages/array-of-array-of-uint32.message:
2352 Change to the new array format.
2354 * test/data/invalid-messages/too-short-dict.message:
2357 * test/data/valid-messages/recursive-types.message:
2358 Fix up and extend test.
2360 2003-04-10 Havoc Pennington <hp@pobox.com>
2362 * bus/dispatch.c: lots of fixes
2364 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
2365 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
2366 that was crack, broke the test service.
2368 * dbus/dbus-transport.c (_dbus_transport_open): fix error
2369 handling to avoid piling up errors if we get a failure on the
2372 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
2373 pid in assertion failures.
2375 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
2376 to some fixed size of file descriptor array. Don't return TRUE
2377 anytime a timeout exists, that led to lots of busy loop silliness
2380 2003-04-09 Havoc Pennington <hp@redhat.com>
2382 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
2383 I'd checked this in earlier but hadn't.
2385 2003-04-09 Havoc Pennington <hp@redhat.com>
2387 * bus/dispatch.c (bus_dispatch_test): get a bit further through
2388 the activation test (man this is getting old!)
2390 2003-04-09 Havoc Pennington <hp@redhat.com>
2392 * test/test-utils.c: use dispatch status function to fix this up
2394 * bus/connection.c (connection_watch_callback): don't dispatch
2396 (connection_timeout_callback): don't dispatch from here
2397 (bus_connections_setup_connection): set the dispatch status function
2398 (bus_connection_disconnected): unset it
2400 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
2401 used to add a connection to be dispatched
2402 (_dbus_loop_iterate): do the dispatching at the end of each
2405 * dbus/dbus-connection.c
2406 (dbus_connection_set_dispatch_status_function): new function
2407 allowing us to fix up main loop usage
2408 (_dbus_connection_last_unref): free all the various function
2410 (dbus_connection_dispatch): call the DispatchStatusFunction
2411 whenever this function returns
2412 (dbus_connection_handle_watch): call DispatchStatusFunction
2413 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
2414 (reply_handler_timeout): call DispatchStatusFunction
2415 (dbus_connection_flush): call DispatchStatusFunction
2417 2003-04-09 Havoc Pennington <hp@redhat.com>
2419 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
2422 * bus/dispatch.c (check_service_activated): fix bug in test
2424 * dbus/dbus-mainloop.c (check_timeout): fix this up
2426 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
2427 verbose output so we can sort out output from different processes,
2428 e.g. in the activation case.
2430 2003-04-08 Colin Walters <walters@gnu.org>
2432 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
2434 (bus_context_new): Set it.
2435 (bus_context_unref): Use it to delete the pid file.
2437 2003-04-08 Havoc Pennington <hp@redhat.com>
2439 * test/data/invalid-messages/array-with-mixed-types.message:
2440 regression test that fails for the moment
2442 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
2443 tests for convenience
2445 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
2446 array of nil, it broke things.
2448 * test/data/invalid-messages/array-of-nil.message: regression test
2450 * test/data/valid-messages/array-of-array-of-uint32.message:
2451 happened to write this so added it to suite
2453 2003-04-08 Havoc Pennington <hp@redhat.com>
2455 * bus/driver.c (bus_driver_handle_acquire_service): init
2456 retval/reply before checking name
2458 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
2459 recursion depth argument
2461 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
2462 in the public struct for future extension
2464 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2467 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2470 * doc/dbus-specification.sgml: fix typo
2472 2003-04-08 Alexander Larsson <alexl@redhat.com>
2474 Implemented recursive types, named types and new-style iters
2477 * glib/test-thread-client.c: (thread_func):
2478 * glib/test-thread-server.c: (handle_test_message):
2479 * test/test-service.c: (handle_echo):
2488 * dbus/dbus-internals.c: (_dbus_type_to_string):
2489 Update for new types.
2491 * dbus/dbus-marshal.[ch]:
2492 Implement recursive types and the new marshalling format.
2493 Remove hardcoded dict marshalling.
2494 Marshal named types.
2496 * dbus/dbus-message-builder.c:
2498 Remove references to old types
2500 * dbus/dbus-message.[ch]:
2501 New non-refcounted iter API that supports recursive iters.
2502 Use iters for appending, including support for recursive
2504 Add byte and named type support.
2505 Update everything to new marshalling formats.
2506 Add tests for new API.
2508 * dbus/dbus-protocol.h:
2509 Remove old array types.
2510 Add types: BYTE, ARRAY, DICT, NAMED
2512 * dbus/dbus-string.c:
2513 * dbus/dbus-sysdeps.c:
2514 Make parse_double locale safe.
2516 * dbus/dbus-test-main.c:
2522 * doc/dbus-specification.sgml:
2525 * test/data/incomplete-messages/missing-body.message:
2526 * test/data/invalid-messages/bad-boolean.message:
2527 * test/data/invalid-messages/bad-boolean-array.message:
2528 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2529 * test/data/invalid-messages/boolean-has-no-value.message-raw:
2530 * test/data/invalid-messages/too-short-dict.message:
2531 * test/data/valid-messages/dict-simple.message:
2532 * test/data/valid-messages/dict.message:
2533 * test/data/valid-messages/emptiness.message:
2534 * test/data/valid-messages/lots-of-arguments.message:
2535 * test/data/valid-messages/no-padding.message:
2536 * test/data/valid-messages/recursive-types.message:
2537 Add missing NAME fields
2538 Fix up dicts & arrays
2540 * test/data/invalid-messages/dict-with-nil-value.message:
2541 Removed, this is not invalid anymore.
2543 * test/data/valid-messages/recursive-types.message:
2544 Add new test for deeply recursive types.
2546 2003-04-07 Havoc Pennington <hp@pobox.com>
2548 * bus/driver.c (bus_driver_handle_acquire_service): return an
2549 error if you try to acquire a service that starts with ':'
2551 2003-04-07 Havoc Pennington <hp@redhat.com>
2553 * doc/dbus-specification.sgml: require that base service names
2554 start with ':' and that the base service is created/deleted
2555 as first and last things a connection does on the bus
2557 * bus/dispatch.c (check_existent_service_activation): lots more
2558 work on the activation test; it doesn't fully pass yet...
2560 * test/test-service.c (main): fix so we don't memleak the
2561 connection to the message bus
2562 (filter_func): accept a message asking us to exit
2564 2003-04-06 Havoc Pennington <hp@pobox.com>
2566 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2569 * configure.in: fixes to Qt detection from Colin Walters
2571 * doc/Makefile.am: Only remove generated docbook dirs if they
2572 exist, from Colin Walters
2574 * dbus/dbus-bus.c: change how we set well-known connections to
2575 NULL, so that it works if a single connection is stored in
2576 two well-known array slots.
2578 * test/Makefile.am: remove a lot of stuff that isn't immediately
2579 useful, it's in CVS history if we want it.
2581 * test/test-service.c: use dbus-mainloop instead of that
2584 2003-04-06 Havoc Pennington <hp@pobox.com>
2586 * dbus/Makefile.am: split lists of sources into stuff that goes in
2587 the library, util functions that go in the lib and are also used
2588 elsewhere, and util functions that are used in tests/daemon but
2589 don't go in the lib.
2591 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
2592 here so it can be used in test binaries also
2594 2003-04-06 Havoc Pennington <hp@pobox.com>
2596 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
2597 here in the parent process, so we can return an error if it
2598 fails. Also, move some of the code into the child so the parent
2599 is less hosed if we fail midway through.
2601 * bus/bus.c (bus_context_new): move pidfile detection further up
2602 in the function, before we start overwriting sockets and such.
2604 * bus/messagebus.in: adjust this a bit, not sure if it will work.
2606 * configure.in: add --with-system-pid-file and --with-system-socket
2608 2003-04-06 Colin Walters <walters@verbum.org>
2610 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
2612 * bus/system.conf.in: Declare a pidfile.
2614 * bus/bus.c (bus_context_new): Test for an existing pid file, and
2615 create one (if appropriate).
2617 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
2618 (struct BusConfigParser) [pidfile]: New.
2619 (element_type_to_name, merge_included, start_busconfig_child)
2620 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
2621 (bus_config_parser_unref): Free it.
2622 (bus_config_parser_get_pidfile): New function.
2624 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
2626 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
2628 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
2630 * dbus/dbus-sysdeps.h: Prototype it.
2632 2003-04-06 Havoc Pennington <hp@pobox.com>
2634 * bus/bus.c (bus_context_new): print the address in here, rather
2635 than in main(), because we need to do it before forking the daemon
2637 * bus/dispatch.c (send_service_nonexistent_error): set the sender
2638 on the service nonexistent error
2640 * bus/driver.c (bus_driver_handle_acquire_service): set the
2641 sender on the AcquireService reply
2643 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
2644 server also listen on a UNIX socket so services can connect to it.
2646 2003-04-06 Havoc Pennington <hp@pobox.com>
2648 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
2649 so it detects deadlocks and also we actually init threads when
2652 2003-04-06 Havoc Pennington <hp@pobox.com>
2654 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2655 save the domain socket name, and unlink it when we disconnect the
2656 server. Means that at least when we exit normally, we won't leave
2657 a bunch of junk in /tmp
2659 * dbus/dbus-transport-unix.c
2660 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
2661 memory management). (I was making a real change here but then
2664 2003-04-06 Havoc Pennington <hp@pobox.com>
2666 * bus/bus.c (bus_context_new): fix wrong handling of
2667 server_data_slot_unref() in the error case.
2669 * dbus/dbus-internals.h (_dbus_assert): change so it passes
2670 "(condition) != 0" to _dbus_real_assert so that
2671 "_dbus_assert (pointer)" doesn't cause a warning
2673 * bus/main.c (main): accept --print-address option to print out
2674 the message bus address
2676 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
2678 * dbus/dbus-transport.c (_dbus_transport_open): special error for
2679 "tmpdir" option to unix: address on client side
2681 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
2684 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
2685 we can use to create sockets in the test suite.
2687 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
2688 cleanly. To be used for testing.
2690 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
2692 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
2694 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2695 handle trying to call this when there's no servers active
2697 2003-04-05 Havoc Pennington <hp@pobox.com>
2703 2003-04-05 Havoc Pennington <hp@pobox.com>
2705 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
2706 crash on startup. Need to get "try starting the daemon"
2707 in the test suite I guess. ;-)
2709 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
2710 tracked the number of open connections; it's better done in
2711 application-specific code as you want it to span all servers etc.
2713 2003-04-05 Havoc Pennington <hp@pobox.com>
2715 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
2716 patch from Colin Walters
2718 2003-04-05 Havoc Pennington <hp@pobox.com>
2720 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
2721 reality; in fact multiple mechanisms are allowed.
2723 * dbus/dbus-internals.c (_dbus_real_assert)
2724 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
2725 _dbus_assert_not_reached() into functions, so that they don't show
2726 up in basic block counts for test coverage, and don't use up as
2727 much disk space. Does mean slower execution speed though, so
2728 assumes --disable-asserts is the normal production case.
2730 2003-04-05 Havoc Pennington <hp@pobox.com>
2732 * test/Makefile.am (dist-hook): also dist *.in files
2738 2003-04-05 Havoc Pennington <hp@pobox.com>
2740 * dbus/dbus-string.c: docs warning
2742 * dbus/dbus-spawn.c: missing docs
2744 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2746 2003-04-05 Havoc Pennington <hp@pobox.com>
2748 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
2751 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
2752 to -1 once we've reaped the babysitter
2753 (_dbus_babysitter_handle_watch): do as much work as we can, not
2756 * bus/activation.c: add code using DBusBabysitter so that we
2757 handle it when a service fails to start up properly.
2758 (bus_activation_service_created): don't remove the activation
2759 entries as we go, just let them get removed when we free the pending
2760 activation. Unref reply messages after sending them.
2762 2003-04-05 Havoc Pennington <hp@pobox.com>
2764 * test/decode-gcov.c (main): print per-directory stats in the report
2766 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
2768 2003-04-05 Havoc Pennington <hp@pobox.com>
2770 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
2772 * test/decode-gcov.c: hack up a little program to suck data
2773 out of gcov files. Yes this is sort of silly.
2775 * configure.in: define something in config.h and do an
2776 AM_CONDITIONAL when gcov is enabled
2778 2003-04-04 Havoc Pennington <hp@redhat.com>
2780 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
2781 return a "babysitter" object that is used to monitor the status of
2782 the spawned process and reap it when required.
2784 * test/test-segfault.c, test/test-exit.c,
2785 test/test-sleep-forever.c: binaries that do various lame things,
2786 used in the test suite.
2788 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
2790 2003-04-03 Havoc Pennington <hp@pobox.com>
2792 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
2793 in preparation for modifying it, dbus-sysdeps is getting
2796 2003-04-03 Havoc Pennington <hp@redhat.com>
2798 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
2801 * bus/*.[hc]: adapt to mainloop change
2803 2003-04-03 Havoc Pennington <hp@redhat.com>
2805 * bus/activation.c (load_directory): fix up memleaks
2806 (bus_activation_entry_free): free the entry
2808 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
2809 we get one from the message bus; fix memleaks.
2811 * dbus/dbus-message.c (dbus_set_error_from_message): new function
2813 2003-04-03 Havoc Pennington <hp@pobox.com>
2815 * bus/config-parser.c (bus_config_parser_unref): free
2816 list of mechanisms, bug discovered by test suite enhancements
2817 (putting system.conf and session.conf into suite)
2819 * test/Makefile.am, test/test-service.c: add placeholder for a
2820 test service that we'll activate as part of test suite. Doesn't
2823 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2824 setting NULL value, and use system malloc not dbus_malloc()
2825 when we have unavoidable memleakage.
2827 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2828 didn't work, and support DBUS_BUS_ACTIVATION.
2830 * bus/activation.c (child_setup): pass our well-known bus type to
2833 * bus/config-parser.c: support <type> to specify well-known type
2835 * doc/dbus-specification.sgml: document the env variables to
2836 locate well-known buses and find service activator
2838 2003-04-02 Havoc Pennington <hp@redhat.com>
2840 * test/Makefile.am (all-local): add a rule to copy tests to
2841 builddir, so we can have generated tests. Use this to remove the
2842 silly hack for testing system.conf and session.conf. Will use this
2843 shortly to generate .service files pointing to test binaries.
2845 2003-04-02 Havoc Pennington <hp@redhat.com>
2847 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2848 current alloc and needed new length, not max of the doubled
2849 allocation and needed new length. Also, when building tests,
2850 don't do the double-allocation stuff, just realloc every time.
2852 2003-04-02 Havoc Pennington <hp@redhat.com>
2854 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2856 (_dbus_string_get_dirname): new
2857 (_dbus_sysdeps_test): new
2858 (_dbus_directory_open): include dirnames in error messages
2860 * bus/config-parser.c: interpret <include> and <includedir> and
2861 <servicedir> relative to config file location if the given
2862 filename is not absolute.
2864 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2866 2003-04-02 Havoc Pennington <hp@redhat.com>
2868 * bus/connection.c (bus_transaction_send_error_reply): set sender
2869 service for the error, and unref the reply on success
2871 * bus/activation.c: convert to use BusTransaction so OOM can be
2873 (bus_activation_service_created): set sender of the message
2875 2003-04-01 Havoc Pennington <hp@redhat.com>
2877 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2878 <includedir> (at least mostly)
2880 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2881 first, then the user ID
2883 2003-04-01 Havoc Pennington <hp@pobox.com>
2885 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2888 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2890 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2892 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2893 socket 0777, and unlink any existing socket.
2895 * bus/bus.c (bus_context_new): change our UID/GID and fork if
2896 the configuration file so specifies; set up auth mechanism
2899 * bus/config-parser.c (bus_config_parser_content): add support
2900 for <fork> option and fill in code for <auth>
2902 * bus/system.conf.in: add <fork/> to default configuration,
2903 and limit auth mechanisms to EXTERNAL
2905 * doc/config-file.txt (Elements): add <fork>
2907 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2908 (_dbus_change_identity): new function
2910 2003-03-31 Havoc Pennington <hp@redhat.com>
2912 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2913 (_dbus_listen_unix_socket): fix off-by-one error in null
2914 termination spotted by Nalin
2916 2003-03-31 Havoc Pennington <hp@redhat.com>
2918 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
2919 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
2920 having a real home directory available.
2922 2003-03-31 Havoc Pennington <hp@redhat.com>
2924 * bus/Makefile.am (install-data-hook): create /var/run/dbus
2926 * bus/messagebus.in: add init script for Red Hat /etc/init.d
2928 * configure.in: add support for specifying a style of init script
2931 2003-03-31 Havoc Pennington <hp@redhat.com>
2933 Fix some annoying DBusString API and fix all affected code.
2935 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
2937 (_dbus_string_get_data): change to return string instead of using
2939 (_dbus_string_get_const_data): ditto
2940 (_dbus_string_get_data_len): ditto
2941 (_dbus_string_get_const_data_len): ditto
2943 2003-03-31 Havoc Pennington <hp@redhat.com>
2945 * bus/main.c (main): fix up the command line arguments to be nicer
2947 2003-03-31 Havoc Pennington <hp@redhat.com>
2949 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
2950 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
2951 final location that lands in the config file
2953 * bus/config-loader-expat.c (bus_config_load): fix type of
2956 * doc/TODO: remove TODO item for dbus_bus_get()
2958 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
2960 2003-03-31 Havoc Pennington <hp@pobox.com>
2962 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
2963 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
2964 argument since they are always client side
2966 * dbus/dbus-server.c (dbus_server_get_address): new function
2968 * bus/main.c (main): take the configuration file as an argument.
2970 * test/data/valid-config-files/debug-allow-all.conf: new file to
2971 use with dispatch.c tests for example
2973 * bus/test-main.c (main): require test data dir
2975 * bus/bus.c (bus_context_new): change this to take a
2976 configuration file name as argument
2978 * doc/config-file.txt (Elements): add <servicedir>
2980 * bus/system.conf, bus/session.conf: new files
2982 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
2983 well-known socket if none set
2985 * configure.in: create system.conf and session.conf
2987 2003-03-30 Havoc Pennington <hp@pobox.com>
2989 * bus/config-parser.c: hacking
2991 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
2992 to shut down, since it could cause weirdness with the DBusList
2995 * dbus/dbus-list.c (_dbus_list_test): add tests for the
2996 link-oriented stack routines
2997 (alloc_link): free the mempool if the first alloc from it fails
2999 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
3001 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
3003 (_dbus_string_skip_white): new
3005 * doc/config-file.txt (Elements): add <includedir>
3007 2003-03-28 Havoc Pennington <hp@pobox.com>
3009 * dbus/dbus-string.c (_dbus_string_copy_data_len)
3010 (_dbus_string_copy_data): new functions
3012 2003-03-28 Anders Carlsson <andersca@codefactory.se>
3014 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
3018 * dbus/dbus-memory.c:
3021 2003-03-28 Havoc Pennington <hp@pobox.com>
3023 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
3024 I think it may have just been superstition. Not sure.
3026 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
3027 failures that were not being handled.
3029 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
3031 * dbus/dbus-memory.c: add ability to set number of mallocs in a
3032 row that will fail on out-of-memory.
3034 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
3035 function for testing out-of-memory handling.
3037 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
3038 allocation functions, they do map exactly to the expat ones.
3040 2003-03-27 Havoc Pennington <hp@redhat.com>
3042 * bus/config-loader-libxml.c (bus_config_load): add another error
3045 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3048 Add note about automatic service activation.
3050 * doc/dbus-specification.sgml:
3051 Rename the specification and clarify a few things.
3053 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3056 * dbus/dbus-address.c:
3058 * dbus/dbus-marshal.c:
3059 * dbus/dbus-server-debug-pipe.c:
3060 * dbus/dbus-transport-unix.c:
3061 Fix documentation warnings.
3063 2003-03-26 Havoc Pennington <hp@pobox.com>
3065 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
3066 after every test so it's quick and easy to see which leaked, and
3067 so we test multiple dbus_shutdown() calls
3069 * configure.in: change configure.in XML stuff to also support
3072 * config-loader-libxml.c: some hacking
3074 * config-loader-expat.c: some hacking
3076 * config-parser.c: some hacking, plus tests
3078 2003-03-25 Havoc Pennington <hp@redhat.com>
3080 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
3082 * configure.in: add --with-xml option to specify XML library,
3083 right now only libxml is supported.
3085 * bus/config-loader-libxml.c, config-parser.c: sync some minor
3086 nonworking code between home and work, still just stubs
3088 2003-03-24 Havoc Pennington <hp@redhat.com>
3090 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
3093 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
3094 NULL argument for "message" if the error is a well-known one,
3095 fill in a generic message in this case.
3097 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
3100 * bus/test.c (bus_test_flush_bus): add
3102 * bus/policy.c (bus_policy_test): test code stub
3104 2003-03-24 Havoc Pennington <hp@pobox.com>
3106 * bus/connection.c (bus_connections_setup_connection): set up
3107 the "can this user connect" function, but it always returns
3108 TRUE until we have a config file parser so we can have a config
3109 file that allows connections.
3111 2003-03-23 Havoc Pennington <hp@pobox.com>
3113 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
3114 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
3115 the mutex, so we can check for proper memory management
3118 * dbus/dbus-dataslot.c: remove the mutex from
3119 DBusDataSlotAllocator and lock it manually when using it,
3120 to simplify fitting it into the global slots framework.
3122 * dbus/dbus-threads.c (init_static_locks): rework how we're
3123 handling global locks so they are easily shut down.
3125 * bus/policy.c (bus_policy_append_rule): fix
3127 * bus/test-main.c (main): check for memleaks
3129 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
3130 test suite check for memleaks
3132 * dbus/dbus-memory.c: add support in test mode for tracking
3133 number of outstanding blocks
3135 2003-03-23 Havoc Pennington <hp@pobox.com>
3137 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
3140 * dbus/dbus-hash.h: add ULONG hash keys
3142 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
3143 (_dbus_get_group_id): new function
3145 2003-03-20 Havoc Pennington <hp@redhat.com>
3147 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
3149 (dbus_connection_get_unix_user): new function
3151 2003-03-20 Havoc Pennington <hp@pobox.com>
3153 * bus/connection.c (bus_connection_send_oom_error): assert that
3154 message has a sender
3155 (connection_execute_transaction): ditto
3156 (bus_connection_preallocate_oom_error): fix to set the sender, and
3157 set recipient to the destination service, not the bus driver
3159 * bus/policy.c: hacking
3161 * dbus/dbus-message.c (dbus_message_service_is): new function
3162 (dbus_message_sender_is): new
3164 2003-03-19 Havoc Pennington <hp@redhat.com>
3166 * bus/policy.c: start sketching code for policy restrictions on
3167 what connections can do.
3169 2003-03-18 Havoc Pennington <hp@redhat.com>
3171 * doc/TODO: some notes on high-level todo items. Little nitpick
3172 stuff is all in @todo, so no need to add it here.
3174 * doc/config-file.txt: some notes on how config file might look
3176 2003-03-18 Anders Carlsson <andersca@codefactory.se>
3182 2003-03-17 Havoc Pennington <hp@redhat.com>
3184 * dbus/dbus-internals.h: add gcc attributes so that
3185 our printf-style functions warn on bad arguments to
3188 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
3191 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3194 2003-03-17 Havoc Pennington <hp@redhat.com>
3196 * bus/test-main.c (main): make it print something as it runs
3197 so make check doesn't look stuck
3199 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
3200 from CVS, now obsolete
3202 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3204 * bus/dispatch.c: (bus_dispatch):
3205 Refetch the service name since it may have been reallocated
3206 when dbus_message_set_sender was called.
3208 * dbus/dbus-sysdeps.c: (_dbus_accept):
3209 Add address and address length variables and use them to stop
3210 valgrind from complaining.
3212 2003-03-17 Havoc Pennington <hp@pobox.com>
3214 All tests pass, no memleaks, no valgrind complaints.
3216 * bus/test.c: refcount handler_slot
3218 * bus/connection.c (bus_connections_new): refcount
3219 connection_data_slot
3221 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
3222 bytes so that auth scripts pass.
3224 * bus/dispatch.c: init message_handler_slot so it gets allocated
3227 * bus/dispatch.c (message_handler_slot_ref): fix memleak
3229 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
3230 dealloc server_pipe_hash when no longer used for benefit of
3233 * dbus/dbus-auth.c (process_command): memleak fix
3235 * bus/dispatch.c (check_hello_message): memleak fix
3237 2003-03-16 Havoc Pennington <hp@pobox.com>
3239 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
3241 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3243 * bus/activation.c (bus_activation_activate_service): Append
3244 the pending activation entry to the list of pending activations.
3246 2003-03-16 Havoc Pennington <hp@pobox.com>
3248 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
3251 * dbus/dbus-address.c (create_entry): fix OOM handling when
3252 failing to alloc entry->method
3254 2003-03-16 Havoc Pennington <hp@pobox.com>
3256 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
3259 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3260 add some missing dbus_set_result
3262 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
3263 alloc the DBusMessageHandler
3265 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
3266 the transport here, since we call this from the finalizer; it
3267 resulted in a double-finalize.
3269 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
3270 where we tried to use transport->connection that was NULL,
3271 happened when transport was disconnected early on due to OOM
3273 * bus/*.c: adapt to handle OOM for watches/timeouts
3275 * dbus/dbus-transport-unix.c: port to handle OOM during
3278 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
3279 reference to unused bytes instead of a copy
3281 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
3284 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
3287 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
3290 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3292 * doc/dbus-specification.sgml:
3293 Document reply message for ActivateService.
3295 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3297 * bus/activation.c: (bus_pending_activation_entry_free),
3298 (bus_pending_activation_free), (bus_activation_new),
3299 (bus_activation_unref), (bus_activation_service_created),
3300 (bus_activation_activate_service):
3302 * bus/bus.c: (bus_context_new):
3303 * bus/desktop-file.c: (new_section):
3304 * bus/driver.c: (bus_driver_send_service_deleted),
3305 (bus_driver_handle_activate_service):
3306 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
3308 * dbus/dbus-connection.c:
3309 (dbus_connection_send_with_reply_and_block):
3310 * dbus/dbus-message.c: (dbus_message_append_args_valist):
3311 * dbus/dbus-protocol.h:
3312 Make activation work better. Now pending activations will be queued
3313 and the daemon won't try to activate services that are already registered.
3315 2003-03-16 Havoc Pennington <hp@pobox.com>
3317 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
3320 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
3321 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
3323 2003-03-16 Havoc Pennington <hp@pobox.com>
3325 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
3326 this. always run the test suite before commit...
3328 * bus/*: adapt to DBusConnection API changes
3330 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
3331 requires renaming stuff to avoid dbus_connection_dispatch name
3334 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
3337 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3338 separate from _dbus_message_loader_return_buffer()
3340 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
3341 this, because it's now always broken to use; the number of
3342 messages in queue vs. the number still buffered by the message
3343 loader is undefined/meaningless. Should use
3344 dbus_connection_get_dispatch_state().
3345 (dbus_connection_dispatch): rename from
3346 dbus_connection_dispatch_message
3348 2003-03-16 Havoc Pennington <hp@pobox.com>
3350 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
3353 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3355 * dbus/dbus-connection.c:
3356 (dbus_connection_send_with_reply_and_block):
3357 Decrease connection->n_incoming when removing an entry
3359 * dbus/dbus-dict.c: (dbus_dict_entry_free),
3360 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3361 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3362 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
3363 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
3364 (dbus_dict_get_byte_array):
3365 Handle NULL arrays and strings. Also add support for byte arrays.
3367 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
3368 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
3369 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3370 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3371 (_dbus_demarshal_dict), (demarshal_and_validate_len),
3372 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
3373 * dbus/dbus-marshal.h:
3374 Add support for marshalling and demarshalling empty arrays and strings.
3376 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3377 (dbus_message_append_string_array),
3378 (dbus_message_iter_get_boolean),
3379 (dbus_message_iter_get_boolean_array),
3380 (dbus_message_iter_get_int32_array),
3381 (dbus_message_iter_get_uint32_array),
3382 (dbus_message_iter_get_double_array),
3383 (dbus_message_iter_get_byte_array),
3384 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
3385 (check_message_handling):
3386 Add support for getting empty arrays and dicts.
3388 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
3389 Don't do any validation at all for now, that's better than just checking
3392 * test/data/valid-messages/emptiness.message:
3393 New test message with lots of empty arrays.
3395 2003-03-16 Havoc Pennington <hp@pobox.com>
3397 * dbus/dbus-connection.c
3398 (_dbus_connection_queue_received_message_link): new function that
3399 can't fail due to OOM
3401 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
3402 new function pops a message together with a list link
3405 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
3406 message queuing functions to avoid needing to alloc memory
3408 2003-03-16 Havoc Pennington <hp@pobox.com>
3410 Oops - test code was only testing failure of around 30 of the
3411 mallocs in the test path, but it turns out there are 500+
3412 mallocs. I believe this was due to misguided linking setup such
3413 that there was one copy of dbus_malloc etc. in the daemon and one
3414 in the shared lib, and only daemon mallocs were tested. In any
3415 case, the test case now tests all 500+ mallocs, and doesn't pass
3416 yet, though there are lots of fixes in this patch.
3418 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3419 this so that it doesn't need to allocate memory, since it
3420 has no way of indicating failure due to OOM (and would be
3421 annoying if it did).
3423 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
3425 * bus/Makefile.am: rearrange to create two self-contained
3426 libraries, to avoid having libraries with overlapping symbols.
3427 that was resulting in weirdness, e.g. I'm pretty sure there
3428 were two copies of global static variables.
3430 * dbus/dbus-internals.c: move the malloc debug stuff to
3433 * dbus/dbus-list.c (free_link): free list mempool if it becomes
3436 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
3438 * dbus/dbus-address.c (dbus_parse_address): free list nodes
3441 * bus/dispatch.c (bus_dispatch_add_connection): free
3442 message_handler_slot when no longer using it, so
3443 memory leak checkers are happy for the test suite.
3445 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
3447 * bus/bus.c (new_connection_callback): disconnect in here if
3448 bus_connections_setup_connection fails.
3450 * bus/connection.c (bus_connections_unref): fix to free the
3452 (bus_connections_setup_connection): if this fails, don't
3453 disconnect the connection, just be sure there are no side
3456 * dbus/dbus-string.c (undo_alignment): unbreak this
3458 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
3460 (_dbus_auth_new): fix the order in which we free strings
3463 * bus/connection.c (bus_connection_disconnected): fix to
3464 not send ServiceDeleted multiple times in case of memory
3467 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3468 get the base service name
3469 (dbus_bus_register_client): don't return base service name,
3470 instead store it on the DBusConnection and have an accessor
3472 (dbus_bus_register_client): rename dbus_bus_register()
3474 * bus/dispatch.c (check_hello_message): verify that other
3475 connections on the bus also got the correct results, not
3476 just the one sending hello
3478 2003-03-15 Havoc Pennington <hp@pobox.com>
3480 Make it pass the Hello handling test including all OOM codepaths.
3481 Now to do other messages...
3483 * bus/services.c (bus_service_remove_owner): fix crash when
3484 removing owner from an empty list of owners
3485 (bus_registry_ensure): don't leave service in the list of
3486 a connection's owned services if we fail to put the service
3489 * bus/connection.c (bus_connection_preallocate_oom_error): set
3490 error flag on the OOM error.
3492 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3493 handle _dbus_transport_set_connection failure
3495 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3496 to create watches up front and simply enable/disable them as
3498 (unix_connection_set): this can now fail on OOM
3500 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3501 of enabling/disabling a watch or timeout.
3503 * bus/loop.c (bus_loop_iterate): don't touch disabled
3506 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3508 2003-03-15 Havoc Pennington <hp@pobox.com>
3510 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3511 write useful test code, after all that futzing around ;-)
3513 Test does not yet pass because we can't handle OOM in
3514 _dbus_transport_messages_pending (basically,
3515 dbus_connection_preallocate_send() does not prealloc the write
3516 watch). To fix this, I think we need to add new stuff to
3517 set_watch_functions, namely a SetEnabled function so we can alloc
3518 the watch earlier, then enable it later.
3520 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3521 dbus-memory.c to the convenience lib
3523 * bus/test.c: rename some static functions to keep them clearly
3524 distinct from stuff in connection.c. Handle client disconnection.
3526 2003-03-14 Havoc Pennington <hp@pobox.com>
3528 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3529 transport, tests more of the real codepath. Set up clients
3530 with bus_setup_debug_client.
3532 * bus/test.c (bus_setup_debug_client): function to set up debug
3533 "clients" on the main loop
3535 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3538 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3541 * dbus/dbus-server-debug.c: support a debug server based on pipes
3543 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3544 (_dbus_close): new function
3546 * configure.in: check for socketpair
3548 2003-03-14 Havoc Pennington <hp@redhat.com>
3550 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3553 * dbus/dbus-transport-debug.c: rework this a good bit to be
3554 less complicated. hopefully still works.
3556 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3559 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3562 * dbus/dbus-message.c (dbus_message_copy): rename from
3563 dbus_message_new_from_message, fix it up to copy
3564 all the message fields, add test case
3566 * bus/dispatch.c (bus_dispatch_test): add some more test code,
3567 not quite passing yet
3569 2003-03-14 Havoc Pennington <hp@pobox.com>
3571 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3572 until no work remains" in test code. (the large diff here
3573 is just code movement, no actual changes)
3575 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3576 1, no point waiting around for test code.
3577 (_dbus_server_debug_accept_transport): unref the timeout
3578 after adding it (right?)
3580 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
3582 2003-03-13 Havoc Pennington <hp@redhat.com>
3584 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
3587 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
3590 * dbus/dbus-connection.h: Make AddWatchFunction and
3591 AddTimeoutFunction return a bool so they can fail on out-of-memory
3593 * bus/bus.c (bus_context_new): set up timeout handlers
3595 * bus/connection.c (bus_connections_setup_connection): set up
3598 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
3601 * bus/bus.c (bus_context_new): adapt to changes
3603 * bus/connection.c: adapt to changes
3605 * test/watch.c: adapt to DBusWatch changes
3607 * bus/dispatch.c (bus_dispatch_test): started adding this but
3610 2003-03-14 Anders Carlsson <andersca@codefactory.se>
3612 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
3614 2003-03-13 Havoc Pennington <hp@pobox.com>
3616 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
3617 set up a test framework as for the library
3619 2003-03-12 Havoc Pennington <hp@pobox.com>
3621 Throughout: purge global variables, introduce BusActivation,
3622 BusConnections, BusRegistry, etc. objects instead.
3624 * bus/bus.h, bus/bus.c: introduce BusContext as a global
3627 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
3628 going to redo this a bit differently I think
3630 2003-03-12 Havoc Pennington <hp@redhat.com>
3632 Mega-patch that gets the message bus daemon initially handling
3633 out-of-memory. Work still needed. Also lots of random
3634 moving stuff to DBusError instead of ResultCode.
3636 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
3638 * dbus/dbus-connection.c
3639 (dbus_connection_send_with_reply_and_block): use DBusError
3641 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
3644 * dbus/dbus-connection.c (dbus_connection_send): drop the result
3645 code here, as the only failure possible is OOM.
3647 * bus/connection.c (bus_connection_disconnect):
3648 rename bus_connection_disconnected as it's a notification only
3650 * bus/driver.c (bus_driver_handle_acquire_service): don't free
3651 "name" on get_args failure, should be done by get_args;
3652 don't disconnect client for bad args, just return an error.
3653 (bus_driver_handle_service_exists): ditto
3655 * bus/services.c (bus_services_list): NULL-terminate returned array
3657 * bus/driver.c (bus_driver_send_service_lost)
3658 (bus_driver_send_service_acquired): send messages from driver to a
3659 specific client to the client's unique name, not to the broadcast
3662 * dbus/dbus-message.c (decode_header_data): reject messages that
3663 contain no name field
3664 (_dbus_message_get_client_serial): rename to
3665 dbus_message_get_serial and make public
3666 (_dbus_message_set_serial): rename from set_client_serial
3667 (_dbus_message_set_reply_serial): make public
3668 (_dbus_message_get_reply_serial): make public
3670 * bus/connection.c (bus_connection_foreach): allow stopping
3671 iteration by returning FALSE from foreach function.
3673 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
3674 (dbus_connection_free_preallocated_send)
3675 (dbus_connection_preallocate_send): new API for sending a message
3676 without possibility of malloc failure.
3677 (dbus_connection_send_message): rename to just
3678 dbus_connection_send (and same for whole function family)
3680 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
3682 * dbus/dbus-sysdeps.c (_dbus_exit): new function
3684 * bus/activation.c: handle/return errors
3686 * dbus/dbus-errors.h: add more DBUS_ERROR #define
3688 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
3689 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
3690 (_dbus_result_from_errno): move to this file
3692 2003-03-10 Anders Carlsson <andersca@codefactory.se>
3694 * dbus/dbus-marshal.c:
3695 (_dbus_marshal_set_string):
3696 Take a length argument so we can marshal the correct string
3699 (_dbus_marshal_dict), (_dbus_demarshal_dict),
3700 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
3701 (_dbus_marshal_test):
3702 * dbus/dbus-marshal.h:
3703 Add support for marshalling and demarshalling dicts.
3705 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3706 Add support for TYPE DICT.
3708 * dbus/dbus-message.c: (set_string_field):
3709 Adjust header padding.
3711 (dbus_message_append_args_valist), (dbus_message_append_dict),
3712 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
3713 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
3714 (check_message_handling), (check_have_valid_message):
3715 * dbus/dbus-message.h:
3716 Add functions for setting and getting dicts.
3718 * dbus/dbus-protocol.h:
3724 * doc/dbus-specification.sgml:
3725 Add information about how dicts are marshalled.
3727 * test/data/invalid-messages/dict-with-nil-value.message:
3728 * test/data/invalid-messages/too-short-dict.message:
3729 * test/data/valid-messages/dict-simple.message:
3730 * test/data/valid-messages/dict.message:
3731 Add sample messages containing dicts.
3733 2003-03-08 Anders Carlsson <andersca@codefactory.se>
3735 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
3737 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3740 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3741 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
3742 (dbus_dict_set_int32), (dbus_dict_set_uint32),
3743 (dbus_dict_set_double), (dbus_dict_set_string),
3744 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3745 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3746 (dbus_dict_set_string_array), (_dbus_dict_test):
3748 Fix according to comments from Havoc.
3750 2003-03-06 Michael Meeks <michael@server.home>
3752 * configure.in: if we don't have kde-config, disable have_qt.
3754 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3759 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3760 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
3761 (dbus_dict_remove), (dbus_dict_get_value_type),
3762 (dbus_dict_get_keys), (dbus_dict_put_boolean),
3763 (dbus_dict_put_int32), (dbus_dict_put_uint32),
3764 (dbus_dict_put_double), (dbus_dict_put_string),
3765 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
3766 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
3767 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
3768 (dbus_dict_get_int32), (dbus_dict_get_uint32),
3769 (dbus_dict_get_double), (dbus_dict_get_string),
3770 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
3771 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
3772 (dbus_dict_get_string_array), (_dbus_dict_test):
3774 Add DBusDict implementation
3776 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
3780 2003-03-04 Havoc Pennington <hp@pobox.com>
3782 * test/data/auth/*: adapt to changes
3784 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
3785 USERID_BASE64 and change USERNAME_BASE64 to put in username not
3788 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
3789 more stuff from being in a context name, to make the protocol
3790 simpler to deal with
3792 * dbus/dbus-errors.c (dbus_error_has_name): new function
3793 (dbus_error_is_set): new function
3795 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
3796 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
3798 * dbus/dbus-connection.c (dbus_connection_flush): also read
3799 messages during a flush operation
3801 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
3803 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3805 * configure.in: Check for gethostbyname on Solaris.
3807 * dbus/dbus-transport.c: (_dbus_transport_open):
3808 Remove duplicate "tcp" entry.
3810 * doc/dbus-specification.sgml:
3811 Clarify some things.
3813 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3815 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3816 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3817 (_dbus_keyring_test):
3818 * dbus/dbus-md5.c: (_dbus_md5_compute):
3819 * dbus/dbus-sha.c: (_dbus_sha_compute):
3822 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3824 * README: Add some things.
3826 2003-03-04 Anders Carlsson <andersca@codefactory.se>
3828 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3829 after case DBUS_TYPE_BOOELAN.
3831 2003-03-02 Havoc Pennington <hp@pobox.com>
3833 * test/break-loader.c (randomly_set_extreme_ints): add test that
3834 sets really huge and small integers
3836 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3837 that length of boolean array fits in the string, and that
3838 string has room for boolean value in single-bool case.
3840 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3841 optional value to "ALIGN" command which is what to fill the
3844 * test/data/valid-messages/no-padding.message: add regression
3845 test for the message padding problem
3847 2003-03-02 Havoc Pennington <hp@pobox.com>
3849 * dbus/dbus-message.c (decode_header_data): fix to always init
3850 message_padding, from Benjamin Dauvergne
3852 2003-03-02 Havoc Pennington <hp@pobox.com>
3858 2003-03-01 Joe Shaw <joe@assbarn.com>
3860 * configure.in: Check for "struct cmsgcred" and try to access its
3861 members for BSD-like unices.
3863 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3864 _dbus_read_credentials_unix_socket().
3865 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3866 read() for reading the credential byte off the unix socket. Use
3867 struct cmsgcred on systems that support it.
3869 2003-02-27 Alexander Larsson <alexl@redhat.com>
3873 Make gthreads-2.0 dependency optional. Don't build thread test if
3876 2003-02-27 Havoc Pennington <hp@pobox.com>
3878 * dbus/dbus-connection.c
3879 (dbus_connection_send_message_with_reply_and_block): fix doh!
3880 doh! doh! bug that resulted in never removing a reply from the
3881 queue, no wonder we called get_reply_serial so much ;-)
3883 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3884 and client serial instead of demarshaling them every time
3886 2003-02-27 Havoc Pennington <hp@pobox.com>
3888 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3889 more inlined, using dbus-string-private.h, speeds things up
3892 * dbus/dbus-string.c (_dbus_string_free): apply align offset
3893 when freeing the string
3894 (_dbus_string_steal_data): fix for align offset
3895 (undo_alignment): new function
3897 2003-02-26 Havoc Pennington <hp@redhat.com>
3899 All kinds of audit fixes from Owen, plus initial attempt to
3900 handle unaligned memory returned from malloc.
3902 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3903 leave room for align_offset and nul byte
3904 (fixup_alignment): function to track an align_offset and
3905 ensure real->str is aligned
3906 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3907 to allow a nul byte plus align offset
3908 (_dbus_string_lock): fix overflow issue
3909 (_dbus_string_init_const_len): add assertions on sanity of len,
3910 assign allocated to be ALLOCATION_PADDING larger than len
3911 (set_length): fixup the overflow handling
3912 (_dbus_string_get_data_len): fix overflow in assertion
3913 (open_gap): detect overflow in size of gap to be opened
3914 (_dbus_string_lengthen): add overflow check
3915 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
3916 (_dbus_string_append): add overflow check
3917 (_dbus_string_append_unichar): overflow
3918 (_dbus_string_delete): fix overflow in assertion
3919 (_dbus_string_copy_len): overflow in assertion
3920 (_dbus_string_replace_len): overflows in assertions
3921 (_dbus_string_find): change to implement in terms of
3922 _dbus_string_find_to
3923 (_dbus_string_find_to): assorted fixage
3924 (_dbus_string_equal_c_str): assert c_str != NULL,
3925 fix logic so the function works
3926 (_dbus_string_ends_with_c_str): fix overflow thingy
3927 (_dbus_string_base64_encode): overflow fix
3928 (_dbus_string_validate_ascii): overflow
3929 (_dbus_string_validate_nul): overflow
3931 2003-02-26 Havoc Pennington <hp@redhat.com>
3933 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
3935 2003-02-26 Alexander Larsson <alexl@redhat.com>
3938 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
3940 * dbus/dbus-connection.c:
3941 * dbus/dbus-connection.h:
3942 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
3943 Add dbus_connection_set_wakeup_main_function and use it when queueing
3944 incoming and outgoing messages.
3947 * dbus/dbus-dataslot.c:
3948 Threadsafe usage of DBusDataSlotAllocator
3950 * dbus/dbus-message.c: (dbus_message_get_args_iter):
3953 * dbus/dbus-server-unix.c:
3956 * glib/dbus-gmain.c:
3957 Implement the new wakeup functions for glib.
3960 * glib/test-thread-client.c:
3961 * glib/test-thread-server.c:
3962 * glib/test-thread.h:
3963 Initial cut at some thread test code. Not really done yet.
3965 2003-02-26 Havoc Pennington <hp@pobox.com>
3967 * dbus/dbus-connection.c
3968 (dbus_connection_send_message_with_reply_and_block): fix crash
3969 where we ref'd the outgoing message instead of the returned reply
3971 * dbus/dbus-transport-unix.c (do_authentication): check read watch
3972 at the end of this function, so if we didn't need to read for
3973 authentication, we reinstall it for receiving messages
3975 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
3976 a NULL sender for peer-to-peer case
3978 * dbus/dbus-transport-unix.c (check_read_watch): handle
3979 !authenticated case correctly
3981 * glib/dbus-gmain.c: add support for DBusServer
3983 * dbus/dbus-server.c: add data slot support
3985 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
3986 return values and handle errors
3988 * dbus/dbus-dataslot.c: factor out the data slot stuff from
3991 * Doxyfile.in (INPUT): add glib subdir
3993 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
3994 setup_with_g_main instead of hookup_with_g_main; write docs
3996 2003-02-24 Anders Carlsson <andersca@codefactory.se>
3998 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
3999 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4000 * dbus/dbus-message.c: (dbus_message_append_boolean),
4001 (dbus_message_append_boolean_array),
4002 (dbus_message_get_args_valist), (_dbus_message_test):
4003 * dbus/dbus-message.h:
4004 * doc/dbus-specification.sgml:
4005 Various fixes as pointed out by Havoc.
4007 * test/data/invalid-messages/bad-boolean-array.message:
4008 * test/data/invalid-messages/bad-boolean.message:
4009 Add invalid boolean value test cases.
4011 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4013 * dbus/dbus-internals.c: (_dbus_type_to_string):
4014 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4015 (_dbus_marshal_validate_arg):
4016 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4017 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4018 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
4019 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
4020 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
4021 (dbus_message_iter_get_double),
4022 (dbus_message_iter_get_boolean_array), (message_iter_test):
4023 * dbus/dbus-message.h:
4024 * dbus/dbus-protocol.h:
4025 * doc/dbus-specification.sgml:
4026 * test/data/valid-messages/lots-of-arguments.message:
4027 Add support for boolean and boolean array types.
4029 2003-02-23 Havoc Pennington <hp@pobox.com>
4031 * dbus/dbus-keyring.c: finish most of this implementation and
4034 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
4035 these barf if the error isn't cleared to NULL
4037 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
4038 (_dbus_create_directory): new function
4040 * dbus/dbus-errors.c (dbus_set_error): fix warning
4042 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
4043 (_dbus_string_hex_decode): new function
4044 (test_hex_roundtrip): test code
4046 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
4048 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
4050 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
4051 the save-to-temp/rename trick to atomically write the new file
4052 (_dbus_string_parse_uint): new function
4054 2003-02-22 Havoc Pennington <hp@pobox.com>
4056 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
4058 2003-02-22 Havoc Pennington <hp@pobox.com>
4060 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
4061 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
4063 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
4065 * dbus/test/data/sha-1: add US government test suite for SHA-1
4067 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4069 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4070 Make string arrays NULL-terminated.
4072 * dbus/dbus-memory.c: (dbus_free_string_array):
4073 * dbus/dbus-memory.h:
4074 New function for freeing NULL-terminated string arrays.
4076 * dbus/dbus-message-builder.c: (append_quoted_string),
4077 (_dbus_message_data_load):
4078 Add support for array types.
4080 * dbus/dbus-message.c: (check_message_handling):
4081 Add more types as test cases.
4083 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
4084 (_dbus_string_parse_double):
4085 Add the start offset to the end offset.
4087 * test/data/valid-messages/lots-of-arguments.message:
4088 New test message with lots of arguments.
4090 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4092 * dbus/dbus-message.c: (dbus_message_append_nil),
4093 (dbus_message_append_int32), (dbus_message_append_uint32),
4094 (dbus_message_append_double), (dbus_message_append_string),
4095 (dbus_message_append_int32_array),
4096 (dbus_message_append_uint32_array),
4097 (dbus_message_append_double_array),
4098 (dbus_message_append_byte_array),
4099 (dbus_message_append_string_array):
4100 Fix all out-of-memory handling in these functions.
4102 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4104 * dbus/dbus-message.c: (dbus_message_append_nil):
4107 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4109 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4110 (dbus_message_append_nil), (dbus_message_append_int32_array),
4111 (dbus_message_append_uint32_array),
4112 (dbus_message_append_double_array),
4113 (dbus_message_append_byte_array),
4114 (dbus_message_append_string_array), (dbus_message_get_args_valist),
4115 (dbus_message_iter_get_int32_array),
4116 (dbus_message_iter_get_uint32_array),
4117 (dbus_message_iter_get_double_array),
4118 (dbus_message_iter_get_byte_array),
4119 (dbus_message_iter_get_string_array):
4121 * dbus/dbus-message.h:
4122 Add functions for appending and getting arrays.
4124 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4126 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
4127 element size at least 8 bytes, fixes mempool tests on
4130 2003-02-20 Alexander Larsson <alexl@redhat.com>
4132 * dbus/dbus-transport-unix.c (unix_do_iteration):
4133 Unlock the connection mutex during a blocking select call.
4134 Add todo about how we need a way to wake up the select.
4136 * dbus/dbus-connection-internal.h:
4137 * dbus/dbus-connection.c:
4138 Add _dbus_connection_lock and _dbus_connection_unlock.
4140 2003-02-19 Havoc Pennington <hp@pobox.com>
4142 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
4143 Doxyfile.in, not Doxyfile
4145 * dbus/dbus-keyring.c: do some hacking on this
4147 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
4149 * dbus/dbus-errors.c (dbus_set_error_const): do not call
4151 (dbus_set_error): remove dbus_error_init, check for message ==
4152 NULL *before* we sprintf into it, and add @todo about including
4153 system headers in this file
4155 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
4157 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
4159 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
4160 get various bits of user information based on either username
4162 (_dbus_homedir_from_username): new function
4164 2003-02-19 Anders Carlsson <andersca@codefactory.se>
4167 Add check for nonposix getpwnam_r
4169 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
4170 Align the pool element size to a sizeof (void *) boundary.
4172 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
4173 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
4174 General Solaris fixes.
4176 * test/data/valid-messages/simplest-manual.message:
4177 Explicitly state that we want little-endian packing.
4179 2003-02-19 Mikael Hallendal <micke@codefactory.se>
4181 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4183 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
4184 Added to create a transport connecting using a tcp/ip socket.
4186 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
4187 to a tcp socket at given host and port.
4188 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
4191 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4193 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4194 Added to create a server listening on a TCP/IP socket.
4196 2003-02-19 Havoc Pennington <hp@pobox.com>
4198 Throughout: mop up all the Doxygen warnings and undocumented
4201 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
4202 to search any paths.
4204 * dbus/dbus-threads.c: move global mutex initializers to
4205 dbus-internals.h, multiple prototypes was confusing doxygen
4206 besides being kind of ugly
4208 * Doxyfile (PREDEFINED): have Doxygen define
4209 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
4210 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
4211 (do not abuse the feature! it's for stuff like the autogenerated
4212 macros in dbus-md5.c, not just for things you don't feel like
4215 2003-02-18 Havoc Pennington <hp@pobox.com>
4217 * dbus/dbus-string.c (_dbus_string_zero): new function
4219 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
4220 wrap it in some dbus-friendly API
4222 * dbus/dbus-types.h: add 16-bit types
4224 2003-02-18 Joe Shaw <joe@assbarn.com>
4226 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
4227 credentials from our currently running process.
4228 (get_word): Fix a buglet where we were copying the entire length
4229 instead of relative to our position.
4231 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
4232 keys on the stack... it's 640k of data.
4234 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
4235 read the credentials byte off the socket, even if we don't have
4237 (_dbus_poll): Implement poll() using select() for systems which
4240 * glib/test-dbus-glib.c (main): Print out an error if no
4241 parameters are given.
4243 * test/data/auth/fallback.auth-script: Added. Tests that a client
4244 can fallback to a secondary auth mechanism if the first fails.
4246 2003-02-18 Havoc Pennington <hp@pobox.com>
4250 2003-02-17 Havoc Pennington <hp@pobox.com>
4252 * doc/dbus-specification.sgml: lots of cosmetic
4253 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
4254 env variable to DBUS_BUS_ADDRESS, s/client/application/,
4255 s/server/bus/ (except in authentication section). Add a section
4256 "Message Bus Message Routing"
4258 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
4264 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4266 * doc/dbus-specification.sgml:
4267 Specification updates.
4269 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4271 * bus/activation.c: (bus_activation_init), (child_setup),
4272 (bus_activation_activate_service):
4274 * bus/main.c: (main):
4275 Set DBUS_ADDRESS environment variable.
4277 * dbus/dbus-errors.c: (dbus_set_error):
4278 Don't use va_copy since that's a C99 feature.
4280 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
4281 (_dbus_spawn_async):
4282 * dbus/dbus-sysdeps.h:
4283 Add child_setup_func to _dbus_spawn_async.
4285 * doc/dbus-specification.sgml:
4286 Update specification.
4288 * test/spawn-test.c: (setup_func), (main):
4291 2003-02-17 Alexander Larsson <alexl@redhat.com>
4293 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
4296 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4300 * doc/dbus-test-plan.sgml:
4301 Add test plan document.
4306 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4308 * dbus/dbus-message.c: (decode_header_data),
4309 (_dbus_message_loader_return_buffer):
4310 Set the header padding amount when loading a message.
4312 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4314 * bus/dispatch.c: (send_one_message):
4315 Only send broadcast messages to registered connections.
4317 * dbus/dbus-message.c: (dbus_message_name_is):
4318 * dbus/dbus-message.h:
4319 New convenience function.
4321 * dbus/dbus-transport-debug.c: (do_reading):
4322 Only dispatch one message per run.
4325 * test/bus-test.c: (new_connection_callback), (die),
4326 (test_hello_client1_handler), (test_hello_client2_handler),
4327 (test_hello_replies), (main):
4329 * test/bus-test-loop.[ch]:
4332 2003-02-16 Havoc Pennington <hp@pobox.com>
4334 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4335 backward conditional
4337 2003-02-16 Alexander Larsson <alexl@redhat.com>
4339 * dbus/dbus-connection.c:
4340 Implement sent_message_with_reply. (with_reply_and block is still
4342 Made dispatch_message not lose message if OOM.
4344 * dbus/dbus-errors.h:
4345 Add NoReply error (for reply timeouts).
4347 2003-02-16 Alexander Larsson <alexl@redhat.com>
4349 * dbus/dbus-hash.c (_dbus_hash_table_unref):
4350 Actually free keys and values when destroying hashtable.
4352 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4354 * dbus/dbus-auth.c: (client_try_next_mechanism):
4357 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
4358 Return TRUE if there's no thread implementation around.
4360 * glib/dbus-gmain.c: (free_source),
4361 (dbus_connection_hookup_with_g_main):
4362 Make sure to remove the GSource when the connection is finalized.
4364 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4366 * bus/dispatch.c: (bus_dispatch_message_handler):
4367 * dbus/dbus-errors.h:
4368 Return an error if someone tries to send a message to a service
4371 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4373 * bus/activation.c: (load_directory), (bus_activation_init),
4374 (bus_activation_activate_service):
4377 (bus_driver_handle_activate_service), (bus_driver_handle_message):
4378 More work on the activation handling.
4380 * dbus/dbus-errors.h:
4381 Add some error messages
4383 * dbus/dbus-message.c: (dbus_message_new_error_reply):
4384 * dbus/dbus-message.h:
4385 New function that creates an error message.
4387 * dbus/dbus-protocol.h:
4388 Add ACTIVATE_SERVER message.
4390 * dbus/dbus-server-unix.c: (unix_handle_watch),
4391 (_dbus_server_new_for_domain_socket):
4392 Call _dbus_fd_set_close_on_exec.
4394 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
4395 (_dbus_spawn_async), (_dbus_disable_sigpipe),
4396 (_dbus_fd_set_close_on_exec):
4397 * dbus/dbus-sysdeps.h:
4398 Add _dbus_fd_set_close_on exec function. Also add function that checks
4399 that all open fds are set to close-on-exec and warns otherwise.
4401 * dbus/dbus-transport-unix.c:
4402 (_dbus_transport_new_for_domain_socket):
4403 Call _dbus_fd_set_close_on_exec.
4405 2003-02-16 Havoc Pennington <hp@pobox.com>
4407 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
4408 allow people to avoid setting SIGPIPE to SIG_IGN
4409 (_dbus_connection_new_for_transport): disable SIGPIPE unless
4410 we've been asked not to
4412 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4414 * dbus/dbus-list.c: (_dbus_list_append_link),
4415 (_dbus_list_prepend_link):
4416 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
4420 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4423 * bus/activation.c: (bus_activation_entry_free),
4424 (add_desktop_file_entry), (load_directory), (bus_activation_init):
4426 * bus/main.c: (main):
4427 Add simple activation support, doesn't work yet though.
4429 2003-02-15 Zack Rusin <zack@kde.org>
4431 * qt/dbus-qthread.cpp: small casting fix
4433 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4435 * dbus/dbus-errors.c: (dbus_set_error):
4436 * dbus/dbus-errors.h:
4437 Add a few errors and make dbus_set_error void.
4439 * dbus/dbus-sysdeps.c:
4440 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
4441 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
4442 * dbus/dbus-sysdeps.h:
4443 Add _dbus_spawn_async.
4445 * test/spawn-test.c: (main):
4446 Test for _dbus_spawn_async.
4448 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4450 * dbus/dbus-internals.h:
4451 Fix build without tests.
4453 * dbus/dbus-list.c: (alloc_link):
4454 Fix a segfault when a malloc fails.
4456 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
4457 (dbus_malloc0), (dbus_realloc):
4458 Add support for malloc debugging.
4460 2003-02-15 Alexander Larsson <alexl@redhat.com>
4462 * dbus/dbus-threads.c:
4463 * dbus/dbus-threads.h:
4464 Add condvars. Remove static mutext from API.
4465 Implement static mutexes by initializing them from threads_init.
4467 * glib/dbus-gthread.c:
4468 * qt/dbus-qthread.cpp:
4469 Update with the thread api changes.
4474 Turn StaticMutex into normal mutex + init function.
4475 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4476 _dbus_list_append_link, _dbus_list_prepend_link
4479 * dbus/dbus-sysdeps.c:
4480 * dbus/dbus-sysdeps.h:
4481 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4482 _dbus_atomic_dec. Only slow fallback implementation at the moment.
4484 * dbus/dbus-protocol.h:
4485 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4487 * dbus/dbus-message.c:
4488 Make ref/unref atomic.
4491 * dbus/dbus-connection-internal.h:
4492 * dbus/dbus-connection.c:
4493 * dbus/dbus-connection.h:
4495 Change _peek to _borrow,_return & _steal_borrowed.
4496 Change disconnect callback to event.
4497 Make dbus_connection_dispatch_messages reentrant.
4499 * dbus/dbus-transport.c:
4500 Don't ref the connection on calls to the transport
4503 * dbus/dbus-message-handler.c:
4506 * glib/dbus-gmain.c:
4507 Don't use peek_message anymore
4510 * test/debug-thread.c:
4511 * test/debug-thread.h:
4512 Simple thread implementation that asserts() on deadlocks in
4513 single-threaded code.
4516 (main) Call debug_threads_init.
4519 Use disconnect message instead of disconnect callback.
4523 Don't call dbus_connection_set_disconnect_function. Instead export
4524 bus_connection_disconnect.
4527 Call bus_connection_disconnect when we get a disconnected message.
4529 2003-02-15 Havoc Pennington <hp@pobox.com>
4531 * dbus/dbus-message.c (dbus_message_new): fool around with the
4534 2003-02-14 Havoc Pennington <hp@pobox.com>
4536 * dbus/dbus-mempool.c: fail if the debug functions so indicate
4538 * dbus/dbus-memory.c: fail if the debug functions indicate we
4541 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4542 (_dbus_decrement_fail_alloc_counter): debug functions to
4543 simulate memory allocation failures
4545 2003-02-14 Havoc Pennington <hp@pobox.com>
4547 * dbus/dbus-errors.h (struct DBusError): add a word of padding
4550 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4552 * bus/driver.c: (bus_driver_handle_hello):
4554 * bus/services.c: (bus_service_lookup):
4555 Reorder message sending so we get a more sane order.
4557 * test/bus-test.c: (message_handler):
4560 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4562 * bus/driver.c: (bus_driver_send_service_deleted),
4563 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4564 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4565 (bus_driver_send_welcome_message),
4566 (bus_driver_handle_list_services),
4567 (bus_driver_handle_acquire_service),
4568 (bus_driver_handle_service_exists):
4569 * dbus/dbus-bus.c: (dbus_bus_register_client),
4570 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4571 * dbus/dbus-errors.c: (dbus_result_to_string):
4572 * dbus/dbus-errors.h:
4573 * dbus/dbus-message.c: (dbus_message_append_args),
4574 (dbus_message_append_args_valist), (dbus_message_get_args),
4575 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4576 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4577 (dbus_message_iter_get_byte_array),
4578 (dbus_message_iter_get_string_array), (message_iter_test),
4579 (check_message_handling), (_dbus_message_test):
4580 * dbus/dbus-message.h:
4581 * test/bus-test.c: (main):
4582 Change fields to arguments in messages, so that they won't be
4583 confused with header fields.
4585 * glib/test-dbus-glib.c: (main):
4586 Remove append_fields from hello message.
4588 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4590 * dbus/dbus-errors.c:
4591 * dbus/dbus-message.c:
4592 * dbus/dbus-string.c:
4593 Documentation fixes.
4595 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4597 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
4599 Implement support for timeouts in dbus-glib.
4601 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4603 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4604 * dbus/dbus-message.c: (process_test_subdir):
4605 * test/break-loader.c: (find_breaks_based_on):
4606 Plug some memory leaks.
4608 2003-02-13 Richard Hult <rhult@codefactory.se>
4610 * bus/main.c: Fix build.
4612 * dbus/dbus-errors.h:
4613 * dbus/dbus-errors.c: Fix copyright for Anders.
4615 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4620 * bus/connection.c: (bus_connection_foreach):
4623 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
4624 (unescape_string), (new_section), (parse_section_start),
4625 (parse_key_value), (report_error), (bus_desktop_file_load),
4626 (bus_desktop_file_get_string):
4627 * bus/desktop-file.h:
4628 Use DBusError for error reporting.
4630 * bus/dispatch.c: (send_one_message),
4631 (bus_dispatch_message_handler):
4632 * bus/driver.c: (bus_driver_send_service_deleted),
4633 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4634 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4635 (bus_driver_send_welcome_message),
4636 (bus_driver_handle_list_services),
4637 (bus_driver_handle_acquire_service),
4638 (bus_driver_handle_service_exists):
4639 * bus/loop.c: (bus_loop_run):
4641 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
4643 * bus/utils.c: (bus_wait_for_memory):
4645 New files with general utility functions.
4647 * dbus/dbus-internals.h:
4648 Remove _DBUS_HANDLE_OOM.
4650 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4652 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
4653 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
4654 * dbus/dbus-errors.h:
4655 Add DBusError structure.
4657 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4659 * test/data/valid-messages/standard-acquire-service.message:
4660 * test/data/valid-messages/standard-hello.message:
4661 * test/data/valid-messages/standard-list-services.message:
4662 * test/data/valid-messages/standard-service-exists.message:
4663 Add some standard messages.
4665 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4667 * bus/driver.c: (bus_driver_send_welcome_message),
4668 (bus_driver_handle_list_services),
4669 (bus_driver_handle_acquire_service),
4670 (bus_driver_handle_service_exists), (bus_driver_handle_message):
4671 Update for API changes in libdbus.
4673 * dbus/dbus-message.c: (dbus_message_new_reply):
4674 * dbus/dbus-message.h:
4675 Remove the name argument. The spec states that replies shouldn't
4678 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4680 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
4681 (report_error), (bus_desktop_file_load), (lookup_section),
4682 (lookup_line), (bus_desktop_file_get_raw),
4683 (bus_desktop_file_get_string):
4684 * bus/desktop-file.h:
4685 Some fixes, and new functions for getting a key value from a section.
4687 2003-02-13 Havoc Pennington <hp@pobox.com>
4689 * test/data/auth/fail-after-n-attempts.auth-script: new test
4691 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
4694 2003-02-13 Havoc Pennington <hp@pobox.com>
4696 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
4697 dbus_credentials_match were backward
4699 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
4700 NO_CREDENTIALS and ROOT_CREDENTIALS
4702 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
4703 into here. Never process more commands after we've reached an
4704 end state; store further data as unused bytes.
4706 * test/data/auth/*: add more auth tests
4708 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
4709 command to match exact string and EXPECT_UNUSED to match unused
4712 * test/Makefile.am (dist-hook): fix to dist all the test stuff
4714 2003-02-12 Havoc Pennington <hp@pobox.com>
4716 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
4717 \r off of popped lines
4719 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
4722 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
4725 2003-02-12 Havoc Pennington <hp@pobox.com>
4727 * dbus/Makefile.am: remove break-loader from the build, since it
4730 * configure.in: add --enable-gcov to turn on coverage profiling
4731 flags and disable optimization
4733 2003-02-10 Havoc Pennington <hp@pobox.com>
4735 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
4736 initial cut at test framework for DBusAuth from laptop.
4737 Doesn't quite work yet but it compiles and I need to get
4738 it off the 266mhz laptop. ;-)
4740 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
4741 fix a memleak in error case
4743 2003-02-12 Anders Carlsson <andersca@codefactory.se>
4746 * bus/desktop-file.c:
4747 * bus/desktop-file.h:
4748 Add a desktop file parser.
4750 2003-02-11 Zack Rusin <zack@kde.org>
4752 * qt/message.[h|cpp]: sample implementation
4753 of the KDE wrapper for DBusMessage
4755 2003-02-09 Zack Rusin <zack@kde.org>
4757 * test/bus-test.c: make_it_compile
4758 * doc/dbus-specification.sgml: minimal semantic fix
4760 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4766 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4769 * dbus/dbus-break-loader.c:
4771 * test/break-loader.c:
4772 Move dbus-break-loader to test/ and rename it to break-loader.
4774 2003-02-02 Havoc Pennington <hp@pobox.com>
4776 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
4777 for code to manage cookies in your home directory
4779 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
4781 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
4782 to authenticate, then disconnect the client.
4784 2003-02-03 Alexander Larsson <alexl@redhat.com>
4786 * dbus/dbus-message.c (dbus_message_append_fields):
4789 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4791 * doc/dbus-specification.sgml:
4792 Update address format section.
4794 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4797 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
4798 (message_handler), (new_connection_callback), (loop_quit),
4802 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4804 * bus/driver.c: (bus_driver_handle_service_exists):
4805 Simplify the code a bit.
4807 * dbus/dbus-bus.c: (dbus_bus_service_exists):
4810 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4813 Add libdbus-daemon.la and link to it.
4815 2003-02-01 James Willcox <jwillcox@gnome.org>
4817 * bus/driver.c: (bus_driver_handle_own_service):
4818 Actually include the service reply code in the message.
4820 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4822 * bus/driver.c: (bus_driver_handle_service_exists):
4823 Don't unref the incoming message.
4825 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4827 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4829 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4831 * dbus/dbus-server.c: (dbus_server_listen):
4832 * dbus/dbus-transport.c: (_dbus_transport_open):
4833 ifdef out the calls to the debug transport and server.
4835 2003-02-02 Alexander Larsson <alexl@redhat.com>
4837 * dbus/dbus-watch.c (dbus_watch_get_flags):
4838 Add note in the docs that ERROR or HANGUP won't be returned
4839 and are assumed always on.
4841 * glib/dbus-gmain.c (add_watch):
4842 Always add IO_ERR | IO_HUP
4844 * dbus/dbus-message.h:
4845 Add semicolon after dbus_message_iter_get_string_array().
4846 Makes qt code build again
4848 2003-02-01 Anders Carlsson <andersca@codefactory.se>
4850 * bus/driver.c: (create_unique_client_name),
4851 (bus_driver_handle_hello):
4852 Don't take a name, just use a numeric id to identify
4856 * dbus/dbus-bus.c: (dbus_bus_register_client),
4857 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4859 Add new convenience functions for communicating with the bus.
4861 * dbus/dbus-message.h:
4863 * dbus/dbus-protocol.h:
4866 2003-02-01 Alexander Larsson <alexl@redhat.com>
4868 * dbus/dbus-message.c (dbus_message_append_fields):
4869 Add some more doc comments.
4871 2003-02-01 Havoc Pennington <hp@pobox.com>
4873 * dbus/dbus-break-loader.c (randomly_modify_length): change
4874 a 4-byte value in the message as if it were a length
4876 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4877 execute bit on saved files
4879 2003-02-01 Havoc Pennington <hp@pobox.com>
4881 * dbus/dbus-break-loader.c (main): new program to find messages
4882 that break the loader.
4884 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4885 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4887 * dbus/dbus-string.c (_dbus_string_set_byte): new
4889 2003-01-31 Havoc Pennington <hp@pobox.com>
4891 * dbus/dbus-message.c: refactor the test code to be more general,
4892 in preparation for writing a "randomly permute test cases to
4893 try to break the loader" program.
4895 2003-01-31 Havoc Pennington <hp@pobox.com>
4897 * doc/dbus-specification.sgml: work on the specification
4899 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4900 the protocol version of the message.
4902 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4903 no longer specifies that.
4904 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4907 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4908 "break" for DBUS_TYPE_NIL, remove @todo
4910 2003-01-31 Havoc Pennington <hp@pobox.com>
4912 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4913 just set_is_error/get_is_error as this is a commonly-used
4914 function, and write docs.
4916 2003-01-31 Anders Carlsson <andersca@codefactory.se>
4918 * dbus/dbus-address.c: (dbus_address_entry_free):
4919 Free key and value lists.
4921 * dbus/dbus-internals.c: (_dbus_type_to_string):
4922 Add the types we didn't have.
4924 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4925 (_dbus_marshal_validate_arg):
4928 * dbus/dbus-message.c: (dbus_message_set_sender):
4929 Remove todo about being able to set sender to NULL.
4931 (dbus_message_set_is_error_reply),
4932 (dbus_message_get_is_error_reply):
4933 * dbus/dbus-message.h:
4936 * dbus/dbus-protocol.h:
4937 Add error reply flag.
4939 * test/data/valid-messages/opposite-endian.message:
4940 Add NIL type to test.
4942 2003-01-31 Havoc Pennington <hp@pobox.com>
4944 * doc/dbus-specification.sgml: fully specify the header. Add
4945 flags and major protocol version, and change header/body len to
4948 * dbus/dbus-message-builder.c (append_saved_length): append length
4951 * dbus/dbus-message.c (dbus_message_create_header): change header
4952 length and body length to unsigned. Add the new fields from the
4954 (_dbus_message_loader_return_buffer): unsigned header/body len
4956 2003-01-30 Havoc Pennington <hp@pobox.com>
4958 * dbus/dbus-auth.c: rework to use only REJECTED, no
4961 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
4962 use REJECTED, suggested by Mark McLoughlin
4964 2003-01-30 Havoc Pennington <hp@pobox.com>
4966 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
4967 a better way to report errors here. e.g. "unix address lacks
4968 path" or something. also "no such file" when the path doesn't
4971 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
4973 (dbus_parse_address): add @todo about documenting address format,
4974 and allowing , and ; to be escaped
4976 2003-01-30 Anders Carlsson <andersca@codefactory.se>
4979 Add dbus-address.[ch]
4981 * dbus/dbus-address.c: (dbus_address_entry_free),
4982 (dbus_address_entries_free), (create_entry),
4983 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
4984 (dbus_parse_address), (_dbus_address_test):
4985 * dbus/dbus-address.h:
4986 New files for dealing with address parsing.
4988 * dbus/dbus-connection.c:
4989 Document timeout functions.
4991 * dbus/dbus-message.c:
4992 Document dbus_message_new_from_message.
4994 * dbus/dbus-server-debug.c:
4997 * dbus/dbus-server.c: (dbus_server_listen):
4998 Parse address and use correct server implementation.
5000 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
5001 * dbus/dbus-string.h:
5002 New function with test.
5004 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
5008 * dbus/dbus-transport-debug.c:
5011 * dbus/dbus-transport.c: (_dbus_transport_open):
5012 Parse address and use correct transport implementation.
5014 2003-01-30 Havoc Pennington <hp@pobox.com>
5016 * dbus/dbus-message.c: use message->byte_order instead of
5017 DBUS_COMPILER_BYTE_ORDER throughout.
5018 (dbus_message_create_header): pad header to align the
5019 start of the body of the message to 8-byte boundary
5021 * dbus/dbus-marshal.h: make all the demarshalers take const
5022 DBusString arguments.
5024 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
5025 validate message args here, so we don't have to do slow validation
5026 later, and so we catch bad messages as they are incoming. Also add
5027 better checks on header_len and body_len. Also fill in
5030 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
5031 implemented properly)
5032 (_dbus_string_validate_nul): new function to check all-nul
5034 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
5035 get_arg_end_pos and remove all validation
5036 (_dbus_marshal_validate_arg): actually do validation here.
5038 2003-01-29 Havoc Pennington <hp@pobox.com>
5040 * dbus/dbus-message.c (check_message_handling): fix assertion
5041 failure on set_client_serial
5043 2003-01-28 Havoc Pennington <hp@pobox.com>
5045 * dbus/dbus-server-debug.c: Add doc section comments
5047 * dbus/dbus-transport-debug.c: add doc section comments
5049 2003-01-28 Havoc Pennington <hp@redhat.com>
5051 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
5052 the reverse order from how I had it
5053 (_dbus_string_base64_encode): reverse encoding order. I was
5054 basically byteswapping everything during encoding.
5056 2003-01-28 Anders Carlsson <andersca@codefactory.se>
5058 * dbus/dbus-connection-internal.h:
5059 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
5060 (_dbus_connection_remove_timeout):
5061 Add functions for adding and removing timeouts.
5063 * dbus/dbus-message.c: (dbus_message_new_from_message):
5064 Add new function that takes a message and creates an exact
5065 copy of it, but with the refcount set to 1.
5066 (check_message_handling):
5069 * dbus/dbus-server-protected.h:
5070 * dbus/dbus-server.c: (_dbus_server_init_base),
5071 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
5072 (dbus_server_set_timeout_functions):
5073 (_dbus_server_remove_timeout):
5074 New functions so that a server can add and remove timeouts.
5076 (dbus_server_listen):
5077 Add commented out call to dbus_server_debug_new.
5079 * dbus/dbus-timeout.c: (_dbus_timeout_new):
5080 Actually set the handler, doh.
5082 * dbus/dbus-transport.c: (_dbus_transport_open):
5083 Add commented out call to dbus_transport_debug_client_new.
5086 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
5088 2003-01-28 Havoc Pennington <hp@pobox.com>
5090 * dbus/dbus-message.c (check_message_handling): function to check
5091 on the loaded message, iterates over it etc.
5093 2003-01-28 Havoc Pennington <hp@pobox.com>
5095 * test/Makefile.am (dist-hook): fix make distdir
5097 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
5099 2003-01-27 Havoc Pennington <hp@pobox.com>
5101 * dbus/dbus-mempool.c (time_for_size): replace printf with
5104 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
5105 empty lines; fix the SAVE_LENGTH stuff to be
5106 START_LENGTH/END_LENGTH so it actually works; couple other
5109 * test/Makefile.am (dist-hook): add dist-hook for .message files
5111 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
5112 can be constant or locked.
5113 (_dbus_string_free): allow freeing a const string as
5116 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
5118 * dbus/dbus-test-main.c (main): take an argument which is the
5119 directory containing test data
5121 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
5122 argument to this and load all the messages in test/data/
5123 checking that they can be loaded or not loaded as appropriate.
5125 2003-01-27 Anders Carlsson <andersca@codefactory.se>
5127 * bus/dispatch.c: (bus_dispatch_message_handler):
5128 Dispatch messages sent to services.
5130 * bus/driver.c: (bus_driver_send_service_deleted),
5131 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5132 (bus_driver_send_service_acquired):
5133 Add helper functions for sending service related messages.
5135 (bus_driver_send_welcome_message):
5136 Send HELLO_REPLY instead of WELCOME.
5138 (bus_driver_handle_list_services):
5139 Send LIST_SERVICES_REPLY instead of SERVICES.
5141 (bus_driver_handle_own_service),
5142 (bus_driver_handle_service_exists):
5143 New message handlers.
5145 (bus_driver_handle_message):
5146 Invoke new message handlers.
5148 (bus_driver_remove_connection):
5149 Don't remove any services here since that's done automatically
5150 by bus_service_remove_owner now.
5153 New function signatures.
5155 * bus/services.c: (bus_service_add_owner):
5156 Send ServiceAcquired message if we're the only primary owner.
5158 (bus_service_remove_owner):
5159 Send ServiceAcquired/ServiceLost messages.
5161 (bus_service_set_prohibit_replacement),
5162 (bus_service_get_prohibit_replacement):
5163 Functions for setting prohibit replacement.
5165 (bus_service_has_owner):
5166 New function that checks if a connection is in the owner queue of
5170 Add new function signatures.
5172 * dbus/dbus-list.c: (_dbus_list_test):
5173 Add tests for _dbus_list_remove_last and traversing the list backwards.
5176 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
5177 go any further, so return NULL then.
5179 * dbus/dbus-protocol.h:
5180 Add new messages, service flags and service replies.
5182 2003-01-26 Havoc Pennington <hp@pobox.com>
5184 * dbus/dbus-message-builder.c: implement, completely untested.
5186 * test/data/*: add data to be used in testing.
5187 ".message" files are our simple loadable text format.
5188 ".message-raw" will be binary dumps of messages.
5190 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
5192 2003-01-26 Havoc Pennington <hp@pobox.com>
5194 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
5196 * dbus/dbus-errors.c (dbus_result_to_string): add
5199 * dbus/dbus-message-builder.c: new file, will contain code to load
5200 up messages from files. Not implemented yet.
5202 2003-01-26 Havoc Pennington <hp@pobox.com>
5204 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
5205 the sender by setting to NULL
5207 2003-01-26 Havoc Pennington <hp@pobox.com>
5209 The unit tests pass, but otherwise untested. If it breaks, the
5210 tests should have been better. ;-)
5212 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
5215 * dbus/dbus-message.c: redo everything so we maintain
5216 message->header as the only copy of the various fields.
5217 This avoids the possibility of out-of-memory in some cases,
5218 for example dbus_message_lock() can't run out of memory anymore,
5219 and avoids extra copying. Figured I may as well go ahead and do
5220 this since it was busted for dbus_message_lock to not return
5221 failure on OOM, and dbus_message_write_header was totally
5222 unchecked for OOM. Also fixed some random other bugs.
5224 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
5225 that strings are nul-terminated. Also, end_pos can be equal
5226 to string length just not greater than, I think.
5227 (_dbus_marshal_set_int32): new function
5228 (_dbus_marshal_set_uint32): new function
5229 (_dbus_marshal_set_string): new function
5231 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
5232 a warning, init timeout_list to NULL
5233 (dbus_connection_send_message): don't use uninitialized variable
5236 * dbus/dbus-string.c (_dbus_string_replace_len): new function
5238 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5240 * bus/driver.c: (bus_driver_handle_hello),
5241 (bus_driver_send_welcome_message):
5244 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5246 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
5247 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5248 (dbus_connection_unref):
5249 * dbus/dbus-marshal.c: (_dbus_marshal_test):
5250 * dbus/dbus-message.c: (dbus_message_unref),
5253 (dbus_message_get_fields):
5254 Remove debugging printout.
5256 (_dbus_message_loader_return_buffer):
5257 Don't store the header string.
5259 (_dbus_message_test):
5262 2003-01-26 Richard Hult <rhult@codefactory.se>
5264 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
5265 the file descriptor list, since it can change under us.
5267 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5269 * glib/dbus-gmain.c: (dbus_connection_prepare),
5270 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
5271 (remove_watch), (dbus_connection_hookup_with_g_main):
5272 Rewrite the glib handling to use its own GSource instead of a
5273 GIOChannel so we can catch messages put in the queue while waiting
5276 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5279 * bus/connection.c: (connection_disconnect_handler),
5280 (connection_watch_callback), (bus_connection_setup):
5281 * bus/dispatch.c: (send_one_message),
5282 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
5283 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
5285 * bus/driver.c: (bus_driver_send_service_deleted),
5286 (bus_driver_send_service_created), (bus_driver_handle_hello),
5287 (bus_driver_send_welcome_message),
5288 (bus_driver_handle_list_services), (bus_driver_remove_connection),
5289 (bus_driver_handle_message):
5291 Refactor code, put the message dispatching in its own file. Use
5292 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
5295 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5297 * dbus/dbus-internals.h:
5298 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
5300 * dbus/dbus-message.c: (dbus_message_get_sender):
5301 * dbus/dbus-message.h:
5302 Implement dbus_message_get_sender.
5304 * dbus/dbus-protocol.h:
5305 Add message and service defines.
5307 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5309 * dbus/dbus-connection.c: (dbus_connection_send_message):
5310 * dbus/dbus-message-internal.h:
5311 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
5312 (dbus_message_write_header):
5313 Remove _dbus_messag_unlock and don't set the client serial on a
5314 message if one already exists.
5316 2003-01-24 Havoc Pennington <hp@pobox.com>
5318 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
5321 * bus/driver.c (bus_driver_handle_list_services): fix a leak
5324 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5326 * dbus/dbus-list.c: (alloc_link), (free_link):
5327 Use a memory pool for the links.
5329 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5331 * bus/connection.c: (bus_connection_foreach):
5333 Add new bus_connection_foreach function.
5335 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
5336 Add function that broadcasts a message to all clients.
5338 (bus_driver_send_service_created), (bus_driver_handle_hello),
5339 (bus_driver_send_welcome_message),
5340 (bus_driver_handle_list_services), (bus_driver_message_handler):
5341 Implement functions that take care of listing services, and notifying
5342 clients when new services are created.
5344 * bus/services.c: (bus_services_list):
5346 Add new function that returns an array of strings with the currently
5347 registered services.
5350 * glib/dbus-gmain.c:
5351 Update copyright year.
5353 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5355 * dbus/dbus-connection.c: (dbus_connection_send_message):
5356 Unlock the message in case it was sent earlier.
5358 (dbus_connection_send_message_with_reply_and_block):
5359 Remove the reply message from the list.
5361 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5362 Set array_len and new_pos correctly.
5364 (_dbus_marshal_test):
5365 Remove debug output.
5367 * dbus/dbus-message-internal.h:
5368 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
5369 New function that returns the reply serial.
5371 (_dbus_message_unlock):
5372 New function that unlocks a message and resets its header.
5374 (dbus_message_append_string_array),
5375 (dbus_message_get_fields_valist),
5376 (dbus_message_iter_get_field_type),
5377 (dbus_message_iter_get_string_array),
5378 (dbus_message_get_fields),
5379 (dbus_message_append_fields_valist):
5380 Handle string arrays.
5382 (dbus_message_set_sender):
5383 Make this function public since the bus daemon needs it.
5385 (decode_header_data):
5386 Set the reply serial to -1 initially.
5388 * dbus/dbus-message.h:
5389 Add dbus_message_set_sender.
5391 2003-01-24 Havoc Pennington <hp@pobox.com>
5393 * doc/dbus-specification.sgml: add some stuff
5395 2003-01-22 Havoc Pennington <hp@pobox.com>
5397 * doc/dbus-specification.sgml: Start to document the protocol.
5399 2003-01-22 Havoc Pennington <hp@pobox.com>
5401 * dbus/dbus-connection.c
5402 (dbus_connection_send_message_with_reply_and_block): add some @todo
5404 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
5406 2003-01-21 Havoc Pennington <hp@pobox.com>
5408 (patch untested because can't compile)
5410 * bus/driver.c (create_unique_client_name): make this function
5411 never recycle client names. Also, caller should initialize
5414 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
5416 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5418 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5419 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5420 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
5421 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
5422 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5423 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5424 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
5425 * dbus/dbus-marshal.h:
5426 * dbus/dbus-protocol.h:
5427 Add support for marshalling and demarshalling integer, double
5430 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5435 * bus/connection.c: (connection_disconnect_handler):
5436 Remove the connection from the bus driver's list.
5438 (connection_watch_callback): Dispatch messages.
5440 (free_connection_data): Free connection name.
5442 (bus_connection_setup): Add connection to the bus driver's list.
5443 (bus_connection_remove_owned_service):
5444 (bus_connection_set_name), (bus_connection_get_name):
5445 Add functions for setting and getting the connection's name.
5448 Add function headers.
5450 * bus/driver.c: (create_unique_client_name),
5451 (bus_driver_handle_hello_message),
5452 (bus_driver_send_welcome_message), (bus_driver_message_handler),
5453 (bus_driver_add_connection), (bus_driver_remove_connection):
5456 * bus/services.c: (bus_service_free):
5458 New file that handles communication and registreation with the bus
5461 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5463 * dbus/dbus-connection.c: (dbus_connection_send_message):
5464 Add a new client_serial parameter.
5466 (dbus_connection_send_message_with_reply):
5467 Remove a @todo since we've implemented the blocking function.
5469 (dbus_connection_send_message_with_reply_and_block):
5470 New function that sends a message and waits for a reply and
5471 then returns the reply.
5473 * dbus/dbus-connection.h:
5476 * dbus/dbus-errors.c: (dbus_result_to_string):
5477 * dbus/dbus-errors.h:
5478 Add new DBUS_RESULT.
5480 * dbus/dbus-message-internal.h:
5481 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5482 (_dbus_message_set_sender), (dbus_message_write_header),
5483 (dbus_message_new_reply), (decode_header_data),
5484 (_dbus_message_loader_return_buffer), (_dbus_message_test):
5485 * dbus/dbus-message.h:
5486 Add new functions that set the reply serial and sender.
5487 Also marshal and demarshal them correctly and add test.
5489 * dbus/dbus-protocol.h:
5490 Add new DBUS_MESSAGE_TYPE_SENDER.
5493 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5494 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5495 (dbus_connection_hookup_with_g_main):
5496 * glib/test-dbus-glib.c: (main):
5497 Rewrite to use GIOChannel and remove the GSource crack.
5499 * test/echo-client.c: (main):
5500 * test/watch.c: (check_messages):
5501 Update for changed APIs
5503 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5505 * dbus/Makefile.am: Add dbus-timeout.[cħ]
5507 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5508 Create a DBusTimeoutList.
5509 (dbus_connection_set_timeout_functions): Add new function to
5510 set timeout callbacks
5512 * dbus/dbus-connection.h: Add public DBusTimeout API.
5514 * dbus/dbus-message.c: (dbus_message_get_service):
5515 * dbus/dbus-message.h: New function.
5517 * dbus/dbus-server.c: Fix small doc typo.
5519 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5521 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5523 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5524 of the string, just as long as specified.
5526 2003-01-19 Havoc Pennington <hp@pobox.com>
5528 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5531 * dbus/dbus-server.c (dbus_server_set_max_connections)
5532 (dbus_server_get_max_connections, dbus_server_get_n_connections):
5533 keep track of current number of connections, and add API for
5534 setting a max (but haven't implemented enforcing the max yet)
5536 2003-01-18 Havoc Pennington <hp@pobox.com>
5538 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5539 reading/writing if read_watch != NULL or write_watch != NULL.
5541 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5542 the message loader code to actually load message->header and
5543 message->body into the newly-created message.
5545 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5548 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5549 (dbus_connection_get_max_message_size)
5550 (dbus_connection_set_max_live_messages_size)
5551 (dbus_connection_get_max_live_messages_size): implement some
5552 resource limitation functions
5554 * dbus/dbus-resources.c: new file implementing some of the
5555 resource limits stuff
5557 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5558 missing docs, add @todo to handle OOM etc.
5560 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5563 2003-01-18 Havoc Pennington <hp@pobox.com>
5565 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5566 connection if it hasn't been already.
5568 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5569 replace with DisconnectFunction.
5571 2003-01-18 Havoc Pennington <hp@pobox.com>
5573 Building --disable-verbose-mode --disable-asserts --disable-tests
5574 cuts the library from 112K to 45K or so
5576 * configure.in: check for varargs macro support,
5577 add --enable-verbose-mode, --enable-asserts.
5579 * dbus/dbus-internals.h (_dbus_assert): support
5581 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
5583 2003-01-18 Havoc Pennington <hp@pobox.com>
5585 * dbus/dbus-test.c: include config.h so that tests actually run
5587 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
5588 so the failure mode when that assumption fails will be plenty
5591 2003-01-18 Havoc Pennington <hp@pobox.com>
5593 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
5595 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
5598 * test/Makefile.am: don't use special variable "TESTS" for echo-*
5599 since we don't want to use those in make check
5601 2003-01-15 Havoc Pennington <hp@redhat.com>
5607 2003-01-15 Havoc Pennington <hp@redhat.com>
5609 * test/Makefile.am: fix so that test source code ends up in the
5610 distribution on make distcheck
5612 2003-01-15 Havoc Pennington <hp@redhat.com>
5618 2003-01-15 Havoc Pennington <hp@redhat.com>
5620 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
5621 fix build when --disable-tests
5623 * Makefile.am (EXTRA_DIST): put HACKING in here
5625 * HACKING: document procedure for making a tarball release.
5627 2003-01-14 Anders Carlsson <andersca@codefactory.se>
5629 * bus/connection.c: (connection_error_handler),
5630 (bus_connection_setup):
5631 * bus/main.c: (main):
5632 Make sure that the DBusConnectionData struct is NULLed
5633 out to prevent a segfault.
5635 * dbus/dbus-errors.c: (dbus_result_to_string):
5636 * dbus/dbus-errors.h:
5637 * dbus/dbus-message.c: (dbus_message_get_fields),
5638 (dbus_message_get_fields_valist), (_dbus_message_test):
5639 * dbus/dbus-message.h:
5640 Make dbus_message_get_fields return a result code so we can
5641 track invalid fields as well as oom.
5643 2003-01-11 Havoc Pennington <hp@pobox.com>
5645 * configure.in: change --enable-test/--enable-ansi action-if-given
5646 to enable_foo=$enableval instead of enable_foo=yes
5648 2003-01-08 Havoc Pennington <hp@pobox.com>
5650 * dbus/dbus-string.c (_dbus_string_align_length): new function
5652 * dbus/dbus-test-main.c: move main() for test app here
5654 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
5655 symbol to run tests, because dbus-test isn't in the main
5658 Code review nitpicks.
5660 * dbus/dbus-message.c (dbus_message_write_header): add newlines
5661 for people with narrow emacs ;-). Assert client_serial was filled
5662 in. Assert message->name != NULL.
5663 (dbus_message_append_fields): have "first_field_type" arg separate
5664 from va list, needed for C++ binding that also uses varargs IIRC
5665 and helps with type safety
5666 (dbus_message_new): add @todo about using DBusString to store
5667 service/name internally
5668 (dbus_message_new): don't leak ->service and ->name on OOM later
5670 (dbus_message_unref): free the service name
5671 (dbus_message_get_fields): same change to varargs
5672 i.e. first_field_type
5673 (_dbus_message_loader_return_buffer): assert that the message data
5674 is aligned (if not it's a bug in our code). Put in verbose griping
5675 about why we set corrupted = TRUE.
5676 (decode_header_data): add FIXME that char* is evil. Was going to
5677 add FIXME about evil locale-specific string.h strncmp, but just
5678 switched to wacky string-as-uint32 optimization. Move check for
5679 "no room for field name" above get_const_data_len() to avoid
5680 assertion failure in get_const_data_len if we have trailing 2
5681 bytes or the like. Check for service and name fields being
5682 provided twice. Don't leak service/name on error. Require field
5683 names to be aligned to 4 bytes.
5685 * dbus/dbus-marshal.c: move byte swap stuff to header
5686 (_dbus_pack_int32): uscore-prefix
5687 (_dbus_unpack_int32): uscore-prefix
5688 (_dbus_unpack_uint32): export
5689 (_dbus_demarshal_string): add @todo complaining about use of
5691 (_dbus_marshal_get_field_end_pos): add @todo about bad error
5692 handling allowing corrupt data to go unchecked
5694 2003-01-08 Havoc Pennington <hp@redhat.com>
5696 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
5697 to the select() as needed for authentication. (should be using
5698 _dbus_poll() not select, but for another day)
5700 * dbus/dbus.h: include dbus/dbus-protocol.h
5702 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5704 * dbus/Makefile.am (dbusinclude_HEADERS): Install
5707 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5709 * dbus/dbus-internals.c: (_dbus_type_to_string):
5710 New function that returns a string describing a type.
5712 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
5713 * dbus/dbus-marshal.h:
5714 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
5715 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
5716 (dbus_message_iter_get_byte_array):
5717 * dbus/dbus-message.h:
5718 Add new convenience functions for appending and getting message fields.
5719 Also add demarshalling routines for byte arrays.
5721 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5723 * dbus/dbus-connection-internal.h:
5724 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5725 (_dbus_connection_get_next_client_serial),
5726 (dbus_connection_send_message):
5727 * dbus/dbus-internals.h:
5728 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
5729 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
5730 (_dbus_marshal_uint32), (_dbus_demarshal_double),
5731 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
5732 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
5733 (_dbus_verbose_bytes), (_dbus_marshal_test):
5734 * dbus/dbus-marshal.h:
5735 * dbus/dbus-message-internal.h:
5736 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
5737 (dbus_message_write_header), (_dbus_message_lock),
5738 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
5739 (dbus_message_get_name), (dbus_message_append_int32),
5740 (dbus_message_append_uint32), (dbus_message_append_double),
5741 (dbus_message_append_string), (dbus_message_append_byte_array),
5742 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
5743 (dbus_message_iter_unref), (dbus_message_iter_has_next),
5744 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
5745 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
5746 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
5747 (decode_header_data), (_dbus_message_loader_return_buffer),
5748 (message_iter_test), (_dbus_message_test):
5749 * dbus/dbus-message.h:
5750 * dbus/dbus-protocol.h:
5751 * dbus/dbus-test.c: (main):
5753 * glib/test-dbus-glib.c: (message_handler), (main):
5754 * test/echo-client.c: (main):
5755 * test/watch.c: (check_messages):
5756 Make messages sendable and receivable for real.
5758 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5760 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5761 (_dbus_marshal_string), (_dbus_marshal_byte_array):
5762 * dbus/dbus-message.c: (dbus_message_append_int32),
5763 (dbus_message_append_uint32), (dbus_message_append_double),
5764 (dbus_message_append_string), (dbus_message_append_byte_array):
5765 Handle OOM restoration.
5767 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5769 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5770 (_dbus_demarshal_string), (_dbus_marshal_test):
5771 * dbus/dbus-marshal.h:
5772 * dbus/dbus-message.c: (dbus_message_get_name),
5773 Document these functions.
5775 (dbus_message_append_int32), (dbus_message_append_uint32),
5776 (dbus_message_append_double), (dbus_message_append_string),
5777 (dbus_message_append_byte_array):
5778 * dbus/dbus-message.h:
5779 Add functions for adding message fields of different types.
5781 * dbus/dbus-protocol.h:
5782 Add the different types.
5784 2003-01-05 Havoc Pennington <hp@pobox.com>
5786 * bus/connection.c: implement routines for handling connections,
5787 first thing is keeping a list of owned services on each connection
5788 and setting up watches etc.
5790 * bus/services.c: implement a mapping from service names to lists
5793 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
5795 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
5796 to use static mutexes for global data
5798 * dbus/dbus-connection.c (dbus_connection_set_data): add new
5799 collection of functions to set/get application-specific data
5800 on the DBusConnection.
5802 2003-01-04 Havoc Pennington <hp@pobox.com>
5804 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
5805 (_dbus_poll): new function
5807 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
5810 * bus/loop.c: initial code for the daemon main loop
5812 2003-01-04 Havoc Pennington <hp@pobox.com>
5814 * test/watch.c (error_handler): make it safe if the error handler
5815 is called multiple times (if we s/error handler/disconnect
5816 handler/ we should just guarantee it's called only once)
5818 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5819 error handler on disconnect (it's quite possible we should
5820 just change the error handler to a "disconnect handler," I'm
5821 not sure we have any other meaningful errors)
5823 * configure.in: check for getpwnam_r
5825 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5826 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5827 mechanism as in SASL spec, using socket credentials
5829 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5830 (_dbus_send_credentials_unix_socket): new function
5832 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5834 (_dbus_write): only check errno if <0 returned
5835 (_dbus_write_two): ditto
5837 2003-01-02 Anders Carlsson <andersca@codefactory.se>
5839 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5840 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5841 (_dbus_marshal_test):
5842 * dbus/dbus-marshal.h:
5843 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5844 to _dbus_marshal_utf8_string. Also fix some tests.
5846 2002-12-28 Harri Porten <porten@kde.org>
5848 * configure.in: added check for C++ compiler and a very cheesy
5849 check for the Qt integration
5851 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5853 * qt/Makefile.am: added
5855 * qt/.cvsignore: added
5857 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5858 latter, added #ifdef QT_THREAD_SUPPORT guard.
5860 * dbus/Makefile.am: added missing headers for make dist
5862 2002-12-28 Kristian Rietveld <kris@gtk.org>
5864 * dbus/Makefile.am: fixup export-symbols-regex.
5866 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5868 * acinclude.m4: Add this file and put the
5869 PKG_CHECK_MODULE macro in it.
5871 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5873 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5874 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5875 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5876 (_dbus_marshal_test):
5877 Make the demarshalling routines align the pos argument.
5878 Add string marshalling tests and fix the obvious bugs
5881 2002-12-26 Havoc Pennington <hp@pobox.com>
5883 * dbus/dbus-auth.c: fixes fixes fixes
5885 * dbus/dbus-transport-unix.c: wire up support for
5886 encoding/decoding data on the wire
5888 * dbus/dbus-auth.c (_dbus_auth_encode_data)
5889 (_dbus_auth_decode_data): append to target string
5890 instead of nuking it.
5892 2002-12-26 Havoc Pennington <hp@pobox.com>
5894 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5895 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5898 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5899 avoid swap_bytes() overhead (ignoring possible assembly stuff for
5900 now). Main point is because I wanted unpack_uint32 to implement
5902 (_dbus_verbose_bytes): new function
5904 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5906 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5907 mechanism to handle a corrupt message stream
5908 (_dbus_message_loader_new): fix preallocation to only prealloc,
5911 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5912 (_dbus_string_test): enhance tests for copy/move and fix the
5915 * dbus/dbus-transport-unix.c: Hold references in more places to
5916 avoid reentrancy problems
5918 * dbus/dbus-transport.c: ditto
5920 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
5921 leak reference count in no-message case
5923 * test/watch.c (do_mainloop): handle adding/removing watches
5924 during iteration over the watches. Also, ref the connection/server
5925 stored on a watch, so we don't try to mangle a destroyed one.
5927 * dbus/dbus-transport-unix.c (do_authentication): perform
5930 * dbus/dbus-auth.c (get_state): add a state
5931 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
5932 (_dbus_auth_get_unused_bytes): append the unused bytes
5933 to the passed in string, rather than prepend
5935 * dbus/dbus-transport.c (_dbus_transport_init_base): create
5936 the auth conversation DBusAuth
5938 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
5939 (_dbus_transport_new_for_domain_socket): when creating a
5940 transport, pass in whether it's a client-side or server-side
5941 transport so we know which DBusAuth to create
5943 2002-12-03 Havoc Pennington <hp@pobox.com>
5945 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
5946 _after_ finalizing the derived members
5947 (unix_connection_set): unref watch if we fail to add it
5949 * dbus/dbus-connection.c (dbus_connection_unref): delete the
5950 transport first, so that the connection owned by the
5951 transport will be valid as the transport finalizes.
5953 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
5954 if necessary, and remove watches from the connection.
5956 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
5958 2002-12-26 Anders Carlsson <andersca@codefactory.se>
5960 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5961 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5962 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5963 (_dbus_marshal_test):
5964 * dbus/dbus-marshal.h:
5965 Add string marshal functions and have the demarshal functions
5966 return the new position.
5968 2002-12-25 Havoc Pennington <hp@pobox.com>
5970 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
5971 it is a simple protocol that just maps directly to SASL.
5973 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
5974 initial implementation, not actually used yet.
5976 * dbus/dbus-string.c (_dbus_string_find): new function
5977 (_dbus_string_equal): new function
5978 (_dbus_string_base64_encode): new function
5979 (_dbus_string_base64_decode): new function
5981 2002-12-25 Anders Carlsson <andersca@codefactory.se>
5984 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
5985 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5986 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5987 (_dbus_demarshal_uint32), (_dbus_marshal_test):
5988 * dbus/dbus-marshal.h:
5989 * dbus/dbus-protocol.h:
5990 * dbus/dbus-test.c: (main):
5992 Add un-optimized marshalling/demarshalling routines.
5994 2002-12-25 Harri Porten <porten@kde.org>
5996 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
5998 2002-12-24 Zack Rusin <zack@kde.org>
6000 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
6001 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
6004 2002-12-24 Havoc Pennington <hp@pobox.com>
6006 * glib/dbus-gthread.c: fix include
6008 * glib/dbus-glib.h: rename DBusMessageHandler for now.
6009 I think glib API needs to change, though, as you don't
6010 want to use DBusMessageFunction, you want to use the
6011 DBusMessageHandler object. Probably
6012 dbus_connection_open_with_g_main_loop()
6013 and dbus_connection_setup_g_main_loop() or something like that
6014 (but think of better names...) that just create a connection
6015 that has watch/timeout functions etc. already set up.
6017 * dbus/dbus-connection.c
6018 (dbus_connection_send_message_with_reply): new function just to
6019 show how the message handler helps us deal with replies.
6021 * dbus/dbus-list.c (_dbus_list_remove_last): new function
6023 * dbus/dbus-string.c (_dbus_string_test): free a string that
6026 * dbus/dbus-hash.c: use memory pools for the hash entries
6027 (rebuild_table): be more paranoid about overflow, and
6028 shrink table when we can
6029 (_dbus_hash_test): reduce number of sprintfs and write
6030 valid C89. Add tests for case where we grow and then
6031 shrink the hash table.
6033 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
6035 * dbus/dbus-connection.c (dbus_connection_register_handler)
6036 (dbus_connection_unregister_handler): new functions
6038 * dbus/dbus-message.c (dbus_message_get_name): new
6040 * dbus/dbus-list.c: fix docs typo
6042 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
6043 an object representing a handler for messages.
6045 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6048 * glib/dbus-gthread.c: (dbus_gthread_init):
6049 Don't use the gdbus prefix for public functions.
6051 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6055 Add GLib checks and fixup .pc files
6059 * glib/dbus-gmain.c: (gdbus_connection_prepare),
6060 (gdbus_connection_check), (gdbus_connection_dispatch),
6061 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
6062 (dbus_connection_gsource_new):
6063 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
6064 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
6065 * glib/test-dbus-glib.c: (message_handler), (main):
6068 2002-12-15 Harri Porten <porten@kde.org>
6070 * autogen.sh: check for libtoolize before attempting to use it
6072 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
6075 * .cvsignore: ignore more stamp files
6077 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
6079 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
6080 without make install.
6082 2002-12-15 Havoc Pennington <hp@pobox.com>
6084 * dbus/dbus-threads.c: add thread stubs that a higher library
6085 layer can fill in. e.g. the GLib wrapper might fill them in with
6086 GThread stuff. We still need to use this thread API to
6087 thread-safe-ize the library.
6089 2002-12-12 Havoc Pennington <hp@pobox.com>
6091 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
6092 below new interfaces and include fewer system headers.
6094 * dbus/dbus-sysdeps.c (_dbus_read): new function
6095 (_dbus_write): new function
6096 (_dbus_write_two): new function
6097 (_dbus_connect_unix_socket): new function
6098 (_dbus_listen_unix_socket): new function
6100 * dbus/dbus-message-internal.h: change interfaces to use
6103 2002-12-11 Havoc Pennington <hp@pobox.com>
6105 * dbus/dbus-types.h: add dbus_unichar
6107 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
6109 * dbus/dbus-connection.c (dbus_connection_send_message): return
6112 * dbus/dbus-transport.c: include dbus-watch.h
6114 * dbus/dbus-connection.c: include dbus-message-internal.h
6116 * HACKING: add file with coding guidelines stuff.
6118 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
6119 handling here, for security purposes (as in vsftpd). Not actually
6120 using this class yet.
6122 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
6123 system/libc usage here, as in vsftpd, for ease of auditing (and
6124 should also simplify portability). Haven't actually moved all the
6125 system/libc usage into here yet.
6127 2002-11-25 Havoc Pennington <hp@pobox.com>
6129 * dbus/dbus-internals.c (_dbus_verbose): fix to not
6130 always print the first verbose message.
6132 2002-11-24 Havoc Pennington <hp@pobox.com>
6134 * test/echo-client.c, test/echo-server.c: cheesy test
6137 * configure.in (AC_CHECK_FUNCS): check for writev
6139 * dbus/dbus-message.c (_dbus_message_get_network_data): new
6142 * dbus/dbus-list.c (_dbus_list_foreach): new function
6144 * dbus/dbus-internals.c (_dbus_verbose): new function
6146 * dbus/dbus-server.c, dbus/dbus-server.h: public object
6147 representing a server that listens for connections.
6149 * dbus/.cvsignore: create
6151 * dbus/dbus-errors.h, dbus/dbus-errors.c:
6152 public API for reporting errors
6154 * dbus/dbus-connection.h, dbus/dbus-connection.c:
6155 public object representing a connection that
6156 sends/receives messages. (Same object used for
6157 both client and server.)
6159 * dbus/dbus-transport.h, dbus/dbus-transport.c:
6160 Basic abstraction for different kinds of stream
6161 that we might read/write messages from.
6163 2002-11-23 Havoc Pennington <hp@pobox.com>
6165 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
6168 * dbus/dbus-test.c (main): add list test, and include
6169 dbus-test.h as intended
6171 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
6172 (_dbus_hash_table_remove_int): return value indicates
6173 whether the entry existed to remove
6175 * dbus/dbus-list.c: add linked list utility class,
6178 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
6181 2002-11-23 Havoc Pennington <hp@pobox.com>
6183 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
6184 DBUS_END_DECLS to nothing, that should fix this once and for all
6186 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
6188 * dbus/dbus-message.c, dbus/dbus-hash.c:
6189 add some missing @brief
6191 2002-11-23 Havoc Pennington <hp@pobox.com>
6193 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
6194 to avoid confusing Doxygen
6196 * dbus/dbus-hash.c: @} not }@
6198 * dbus/dbus-message.c (struct DBusMessage): split out
6201 2002-11-23 Havoc Pennington <hp@pobox.com>
6203 * configure.in: pile on more warning flags if using gcc
6205 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
6206 to document static functions
6208 * configure.in: add summary to end of configure so it
6209 looks nice and attractive
6211 * dbus/dbus-hash.c: finish implementation and write unit
6214 * configure.in: add --enable-tests to enable unit tests
6216 * dbus/dbus-test.c: test program to run unit tests
6217 for all files in dbus/*, initially runs a test for
6220 * dbus/dbus-internals.h: file to hold some internal utility stuff
6222 2002-11-22 Havoc Pennington <hp@redhat.com>
6224 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
6225 "ported" away from Tcl
6227 * dbus/dbus-types.h: header for types such as dbus_bool_t
6229 2002-11-22 Havoc Pennington <hp@redhat.com>
6231 * dbus/dbus.h: fixups for doc warnings
6233 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
6235 (QUIET): make it quiet so we can see warnings
6237 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
6239 2002-11-22 Havoc Pennington <hp@redhat.com>
6241 * Makefile.am: include "Doxyfile" target in all-local
6243 * configure.in: generate the Doxyfile
6245 * Doxyfile.in: move Doxyfile here, so we can use
6246 configure to generate a Doxyfile with the right
6249 2002-11-22 Havoc Pennington <hp@redhat.com>
6251 * dbus/dbus-message.c: move inline docs into .c file
6253 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
6254 so all docs are under doc/
6255 (MAN_EXTENSION): generate man pages. Use extension
6256 ".3dbus" which matches ".3qt" on my system,
6257 I guess this is OK, I don't know really.
6258 (FILE_PATTERNS): look for .c files not .h, makes sense
6261 2002-11-22 Havoc Pennington <hp@pobox.com>
6263 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
6264 because any app can be a server, and any app can be a client,
6265 the bus is a special kind of server.
6267 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
6269 * Doxyfile : adding. Still needs Makefile rules to be generated
6270 automatically (just run "doxygen" in the toplevel dir for now to
6273 * dbus/dbus-message.h : Adding sample docs (javadoc since
6274 resembles gtk-doc a little more)
6276 * dbus/dbus.h : Adding sample docs
6278 2002-11-21 Havoc Pennington <hp@redhat.com>
6280 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
6281 so we can allow ourselves to include files directly,
6282 instead of having to use dbus.h
6284 * dbus/dbus.h: fill in
6286 * dbus/dbus-message.h: sketch out a sample header file.
6287 Include griping if you include it directly instead of
6290 * dbus/dbus-macros.h: new file with macros for extern "C",
6291 TRUE/FALSE, NULL, etc.
6293 * doc/file-boilerplate.c: put include guards in here
6295 2002-11-21 Havoc Pennington <hp@redhat.com>
6297 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
6299 * COPYING: include the GPL as well, and license code
6300 under both AFL and GPL.
6302 2002-11-21 Havoc Pennington <hp@redhat.com>
6304 * acconfig.h: get rid of this
6306 * autogen.sh (run_configure): add --no-configure option
6308 * configure.in: remove AC_ARG_PROGRAM to make
6309 autoconf complain less. add AC_PREREQ.
6310 add AC_DEFINE third arg.
6312 2002-11-21 Anders Carlsson <andersca@codefactory.se>
6315 Fix references so we can distcheck.
6317 2002-11-21 Havoc Pennington <hp@redhat.com>
6319 * Initial module creation