1 2004-03-16 Richard Hult <richard@imendio.com>
3 * bus/activation.c: (bus_activation_service_created),
4 (bus_activation_send_pending_auto_activation_messages),
5 (bus_activation_activate_service):
7 * bus/dispatch.c: (bus_dispatch),
8 (check_nonexistent_service_auto_activation),
9 (check_service_auto_activated),
10 (check_segfault_service_auto_activation),
11 (check_existent_service_auto_activation), (bus_dispatch_test):
12 * bus/driver.c: (bus_driver_handle_activate_service):
13 * bus/services.c: (bus_registry_acquire_service):
14 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
15 (dbus_message_get_auto_activation):
16 * dbus/dbus-message.h:
17 * dbus/dbus-protocol.h: Implement auto-activation.
19 * doc/dbus-specification.xml: Add auto-activation to the spec.
21 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
23 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
24 fix a bug with CUSTOM types.
26 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
27 a unit test for this bug (used to fail).
29 2004-03-12 Mikael Hallendal <micke@imendio.com>
32 (babysitter_watch_callback): notify all pending activations waiting for
33 the same exec that the activation failed.
34 (bus_activation_activate_service): shortcut the activation if we
35 already waiting for the same executable to start up.
37 2004-03-12 Mikael Hallendal <micke@imendio.com>
40 - Added service file reloading.
41 Each service files directory is kept in an hash table in
42 BusActivation and each BusActivationEntry knows what .service-file it
43 was read from. So when you try to activate a service the bus will
44 check if it's been updated, removed or if new .service-files has
46 - Test code at the bottom for the service file reloading.
47 * bus/test-main.c: (main):
49 - added service reloading test.
50 * dbus/dbus-sysdeps.c:
51 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
53 2004-03-08 Michael Meeks <michael@ximian.com>
55 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
56 bail immediately if disconnected, to avoid busy loop.
58 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
59 cleanup cut/paste/inefficiency.
61 2004-03-01 David Zeuthen <david@fubar.dk>
63 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
64 bug where args were used twice. This bug resulted in a segfault
65 on a Debian/PPC system when starting the messagebus daemon. Include
66 dbus-sysdeps.h for DBUS_VA_COPY
68 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
70 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
71 appropriate va_copy implementation. From GLib
73 2004-02-24 Joe Shaw <joe@ximian.com>
75 * bus/services.c (bus_registry_acquire_service): We need to pass
76 in the service name to dbus_set_error() to prevent a crash.
78 2003-12-26 Anders Carlsson <andersca@gnome.org>
80 * AUTHORS: Reveal my True identity.
82 2003-12-17 Mikael Hallendal <micke@imendio.com>
84 * dbus/dbus-message.c: (dbus_message_append_args_valist):
85 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
87 2003-12-13 Mikael Hallendal <micke@imendio.com>
89 * doc/TODO: Added not about better error check of configuration files.
91 2003-12-02 Richard Hult <richard@imendio.com>
93 * Update AFL version to 2.0 throughout the source files to reflect
94 the update that was done a while ago.
96 2003-12-02 Richard Hult <richard@imendio.com>
98 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
99 wrote_dict_key to FALSE on the iter that the dict is appended to,
100 just like when appending other types. Fixes a bug where a dict
101 couldn't be put inside a dict.
102 (dbus_message_iter_append_dict_key): Fix typo in warning message.
103 (message_iter_test, _dbus_message_test): Add test case for dict
106 2003-12-01 David Zeuthen <david@fubar.dk>
108 * python/dbus.py: Add the actual message when calling the reciever
109 of a signal such that parameters can be inspected. Add the method
110 remove_signal_receiver
112 2003-11-26 Mikael Hallendal <micke@imendio.com>
116 * glib/*.[ch]: Made ref functions return the pointer
118 2003-11-25 Zack Rusin <zack@kde.org>
120 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
122 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
125 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
126 the Integrator and to better fit with the server,
128 2003-11-24 Zack Rusin <zack@kde.org>
130 * qt/connection.h, qt/connection.cpp: removing initDbus method since
131 the integrator handles it now
133 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
134 since QTimer wasn't really meant to be used the way DBusTimeout is
136 2003-11-24 Zack Rusin <zack@kde.org>
138 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
139 Integrator class which integrates D-BUS with the Qt event loop,
141 * qt/connection.h, qt/connection.cpp: Move all the code which
142 was dealing with D-BUS integration to the Integrator class,
143 and start using Integrator,
145 2003-11-23 Zack Rusin <zack@kde.org>
147 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
150 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
151 switching namespaces to DBusQt, reworking the class,
153 * Makefile.cvs: switching dependencies so that it matches KDE
156 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
159 2003-11-19 Havoc Pennington <hp@redhat.com>
163 * configure.in: bump version to 0.20
165 * configure.in (have_qt): add yet another place to look for qt
166 (someone hand trolltech a .pc file...)
168 2003-11-01 Havoc Pennington <hp@redhat.com>
170 * doc/dbus-specification.xml: add state machine docs on the auth
171 protocol; just a first draft, I'm sure it's wrong.
173 2003-10-28 David Zeuthen <david@fubar.dk>
175 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
176 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
178 2003-10-28 Havoc Pennington <hp@redhat.com>
180 * dbus/dbus-message.c (get_next_field): delete unused function
182 2003-10-28 Havoc Pennington <hp@redhat.com>
184 * bus/expirelist.c (do_expiration_with_current_time): detect
185 failure of the expire_func due to OOM
187 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
189 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
190 NoReply error that's now created by the bus when the service exits
192 2003-10-28 Havoc Pennington <hp@redhat.com>
194 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
195 tests for set_path, set_interface, set_member, etc.
197 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
199 * dbus/dbus-message.c (set_string_field): always just delete and
200 re-append the field; accept NULL for deletion
201 (re_align_fields_recurse): reimplement
203 2003-10-26 Havoc Pennington <hp@redhat.com>
205 * dbus/dbus-connection.c: fix docs to properly describe the
207 (_dbus_connection_notify_disconnected): remove this function;
208 we can't synchronously add the disconnected message, we have to
209 do it after we've queued any remaining real messages
210 (_dbus_connection_get_dispatch_status_unlocked): queue the
211 disconnect message only if the transport has finished queueing all
212 its real messages and is disconnected.
213 (dbus_connection_disconnect): update the dispatch status here
215 2003-10-22 Havoc Pennington <hp@redhat.com>
217 * bus/bus.c (bus_context_check_security_policy): fix up assertion
219 * bus/connection.c (bus_transaction_send_from_driver): set the
220 destination to the connection's base service
222 2003-10-20 Havoc Pennington <hp@redhat.com>
224 hmm, make check is currently not passing.
226 * doc/dbus-specification.xml: add requirement that custom type
227 names follow the same rules as interface names.
229 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
230 duplication and allow 'c' to be 'custom'; dict is now 'm' for
233 * doc/dbus-specification.xml: update type codes to match
234 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
235 CUSTOM. Add type OBJECT_PATH to the spec.
237 2003-10-17 Havoc Pennington <hp@redhat.com>
239 * bus/driver.c (create_unique_client_name): use "." as separator
240 in base service names instead of '-'
242 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
243 byte at the end of the string
245 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
246 optimization macros since string validation seems to be a slow
249 * doc/dbus-specification.xml: restrict valid
250 service/interface/member/error names. Add test suite code for the
253 * dbus/dbus-string.c: limit service/interface/member/error names
256 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
257 format arg to verbose spew
259 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
260 memory, return instead of g_error
262 * test/test-service.c (path_message_func): support emitting a
265 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
266 activation bus type if DBUS_BUS_ACTIVATION was set; default to
267 assuming the activation bus was the session bus so that services
268 started manually will still register.
269 (init_connections_unlocked): fix so that in OOM situation we get
270 the same semantics when retrying the function
272 * test/test-service.c (main): change to use path registration, to
273 test those codepaths; register with DBUS_BUS_ACTIVATION rather
274 than DBUS_BUS_SESSION
276 2003-10-16 Havoc Pennington <hp@redhat.com>
278 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
280 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
281 coverage of the tests
282 (coverage-report.txt): don't move the .da and .bbg files around
284 2003-10-16 Havoc Pennington <hp@redhat.com>
286 * bus/bus.c (struct BusContext): remove struct field I didn't mean
289 2003-10-16 Havoc Pennington <hp@redhat.com>
291 * bus/connection.c (bus_pending_reply_expired): either cancel or
293 (bus_connections_check_reply): use unlink, not remove_link, as we
294 don't want to free the link; fixes double free mess
296 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
297 where no reply was received
299 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
302 * bus/signals.c (match_rule_matches): add special cases for the
303 bus driver, so you can match on sender/destination for it.
305 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
306 DBUS_PRINT_BACKTRACE is set
308 * dbus/dbus-internals.c: add pid to assertion failure messages
310 * dbus/dbus-connection.c: add message type code to the debug spew
312 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
313 sender=foo not service=foo
315 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
316 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
317 DBUS_ACTIVATION_ADDRESS instead
319 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
320 DBUS_SYSTEM_BUS_ADDRESS if appropriate
322 * bus/bus.c (bus_context_new): handle OOM copying bus type into
325 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
326 (dbus_message_iter_get_object_path_array): new function (half
327 finished, disabled for the moment)
329 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
330 DBUS_MESSAGE_TYPE_ERROR
332 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
333 avoid redirecting stderr to /dev/null
334 (babysit): close stdin if not doing the "exit_with_session" thing
336 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
337 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
338 stdout/stdin, so things don't get confused
340 * bus/system.conf.in: fix to allow replies, I modified .conf
341 instead of .conf.in again.
343 2003-10-14 David Zeuthen <david@fubar.dk>
345 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
346 argtype to arg_type when raising unknown arg type exception.
347 Changed type list to reflect the changes in dbus-protocol.h so
348 the bindings actually work.
350 2003-10-14 Havoc Pennington <hp@redhat.com>
352 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
353 to have a bug keeping it from outputting the .da files sometimes
354 (string_get_string): don't append garbage nul bytes to the string.
356 2003-10-15 Seth Nickell <seth@gnome.org>
358 * python/Makefile.am:
360 Include dbus_h_wrapper.h in the dist tarball.
362 2003-10-14 Havoc Pennington <hp@redhat.com>
364 * bus/bus.c (bus_context_check_security_policy): revamp this to
365 work more sanely with new policy-based requested reply setup
367 * bus/connection.c (bus_transaction_send_from_driver): set bus
368 driver messages as no reply
370 * bus/policy.c (bus_client_policy_check_can_receive): handle a
371 requested_reply attribute on allow/deny rules
373 * bus/system.conf: add <allow requested_reply="true"/>
375 * bus/driver.c (bus_driver_handle_message): fix check for replies
376 sent to the bus driver, which was backward. How did this ever work
377 at all though? I think I'm missing something.
379 * dbus/dbus-message.c (decode_header_data): require error and
380 method return messages to have a reply serial field to be valid
381 (_dbus_message_loader_queue_messages): break up this function;
382 validate that reply serial and plain serial are nonzero;
383 clean up the OOM/error handling.
384 (get_uint_field): don't return -1 from this
385 (dbus_message_create_header): fix signed/unsigned bug
387 * bus/connection.c (bus_connections_expect_reply): save serial of
388 the incoming message, not reply serial
390 2003-10-14 Havoc Pennington <hp@redhat.com>
392 * bus/connection.c: implement pending reply tracking using
395 * bus/bus.c (bus_context_check_security_policy): verify that a
396 reply is pending in order to allow a reply to be sent. Deny
397 messages of unknown type.
399 * bus/dbus-daemon-1.1.in: update to mention new resource limits
401 * bus/bus.c (bus_context_get_max_replies_per_connection): new
402 (bus_context_get_reply_timeout): new
404 2003-10-13 Seth Nickell <seth@gnome.org>
406 * python/Makefile.am:
408 Pass "make distcheck": remove a couple files from DIST_FILES
409 that weren't included in the final version.
411 2003-10-12 Havoc Pennington <hp@pobox.com>
413 Added test code that 1) starts an actual bus daemon and 2) uses
414 DBusGProxy; fixed bugs that were revealed by the test. Lots
415 more testing possible, but this is the basic framework.
417 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
418 empty proxy lists from the proxy list hash
420 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
421 couple of return_if_fail checks
423 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
424 to allocate, so everything is cleared to NULL as it should be.
426 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
427 source as data to dbus_connection_set_timeout_functions() as the
428 timeout functions expected
430 * test/glib/run-test.sh: add a little script to start up a message
431 bus and run tests using it
433 * tools/dbus-launch.1: updates
435 * tools/dbus-launch.c (main): add --config-file option
437 * tools/dbus-launch.c (main): remove confusing else if (runprog)
438 that could never be reached.
440 * dbus/dbus-message.c (dbus_message_new_method_return)
441 (dbus_message_new_error, dbus_message_new_signal): set the
442 no-reply-expected flag on all these. Redundant, but may
443 as well be consistent.
445 2003-10-11 Havoc Pennington <hp@pobox.com>
447 * test/decode-gcov.c (function_solve_graph): make broken block
448 graph a nonfatal error since it seems to be broken. Need to debug
451 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
452 can't just check type > INVALID < LAST anymore
454 * dbus/dbus-message.c (dbus_message_get_signature): new function
455 (dbus_message_has_signature): new function
456 (struct DBusMessage): add signature field (right now it isn't sent
457 over the wire, just generated on the fly)
458 (dbus_message_copy): copy the signature, and init strings to
459 proper length to avoid some reallocs
460 (dbus_message_iter_init_array_iterator): return void, since it
462 (dbus_message_iter_init_dict_iterator): return void since it can't fail
463 (_dbus_message_loader_queue_messages): add silly temporary hack to
464 fill in message->signature on load
466 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
467 characters, so they are relatively human-readable.
469 2003-10-11 Havoc Pennington <hp@pobox.com>
471 * dbus/dbus-message.c (_dbus_message_test): add more test
472 coverage, but #if 0 for now since they uncover a bug
473 not fixed yet; I think in re_align_field_recurse()
474 (re_align_field_recurse): add FIXME about broken assertion
476 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
478 * bus/connection.c: share a couple code bits with expirelist.c
480 * bus/expirelist.h, bus/expirelist.c: implement a generic
481 expire-items-after-N-seconds facility, was going to share between
482 expiring connections and replies, decided not to use for expiring
485 * COPYING: include AFL 2.0 (still need to change all the file headers)
487 2003-10-09 Havoc Pennington <hp@redhat.com>
489 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
490 gcc 3.3. Not that we do anything about it yet.
492 * bus/signals.c (bus_match_rule_parse): impose max length on the
495 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
497 2003-10-09 Havoc Pennington <hp@redhat.com>
499 Make matching rules theoretically work (add parser).
501 * bus/bus.c (bus_context_check_security_policy): fix up to handle
502 the case where destination is explicitly specified as bus driver
503 and someone else is eavesdropping.
505 * bus/policy.c (bus_client_policy_check_can_receive): fix up
506 definition of eavesdropping and assertion
508 * tools/dbus-send.c (main): use dbus_message_type_from_string
510 * bus/signals.c (bus_match_rule_parse): implement
512 * dbus/dbus-message.c (dbus_message_type_from_string): new
514 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
516 2003-10-02 Havoc Pennington <hp@pobox.com>
518 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
519 dbus_gproxy_oneway_call
521 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
522 (dbus_server_setup_with_g_main): fix to allow calling them more
523 than once on the same args
524 (dbus_bus_get_with_g_main): new function
526 2003-10-02 Havoc Pennington <hp@redhat.com>
528 * doc/dbus-tutorial.xml: write some stuff
530 2003-09-29 Havoc Pennington <hp@pobox.com>
532 * configure.in: split checks for Doxygen from XML docs, check for
535 * doc/Makefile.am: XML-ify all the docs, and add a blank
538 2003-09-29 Havoc Pennington <hp@pobox.com>
540 * Merge dbus-object-names branch. To see the entire patch
541 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
543 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
545 2003-09-28 Havoc Pennington <hp@pobox.com>
547 * HACKING: update to reflect new server
549 2003-09-26 Seth Nickell <seth@gnome.org>
552 * python/examples/example-signals.py:
554 Start implementing some notions of signals. The API
555 is really terrible, but they sort of work (with the
556 exception of being able to filter by service, and to
557 transmit signals *as* a particular service). Need to
558 figure out how to make messages come from the service
561 * python/dbus_bindings.pyx.in:
563 Removed duplicate message_handler callbacks.
565 2003-09-25 Havoc Pennington <hp@redhat.com>
567 * bus/session.conf.in: fix my mess
569 2003-09-25 Havoc Pennington <hp@pobox.com>
571 * bus/session.conf.in: fix security policy, reported by Seth Nickell
573 2003-09-25 Seth Nickell <seth@gnome.org>
575 * python/examples/example-service.py:
577 Johan notices complete wrong code in example-service, but
578 completely wrong in a way that works exactly the same (!).
579 Johan is confused, how could this possibly work? Example
580 code fails to serve purpose of making things clear.
583 2003-09-25 Mark McLoughlin <mark@skynet.ie>
585 * doc/dbus-specification.sgml: don't require header fields
586 to be 4-byte aligned and specify that fields should be
587 distinguished from padding by the fact that zero is not
590 * doc/TODO: remove re-alignment item and add item to doc
591 the OBJECT_PATH type.
593 * dbus/dbus-message.c:
594 (HeaderField): rename the original member to value_offset
595 and introduce a name_offset member to keep track of where
596 the field actually begins.
597 (adjust_field_offsets): remove.
598 (append_int_field), (append_uint_field),
599 (append_string_field): don't align the start of the header
600 field to a 4-byte boundary.
601 (get_next_field): impl finding the next marhsalled field
603 (re_align_field_recurse): impl re-aligning a number of
604 already marshalled fields.
605 (delete_field): impl deleting a field of any type and
606 re-aligning any following fields.
607 (delete_int_or_uint_field), (delete_string_field): remove.
608 (set_int_field), (set_uint_field): no need to re-check
609 that we have the correct type for the field.
610 (set_string_field): ditto and impl re-aligning any
612 (decode_header_data): update to take into account that
613 the fields aren't 4-byte aligned any more and the new
614 way to distinguish padding from header fields. Also,
615 don't exit when there is too much header padding.
616 (process_test_subdir): print the directory.
617 (_dbus_message_test): add test to make sure a following
618 field is re-aligned correctly after field deletion.
620 * dbus/dbus-string.[ch]:
621 (_dbus_string_insert_bytes): rename from insert_byte and
622 allow the insert of multiple bytes.
623 (_dbus_string_test): test inserting multiple bytes.
625 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
626 warning note to docs about having to re-align any
627 marshalled values following the string.
629 * dbus/dbus-message-builder.c:
630 (append_string_field), (_dbus_message_data_load):
631 don't align the header field.
633 * dbus/dbus-auth.c: (process_test_subdir): print the
636 * test/break-loader.c: (randomly_add_one_byte): upd. for
639 * test/data/invalid-messages/bad-header-field-alignment.message:
642 * test/data/valid-messages/unknown-header-field.message: shove
643 a dict in the unknown field.
645 2003-09-25 Seth Nickell <seth@gnome.org>
648 * python/dbus_bindings.pyx.in:
650 Handle return values.
652 * python/examples/example-client.py:
653 * python/examples/example-service.py:
655 Pass back return values from the service to the client.
657 2003-09-24 Seth Nickell <seth@gnome.org>
661 Connect Object methods (when you are sharing an object) up... pass
662 in a list of methods to be shared. Sharing all the methods just
663 worked out too weird. You can now create nice Services over the
666 * python/dbus_bindings.pyx.in:
668 Keep references to user_data tuples passed into C functions so
669 Python doesn't garbage collect on us.
671 Implement MethodReturn and Error subclasses of Message for creating
672 DBusMessage's of those types.
674 * python/examples/example-client.py:
675 * python/examples/example-service.py:
677 Simple example code showing both how create DBus services and objects,
680 2003-09-23 Havoc Pennington <hp@pobox.com>
682 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
684 2003-09-23 Havoc Pennington <hp@redhat.com>
686 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
687 (dbus_gproxy_disconnect_signal): implement
688 (dbus_gproxy_manager_remove_signal_match): implement
689 (dbus_gproxy_manager_add_signal_match): implement
690 (dbus_gproxy_oneway_call): implement
692 2003-09-23 Havoc Pennington <hp@pobox.com>
694 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
695 subclass. This means dropping the transparent thread safety of the
696 proxy; you now need a separate proxy per-thread, or your own
697 locking on the proxy. Probably right anyway.
698 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
700 2003-09-22 Havoc Pennington <hp@redhat.com>
702 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
704 2003-09-21 Seth Nickell <seth@gnome.org>
706 First checkin of the Python bindings.
709 * python/Makefile.am:
710 * python/dbus_bindings.pyx.in:
711 * python/dbus_h_wrapper.h:
713 Pieces for Pyrex to operate on, building a dbus_bindings.so
714 python module for low-level access to the DBus APIs.
718 High-level Python module for accessing DBus objects.
723 Build stuff for the python bindings.
727 Extra macro needed for finding the Python C header files.
729 2003-09-21 Havoc Pennington <hp@pobox.com>
731 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
732 implementing the proxy manager, didn't get very far.
734 * dbus/dbus-bus.c (dbus_bus_add_match): new
735 (dbus_bus_remove_match): new
737 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
738 path_name argument; adjust the other not-yet-implemented
739 gproxy constructors to be what I think they should be.
741 2003-09-21 Havoc Pennington <hp@pobox.com>
743 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
744 by default for message bus connections.
746 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
747 exit_on_disconnect flag is set and we process the disconnected
749 (dbus_connection_set_exit_on_disconnect): new function
751 2003-09-21 Havoc Pennington <hp@pobox.com>
753 Get matching rules mostly working in the bus; only actually
754 parsing the rule text remains. However, the client side of
755 "signal connections" hasn't been started, this patch is only the
758 * dbus/dispatch.c: fix for the matching rules changes
760 * bus/driver.c (bus_driver_handle_remove_match)
761 (bus_driver_handle_add_match): send an ack reply from these
764 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
765 arguments, reported by Seth Nickell
767 * bus/config-parser.c (append_rule_from_element): support
768 eavesdrop=true|false attribute on policies so match rules
769 can be prevented from snooping on the system bus.
771 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
772 and "destination" in attribute names; fix some docs bugs;
773 add eavesdrop=true|false attribute
775 * bus/driver.c (bus_driver_handle_add_match)
776 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
779 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
780 rid of broadcast service concept, signals are just always broadcast
782 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
783 mostly implement matching rules stuff (currently only exposed as signal
786 2003-09-21 Mark McLoughlin <mark@skynet.ie>
788 * doc/dbus-specification.sgml: Change the header field name
789 to be an enum and update the rest of the spec to reference
790 the fields using the conventinal name.
792 * dbus/dbus-protocol.h: update to reflect the spec.
794 * doc/TODO: add item to remove the 4 byte alignment requirement.
796 * dbus/dbus-message.c: Remove the code to generalise the
797 header/body length and serial number header fields as named
798 header fields so we can reference field names using the
800 (append_int_field), (append_uint_field), (append_string_field):
801 Append the field name as a byte rather than four chars.
802 (delete_int_or_uint_field), (delete_string_field): reflect the
803 fact that the field name and typecode now occupy 4 bytes instead
805 (decode_string_field), (decode_header_data): update to reflect
806 protocol changes and move the field specific encoding from
807 decode_string_field() back into decode_header_data().
809 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
810 Add utility to aid debugging.
812 * dbus/dbus-message-builder.c:
813 (append_string_field), (_dbus_message_data_load): Update to
814 reflect protocol changes; Change the FIELD_NAME directive
815 to HEADER_FIELD and allow it to take the field's conventional
816 name rather than the actual value.
818 * test/data/*/*.message: Update to use HEADER_FIELD instead
819 of FIELD_NAME; Always align the header on an 8 byte boundary
820 *before* updating the header length.
822 2003-09-15 Havoc Pennington <hp@pobox.com>
824 * dbus/dbus-pending-call.c: add the get/set object data
825 boilerplate as for DBusConnection, etc. Use generic object data
826 for the notify callback.
828 * glib/dbus-gparser.c (parse_node): parse child nodes
830 * tools/dbus-viewer.c: more hacking on the dbus-viewer
832 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
833 contain functions shared between the convenience lib and the
836 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
837 -export-symbols-regex to the GLib library
839 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
840 fix the locking in here, and add a default handler for
841 Introspect() that just returns sub-nodes.
843 2003-09-14 Havoc Pennington <hp@pobox.com>
845 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
846 rather than gfoo consistent
848 * glib/dbus-gproxy.h: delete for now, move contents to
849 dbus-glib.h, because the include files don't work right since we
850 aren't in the dbus/ subdir.
852 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
853 (dbus_gproxy_end_call): finish
854 (dbus_gproxy_begin_call): finish
856 * glib/dbus-gmain.c (dbus_set_g_error): new
858 * glib/dbus-gobject.c (handle_introspect): include information
859 about child nodes in the introspection
861 * dbus/dbus-connection.c (dbus_connection_list_registered): new
862 function to help in implementation of introspection
864 * dbus/dbus-object-tree.c
865 (_dbus_object_tree_list_registered_and_unlock): new function
867 2003-09-12 Havoc Pennington <hp@pobox.com>
869 * glib/dbus-gidl.h: add common base class for all the foo_info
872 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
875 * test/Makefile.am: try test srcdir -ef . in addition to test
876 srcdir = ., one of them should work (yeah lame)
878 * glib/Makefile.am: build the "idl" parser stuff as a convenience
881 * glib/dbus-gparser.h: make description_load routines return
882 NodeInfo* not Parser*
884 * Makefile.am (SUBDIRS): build test dir after all library dirs
886 * configure.in: add GTK+ detection
888 2003-09-07 Havoc Pennington <hp@pobox.com>
890 * Make Doxygen contented.
892 2003-09-07 Havoc Pennington <hp@pobox.com>
894 * doc/dbus-specification.sgml: more updates
896 2003-09-06 Havoc Pennington <hp@pobox.com>
898 * doc/dbus-specification.sgml: partial updates
900 * bus/dbus-daemon-1.1.in: fix the config file docs for the
901 zillionth time; hopefully I edited the right file this time.
903 * bus/config-parser.c (append_rule_from_element): support
904 send_type, send_path, receive_type, receive_path
906 * bus/policy.c: add message type and path to the list of things
907 that can be "firewalled"
909 2003-09-06 Havoc Pennington <hp@pobox.com>
911 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
912 (dbus_connection_register_object_path): make this not handle
913 messages to paths below the given path
915 2003-09-03 Havoc Pennington <hp@pobox.com>
917 * test/glib/Makefile.am: add this with random glib-linked test
920 * glib/Makefile.am: remove the random test programs from here,
921 leave only the unit tests
923 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
924 uscore/javacaps conversion, and fix
925 (get_object_property, set_object_property): change to .NET
926 convention for mapping props to methods, set_FooBar/get_FooBar,
927 since one language has such a convention we may as well copy it.
928 Plus real methods in either getFooBar or get_foo_bar style won't
929 collide with this convention.
931 2003-09-01 Havoc Pennington <hp@pobox.com>
933 * glib/dbus-gparser.c: implement
935 * glib/dbus-gobject.c: start implementing skeletons support
937 * configure.in: when disabling checks/assert, also define
938 G_DISABLE_ASSERT and G_DISABLE_CHECKS
940 2003-09-01 Havoc Pennington <hp@pobox.com>
942 * glib/Makefile.am: rearrange a bunch of files and get "make
943 check" framework set up
945 2003-08-31 Havoc Pennington <hp@pobox.com>
947 * fix build with --disable-tests
949 2003-08-30 Havoc Pennington <hp@pobox.com>
951 * dbus/dbus-connection.c: purge DBusMessageHandler
953 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
954 use callbacks everywhere
956 2003-08-30 Havoc Pennington <hp@pobox.com>
958 * test/data/valid-config-files/system.d/test.conf: change to
959 root for the user so warnings don't get printed
961 * dbus/dbus-message.c: add dbus_message_get_path,
962 dbus_message_set_path
964 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
965 dispatching to a path
967 * dbus/dbus-string.c (_dbus_string_validate_path): add
969 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
970 (_dbus_marshal_object_path): implement
972 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
973 to contain the path to the target object
974 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
975 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
977 2003-08-30 Havoc Pennington <hp@pobox.com>
979 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
981 2003-08-29 Havoc Pennington <hp@pobox.com>
983 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
985 (struct DBusObjectSubtree): shrink this
986 a lot, since we may have a lot of them
987 (_dbus_object_tree_free_all_unlocked): implement
988 (_dbus_object_tree_dispatch_and_unlock): implement
990 2003-08-29 Havoc Pennington <hp@pobox.com>
992 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
994 2003-08-28 Havoc Pennington <hp@pobox.com>
998 * dbus/dbus-connection.c: port to no ObjectID, create a
999 DBusObjectTree, rename ObjectTree to ObjectPath in public API
1001 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
1002 everything except UnregisterFunction and MessageFunction
1004 * dbus/dbus-marshal.c: port away from DBusObjectID,
1005 add DBUS_TYPE_OBJECT_PATH
1007 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
1008 dbus/dbus-objectid.[hc]: remove these, we are moving to
1009 path-based object IDs
1011 2003-08-25 Havoc Pennington <hp@pobox.com>
1013 Just noticed that dbus_message_test is hosed, I wonder when I
1014 broke that. I thought make check was passing earlier...
1016 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
1017 container tree, will replace most of dbus-object-registry
1019 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
1022 2003-08-19 Havoc Pennington <hp@pobox.com>
1024 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
1025 (dbus_message_is_error): fix this function
1027 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
1030 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
1031 reflect clarified man page
1032 (bus_client_policy_check_can_send): ditto
1034 * bus/session.conf.in: fixup
1036 * bus/system.conf.in: fixup
1038 2003-08-18 Havoc Pennington <hp@redhat.com>
1040 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
1042 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1043 dumb bug created earlier (wrong order of args to
1044 decode_header_data())
1046 * tools/dbus-send.c: port
1048 * tools/dbus-print-message.c (print_message): port
1050 * test/data/*messages: port all messages over
1052 * dbus/dbus-message-builder.c: support including
1055 * bus/driver.c: port over
1057 * bus/dispatch.c: port over to new stuff
1059 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1060 rename disconnect signal to "Disconnected"
1062 2003-08-17 Havoc Pennington <hp@pobox.com>
1064 This doesn't compile yet, but syncing up so I can hack on it from
1065 work. What are branches for if not broken code? ;-)
1067 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
1068 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
1069 DBUS_HEADER_FIELD_ERROR_NAME
1071 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
1072 for the interface+member pairs
1073 (string_hash): change to use g_str_hash algorithm
1074 (find_direct_function, find_string_function): refactor these to
1077 * dbus/dbus-message.c: port all of this over to support
1078 interface/member fields instead of name field
1080 * dbus/dbus-object-registry.c: port over
1082 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
1083 from _dbus_string_validate_name
1085 * bus/dbus-daemon-1.1: change file format for the
1086 <deny>/<allow> stuff to match new message naming scheme
1088 * bus/policy.c: port over
1090 * bus/config-parser.c: parse new format
1092 2003-08-16 Havoc Pennington <hp@pobox.com>
1094 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
1097 * glib/dbus-gproxy.c: some hacking
1099 2003-08-15 Havoc Pennington <hp@redhat.com>
1101 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
1103 * dbus/dbus-connection.c
1104 (dbus_connection_send_with_reply_and_block): factor out internals;
1105 change to convert any error replies to DBusError instead of
1106 returning them as a message
1108 2003-08-15 Havoc Pennington <hp@pobox.com>
1110 * dbus/dbus-connection.c,
1111 dbus/dbus-pending-call.c: Finish the pending call stuff
1113 2003-08-14 Havoc Pennington <hp@redhat.com>
1115 * dbus/dbus-pending-call.c: start on new object that will replace
1116 DBusMessageHandler and ReplyHandlerData for tracking outstanding
1119 * dbus/dbus-gproxy.c: start on proxy object used to communicate
1120 with remote interfaces
1122 * dbus/dbus-gidl.c: do the boring boilerplate in here
1124 2003-08-12 Havoc Pennington <hp@pobox.com>
1126 * bus/dispatch.c (bus_dispatch): make this return proper
1127 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
1129 * dbus/dbus-errors.c (dbus_set_error): use
1130 _dbus_string_append_printf_valist
1132 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
1133 (_dbus_string_append_printf): new
1135 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
1138 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
1139 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
1140 message is unhandled.
1142 2003-08-11 Havoc Pennington <hp@pobox.com>
1144 * bus/test.c (client_disconnect_handler): change to return
1145 HANDLED (would have been REMOVE_MESSAGE)
1147 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
1148 HANDLED/NOT_YET_HANDLED instead of
1149 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
1152 2003-08-10 Havoc Pennington <hp@pobox.com>
1154 * tools/dbus-send.c (main): add --type argument, for now
1155 supporting only method_call and signal types.
1157 * tools/dbus-print-message.c: print message type
1159 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1160 init connection->objects
1162 * doc/dbus-specification.sgml: fix sgml
1164 * bus/*.c: port over to object-instance API changes
1166 * test/test-service.c: ditto
1168 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
1169 name, we will have to fix up the rest of the code to also handle
1171 (dbus_message_new): generic message-creation call
1172 (set_string_field): allow appending name field
1174 2003-08-06 Havoc Pennington <hp@pobox.com>
1176 * dbus/dbus-object-registry.c: implement signal connection
1179 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
1181 * dbus/dbus-internals.c (_dbus_memdup): new function
1183 2003-08-02 Havoc Pennington <hp@pobox.com>
1185 * dbus/dbus-message.c (dbus_message_get_no_reply)
1186 (dbus_message_set_no_reply): add these and remove
1187 set_is_error/get_is_error
1189 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
1190 remove the ERROR flag, since there's now an ERROR type
1192 2003-08-01 Havoc Pennington <hp@pobox.com>
1194 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
1197 * dbus/dbus-message.c (dbus_message_get_type): new function
1199 * doc/dbus-specification.sgml: add "type" byte to messages
1201 2003-08-01 Havoc Pennington <hp@pobox.com>
1203 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
1204 a message type enum to distinguish kinds of message
1205 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
1206 that need not be replied to
1208 2003-08-01 Havoc Pennington <hp@pobox.com>
1210 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
1211 (unpack_8_octets): fix no-64-bit-int bug
1213 * dbus/dbus-object-registry.c (validate_id): validate the
1214 connection ID bits, not just the instance ID.
1216 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
1217 the connection-global 33 bits of the object ID
1219 * dbus/dbus-object-registry.c (info_from_entry): fill in
1220 object ID in the new way
1222 * dbus/dbus-objectid.h: rather than high/low bits, specifically
1223 define server/client/instance bits.
1225 2003-07-30 Havoc Pennington <hp@pobox.com>
1227 * dbus/dbus-connection.c (dbus_connection_register_object): fix
1230 2003-07-13 Havoc Pennington <hp@pobox.com>
1232 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
1233 fields to DBusObjectVTable and DBusObjectInfo
1235 2003-07-12 Havoc Pennington <hp@pobox.com>
1237 * dbus/dbus-object-registry.c: implement unit test,
1238 fix bugs discovered in process
1240 * dbus/dbus-connection.c: remove handler_table and
1241 register_handler(), add DBusObjectRegistry usage
1243 * dbus/dbus-objectid.c (dbus_object_id_is_null)
1244 (dbus_object_id_set_null): new functions
1246 2003-07-08 Havoc Pennington <hp@pobox.com>
1248 * dbus/dbus-object.c: implement some of this
1250 * dbus/dbus-object-registry.c
1251 (_dbus_object_registry_add_and_unlock): fill in the object_id out
1253 (_dbus_object_registry_new): handle OOM
1255 2003-07-08 Havoc Pennington <hp@pobox.com>
1257 * dbus/dbus-object.h: sketch out an API for registering objects
1258 with a connection, that allows us to use as little as 24 bytes
1259 per object and lets application code represent an object in
1260 any conceivable way.
1262 * dbus/dbus-object-registry.c: implement the hard bits of the
1263 DBusConnection aspect of object API. Not yet wired up.
1265 2003-07-06 Havoc Pennington <hp@pobox.com>
1267 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
1268 (_dbus_marshal_object_id): new
1269 (_dbus_demarshal_object_id): new
1270 (_dbus_marshal_get_arg_end_pos): support object ID type, and
1271 consolidate identical switch cases. Don't conditionalize handling
1272 of DBUS_TYPE_UINT64, need to handle the type always.
1273 (_dbus_marshal_validate_arg): consolidate identical cases, and
1274 handle DBUS_TYPE_OBJECT_ID
1276 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
1278 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
1280 2003-09-28 Havoc Pennington <hp@pobox.com>
1284 2003-09-28 Havoc Pennington <hp@pobox.com>
1286 * doc/Makefile.am (dbus-specification.html): testing a funky hack
1287 to work with Debian db2html
1289 2003-09-28 Havoc Pennington <hp@pobox.com>
1291 * configure.in: 0.13
1293 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
1294 stylesheet-images for benefit of Debian
1296 Change back to using filesystem-linked sockets for the system
1297 bus, so only root can create the default system bus address.
1299 * bus/system.conf.in: change to use
1300 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1302 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
1305 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1306 here, and AC_DEFINE DBUS_SYSTEM_PATH
1308 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1311 * doc/busconfig.dtd:
1314 2003-08-09 Anders Carlsson <andersca@codefactory.se>
1316 * doc/dbus-specification.sgml:
1317 Add activation reply values.
1319 2003-08-05 Havoc Pennington <hp@redhat.com>
1321 * configure.in: 0.12
1323 2003-08-05 Anders Carlsson <andersca@codefactory.se>
1325 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
1326 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
1327 (add_watch), (remove_watch), (create_source):
1328 Refcount fds, fixes some reentrancy issues.
1330 2003-07-30 Havoc Pennington <hp@redhat.com>
1332 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
1333 bus address to be abstract if we have abstract sockets
1337 2003-07-28 Havoc Pennington <hp@redhat.com>
1339 * bus/messagebus.in: fix to avoid processname/servicename
1340 confusion, from Michael Kearey
1341 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
1343 2003-07-23 Havoc Pennington <hp@pobox.com>
1345 * dbus/dbus-message.c (dbus_message_iter_get_named):
1346 fix from Andy Hanton to remove broken "+1"
1348 2003-07-16 Havoc Pennington <hp@pobox.com>
1350 * tools/dbus-launch.c (babysit): close stdout/stderr in the
1351 babysitter process, as suggested by Thomas Leonard, so
1352 an "eval `dbus-launch --exit-with-session`" will actually
1355 2003-07-16 Havoc Pennington <hp@pobox.com>
1357 * configure.in: print out EXPANDED_* variables in the summary at
1358 the end; clean up the code that computes EXPANDED_ variables and
1359 get the ones using exec_prefix right. Should make things work
1360 when you build without --prefix
1362 2003-06-29 Havoc Pennington <hp@pobox.com>
1364 * mono/Test.cs (class Test): fire up a main loop and run it
1366 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
1367 done once, the app has to do it
1369 2003-06-26 Havoc Pennington <hp@pobox.com>
1371 * mono/Connection.cs: set up connection with the glib main loop
1373 2003-07-01 Havoc Pennington <hp@redhat.com>
1375 * doc/dbus-specification.sgml: clarify the format of a type code,
1376 change suggested by Jim Blandy
1378 2003-06-29 Miloslav Trmac <mitr@volny.cz>
1381 * tools/Makefile.am: Don't assume srcdir == builddir.
1383 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
1384 the allocated block.
1385 (_dbus_memory_test): New function.
1386 * dbus/dbus-test.h: Add _dbus_memory_test ().
1387 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
1389 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
1391 (dbus_message_new): Remove obsolete @todo.
1393 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
1394 (_dbus_marshal_set_uint64): Fix comment.
1396 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
1397 hardcode FIELD_REPLY_SERIAL.
1399 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
1400 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
1402 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
1403 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
1405 2003-06-24 Havoc Pennington <hp@pobox.com>
1407 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
1409 2003-06-23 Anders Carlsson <andersca@codefactory.se>
1415 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
1416 * gcj/org/.cvsignore:
1417 * gcj/org/Makefile.am:
1418 * gcj/org/freedesktop/.cvsignore:
1419 * gcj/org/freedesktop/Makefile.am:
1420 * gcj/org/freedesktop/dbus/.cvsignore:
1421 * gcj/org/freedesktop/dbus/Makefile.am:
1422 * gcj/org/freedesktop/dbus/Message.java: (Message),
1424 * gcj/org/freedesktop/dbus/natMessage.cc:
1425 Fix the build system.
1427 2003-06-22 Havoc Pennington <hp@pobox.com>
1429 * mono/Connection.cs: add more bindings
1431 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
1434 2003-06-22 Havoc Pennington <hp@pobox.com>
1436 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
1437 Start wrapping more stuff.
1439 2003-06-22 Havoc Pennington <hp@pobox.com>
1441 * mono/Message.cs: implement Message.Wrap() that ensures we only
1442 have a single C# wrapper per DBusMessage, assuming it works which
1443 it probably doesn't.
1445 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
1446 (dbus_message_free_data_slot): new
1447 (dbus_message_set_data): new
1448 (dbus_message_get_data): new
1450 2003-06-22 Havoc Pennington <hp@pobox.com>
1452 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
1453 (_dbus_data_slot_allocator_alloc): rework these to keep a
1454 reference count on each slot and automatically manage a global
1455 slot ID variable passed in by address
1457 * bus/bus.c: convert to new dataslot API
1459 * dbus/dbus-bus.c: convert to new dataslot API
1461 * dbus/dbus-connection.c: convert to new dataslot API
1463 * dbus/dbus-server.c: convert to new dataslot API
1465 * glib/dbus-gmain.c: ditto
1469 * bus/connection.c: ditto
1471 2003-06-22 Anders Carlsson <andersca@codefactory.se>
1473 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
1474 after the gcj checks so that the correct configuration tags
1475 will be added to libtool.
1477 * dbus-glib-1.pc.in: No need to specify any includes since
1478 dbus-1.pc.in has those.
1480 2003-06-22 Havoc Pennington <hp@pobox.com>
1482 * mono/*, gcj/*, configure.in, Makefile.am:
1483 Check in makefiles and subdirs for mono and gcj bindings.
1484 Neither binding actually exists, just trying to get through
1485 all the build and other boring bits.
1487 2003-06-21 Philip Blundell <philb@gnu.org>
1489 * tools/dbus-monitor.1: Updated.
1491 * tools/dbus-send.1: Likewise.
1493 2003-06-20 Anders Carlsson <andersca@codefactory.se>
1495 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
1496 for hangup and error after checking read so we won't discard
1497 pending data if both hangup and read are set.
1499 2003-06-19 Philip Blundell <philb@gnu.org>
1501 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
1503 * tools/dbus-send.c: Accept both --system and --session.
1505 * tools/dbus-monitor.c: Same here.
1507 2003-06-19 Anders Carlsson <andersca@codefactory.se>
1509 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
1510 from C++ (Patch by Miloslav Trmac).
1512 2003-06-15 Joe Shaw <joe@assbarn.com>
1514 * configure.in: Check for socklen_t.
1516 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1518 * test/test-segfault.c: Add #include <sys/time.h>
1520 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1521 dbus-launch needs it.
1523 2003-06-09 Havoc Pennington <hp@redhat.com>
1525 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1526 SUN_LEN, it breaks abstract socket usage
1528 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1531 2003-06-04 Havoc Pennington <hp@pobox.com>
1533 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1534 using unix:abstract=/foo, and when listening in a tmpdir
1535 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1537 * dbus/dbus-transport.c (_dbus_transport_open): support
1540 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1541 support abstract sockets
1543 * dbus/dbus-transport-unix.c
1544 (_dbus_transport_new_for_domain_socket): support abstract sockets
1546 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1547 toggle as an argument, implement abstract namespace support
1548 (_dbus_listen_unix_socket): ditto
1550 * configure.in: add --enable-abstract-sockets and implement
1551 a configure check for autodetection of the right value.
1553 2003-06-01 Havoc Pennington <hp@pobox.com>
1555 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1556 in /tmp (though on Linux this will end up being useless,
1557 when we add abstract namespace support)
1559 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1562 2003-05-28 Colin Walters <walters@verbum.org>
1564 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1566 2003-05-18 Anders Carlsson <andersca@codefactory.se>
1568 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1570 2003-05-17 Colin Walters <walters@gnu.org>
1572 * tools/dbus-send.c: Don't exit with an error code if --help was
1573 passed. Default to using the session bus instead of the system
1576 * tools/dbus-launch.c: Ditto.
1578 * tools/dbus-monitor.c: Ditto.
1580 * tools/dbus-send.1: Update with new arguments.
1582 * tools/dbus-launch.c: Emit code to export variables. New
1583 arguments -s and -c to specify shell syntax, and a bit of code to
1584 autodetect syntax. Also, allow specifying a program to run.
1586 * tools/dbus-launch.1: Update with new arguments.
1588 * tools/dbus-send.1: Ditto.
1590 * tools/dbus-monitor.1: Ditto.
1592 2003-05-17 Havoc Pennington <hp@pobox.com>
1594 * bus/config-parser.c (merge_included): merge in policies from
1595 child configuration file.
1597 * bus/policy.c (bus_policy_merge): function to merge two policies
1600 2003-05-16 Havoc Pennington <hp@redhat.com>
1602 * dbus/dbus-connection.c: disable verbose lock spew
1604 * tools/dbus-send.c: add --print-reply command line option
1606 * tools/dbus-print-message.h (print_message): new util function
1607 shared by dbus-send and dbus-monitor
1609 * tools/dbus-monitor.c (handler_func): exit on disconnect
1611 * dbus/dbus-transport-unix.c (do_reading): if the transport is
1612 disconnected, don't try to use the read_watch
1614 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1615 so we can find this bug more easily
1617 2003-05-16 Havoc Pennington <hp@redhat.com>
1619 * bus/policy.c (free_rule_list_func): avoid a crash when passed
1620 NULL as DBusHashTable is annoyingly likely to do.
1622 2003-05-16 Colin Walters <walters@verbum.org>
1624 * tools/dbus-monitor.c: Add --session argument and usage()
1627 * tools/dbus-monitor.1: Update with new --session arg.
1629 * bus/Makefile.am (install-data-hook): Create
1630 $(libdir)/dbus-1.0/services so that the session bus is happy.
1632 2003-05-15 Havoc Pennington <hp@redhat.com>
1634 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
1635 on non-x86. ifdef's are evil.
1637 2003-05-15 Havoc Pennington <hp@redhat.com>
1639 * configure.in: 0.11
1643 * bus/Makefile.am (initddir): apparently we are supposed to put
1644 init scripts in /etc/rc.d/init.d not /etc/init.d
1646 * bus/Makefile.am: remove the "you must --enable-tests to make
1647 check" as it broke distcheck
1649 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
1651 2003-05-13 James Willcox <jwillcox@gnome.org>
1654 * bus/activation.c: (bus_activation_service_created),
1655 (bus_activation_activate_service):
1656 * bus/driver.c: (bus_driver_send_service_deleted),
1657 (bus_driver_send_service_created), (bus_driver_send_service_lost),
1658 (bus_driver_send_service_acquired),
1659 (bus_driver_send_welcome_message),
1660 (bus_driver_handle_list_services):
1661 * bus/session.conf.in:
1662 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
1663 (dbus_bus_service_exists), (dbus_bus_activate_service):
1666 Add some convenience API which lets you activate a service, and did a
1667 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
1668 and dbus_message_get_args()
1670 2003-05-11 Havoc Pennington <hp@pobox.com>
1672 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
1673 calling _dbus_marshal_validate_arg() for every byte in a byte
1676 * dbus/dbus-message-handler.c: use atomic reference counting to
1677 reduce number of locks slightly; the global lock in here sucks
1679 * dbus/dbus-connection.c
1680 (_dbus_connection_update_dispatch_status_and_unlock): variant of
1681 update_dispatch_status that can be called with lock held; then use
1682 in a couple places to reduce locking/unlocking
1683 (dbus_connection_send): hold the lock over the whole function
1684 instead of acquiring it twice.
1686 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
1688 * bus/connection.c (bus_connections_setup_connection): fix access
1689 to already-freed memory.
1691 * dbus/dbus-connection.c: keep a little cache of linked list
1692 nodes, to avoid using the global linked list alloc lock in the
1693 normal send-message case. Instead we just use the connection lock
1694 that we already have to take.
1696 * dbus/dbus-list.c (_dbus_list_find_last): new function
1698 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
1699 change to use a struct for the atomic type; fix docs,
1700 they return value before increment, not after increment.
1702 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
1703 (_dbus_string_append_8_aligned): new functions to try to
1704 microoptimize this operation.
1705 (reallocate_for_length): break this out of set_length(), to
1706 improve profile info, and also so we can consider inlining the
1709 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
1710 strings with some preallocation, cuts down on our calls to realloc
1711 a fair bit. Though if we can get the "move entire string to empty
1712 string" optimization below to kick in here, it would be better.
1714 * dbus/dbus-string.c (_dbus_string_move): just call
1715 _dbus_string_move_len
1716 (_dbus_string_move_len): add a special case for moving
1717 an entire string into an empty string; we can just
1718 swap the string data instead of doing any reallocs.
1719 (_dbus_string_init_preallocated): new function
1721 2003-05-11 Havoc Pennington <hp@pobox.com>
1723 Write a "test-profile" that does echo client-server with threads;
1724 profile reveals lock contention, memcpy/realloc of buffers, and
1725 UTF-8 validation as hot spots. 20% of lock contention eliminated
1726 with dbus_atomic_inc/dec implementation on x86. Much remaining
1727 contention is global mempool locks for GList and DBusList.
1729 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
1732 * dbus/dbus-connection.c (struct DBusConnection): use
1733 dbus_atomic_t for the reference count
1735 * dbus/dbus-message.c (struct DBusMessage): declare
1736 dbus_atomic_t values as volatile
1738 * configure.in: code to detect ability to use atomic integer
1739 operations in assembly, from GLib patch
1741 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
1742 time, tired of it being wrong in threads and forked processes
1744 * glib/test-profile.c: a little program to bounce messages back
1745 and forth between threads and eat CPU
1747 * dbus/dbus-connection.c: add debug spew macros for debugging
1748 thread locks; include config.h at top; fix deadlock in
1749 dbus_connection_flush()
1751 2003-05-08 Havoc Pennington <hp@pobox.com>
1753 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
1754 data from getting written, and there wasn't a good reason to
1757 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
1758 dbus_verbose lines in test coverage
1759 (main): add list of functions sorted by # of untested blocks
1760 to the coverage report
1762 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
1764 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
1766 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
1767 extend test coverage
1769 * test/data/auth/cancel.auth-script: test canceling an
1772 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
1773 aren't used. in CVS history if we end up needing them.
1775 2003-05-04 Havoc Pennington <hp@pobox.com>
1777 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
1780 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
1781 function, which assumed length was in # of strings, not bytes
1783 * dbus/dbus-message.c (_dbus_message_test): add tests for some
1786 * dbus/dbus-connection.c
1787 (_dbus_connection_queue_received_message): disable function for
1788 now, we are only using it in test mode
1790 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1791 remove a mistaken FIXME
1793 2003-05-04 Havoc Pennington <hp@pobox.com>
1795 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
1796 unlock mutex on successful return, patch from Anders Gustafsson
1798 2003-05-04 Havoc Pennington <hp@pobox.com>
1800 * dbus-glib-1.pc.in (Requires): fix dependencies, from
1803 2003-05-04 Havoc Pennington <hp@pobox.com>
1805 * tools/dbus-launch.c: implement
1807 * bus/main.c (main), bus/bus.c (bus_context_new):
1808 implement --print-pid and --fork
1810 2003-05-03 Havoc Pennington <hp@redhat.com>
1812 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
1813 the address had no value, and add to test suite. Fix and
1814 regression test from Miloslav Trmac
1816 2003-05-03 Havoc Pennington <hp@pobox.com>
1818 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
1819 watch is invalid when handled
1821 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
1822 dbus-launch utility to launch the bus from a shell script. Didn't
1823 actually implement dbus-launch yet, it's just a placeholder still.
1825 2003-05-03 Havoc Pennington <hp@pobox.com>
1827 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
1828 daemon; also documents daemon config file, so replaces
1829 doc/config-file.txt. Corrected some stuff from config-file.txt in
1830 the process of moving it.
1832 2003-05-03 Havoc Pennington <hp@pobox.com>
1834 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
1837 2003-05-03 Colin Walters <walters@verbum.org>
1839 * dbus/dbus-sysdeps.c (fill_user_info): Test against
1840 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
1842 * Makefile.am: Update to use new .pc versioning scheme.
1844 2003-05-02 Havoc Pennington <hp@redhat.com>
1846 * bus/system.conf.in: allow send/receive to/from message bus
1849 2003-04-30 Havoc Pennington <hp@redhat.com>
1851 * configure.in: print a note when building with unit tests and
1854 2003-04-30 Havoc Pennington <hp@redhat.com>
1856 * Makefile.am: add a check-local that complains if you didn't
1857 configure with --enable-tests
1859 2003-04-29 Havoc Pennington <hp@redhat.com>
1861 * glib/dbus-gmain.c: docs cleanups
1863 * dbus/dbus-types.h: add docs on int64 types
1865 * dbus/dbus-memory.c: fix docs to avoid putting private API in
1866 public API docs section
1868 2003-04-29 Havoc Pennington <hp@redhat.com>
1870 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1871 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1872 parallel install API version, not with the D-BUS package version.
1874 * HACKING: move some of README over here
1876 * README: updates, and document API/ABI policy
1878 * configure.in: reindentation
1880 2003-04-29 Havoc Pennington <hp@redhat.com>
1882 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1883 to use this library" to be sure people have the right
1886 2003-04-28 Havoc Pennington <hp@redhat.com>
1888 * configure.in: add --enable-docs which by default is auto yes if
1889 doxygen and db2html found, no otherwise; but can be forced on/off
1891 * doc/Makefile.am: conditionalize whether to build docs on
1894 2003-04-28 Havoc Pennington <hp@redhat.com>
1896 * configure.in: 0.10
1900 * bus/system.conf.in: add <includedir>system.d</includedir>
1902 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1903 username was provided but not uid
1905 * bus/config-parser.c (struct BusConfigParser): keep track of
1906 whether the parser is toplevel or was included; change some
1907 of the error handling if it's included.
1909 2003-04-27 Havoc Pennington <hp@pobox.com>
1913 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1914 report correct status if we finish processing authentication
1915 inside this function.
1917 * bus/activation.c (try_send_activation_failure): use
1918 bus_transaction_send_error_reply
1920 * bus/connection.c (bus_connection_get_groups): return an error
1921 explaining the problem
1923 * bus/bus.c (bus_context_check_security_policy): implement
1924 restriction here that inactive connections can only send the
1925 hello message. Also, allow bus driver to send anything to
1928 * bus/connection.c (bus_connection_complete): create the
1929 BusClientPolicy here instead of on-demand.
1930 (bus_connection_get_policy): don't return an error
1932 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1933 sender field in message being replied to
1935 * bus/bus.c (bus_context_check_security_policy): fix silly typo
1936 causing it to return FALSE always
1938 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1939 we checked sender rather than destination
1941 2003-04-25 Havoc Pennington <hp@redhat.com>
1943 test suite is slightly hosed at the moment, will fix soon
1945 * bus/connection.c (bus_connections_expire_incomplete): fix to
1946 properly disable the timeout when required
1947 (bus_connection_set_name): check whether we can remove incomplete
1948 connections timeout after we complete each connection.
1950 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1951 probably still broken.
1953 * bus/services.c (bus_registry_acquire_service): implement max
1954 number of services owned, and honor allow/deny rules on which
1955 services a connection can own.
1957 * bus/connection.c (bus_connection_get_policy): report errors here
1959 * bus/activation.c: implement limit on number of pending
1962 2003-04-25 Havoc Pennington <hp@redhat.com>
1964 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1965 where we used >= 0 instead of != DBUS_UID_UNSET.
1967 2003-04-25 Havoc Pennington <hp@redhat.com>
1969 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
1970 were toggled without add/remove, fix from Anders Gustafsson
1972 2003-04-24 Havoc Pennington <hp@redhat.com>
1974 * test/data/valid-config-files/basic.conf: add <limit> tags to
1977 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
1978 <limit> tag in configuration file.
1980 2003-04-24 Havoc Pennington <hp@redhat.com>
1982 * bus/dispatch.c: somehow missed some name_is
1984 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
1985 (_dbus_timeout_set_interval): new
1987 * bus/connection.c (bus_connections_setup_connection): record time
1988 when each connection is first set up, and expire them after the
1989 auth timeout passes.
1991 2003-04-24 Havoc Pennington <hp@redhat.com>
1993 * dbus/dbus-message.c (dbus_message_name_is): rename
1994 (dbus_message_service_is): rename
1995 (dbus_message_sender_is): rename
1996 (dbus_message_get_service): rename
1998 2003-04-24 Havoc Pennington <hp@redhat.com>
2000 * configure.in: add --enable-checks
2002 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
2004 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
2005 to use thread locks.
2006 (_dbus_connection_handler_destroyed_locked): move some private
2007 functions into proper docs group
2009 * dbus/dbus-internals.h: add _dbus_return_if_fail,
2010 _dbus_return_val_if_fail
2012 Throughout: use dbus_return_if_fail
2014 2003-04-23 James Willcox <jwillcox@gnome.org>
2017 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
2018 (dbus_connection_setup_with_g_main),
2019 (dbus_server_setup_with_g_main):
2020 * glib/test-dbus-glib.c: (main):
2021 * glib/test-thread-client.c: (main):
2022 * glib/test-thread-server.c: (new_connection_callback), (main):
2023 * tools/dbus-monitor.c: (main):
2025 Added a GMainContext argument to dbus_connection_setup_with_g_main()
2026 and dbus_server_setup_with_g_main().
2028 2003-04-20 Havoc Pennington <hp@pobox.com>
2030 * doc/dbus-specification.sgml: document the restrictions on
2031 message and service names
2033 2003-04-22 Havoc Pennington <hp@redhat.com>
2035 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
2036 support, and do some code cleanups to share more code and
2037 speed up array marshal/demarshal.
2039 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
2041 * configure.in: generate dbus-arch-deps.h
2043 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
2046 2003-04-22 Havoc Pennington <hp@redhat.com>
2048 * test/data/valid-messages/opposite-endian.message: fix test
2049 to use proper type for rply field
2051 * test/data/invalid-messages: add tests for below validation
2053 * dbus/dbus-message.c (decode_header_data): validate field types,
2054 and validate that named fields are valid names
2055 (decode_name_field): consider messages in the
2056 org.freedesktop.Local. namespace to be invalid.
2058 * dbus/dbus-string.c (_dbus_string_validate_name): new
2060 2003-04-19 Havoc Pennington <hp@pobox.com>
2062 * bus/driver.c (bus_driver_handle_hello): check limits and
2063 return an error if they are exceeded.
2065 * bus/connection.c: maintain separate lists of active and inactive
2066 connections, and a count of each. Maintain count of completed
2067 connections per user. Implement code to check connection limits.
2069 * dbus/dbus-list.c (_dbus_list_unlink): export
2071 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
2072 number of bytes in the message queue for a connection
2074 2003-04-18 Havoc Pennington <hp@pobox.com>
2076 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
2078 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
2081 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
2082 on realloc be sure to update the pointer in the keyring
2084 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
2085 offset to avoid writing to unallocated memory
2087 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
2088 try the next mechanism, so we properly handle OOM
2090 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
2092 (_dbus_keyring_new): fix OOM bug
2093 (_dbus_keyring_new_homedir): always set error; impose a maximum
2094 number of keys we'll load from the file, mostly to speed up the
2095 test suite and make its OOM checks more useful, but also for
2098 * dbus/dbus-auth.c (process_error_server): reject authentication
2099 if we get an error from the client
2100 (process_cancel): on cancel, send REJECTED, per the spec
2101 (process_error_client): send CANCEL if we get an error from the
2104 2003-04-18 Havoc Pennington <hp@pobox.com>
2106 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
2109 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
2112 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
2113 about DBUS_TEST_HOMEDIR once
2115 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
2118 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
2119 config file so we test the right thing
2121 Throughout: assorted docs improvements
2123 2003-04-18 Havoc Pennington <hp@pobox.com>
2125 * glib/dbus-gmain.c: adapt to watch changes
2127 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
2129 * dbus/dbus-server.h: remove dbus_server_handle_watch
2131 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
2133 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
2134 like DBusTimeout, so we don't need dbus_connection_handle_watch
2137 2003-04-17 Havoc Pennington <hp@redhat.com>
2139 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
2140 database usage so it all goes via the DBusUserDatabase cache.
2142 2003-04-17 Havoc Pennington <hp@redhat.com>
2144 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
2145 there was an OOM watch we skipped, we always return TRUE so we
2146 iterate again to have a look at it again. Fixes test suite hang.
2147 Code rearrangement also lets us lose some memset and only iterate
2148 over callbacks once.
2150 * bus/driver.c (bus_driver_handle_message): sense of test for
2153 2003-04-16 Havoc Pennington <hp@pobox.com>
2155 * doc/dbus-specification.sgml: make spec say serials are unsigned
2157 * dbus/dbus-message.h: change message serials to unsigned
2159 * dbus/dbus-connection.c: adapt to message serials being unsigned
2161 2003-04-15 Havoc Pennington <hp@pobox.com>
2163 * bus/bus.c: create and keep around a shared DBusUserDatabase
2166 * bus/connection.c (bus_connection_get_groups): don't cache
2167 groups for user in the connection object, since user database
2168 object now does that.
2170 2003-04-16 Havoc Pennington <hp@redhat.com>
2172 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
2173 list of size counters
2174 (_dbus_message_loader_putback_message_link): put back a popped link
2176 * dbus/dbus-connection.c
2177 (dbus_connection_set_max_live_messages_size): rename
2179 (dbus_connection_get_outgoing_size): get size of outgoing
2181 (_dbus_connection_set_connection_counter): remove this cruft
2183 2003-04-14 Havoc Pennington <hp@redhat.com>
2185 * dbus/dbus-userdb.c: user database abstraction, mostly to get
2186 caching, but at some point we might want to be able to use a
2189 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
2190 SHA1 conf file to test the sha1 auth mechanism, since the regular
2191 test always uses EXTERNAL when available.
2194 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
2195 add conf file that requires use of sha1 auth
2197 2003-04-13 Havoc Pennington <hp@pobox.com>
2199 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
2200 from Philip Blundell to send messages and monitor them.
2202 2003-04-13 Havoc Pennington <hp@pobox.com>
2204 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
2207 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
2210 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2211 fix to only recover unused bytes if we're already authenticated
2212 (_dbus_transport_get_is_authenticated): fix to still mark us
2213 authenticated if there are unused bytes.
2215 * bus/dispatch.c: implement security policy checking
2217 * bus/connection.c (bus_transaction_send_from_driver): new
2219 * bus/bus.c (bus_context_check_security_policy): new
2221 * bus/dispatch.c (send_service_nonexistent_error): delete this,
2222 now we just set the DBusError and it gets converted to an error
2225 * bus/connection.c (allow_user_function): enable code using actual
2226 data from the config file
2228 * bus/policy.c (list_allows_user): handle wildcard rules for
2229 user/group connection perms
2231 2003-04-13 Havoc Pennington <hp@pobox.com>
2233 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
2235 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
2237 * bus/policy.c (bus_policy_append_mandatory_rule)
2238 (bus_policy_append_default_rule, bus_policy_append_user_rule)
2239 (bus_policy_append_group_rule): new functions
2241 2003-04-12 Havoc Pennington <hp@pobox.com>
2243 * bus/config-parser.c (bus_config_parser_new): fix a memleak
2245 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
2246 the pid/gid/uid, just for paranoia.
2248 * test/break-loader.c (randomly_do_n_things): find a byte
2249 containing a type code, and randomly change it to a different
2252 2003-04-12 Havoc Pennington <hp@pobox.com>
2254 * bus/policy.h: change BusPolicy to be the thing from the config
2255 file, and rename old BusPolicy to BusClientPolicy
2257 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
2258 match change in how policy works
2260 * dbus/dbus-internals.h: mark assert_not_reached as
2261 __attribute((noreturn))__
2263 2003-04-11 Havoc Pennington <hp@redhat.com>
2265 * doc/dbus-specification.sgml: fix a spot with the wrong name for
2266 the broadcast service. Use boolean return for ServiceExists.
2268 2003-04-11 Havoc Pennington <hp@redhat.com>
2270 * configure.in: add another directory to look for qt in.
2272 2003-04-11 Havoc Pennington <hp@redhat.com>
2274 * AUTHORS: add Colin Walters
2276 2003-04-11 Havoc Pennington <hp@redhat.com>
2282 2003-04-11 Havoc Pennington <hp@redhat.com>
2284 * bus/messagebus.in: remove pid file when stopping the
2285 message bus, since the bus won't have privileges to remove it
2288 2003-04-11 Havoc Pennington <hp@redhat.com>
2290 * bus/bus.c (bus_context_new): move credentials change after
2293 2003-04-11 Havoc Pennington <hp@pobox.com>
2295 * test/decode-gcov.c: add "below average functions" to the
2296 coverage report, and change how some of the code works.
2298 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
2299 not in the coverage stats.
2301 * test/test-service.c (main): use _dbus_verbose not fprintf in a
2302 couple places so running the test suite doesn't result in megaspam.
2304 2003-04-11 Havoc Pennington <hp@pobox.com>
2306 * bus/dispatch.c (check_existent_service_activation): accept a no
2307 memory error in a place we didn't before
2309 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
2310 in case the first one failed," since the test suite is less
2313 2003-04-10 Havoc Pennington <hp@pobox.com>
2315 * bus/dispatch.c (check_segfault_service_activation): add test
2316 for launching an executable that just crashes.
2318 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
2319 don't leave a million cores. We'll see how portable this is.
2321 2003-04-10 Havoc Pennington <hp@pobox.com>
2323 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
2324 the possible parent failures before we fork, so that we don't
2325 fail to create a babysitter after creating the child.
2327 * bus/activation.c (bus_activation_activate_service): kill child
2328 if we don't successfully complete the activation.
2330 2003-04-10 Havoc Pennington <hp@redhat.com>
2332 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
2333 the connection if it's disconnected
2335 * bus/activation.c (bus_activation_service_created): use new
2336 transaction features to roll back removal of pending activation if
2337 we don't successfully create the service after all. Don't remove
2338 pending activation if the function fails.
2340 * dbus/dbus-list.c (_dbus_list_insert_before_link)
2341 (_dbus_list_insert_after_link): new code to facilitate
2344 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
2345 new functionality, so we can preallocate the ability to insert
2348 * bus/connection.c (bus_transaction_add_cancel_hook): new function
2349 allowing us to put custom hooks in a transaction to be used for
2350 cancelling said transaction
2352 * doc/dbus-specification.sgml: add some discussion of secondary
2353 service owners, and disallow zero-length service names
2355 * bus/services.c (bus_registry_acquire_service): new function,
2356 splits out part of bus_driver_handle_acquire_service() and fixes
2357 a bug where we didn't remove the service doing the acquiring
2358 from the secondary queue if we failed to remove the current owner
2359 from the front of the queue.
2361 2003-04-10 Alexander Larsson <alexl@redhat.com>
2363 * doc/dbus-specification.sgml:
2364 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
2366 2003-04-10 Alexander Larsson <alexl@redhat.com>
2371 Added files to cvsignore
2373 * dbus/dbus-message.h:
2374 * dbus/dbus-message.c: (dbus_message_iter_get_named):
2375 Make get_named() take two out argument and return a boolean.
2376 (dbus_message_iter_get_args_valist):
2377 Update usage of get_named().
2378 (dbus_message_iter_append_byte):
2380 (dbus_message_iter_append_named)
2382 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
2385 2003-04-10 Alexander Larsson <alexl@redhat.com>
2387 * dbus/dbus-marshal.[ch]:
2388 Add array_type_pos argument to _dbus_marshal_validate_arg.
2389 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
2391 * dbus/dbus-message.[ch]:
2392 Multi-dimensional arrays have full type specification in the
2393 outermost array. Iter code re-arranged to handle this.
2394 Added some more iter tests.
2396 * doc/dbus-specification.sgml:
2399 Update new array encoding description.
2400 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
2402 * test/data/invalid-messages/array-with-mixed-types.message:
2403 * test/data/valid-messages/array-of-array-of-uint32.message:
2404 Change to the new array format.
2406 * test/data/invalid-messages/too-short-dict.message:
2409 * test/data/valid-messages/recursive-types.message:
2410 Fix up and extend test.
2412 2003-04-10 Havoc Pennington <hp@pobox.com>
2414 * bus/dispatch.c: lots of fixes
2416 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
2417 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
2418 that was crack, broke the test service.
2420 * dbus/dbus-transport.c (_dbus_transport_open): fix error
2421 handling to avoid piling up errors if we get a failure on the
2424 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
2425 pid in assertion failures.
2427 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
2428 to some fixed size of file descriptor array. Don't return TRUE
2429 anytime a timeout exists, that led to lots of busy loop silliness
2432 2003-04-09 Havoc Pennington <hp@redhat.com>
2434 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
2435 I'd checked this in earlier but hadn't.
2437 2003-04-09 Havoc Pennington <hp@redhat.com>
2439 * bus/dispatch.c (bus_dispatch_test): get a bit further through
2440 the activation test (man this is getting old!)
2442 2003-04-09 Havoc Pennington <hp@redhat.com>
2444 * test/test-utils.c: use dispatch status function to fix this up
2446 * bus/connection.c (connection_watch_callback): don't dispatch
2448 (connection_timeout_callback): don't dispatch from here
2449 (bus_connections_setup_connection): set the dispatch status function
2450 (bus_connection_disconnected): unset it
2452 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
2453 used to add a connection to be dispatched
2454 (_dbus_loop_iterate): do the dispatching at the end of each
2457 * dbus/dbus-connection.c
2458 (dbus_connection_set_dispatch_status_function): new function
2459 allowing us to fix up main loop usage
2460 (_dbus_connection_last_unref): free all the various function
2462 (dbus_connection_dispatch): call the DispatchStatusFunction
2463 whenever this function returns
2464 (dbus_connection_handle_watch): call DispatchStatusFunction
2465 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
2466 (reply_handler_timeout): call DispatchStatusFunction
2467 (dbus_connection_flush): call DispatchStatusFunction
2469 2003-04-09 Havoc Pennington <hp@redhat.com>
2471 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
2474 * bus/dispatch.c (check_service_activated): fix bug in test
2476 * dbus/dbus-mainloop.c (check_timeout): fix this up
2478 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
2479 verbose output so we can sort out output from different processes,
2480 e.g. in the activation case.
2482 2003-04-08 Colin Walters <walters@gnu.org>
2484 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
2486 (bus_context_new): Set it.
2487 (bus_context_unref): Use it to delete the pid file.
2489 2003-04-08 Havoc Pennington <hp@redhat.com>
2491 * test/data/invalid-messages/array-with-mixed-types.message:
2492 regression test that fails for the moment
2494 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
2495 tests for convenience
2497 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
2498 array of nil, it broke things.
2500 * test/data/invalid-messages/array-of-nil.message: regression test
2502 * test/data/valid-messages/array-of-array-of-uint32.message:
2503 happened to write this so added it to suite
2505 2003-04-08 Havoc Pennington <hp@redhat.com>
2507 * bus/driver.c (bus_driver_handle_acquire_service): init
2508 retval/reply before checking name
2510 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
2511 recursion depth argument
2513 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
2514 in the public struct for future extension
2516 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2519 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2522 * doc/dbus-specification.sgml: fix typo
2524 2003-04-08 Alexander Larsson <alexl@redhat.com>
2526 Implemented recursive types, named types and new-style iters
2529 * glib/test-thread-client.c: (thread_func):
2530 * glib/test-thread-server.c: (handle_test_message):
2531 * test/test-service.c: (handle_echo):
2540 * dbus/dbus-internals.c: (_dbus_type_to_string):
2541 Update for new types.
2543 * dbus/dbus-marshal.[ch]:
2544 Implement recursive types and the new marshalling format.
2545 Remove hardcoded dict marshalling.
2546 Marshal named types.
2548 * dbus/dbus-message-builder.c:
2550 Remove references to old types
2552 * dbus/dbus-message.[ch]:
2553 New non-refcounted iter API that supports recursive iters.
2554 Use iters for appending, including support for recursive
2556 Add byte and named type support.
2557 Update everything to new marshalling formats.
2558 Add tests for new API.
2560 * dbus/dbus-protocol.h:
2561 Remove old array types.
2562 Add types: BYTE, ARRAY, DICT, NAMED
2564 * dbus/dbus-string.c:
2565 * dbus/dbus-sysdeps.c:
2566 Make parse_double locale safe.
2568 * dbus/dbus-test-main.c:
2574 * doc/dbus-specification.sgml:
2577 * test/data/incomplete-messages/missing-body.message:
2578 * test/data/invalid-messages/bad-boolean.message:
2579 * test/data/invalid-messages/bad-boolean-array.message:
2580 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2581 * test/data/invalid-messages/boolean-has-no-value.message-raw:
2582 * test/data/invalid-messages/too-short-dict.message:
2583 * test/data/valid-messages/dict-simple.message:
2584 * test/data/valid-messages/dict.message:
2585 * test/data/valid-messages/emptiness.message:
2586 * test/data/valid-messages/lots-of-arguments.message:
2587 * test/data/valid-messages/no-padding.message:
2588 * test/data/valid-messages/recursive-types.message:
2589 Add missing NAME fields
2590 Fix up dicts & arrays
2592 * test/data/invalid-messages/dict-with-nil-value.message:
2593 Removed, this is not invalid anymore.
2595 * test/data/valid-messages/recursive-types.message:
2596 Add new test for deeply recursive types.
2598 2003-04-07 Havoc Pennington <hp@pobox.com>
2600 * bus/driver.c (bus_driver_handle_acquire_service): return an
2601 error if you try to acquire a service that starts with ':'
2603 2003-04-07 Havoc Pennington <hp@redhat.com>
2605 * doc/dbus-specification.sgml: require that base service names
2606 start with ':' and that the base service is created/deleted
2607 as first and last things a connection does on the bus
2609 * bus/dispatch.c (check_existent_service_activation): lots more
2610 work on the activation test; it doesn't fully pass yet...
2612 * test/test-service.c (main): fix so we don't memleak the
2613 connection to the message bus
2614 (filter_func): accept a message asking us to exit
2616 2003-04-06 Havoc Pennington <hp@pobox.com>
2618 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2621 * configure.in: fixes to Qt detection from Colin Walters
2623 * doc/Makefile.am: Only remove generated docbook dirs if they
2624 exist, from Colin Walters
2626 * dbus/dbus-bus.c: change how we set well-known connections to
2627 NULL, so that it works if a single connection is stored in
2628 two well-known array slots.
2630 * test/Makefile.am: remove a lot of stuff that isn't immediately
2631 useful, it's in CVS history if we want it.
2633 * test/test-service.c: use dbus-mainloop instead of that
2636 2003-04-06 Havoc Pennington <hp@pobox.com>
2638 * dbus/Makefile.am: split lists of sources into stuff that goes in
2639 the library, util functions that go in the lib and are also used
2640 elsewhere, and util functions that are used in tests/daemon but
2641 don't go in the lib.
2643 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
2644 here so it can be used in test binaries also
2646 2003-04-06 Havoc Pennington <hp@pobox.com>
2648 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
2649 here in the parent process, so we can return an error if it
2650 fails. Also, move some of the code into the child so the parent
2651 is less hosed if we fail midway through.
2653 * bus/bus.c (bus_context_new): move pidfile detection further up
2654 in the function, before we start overwriting sockets and such.
2656 * bus/messagebus.in: adjust this a bit, not sure if it will work.
2658 * configure.in: add --with-system-pid-file and --with-system-socket
2660 2003-04-06 Colin Walters <walters@verbum.org>
2662 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
2664 * bus/system.conf.in: Declare a pidfile.
2666 * bus/bus.c (bus_context_new): Test for an existing pid file, and
2667 create one (if appropriate).
2669 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
2670 (struct BusConfigParser) [pidfile]: New.
2671 (element_type_to_name, merge_included, start_busconfig_child)
2672 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
2673 (bus_config_parser_unref): Free it.
2674 (bus_config_parser_get_pidfile): New function.
2676 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
2678 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
2680 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
2682 * dbus/dbus-sysdeps.h: Prototype it.
2684 2003-04-06 Havoc Pennington <hp@pobox.com>
2686 * bus/bus.c (bus_context_new): print the address in here, rather
2687 than in main(), because we need to do it before forking the daemon
2689 * bus/dispatch.c (send_service_nonexistent_error): set the sender
2690 on the service nonexistent error
2692 * bus/driver.c (bus_driver_handle_acquire_service): set the
2693 sender on the AcquireService reply
2695 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
2696 server also listen on a UNIX socket so services can connect to it.
2698 2003-04-06 Havoc Pennington <hp@pobox.com>
2700 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
2701 so it detects deadlocks and also we actually init threads when
2704 2003-04-06 Havoc Pennington <hp@pobox.com>
2706 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2707 save the domain socket name, and unlink it when we disconnect the
2708 server. Means that at least when we exit normally, we won't leave
2709 a bunch of junk in /tmp
2711 * dbus/dbus-transport-unix.c
2712 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
2713 memory management). (I was making a real change here but then
2716 2003-04-06 Havoc Pennington <hp@pobox.com>
2718 * bus/bus.c (bus_context_new): fix wrong handling of
2719 server_data_slot_unref() in the error case.
2721 * dbus/dbus-internals.h (_dbus_assert): change so it passes
2722 "(condition) != 0" to _dbus_real_assert so that
2723 "_dbus_assert (pointer)" doesn't cause a warning
2725 * bus/main.c (main): accept --print-address option to print out
2726 the message bus address
2728 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
2730 * dbus/dbus-transport.c (_dbus_transport_open): special error for
2731 "tmpdir" option to unix: address on client side
2733 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
2736 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
2737 we can use to create sockets in the test suite.
2739 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
2740 cleanly. To be used for testing.
2742 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
2744 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
2746 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2747 handle trying to call this when there's no servers active
2749 2003-04-05 Havoc Pennington <hp@pobox.com>
2755 2003-04-05 Havoc Pennington <hp@pobox.com>
2757 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
2758 crash on startup. Need to get "try starting the daemon"
2759 in the test suite I guess. ;-)
2761 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
2762 tracked the number of open connections; it's better done in
2763 application-specific code as you want it to span all servers etc.
2765 2003-04-05 Havoc Pennington <hp@pobox.com>
2767 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
2768 patch from Colin Walters
2770 2003-04-05 Havoc Pennington <hp@pobox.com>
2772 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
2773 reality; in fact multiple mechanisms are allowed.
2775 * dbus/dbus-internals.c (_dbus_real_assert)
2776 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
2777 _dbus_assert_not_reached() into functions, so that they don't show
2778 up in basic block counts for test coverage, and don't use up as
2779 much disk space. Does mean slower execution speed though, so
2780 assumes --disable-asserts is the normal production case.
2782 2003-04-05 Havoc Pennington <hp@pobox.com>
2784 * test/Makefile.am (dist-hook): also dist *.in files
2790 2003-04-05 Havoc Pennington <hp@pobox.com>
2792 * dbus/dbus-string.c: docs warning
2794 * dbus/dbus-spawn.c: missing docs
2796 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2798 2003-04-05 Havoc Pennington <hp@pobox.com>
2800 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
2803 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
2804 to -1 once we've reaped the babysitter
2805 (_dbus_babysitter_handle_watch): do as much work as we can, not
2808 * bus/activation.c: add code using DBusBabysitter so that we
2809 handle it when a service fails to start up properly.
2810 (bus_activation_service_created): don't remove the activation
2811 entries as we go, just let them get removed when we free the pending
2812 activation. Unref reply messages after sending them.
2814 2003-04-05 Havoc Pennington <hp@pobox.com>
2816 * test/decode-gcov.c (main): print per-directory stats in the report
2818 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
2820 2003-04-05 Havoc Pennington <hp@pobox.com>
2822 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
2824 * test/decode-gcov.c: hack up a little program to suck data
2825 out of gcov files. Yes this is sort of silly.
2827 * configure.in: define something in config.h and do an
2828 AM_CONDITIONAL when gcov is enabled
2830 2003-04-04 Havoc Pennington <hp@redhat.com>
2832 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
2833 return a "babysitter" object that is used to monitor the status of
2834 the spawned process and reap it when required.
2836 * test/test-segfault.c, test/test-exit.c,
2837 test/test-sleep-forever.c: binaries that do various lame things,
2838 used in the test suite.
2840 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
2842 2003-04-03 Havoc Pennington <hp@pobox.com>
2844 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
2845 in preparation for modifying it, dbus-sysdeps is getting
2848 2003-04-03 Havoc Pennington <hp@redhat.com>
2850 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
2853 * bus/*.[hc]: adapt to mainloop change
2855 2003-04-03 Havoc Pennington <hp@redhat.com>
2857 * bus/activation.c (load_directory): fix up memleaks
2858 (bus_activation_entry_free): free the entry
2860 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
2861 we get one from the message bus; fix memleaks.
2863 * dbus/dbus-message.c (dbus_set_error_from_message): new function
2865 2003-04-03 Havoc Pennington <hp@pobox.com>
2867 * bus/config-parser.c (bus_config_parser_unref): free
2868 list of mechanisms, bug discovered by test suite enhancements
2869 (putting system.conf and session.conf into suite)
2871 * test/Makefile.am, test/test-service.c: add placeholder for a
2872 test service that we'll activate as part of test suite. Doesn't
2875 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2876 setting NULL value, and use system malloc not dbus_malloc()
2877 when we have unavoidable memleakage.
2879 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2880 didn't work, and support DBUS_BUS_ACTIVATION.
2882 * bus/activation.c (child_setup): pass our well-known bus type to
2885 * bus/config-parser.c: support <type> to specify well-known type
2887 * doc/dbus-specification.sgml: document the env variables to
2888 locate well-known buses and find service activator
2890 2003-04-02 Havoc Pennington <hp@redhat.com>
2892 * test/Makefile.am (all-local): add a rule to copy tests to
2893 builddir, so we can have generated tests. Use this to remove the
2894 silly hack for testing system.conf and session.conf. Will use this
2895 shortly to generate .service files pointing to test binaries.
2897 2003-04-02 Havoc Pennington <hp@redhat.com>
2899 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2900 current alloc and needed new length, not max of the doubled
2901 allocation and needed new length. Also, when building tests,
2902 don't do the double-allocation stuff, just realloc every time.
2904 2003-04-02 Havoc Pennington <hp@redhat.com>
2906 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2908 (_dbus_string_get_dirname): new
2909 (_dbus_sysdeps_test): new
2910 (_dbus_directory_open): include dirnames in error messages
2912 * bus/config-parser.c: interpret <include> and <includedir> and
2913 <servicedir> relative to config file location if the given
2914 filename is not absolute.
2916 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2918 2003-04-02 Havoc Pennington <hp@redhat.com>
2920 * bus/connection.c (bus_transaction_send_error_reply): set sender
2921 service for the error, and unref the reply on success
2923 * bus/activation.c: convert to use BusTransaction so OOM can be
2925 (bus_activation_service_created): set sender of the message
2927 2003-04-01 Havoc Pennington <hp@redhat.com>
2929 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2930 <includedir> (at least mostly)
2932 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2933 first, then the user ID
2935 2003-04-01 Havoc Pennington <hp@pobox.com>
2937 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2940 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2942 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2944 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2945 socket 0777, and unlink any existing socket.
2947 * bus/bus.c (bus_context_new): change our UID/GID and fork if
2948 the configuration file so specifies; set up auth mechanism
2951 * bus/config-parser.c (bus_config_parser_content): add support
2952 for <fork> option and fill in code for <auth>
2954 * bus/system.conf.in: add <fork/> to default configuration,
2955 and limit auth mechanisms to EXTERNAL
2957 * doc/config-file.txt (Elements): add <fork>
2959 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2960 (_dbus_change_identity): new function
2962 2003-03-31 Havoc Pennington <hp@redhat.com>
2964 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2965 (_dbus_listen_unix_socket): fix off-by-one error in null
2966 termination spotted by Nalin
2968 2003-03-31 Havoc Pennington <hp@redhat.com>
2970 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
2971 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
2972 having a real home directory available.
2974 2003-03-31 Havoc Pennington <hp@redhat.com>
2976 * bus/Makefile.am (install-data-hook): create /var/run/dbus
2978 * bus/messagebus.in: add init script for Red Hat /etc/init.d
2980 * configure.in: add support for specifying a style of init script
2983 2003-03-31 Havoc Pennington <hp@redhat.com>
2985 Fix some annoying DBusString API and fix all affected code.
2987 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
2989 (_dbus_string_get_data): change to return string instead of using
2991 (_dbus_string_get_const_data): ditto
2992 (_dbus_string_get_data_len): ditto
2993 (_dbus_string_get_const_data_len): ditto
2995 2003-03-31 Havoc Pennington <hp@redhat.com>
2997 * bus/main.c (main): fix up the command line arguments to be nicer
2999 2003-03-31 Havoc Pennington <hp@redhat.com>
3001 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
3002 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
3003 final location that lands in the config file
3005 * bus/config-loader-expat.c (bus_config_load): fix type of
3008 * doc/TODO: remove TODO item for dbus_bus_get()
3010 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
3012 2003-03-31 Havoc Pennington <hp@pobox.com>
3014 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
3015 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
3016 argument since they are always client side
3018 * dbus/dbus-server.c (dbus_server_get_address): new function
3020 * bus/main.c (main): take the configuration file as an argument.
3022 * test/data/valid-config-files/debug-allow-all.conf: new file to
3023 use with dispatch.c tests for example
3025 * bus/test-main.c (main): require test data dir
3027 * bus/bus.c (bus_context_new): change this to take a
3028 configuration file name as argument
3030 * doc/config-file.txt (Elements): add <servicedir>
3032 * bus/system.conf, bus/session.conf: new files
3034 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
3035 well-known socket if none set
3037 * configure.in: create system.conf and session.conf
3039 2003-03-30 Havoc Pennington <hp@pobox.com>
3041 * bus/config-parser.c: hacking
3043 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
3044 to shut down, since it could cause weirdness with the DBusList
3047 * dbus/dbus-list.c (_dbus_list_test): add tests for the
3048 link-oriented stack routines
3049 (alloc_link): free the mempool if the first alloc from it fails
3051 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
3053 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
3055 (_dbus_string_skip_white): new
3057 * doc/config-file.txt (Elements): add <includedir>
3059 2003-03-28 Havoc Pennington <hp@pobox.com>
3061 * dbus/dbus-string.c (_dbus_string_copy_data_len)
3062 (_dbus_string_copy_data): new functions
3064 2003-03-28 Anders Carlsson <andersca@codefactory.se>
3066 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
3070 * dbus/dbus-memory.c:
3073 2003-03-28 Havoc Pennington <hp@pobox.com>
3075 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
3076 I think it may have just been superstition. Not sure.
3078 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
3079 failures that were not being handled.
3081 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
3083 * dbus/dbus-memory.c: add ability to set number of mallocs in a
3084 row that will fail on out-of-memory.
3086 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
3087 function for testing out-of-memory handling.
3089 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
3090 allocation functions, they do map exactly to the expat ones.
3092 2003-03-27 Havoc Pennington <hp@redhat.com>
3094 * bus/config-loader-libxml.c (bus_config_load): add another error
3097 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3100 Add note about automatic service activation.
3102 * doc/dbus-specification.sgml:
3103 Rename the specification and clarify a few things.
3105 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3108 * dbus/dbus-address.c:
3110 * dbus/dbus-marshal.c:
3111 * dbus/dbus-server-debug-pipe.c:
3112 * dbus/dbus-transport-unix.c:
3113 Fix documentation warnings.
3115 2003-03-26 Havoc Pennington <hp@pobox.com>
3117 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
3118 after every test so it's quick and easy to see which leaked, and
3119 so we test multiple dbus_shutdown() calls
3121 * configure.in: change configure.in XML stuff to also support
3124 * config-loader-libxml.c: some hacking
3126 * config-loader-expat.c: some hacking
3128 * config-parser.c: some hacking, plus tests
3130 2003-03-25 Havoc Pennington <hp@redhat.com>
3132 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
3134 * configure.in: add --with-xml option to specify XML library,
3135 right now only libxml is supported.
3137 * bus/config-loader-libxml.c, config-parser.c: sync some minor
3138 nonworking code between home and work, still just stubs
3140 2003-03-24 Havoc Pennington <hp@redhat.com>
3142 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
3145 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
3146 NULL argument for "message" if the error is a well-known one,
3147 fill in a generic message in this case.
3149 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
3152 * bus/test.c (bus_test_flush_bus): add
3154 * bus/policy.c (bus_policy_test): test code stub
3156 2003-03-24 Havoc Pennington <hp@pobox.com>
3158 * bus/connection.c (bus_connections_setup_connection): set up
3159 the "can this user connect" function, but it always returns
3160 TRUE until we have a config file parser so we can have a config
3161 file that allows connections.
3163 2003-03-23 Havoc Pennington <hp@pobox.com>
3165 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
3166 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
3167 the mutex, so we can check for proper memory management
3170 * dbus/dbus-dataslot.c: remove the mutex from
3171 DBusDataSlotAllocator and lock it manually when using it,
3172 to simplify fitting it into the global slots framework.
3174 * dbus/dbus-threads.c (init_static_locks): rework how we're
3175 handling global locks so they are easily shut down.
3177 * bus/policy.c (bus_policy_append_rule): fix
3179 * bus/test-main.c (main): check for memleaks
3181 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
3182 test suite check for memleaks
3184 * dbus/dbus-memory.c: add support in test mode for tracking
3185 number of outstanding blocks
3187 2003-03-23 Havoc Pennington <hp@pobox.com>
3189 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
3192 * dbus/dbus-hash.h: add ULONG hash keys
3194 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
3195 (_dbus_get_group_id): new function
3197 2003-03-20 Havoc Pennington <hp@redhat.com>
3199 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
3201 (dbus_connection_get_unix_user): new function
3203 2003-03-20 Havoc Pennington <hp@pobox.com>
3205 * bus/connection.c (bus_connection_send_oom_error): assert that
3206 message has a sender
3207 (connection_execute_transaction): ditto
3208 (bus_connection_preallocate_oom_error): fix to set the sender, and
3209 set recipient to the destination service, not the bus driver
3211 * bus/policy.c: hacking
3213 * dbus/dbus-message.c (dbus_message_service_is): new function
3214 (dbus_message_sender_is): new
3216 2003-03-19 Havoc Pennington <hp@redhat.com>
3218 * bus/policy.c: start sketching code for policy restrictions on
3219 what connections can do.
3221 2003-03-18 Havoc Pennington <hp@redhat.com>
3223 * doc/TODO: some notes on high-level todo items. Little nitpick
3224 stuff is all in @todo, so no need to add it here.
3226 * doc/config-file.txt: some notes on how config file might look
3228 2003-03-18 Anders Carlsson <andersca@codefactory.se>
3234 2003-03-17 Havoc Pennington <hp@redhat.com>
3236 * dbus/dbus-internals.h: add gcc attributes so that
3237 our printf-style functions warn on bad arguments to
3240 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
3243 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3246 2003-03-17 Havoc Pennington <hp@redhat.com>
3248 * bus/test-main.c (main): make it print something as it runs
3249 so make check doesn't look stuck
3251 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
3252 from CVS, now obsolete
3254 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3256 * bus/dispatch.c: (bus_dispatch):
3257 Refetch the service name since it may have been reallocated
3258 when dbus_message_set_sender was called.
3260 * dbus/dbus-sysdeps.c: (_dbus_accept):
3261 Add address and address length variables and use them to stop
3262 valgrind from complaining.
3264 2003-03-17 Havoc Pennington <hp@pobox.com>
3266 All tests pass, no memleaks, no valgrind complaints.
3268 * bus/test.c: refcount handler_slot
3270 * bus/connection.c (bus_connections_new): refcount
3271 connection_data_slot
3273 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
3274 bytes so that auth scripts pass.
3276 * bus/dispatch.c: init message_handler_slot so it gets allocated
3279 * bus/dispatch.c (message_handler_slot_ref): fix memleak
3281 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
3282 dealloc server_pipe_hash when no longer used for benefit of
3285 * dbus/dbus-auth.c (process_command): memleak fix
3287 * bus/dispatch.c (check_hello_message): memleak fix
3289 2003-03-16 Havoc Pennington <hp@pobox.com>
3291 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
3293 2003-03-17 Anders Carlsson <andersca@codefactory.se>
3295 * bus/activation.c (bus_activation_activate_service): Append
3296 the pending activation entry to the list of pending activations.
3298 2003-03-16 Havoc Pennington <hp@pobox.com>
3300 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
3303 * dbus/dbus-address.c (create_entry): fix OOM handling when
3304 failing to alloc entry->method
3306 2003-03-16 Havoc Pennington <hp@pobox.com>
3308 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
3311 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3312 add some missing dbus_set_result
3314 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
3315 alloc the DBusMessageHandler
3317 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
3318 the transport here, since we call this from the finalizer; it
3319 resulted in a double-finalize.
3321 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
3322 where we tried to use transport->connection that was NULL,
3323 happened when transport was disconnected early on due to OOM
3325 * bus/*.c: adapt to handle OOM for watches/timeouts
3327 * dbus/dbus-transport-unix.c: port to handle OOM during
3330 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
3331 reference to unused bytes instead of a copy
3333 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
3336 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
3339 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
3342 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3344 * doc/dbus-specification.sgml:
3345 Document reply message for ActivateService.
3347 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3349 * bus/activation.c: (bus_pending_activation_entry_free),
3350 (bus_pending_activation_free), (bus_activation_new),
3351 (bus_activation_unref), (bus_activation_service_created),
3352 (bus_activation_activate_service):
3354 * bus/bus.c: (bus_context_new):
3355 * bus/desktop-file.c: (new_section):
3356 * bus/driver.c: (bus_driver_send_service_deleted),
3357 (bus_driver_handle_activate_service):
3358 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
3360 * dbus/dbus-connection.c:
3361 (dbus_connection_send_with_reply_and_block):
3362 * dbus/dbus-message.c: (dbus_message_append_args_valist):
3363 * dbus/dbus-protocol.h:
3364 Make activation work better. Now pending activations will be queued
3365 and the daemon won't try to activate services that are already registered.
3367 2003-03-16 Havoc Pennington <hp@pobox.com>
3369 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
3372 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
3373 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
3375 2003-03-16 Havoc Pennington <hp@pobox.com>
3377 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
3378 this. always run the test suite before commit...
3380 * bus/*: adapt to DBusConnection API changes
3382 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
3383 requires renaming stuff to avoid dbus_connection_dispatch name
3386 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
3389 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3390 separate from _dbus_message_loader_return_buffer()
3392 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
3393 this, because it's now always broken to use; the number of
3394 messages in queue vs. the number still buffered by the message
3395 loader is undefined/meaningless. Should use
3396 dbus_connection_get_dispatch_state().
3397 (dbus_connection_dispatch): rename from
3398 dbus_connection_dispatch_message
3400 2003-03-16 Havoc Pennington <hp@pobox.com>
3402 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
3405 2003-03-16 Anders Carlsson <andersca@codefactory.se>
3407 * dbus/dbus-connection.c:
3408 (dbus_connection_send_with_reply_and_block):
3409 Decrease connection->n_incoming when removing an entry
3411 * dbus/dbus-dict.c: (dbus_dict_entry_free),
3412 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3413 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3414 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
3415 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
3416 (dbus_dict_get_byte_array):
3417 Handle NULL arrays and strings. Also add support for byte arrays.
3419 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
3420 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
3421 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3422 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3423 (_dbus_demarshal_dict), (demarshal_and_validate_len),
3424 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
3425 * dbus/dbus-marshal.h:
3426 Add support for marshalling and demarshalling empty arrays and strings.
3428 * dbus/dbus-message.c: (dbus_message_append_args_valist),
3429 (dbus_message_append_string_array),
3430 (dbus_message_iter_get_boolean),
3431 (dbus_message_iter_get_boolean_array),
3432 (dbus_message_iter_get_int32_array),
3433 (dbus_message_iter_get_uint32_array),
3434 (dbus_message_iter_get_double_array),
3435 (dbus_message_iter_get_byte_array),
3436 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
3437 (check_message_handling):
3438 Add support for getting empty arrays and dicts.
3440 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
3441 Don't do any validation at all for now, that's better than just checking
3444 * test/data/valid-messages/emptiness.message:
3445 New test message with lots of empty arrays.
3447 2003-03-16 Havoc Pennington <hp@pobox.com>
3449 * dbus/dbus-connection.c
3450 (_dbus_connection_queue_received_message_link): new function that
3451 can't fail due to OOM
3453 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
3454 new function pops a message together with a list link
3457 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
3458 message queuing functions to avoid needing to alloc memory
3460 2003-03-16 Havoc Pennington <hp@pobox.com>
3462 Oops - test code was only testing failure of around 30 of the
3463 mallocs in the test path, but it turns out there are 500+
3464 mallocs. I believe this was due to misguided linking setup such
3465 that there was one copy of dbus_malloc etc. in the daemon and one
3466 in the shared lib, and only daemon mallocs were tested. In any
3467 case, the test case now tests all 500+ mallocs, and doesn't pass
3468 yet, though there are lots of fixes in this patch.
3470 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3471 this so that it doesn't need to allocate memory, since it
3472 has no way of indicating failure due to OOM (and would be
3473 annoying if it did).
3475 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
3477 * bus/Makefile.am: rearrange to create two self-contained
3478 libraries, to avoid having libraries with overlapping symbols.
3479 that was resulting in weirdness, e.g. I'm pretty sure there
3480 were two copies of global static variables.
3482 * dbus/dbus-internals.c: move the malloc debug stuff to
3485 * dbus/dbus-list.c (free_link): free list mempool if it becomes
3488 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
3490 * dbus/dbus-address.c (dbus_parse_address): free list nodes
3493 * bus/dispatch.c (bus_dispatch_add_connection): free
3494 message_handler_slot when no longer using it, so
3495 memory leak checkers are happy for the test suite.
3497 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
3499 * bus/bus.c (new_connection_callback): disconnect in here if
3500 bus_connections_setup_connection fails.
3502 * bus/connection.c (bus_connections_unref): fix to free the
3504 (bus_connections_setup_connection): if this fails, don't
3505 disconnect the connection, just be sure there are no side
3508 * dbus/dbus-string.c (undo_alignment): unbreak this
3510 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
3512 (_dbus_auth_new): fix the order in which we free strings
3515 * bus/connection.c (bus_connection_disconnected): fix to
3516 not send ServiceDeleted multiple times in case of memory
3519 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3520 get the base service name
3521 (dbus_bus_register_client): don't return base service name,
3522 instead store it on the DBusConnection and have an accessor
3524 (dbus_bus_register_client): rename dbus_bus_register()
3526 * bus/dispatch.c (check_hello_message): verify that other
3527 connections on the bus also got the correct results, not
3528 just the one sending hello
3530 2003-03-15 Havoc Pennington <hp@pobox.com>
3532 Make it pass the Hello handling test including all OOM codepaths.
3533 Now to do other messages...
3535 * bus/services.c (bus_service_remove_owner): fix crash when
3536 removing owner from an empty list of owners
3537 (bus_registry_ensure): don't leave service in the list of
3538 a connection's owned services if we fail to put the service
3541 * bus/connection.c (bus_connection_preallocate_oom_error): set
3542 error flag on the OOM error.
3544 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3545 handle _dbus_transport_set_connection failure
3547 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3548 to create watches up front and simply enable/disable them as
3550 (unix_connection_set): this can now fail on OOM
3552 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3553 of enabling/disabling a watch or timeout.
3555 * bus/loop.c (bus_loop_iterate): don't touch disabled
3558 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3560 2003-03-15 Havoc Pennington <hp@pobox.com>
3562 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3563 write useful test code, after all that futzing around ;-)
3565 Test does not yet pass because we can't handle OOM in
3566 _dbus_transport_messages_pending (basically,
3567 dbus_connection_preallocate_send() does not prealloc the write
3568 watch). To fix this, I think we need to add new stuff to
3569 set_watch_functions, namely a SetEnabled function so we can alloc
3570 the watch earlier, then enable it later.
3572 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3573 dbus-memory.c to the convenience lib
3575 * bus/test.c: rename some static functions to keep them clearly
3576 distinct from stuff in connection.c. Handle client disconnection.
3578 2003-03-14 Havoc Pennington <hp@pobox.com>
3580 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3581 transport, tests more of the real codepath. Set up clients
3582 with bus_setup_debug_client.
3584 * bus/test.c (bus_setup_debug_client): function to set up debug
3585 "clients" on the main loop
3587 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3590 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3593 * dbus/dbus-server-debug.c: support a debug server based on pipes
3595 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3596 (_dbus_close): new function
3598 * configure.in: check for socketpair
3600 2003-03-14 Havoc Pennington <hp@redhat.com>
3602 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3605 * dbus/dbus-transport-debug.c: rework this a good bit to be
3606 less complicated. hopefully still works.
3608 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3611 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3614 * dbus/dbus-message.c (dbus_message_copy): rename from
3615 dbus_message_new_from_message, fix it up to copy
3616 all the message fields, add test case
3618 * bus/dispatch.c (bus_dispatch_test): add some more test code,
3619 not quite passing yet
3621 2003-03-14 Havoc Pennington <hp@pobox.com>
3623 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3624 until no work remains" in test code. (the large diff here
3625 is just code movement, no actual changes)
3627 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3628 1, no point waiting around for test code.
3629 (_dbus_server_debug_accept_transport): unref the timeout
3630 after adding it (right?)
3632 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
3634 2003-03-13 Havoc Pennington <hp@redhat.com>
3636 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
3639 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
3642 * dbus/dbus-connection.h: Make AddWatchFunction and
3643 AddTimeoutFunction return a bool so they can fail on out-of-memory
3645 * bus/bus.c (bus_context_new): set up timeout handlers
3647 * bus/connection.c (bus_connections_setup_connection): set up
3650 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
3653 * bus/bus.c (bus_context_new): adapt to changes
3655 * bus/connection.c: adapt to changes
3657 * test/watch.c: adapt to DBusWatch changes
3659 * bus/dispatch.c (bus_dispatch_test): started adding this but
3662 2003-03-14 Anders Carlsson <andersca@codefactory.se>
3664 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
3666 2003-03-13 Havoc Pennington <hp@pobox.com>
3668 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
3669 set up a test framework as for the library
3671 2003-03-12 Havoc Pennington <hp@pobox.com>
3673 Throughout: purge global variables, introduce BusActivation,
3674 BusConnections, BusRegistry, etc. objects instead.
3676 * bus/bus.h, bus/bus.c: introduce BusContext as a global
3679 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
3680 going to redo this a bit differently I think
3682 2003-03-12 Havoc Pennington <hp@redhat.com>
3684 Mega-patch that gets the message bus daemon initially handling
3685 out-of-memory. Work still needed. Also lots of random
3686 moving stuff to DBusError instead of ResultCode.
3688 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
3690 * dbus/dbus-connection.c
3691 (dbus_connection_send_with_reply_and_block): use DBusError
3693 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
3696 * dbus/dbus-connection.c (dbus_connection_send): drop the result
3697 code here, as the only failure possible is OOM.
3699 * bus/connection.c (bus_connection_disconnect):
3700 rename bus_connection_disconnected as it's a notification only
3702 * bus/driver.c (bus_driver_handle_acquire_service): don't free
3703 "name" on get_args failure, should be done by get_args;
3704 don't disconnect client for bad args, just return an error.
3705 (bus_driver_handle_service_exists): ditto
3707 * bus/services.c (bus_services_list): NULL-terminate returned array
3709 * bus/driver.c (bus_driver_send_service_lost)
3710 (bus_driver_send_service_acquired): send messages from driver to a
3711 specific client to the client's unique name, not to the broadcast
3714 * dbus/dbus-message.c (decode_header_data): reject messages that
3715 contain no name field
3716 (_dbus_message_get_client_serial): rename to
3717 dbus_message_get_serial and make public
3718 (_dbus_message_set_serial): rename from set_client_serial
3719 (_dbus_message_set_reply_serial): make public
3720 (_dbus_message_get_reply_serial): make public
3722 * bus/connection.c (bus_connection_foreach): allow stopping
3723 iteration by returning FALSE from foreach function.
3725 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
3726 (dbus_connection_free_preallocated_send)
3727 (dbus_connection_preallocate_send): new API for sending a message
3728 without possibility of malloc failure.
3729 (dbus_connection_send_message): rename to just
3730 dbus_connection_send (and same for whole function family)
3732 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
3734 * dbus/dbus-sysdeps.c (_dbus_exit): new function
3736 * bus/activation.c: handle/return errors
3738 * dbus/dbus-errors.h: add more DBUS_ERROR #define
3740 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
3741 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
3742 (_dbus_result_from_errno): move to this file
3744 2003-03-10 Anders Carlsson <andersca@codefactory.se>
3746 * dbus/dbus-marshal.c:
3747 (_dbus_marshal_set_string):
3748 Take a length argument so we can marshal the correct string
3751 (_dbus_marshal_dict), (_dbus_demarshal_dict),
3752 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
3753 (_dbus_marshal_test):
3754 * dbus/dbus-marshal.h:
3755 Add support for marshalling and demarshalling dicts.
3757 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3758 Add support for TYPE DICT.
3760 * dbus/dbus-message.c: (set_string_field):
3761 Adjust header padding.
3763 (dbus_message_append_args_valist), (dbus_message_append_dict),
3764 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
3765 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
3766 (check_message_handling), (check_have_valid_message):
3767 * dbus/dbus-message.h:
3768 Add functions for setting and getting dicts.
3770 * dbus/dbus-protocol.h:
3776 * doc/dbus-specification.sgml:
3777 Add information about how dicts are marshalled.
3779 * test/data/invalid-messages/dict-with-nil-value.message:
3780 * test/data/invalid-messages/too-short-dict.message:
3781 * test/data/valid-messages/dict-simple.message:
3782 * test/data/valid-messages/dict.message:
3783 Add sample messages containing dicts.
3785 2003-03-08 Anders Carlsson <andersca@codefactory.se>
3787 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
3789 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3792 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3793 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
3794 (dbus_dict_set_int32), (dbus_dict_set_uint32),
3795 (dbus_dict_set_double), (dbus_dict_set_string),
3796 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3797 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3798 (dbus_dict_set_string_array), (_dbus_dict_test):
3800 Fix according to comments from Havoc.
3802 2003-03-06 Michael Meeks <michael@server.home>
3804 * configure.in: if we don't have kde-config, disable have_qt.
3806 2003-03-07 Anders Carlsson <andersca@codefactory.se>
3811 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
3812 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
3813 (dbus_dict_remove), (dbus_dict_get_value_type),
3814 (dbus_dict_get_keys), (dbus_dict_put_boolean),
3815 (dbus_dict_put_int32), (dbus_dict_put_uint32),
3816 (dbus_dict_put_double), (dbus_dict_put_string),
3817 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
3818 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
3819 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
3820 (dbus_dict_get_int32), (dbus_dict_get_uint32),
3821 (dbus_dict_get_double), (dbus_dict_get_string),
3822 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
3823 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
3824 (dbus_dict_get_string_array), (_dbus_dict_test):
3826 Add DBusDict implementation
3828 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
3832 2003-03-04 Havoc Pennington <hp@pobox.com>
3834 * test/data/auth/*: adapt to changes
3836 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
3837 USERID_BASE64 and change USERNAME_BASE64 to put in username not
3840 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
3841 more stuff from being in a context name, to make the protocol
3842 simpler to deal with
3844 * dbus/dbus-errors.c (dbus_error_has_name): new function
3845 (dbus_error_is_set): new function
3847 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
3848 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
3850 * dbus/dbus-connection.c (dbus_connection_flush): also read
3851 messages during a flush operation
3853 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
3855 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3857 * configure.in: Check for gethostbyname on Solaris.
3859 * dbus/dbus-transport.c: (_dbus_transport_open):
3860 Remove duplicate "tcp" entry.
3862 * doc/dbus-specification.sgml:
3863 Clarify some things.
3865 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3867 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3868 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3869 (_dbus_keyring_test):
3870 * dbus/dbus-md5.c: (_dbus_md5_compute):
3871 * dbus/dbus-sha.c: (_dbus_sha_compute):
3874 2003-03-05 Anders Carlsson <andersca@codefactory.se>
3876 * README: Add some things.
3878 2003-03-04 Anders Carlsson <andersca@codefactory.se>
3880 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3881 after case DBUS_TYPE_BOOELAN.
3883 2003-03-02 Havoc Pennington <hp@pobox.com>
3885 * test/break-loader.c (randomly_set_extreme_ints): add test that
3886 sets really huge and small integers
3888 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3889 that length of boolean array fits in the string, and that
3890 string has room for boolean value in single-bool case.
3892 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3893 optional value to "ALIGN" command which is what to fill the
3896 * test/data/valid-messages/no-padding.message: add regression
3897 test for the message padding problem
3899 2003-03-02 Havoc Pennington <hp@pobox.com>
3901 * dbus/dbus-message.c (decode_header_data): fix to always init
3902 message_padding, from Benjamin Dauvergne
3904 2003-03-02 Havoc Pennington <hp@pobox.com>
3910 2003-03-01 Joe Shaw <joe@assbarn.com>
3912 * configure.in: Check for "struct cmsgcred" and try to access its
3913 members for BSD-like unices.
3915 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3916 _dbus_read_credentials_unix_socket().
3917 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3918 read() for reading the credential byte off the unix socket. Use
3919 struct cmsgcred on systems that support it.
3921 2003-02-27 Alexander Larsson <alexl@redhat.com>
3925 Make gthreads-2.0 dependency optional. Don't build thread test if
3928 2003-02-27 Havoc Pennington <hp@pobox.com>
3930 * dbus/dbus-connection.c
3931 (dbus_connection_send_message_with_reply_and_block): fix doh!
3932 doh! doh! bug that resulted in never removing a reply from the
3933 queue, no wonder we called get_reply_serial so much ;-)
3935 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3936 and client serial instead of demarshaling them every time
3938 2003-02-27 Havoc Pennington <hp@pobox.com>
3940 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3941 more inlined, using dbus-string-private.h, speeds things up
3944 * dbus/dbus-string.c (_dbus_string_free): apply align offset
3945 when freeing the string
3946 (_dbus_string_steal_data): fix for align offset
3947 (undo_alignment): new function
3949 2003-02-26 Havoc Pennington <hp@redhat.com>
3951 All kinds of audit fixes from Owen, plus initial attempt to
3952 handle unaligned memory returned from malloc.
3954 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3955 leave room for align_offset and nul byte
3956 (fixup_alignment): function to track an align_offset and
3957 ensure real->str is aligned
3958 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3959 to allow a nul byte plus align offset
3960 (_dbus_string_lock): fix overflow issue
3961 (_dbus_string_init_const_len): add assertions on sanity of len,
3962 assign allocated to be ALLOCATION_PADDING larger than len
3963 (set_length): fixup the overflow handling
3964 (_dbus_string_get_data_len): fix overflow in assertion
3965 (open_gap): detect overflow in size of gap to be opened
3966 (_dbus_string_lengthen): add overflow check
3967 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
3968 (_dbus_string_append): add overflow check
3969 (_dbus_string_append_unichar): overflow
3970 (_dbus_string_delete): fix overflow in assertion
3971 (_dbus_string_copy_len): overflow in assertion
3972 (_dbus_string_replace_len): overflows in assertions
3973 (_dbus_string_find): change to implement in terms of
3974 _dbus_string_find_to
3975 (_dbus_string_find_to): assorted fixage
3976 (_dbus_string_equal_c_str): assert c_str != NULL,
3977 fix logic so the function works
3978 (_dbus_string_ends_with_c_str): fix overflow thingy
3979 (_dbus_string_base64_encode): overflow fix
3980 (_dbus_string_validate_ascii): overflow
3981 (_dbus_string_validate_nul): overflow
3983 2003-02-26 Havoc Pennington <hp@redhat.com>
3985 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
3987 2003-02-26 Alexander Larsson <alexl@redhat.com>
3990 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
3992 * dbus/dbus-connection.c:
3993 * dbus/dbus-connection.h:
3994 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
3995 Add dbus_connection_set_wakeup_main_function and use it when queueing
3996 incoming and outgoing messages.
3999 * dbus/dbus-dataslot.c:
4000 Threadsafe usage of DBusDataSlotAllocator
4002 * dbus/dbus-message.c: (dbus_message_get_args_iter):
4005 * dbus/dbus-server-unix.c:
4008 * glib/dbus-gmain.c:
4009 Implement the new wakeup functions for glib.
4012 * glib/test-thread-client.c:
4013 * glib/test-thread-server.c:
4014 * glib/test-thread.h:
4015 Initial cut at some thread test code. Not really done yet.
4017 2003-02-26 Havoc Pennington <hp@pobox.com>
4019 * dbus/dbus-connection.c
4020 (dbus_connection_send_message_with_reply_and_block): fix crash
4021 where we ref'd the outgoing message instead of the returned reply
4023 * dbus/dbus-transport-unix.c (do_authentication): check read watch
4024 at the end of this function, so if we didn't need to read for
4025 authentication, we reinstall it for receiving messages
4027 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
4028 a NULL sender for peer-to-peer case
4030 * dbus/dbus-transport-unix.c (check_read_watch): handle
4031 !authenticated case correctly
4033 * glib/dbus-gmain.c: add support for DBusServer
4035 * dbus/dbus-server.c: add data slot support
4037 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
4038 return values and handle errors
4040 * dbus/dbus-dataslot.c: factor out the data slot stuff from
4043 * Doxyfile.in (INPUT): add glib subdir
4045 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
4046 setup_with_g_main instead of hookup_with_g_main; write docs
4048 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4050 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
4051 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4052 * dbus/dbus-message.c: (dbus_message_append_boolean),
4053 (dbus_message_append_boolean_array),
4054 (dbus_message_get_args_valist), (_dbus_message_test):
4055 * dbus/dbus-message.h:
4056 * doc/dbus-specification.sgml:
4057 Various fixes as pointed out by Havoc.
4059 * test/data/invalid-messages/bad-boolean-array.message:
4060 * test/data/invalid-messages/bad-boolean.message:
4061 Add invalid boolean value test cases.
4063 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4065 * dbus/dbus-internals.c: (_dbus_type_to_string):
4066 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4067 (_dbus_marshal_validate_arg):
4068 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4069 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4070 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
4071 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
4072 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
4073 (dbus_message_iter_get_double),
4074 (dbus_message_iter_get_boolean_array), (message_iter_test):
4075 * dbus/dbus-message.h:
4076 * dbus/dbus-protocol.h:
4077 * doc/dbus-specification.sgml:
4078 * test/data/valid-messages/lots-of-arguments.message:
4079 Add support for boolean and boolean array types.
4081 2003-02-23 Havoc Pennington <hp@pobox.com>
4083 * dbus/dbus-keyring.c: finish most of this implementation and
4086 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
4087 these barf if the error isn't cleared to NULL
4089 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
4090 (_dbus_create_directory): new function
4092 * dbus/dbus-errors.c (dbus_set_error): fix warning
4094 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
4095 (_dbus_string_hex_decode): new function
4096 (test_hex_roundtrip): test code
4098 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
4100 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
4102 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
4103 the save-to-temp/rename trick to atomically write the new file
4104 (_dbus_string_parse_uint): new function
4106 2003-02-22 Havoc Pennington <hp@pobox.com>
4108 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
4110 2003-02-22 Havoc Pennington <hp@pobox.com>
4112 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
4113 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
4115 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
4117 * dbus/test/data/sha-1: add US government test suite for SHA-1
4119 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4121 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4122 Make string arrays NULL-terminated.
4124 * dbus/dbus-memory.c: (dbus_free_string_array):
4125 * dbus/dbus-memory.h:
4126 New function for freeing NULL-terminated string arrays.
4128 * dbus/dbus-message-builder.c: (append_quoted_string),
4129 (_dbus_message_data_load):
4130 Add support for array types.
4132 * dbus/dbus-message.c: (check_message_handling):
4133 Add more types as test cases.
4135 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
4136 (_dbus_string_parse_double):
4137 Add the start offset to the end offset.
4139 * test/data/valid-messages/lots-of-arguments.message:
4140 New test message with lots of arguments.
4142 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4144 * dbus/dbus-message.c: (dbus_message_append_nil),
4145 (dbus_message_append_int32), (dbus_message_append_uint32),
4146 (dbus_message_append_double), (dbus_message_append_string),
4147 (dbus_message_append_int32_array),
4148 (dbus_message_append_uint32_array),
4149 (dbus_message_append_double_array),
4150 (dbus_message_append_byte_array),
4151 (dbus_message_append_string_array):
4152 Fix all out-of-memory handling in these functions.
4154 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4156 * dbus/dbus-message.c: (dbus_message_append_nil):
4159 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4161 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4162 (dbus_message_append_nil), (dbus_message_append_int32_array),
4163 (dbus_message_append_uint32_array),
4164 (dbus_message_append_double_array),
4165 (dbus_message_append_byte_array),
4166 (dbus_message_append_string_array), (dbus_message_get_args_valist),
4167 (dbus_message_iter_get_int32_array),
4168 (dbus_message_iter_get_uint32_array),
4169 (dbus_message_iter_get_double_array),
4170 (dbus_message_iter_get_byte_array),
4171 (dbus_message_iter_get_string_array):
4173 * dbus/dbus-message.h:
4174 Add functions for appending and getting arrays.
4176 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4178 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
4179 element size at least 8 bytes, fixes mempool tests on
4182 2003-02-20 Alexander Larsson <alexl@redhat.com>
4184 * dbus/dbus-transport-unix.c (unix_do_iteration):
4185 Unlock the connection mutex during a blocking select call.
4186 Add todo about how we need a way to wake up the select.
4188 * dbus/dbus-connection-internal.h:
4189 * dbus/dbus-connection.c:
4190 Add _dbus_connection_lock and _dbus_connection_unlock.
4192 2003-02-19 Havoc Pennington <hp@pobox.com>
4194 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
4195 Doxyfile.in, not Doxyfile
4197 * dbus/dbus-keyring.c: do some hacking on this
4199 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
4201 * dbus/dbus-errors.c (dbus_set_error_const): do not call
4203 (dbus_set_error): remove dbus_error_init, check for message ==
4204 NULL *before* we sprintf into it, and add @todo about including
4205 system headers in this file
4207 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
4209 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
4211 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
4212 get various bits of user information based on either username
4214 (_dbus_homedir_from_username): new function
4216 2003-02-19 Anders Carlsson <andersca@codefactory.se>
4219 Add check for nonposix getpwnam_r
4221 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
4222 Align the pool element size to a sizeof (void *) boundary.
4224 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
4225 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
4226 General Solaris fixes.
4228 * test/data/valid-messages/simplest-manual.message:
4229 Explicitly state that we want little-endian packing.
4231 2003-02-19 Mikael Hallendal <micke@codefactory.se>
4233 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4235 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
4236 Added to create a transport connecting using a tcp/ip socket.
4238 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
4239 to a tcp socket at given host and port.
4240 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
4243 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4245 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4246 Added to create a server listening on a TCP/IP socket.
4248 2003-02-19 Havoc Pennington <hp@pobox.com>
4250 Throughout: mop up all the Doxygen warnings and undocumented
4253 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
4254 to search any paths.
4256 * dbus/dbus-threads.c: move global mutex initializers to
4257 dbus-internals.h, multiple prototypes was confusing doxygen
4258 besides being kind of ugly
4260 * Doxyfile (PREDEFINED): have Doxygen define
4261 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
4262 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
4263 (do not abuse the feature! it's for stuff like the autogenerated
4264 macros in dbus-md5.c, not just for things you don't feel like
4267 2003-02-18 Havoc Pennington <hp@pobox.com>
4269 * dbus/dbus-string.c (_dbus_string_zero): new function
4271 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
4272 wrap it in some dbus-friendly API
4274 * dbus/dbus-types.h: add 16-bit types
4276 2003-02-18 Joe Shaw <joe@assbarn.com>
4278 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
4279 credentials from our currently running process.
4280 (get_word): Fix a buglet where we were copying the entire length
4281 instead of relative to our position.
4283 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
4284 keys on the stack... it's 640k of data.
4286 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
4287 read the credentials byte off the socket, even if we don't have
4289 (_dbus_poll): Implement poll() using select() for systems which
4292 * glib/test-dbus-glib.c (main): Print out an error if no
4293 parameters are given.
4295 * test/data/auth/fallback.auth-script: Added. Tests that a client
4296 can fallback to a secondary auth mechanism if the first fails.
4298 2003-02-18 Havoc Pennington <hp@pobox.com>
4302 2003-02-17 Havoc Pennington <hp@pobox.com>
4304 * doc/dbus-specification.sgml: lots of cosmetic
4305 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
4306 env variable to DBUS_BUS_ADDRESS, s/client/application/,
4307 s/server/bus/ (except in authentication section). Add a section
4308 "Message Bus Message Routing"
4310 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
4316 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4318 * doc/dbus-specification.sgml:
4319 Specification updates.
4321 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4323 * bus/activation.c: (bus_activation_init), (child_setup),
4324 (bus_activation_activate_service):
4326 * bus/main.c: (main):
4327 Set DBUS_ADDRESS environment variable.
4329 * dbus/dbus-errors.c: (dbus_set_error):
4330 Don't use va_copy since that's a C99 feature.
4332 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
4333 (_dbus_spawn_async):
4334 * dbus/dbus-sysdeps.h:
4335 Add child_setup_func to _dbus_spawn_async.
4337 * doc/dbus-specification.sgml:
4338 Update specification.
4340 * test/spawn-test.c: (setup_func), (main):
4343 2003-02-17 Alexander Larsson <alexl@redhat.com>
4345 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
4348 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4352 * doc/dbus-test-plan.sgml:
4353 Add test plan document.
4358 2003-02-17 Anders Carlsson <andersca@codefactory.se>
4360 * dbus/dbus-message.c: (decode_header_data),
4361 (_dbus_message_loader_return_buffer):
4362 Set the header padding amount when loading a message.
4364 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4366 * bus/dispatch.c: (send_one_message):
4367 Only send broadcast messages to registered connections.
4369 * dbus/dbus-message.c: (dbus_message_name_is):
4370 * dbus/dbus-message.h:
4371 New convenience function.
4373 * dbus/dbus-transport-debug.c: (do_reading):
4374 Only dispatch one message per run.
4377 * test/bus-test.c: (new_connection_callback), (die),
4378 (test_hello_client1_handler), (test_hello_client2_handler),
4379 (test_hello_replies), (main):
4381 * test/bus-test-loop.[ch]:
4384 2003-02-16 Havoc Pennington <hp@pobox.com>
4386 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4387 backward conditional
4389 2003-02-16 Alexander Larsson <alexl@redhat.com>
4391 * dbus/dbus-connection.c:
4392 Implement sent_message_with_reply. (with_reply_and block is still
4394 Made dispatch_message not lose message if OOM.
4396 * dbus/dbus-errors.h:
4397 Add NoReply error (for reply timeouts).
4399 2003-02-16 Alexander Larsson <alexl@redhat.com>
4401 * dbus/dbus-hash.c (_dbus_hash_table_unref):
4402 Actually free keys and values when destroying hashtable.
4404 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4406 * dbus/dbus-auth.c: (client_try_next_mechanism):
4409 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
4410 Return TRUE if there's no thread implementation around.
4412 * glib/dbus-gmain.c: (free_source),
4413 (dbus_connection_hookup_with_g_main):
4414 Make sure to remove the GSource when the connection is finalized.
4416 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4418 * bus/dispatch.c: (bus_dispatch_message_handler):
4419 * dbus/dbus-errors.h:
4420 Return an error if someone tries to send a message to a service
4423 2003-02-16 Anders Carlsson <andersca@codefactory.se>
4425 * bus/activation.c: (load_directory), (bus_activation_init),
4426 (bus_activation_activate_service):
4429 (bus_driver_handle_activate_service), (bus_driver_handle_message):
4430 More work on the activation handling.
4432 * dbus/dbus-errors.h:
4433 Add some error messages
4435 * dbus/dbus-message.c: (dbus_message_new_error_reply):
4436 * dbus/dbus-message.h:
4437 New function that creates an error message.
4439 * dbus/dbus-protocol.h:
4440 Add ACTIVATE_SERVER message.
4442 * dbus/dbus-server-unix.c: (unix_handle_watch),
4443 (_dbus_server_new_for_domain_socket):
4444 Call _dbus_fd_set_close_on_exec.
4446 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
4447 (_dbus_spawn_async), (_dbus_disable_sigpipe),
4448 (_dbus_fd_set_close_on_exec):
4449 * dbus/dbus-sysdeps.h:
4450 Add _dbus_fd_set_close_on exec function. Also add function that checks
4451 that all open fds are set to close-on-exec and warns otherwise.
4453 * dbus/dbus-transport-unix.c:
4454 (_dbus_transport_new_for_domain_socket):
4455 Call _dbus_fd_set_close_on_exec.
4457 2003-02-16 Havoc Pennington <hp@pobox.com>
4459 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
4460 allow people to avoid setting SIGPIPE to SIG_IGN
4461 (_dbus_connection_new_for_transport): disable SIGPIPE unless
4462 we've been asked not to
4464 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4466 * dbus/dbus-list.c: (_dbus_list_append_link),
4467 (_dbus_list_prepend_link):
4468 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
4472 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4475 * bus/activation.c: (bus_activation_entry_free),
4476 (add_desktop_file_entry), (load_directory), (bus_activation_init):
4478 * bus/main.c: (main):
4479 Add simple activation support, doesn't work yet though.
4481 2003-02-15 Zack Rusin <zack@kde.org>
4483 * qt/dbus-qthread.cpp: small casting fix
4485 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4487 * dbus/dbus-errors.c: (dbus_set_error):
4488 * dbus/dbus-errors.h:
4489 Add a few errors and make dbus_set_error void.
4491 * dbus/dbus-sysdeps.c:
4492 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
4493 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
4494 * dbus/dbus-sysdeps.h:
4495 Add _dbus_spawn_async.
4497 * test/spawn-test.c: (main):
4498 Test for _dbus_spawn_async.
4500 2003-02-15 Anders Carlsson <andersca@codefactory.se>
4502 * dbus/dbus-internals.h:
4503 Fix build without tests.
4505 * dbus/dbus-list.c: (alloc_link):
4506 Fix a segfault when a malloc fails.
4508 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
4509 (dbus_malloc0), (dbus_realloc):
4510 Add support for malloc debugging.
4512 2003-02-15 Alexander Larsson <alexl@redhat.com>
4514 * dbus/dbus-threads.c:
4515 * dbus/dbus-threads.h:
4516 Add condvars. Remove static mutext from API.
4517 Implement static mutexes by initializing them from threads_init.
4519 * glib/dbus-gthread.c:
4520 * qt/dbus-qthread.cpp:
4521 Update with the thread api changes.
4526 Turn StaticMutex into normal mutex + init function.
4527 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4528 _dbus_list_append_link, _dbus_list_prepend_link
4531 * dbus/dbus-sysdeps.c:
4532 * dbus/dbus-sysdeps.h:
4533 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4534 _dbus_atomic_dec. Only slow fallback implementation at the moment.
4536 * dbus/dbus-protocol.h:
4537 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4539 * dbus/dbus-message.c:
4540 Make ref/unref atomic.
4543 * dbus/dbus-connection-internal.h:
4544 * dbus/dbus-connection.c:
4545 * dbus/dbus-connection.h:
4547 Change _peek to _borrow,_return & _steal_borrowed.
4548 Change disconnect callback to event.
4549 Make dbus_connection_dispatch_messages reentrant.
4551 * dbus/dbus-transport.c:
4552 Don't ref the connection on calls to the transport
4555 * dbus/dbus-message-handler.c:
4558 * glib/dbus-gmain.c:
4559 Don't use peek_message anymore
4562 * test/debug-thread.c:
4563 * test/debug-thread.h:
4564 Simple thread implementation that asserts() on deadlocks in
4565 single-threaded code.
4568 (main) Call debug_threads_init.
4571 Use disconnect message instead of disconnect callback.
4575 Don't call dbus_connection_set_disconnect_function. Instead export
4576 bus_connection_disconnect.
4579 Call bus_connection_disconnect when we get a disconnected message.
4581 2003-02-15 Havoc Pennington <hp@pobox.com>
4583 * dbus/dbus-message.c (dbus_message_new): fool around with the
4586 2003-02-14 Havoc Pennington <hp@pobox.com>
4588 * dbus/dbus-mempool.c: fail if the debug functions so indicate
4590 * dbus/dbus-memory.c: fail if the debug functions indicate we
4593 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4594 (_dbus_decrement_fail_alloc_counter): debug functions to
4595 simulate memory allocation failures
4597 2003-02-14 Havoc Pennington <hp@pobox.com>
4599 * dbus/dbus-errors.h (struct DBusError): add a word of padding
4602 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4604 * bus/driver.c: (bus_driver_handle_hello):
4606 * bus/services.c: (bus_service_lookup):
4607 Reorder message sending so we get a more sane order.
4609 * test/bus-test.c: (message_handler):
4612 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4614 * bus/driver.c: (bus_driver_send_service_deleted),
4615 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4616 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4617 (bus_driver_send_welcome_message),
4618 (bus_driver_handle_list_services),
4619 (bus_driver_handle_acquire_service),
4620 (bus_driver_handle_service_exists):
4621 * dbus/dbus-bus.c: (dbus_bus_register_client),
4622 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4623 * dbus/dbus-errors.c: (dbus_result_to_string):
4624 * dbus/dbus-errors.h:
4625 * dbus/dbus-message.c: (dbus_message_append_args),
4626 (dbus_message_append_args_valist), (dbus_message_get_args),
4627 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4628 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4629 (dbus_message_iter_get_byte_array),
4630 (dbus_message_iter_get_string_array), (message_iter_test),
4631 (check_message_handling), (_dbus_message_test):
4632 * dbus/dbus-message.h:
4633 * test/bus-test.c: (main):
4634 Change fields to arguments in messages, so that they won't be
4635 confused with header fields.
4637 * glib/test-dbus-glib.c: (main):
4638 Remove append_fields from hello message.
4640 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4642 * dbus/dbus-errors.c:
4643 * dbus/dbus-message.c:
4644 * dbus/dbus-string.c:
4645 Documentation fixes.
4647 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4649 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
4651 Implement support for timeouts in dbus-glib.
4653 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4655 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4656 * dbus/dbus-message.c: (process_test_subdir):
4657 * test/break-loader.c: (find_breaks_based_on):
4658 Plug some memory leaks.
4660 2003-02-13 Richard Hult <rhult@codefactory.se>
4662 * bus/main.c: Fix build.
4664 * dbus/dbus-errors.h:
4665 * dbus/dbus-errors.c: Fix copyright for Anders.
4667 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4672 * bus/connection.c: (bus_connection_foreach):
4675 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
4676 (unescape_string), (new_section), (parse_section_start),
4677 (parse_key_value), (report_error), (bus_desktop_file_load),
4678 (bus_desktop_file_get_string):
4679 * bus/desktop-file.h:
4680 Use DBusError for error reporting.
4682 * bus/dispatch.c: (send_one_message),
4683 (bus_dispatch_message_handler):
4684 * bus/driver.c: (bus_driver_send_service_deleted),
4685 (bus_driver_send_service_created), (bus_driver_send_service_lost),
4686 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4687 (bus_driver_send_welcome_message),
4688 (bus_driver_handle_list_services),
4689 (bus_driver_handle_acquire_service),
4690 (bus_driver_handle_service_exists):
4691 * bus/loop.c: (bus_loop_run):
4693 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
4695 * bus/utils.c: (bus_wait_for_memory):
4697 New files with general utility functions.
4699 * dbus/dbus-internals.h:
4700 Remove _DBUS_HANDLE_OOM.
4702 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4704 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
4705 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
4706 * dbus/dbus-errors.h:
4707 Add DBusError structure.
4709 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4711 * test/data/valid-messages/standard-acquire-service.message:
4712 * test/data/valid-messages/standard-hello.message:
4713 * test/data/valid-messages/standard-list-services.message:
4714 * test/data/valid-messages/standard-service-exists.message:
4715 Add some standard messages.
4717 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4719 * bus/driver.c: (bus_driver_send_welcome_message),
4720 (bus_driver_handle_list_services),
4721 (bus_driver_handle_acquire_service),
4722 (bus_driver_handle_service_exists), (bus_driver_handle_message):
4723 Update for API changes in libdbus.
4725 * dbus/dbus-message.c: (dbus_message_new_reply):
4726 * dbus/dbus-message.h:
4727 Remove the name argument. The spec states that replies shouldn't
4730 2003-02-13 Anders Carlsson <andersca@codefactory.se>
4732 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
4733 (report_error), (bus_desktop_file_load), (lookup_section),
4734 (lookup_line), (bus_desktop_file_get_raw),
4735 (bus_desktop_file_get_string):
4736 * bus/desktop-file.h:
4737 Some fixes, and new functions for getting a key value from a section.
4739 2003-02-13 Havoc Pennington <hp@pobox.com>
4741 * test/data/auth/fail-after-n-attempts.auth-script: new test
4743 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
4746 2003-02-13 Havoc Pennington <hp@pobox.com>
4748 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
4749 dbus_credentials_match were backward
4751 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
4752 NO_CREDENTIALS and ROOT_CREDENTIALS
4754 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
4755 into here. Never process more commands after we've reached an
4756 end state; store further data as unused bytes.
4758 * test/data/auth/*: add more auth tests
4760 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
4761 command to match exact string and EXPECT_UNUSED to match unused
4764 * test/Makefile.am (dist-hook): fix to dist all the test stuff
4766 2003-02-12 Havoc Pennington <hp@pobox.com>
4768 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
4769 \r off of popped lines
4771 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
4774 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
4777 2003-02-12 Havoc Pennington <hp@pobox.com>
4779 * dbus/Makefile.am: remove break-loader from the build, since it
4782 * configure.in: add --enable-gcov to turn on coverage profiling
4783 flags and disable optimization
4785 2003-02-10 Havoc Pennington <hp@pobox.com>
4787 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
4788 initial cut at test framework for DBusAuth from laptop.
4789 Doesn't quite work yet but it compiles and I need to get
4790 it off the 266mhz laptop. ;-)
4792 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
4793 fix a memleak in error case
4795 2003-02-12 Anders Carlsson <andersca@codefactory.se>
4798 * bus/desktop-file.c:
4799 * bus/desktop-file.h:
4800 Add a desktop file parser.
4802 2003-02-11 Zack Rusin <zack@kde.org>
4804 * qt/message.[h|cpp]: sample implementation
4805 of the KDE wrapper for DBusMessage
4807 2003-02-09 Zack Rusin <zack@kde.org>
4809 * test/bus-test.c: make_it_compile
4810 * doc/dbus-specification.sgml: minimal semantic fix
4812 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4818 2003-02-06 Anders Carlsson <andersca@codefactory.se>
4821 * dbus/dbus-break-loader.c:
4823 * test/break-loader.c:
4824 Move dbus-break-loader to test/ and rename it to break-loader.
4826 2003-02-02 Havoc Pennington <hp@pobox.com>
4828 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
4829 for code to manage cookies in your home directory
4831 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
4833 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
4834 to authenticate, then disconnect the client.
4836 2003-02-03 Alexander Larsson <alexl@redhat.com>
4838 * dbus/dbus-message.c (dbus_message_append_fields):
4841 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4843 * doc/dbus-specification.sgml:
4844 Update address format section.
4846 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4849 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
4850 (message_handler), (new_connection_callback), (loop_quit),
4854 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4856 * bus/driver.c: (bus_driver_handle_service_exists):
4857 Simplify the code a bit.
4859 * dbus/dbus-bus.c: (dbus_bus_service_exists):
4862 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4865 Add libdbus-daemon.la and link to it.
4867 2003-02-01 James Willcox <jwillcox@gnome.org>
4869 * bus/driver.c: (bus_driver_handle_own_service):
4870 Actually include the service reply code in the message.
4872 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4874 * bus/driver.c: (bus_driver_handle_service_exists):
4875 Don't unref the incoming message.
4877 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4879 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4881 2003-02-02 Anders Carlsson <andersca@codefactory.se>
4883 * dbus/dbus-server.c: (dbus_server_listen):
4884 * dbus/dbus-transport.c: (_dbus_transport_open):
4885 ifdef out the calls to the debug transport and server.
4887 2003-02-02 Alexander Larsson <alexl@redhat.com>
4889 * dbus/dbus-watch.c (dbus_watch_get_flags):
4890 Add note in the docs that ERROR or HANGUP won't be returned
4891 and are assumed always on.
4893 * glib/dbus-gmain.c (add_watch):
4894 Always add IO_ERR | IO_HUP
4896 * dbus/dbus-message.h:
4897 Add semicolon after dbus_message_iter_get_string_array().
4898 Makes qt code build again
4900 2003-02-01 Anders Carlsson <andersca@codefactory.se>
4902 * bus/driver.c: (create_unique_client_name),
4903 (bus_driver_handle_hello):
4904 Don't take a name, just use a numeric id to identify
4908 * dbus/dbus-bus.c: (dbus_bus_register_client),
4909 (dbus_bus_acquire_service), (dbus_bus_service_exists):
4911 Add new convenience functions for communicating with the bus.
4913 * dbus/dbus-message.h:
4915 * dbus/dbus-protocol.h:
4918 2003-02-01 Alexander Larsson <alexl@redhat.com>
4920 * dbus/dbus-message.c (dbus_message_append_fields):
4921 Add some more doc comments.
4923 2003-02-01 Havoc Pennington <hp@pobox.com>
4925 * dbus/dbus-break-loader.c (randomly_modify_length): change
4926 a 4-byte value in the message as if it were a length
4928 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4929 execute bit on saved files
4931 2003-02-01 Havoc Pennington <hp@pobox.com>
4933 * dbus/dbus-break-loader.c (main): new program to find messages
4934 that break the loader.
4936 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4937 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4939 * dbus/dbus-string.c (_dbus_string_set_byte): new
4941 2003-01-31 Havoc Pennington <hp@pobox.com>
4943 * dbus/dbus-message.c: refactor the test code to be more general,
4944 in preparation for writing a "randomly permute test cases to
4945 try to break the loader" program.
4947 2003-01-31 Havoc Pennington <hp@pobox.com>
4949 * doc/dbus-specification.sgml: work on the specification
4951 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4952 the protocol version of the message.
4954 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4955 no longer specifies that.
4956 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4959 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4960 "break" for DBUS_TYPE_NIL, remove @todo
4962 2003-01-31 Havoc Pennington <hp@pobox.com>
4964 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4965 just set_is_error/get_is_error as this is a commonly-used
4966 function, and write docs.
4968 2003-01-31 Anders Carlsson <andersca@codefactory.se>
4970 * dbus/dbus-address.c: (dbus_address_entry_free):
4971 Free key and value lists.
4973 * dbus/dbus-internals.c: (_dbus_type_to_string):
4974 Add the types we didn't have.
4976 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4977 (_dbus_marshal_validate_arg):
4980 * dbus/dbus-message.c: (dbus_message_set_sender):
4981 Remove todo about being able to set sender to NULL.
4983 (dbus_message_set_is_error_reply),
4984 (dbus_message_get_is_error_reply):
4985 * dbus/dbus-message.h:
4988 * dbus/dbus-protocol.h:
4989 Add error reply flag.
4991 * test/data/valid-messages/opposite-endian.message:
4992 Add NIL type to test.
4994 2003-01-31 Havoc Pennington <hp@pobox.com>
4996 * doc/dbus-specification.sgml: fully specify the header. Add
4997 flags and major protocol version, and change header/body len to
5000 * dbus/dbus-message-builder.c (append_saved_length): append length
5003 * dbus/dbus-message.c (dbus_message_create_header): change header
5004 length and body length to unsigned. Add the new fields from the
5006 (_dbus_message_loader_return_buffer): unsigned header/body len
5008 2003-01-30 Havoc Pennington <hp@pobox.com>
5010 * dbus/dbus-auth.c: rework to use only REJECTED, no
5013 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
5014 use REJECTED, suggested by Mark McLoughlin
5016 2003-01-30 Havoc Pennington <hp@pobox.com>
5018 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
5019 a better way to report errors here. e.g. "unix address lacks
5020 path" or something. also "no such file" when the path doesn't
5023 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
5025 (dbus_parse_address): add @todo about documenting address format,
5026 and allowing , and ; to be escaped
5028 2003-01-30 Anders Carlsson <andersca@codefactory.se>
5031 Add dbus-address.[ch]
5033 * dbus/dbus-address.c: (dbus_address_entry_free),
5034 (dbus_address_entries_free), (create_entry),
5035 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
5036 (dbus_parse_address), (_dbus_address_test):
5037 * dbus/dbus-address.h:
5038 New files for dealing with address parsing.
5040 * dbus/dbus-connection.c:
5041 Document timeout functions.
5043 * dbus/dbus-message.c:
5044 Document dbus_message_new_from_message.
5046 * dbus/dbus-server-debug.c:
5049 * dbus/dbus-server.c: (dbus_server_listen):
5050 Parse address and use correct server implementation.
5052 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
5053 * dbus/dbus-string.h:
5054 New function with test.
5056 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
5060 * dbus/dbus-transport-debug.c:
5063 * dbus/dbus-transport.c: (_dbus_transport_open):
5064 Parse address and use correct transport implementation.
5066 2003-01-30 Havoc Pennington <hp@pobox.com>
5068 * dbus/dbus-message.c: use message->byte_order instead of
5069 DBUS_COMPILER_BYTE_ORDER throughout.
5070 (dbus_message_create_header): pad header to align the
5071 start of the body of the message to 8-byte boundary
5073 * dbus/dbus-marshal.h: make all the demarshalers take const
5074 DBusString arguments.
5076 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
5077 validate message args here, so we don't have to do slow validation
5078 later, and so we catch bad messages as they are incoming. Also add
5079 better checks on header_len and body_len. Also fill in
5082 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
5083 implemented properly)
5084 (_dbus_string_validate_nul): new function to check all-nul
5086 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
5087 get_arg_end_pos and remove all validation
5088 (_dbus_marshal_validate_arg): actually do validation here.
5090 2003-01-29 Havoc Pennington <hp@pobox.com>
5092 * dbus/dbus-message.c (check_message_handling): fix assertion
5093 failure on set_client_serial
5095 2003-01-28 Havoc Pennington <hp@pobox.com>
5097 * dbus/dbus-server-debug.c: Add doc section comments
5099 * dbus/dbus-transport-debug.c: add doc section comments
5101 2003-01-28 Havoc Pennington <hp@redhat.com>
5103 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
5104 the reverse order from how I had it
5105 (_dbus_string_base64_encode): reverse encoding order. I was
5106 basically byteswapping everything during encoding.
5108 2003-01-28 Anders Carlsson <andersca@codefactory.se>
5110 * dbus/dbus-connection-internal.h:
5111 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
5112 (_dbus_connection_remove_timeout):
5113 Add functions for adding and removing timeouts.
5115 * dbus/dbus-message.c: (dbus_message_new_from_message):
5116 Add new function that takes a message and creates an exact
5117 copy of it, but with the refcount set to 1.
5118 (check_message_handling):
5121 * dbus/dbus-server-protected.h:
5122 * dbus/dbus-server.c: (_dbus_server_init_base),
5123 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
5124 (dbus_server_set_timeout_functions):
5125 (_dbus_server_remove_timeout):
5126 New functions so that a server can add and remove timeouts.
5128 (dbus_server_listen):
5129 Add commented out call to dbus_server_debug_new.
5131 * dbus/dbus-timeout.c: (_dbus_timeout_new):
5132 Actually set the handler, doh.
5134 * dbus/dbus-transport.c: (_dbus_transport_open):
5135 Add commented out call to dbus_transport_debug_client_new.
5138 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
5140 2003-01-28 Havoc Pennington <hp@pobox.com>
5142 * dbus/dbus-message.c (check_message_handling): function to check
5143 on the loaded message, iterates over it etc.
5145 2003-01-28 Havoc Pennington <hp@pobox.com>
5147 * test/Makefile.am (dist-hook): fix make distdir
5149 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
5151 2003-01-27 Havoc Pennington <hp@pobox.com>
5153 * dbus/dbus-mempool.c (time_for_size): replace printf with
5156 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
5157 empty lines; fix the SAVE_LENGTH stuff to be
5158 START_LENGTH/END_LENGTH so it actually works; couple other
5161 * test/Makefile.am (dist-hook): add dist-hook for .message files
5163 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
5164 can be constant or locked.
5165 (_dbus_string_free): allow freeing a const string as
5168 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
5170 * dbus/dbus-test-main.c (main): take an argument which is the
5171 directory containing test data
5173 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
5174 argument to this and load all the messages in test/data/
5175 checking that they can be loaded or not loaded as appropriate.
5177 2003-01-27 Anders Carlsson <andersca@codefactory.se>
5179 * bus/dispatch.c: (bus_dispatch_message_handler):
5180 Dispatch messages sent to services.
5182 * bus/driver.c: (bus_driver_send_service_deleted),
5183 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5184 (bus_driver_send_service_acquired):
5185 Add helper functions for sending service related messages.
5187 (bus_driver_send_welcome_message):
5188 Send HELLO_REPLY instead of WELCOME.
5190 (bus_driver_handle_list_services):
5191 Send LIST_SERVICES_REPLY instead of SERVICES.
5193 (bus_driver_handle_own_service),
5194 (bus_driver_handle_service_exists):
5195 New message handlers.
5197 (bus_driver_handle_message):
5198 Invoke new message handlers.
5200 (bus_driver_remove_connection):
5201 Don't remove any services here since that's done automatically
5202 by bus_service_remove_owner now.
5205 New function signatures.
5207 * bus/services.c: (bus_service_add_owner):
5208 Send ServiceAcquired message if we're the only primary owner.
5210 (bus_service_remove_owner):
5211 Send ServiceAcquired/ServiceLost messages.
5213 (bus_service_set_prohibit_replacement),
5214 (bus_service_get_prohibit_replacement):
5215 Functions for setting prohibit replacement.
5217 (bus_service_has_owner):
5218 New function that checks if a connection is in the owner queue of
5222 Add new function signatures.
5224 * dbus/dbus-list.c: (_dbus_list_test):
5225 Add tests for _dbus_list_remove_last and traversing the list backwards.
5228 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
5229 go any further, so return NULL then.
5231 * dbus/dbus-protocol.h:
5232 Add new messages, service flags and service replies.
5234 2003-01-26 Havoc Pennington <hp@pobox.com>
5236 * dbus/dbus-message-builder.c: implement, completely untested.
5238 * test/data/*: add data to be used in testing.
5239 ".message" files are our simple loadable text format.
5240 ".message-raw" will be binary dumps of messages.
5242 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
5244 2003-01-26 Havoc Pennington <hp@pobox.com>
5246 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
5248 * dbus/dbus-errors.c (dbus_result_to_string): add
5251 * dbus/dbus-message-builder.c: new file, will contain code to load
5252 up messages from files. Not implemented yet.
5254 2003-01-26 Havoc Pennington <hp@pobox.com>
5256 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
5257 the sender by setting to NULL
5259 2003-01-26 Havoc Pennington <hp@pobox.com>
5261 The unit tests pass, but otherwise untested. If it breaks, the
5262 tests should have been better. ;-)
5264 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
5267 * dbus/dbus-message.c: redo everything so we maintain
5268 message->header as the only copy of the various fields.
5269 This avoids the possibility of out-of-memory in some cases,
5270 for example dbus_message_lock() can't run out of memory anymore,
5271 and avoids extra copying. Figured I may as well go ahead and do
5272 this since it was busted for dbus_message_lock to not return
5273 failure on OOM, and dbus_message_write_header was totally
5274 unchecked for OOM. Also fixed some random other bugs.
5276 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
5277 that strings are nul-terminated. Also, end_pos can be equal
5278 to string length just not greater than, I think.
5279 (_dbus_marshal_set_int32): new function
5280 (_dbus_marshal_set_uint32): new function
5281 (_dbus_marshal_set_string): new function
5283 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
5284 a warning, init timeout_list to NULL
5285 (dbus_connection_send_message): don't use uninitialized variable
5288 * dbus/dbus-string.c (_dbus_string_replace_len): new function
5290 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5292 * bus/driver.c: (bus_driver_handle_hello),
5293 (bus_driver_send_welcome_message):
5296 2003-01-26 Anders Carlsson <andersca@codefactory.se>
5298 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
5299 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5300 (dbus_connection_unref):
5301 * dbus/dbus-marshal.c: (_dbus_marshal_test):
5302 * dbus/dbus-message.c: (dbus_message_unref),
5305 (dbus_message_get_fields):
5306 Remove debugging printout.
5308 (_dbus_message_loader_return_buffer):
5309 Don't store the header string.
5311 (_dbus_message_test):
5314 2003-01-26 Richard Hult <rhult@codefactory.se>
5316 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
5317 the file descriptor list, since it can change under us.
5319 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5321 * glib/dbus-gmain.c: (dbus_connection_prepare),
5322 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
5323 (remove_watch), (dbus_connection_hookup_with_g_main):
5324 Rewrite the glib handling to use its own GSource instead of a
5325 GIOChannel so we can catch messages put in the queue while waiting
5328 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5331 * bus/connection.c: (connection_disconnect_handler),
5332 (connection_watch_callback), (bus_connection_setup):
5333 * bus/dispatch.c: (send_one_message),
5334 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
5335 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
5337 * bus/driver.c: (bus_driver_send_service_deleted),
5338 (bus_driver_send_service_created), (bus_driver_handle_hello),
5339 (bus_driver_send_welcome_message),
5340 (bus_driver_handle_list_services), (bus_driver_remove_connection),
5341 (bus_driver_handle_message):
5343 Refactor code, put the message dispatching in its own file. Use
5344 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
5347 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5349 * dbus/dbus-internals.h:
5350 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
5352 * dbus/dbus-message.c: (dbus_message_get_sender):
5353 * dbus/dbus-message.h:
5354 Implement dbus_message_get_sender.
5356 * dbus/dbus-protocol.h:
5357 Add message and service defines.
5359 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5361 * dbus/dbus-connection.c: (dbus_connection_send_message):
5362 * dbus/dbus-message-internal.h:
5363 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
5364 (dbus_message_write_header):
5365 Remove _dbus_messag_unlock and don't set the client serial on a
5366 message if one already exists.
5368 2003-01-24 Havoc Pennington <hp@pobox.com>
5370 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
5373 * bus/driver.c (bus_driver_handle_list_services): fix a leak
5376 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5378 * dbus/dbus-list.c: (alloc_link), (free_link):
5379 Use a memory pool for the links.
5381 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5383 * bus/connection.c: (bus_connection_foreach):
5385 Add new bus_connection_foreach function.
5387 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
5388 Add function that broadcasts a message to all clients.
5390 (bus_driver_send_service_created), (bus_driver_handle_hello),
5391 (bus_driver_send_welcome_message),
5392 (bus_driver_handle_list_services), (bus_driver_message_handler):
5393 Implement functions that take care of listing services, and notifying
5394 clients when new services are created.
5396 * bus/services.c: (bus_services_list):
5398 Add new function that returns an array of strings with the currently
5399 registered services.
5402 * glib/dbus-gmain.c:
5403 Update copyright year.
5405 2003-01-25 Anders Carlsson <andersca@codefactory.se>
5407 * dbus/dbus-connection.c: (dbus_connection_send_message):
5408 Unlock the message in case it was sent earlier.
5410 (dbus_connection_send_message_with_reply_and_block):
5411 Remove the reply message from the list.
5413 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5414 Set array_len and new_pos correctly.
5416 (_dbus_marshal_test):
5417 Remove debug output.
5419 * dbus/dbus-message-internal.h:
5420 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
5421 New function that returns the reply serial.
5423 (_dbus_message_unlock):
5424 New function that unlocks a message and resets its header.
5426 (dbus_message_append_string_array),
5427 (dbus_message_get_fields_valist),
5428 (dbus_message_iter_get_field_type),
5429 (dbus_message_iter_get_string_array),
5430 (dbus_message_get_fields),
5431 (dbus_message_append_fields_valist):
5432 Handle string arrays.
5434 (dbus_message_set_sender):
5435 Make this function public since the bus daemon needs it.
5437 (decode_header_data):
5438 Set the reply serial to -1 initially.
5440 * dbus/dbus-message.h:
5441 Add dbus_message_set_sender.
5443 2003-01-24 Havoc Pennington <hp@pobox.com>
5445 * doc/dbus-specification.sgml: add some stuff
5447 2003-01-22 Havoc Pennington <hp@pobox.com>
5449 * doc/dbus-specification.sgml: Start to document the protocol.
5451 2003-01-22 Havoc Pennington <hp@pobox.com>
5453 * dbus/dbus-connection.c
5454 (dbus_connection_send_message_with_reply_and_block): add some @todo
5456 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
5458 2003-01-21 Havoc Pennington <hp@pobox.com>
5460 (patch untested because can't compile)
5462 * bus/driver.c (create_unique_client_name): make this function
5463 never recycle client names. Also, caller should initialize
5466 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
5468 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5470 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5471 (_dbus_marshal_int32), (_dbus_marshal_uint32),
5472 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
5473 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
5474 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5475 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5476 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
5477 * dbus/dbus-marshal.h:
5478 * dbus/dbus-protocol.h:
5479 Add support for marshalling and demarshalling integer, double
5482 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5487 * bus/connection.c: (connection_disconnect_handler):
5488 Remove the connection from the bus driver's list.
5490 (connection_watch_callback): Dispatch messages.
5492 (free_connection_data): Free connection name.
5494 (bus_connection_setup): Add connection to the bus driver's list.
5495 (bus_connection_remove_owned_service):
5496 (bus_connection_set_name), (bus_connection_get_name):
5497 Add functions for setting and getting the connection's name.
5500 Add function headers.
5502 * bus/driver.c: (create_unique_client_name),
5503 (bus_driver_handle_hello_message),
5504 (bus_driver_send_welcome_message), (bus_driver_message_handler),
5505 (bus_driver_add_connection), (bus_driver_remove_connection):
5508 * bus/services.c: (bus_service_free):
5510 New file that handles communication and registreation with the bus
5513 2003-01-21 Anders Carlsson <andersca@codefactory.se>
5515 * dbus/dbus-connection.c: (dbus_connection_send_message):
5516 Add a new client_serial parameter.
5518 (dbus_connection_send_message_with_reply):
5519 Remove a @todo since we've implemented the blocking function.
5521 (dbus_connection_send_message_with_reply_and_block):
5522 New function that sends a message and waits for a reply and
5523 then returns the reply.
5525 * dbus/dbus-connection.h:
5528 * dbus/dbus-errors.c: (dbus_result_to_string):
5529 * dbus/dbus-errors.h:
5530 Add new DBUS_RESULT.
5532 * dbus/dbus-message-internal.h:
5533 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5534 (_dbus_message_set_sender), (dbus_message_write_header),
5535 (dbus_message_new_reply), (decode_header_data),
5536 (_dbus_message_loader_return_buffer), (_dbus_message_test):
5537 * dbus/dbus-message.h:
5538 Add new functions that set the reply serial and sender.
5539 Also marshal and demarshal them correctly and add test.
5541 * dbus/dbus-protocol.h:
5542 Add new DBUS_MESSAGE_TYPE_SENDER.
5545 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5546 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5547 (dbus_connection_hookup_with_g_main):
5548 * glib/test-dbus-glib.c: (main):
5549 Rewrite to use GIOChannel and remove the GSource crack.
5551 * test/echo-client.c: (main):
5552 * test/watch.c: (check_messages):
5553 Update for changed APIs
5555 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5557 * dbus/Makefile.am: Add dbus-timeout.[cħ]
5559 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5560 Create a DBusTimeoutList.
5561 (dbus_connection_set_timeout_functions): Add new function to
5562 set timeout callbacks
5564 * dbus/dbus-connection.h: Add public DBusTimeout API.
5566 * dbus/dbus-message.c: (dbus_message_get_service):
5567 * dbus/dbus-message.h: New function.
5569 * dbus/dbus-server.c: Fix small doc typo.
5571 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5573 2003-01-19 Anders Carlsson <andersca@codefactory.se>
5575 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5576 of the string, just as long as specified.
5578 2003-01-19 Havoc Pennington <hp@pobox.com>
5580 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5583 * dbus/dbus-server.c (dbus_server_set_max_connections)
5584 (dbus_server_get_max_connections, dbus_server_get_n_connections):
5585 keep track of current number of connections, and add API for
5586 setting a max (but haven't implemented enforcing the max yet)
5588 2003-01-18 Havoc Pennington <hp@pobox.com>
5590 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5591 reading/writing if read_watch != NULL or write_watch != NULL.
5593 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5594 the message loader code to actually load message->header and
5595 message->body into the newly-created message.
5597 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5600 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5601 (dbus_connection_get_max_message_size)
5602 (dbus_connection_set_max_live_messages_size)
5603 (dbus_connection_get_max_live_messages_size): implement some
5604 resource limitation functions
5606 * dbus/dbus-resources.c: new file implementing some of the
5607 resource limits stuff
5609 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5610 missing docs, add @todo to handle OOM etc.
5612 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5615 2003-01-18 Havoc Pennington <hp@pobox.com>
5617 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5618 connection if it hasn't been already.
5620 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5621 replace with DisconnectFunction.
5623 2003-01-18 Havoc Pennington <hp@pobox.com>
5625 Building --disable-verbose-mode --disable-asserts --disable-tests
5626 cuts the library from 112K to 45K or so
5628 * configure.in: check for varargs macro support,
5629 add --enable-verbose-mode, --enable-asserts.
5631 * dbus/dbus-internals.h (_dbus_assert): support
5633 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
5635 2003-01-18 Havoc Pennington <hp@pobox.com>
5637 * dbus/dbus-test.c: include config.h so that tests actually run
5639 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
5640 so the failure mode when that assumption fails will be plenty
5643 2003-01-18 Havoc Pennington <hp@pobox.com>
5645 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
5647 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
5650 * test/Makefile.am: don't use special variable "TESTS" for echo-*
5651 since we don't want to use those in make check
5653 2003-01-15 Havoc Pennington <hp@redhat.com>
5659 2003-01-15 Havoc Pennington <hp@redhat.com>
5661 * test/Makefile.am: fix so that test source code ends up in the
5662 distribution on make distcheck
5664 2003-01-15 Havoc Pennington <hp@redhat.com>
5670 2003-01-15 Havoc Pennington <hp@redhat.com>
5672 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
5673 fix build when --disable-tests
5675 * Makefile.am (EXTRA_DIST): put HACKING in here
5677 * HACKING: document procedure for making a tarball release.
5679 2003-01-14 Anders Carlsson <andersca@codefactory.se>
5681 * bus/connection.c: (connection_error_handler),
5682 (bus_connection_setup):
5683 * bus/main.c: (main):
5684 Make sure that the DBusConnectionData struct is NULLed
5685 out to prevent a segfault.
5687 * dbus/dbus-errors.c: (dbus_result_to_string):
5688 * dbus/dbus-errors.h:
5689 * dbus/dbus-message.c: (dbus_message_get_fields),
5690 (dbus_message_get_fields_valist), (_dbus_message_test):
5691 * dbus/dbus-message.h:
5692 Make dbus_message_get_fields return a result code so we can
5693 track invalid fields as well as oom.
5695 2003-01-11 Havoc Pennington <hp@pobox.com>
5697 * configure.in: change --enable-test/--enable-ansi action-if-given
5698 to enable_foo=$enableval instead of enable_foo=yes
5700 2003-01-08 Havoc Pennington <hp@pobox.com>
5702 * dbus/dbus-string.c (_dbus_string_align_length): new function
5704 * dbus/dbus-test-main.c: move main() for test app here
5706 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
5707 symbol to run tests, because dbus-test isn't in the main
5710 Code review nitpicks.
5712 * dbus/dbus-message.c (dbus_message_write_header): add newlines
5713 for people with narrow emacs ;-). Assert client_serial was filled
5714 in. Assert message->name != NULL.
5715 (dbus_message_append_fields): have "first_field_type" arg separate
5716 from va list, needed for C++ binding that also uses varargs IIRC
5717 and helps with type safety
5718 (dbus_message_new): add @todo about using DBusString to store
5719 service/name internally
5720 (dbus_message_new): don't leak ->service and ->name on OOM later
5722 (dbus_message_unref): free the service name
5723 (dbus_message_get_fields): same change to varargs
5724 i.e. first_field_type
5725 (_dbus_message_loader_return_buffer): assert that the message data
5726 is aligned (if not it's a bug in our code). Put in verbose griping
5727 about why we set corrupted = TRUE.
5728 (decode_header_data): add FIXME that char* is evil. Was going to
5729 add FIXME about evil locale-specific string.h strncmp, but just
5730 switched to wacky string-as-uint32 optimization. Move check for
5731 "no room for field name" above get_const_data_len() to avoid
5732 assertion failure in get_const_data_len if we have trailing 2
5733 bytes or the like. Check for service and name fields being
5734 provided twice. Don't leak service/name on error. Require field
5735 names to be aligned to 4 bytes.
5737 * dbus/dbus-marshal.c: move byte swap stuff to header
5738 (_dbus_pack_int32): uscore-prefix
5739 (_dbus_unpack_int32): uscore-prefix
5740 (_dbus_unpack_uint32): export
5741 (_dbus_demarshal_string): add @todo complaining about use of
5743 (_dbus_marshal_get_field_end_pos): add @todo about bad error
5744 handling allowing corrupt data to go unchecked
5746 2003-01-08 Havoc Pennington <hp@redhat.com>
5748 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
5749 to the select() as needed for authentication. (should be using
5750 _dbus_poll() not select, but for another day)
5752 * dbus/dbus.h: include dbus/dbus-protocol.h
5754 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5756 * dbus/Makefile.am (dbusinclude_HEADERS): Install
5759 2003-01-08 Anders Carlsson <andersca@codefactory.se>
5761 * dbus/dbus-internals.c: (_dbus_type_to_string):
5762 New function that returns a string describing a type.
5764 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
5765 * dbus/dbus-marshal.h:
5766 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
5767 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
5768 (dbus_message_iter_get_byte_array):
5769 * dbus/dbus-message.h:
5770 Add new convenience functions for appending and getting message fields.
5771 Also add demarshalling routines for byte arrays.
5773 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5775 * dbus/dbus-connection-internal.h:
5776 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5777 (_dbus_connection_get_next_client_serial),
5778 (dbus_connection_send_message):
5779 * dbus/dbus-internals.h:
5780 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
5781 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
5782 (_dbus_marshal_uint32), (_dbus_demarshal_double),
5783 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
5784 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
5785 (_dbus_verbose_bytes), (_dbus_marshal_test):
5786 * dbus/dbus-marshal.h:
5787 * dbus/dbus-message-internal.h:
5788 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
5789 (dbus_message_write_header), (_dbus_message_lock),
5790 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
5791 (dbus_message_get_name), (dbus_message_append_int32),
5792 (dbus_message_append_uint32), (dbus_message_append_double),
5793 (dbus_message_append_string), (dbus_message_append_byte_array),
5794 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
5795 (dbus_message_iter_unref), (dbus_message_iter_has_next),
5796 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
5797 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
5798 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
5799 (decode_header_data), (_dbus_message_loader_return_buffer),
5800 (message_iter_test), (_dbus_message_test):
5801 * dbus/dbus-message.h:
5802 * dbus/dbus-protocol.h:
5803 * dbus/dbus-test.c: (main):
5805 * glib/test-dbus-glib.c: (message_handler), (main):
5806 * test/echo-client.c: (main):
5807 * test/watch.c: (check_messages):
5808 Make messages sendable and receivable for real.
5810 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5812 * dbus/dbus-marshal.c: (_dbus_marshal_double),
5813 (_dbus_marshal_string), (_dbus_marshal_byte_array):
5814 * dbus/dbus-message.c: (dbus_message_append_int32),
5815 (dbus_message_append_uint32), (dbus_message_append_double),
5816 (dbus_message_append_string), (dbus_message_append_byte_array):
5817 Handle OOM restoration.
5819 2003-01-07 Anders Carlsson <andersca@codefactory.se>
5821 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5822 (_dbus_demarshal_string), (_dbus_marshal_test):
5823 * dbus/dbus-marshal.h:
5824 * dbus/dbus-message.c: (dbus_message_get_name),
5825 Document these functions.
5827 (dbus_message_append_int32), (dbus_message_append_uint32),
5828 (dbus_message_append_double), (dbus_message_append_string),
5829 (dbus_message_append_byte_array):
5830 * dbus/dbus-message.h:
5831 Add functions for adding message fields of different types.
5833 * dbus/dbus-protocol.h:
5834 Add the different types.
5836 2003-01-05 Havoc Pennington <hp@pobox.com>
5838 * bus/connection.c: implement routines for handling connections,
5839 first thing is keeping a list of owned services on each connection
5840 and setting up watches etc.
5842 * bus/services.c: implement a mapping from service names to lists
5845 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
5847 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
5848 to use static mutexes for global data
5850 * dbus/dbus-connection.c (dbus_connection_set_data): add new
5851 collection of functions to set/get application-specific data
5852 on the DBusConnection.
5854 2003-01-04 Havoc Pennington <hp@pobox.com>
5856 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
5857 (_dbus_poll): new function
5859 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
5862 * bus/loop.c: initial code for the daemon main loop
5864 2003-01-04 Havoc Pennington <hp@pobox.com>
5866 * test/watch.c (error_handler): make it safe if the error handler
5867 is called multiple times (if we s/error handler/disconnect
5868 handler/ we should just guarantee it's called only once)
5870 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5871 error handler on disconnect (it's quite possible we should
5872 just change the error handler to a "disconnect handler," I'm
5873 not sure we have any other meaningful errors)
5875 * configure.in: check for getpwnam_r
5877 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5878 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5879 mechanism as in SASL spec, using socket credentials
5881 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5882 (_dbus_send_credentials_unix_socket): new function
5884 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5886 (_dbus_write): only check errno if <0 returned
5887 (_dbus_write_two): ditto
5889 2003-01-02 Anders Carlsson <andersca@codefactory.se>
5891 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5892 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5893 (_dbus_marshal_test):
5894 * dbus/dbus-marshal.h:
5895 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5896 to _dbus_marshal_utf8_string. Also fix some tests.
5898 2002-12-28 Harri Porten <porten@kde.org>
5900 * configure.in: added check for C++ compiler and a very cheesy
5901 check for the Qt integration
5903 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5905 * qt/Makefile.am: added
5907 * qt/.cvsignore: added
5909 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5910 latter, added #ifdef QT_THREAD_SUPPORT guard.
5912 * dbus/Makefile.am: added missing headers for make dist
5914 2002-12-28 Kristian Rietveld <kris@gtk.org>
5916 * dbus/Makefile.am: fixup export-symbols-regex.
5918 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5920 * acinclude.m4: Add this file and put the
5921 PKG_CHECK_MODULE macro in it.
5923 2002-12-27 Anders Carlsson <andersca@codefactory.se>
5925 * dbus/dbus-marshal.c: (_dbus_marshal_string),
5926 (_dbus_demarshal_double), (_dbus_demarshal_int32),
5927 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5928 (_dbus_marshal_test):
5929 Make the demarshalling routines align the pos argument.
5930 Add string marshalling tests and fix the obvious bugs
5933 2002-12-26 Havoc Pennington <hp@pobox.com>
5935 * dbus/dbus-auth.c: fixes fixes fixes
5937 * dbus/dbus-transport-unix.c: wire up support for
5938 encoding/decoding data on the wire
5940 * dbus/dbus-auth.c (_dbus_auth_encode_data)
5941 (_dbus_auth_decode_data): append to target string
5942 instead of nuking it.
5944 2002-12-26 Havoc Pennington <hp@pobox.com>
5946 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5947 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5950 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5951 avoid swap_bytes() overhead (ignoring possible assembly stuff for
5952 now). Main point is because I wanted unpack_uint32 to implement
5954 (_dbus_verbose_bytes): new function
5956 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5958 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5959 mechanism to handle a corrupt message stream
5960 (_dbus_message_loader_new): fix preallocation to only prealloc,
5963 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5964 (_dbus_string_test): enhance tests for copy/move and fix the
5967 * dbus/dbus-transport-unix.c: Hold references in more places to
5968 avoid reentrancy problems
5970 * dbus/dbus-transport.c: ditto
5972 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
5973 leak reference count in no-message case
5975 * test/watch.c (do_mainloop): handle adding/removing watches
5976 during iteration over the watches. Also, ref the connection/server
5977 stored on a watch, so we don't try to mangle a destroyed one.
5979 * dbus/dbus-transport-unix.c (do_authentication): perform
5982 * dbus/dbus-auth.c (get_state): add a state
5983 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
5984 (_dbus_auth_get_unused_bytes): append the unused bytes
5985 to the passed in string, rather than prepend
5987 * dbus/dbus-transport.c (_dbus_transport_init_base): create
5988 the auth conversation DBusAuth
5990 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
5991 (_dbus_transport_new_for_domain_socket): when creating a
5992 transport, pass in whether it's a client-side or server-side
5993 transport so we know which DBusAuth to create
5995 2002-12-03 Havoc Pennington <hp@pobox.com>
5997 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
5998 _after_ finalizing the derived members
5999 (unix_connection_set): unref watch if we fail to add it
6001 * dbus/dbus-connection.c (dbus_connection_unref): delete the
6002 transport first, so that the connection owned by the
6003 transport will be valid as the transport finalizes.
6005 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
6006 if necessary, and remove watches from the connection.
6008 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
6010 2002-12-26 Anders Carlsson <andersca@codefactory.se>
6012 * dbus/dbus-marshal.c: (_dbus_marshal_string),
6013 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6014 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
6015 (_dbus_marshal_test):
6016 * dbus/dbus-marshal.h:
6017 Add string marshal functions and have the demarshal functions
6018 return the new position.
6020 2002-12-25 Havoc Pennington <hp@pobox.com>
6022 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
6023 it is a simple protocol that just maps directly to SASL.
6025 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
6026 initial implementation, not actually used yet.
6028 * dbus/dbus-string.c (_dbus_string_find): new function
6029 (_dbus_string_equal): new function
6030 (_dbus_string_base64_encode): new function
6031 (_dbus_string_base64_decode): new function
6033 2002-12-25 Anders Carlsson <andersca@codefactory.se>
6036 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
6037 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6038 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6039 (_dbus_demarshal_uint32), (_dbus_marshal_test):
6040 * dbus/dbus-marshal.h:
6041 * dbus/dbus-protocol.h:
6042 * dbus/dbus-test.c: (main):
6044 Add un-optimized marshalling/demarshalling routines.
6046 2002-12-25 Harri Porten <porten@kde.org>
6048 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
6050 2002-12-24 Zack Rusin <zack@kde.org>
6052 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
6053 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
6056 2002-12-24 Havoc Pennington <hp@pobox.com>
6058 * glib/dbus-gthread.c: fix include
6060 * glib/dbus-glib.h: rename DBusMessageHandler for now.
6061 I think glib API needs to change, though, as you don't
6062 want to use DBusMessageFunction, you want to use the
6063 DBusMessageHandler object. Probably
6064 dbus_connection_open_with_g_main_loop()
6065 and dbus_connection_setup_g_main_loop() or something like that
6066 (but think of better names...) that just create a connection
6067 that has watch/timeout functions etc. already set up.
6069 * dbus/dbus-connection.c
6070 (dbus_connection_send_message_with_reply): new function just to
6071 show how the message handler helps us deal with replies.
6073 * dbus/dbus-list.c (_dbus_list_remove_last): new function
6075 * dbus/dbus-string.c (_dbus_string_test): free a string that
6078 * dbus/dbus-hash.c: use memory pools for the hash entries
6079 (rebuild_table): be more paranoid about overflow, and
6080 shrink table when we can
6081 (_dbus_hash_test): reduce number of sprintfs and write
6082 valid C89. Add tests for case where we grow and then
6083 shrink the hash table.
6085 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
6087 * dbus/dbus-connection.c (dbus_connection_register_handler)
6088 (dbus_connection_unregister_handler): new functions
6090 * dbus/dbus-message.c (dbus_message_get_name): new
6092 * dbus/dbus-list.c: fix docs typo
6094 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
6095 an object representing a handler for messages.
6097 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6100 * glib/dbus-gthread.c: (dbus_gthread_init):
6101 Don't use the gdbus prefix for public functions.
6103 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6107 Add GLib checks and fixup .pc files
6111 * glib/dbus-gmain.c: (gdbus_connection_prepare),
6112 (gdbus_connection_check), (gdbus_connection_dispatch),
6113 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
6114 (dbus_connection_gsource_new):
6115 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
6116 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
6117 * glib/test-dbus-glib.c: (message_handler), (main):
6120 2002-12-15 Harri Porten <porten@kde.org>
6122 * autogen.sh: check for libtoolize before attempting to use it
6124 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
6127 * .cvsignore: ignore more stamp files
6129 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
6131 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
6132 without make install.
6134 2002-12-15 Havoc Pennington <hp@pobox.com>
6136 * dbus/dbus-threads.c: add thread stubs that a higher library
6137 layer can fill in. e.g. the GLib wrapper might fill them in with
6138 GThread stuff. We still need to use this thread API to
6139 thread-safe-ize the library.
6141 2002-12-12 Havoc Pennington <hp@pobox.com>
6143 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
6144 below new interfaces and include fewer system headers.
6146 * dbus/dbus-sysdeps.c (_dbus_read): new function
6147 (_dbus_write): new function
6148 (_dbus_write_two): new function
6149 (_dbus_connect_unix_socket): new function
6150 (_dbus_listen_unix_socket): new function
6152 * dbus/dbus-message-internal.h: change interfaces to use
6155 2002-12-11 Havoc Pennington <hp@pobox.com>
6157 * dbus/dbus-types.h: add dbus_unichar
6159 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
6161 * dbus/dbus-connection.c (dbus_connection_send_message): return
6164 * dbus/dbus-transport.c: include dbus-watch.h
6166 * dbus/dbus-connection.c: include dbus-message-internal.h
6168 * HACKING: add file with coding guidelines stuff.
6170 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
6171 handling here, for security purposes (as in vsftpd). Not actually
6172 using this class yet.
6174 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
6175 system/libc usage here, as in vsftpd, for ease of auditing (and
6176 should also simplify portability). Haven't actually moved all the
6177 system/libc usage into here yet.
6179 2002-11-25 Havoc Pennington <hp@pobox.com>
6181 * dbus/dbus-internals.c (_dbus_verbose): fix to not
6182 always print the first verbose message.
6184 2002-11-24 Havoc Pennington <hp@pobox.com>
6186 * test/echo-client.c, test/echo-server.c: cheesy test
6189 * configure.in (AC_CHECK_FUNCS): check for writev
6191 * dbus/dbus-message.c (_dbus_message_get_network_data): new
6194 * dbus/dbus-list.c (_dbus_list_foreach): new function
6196 * dbus/dbus-internals.c (_dbus_verbose): new function
6198 * dbus/dbus-server.c, dbus/dbus-server.h: public object
6199 representing a server that listens for connections.
6201 * dbus/.cvsignore: create
6203 * dbus/dbus-errors.h, dbus/dbus-errors.c:
6204 public API for reporting errors
6206 * dbus/dbus-connection.h, dbus/dbus-connection.c:
6207 public object representing a connection that
6208 sends/receives messages. (Same object used for
6209 both client and server.)
6211 * dbus/dbus-transport.h, dbus/dbus-transport.c:
6212 Basic abstraction for different kinds of stream
6213 that we might read/write messages from.
6215 2002-11-23 Havoc Pennington <hp@pobox.com>
6217 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
6220 * dbus/dbus-test.c (main): add list test, and include
6221 dbus-test.h as intended
6223 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
6224 (_dbus_hash_table_remove_int): return value indicates
6225 whether the entry existed to remove
6227 * dbus/dbus-list.c: add linked list utility class,
6230 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
6233 2002-11-23 Havoc Pennington <hp@pobox.com>
6235 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
6236 DBUS_END_DECLS to nothing, that should fix this once and for all
6238 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
6240 * dbus/dbus-message.c, dbus/dbus-hash.c:
6241 add some missing @brief
6243 2002-11-23 Havoc Pennington <hp@pobox.com>
6245 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
6246 to avoid confusing Doxygen
6248 * dbus/dbus-hash.c: @} not }@
6250 * dbus/dbus-message.c (struct DBusMessage): split out
6253 2002-11-23 Havoc Pennington <hp@pobox.com>
6255 * configure.in: pile on more warning flags if using gcc
6257 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
6258 to document static functions
6260 * configure.in: add summary to end of configure so it
6261 looks nice and attractive
6263 * dbus/dbus-hash.c: finish implementation and write unit
6266 * configure.in: add --enable-tests to enable unit tests
6268 * dbus/dbus-test.c: test program to run unit tests
6269 for all files in dbus/*, initially runs a test for
6272 * dbus/dbus-internals.h: file to hold some internal utility stuff
6274 2002-11-22 Havoc Pennington <hp@redhat.com>
6276 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
6277 "ported" away from Tcl
6279 * dbus/dbus-types.h: header for types such as dbus_bool_t
6281 2002-11-22 Havoc Pennington <hp@redhat.com>
6283 * dbus/dbus.h: fixups for doc warnings
6285 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
6287 (QUIET): make it quiet so we can see warnings
6289 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
6291 2002-11-22 Havoc Pennington <hp@redhat.com>
6293 * Makefile.am: include "Doxyfile" target in all-local
6295 * configure.in: generate the Doxyfile
6297 * Doxyfile.in: move Doxyfile here, so we can use
6298 configure to generate a Doxyfile with the right
6301 2002-11-22 Havoc Pennington <hp@redhat.com>
6303 * dbus/dbus-message.c: move inline docs into .c file
6305 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
6306 so all docs are under doc/
6307 (MAN_EXTENSION): generate man pages. Use extension
6308 ".3dbus" which matches ".3qt" on my system,
6309 I guess this is OK, I don't know really.
6310 (FILE_PATTERNS): look for .c files not .h, makes sense
6313 2002-11-22 Havoc Pennington <hp@pobox.com>
6315 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
6316 because any app can be a server, and any app can be a client,
6317 the bus is a special kind of server.
6319 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
6321 * Doxyfile : adding. Still needs Makefile rules to be generated
6322 automatically (just run "doxygen" in the toplevel dir for now to
6325 * dbus/dbus-message.h : Adding sample docs (javadoc since
6326 resembles gtk-doc a little more)
6328 * dbus/dbus.h : Adding sample docs
6330 2002-11-21 Havoc Pennington <hp@redhat.com>
6332 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
6333 so we can allow ourselves to include files directly,
6334 instead of having to use dbus.h
6336 * dbus/dbus.h: fill in
6338 * dbus/dbus-message.h: sketch out a sample header file.
6339 Include griping if you include it directly instead of
6342 * dbus/dbus-macros.h: new file with macros for extern "C",
6343 TRUE/FALSE, NULL, etc.
6345 * doc/file-boilerplate.c: put include guards in here
6347 2002-11-21 Havoc Pennington <hp@redhat.com>
6349 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
6351 * COPYING: include the GPL as well, and license code
6352 under both AFL and GPL.
6354 2002-11-21 Havoc Pennington <hp@redhat.com>
6356 * acconfig.h: get rid of this
6358 * autogen.sh (run_configure): add --no-configure option
6360 * configure.in: remove AC_ARG_PROGRAM to make
6361 autoconf complain less. add AC_PREREQ.
6362 add AC_DEFINE third arg.
6364 2002-11-21 Anders Carlsson <andersca@codefactory.se>
6367 Fix references so we can distcheck.
6369 2002-11-21 Havoc Pennington <hp@redhat.com>
6371 * Initial module creation