1 2004-09-04 Harald Fernengel <harry@kdevelop.org>
3 * qt/connection.*: Applied patch by Jérôme Lodewyck
4 <lodewyck@clipper.ens.fr> to integrate an existing
5 connection into the Qt eventloop
7 2004-08-30 Jon Trowbridge <trow@ximian.com>
9 * mono/BusDriver.cs: Added. This is a class for interacting with
10 the org.freedesktop.DBus service.
12 * mono/Message.cs: Added a mechanism to expose the message that is
13 currently being dispatched via the static Message.Current
14 property. Added Message.Sender and Message.Destination
17 * mono/Handler.cs: Expose the dispatched message via
18 Message.Current when handling method calls.
20 * mono/Service.cs: Expose the dispatched message via
21 Message.Current when handling signal emissions.
23 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
24 Connection.BaseService property.
26 2004-08-28 Havoc Pennington <hp@redhat.com>
28 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
30 More fixes from Steve Grubb
32 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
33 (_dbus_listen_tcp_socket): fix fd leak
35 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
36 EINTR to a bit lower in the code
38 2004-08-26 Jon Trowbridge <trow@ximian.com>
40 * bus/driver.c (bus_driver_handle_service_exists): Respond with
41 TRUE if we are inquiring about the existence of the built-in
42 org.freedesktop.DBus service.
44 2004-08-25 John Palmieri <johnp@redhat.com>
45 * bus/config-parser.c:
46 (struct PolicyType): Add POLICY_CONSOLE
47 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
48 (start_busconfig_child): Sets up console element when
49 <policy at_console=""> is encountered in a policy file
50 (append_rule_from_element): Convert console elements to console
54 (bus_policy_create_client_policy): Add console rules to the client
55 policy based on if the client is at the console
56 (bus_policy_append_console_rule): New function for adding a
57 console rule to a policy
58 (bus_policy_merge): Handle console rule merging
60 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
61 where we check for console user files
63 * dbus/dbus-sysdeps.c:
64 (_dbus_file_exists): New function which checks if the given
66 (_dbus_user_at_console): New function which does the system
67 specific process of checking if the user is at the console
70 (_dbus_is_console_user): New function converts a UID to user name
71 and then calls the system specific _dbus_user_at_console to
72 see if the user is at the console and therefor a console user
74 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
76 * bus/config-parser.c (set_limit):
77 * bus/dbus-daemon-1.1.in:
78 * test/data/valid-config-files/many-rules.conf: set the
79 max_match_rules_per_connection limt from the config file.
81 * doc/busconfig.dtd: update the DTD.
83 * bus/driver.c: remove some unused variables.
85 2004-08-24 Mikael Hallendal <micke@imendio.com>
87 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
88 it's been replaced by dbus_g_bus_get
90 2004-08-23 Colin Walters <walters@redhat.com>
92 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
94 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
96 * bus/selinux.c: Create a thread for policy reload notification.
97 (bus_selinux_get_policy_root): Implement.
99 * bus/config-parser.c (start_busconfig_child)
100 (bus_config_parser_content): Support SELinux-root relative
103 * configure.in <HAVE_SELINUX>: Add -lpthread.
105 * bus/test-main.c (test_pre_hook, test_post_hook): New.
106 (test_post_hook): Move memory checking into here.
107 (test_pre_hook, test_post_hook): Move SELinux checks in
108 here, but conditional on a DBUS_TEST_SELINUX environment
109 variable. Unfortunately we can't run the SELinux checks
110 as a normal user, since they won't have any permissions
111 for /selinux. So this will have to be tested manually
112 for now, until we have virtualization for most of
115 2004-08-23 Havoc Pennington <hp@redhat.com>
117 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
118 drop supplementary groups, suggested by Steve Grubb
120 2004-08-20 Colin Walters <walters@redhat.com>
122 * bus/config-parser.c (start_busconfig_child): Remove some unused
125 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
128 2004-08-17 Joe Shaw <joeshaw@novell.com>
130 * configure.in: If --enable-mono is passed in, if we can't find
133 * mono/Makefile.am: Use /gacutil to install assemblies into the
136 2004-08-12 Havoc Pennington <hp@redhat.com>
138 * NEWS: update for 0.22
140 * configure.in: release 0.22
142 2004-08-11 Colin Walters <walters@redhat.com>
144 * tools/dbus-send.c (main, usage): Add --reply-timeout
147 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
149 * bus/bus.c (process_config_first_time_only): get rid of an unused
150 DBusError that was causing a memoy leak (bug #989).
152 * dbus/dbus-keyring.c, dbus/dbus-message.c:
153 fix compilation on Solaris/Forte C (bug #974)
155 * bus/main.c (main): plug two minuscule memleaks.
157 2004-08-10 Havoc Pennington <hp@redhat.com>
159 * doc/dbus-tutorial.xml: add some more info on GLib bindings
161 2004-08-09 Havoc Pennington <hp@redhat.com>
163 * COPYING: switch to Academic Free License version 2.1 instead of
164 2.0, to resolve complaints about patent termination clause.
166 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
168 * README: added documentation for the --enable-python
171 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
173 * bus/config-parser.c (bus_config_parser_new): fix an invalid
174 _unref in the SELinux support.
176 * doc/busconfig.dtd: update DTD for SELinux support.
178 * bus/config-loader-libxml.c: fix error handler and parser
179 initialisation/cleanup. OOM test now works with libxml2 HEAD.
181 * configure.in: remove the warning about libxml2.
183 * dbus/dbus-bus.c: silence doxygen warning.
185 2004-07-31 Colin Walters <walters@redhat.com>
187 * configure.in: Move #error in SELinux check to its own line.
189 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
191 * dbus/dbus-internals.h (_DBUS_SET_OOM):
192 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
195 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
196 broken by the change in the _SET_OOM macros.
198 2004-07-31 Colin Walters <walters@redhat.com>
200 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
203 2004-07-31 Colin Walters <walters@redhat.com>
205 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
206 to correctly detect DBUS__ACQUIRE_SVC. Also add an
209 2004-07-24 Havoc Pennington <hp@redhat.com>
211 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
213 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
216 * configure.in: add --enable-selinux
218 * bus/policy.c (bus_policy_merge): add FIXME to a comment
220 * bus/main.c (main): initialize and shut down selinux
222 * bus/connection.c: store SELinux ID on each connection, to avoid
223 repeated getting of the string context and converting it into
226 * bus/bus.c (bus_context_get_policy): new accessor, though it
228 (bus_context_check_security_policy): check whether the security
229 context of sender connection can send to the security context of
232 * bus/config-parser.c: add parsing for <selinux> and <associate>
234 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
235 implement dbus_connection_get_unix_fd()
237 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
238 function, used by the selinux stuff
240 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
242 * bus/config-loader-libxml.c: complete the implementation of
243 libxml backend for config file loader. Doesn't work with full OOM
246 * configure.in: change error when selecting libxml into a warning.
248 * test/data/invalid-config-files: add two non-well-formed XML
251 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
253 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
254 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
255 be necessary to read all the buffer. (bug #894)
257 * bus/activation.c (bus_activation_activate_service): fix a
258 potential assertion failure (bug #896). Small optimization in the
259 case of auto-activation messages.
261 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
262 add test case for byte-through-vararg bug (#901). patch by Kimmo
265 2004-07-28 Anders Carlsson <andersca@gnome.org>
268 * python/dbus_bindings.pyx.in:
269 Add dbus.init_gthreads (), allow emit_signal to pass
270 arguments to the signal.
272 2004-07-24 Havoc Pennington <hp@redhat.com>
274 * AUTHORS: add some people, not really comprehensively, let me
277 2004-07-24 Havoc Pennington <hp@redhat.com>
279 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
282 * test/Makefile.am (DIST_SUBDIRS): here also
284 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
286 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
287 breaking build on Solaris, reported by Farhad Saberi on the ML.
289 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
290 va_arg invocation to account for integer promotion in the case of
291 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
293 * bus/services.c (bus_service_remove_owner): fix bug #902, use
294 _dbus_list_get_first_link, not _dbus_list_get_first.
296 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
298 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
299 handler functions so that the asserts in _dbus_object_subtree_unref
302 * dbus/dbus-transport-unix.c (do_reading):
303 _dbus_transport_queue_messages return value is of type
304 dbus_bool_t, not DBusDispatchStatus.
306 2004-07-19 David Zeuthen <david@fubar.dk>
308 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
311 (check_get_connection_unix_user): Debug says GetProperty; but the
312 method is called GetConnectionUnixUser
313 (check_get_connection_unix_process_id): New function
314 (bus_dispatch_test): Actually call check_get_connection_unix_user();
315 also call check_get_connection_unix_process_id()
318 (bus_driver_handle_get_connection_unix_process_id): New function,
319 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
323 (handle_server_data_external_mech): Set pid from the credentials
324 obtained from the socket
326 * dbus/dbus-connection.c:
327 (dbus_connection_get_unix_process_id): New function
329 * dbus/dbus-connection.h:
330 Add prototype for dbus_connection_get_unix_process_id
332 * dbus/dbus-transport.c:
333 (_dbus_transport_get_unix_process_id): New function
335 * dbus/dbus-transport.h:
336 Add prototype for _dbus_transport_get_unix_process_id
338 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
340 * dbus/dbus-message.c: Message counter fix, patch by Christian
341 Hammond <chipx86@gnupdate.org>
343 2004-07-18 Seth Nickell <seth@gnome.org>
346 * python/dbus_bindings.pyx.in:
347 * python/tests/test-client.py:
349 Add dbus.ByteArray and dbus_bindings.ByteArray
350 types so that byte streams can be passed back.
352 Give jdahlin the heaps of credit that are so
355 2004-07-12 Seth Nickell <seth@gnome.org>
359 Add message argument to the default object_method_handler
362 * python/dbus_bindings.pyx.in:
364 Automatically return NIL when passed an empty list
365 (we can't pass back a list since lists are typed
366 and we don't have any idea what type the the client
367 intended the list to be... :-( )
369 2004-07-10 Seth Nickell <seth@gnome.org>
371 * python/examples/Makefile.am:
373 Fix distcheck breakage caused by new examples.
375 2004-07-10 Seth Nickell <seth@gnome.org>
379 Add "message" argument to service-side dbus.Object
380 methods. This will break existing services written
381 using the python bindings, but will allow extraction
382 of all the message information (e.g. who its from).
384 Add improved "object oriented" signal handling/emission.
386 * python/examples/example-service.py:
390 * python/examples/example-signal-emitter.py:
391 * python/examples/example-signal-recipient.py:
393 Two new examples that show how to emit and receive
394 signals using the new APIs.
396 * python/examples/example-signals.py:
397 * python/examples/gconf-proxy-service.py:
398 * python/examples/gconf-proxy-service2.py:
400 Add "message" argument to service methods.
402 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
404 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
405 * dbus/bus.c (dbus_bus_get_unix_user)
406 * doc/dbus-specification.xml: implement GetConnectionUnixUser
407 method of org.freedesktop.DBus interface.
409 * bus/dispatch.c: test case
411 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
413 * python/Makefile.am: switched include directory from glib/ to dbus/
414 since dbus-glib.h moved
416 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
418 * configure.in: prevent building the gcj stuff and libxml loader
419 since they are broken.
421 2004-06-20 Havoc Pennington <hp@redhat.com>
423 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
424 codes from the dbus error names
426 * glib/dbus-glib.h: move to subdir dbus/ since it's included
427 as dbus/dbus-glib.h and that breakage is now visible due to
428 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
430 * glib/dbus-glib.h: s/gproxy/g_proxy/
432 * dbus/dbus-shared.h: new header to hold stuff shared with
435 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
438 * glib/dbus-glib.h (dbus_set_g_error): move to
441 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
442 of stuff to enable this
444 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
446 * a bunch of other changes with the same basic "separate glib
447 bindings from dbus.h" theme
449 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
451 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
453 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
455 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
457 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
458 the reply value of the ServiceExists message.
460 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
462 * python/dbus_bindings.pyx.in: No longer need to parse path
463 elements and pass them as arrays of strings. The C API now
464 accepts plain path strings.
465 (_build_parsed_path): removed
467 2004-06-07 Havoc Pennington <hp@redhat.com>
469 * doc/TODO: remove auto-activation item since it's done; sort
470 items by importance/milestone
472 2004-06-07 Havoc Pennington <hp@redhat.com>
474 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
475 random signature when using REQUIRED_FIELDS (this hack won't work
478 * dbus/dbus-message.c: change the signature to be a header field,
479 instead of message->signature special-case string. Incremental
480 step forward. Then we can fix up code to send the signature in the
481 message, then fix up code to validate said signature, then fix up
482 code to not put the typecodes inline, etc.
483 (load_one_message): don't make up the signature after the fact
484 (decode_header_data): require signature field for the known
487 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
489 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
491 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
493 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
495 * mono/Handler.cs: Updated to follow new path argument for
496 (un-)registering objects.
498 * mono/example/Makefile.am:
500 * configure.in: Bumped required version for mono and use new -pkg
503 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
505 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
506 registration functions take the path argument as char* instead of
509 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
510 split off the path decompostion part of
511 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
514 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
516 2004-06-02 Kristian Høgsberg <krh@redhat.com>
518 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
519 machine approach. A state is implemented as a function that
520 handles incoming events as specified for that state.
522 * doc/dbus-specification.xml: Update auth protocol state machine
523 specification to match implementation. Remove some leftover
526 2004-06-02 Kristian Høgsberg <krh@redhat.com>
528 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
529 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
532 * Doxyfile.in: remove deprecated options.
534 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
535 glib/test-thread.h, glib/test-thread-client.c,
536 glib/test-thread-server.c, glib/test-profile.c,
537 glib/test-dbus-glib.c: remove these unused files.
539 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
541 * dbus/dbus-object-tree.c
542 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
543 non-fallback handlers (bug #684).
544 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
545 (find_subtree_recurse): report wether the returned subtree is an
546 exact match or a "fallback" match higher up in the tree.
547 (object_tree_test_iteration): update test case.
549 2004-06-01 Seth Nickell <seth@gnome.org>
551 * python/dbus_bindings.pyx.in:
552 * python/tests/test-client.py:
554 Round off basic type support. Add dicts (yay!), and
555 remaining array types.
557 Make MessageIter more general so it works for dicts too.
559 Mark all loop variables as C integers.
561 2004-05-31 Havoc Pennington <hp@redhat.com>
563 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
566 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
568 * glib/dbus-glib-tool.c (main): set up to have a --self-test
569 option that runs the tests, and start filling in some code
570 including for starters just dumping the interfaces to stdout
572 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
574 * test/data/valid-introspection-files/lots-of-types.xml: test of
575 an example introspection file
577 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
580 2004-05-31 Seth Nickell <seth@gnome.org>
582 * python/dbus_bindings.pyx.in:
583 * python/tests/test-client.py:
588 Fix string array memory trashing bug... oops...
590 2004-05-30 Seth Nickell <seth@gnome.org>
594 Add a nicer-but-less-flexible alternate API for handling
595 calls to virtual objects in dbus.ObjectTree.
597 Screw up the argument order to the dbus.Object constructor
598 for consistency with dbus.ObjectTree (and to make dbus_methods
599 optional for future extension)
601 * python/examples/Makefile.am:
602 * python/examples/gconf-proxy-service.py:
603 * python/examples/gconf-proxy-service2.py:
605 Alternate implementation of gconf-proxy-service using the
606 nicer dbus.ObjectTree API.
608 * python/examples/example-service.py:
609 * python/tests/test-server.py
611 Reverse the argument order to deal with dbus.Object constructor
614 2004-05-30 Seth Nickell <seth@gnome.org>
616 * python/examples/example-client.py:
617 * python/examples/example-service.py:
619 Take it back. Lists seem to work but they're broken
620 in the test suite. Make the base examples use
623 2004-05-30 Seth Nickell <seth@gnome.org>
625 * python/dbus_bindings.pyx.in:
626 * python/tests/test-client.py:
628 Add some more tests and fix errors that crop up.
629 Unfortunately, currently it seems like marshalling
630 and unmarshalling of lists is completely broken :-(
632 2004-05-30 Seth Nickell <seth@gnome.org>
634 * python/dbus_bindings.pyx.in:
636 Add support for ObjectPath type.
640 Refactor message handling code to a common function.
642 * python/tests/test-client.py:
643 * python/tests/test-server.py:
645 Add tests that check to make sure values of all types
646 can be echoed from a service w/o mangling.
648 2004-05-29 Seth Nickell <seth@gnome.org>
652 Add ObjectTree class which allows implementation
653 of trees of "virtual" objects. Basically the python
654 wrapper for "register_fallback".
656 * python/examples/Makefile.am
657 * python/examples/gconf-proxy-client.py:
658 * python/examples/gconf-proxy-service.py:
660 Implement a simple GConf proxy service that supports
661 get/set on string and int GConf keys using the ObjectTree.
663 2004-05-29 Seth Nickell <seth@gnome.org>
666 * python/examples/example-client.py:
667 * python/examples/example-service.py:
668 * python/examples/list-system-services.py:
670 Add SessionBus, SystemBus and ActivationBus classes
671 so you don't need to know the special little BUS_TYPE
674 2004-05-29 Havoc Pennington <hp@redhat.com>
676 * bus/config-parser.c (process_test_valid_subdir): temporarily
677 stop testing config parser OOM handling, since expat has issues
678 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
680 * bus/dbus-daemon-1.1.in: change requested_reply to
681 send_requested_reply/receive_requested_reply so we can send the
682 replies, not just receive them.
684 * bus/config-parser.c: parse the new
685 send_requested_reply/receive_requested_reply
687 * bus/policy.c (bus_client_policy_check_can_send): add
688 requested_reply argument and use it
690 * bus/bus.c (bus_context_check_security_policy): pass through
691 requested_reply status to message send check
693 * bus/system.conf.in: adapt to requested_reply change
695 2004-05-28 Havoc Pennington <hp@redhat.com>
697 * test/glib/test-service-glib.c (main): remove unused variable
699 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
701 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
702 from the enum, no longer in use.
704 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
707 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
708 whether error_name passed in is a valid error name.
710 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
712 * dbus/dbus-message.c (dbus_message_get_args): Added support for
713 OBJECT_PATH and OBJECT_PATH_ARRAY
715 2004-05-28 Seth Nickell <seth@gnome.org>
717 * python/examples/Makefile.am:
719 Forget to add Makefile.am. Do not pass go.
721 2004-05-28 Michael Meeks <michael@ximian.com>
723 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
726 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
728 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
729 (_dbus_message_iter_get_basic_type_array): impl.
730 drastically simplify ~all relevant _get methods to use these.
731 (_dbus_message_iter_append_basic_array),
732 (dbus_message_iter_append_basic): impl
733 drastically simplify ~all relevant _append methods to use these.
735 * dbus/dbus-message-builder.c (parse_basic_type)
736 (parse_basic_array, lookup_basic_type): impl.
737 (_dbus_message_data_load): prune scads of duplicate /
740 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
741 (_dbus_demarshal_basic_type): implement,
742 (demarshal_and_validate_len/arg): beef up debug.
743 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
745 2004-05-27 Seth Nickell <seth@gnome.org>
748 * python/Makefile.am:
750 Include the example python apps in the tarball.
752 * python/examples/list-system-services.py
754 Add a python new example that fetches the list of services
757 2004-05-27 Seth Nickell <seth@gnome.org>
760 * python/dbus_bindings.pyx.in:
762 Fix failure to notify that a signal was not handled,
763 resulted in hung functions.
765 2004-05-25 Colin Walters <walters@redhat.com>
767 * tools/dbus-monitor.c (main): Monitor all types of messages.
769 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
771 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
772 which unregisters the object path and disposes the handler.
774 2004-05-23 Kristian Høgsberg <krh@redhat.com>
776 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
778 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
779 operands to && so we call dbus_message_iter_next () for the last
782 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
784 * dbus/dbus-object-tree.c
785 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
786 children even if the requested path isn't registered.
787 (object_tree_test_iteration): test object_tree_list_registered.
789 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
792 2004-05-20 Kristian Høgsberg <krh@redhat.com>
794 * doc/TODO: Remove resolved items.
796 * bus/expirelist.h (struct BusExpireList): remove unused n_items
799 * bus/connection.c (bus_connections_expect_reply): Enforce the
800 per-connection limit on pending replies.
802 Patch from Jon Trowbridge <trow@ximian.com>:
804 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
805 up a watch that triggers a config reload when one end of the pipe
807 (signal_handler): Instead of doing the config reload in our SIGHUP
808 handler, just write to the reload pipe and let the associated
809 watch handle the reload when control returns to the main loop.
811 * bus/driver.c (bus_driver_handle_reload_config): Added.
812 Implements a ReloadConfig method for requesting a configuration
813 file reload via the bus driver.
815 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
817 * HACKING: Updated release instructions concerning the wiki page.
819 2004-05-18 Kristian Høgsberg <krh@redhat.com>
821 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
822 filter against auth->allowed_mechs; we only add allowed mechs in
825 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
826 ALLOWED_MECHS to auth-script format so we can set the list of
829 * data/auth/client-out-of-mechanisms.auth-script: New test to
830 check client disconnects when it is out of mechanisms to try.
832 * dbus/dbus-auth.c (process_command): Remove check for lines
833 longer that 1 MB; we only buffer up maximum 16 kB.
835 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
836 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
837 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
838 assume there might be unused bytes.
840 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
841 client-out-of-mechs, it is handled in process_reject(). Move check
842 for max failures to send_rejected(), as it's a server-only thing.
844 * dbus/dbus-auth.c: Factor out protocol reply code into functions
845 send_auth(), send_data(), send_rejected(), send_error(),
846 send_ok(), send_begin() and send_cancel().
848 2004-05-17 Kristian Høgsberg <krh@redhat.com>
850 Remove base64 encoding, replace with hex encoding. Original patch
851 from trow@ximian.com, added error handling.
853 * dbus/dbus-string.c (_dbus_string_base64_encode)
854 (_dbus_string_base64_decode): Remove.
855 (_dbus_string_hex_decode): Add end_return argument so we can
856 distinguish between OOM and invalid hex encoding.
857 (_dbus_string_test): Remove base64 tests and add test case for
860 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
861 Replace base64 with hex.
863 * test/data/auth/invalid-hex-encoding.auth-script: New test case
864 for invalid hex encoded data in auth protocol.
866 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
868 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
871 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
873 * mono/dbus-sharp.dll.config.in: Added for GAC
874 * mono/dbus-sharp.snk: Added for GAC
875 * mono/Assembly.cs.in: Added for GAC
876 * mono/Makefile.am: Changes for GAC installation
877 * configure.in: Added refs for dbus-sharp.dll.config.in and
878 Assembly.cs.in. More fixes for mono testing
879 * mono/example/Makefile.am: Changed var to CSC
880 * Makefile.am: Changed flag name to DBUS_USE_CSC
882 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
884 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
885 * mono/doc/*: Added documentation framework
886 * configure.in: Added monodoc check
887 * README: Added description of mono configure flags
889 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
891 * doc/dbus-specification.xml: Added a "Required" column to the
892 header fields table and changed the "zero or more" verbage in
893 the above paragraph to read "The header must contain the required
894 named header fields and zero or more of the optional named header
896 * test/data/invalid-messages/*.message: Added the required PATH
897 named header field to the tests so that they don't fail on
900 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
902 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
903 the stack by implicitly defining variable and parameter types and
904 removing the hack of defining C pointers as python objects and later
907 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
909 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
911 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
913 * mono/DBusType/Dict.cs: Handle empty dicts
914 * mono/DBusType/Array.cs: Handle empty arrays
915 * mono/Arguments.cs: Handle empty arguments
917 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
919 * dbus-sharp.pc.in: Modified to include include Libs and Requires
922 2004-04-25 Kristian Høgsberg <krh@redhat.com>
924 * test/data/valid-messages/standard-*.message: Update message
925 test scripts to new header field names.
927 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
929 * test/break-loader.c (randomly_do_n_things): tracked down buffer
930 overflow to times_we_did_each_thing array which would chop off the
931 first character of the failure_dir string. Increased the size of
932 the array to 7 to reflect the number of random mutation functions
935 2004-04-21 Kristian Høgsberg <krh@redhat.com>
937 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
938 unix_server->watch here, it is unreffed in disconnect.
939 (_dbus_server_new_for_tcp_socket): convert NULL host to
940 "localhost" here so we don't append NULL to address.
942 * dbus/dbus-server.c (_dbus_server_test): Add test case for
943 various addresses, including tcp with no explicit host.
945 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
947 * dbus/dbus-message.c (decode_header_data, decode_string_field):
948 fix incorrect setting of .name_offset in the HeaderField (it was
949 off by two bytes, positioned right after the name and typecode)
951 * bus/bus.c (bus_context_new, bus_context_unref): test before
952 calling dbus_server_free_data_slot and _dbus_user_database_unref
955 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
958 2004-04-19 Kristian Høgsberg <krh@redhat.com>
960 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
961 _dbus_poll() instead of select().
963 2004-04-15 Jon Trowbridge <trow@ximian.com>
965 * bus/main.c (signal_handler): Reload the configuration files
967 (main): Set up our SIGHUP handler.
969 * bus/bus.c (struct BusContext): Store the config file, user and
970 fork flag in the BusContext.
971 (process_config_first_time_only): Added. Contains the code
972 (previously in bus_context_new) for setting up the BusContext from
973 the BusConfigParser that should only be run the first time the
974 config files are read.
975 (process_config_every_time): Added. Contains the code (previously
976 in bus_context_new) for setting up the BusContext from the
977 BusConfigParser that should be run every time the config files are
979 (load_config): Added. Builds a BusConfigParser from the config
980 files and passes the resulting structure off to
981 process_config_first_time_only (assuming this is the first time)
982 and process_config_every_time.
983 (bus_context_new): All of the config-related code has been moved
984 to process_config_first_time_only and process_config_every_time.
985 Now this function just does the non-config-related initializations
986 and calls load_config.
987 (bus_context_reload_config): Added.
989 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
991 * bus/driver.c (bus_driver_handle_get_service_owner):
992 implement a GetServiceOwner method.
993 * doc/dbus-specification.xml: document it.
994 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
996 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
997 implement, using the bus GetServiceOwner method.
999 * test/glib/test-dbus-glib.c:
1000 use dbus_gproxy_new_for_service_owner so that we can receive the
1003 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1005 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1006 dbus/dbus-message.c, dbus/dbus-protocol.h
1007 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1009 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1010 dbus/dbus-message.c, dbus/dbus-protocol.h
1011 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1013 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1014 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1015 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1017 * doc/dbus-specification.xml (Header Fields Table):
1018 s/SERVICE/DESTINATION
1019 s/SENDER_SERVICE/SENDER
1022 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1024 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1027 2004-04-13 Michael Meeks <michael@ximian.com>
1029 * glib/dbus-gobject.c (handle_introspect): split out
1030 (introspect_properties): this.
1031 (handle_introspect): implement this.
1033 * test/glib/Makefile.am: use the absolute path so the bus
1034 daemon's chdir ("/") doesn't kill us dead.
1036 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1038 2004-04-12 Jon Trowbridge <trow@ximian.com>
1040 * bus/config-parser.c (struct BusConfigParser): Added
1041 included_files field.
1042 (seen_include): Added. Checks whether or not a file has already
1043 been included by any parent BusConfigParser.
1044 (bus_config_parser_new): Copy the parent's included_files.
1045 (include_file): Track which files have been included, and fail on
1046 circular inclusions.
1047 (process_test_valid_subdir): Changed printf to report if we are
1048 testing valid or invalid conf files.
1049 (all_are_equiv): Changed printf to be a bit clearer about
1050 what we are actually doing.
1051 (bus_config_parser_test): Test invalid configuration files.
1053 2004-04-09 Jon Trowbridge <trow@ximian.com>
1055 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1056 argument. If non-null, the newly-constructed BusConfigParser will
1057 be initialized with the parent's BusLimits instead of the default
1059 (include_file): When including a config file, pass in
1060 the current parser as the parent and then copy the BusLimits
1061 from the included BusConfigParser pack to the current parser.
1062 (process_test_valid_subdir): Renamed from process_test_subdir.
1063 (process_test_equiv_subdir): Added. Walks through a directory,
1064 descending into each subdirectory and loading the config files
1065 it finds there. If any subdirectory contains two config files
1066 that don't produce identical BusConfigParser structs, fail.
1067 For now, the BusConfigParser's BusPolicies are not compared.
1068 (bus_config_parser_test): Call both process_test_valid_subdir and
1069 process_test_equiv_subdir.
1071 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1072 argument and pass it along to the call to bus_config_parser_new.
1073 Also made a few small changes to allow this code to compile.
1075 * bus/config-loader-expat.c (bus_config_load): Take a parent
1076 argument and pass it along to the call to bus_config_parser_new.
1078 * bus/bus.c (bus_context_new): Load the config file
1079 with a NULL parent argument.
1081 2004-03-29 Michael Meeks <michael@ximian.com>
1083 * glib/dbus-gobject.c (introspect_properties): split
1084 out, fix mangled 'while' flow control.
1085 (introspect_signals): implement.
1086 (handle_introspect): update.
1088 2004-03-29 Michael Meeks <michael@ximian.com>
1090 * glib/dbus-gobject.c (set_object_property): split out /
1091 re-work, use the property type, and not the message type(!)
1092 (get_object_property): ditto.
1094 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1095 (dbus_gvalue_marshal): make this code re-usable, needed
1096 for signals too, also on both proxy and server side.
1097 Re-write for more efficiency / readability.
1099 2004-03-29 Michael Meeks <michael@ximian.com>
1101 * dbus/dbus-message.c
1102 (dbus_message_new_error_printf): impl.
1104 * dbus/dbus-connection.c
1105 (dbus_connection_unregister_object_path): fix warning.
1107 * configure.in: fix no-mono-installed situation.
1109 2004-03-27 Havoc Pennington <hp@redhat.com>
1111 Patch from Timo Teräs:
1113 * tools/dbus-send.c (main): if --print-reply, assume type is
1114 method call; support boolean type args
1116 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1117 bunch of memleak and logic bugs
1119 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1121 * mono/Arguments.cs:
1122 * mono/Introspector.cs:
1124 * mono/InterfaceProxy.cs:
1126 * mono/ProxyBuilder.cs:
1128 Added InterfaceProxy class to avoid building proxies for every
1132 * dbus-message.c (dbus_message_append_args_valist)
1133 (dbus_message_iter_get_object_path)
1134 (dbus_message_iter_get_object_path_array)
1135 (dbus_message_iter_append_object_path)
1136 (dbus_message_iter_append_object_path_array):
1137 Added object_path iter functions to handle OBJECT_PATH arguments
1139 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1141 First checkin of mono bindings.
1144 Build stuff for the bindings
1145 * dbus-sharp.pc.in: Added for pkgconfig
1147 2004-03-21 Havoc Pennington <hp@redhat.com>
1149 * test/test-service.c (main): remove debug spew
1151 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1153 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1156 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1157 (dbus_message_iter_init_array_iterator)
1158 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1159 indicate whether the iterator is empty
1161 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1164 2004-03-19 Havoc Pennington <hp@redhat.com>
1166 * NEWS: 0.21 updates
1168 * configure.in: 0.21
1170 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1172 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1173 you don't need pyrex to make dist
1175 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1178 2004-03-18 Richard Hult <richard@imendio.com>
1180 * dbus/dbus-message.c (dbus_message_get_auto_activation)
1181 (dbus_message_set_auto_activation): Add doxygen docs.
1183 2004-03-16 Richard Hult <richard@imendio.com>
1185 * bus/activation.c: (bus_activation_service_created),
1186 (bus_activation_send_pending_auto_activation_messages),
1187 (bus_activation_activate_service):
1189 * bus/dispatch.c: (bus_dispatch),
1190 (check_nonexistent_service_auto_activation),
1191 (check_service_auto_activated),
1192 (check_segfault_service_auto_activation),
1193 (check_existent_service_auto_activation), (bus_dispatch_test):
1194 * bus/driver.c: (bus_driver_handle_activate_service):
1195 * bus/services.c: (bus_registry_acquire_service):
1196 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1197 (dbus_message_get_auto_activation):
1198 * dbus/dbus-message.h:
1199 * dbus/dbus-protocol.h: Implement auto-activation.
1201 * doc/dbus-specification.xml: Add auto-activation to the spec.
1203 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
1205 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1206 fix a bug with CUSTOM types.
1208 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1209 a unit test for this bug (used to fail).
1211 2004-03-12 Mikael Hallendal <micke@imendio.com>
1214 (babysitter_watch_callback): notify all pending activations waiting for
1215 the same exec that the activation failed.
1216 (bus_activation_activate_service): shortcut the activation if we
1217 already waiting for the same executable to start up.
1219 2004-03-12 Mikael Hallendal <micke@imendio.com>
1222 - Added service file reloading.
1223 Each service files directory is kept in an hash table in
1224 BusActivation and each BusActivationEntry knows what .service-file it
1225 was read from. So when you try to activate a service the bus will
1226 check if it's been updated, removed or if new .service-files has
1228 - Test code at the bottom for the service file reloading.
1229 * bus/test-main.c: (main):
1231 - added service reloading test.
1232 * dbus/dbus-sysdeps.c:
1233 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1235 2004-03-08 Michael Meeks <michael@ximian.com>
1237 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
1238 bail immediately if disconnected, to avoid busy loop.
1240 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1241 cleanup cut/paste/inefficiency.
1243 2004-03-01 David Zeuthen <david@fubar.dk>
1245 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1246 bug where args were used twice. This bug resulted in a segfault
1247 on a Debian/PPC system when starting the messagebus daemon. Include
1248 dbus-sysdeps.h for DBUS_VA_COPY
1250 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1252 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1253 appropriate va_copy implementation. From GLib
1255 2004-02-24 Joe Shaw <joe@ximian.com>
1257 * bus/services.c (bus_registry_acquire_service): We need to pass
1258 in the service name to dbus_set_error() to prevent a crash.
1260 2003-12-26 Anders Carlsson <andersca@gnome.org>
1262 * AUTHORS: Reveal my True identity.
1264 2003-12-17 Mikael Hallendal <micke@imendio.com>
1266 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1267 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1269 2003-12-13 Mikael Hallendal <micke@imendio.com>
1271 * doc/TODO: Added not about better error check of configuration files.
1273 2003-12-02 Richard Hult <richard@imendio.com>
1275 * Update AFL version to 2.0 throughout the source files to reflect
1276 the update that was done a while ago.
1278 2003-12-02 Richard Hult <richard@imendio.com>
1280 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1281 wrote_dict_key to FALSE on the iter that the dict is appended to,
1282 just like when appending other types. Fixes a bug where a dict
1283 couldn't be put inside a dict.
1284 (dbus_message_iter_append_dict_key): Fix typo in warning message.
1285 (message_iter_test, _dbus_message_test): Add test case for dict
1288 2003-12-01 David Zeuthen <david@fubar.dk>
1290 * python/dbus.py: Add the actual message when calling the reciever
1291 of a signal such that parameters can be inspected. Add the method
1292 remove_signal_receiver
1294 2003-11-26 Mikael Hallendal <micke@imendio.com>
1298 * glib/*.[ch]: Made ref functions return the pointer
1300 2003-11-25 Zack Rusin <zack@kde.org>
1302 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1304 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
1307 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
1308 the Integrator and to better fit with the server,
1310 2003-11-24 Zack Rusin <zack@kde.org>
1312 * qt/connection.h, qt/connection.cpp: removing initDbus method since
1313 the integrator handles it now
1315 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1316 since QTimer wasn't really meant to be used the way DBusTimeout is
1318 2003-11-24 Zack Rusin <zack@kde.org>
1320 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
1321 Integrator class which integrates D-BUS with the Qt event loop,
1323 * qt/connection.h, qt/connection.cpp: Move all the code which
1324 was dealing with D-BUS integration to the Integrator class,
1325 and start using Integrator,
1327 2003-11-23 Zack Rusin <zack@kde.org>
1329 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
1332 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1333 switching namespaces to DBusQt, reworking the class,
1335 * Makefile.cvs: switching dependencies so that it matches KDE
1338 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
1341 2003-11-19 Havoc Pennington <hp@redhat.com>
1345 * configure.in: bump version to 0.20
1347 * configure.in (have_qt): add yet another place to look for qt
1348 (someone hand trolltech a .pc file...)
1350 2003-11-01 Havoc Pennington <hp@redhat.com>
1352 * doc/dbus-specification.xml: add state machine docs on the auth
1353 protocol; just a first draft, I'm sure it's wrong.
1355 2003-10-28 David Zeuthen <david@fubar.dk>
1357 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1358 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1360 2003-10-28 Havoc Pennington <hp@redhat.com>
1362 * dbus/dbus-message.c (get_next_field): delete unused function
1364 2003-10-28 Havoc Pennington <hp@redhat.com>
1366 * bus/expirelist.c (do_expiration_with_current_time): detect
1367 failure of the expire_func due to OOM
1369 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1371 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1372 NoReply error that's now created by the bus when the service exits
1374 2003-10-28 Havoc Pennington <hp@redhat.com>
1376 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1377 tests for set_path, set_interface, set_member, etc.
1379 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1381 * dbus/dbus-message.c (set_string_field): always just delete and
1382 re-append the field; accept NULL for deletion
1383 (re_align_fields_recurse): reimplement
1385 2003-10-26 Havoc Pennington <hp@redhat.com>
1387 * dbus/dbus-connection.c: fix docs to properly describe the
1388 disconnected message
1389 (_dbus_connection_notify_disconnected): remove this function;
1390 we can't synchronously add the disconnected message, we have to
1391 do it after we've queued any remaining real messages
1392 (_dbus_connection_get_dispatch_status_unlocked): queue the
1393 disconnect message only if the transport has finished queueing all
1394 its real messages and is disconnected.
1395 (dbus_connection_disconnect): update the dispatch status here
1397 2003-10-22 Havoc Pennington <hp@redhat.com>
1399 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1401 * bus/connection.c (bus_transaction_send_from_driver): set the
1402 destination to the connection's base service
1404 2003-10-20 Havoc Pennington <hp@redhat.com>
1406 hmm, make check is currently not passing.
1408 * doc/dbus-specification.xml: add requirement that custom type
1409 names follow the same rules as interface names.
1411 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1412 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1415 * doc/dbus-specification.xml: update type codes to match
1416 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1417 CUSTOM. Add type OBJECT_PATH to the spec.
1419 2003-10-17 Havoc Pennington <hp@redhat.com>
1421 * bus/driver.c (create_unique_client_name): use "." as separator
1422 in base service names instead of '-'
1424 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1425 byte at the end of the string
1427 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1428 optimization macros since string validation seems to be a slow
1431 * doc/dbus-specification.xml: restrict valid
1432 service/interface/member/error names. Add test suite code for the
1435 * dbus/dbus-string.c: limit service/interface/member/error names
1438 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
1439 format arg to verbose spew
1441 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
1442 memory, return instead of g_error
1444 * test/test-service.c (path_message_func): support emitting a
1447 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
1448 activation bus type if DBUS_BUS_ACTIVATION was set; default to
1449 assuming the activation bus was the session bus so that services
1450 started manually will still register.
1451 (init_connections_unlocked): fix so that in OOM situation we get
1452 the same semantics when retrying the function
1454 * test/test-service.c (main): change to use path registration, to
1455 test those codepaths; register with DBUS_BUS_ACTIVATION rather
1456 than DBUS_BUS_SESSION
1458 2003-10-16 Havoc Pennington <hp@redhat.com>
1460 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
1462 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
1463 coverage of the tests
1464 (coverage-report.txt): don't move the .da and .bbg files around
1466 2003-10-16 Havoc Pennington <hp@redhat.com>
1468 * bus/bus.c (struct BusContext): remove struct field I didn't mean
1471 2003-10-16 Havoc Pennington <hp@redhat.com>
1473 * bus/connection.c (bus_pending_reply_expired): either cancel or
1475 (bus_connections_check_reply): use unlink, not remove_link, as we
1476 don't want to free the link; fixes double free mess
1478 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
1479 where no reply was received
1481 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
1484 * bus/signals.c (match_rule_matches): add special cases for the
1485 bus driver, so you can match on sender/destination for it.
1487 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
1488 DBUS_PRINT_BACKTRACE is set
1490 * dbus/dbus-internals.c: add pid to assertion failure messages
1492 * dbus/dbus-connection.c: add message type code to the debug spew
1494 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
1495 sender=foo not service=foo
1497 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
1498 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
1499 DBUS_ACTIVATION_ADDRESS instead
1501 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
1502 DBUS_SYSTEM_BUS_ADDRESS if appropriate
1504 * bus/bus.c (bus_context_new): handle OOM copying bus type into
1507 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
1508 (dbus_message_iter_get_object_path_array): new function (half
1509 finished, disabled for the moment)
1511 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
1512 DBUS_MESSAGE_TYPE_ERROR
1514 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
1515 avoid redirecting stderr to /dev/null
1516 (babysit): close stdin if not doing the "exit_with_session" thing
1518 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
1519 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
1520 stdout/stdin, so things don't get confused
1522 * bus/system.conf.in: fix to allow replies, I modified .conf
1523 instead of .conf.in again.
1525 2003-10-14 David Zeuthen <david@fubar.dk>
1527 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
1528 argtype to arg_type when raising unknown arg type exception.
1529 Changed type list to reflect the changes in dbus-protocol.h so
1530 the bindings actually work.
1532 2003-10-14 Havoc Pennington <hp@redhat.com>
1534 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
1535 to have a bug keeping it from outputting the .da files sometimes
1536 (string_get_string): don't append garbage nul bytes to the string.
1538 2003-10-15 Seth Nickell <seth@gnome.org>
1540 * python/Makefile.am:
1542 Include dbus_h_wrapper.h in the dist tarball.
1544 2003-10-14 Havoc Pennington <hp@redhat.com>
1546 * bus/bus.c (bus_context_check_security_policy): revamp this to
1547 work more sanely with new policy-based requested reply setup
1549 * bus/connection.c (bus_transaction_send_from_driver): set bus
1550 driver messages as no reply
1552 * bus/policy.c (bus_client_policy_check_can_receive): handle a
1553 requested_reply attribute on allow/deny rules
1555 * bus/system.conf: add <allow requested_reply="true"/>
1557 * bus/driver.c (bus_driver_handle_message): fix check for replies
1558 sent to the bus driver, which was backward. How did this ever work
1559 at all though? I think I'm missing something.
1561 * dbus/dbus-message.c (decode_header_data): require error and
1562 method return messages to have a reply serial field to be valid
1563 (_dbus_message_loader_queue_messages): break up this function;
1564 validate that reply serial and plain serial are nonzero;
1565 clean up the OOM/error handling.
1566 (get_uint_field): don't return -1 from this
1567 (dbus_message_create_header): fix signed/unsigned bug
1569 * bus/connection.c (bus_connections_expect_reply): save serial of
1570 the incoming message, not reply serial
1572 2003-10-14 Havoc Pennington <hp@redhat.com>
1574 * bus/connection.c: implement pending reply tracking using
1577 * bus/bus.c (bus_context_check_security_policy): verify that a
1578 reply is pending in order to allow a reply to be sent. Deny
1579 messages of unknown type.
1581 * bus/dbus-daemon-1.1.in: update to mention new resource limits
1583 * bus/bus.c (bus_context_get_max_replies_per_connection): new
1584 (bus_context_get_reply_timeout): new
1586 2003-10-13 Seth Nickell <seth@gnome.org>
1588 * python/Makefile.am:
1590 Pass "make distcheck": remove a couple files from DIST_FILES
1591 that weren't included in the final version.
1593 2003-10-12 Havoc Pennington <hp@pobox.com>
1595 Added test code that 1) starts an actual bus daemon and 2) uses
1596 DBusGProxy; fixed bugs that were revealed by the test. Lots
1597 more testing possible, but this is the basic framework.
1599 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
1600 empty proxy lists from the proxy list hash
1602 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
1603 couple of return_if_fail checks
1605 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
1606 to allocate, so everything is cleared to NULL as it should be.
1608 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
1609 source as data to dbus_connection_set_timeout_functions() as the
1610 timeout functions expected
1612 * test/glib/run-test.sh: add a little script to start up a message
1613 bus and run tests using it
1615 * tools/dbus-launch.1: updates
1617 * tools/dbus-launch.c (main): add --config-file option
1619 * tools/dbus-launch.c (main): remove confusing else if (runprog)
1620 that could never be reached.
1622 * dbus/dbus-message.c (dbus_message_new_method_return)
1623 (dbus_message_new_error, dbus_message_new_signal): set the
1624 no-reply-expected flag on all these. Redundant, but may
1625 as well be consistent.
1627 2003-10-11 Havoc Pennington <hp@pobox.com>
1629 * test/decode-gcov.c (function_solve_graph): make broken block
1630 graph a nonfatal error since it seems to be broken. Need to debug
1633 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
1634 can't just check type > INVALID < LAST anymore
1636 * dbus/dbus-message.c (dbus_message_get_signature): new function
1637 (dbus_message_has_signature): new function
1638 (struct DBusMessage): add signature field (right now it isn't sent
1639 over the wire, just generated on the fly)
1640 (dbus_message_copy): copy the signature, and init strings to
1641 proper length to avoid some reallocs
1642 (dbus_message_iter_init_array_iterator): return void, since it
1644 (dbus_message_iter_init_dict_iterator): return void since it can't fail
1645 (_dbus_message_loader_queue_messages): add silly temporary hack to
1646 fill in message->signature on load
1648 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
1649 characters, so they are relatively human-readable.
1651 2003-10-11 Havoc Pennington <hp@pobox.com>
1653 * dbus/dbus-message.c (_dbus_message_test): add more test
1654 coverage, but #if 0 for now since they uncover a bug
1655 not fixed yet; I think in re_align_field_recurse()
1656 (re_align_field_recurse): add FIXME about broken assertion
1658 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
1660 * bus/connection.c: share a couple code bits with expirelist.c
1662 * bus/expirelist.h, bus/expirelist.c: implement a generic
1663 expire-items-after-N-seconds facility, was going to share between
1664 expiring connections and replies, decided not to use for expiring
1665 connections for now.
1667 * COPYING: include AFL 2.0 (still need to change all the file headers)
1669 2003-10-09 Havoc Pennington <hp@redhat.com>
1671 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
1672 gcc 3.3. Not that we do anything about it yet.
1674 * bus/signals.c (bus_match_rule_parse): impose max length on the
1677 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
1679 2003-10-09 Havoc Pennington <hp@redhat.com>
1681 Make matching rules theoretically work (add parser).
1683 * bus/bus.c (bus_context_check_security_policy): fix up to handle
1684 the case where destination is explicitly specified as bus driver
1685 and someone else is eavesdropping.
1687 * bus/policy.c (bus_client_policy_check_can_receive): fix up
1688 definition of eavesdropping and assertion
1690 * tools/dbus-send.c (main): use dbus_message_type_from_string
1692 * bus/signals.c (bus_match_rule_parse): implement
1694 * dbus/dbus-message.c (dbus_message_type_from_string): new
1696 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
1698 2003-10-02 Havoc Pennington <hp@pobox.com>
1700 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
1701 dbus_gproxy_oneway_call
1703 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
1704 (dbus_server_setup_with_g_main): fix to allow calling them more
1705 than once on the same args
1706 (dbus_bus_get_with_g_main): new function
1708 2003-10-02 Havoc Pennington <hp@redhat.com>
1710 * doc/dbus-tutorial.xml: write some stuff
1712 2003-09-29 Havoc Pennington <hp@pobox.com>
1714 * configure.in: split checks for Doxygen from XML docs, check for
1717 * doc/Makefile.am: XML-ify all the docs, and add a blank
1720 2003-09-29 Havoc Pennington <hp@pobox.com>
1722 * Merge dbus-object-names branch. To see the entire patch
1723 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
1724 it's huuuuge though.
1725 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
1727 2003-09-28 Havoc Pennington <hp@pobox.com>
1729 * HACKING: update to reflect new server
1731 2003-09-26 Seth Nickell <seth@gnome.org>
1734 * python/examples/example-signals.py:
1736 Start implementing some notions of signals. The API
1737 is really terrible, but they sort of work (with the
1738 exception of being able to filter by service, and to
1739 transmit signals *as* a particular service). Need to
1740 figure out how to make messages come from the service
1743 * python/dbus_bindings.pyx.in:
1745 Removed duplicate message_handler callbacks.
1747 2003-09-25 Havoc Pennington <hp@redhat.com>
1749 * bus/session.conf.in: fix my mess
1751 2003-09-25 Havoc Pennington <hp@pobox.com>
1753 * bus/session.conf.in: fix security policy, reported by Seth Nickell
1755 2003-09-25 Seth Nickell <seth@gnome.org>
1757 * python/examples/example-service.py:
1759 Johan notices complete wrong code in example-service, but
1760 completely wrong in a way that works exactly the same (!).
1761 Johan is confused, how could this possibly work? Example
1762 code fails to serve purpose of making things clear.
1765 2003-09-25 Mark McLoughlin <mark@skynet.ie>
1767 * doc/dbus-specification.sgml: don't require header fields
1768 to be 4-byte aligned and specify that fields should be
1769 distinguished from padding by the fact that zero is not
1772 * doc/TODO: remove re-alignment item and add item to doc
1773 the OBJECT_PATH type.
1775 * dbus/dbus-message.c:
1776 (HeaderField): rename the original member to value_offset
1777 and introduce a name_offset member to keep track of where
1778 the field actually begins.
1779 (adjust_field_offsets): remove.
1780 (append_int_field), (append_uint_field),
1781 (append_string_field): don't align the start of the header
1782 field to a 4-byte boundary.
1783 (get_next_field): impl finding the next marhsalled field
1784 after a given field.
1785 (re_align_field_recurse): impl re-aligning a number of
1786 already marshalled fields.
1787 (delete_field): impl deleting a field of any type and
1788 re-aligning any following fields.
1789 (delete_int_or_uint_field), (delete_string_field): remove.
1790 (set_int_field), (set_uint_field): no need to re-check
1791 that we have the correct type for the field.
1792 (set_string_field): ditto and impl re-aligning any
1794 (decode_header_data): update to take into account that
1795 the fields aren't 4-byte aligned any more and the new
1796 way to distinguish padding from header fields. Also,
1797 don't exit when there is too much header padding.
1798 (process_test_subdir): print the directory.
1799 (_dbus_message_test): add test to make sure a following
1800 field is re-aligned correctly after field deletion.
1802 * dbus/dbus-string.[ch]:
1803 (_dbus_string_insert_bytes): rename from insert_byte and
1804 allow the insert of multiple bytes.
1805 (_dbus_string_test): test inserting multiple bytes.
1807 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
1808 warning note to docs about having to re-align any
1809 marshalled values following the string.
1811 * dbus/dbus-message-builder.c:
1812 (append_string_field), (_dbus_message_data_load):
1813 don't align the header field.
1815 * dbus/dbus-auth.c: (process_test_subdir): print the
1818 * test/break-loader.c: (randomly_add_one_byte): upd. for
1821 * test/data/invalid-messages/bad-header-field-alignment.message:
1824 * test/data/valid-messages/unknown-header-field.message: shove
1825 a dict in the unknown field.
1827 2003-09-25 Seth Nickell <seth@gnome.org>
1830 * python/dbus_bindings.pyx.in:
1832 Handle return values.
1834 * python/examples/example-client.py:
1835 * python/examples/example-service.py:
1837 Pass back return values from the service to the client.
1839 2003-09-24 Seth Nickell <seth@gnome.org>
1843 Connect Object methods (when you are sharing an object) up... pass
1844 in a list of methods to be shared. Sharing all the methods just
1845 worked out too weird. You can now create nice Services over the
1848 * python/dbus_bindings.pyx.in:
1850 Keep references to user_data tuples passed into C functions so
1851 Python doesn't garbage collect on us.
1853 Implement MethodReturn and Error subclasses of Message for creating
1854 DBusMessage's of those types.
1856 * python/examples/example-client.py:
1857 * python/examples/example-service.py:
1859 Simple example code showing both how create DBus services and objects,
1860 and how to use them.
1862 2003-09-23 Havoc Pennington <hp@pobox.com>
1864 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
1866 2003-09-23 Havoc Pennington <hp@redhat.com>
1868 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
1869 (dbus_gproxy_disconnect_signal): implement
1870 (dbus_gproxy_manager_remove_signal_match): implement
1871 (dbus_gproxy_manager_add_signal_match): implement
1872 (dbus_gproxy_oneway_call): implement
1874 2003-09-23 Havoc Pennington <hp@pobox.com>
1876 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
1877 subclass. This means dropping the transparent thread safety of the
1878 proxy; you now need a separate proxy per-thread, or your own
1879 locking on the proxy. Probably right anyway.
1880 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
1882 2003-09-22 Havoc Pennington <hp@redhat.com>
1884 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
1886 2003-09-21 Seth Nickell <seth@gnome.org>
1888 First checkin of the Python bindings.
1890 * python/.cvsignore:
1891 * python/Makefile.am:
1892 * python/dbus_bindings.pyx.in:
1893 * python/dbus_h_wrapper.h:
1895 Pieces for Pyrex to operate on, building a dbus_bindings.so
1896 python module for low-level access to the DBus APIs.
1900 High-level Python module for accessing DBus objects.
1905 Build stuff for the python bindings.
1909 Extra macro needed for finding the Python C header files.
1911 2003-09-21 Havoc Pennington <hp@pobox.com>
1913 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
1914 implementing the proxy manager, didn't get very far.
1916 * dbus/dbus-bus.c (dbus_bus_add_match): new
1917 (dbus_bus_remove_match): new
1919 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
1920 path_name argument; adjust the other not-yet-implemented
1921 gproxy constructors to be what I think they should be.
1923 2003-09-21 Havoc Pennington <hp@pobox.com>
1925 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
1926 by default for message bus connections.
1928 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
1929 exit_on_disconnect flag is set and we process the disconnected
1931 (dbus_connection_set_exit_on_disconnect): new function
1933 2003-09-21 Havoc Pennington <hp@pobox.com>
1935 Get matching rules mostly working in the bus; only actually
1936 parsing the rule text remains. However, the client side of
1937 "signal connections" hasn't been started, this patch is only the
1940 * dbus/dispatch.c: fix for the matching rules changes
1942 * bus/driver.c (bus_driver_handle_remove_match)
1943 (bus_driver_handle_add_match): send an ack reply from these
1946 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
1947 arguments, reported by Seth Nickell
1949 * bus/config-parser.c (append_rule_from_element): support
1950 eavesdrop=true|false attribute on policies so match rules
1951 can be prevented from snooping on the system bus.
1953 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
1954 and "destination" in attribute names; fix some docs bugs;
1955 add eavesdrop=true|false attribute
1957 * bus/driver.c (bus_driver_handle_add_match)
1958 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
1961 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
1962 rid of broadcast service concept, signals are just always broadcast
1964 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
1965 mostly implement matching rules stuff (currently only exposed as signal
1968 2003-09-21 Mark McLoughlin <mark@skynet.ie>
1970 * doc/dbus-specification.sgml: Change the header field name
1971 to be an enum and update the rest of the spec to reference
1972 the fields using the conventinal name.
1974 * dbus/dbus-protocol.h: update to reflect the spec.
1976 * doc/TODO: add item to remove the 4 byte alignment requirement.
1978 * dbus/dbus-message.c: Remove the code to generalise the
1979 header/body length and serial number header fields as named
1980 header fields so we can reference field names using the
1982 (append_int_field), (append_uint_field), (append_string_field):
1983 Append the field name as a byte rather than four chars.
1984 (delete_int_or_uint_field), (delete_string_field): reflect the
1985 fact that the field name and typecode now occupy 4 bytes instead
1987 (decode_string_field), (decode_header_data): update to reflect
1988 protocol changes and move the field specific encoding from
1989 decode_string_field() back into decode_header_data().
1991 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
1992 Add utility to aid debugging.
1994 * dbus/dbus-message-builder.c:
1995 (append_string_field), (_dbus_message_data_load): Update to
1996 reflect protocol changes; Change the FIELD_NAME directive
1997 to HEADER_FIELD and allow it to take the field's conventional
1998 name rather than the actual value.
2000 * test/data/*/*.message: Update to use HEADER_FIELD instead
2001 of FIELD_NAME; Always align the header on an 8 byte boundary
2002 *before* updating the header length.
2004 2003-09-15 Havoc Pennington <hp@pobox.com>
2006 * dbus/dbus-pending-call.c: add the get/set object data
2007 boilerplate as for DBusConnection, etc. Use generic object data
2008 for the notify callback.
2010 * glib/dbus-gparser.c (parse_node): parse child nodes
2012 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2014 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2015 contain functions shared between the convenience lib and the
2018 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2019 -export-symbols-regex to the GLib library
2021 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2022 fix the locking in here, and add a default handler for
2023 Introspect() that just returns sub-nodes.
2025 2003-09-14 Havoc Pennington <hp@pobox.com>
2027 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2028 rather than gfoo consistent
2030 * glib/dbus-gproxy.h: delete for now, move contents to
2031 dbus-glib.h, because the include files don't work right since we
2032 aren't in the dbus/ subdir.
2034 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2035 (dbus_gproxy_end_call): finish
2036 (dbus_gproxy_begin_call): finish
2038 * glib/dbus-gmain.c (dbus_set_g_error): new
2040 * glib/dbus-gobject.c (handle_introspect): include information
2041 about child nodes in the introspection
2043 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2044 function to help in implementation of introspection
2046 * dbus/dbus-object-tree.c
2047 (_dbus_object_tree_list_registered_and_unlock): new function
2049 2003-09-12 Havoc Pennington <hp@pobox.com>
2051 * glib/dbus-gidl.h: add common base class for all the foo_info
2054 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2057 * test/Makefile.am: try test srcdir -ef . in addition to test
2058 srcdir = ., one of them should work (yeah lame)
2060 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2063 * glib/dbus-gparser.h: make description_load routines return
2064 NodeInfo* not Parser*
2066 * Makefile.am (SUBDIRS): build test dir after all library dirs
2068 * configure.in: add GTK+ detection
2070 2003-09-07 Havoc Pennington <hp@pobox.com>
2072 * Make Doxygen contented.
2074 2003-09-07 Havoc Pennington <hp@pobox.com>
2076 * doc/dbus-specification.sgml: more updates
2078 2003-09-06 Havoc Pennington <hp@pobox.com>
2080 * doc/dbus-specification.sgml: partial updates
2082 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2083 zillionth time; hopefully I edited the right file this time.
2085 * bus/config-parser.c (append_rule_from_element): support
2086 send_type, send_path, receive_type, receive_path
2088 * bus/policy.c: add message type and path to the list of things
2089 that can be "firewalled"
2091 2003-09-06 Havoc Pennington <hp@pobox.com>
2093 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2094 (dbus_connection_register_object_path): make this not handle
2095 messages to paths below the given path
2097 2003-09-03 Havoc Pennington <hp@pobox.com>
2099 * test/glib/Makefile.am: add this with random glib-linked test
2102 * glib/Makefile.am: remove the random test programs from here,
2103 leave only the unit tests
2105 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2106 uscore/javacaps conversion, and fix
2107 (get_object_property, set_object_property): change to .NET
2108 convention for mapping props to methods, set_FooBar/get_FooBar,
2109 since one language has such a convention we may as well copy it.
2110 Plus real methods in either getFooBar or get_foo_bar style won't
2111 collide with this convention.
2113 2003-09-01 Havoc Pennington <hp@pobox.com>
2115 * glib/dbus-gparser.c: implement
2117 * glib/dbus-gobject.c: start implementing skeletons support
2119 * configure.in: when disabling checks/assert, also define
2120 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2122 2003-09-01 Havoc Pennington <hp@pobox.com>
2124 * glib/Makefile.am: rearrange a bunch of files and get "make
2125 check" framework set up
2127 2003-08-31 Havoc Pennington <hp@pobox.com>
2129 * fix build with --disable-tests
2131 2003-08-30 Havoc Pennington <hp@pobox.com>
2133 * dbus/dbus-connection.c: purge DBusMessageHandler
2135 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2136 use callbacks everywhere
2138 2003-08-30 Havoc Pennington <hp@pobox.com>
2140 * test/data/valid-config-files/system.d/test.conf: change to
2141 root for the user so warnings don't get printed
2143 * dbus/dbus-message.c: add dbus_message_get_path,
2144 dbus_message_set_path
2146 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2147 dispatching to a path
2149 * dbus/dbus-string.c (_dbus_string_validate_path): add
2151 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2152 (_dbus_marshal_object_path): implement
2154 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2155 to contain the path to the target object
2156 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2157 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2159 2003-08-30 Havoc Pennington <hp@pobox.com>
2161 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2163 2003-08-29 Havoc Pennington <hp@pobox.com>
2165 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2167 (struct DBusObjectSubtree): shrink this
2168 a lot, since we may have a lot of them
2169 (_dbus_object_tree_free_all_unlocked): implement
2170 (_dbus_object_tree_dispatch_and_unlock): implement
2172 2003-08-29 Havoc Pennington <hp@pobox.com>
2174 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2176 2003-08-28 Havoc Pennington <hp@pobox.com>
2180 * dbus/dbus-connection.c: port to no ObjectID, create a
2181 DBusObjectTree, rename ObjectTree to ObjectPath in public API
2183 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
2184 everything except UnregisterFunction and MessageFunction
2186 * dbus/dbus-marshal.c: port away from DBusObjectID,
2187 add DBUS_TYPE_OBJECT_PATH
2189 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
2190 dbus/dbus-objectid.[hc]: remove these, we are moving to
2191 path-based object IDs
2193 2003-08-25 Havoc Pennington <hp@pobox.com>
2195 Just noticed that dbus_message_test is hosed, I wonder when I
2196 broke that. I thought make check was passing earlier...
2198 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
2199 container tree, will replace most of dbus-object-registry
2201 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2204 2003-08-19 Havoc Pennington <hp@pobox.com>
2206 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2207 (dbus_message_is_error): fix this function
2209 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2212 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2213 reflect clarified man page
2214 (bus_client_policy_check_can_send): ditto
2216 * bus/session.conf.in: fixup
2218 * bus/system.conf.in: fixup
2220 2003-08-18 Havoc Pennington <hp@redhat.com>
2222 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2224 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2225 dumb bug created earlier (wrong order of args to
2226 decode_header_data())
2228 * tools/dbus-send.c: port
2230 * tools/dbus-print-message.c (print_message): port
2232 * test/data/*messages: port all messages over
2234 * dbus/dbus-message-builder.c: support including
2237 * bus/driver.c: port over
2239 * bus/dispatch.c: port over to new stuff
2241 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2242 rename disconnect signal to "Disconnected"
2244 2003-08-17 Havoc Pennington <hp@pobox.com>
2246 This doesn't compile yet, but syncing up so I can hack on it from
2247 work. What are branches for if not broken code? ;-)
2249 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2250 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2251 DBUS_HEADER_FIELD_ERROR_NAME
2253 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2254 for the interface+member pairs
2255 (string_hash): change to use g_str_hash algorithm
2256 (find_direct_function, find_string_function): refactor these to
2259 * dbus/dbus-message.c: port all of this over to support
2260 interface/member fields instead of name field
2262 * dbus/dbus-object-registry.c: port over
2264 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2265 from _dbus_string_validate_name
2267 * bus/dbus-daemon-1.1: change file format for the
2268 <deny>/<allow> stuff to match new message naming scheme
2270 * bus/policy.c: port over
2272 * bus/config-parser.c: parse new format
2274 2003-08-16 Havoc Pennington <hp@pobox.com>
2276 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2279 * glib/dbus-gproxy.c: some hacking
2281 2003-08-15 Havoc Pennington <hp@redhat.com>
2283 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2285 * dbus/dbus-connection.c
2286 (dbus_connection_send_with_reply_and_block): factor out internals;
2287 change to convert any error replies to DBusError instead of
2288 returning them as a message
2290 2003-08-15 Havoc Pennington <hp@pobox.com>
2292 * dbus/dbus-connection.c,
2293 dbus/dbus-pending-call.c: Finish the pending call stuff
2295 2003-08-14 Havoc Pennington <hp@redhat.com>
2297 * dbus/dbus-pending-call.c: start on new object that will replace
2298 DBusMessageHandler and ReplyHandlerData for tracking outstanding
2301 * dbus/dbus-gproxy.c: start on proxy object used to communicate
2302 with remote interfaces
2304 * dbus/dbus-gidl.c: do the boring boilerplate in here
2306 2003-08-12 Havoc Pennington <hp@pobox.com>
2308 * bus/dispatch.c (bus_dispatch): make this return proper
2309 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2311 * dbus/dbus-errors.c (dbus_set_error): use
2312 _dbus_string_append_printf_valist
2314 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2315 (_dbus_string_append_printf): new
2317 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2320 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2321 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2322 message is unhandled.
2324 2003-08-11 Havoc Pennington <hp@pobox.com>
2326 * bus/test.c (client_disconnect_handler): change to return
2327 HANDLED (would have been REMOVE_MESSAGE)
2329 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2330 HANDLED/NOT_YET_HANDLED instead of
2331 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
2334 2003-08-10 Havoc Pennington <hp@pobox.com>
2336 * tools/dbus-send.c (main): add --type argument, for now
2337 supporting only method_call and signal types.
2339 * tools/dbus-print-message.c: print message type
2341 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2342 init connection->objects
2344 * doc/dbus-specification.sgml: fix sgml
2346 * bus/*.c: port over to object-instance API changes
2348 * test/test-service.c: ditto
2350 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2351 name, we will have to fix up the rest of the code to also handle
2353 (dbus_message_new): generic message-creation call
2354 (set_string_field): allow appending name field
2356 2003-08-06 Havoc Pennington <hp@pobox.com>
2358 * dbus/dbus-object-registry.c: implement signal connection
2361 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2363 * dbus/dbus-internals.c (_dbus_memdup): new function
2365 2003-08-02 Havoc Pennington <hp@pobox.com>
2367 * dbus/dbus-message.c (dbus_message_get_no_reply)
2368 (dbus_message_set_no_reply): add these and remove
2369 set_is_error/get_is_error
2371 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
2372 remove the ERROR flag, since there's now an ERROR type
2374 2003-08-01 Havoc Pennington <hp@pobox.com>
2376 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2379 * dbus/dbus-message.c (dbus_message_get_type): new function
2381 * doc/dbus-specification.sgml: add "type" byte to messages
2383 2003-08-01 Havoc Pennington <hp@pobox.com>
2385 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2386 a message type enum to distinguish kinds of message
2387 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
2388 that need not be replied to
2390 2003-08-01 Havoc Pennington <hp@pobox.com>
2392 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2393 (unpack_8_octets): fix no-64-bit-int bug
2395 * dbus/dbus-object-registry.c (validate_id): validate the
2396 connection ID bits, not just the instance ID.
2398 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2399 the connection-global 33 bits of the object ID
2401 * dbus/dbus-object-registry.c (info_from_entry): fill in
2402 object ID in the new way
2404 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2405 define server/client/instance bits.
2407 2003-07-30 Havoc Pennington <hp@pobox.com>
2409 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2412 2003-07-13 Havoc Pennington <hp@pobox.com>
2414 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2415 fields to DBusObjectVTable and DBusObjectInfo
2417 2003-07-12 Havoc Pennington <hp@pobox.com>
2419 * dbus/dbus-object-registry.c: implement unit test,
2420 fix bugs discovered in process
2422 * dbus/dbus-connection.c: remove handler_table and
2423 register_handler(), add DBusObjectRegistry usage
2425 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2426 (dbus_object_id_set_null): new functions
2428 2003-07-08 Havoc Pennington <hp@pobox.com>
2430 * dbus/dbus-object.c: implement some of this
2432 * dbus/dbus-object-registry.c
2433 (_dbus_object_registry_add_and_unlock): fill in the object_id out
2435 (_dbus_object_registry_new): handle OOM
2437 2003-07-08 Havoc Pennington <hp@pobox.com>
2439 * dbus/dbus-object.h: sketch out an API for registering objects
2440 with a connection, that allows us to use as little as 24 bytes
2441 per object and lets application code represent an object in
2442 any conceivable way.
2444 * dbus/dbus-object-registry.c: implement the hard bits of the
2445 DBusConnection aspect of object API. Not yet wired up.
2447 2003-07-06 Havoc Pennington <hp@pobox.com>
2449 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
2450 (_dbus_marshal_object_id): new
2451 (_dbus_demarshal_object_id): new
2452 (_dbus_marshal_get_arg_end_pos): support object ID type, and
2453 consolidate identical switch cases. Don't conditionalize handling
2454 of DBUS_TYPE_UINT64, need to handle the type always.
2455 (_dbus_marshal_validate_arg): consolidate identical cases, and
2456 handle DBUS_TYPE_OBJECT_ID
2458 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
2460 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
2462 2003-09-28 Havoc Pennington <hp@pobox.com>
2466 2003-09-28 Havoc Pennington <hp@pobox.com>
2468 * doc/Makefile.am (dbus-specification.html): testing a funky hack
2469 to work with Debian db2html
2471 2003-09-28 Havoc Pennington <hp@pobox.com>
2473 * configure.in: 0.13
2475 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
2476 stylesheet-images for benefit of Debian
2478 Change back to using filesystem-linked sockets for the system
2479 bus, so only root can create the default system bus address.
2481 * bus/system.conf.in: change to use
2482 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2484 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
2487 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2488 here, and AC_DEFINE DBUS_SYSTEM_PATH
2490 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2493 * doc/busconfig.dtd:
2496 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2498 * doc/dbus-specification.sgml:
2499 Add activation reply values.
2501 2003-08-05 Havoc Pennington <hp@redhat.com>
2503 * configure.in: 0.12
2505 2003-08-05 Anders Carlsson <andersca@codefactory.se>
2507 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
2508 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
2509 (add_watch), (remove_watch), (create_source):
2510 Refcount fds, fixes some reentrancy issues.
2512 2003-07-30 Havoc Pennington <hp@redhat.com>
2514 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
2515 bus address to be abstract if we have abstract sockets
2519 2003-07-28 Havoc Pennington <hp@redhat.com>
2521 * bus/messagebus.in: fix to avoid processname/servicename
2522 confusion, from Michael Kearey
2523 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
2525 2003-07-23 Havoc Pennington <hp@pobox.com>
2527 * dbus/dbus-message.c (dbus_message_iter_get_named):
2528 fix from Andy Hanton to remove broken "+1"
2530 2003-07-16 Havoc Pennington <hp@pobox.com>
2532 * tools/dbus-launch.c (babysit): close stdout/stderr in the
2533 babysitter process, as suggested by Thomas Leonard, so
2534 an "eval `dbus-launch --exit-with-session`" will actually
2537 2003-07-16 Havoc Pennington <hp@pobox.com>
2539 * configure.in: print out EXPANDED_* variables in the summary at
2540 the end; clean up the code that computes EXPANDED_ variables and
2541 get the ones using exec_prefix right. Should make things work
2542 when you build without --prefix
2544 2003-06-29 Havoc Pennington <hp@pobox.com>
2546 * mono/Test.cs (class Test): fire up a main loop and run it
2548 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
2549 done once, the app has to do it
2551 2003-06-26 Havoc Pennington <hp@pobox.com>
2553 * mono/Connection.cs: set up connection with the glib main loop
2555 2003-07-01 Havoc Pennington <hp@redhat.com>
2557 * doc/dbus-specification.sgml: clarify the format of a type code,
2558 change suggested by Jim Blandy
2560 2003-06-29 Miloslav Trmac <mitr@volny.cz>
2563 * tools/Makefile.am: Don't assume srcdir == builddir.
2565 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
2566 the allocated block.
2567 (_dbus_memory_test): New function.
2568 * dbus/dbus-test.h: Add _dbus_memory_test ().
2569 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
2571 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
2573 (dbus_message_new): Remove obsolete @todo.
2575 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
2576 (_dbus_marshal_set_uint64): Fix comment.
2578 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
2579 hardcode FIELD_REPLY_SERIAL.
2581 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
2582 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
2584 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
2585 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
2587 2003-06-24 Havoc Pennington <hp@pobox.com>
2589 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
2591 2003-06-23 Anders Carlsson <andersca@codefactory.se>
2597 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
2598 * gcj/org/.cvsignore:
2599 * gcj/org/Makefile.am:
2600 * gcj/org/freedesktop/.cvsignore:
2601 * gcj/org/freedesktop/Makefile.am:
2602 * gcj/org/freedesktop/dbus/.cvsignore:
2603 * gcj/org/freedesktop/dbus/Makefile.am:
2604 * gcj/org/freedesktop/dbus/Message.java: (Message),
2606 * gcj/org/freedesktop/dbus/natMessage.cc:
2607 Fix the build system.
2609 2003-06-22 Havoc Pennington <hp@pobox.com>
2611 * mono/Connection.cs: add more bindings
2613 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
2616 2003-06-22 Havoc Pennington <hp@pobox.com>
2618 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
2619 Start wrapping more stuff.
2621 2003-06-22 Havoc Pennington <hp@pobox.com>
2623 * mono/Message.cs: implement Message.Wrap() that ensures we only
2624 have a single C# wrapper per DBusMessage, assuming it works which
2625 it probably doesn't.
2627 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
2628 (dbus_message_free_data_slot): new
2629 (dbus_message_set_data): new
2630 (dbus_message_get_data): new
2632 2003-06-22 Havoc Pennington <hp@pobox.com>
2634 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
2635 (_dbus_data_slot_allocator_alloc): rework these to keep a
2636 reference count on each slot and automatically manage a global
2637 slot ID variable passed in by address
2639 * bus/bus.c: convert to new dataslot API
2641 * dbus/dbus-bus.c: convert to new dataslot API
2643 * dbus/dbus-connection.c: convert to new dataslot API
2645 * dbus/dbus-server.c: convert to new dataslot API
2647 * glib/dbus-gmain.c: ditto
2651 * bus/connection.c: ditto
2653 2003-06-22 Anders Carlsson <andersca@codefactory.se>
2655 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
2656 after the gcj checks so that the correct configuration tags
2657 will be added to libtool.
2659 * dbus-glib-1.pc.in: No need to specify any includes since
2660 dbus-1.pc.in has those.
2662 2003-06-22 Havoc Pennington <hp@pobox.com>
2664 * mono/*, gcj/*, configure.in, Makefile.am:
2665 Check in makefiles and subdirs for mono and gcj bindings.
2666 Neither binding actually exists, just trying to get through
2667 all the build and other boring bits.
2669 2003-06-21 Philip Blundell <philb@gnu.org>
2671 * tools/dbus-monitor.1: Updated.
2673 * tools/dbus-send.1: Likewise.
2675 2003-06-20 Anders Carlsson <andersca@codefactory.se>
2677 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
2678 for hangup and error after checking read so we won't discard
2679 pending data if both hangup and read are set.
2681 2003-06-19 Philip Blundell <philb@gnu.org>
2683 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
2685 * tools/dbus-send.c: Accept both --system and --session.
2687 * tools/dbus-monitor.c: Same here.
2689 2003-06-19 Anders Carlsson <andersca@codefactory.se>
2691 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
2692 from C++ (Patch by Miloslav Trmac).
2694 2003-06-15 Joe Shaw <joe@assbarn.com>
2696 * configure.in: Check for socklen_t.
2698 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
2700 * test/test-segfault.c: Add #include <sys/time.h>
2702 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
2703 dbus-launch needs it.
2705 2003-06-09 Havoc Pennington <hp@redhat.com>
2707 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
2708 SUN_LEN, it breaks abstract socket usage
2710 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
2713 2003-06-04 Havoc Pennington <hp@pobox.com>
2715 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
2716 using unix:abstract=/foo, and when listening in a tmpdir
2717 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
2719 * dbus/dbus-transport.c (_dbus_transport_open): support
2722 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2723 support abstract sockets
2725 * dbus/dbus-transport-unix.c
2726 (_dbus_transport_new_for_domain_socket): support abstract sockets
2728 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
2729 toggle as an argument, implement abstract namespace support
2730 (_dbus_listen_unix_socket): ditto
2732 * configure.in: add --enable-abstract-sockets and implement
2733 a configure check for autodetection of the right value.
2735 2003-06-01 Havoc Pennington <hp@pobox.com>
2737 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
2738 in /tmp (though on Linux this will end up being useless,
2739 when we add abstract namespace support)
2741 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
2744 2003-05-28 Colin Walters <walters@verbum.org>
2746 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
2748 2003-05-18 Anders Carlsson <andersca@codefactory.se>
2750 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
2752 2003-05-17 Colin Walters <walters@gnu.org>
2754 * tools/dbus-send.c: Don't exit with an error code if --help was
2755 passed. Default to using the session bus instead of the system
2758 * tools/dbus-launch.c: Ditto.
2760 * tools/dbus-monitor.c: Ditto.
2762 * tools/dbus-send.1: Update with new arguments.
2764 * tools/dbus-launch.c: Emit code to export variables. New
2765 arguments -s and -c to specify shell syntax, and a bit of code to
2766 autodetect syntax. Also, allow specifying a program to run.
2768 * tools/dbus-launch.1: Update with new arguments.
2770 * tools/dbus-send.1: Ditto.
2772 * tools/dbus-monitor.1: Ditto.
2774 2003-05-17 Havoc Pennington <hp@pobox.com>
2776 * bus/config-parser.c (merge_included): merge in policies from
2777 child configuration file.
2779 * bus/policy.c (bus_policy_merge): function to merge two policies
2782 2003-05-16 Havoc Pennington <hp@redhat.com>
2784 * dbus/dbus-connection.c: disable verbose lock spew
2786 * tools/dbus-send.c: add --print-reply command line option
2788 * tools/dbus-print-message.h (print_message): new util function
2789 shared by dbus-send and dbus-monitor
2791 * tools/dbus-monitor.c (handler_func): exit on disconnect
2793 * dbus/dbus-transport-unix.c (do_reading): if the transport is
2794 disconnected, don't try to use the read_watch
2796 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
2797 so we can find this bug more easily
2799 2003-05-16 Havoc Pennington <hp@redhat.com>
2801 * bus/policy.c (free_rule_list_func): avoid a crash when passed
2802 NULL as DBusHashTable is annoyingly likely to do.
2804 2003-05-16 Colin Walters <walters@verbum.org>
2806 * tools/dbus-monitor.c: Add --session argument and usage()
2809 * tools/dbus-monitor.1: Update with new --session arg.
2811 * bus/Makefile.am (install-data-hook): Create
2812 $(libdir)/dbus-1.0/services so that the session bus is happy.
2814 2003-05-15 Havoc Pennington <hp@redhat.com>
2816 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
2817 on non-x86. ifdef's are evil.
2819 2003-05-15 Havoc Pennington <hp@redhat.com>
2821 * configure.in: 0.11
2825 * bus/Makefile.am (initddir): apparently we are supposed to put
2826 init scripts in /etc/rc.d/init.d not /etc/init.d
2828 * bus/Makefile.am: remove the "you must --enable-tests to make
2829 check" as it broke distcheck
2831 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
2833 2003-05-13 James Willcox <jwillcox@gnome.org>
2836 * bus/activation.c: (bus_activation_service_created),
2837 (bus_activation_activate_service):
2838 * bus/driver.c: (bus_driver_send_service_deleted),
2839 (bus_driver_send_service_created), (bus_driver_send_service_lost),
2840 (bus_driver_send_service_acquired),
2841 (bus_driver_send_welcome_message),
2842 (bus_driver_handle_list_services):
2843 * bus/session.conf.in:
2844 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
2845 (dbus_bus_service_exists), (dbus_bus_activate_service):
2848 Add some convenience API which lets you activate a service, and did a
2849 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
2850 and dbus_message_get_args()
2852 2003-05-11 Havoc Pennington <hp@pobox.com>
2854 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
2855 calling _dbus_marshal_validate_arg() for every byte in a byte
2858 * dbus/dbus-message-handler.c: use atomic reference counting to
2859 reduce number of locks slightly; the global lock in here sucks
2861 * dbus/dbus-connection.c
2862 (_dbus_connection_update_dispatch_status_and_unlock): variant of
2863 update_dispatch_status that can be called with lock held; then use
2864 in a couple places to reduce locking/unlocking
2865 (dbus_connection_send): hold the lock over the whole function
2866 instead of acquiring it twice.
2868 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
2870 * bus/connection.c (bus_connections_setup_connection): fix access
2871 to already-freed memory.
2873 * dbus/dbus-connection.c: keep a little cache of linked list
2874 nodes, to avoid using the global linked list alloc lock in the
2875 normal send-message case. Instead we just use the connection lock
2876 that we already have to take.
2878 * dbus/dbus-list.c (_dbus_list_find_last): new function
2880 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
2881 change to use a struct for the atomic type; fix docs,
2882 they return value before increment, not after increment.
2884 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
2885 (_dbus_string_append_8_aligned): new functions to try to
2886 microoptimize this operation.
2887 (reallocate_for_length): break this out of set_length(), to
2888 improve profile info, and also so we can consider inlining the
2891 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
2892 strings with some preallocation, cuts down on our calls to realloc
2893 a fair bit. Though if we can get the "move entire string to empty
2894 string" optimization below to kick in here, it would be better.
2896 * dbus/dbus-string.c (_dbus_string_move): just call
2897 _dbus_string_move_len
2898 (_dbus_string_move_len): add a special case for moving
2899 an entire string into an empty string; we can just
2900 swap the string data instead of doing any reallocs.
2901 (_dbus_string_init_preallocated): new function
2903 2003-05-11 Havoc Pennington <hp@pobox.com>
2905 Write a "test-profile" that does echo client-server with threads;
2906 profile reveals lock contention, memcpy/realloc of buffers, and
2907 UTF-8 validation as hot spots. 20% of lock contention eliminated
2908 with dbus_atomic_inc/dec implementation on x86. Much remaining
2909 contention is global mempool locks for GList and DBusList.
2911 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
2914 * dbus/dbus-connection.c (struct DBusConnection): use
2915 dbus_atomic_t for the reference count
2917 * dbus/dbus-message.c (struct DBusMessage): declare
2918 dbus_atomic_t values as volatile
2920 * configure.in: code to detect ability to use atomic integer
2921 operations in assembly, from GLib patch
2923 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
2924 time, tired of it being wrong in threads and forked processes
2926 * glib/test-profile.c: a little program to bounce messages back
2927 and forth between threads and eat CPU
2929 * dbus/dbus-connection.c: add debug spew macros for debugging
2930 thread locks; include config.h at top; fix deadlock in
2931 dbus_connection_flush()
2933 2003-05-08 Havoc Pennington <hp@pobox.com>
2935 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
2936 data from getting written, and there wasn't a good reason to
2939 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
2940 dbus_verbose lines in test coverage
2941 (main): add list of functions sorted by # of untested blocks
2942 to the coverage report
2944 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
2946 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
2948 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
2949 extend test coverage
2951 * test/data/auth/cancel.auth-script: test canceling an
2954 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
2955 aren't used. in CVS history if we end up needing them.
2957 2003-05-04 Havoc Pennington <hp@pobox.com>
2959 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
2962 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
2963 function, which assumed length was in # of strings, not bytes
2965 * dbus/dbus-message.c (_dbus_message_test): add tests for some
2968 * dbus/dbus-connection.c
2969 (_dbus_connection_queue_received_message): disable function for
2970 now, we are only using it in test mode
2972 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2973 remove a mistaken FIXME
2975 2003-05-04 Havoc Pennington <hp@pobox.com>
2977 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
2978 unlock mutex on successful return, patch from Anders Gustafsson
2980 2003-05-04 Havoc Pennington <hp@pobox.com>
2982 * dbus-glib-1.pc.in (Requires): fix dependencies, from
2985 2003-05-04 Havoc Pennington <hp@pobox.com>
2987 * tools/dbus-launch.c: implement
2989 * bus/main.c (main), bus/bus.c (bus_context_new):
2990 implement --print-pid and --fork
2992 2003-05-03 Havoc Pennington <hp@redhat.com>
2994 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
2995 the address had no value, and add to test suite. Fix and
2996 regression test from Miloslav Trmac
2998 2003-05-03 Havoc Pennington <hp@pobox.com>
3000 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3001 watch is invalid when handled
3003 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3004 dbus-launch utility to launch the bus from a shell script. Didn't
3005 actually implement dbus-launch yet, it's just a placeholder still.
3007 2003-05-03 Havoc Pennington <hp@pobox.com>
3009 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3010 daemon; also documents daemon config file, so replaces
3011 doc/config-file.txt. Corrected some stuff from config-file.txt in
3012 the process of moving it.
3014 2003-05-03 Havoc Pennington <hp@pobox.com>
3016 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3019 2003-05-03 Colin Walters <walters@verbum.org>
3021 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3022 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3024 * Makefile.am: Update to use new .pc versioning scheme.
3026 2003-05-02 Havoc Pennington <hp@redhat.com>
3028 * bus/system.conf.in: allow send/receive to/from message bus
3031 2003-04-30 Havoc Pennington <hp@redhat.com>
3033 * configure.in: print a note when building with unit tests and
3036 2003-04-30 Havoc Pennington <hp@redhat.com>
3038 * Makefile.am: add a check-local that complains if you didn't
3039 configure with --enable-tests
3041 2003-04-29 Havoc Pennington <hp@redhat.com>
3043 * glib/dbus-gmain.c: docs cleanups
3045 * dbus/dbus-types.h: add docs on int64 types
3047 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3048 public API docs section
3050 2003-04-29 Havoc Pennington <hp@redhat.com>
3052 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3053 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3054 parallel install API version, not with the D-BUS package version.
3056 * HACKING: move some of README over here
3058 * README: updates, and document API/ABI policy
3060 * configure.in: reindentation
3062 2003-04-29 Havoc Pennington <hp@redhat.com>
3064 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3065 to use this library" to be sure people have the right
3068 2003-04-28 Havoc Pennington <hp@redhat.com>
3070 * configure.in: add --enable-docs which by default is auto yes if
3071 doxygen and db2html found, no otherwise; but can be forced on/off
3073 * doc/Makefile.am: conditionalize whether to build docs on
3076 2003-04-28 Havoc Pennington <hp@redhat.com>
3078 * configure.in: 0.10
3082 * bus/system.conf.in: add <includedir>system.d</includedir>
3084 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3085 username was provided but not uid
3087 * bus/config-parser.c (struct BusConfigParser): keep track of
3088 whether the parser is toplevel or was included; change some
3089 of the error handling if it's included.
3091 2003-04-27 Havoc Pennington <hp@pobox.com>
3095 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3096 report correct status if we finish processing authentication
3097 inside this function.
3099 * bus/activation.c (try_send_activation_failure): use
3100 bus_transaction_send_error_reply
3102 * bus/connection.c (bus_connection_get_groups): return an error
3103 explaining the problem
3105 * bus/bus.c (bus_context_check_security_policy): implement
3106 restriction here that inactive connections can only send the
3107 hello message. Also, allow bus driver to send anything to
3110 * bus/connection.c (bus_connection_complete): create the
3111 BusClientPolicy here instead of on-demand.
3112 (bus_connection_get_policy): don't return an error
3114 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3115 sender field in message being replied to
3117 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3118 causing it to return FALSE always
3120 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3121 we checked sender rather than destination
3123 2003-04-25 Havoc Pennington <hp@redhat.com>
3125 test suite is slightly hosed at the moment, will fix soon
3127 * bus/connection.c (bus_connections_expire_incomplete): fix to
3128 properly disable the timeout when required
3129 (bus_connection_set_name): check whether we can remove incomplete
3130 connections timeout after we complete each connection.
3132 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3133 probably still broken.
3135 * bus/services.c (bus_registry_acquire_service): implement max
3136 number of services owned, and honor allow/deny rules on which
3137 services a connection can own.
3139 * bus/connection.c (bus_connection_get_policy): report errors here
3141 * bus/activation.c: implement limit on number of pending
3144 2003-04-25 Havoc Pennington <hp@redhat.com>
3146 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3147 where we used >= 0 instead of != DBUS_UID_UNSET.
3149 2003-04-25 Havoc Pennington <hp@redhat.com>
3151 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3152 were toggled without add/remove, fix from Anders Gustafsson
3154 2003-04-24 Havoc Pennington <hp@redhat.com>
3156 * test/data/valid-config-files/basic.conf: add <limit> tags to
3159 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3160 <limit> tag in configuration file.
3162 2003-04-24 Havoc Pennington <hp@redhat.com>
3164 * bus/dispatch.c: somehow missed some name_is
3166 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3167 (_dbus_timeout_set_interval): new
3169 * bus/connection.c (bus_connections_setup_connection): record time
3170 when each connection is first set up, and expire them after the
3171 auth timeout passes.
3173 2003-04-24 Havoc Pennington <hp@redhat.com>
3175 * dbus/dbus-message.c (dbus_message_name_is): rename
3176 (dbus_message_service_is): rename
3177 (dbus_message_sender_is): rename
3178 (dbus_message_get_service): rename
3180 2003-04-24 Havoc Pennington <hp@redhat.com>
3182 * configure.in: add --enable-checks
3184 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3186 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3187 to use thread locks.
3188 (_dbus_connection_handler_destroyed_locked): move some private
3189 functions into proper docs group
3191 * dbus/dbus-internals.h: add _dbus_return_if_fail,
3192 _dbus_return_val_if_fail
3194 Throughout: use dbus_return_if_fail
3196 2003-04-23 James Willcox <jwillcox@gnome.org>
3199 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3200 (dbus_connection_setup_with_g_main),
3201 (dbus_server_setup_with_g_main):
3202 * glib/test-dbus-glib.c: (main):
3203 * glib/test-thread-client.c: (main):
3204 * glib/test-thread-server.c: (new_connection_callback), (main):
3205 * tools/dbus-monitor.c: (main):
3207 Added a GMainContext argument to dbus_connection_setup_with_g_main()
3208 and dbus_server_setup_with_g_main().
3210 2003-04-20 Havoc Pennington <hp@pobox.com>
3212 * doc/dbus-specification.sgml: document the restrictions on
3213 message and service names
3215 2003-04-22 Havoc Pennington <hp@redhat.com>
3217 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3218 support, and do some code cleanups to share more code and
3219 speed up array marshal/demarshal.
3221 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3223 * configure.in: generate dbus-arch-deps.h
3225 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3228 2003-04-22 Havoc Pennington <hp@redhat.com>
3230 * test/data/valid-messages/opposite-endian.message: fix test
3231 to use proper type for rply field
3233 * test/data/invalid-messages: add tests for below validation
3235 * dbus/dbus-message.c (decode_header_data): validate field types,
3236 and validate that named fields are valid names
3237 (decode_name_field): consider messages in the
3238 org.freedesktop.Local. namespace to be invalid.
3240 * dbus/dbus-string.c (_dbus_string_validate_name): new
3242 2003-04-19 Havoc Pennington <hp@pobox.com>
3244 * bus/driver.c (bus_driver_handle_hello): check limits and
3245 return an error if they are exceeded.
3247 * bus/connection.c: maintain separate lists of active and inactive
3248 connections, and a count of each. Maintain count of completed
3249 connections per user. Implement code to check connection limits.
3251 * dbus/dbus-list.c (_dbus_list_unlink): export
3253 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3254 number of bytes in the message queue for a connection
3256 2003-04-18 Havoc Pennington <hp@pobox.com>
3258 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3260 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3263 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3264 on realloc be sure to update the pointer in the keyring
3266 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3267 offset to avoid writing to unallocated memory
3269 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3270 try the next mechanism, so we properly handle OOM
3272 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3274 (_dbus_keyring_new): fix OOM bug
3275 (_dbus_keyring_new_homedir): always set error; impose a maximum
3276 number of keys we'll load from the file, mostly to speed up the
3277 test suite and make its OOM checks more useful, but also for
3280 * dbus/dbus-auth.c (process_error_server): reject authentication
3281 if we get an error from the client
3282 (process_cancel): on cancel, send REJECTED, per the spec
3283 (process_error_client): send CANCEL if we get an error from the
3286 2003-04-18 Havoc Pennington <hp@pobox.com>
3288 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3291 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3294 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3295 about DBUS_TEST_HOMEDIR once
3297 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3300 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3301 config file so we test the right thing
3303 Throughout: assorted docs improvements
3305 2003-04-18 Havoc Pennington <hp@pobox.com>
3307 * glib/dbus-gmain.c: adapt to watch changes
3309 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3311 * dbus/dbus-server.h: remove dbus_server_handle_watch
3313 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3315 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3316 like DBusTimeout, so we don't need dbus_connection_handle_watch
3319 2003-04-17 Havoc Pennington <hp@redhat.com>
3321 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3322 database usage so it all goes via the DBusUserDatabase cache.
3324 2003-04-17 Havoc Pennington <hp@redhat.com>
3326 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3327 there was an OOM watch we skipped, we always return TRUE so we
3328 iterate again to have a look at it again. Fixes test suite hang.
3329 Code rearrangement also lets us lose some memset and only iterate
3330 over callbacks once.
3332 * bus/driver.c (bus_driver_handle_message): sense of test for
3335 2003-04-16 Havoc Pennington <hp@pobox.com>
3337 * doc/dbus-specification.sgml: make spec say serials are unsigned
3339 * dbus/dbus-message.h: change message serials to unsigned
3341 * dbus/dbus-connection.c: adapt to message serials being unsigned
3343 2003-04-15 Havoc Pennington <hp@pobox.com>
3345 * bus/bus.c: create and keep around a shared DBusUserDatabase
3348 * bus/connection.c (bus_connection_get_groups): don't cache
3349 groups for user in the connection object, since user database
3350 object now does that.
3352 2003-04-16 Havoc Pennington <hp@redhat.com>
3354 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3355 list of size counters
3356 (_dbus_message_loader_putback_message_link): put back a popped link
3358 * dbus/dbus-connection.c
3359 (dbus_connection_set_max_live_messages_size): rename
3361 (dbus_connection_get_outgoing_size): get size of outgoing
3363 (_dbus_connection_set_connection_counter): remove this cruft
3365 2003-04-14 Havoc Pennington <hp@redhat.com>
3367 * dbus/dbus-userdb.c: user database abstraction, mostly to get
3368 caching, but at some point we might want to be able to use a
3371 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3372 SHA1 conf file to test the sha1 auth mechanism, since the regular
3373 test always uses EXTERNAL when available.
3376 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3377 add conf file that requires use of sha1 auth
3379 2003-04-13 Havoc Pennington <hp@pobox.com>
3381 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3382 from Philip Blundell to send messages and monitor them.
3384 2003-04-13 Havoc Pennington <hp@pobox.com>
3386 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3389 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3392 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3393 fix to only recover unused bytes if we're already authenticated
3394 (_dbus_transport_get_is_authenticated): fix to still mark us
3395 authenticated if there are unused bytes.
3397 * bus/dispatch.c: implement security policy checking
3399 * bus/connection.c (bus_transaction_send_from_driver): new
3401 * bus/bus.c (bus_context_check_security_policy): new
3403 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3404 now we just set the DBusError and it gets converted to an error
3407 * bus/connection.c (allow_user_function): enable code using actual
3408 data from the config file
3410 * bus/policy.c (list_allows_user): handle wildcard rules for
3411 user/group connection perms
3413 2003-04-13 Havoc Pennington <hp@pobox.com>
3415 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3417 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3419 * bus/policy.c (bus_policy_append_mandatory_rule)
3420 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3421 (bus_policy_append_group_rule): new functions
3423 2003-04-12 Havoc Pennington <hp@pobox.com>
3425 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3427 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3428 the pid/gid/uid, just for paranoia.
3430 * test/break-loader.c (randomly_do_n_things): find a byte
3431 containing a type code, and randomly change it to a different
3434 2003-04-12 Havoc Pennington <hp@pobox.com>
3436 * bus/policy.h: change BusPolicy to be the thing from the config
3437 file, and rename old BusPolicy to BusClientPolicy
3439 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
3440 match change in how policy works
3442 * dbus/dbus-internals.h: mark assert_not_reached as
3443 __attribute((noreturn))__
3445 2003-04-11 Havoc Pennington <hp@redhat.com>
3447 * doc/dbus-specification.sgml: fix a spot with the wrong name for
3448 the broadcast service. Use boolean return for ServiceExists.
3450 2003-04-11 Havoc Pennington <hp@redhat.com>
3452 * configure.in: add another directory to look for qt in.
3454 2003-04-11 Havoc Pennington <hp@redhat.com>
3456 * AUTHORS: add Colin Walters
3458 2003-04-11 Havoc Pennington <hp@redhat.com>
3464 2003-04-11 Havoc Pennington <hp@redhat.com>
3466 * bus/messagebus.in: remove pid file when stopping the
3467 message bus, since the bus won't have privileges to remove it
3470 2003-04-11 Havoc Pennington <hp@redhat.com>
3472 * bus/bus.c (bus_context_new): move credentials change after
3475 2003-04-11 Havoc Pennington <hp@pobox.com>
3477 * test/decode-gcov.c: add "below average functions" to the
3478 coverage report, and change how some of the code works.
3480 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
3481 not in the coverage stats.
3483 * test/test-service.c (main): use _dbus_verbose not fprintf in a
3484 couple places so running the test suite doesn't result in megaspam.
3486 2003-04-11 Havoc Pennington <hp@pobox.com>
3488 * bus/dispatch.c (check_existent_service_activation): accept a no
3489 memory error in a place we didn't before
3491 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
3492 in case the first one failed," since the test suite is less
3495 2003-04-10 Havoc Pennington <hp@pobox.com>
3497 * bus/dispatch.c (check_segfault_service_activation): add test
3498 for launching an executable that just crashes.
3500 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
3501 don't leave a million cores. We'll see how portable this is.
3503 2003-04-10 Havoc Pennington <hp@pobox.com>
3505 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
3506 the possible parent failures before we fork, so that we don't
3507 fail to create a babysitter after creating the child.
3509 * bus/activation.c (bus_activation_activate_service): kill child
3510 if we don't successfully complete the activation.
3512 2003-04-10 Havoc Pennington <hp@redhat.com>
3514 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
3515 the connection if it's disconnected
3517 * bus/activation.c (bus_activation_service_created): use new
3518 transaction features to roll back removal of pending activation if
3519 we don't successfully create the service after all. Don't remove
3520 pending activation if the function fails.
3522 * dbus/dbus-list.c (_dbus_list_insert_before_link)
3523 (_dbus_list_insert_after_link): new code to facilitate
3526 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
3527 new functionality, so we can preallocate the ability to insert
3530 * bus/connection.c (bus_transaction_add_cancel_hook): new function
3531 allowing us to put custom hooks in a transaction to be used for
3532 cancelling said transaction
3534 * doc/dbus-specification.sgml: add some discussion of secondary
3535 service owners, and disallow zero-length service names
3537 * bus/services.c (bus_registry_acquire_service): new function,
3538 splits out part of bus_driver_handle_acquire_service() and fixes
3539 a bug where we didn't remove the service doing the acquiring
3540 from the secondary queue if we failed to remove the current owner
3541 from the front of the queue.
3543 2003-04-10 Alexander Larsson <alexl@redhat.com>
3545 * doc/dbus-specification.sgml:
3546 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
3548 2003-04-10 Alexander Larsson <alexl@redhat.com>
3553 Added files to cvsignore
3555 * dbus/dbus-message.h:
3556 * dbus/dbus-message.c: (dbus_message_iter_get_named):
3557 Make get_named() take two out argument and return a boolean.
3558 (dbus_message_iter_get_args_valist):
3559 Update usage of get_named().
3560 (dbus_message_iter_append_byte):
3562 (dbus_message_iter_append_named)
3564 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
3567 2003-04-10 Alexander Larsson <alexl@redhat.com>
3569 * dbus/dbus-marshal.[ch]:
3570 Add array_type_pos argument to _dbus_marshal_validate_arg.
3571 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
3573 * dbus/dbus-message.[ch]:
3574 Multi-dimensional arrays have full type specification in the
3575 outermost array. Iter code re-arranged to handle this.
3576 Added some more iter tests.
3578 * doc/dbus-specification.sgml:
3581 Update new array encoding description.
3582 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
3584 * test/data/invalid-messages/array-with-mixed-types.message:
3585 * test/data/valid-messages/array-of-array-of-uint32.message:
3586 Change to the new array format.
3588 * test/data/invalid-messages/too-short-dict.message:
3591 * test/data/valid-messages/recursive-types.message:
3592 Fix up and extend test.
3594 2003-04-10 Havoc Pennington <hp@pobox.com>
3596 * bus/dispatch.c: lots of fixes
3598 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
3599 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
3600 that was crack, broke the test service.
3602 * dbus/dbus-transport.c (_dbus_transport_open): fix error
3603 handling to avoid piling up errors if we get a failure on the
3606 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
3607 pid in assertion failures.
3609 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
3610 to some fixed size of file descriptor array. Don't return TRUE
3611 anytime a timeout exists, that led to lots of busy loop silliness
3614 2003-04-09 Havoc Pennington <hp@redhat.com>
3616 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
3617 I'd checked this in earlier but hadn't.
3619 2003-04-09 Havoc Pennington <hp@redhat.com>
3621 * bus/dispatch.c (bus_dispatch_test): get a bit further through
3622 the activation test (man this is getting old!)
3624 2003-04-09 Havoc Pennington <hp@redhat.com>
3626 * test/test-utils.c: use dispatch status function to fix this up
3628 * bus/connection.c (connection_watch_callback): don't dispatch
3630 (connection_timeout_callback): don't dispatch from here
3631 (bus_connections_setup_connection): set the dispatch status function
3632 (bus_connection_disconnected): unset it
3634 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
3635 used to add a connection to be dispatched
3636 (_dbus_loop_iterate): do the dispatching at the end of each
3639 * dbus/dbus-connection.c
3640 (dbus_connection_set_dispatch_status_function): new function
3641 allowing us to fix up main loop usage
3642 (_dbus_connection_last_unref): free all the various function
3644 (dbus_connection_dispatch): call the DispatchStatusFunction
3645 whenever this function returns
3646 (dbus_connection_handle_watch): call DispatchStatusFunction
3647 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
3648 (reply_handler_timeout): call DispatchStatusFunction
3649 (dbus_connection_flush): call DispatchStatusFunction
3651 2003-04-09 Havoc Pennington <hp@redhat.com>
3653 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
3656 * bus/dispatch.c (check_service_activated): fix bug in test
3658 * dbus/dbus-mainloop.c (check_timeout): fix this up
3660 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
3661 verbose output so we can sort out output from different processes,
3662 e.g. in the activation case.
3664 2003-04-08 Colin Walters <walters@gnu.org>
3666 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
3668 (bus_context_new): Set it.
3669 (bus_context_unref): Use it to delete the pid file.
3671 2003-04-08 Havoc Pennington <hp@redhat.com>
3673 * test/data/invalid-messages/array-with-mixed-types.message:
3674 regression test that fails for the moment
3676 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
3677 tests for convenience
3679 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
3680 array of nil, it broke things.
3682 * test/data/invalid-messages/array-of-nil.message: regression test
3684 * test/data/valid-messages/array-of-array-of-uint32.message:
3685 happened to write this so added it to suite
3687 2003-04-08 Havoc Pennington <hp@redhat.com>
3689 * bus/driver.c (bus_driver_handle_acquire_service): init
3690 retval/reply before checking name
3692 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
3693 recursion depth argument
3695 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
3696 in the public struct for future extension
3698 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
3701 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
3704 * doc/dbus-specification.sgml: fix typo
3706 2003-04-08 Alexander Larsson <alexl@redhat.com>
3708 Implemented recursive types, named types and new-style iters
3711 * glib/test-thread-client.c: (thread_func):
3712 * glib/test-thread-server.c: (handle_test_message):
3713 * test/test-service.c: (handle_echo):
3722 * dbus/dbus-internals.c: (_dbus_type_to_string):
3723 Update for new types.
3725 * dbus/dbus-marshal.[ch]:
3726 Implement recursive types and the new marshalling format.
3727 Remove hardcoded dict marshalling.
3728 Marshal named types.
3730 * dbus/dbus-message-builder.c:
3732 Remove references to old types
3734 * dbus/dbus-message.[ch]:
3735 New non-refcounted iter API that supports recursive iters.
3736 Use iters for appending, including support for recursive
3738 Add byte and named type support.
3739 Update everything to new marshalling formats.
3740 Add tests for new API.
3742 * dbus/dbus-protocol.h:
3743 Remove old array types.
3744 Add types: BYTE, ARRAY, DICT, NAMED
3746 * dbus/dbus-string.c:
3747 * dbus/dbus-sysdeps.c:
3748 Make parse_double locale safe.
3750 * dbus/dbus-test-main.c:
3756 * doc/dbus-specification.sgml:
3759 * test/data/incomplete-messages/missing-body.message:
3760 * test/data/invalid-messages/bad-boolean.message:
3761 * test/data/invalid-messages/bad-boolean-array.message:
3762 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
3763 * test/data/invalid-messages/boolean-has-no-value.message-raw:
3764 * test/data/invalid-messages/too-short-dict.message:
3765 * test/data/valid-messages/dict-simple.message:
3766 * test/data/valid-messages/dict.message:
3767 * test/data/valid-messages/emptiness.message:
3768 * test/data/valid-messages/lots-of-arguments.message:
3769 * test/data/valid-messages/no-padding.message:
3770 * test/data/valid-messages/recursive-types.message:
3771 Add missing NAME fields
3772 Fix up dicts & arrays
3774 * test/data/invalid-messages/dict-with-nil-value.message:
3775 Removed, this is not invalid anymore.
3777 * test/data/valid-messages/recursive-types.message:
3778 Add new test for deeply recursive types.
3780 2003-04-07 Havoc Pennington <hp@pobox.com>
3782 * bus/driver.c (bus_driver_handle_acquire_service): return an
3783 error if you try to acquire a service that starts with ':'
3785 2003-04-07 Havoc Pennington <hp@redhat.com>
3787 * doc/dbus-specification.sgml: require that base service names
3788 start with ':' and that the base service is created/deleted
3789 as first and last things a connection does on the bus
3791 * bus/dispatch.c (check_existent_service_activation): lots more
3792 work on the activation test; it doesn't fully pass yet...
3794 * test/test-service.c (main): fix so we don't memleak the
3795 connection to the message bus
3796 (filter_func): accept a message asking us to exit
3798 2003-04-06 Havoc Pennington <hp@pobox.com>
3800 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
3803 * configure.in: fixes to Qt detection from Colin Walters
3805 * doc/Makefile.am: Only remove generated docbook dirs if they
3806 exist, from Colin Walters
3808 * dbus/dbus-bus.c: change how we set well-known connections to
3809 NULL, so that it works if a single connection is stored in
3810 two well-known array slots.
3812 * test/Makefile.am: remove a lot of stuff that isn't immediately
3813 useful, it's in CVS history if we want it.
3815 * test/test-service.c: use dbus-mainloop instead of that
3818 2003-04-06 Havoc Pennington <hp@pobox.com>
3820 * dbus/Makefile.am: split lists of sources into stuff that goes in
3821 the library, util functions that go in the lib and are also used
3822 elsewhere, and util functions that are used in tests/daemon but
3823 don't go in the lib.
3825 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
3826 here so it can be used in test binaries also
3828 2003-04-06 Havoc Pennington <hp@pobox.com>
3830 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
3831 here in the parent process, so we can return an error if it
3832 fails. Also, move some of the code into the child so the parent
3833 is less hosed if we fail midway through.
3835 * bus/bus.c (bus_context_new): move pidfile detection further up
3836 in the function, before we start overwriting sockets and such.
3838 * bus/messagebus.in: adjust this a bit, not sure if it will work.
3840 * configure.in: add --with-system-pid-file and --with-system-socket
3842 2003-04-06 Colin Walters <walters@verbum.org>
3844 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
3846 * bus/system.conf.in: Declare a pidfile.
3848 * bus/bus.c (bus_context_new): Test for an existing pid file, and
3849 create one (if appropriate).
3851 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
3852 (struct BusConfigParser) [pidfile]: New.
3853 (element_type_to_name, merge_included, start_busconfig_child)
3854 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
3855 (bus_config_parser_unref): Free it.
3856 (bus_config_parser_get_pidfile): New function.
3858 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
3860 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
3862 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
3864 * dbus/dbus-sysdeps.h: Prototype it.
3866 2003-04-06 Havoc Pennington <hp@pobox.com>
3868 * bus/bus.c (bus_context_new): print the address in here, rather
3869 than in main(), because we need to do it before forking the daemon
3871 * bus/dispatch.c (send_service_nonexistent_error): set the sender
3872 on the service nonexistent error
3874 * bus/driver.c (bus_driver_handle_acquire_service): set the
3875 sender on the AcquireService reply
3877 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
3878 server also listen on a UNIX socket so services can connect to it.
3880 2003-04-06 Havoc Pennington <hp@pobox.com>
3882 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
3883 so it detects deadlocks and also we actually init threads when
3886 2003-04-06 Havoc Pennington <hp@pobox.com>
3888 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3889 save the domain socket name, and unlink it when we disconnect the
3890 server. Means that at least when we exit normally, we won't leave
3891 a bunch of junk in /tmp
3893 * dbus/dbus-transport-unix.c
3894 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
3895 memory management). (I was making a real change here but then
3898 2003-04-06 Havoc Pennington <hp@pobox.com>
3900 * bus/bus.c (bus_context_new): fix wrong handling of
3901 server_data_slot_unref() in the error case.
3903 * dbus/dbus-internals.h (_dbus_assert): change so it passes
3904 "(condition) != 0" to _dbus_real_assert so that
3905 "_dbus_assert (pointer)" doesn't cause a warning
3907 * bus/main.c (main): accept --print-address option to print out
3908 the message bus address
3910 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
3912 * dbus/dbus-transport.c (_dbus_transport_open): special error for
3913 "tmpdir" option to unix: address on client side
3915 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
3918 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
3919 we can use to create sockets in the test suite.
3921 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
3922 cleanly. To be used for testing.
3924 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
3926 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
3928 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3929 handle trying to call this when there's no servers active
3931 2003-04-05 Havoc Pennington <hp@pobox.com>
3937 2003-04-05 Havoc Pennington <hp@pobox.com>
3939 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
3940 crash on startup. Need to get "try starting the daemon"
3941 in the test suite I guess. ;-)
3943 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
3944 tracked the number of open connections; it's better done in
3945 application-specific code as you want it to span all servers etc.
3947 2003-04-05 Havoc Pennington <hp@pobox.com>
3949 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
3950 patch from Colin Walters
3952 2003-04-05 Havoc Pennington <hp@pobox.com>
3954 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
3955 reality; in fact multiple mechanisms are allowed.
3957 * dbus/dbus-internals.c (_dbus_real_assert)
3958 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
3959 _dbus_assert_not_reached() into functions, so that they don't show
3960 up in basic block counts for test coverage, and don't use up as
3961 much disk space. Does mean slower execution speed though, so
3962 assumes --disable-asserts is the normal production case.
3964 2003-04-05 Havoc Pennington <hp@pobox.com>
3966 * test/Makefile.am (dist-hook): also dist *.in files
3972 2003-04-05 Havoc Pennington <hp@pobox.com>
3974 * dbus/dbus-string.c: docs warning
3976 * dbus/dbus-spawn.c: missing docs
3978 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
3980 2003-04-05 Havoc Pennington <hp@pobox.com>
3982 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
3985 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
3986 to -1 once we've reaped the babysitter
3987 (_dbus_babysitter_handle_watch): do as much work as we can, not
3990 * bus/activation.c: add code using DBusBabysitter so that we
3991 handle it when a service fails to start up properly.
3992 (bus_activation_service_created): don't remove the activation
3993 entries as we go, just let them get removed when we free the pending
3994 activation. Unref reply messages after sending them.
3996 2003-04-05 Havoc Pennington <hp@pobox.com>
3998 * test/decode-gcov.c (main): print per-directory stats in the report
4000 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4002 2003-04-05 Havoc Pennington <hp@pobox.com>
4004 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4006 * test/decode-gcov.c: hack up a little program to suck data
4007 out of gcov files. Yes this is sort of silly.
4009 * configure.in: define something in config.h and do an
4010 AM_CONDITIONAL when gcov is enabled
4012 2003-04-04 Havoc Pennington <hp@redhat.com>
4014 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4015 return a "babysitter" object that is used to monitor the status of
4016 the spawned process and reap it when required.
4018 * test/test-segfault.c, test/test-exit.c,
4019 test/test-sleep-forever.c: binaries that do various lame things,
4020 used in the test suite.
4022 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4024 2003-04-03 Havoc Pennington <hp@pobox.com>
4026 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4027 in preparation for modifying it, dbus-sysdeps is getting
4030 2003-04-03 Havoc Pennington <hp@redhat.com>
4032 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4035 * bus/*.[hc]: adapt to mainloop change
4037 2003-04-03 Havoc Pennington <hp@redhat.com>
4039 * bus/activation.c (load_directory): fix up memleaks
4040 (bus_activation_entry_free): free the entry
4042 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4043 we get one from the message bus; fix memleaks.
4045 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4047 2003-04-03 Havoc Pennington <hp@pobox.com>
4049 * bus/config-parser.c (bus_config_parser_unref): free
4050 list of mechanisms, bug discovered by test suite enhancements
4051 (putting system.conf and session.conf into suite)
4053 * test/Makefile.am, test/test-service.c: add placeholder for a
4054 test service that we'll activate as part of test suite. Doesn't
4057 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4058 setting NULL value, and use system malloc not dbus_malloc()
4059 when we have unavoidable memleakage.
4061 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4062 didn't work, and support DBUS_BUS_ACTIVATION.
4064 * bus/activation.c (child_setup): pass our well-known bus type to
4067 * bus/config-parser.c: support <type> to specify well-known type
4069 * doc/dbus-specification.sgml: document the env variables to
4070 locate well-known buses and find service activator
4072 2003-04-02 Havoc Pennington <hp@redhat.com>
4074 * test/Makefile.am (all-local): add a rule to copy tests to
4075 builddir, so we can have generated tests. Use this to remove the
4076 silly hack for testing system.conf and session.conf. Will use this
4077 shortly to generate .service files pointing to test binaries.
4079 2003-04-02 Havoc Pennington <hp@redhat.com>
4081 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4082 current alloc and needed new length, not max of the doubled
4083 allocation and needed new length. Also, when building tests,
4084 don't do the double-allocation stuff, just realloc every time.
4086 2003-04-02 Havoc Pennington <hp@redhat.com>
4088 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4090 (_dbus_string_get_dirname): new
4091 (_dbus_sysdeps_test): new
4092 (_dbus_directory_open): include dirnames in error messages
4094 * bus/config-parser.c: interpret <include> and <includedir> and
4095 <servicedir> relative to config file location if the given
4096 filename is not absolute.
4098 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4100 2003-04-02 Havoc Pennington <hp@redhat.com>
4102 * bus/connection.c (bus_transaction_send_error_reply): set sender
4103 service for the error, and unref the reply on success
4105 * bus/activation.c: convert to use BusTransaction so OOM can be
4107 (bus_activation_service_created): set sender of the message
4109 2003-04-01 Havoc Pennington <hp@redhat.com>
4111 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4112 <includedir> (at least mostly)
4114 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4115 first, then the user ID
4117 2003-04-01 Havoc Pennington <hp@pobox.com>
4119 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4122 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4124 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4126 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4127 socket 0777, and unlink any existing socket.
4129 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4130 the configuration file so specifies; set up auth mechanism
4133 * bus/config-parser.c (bus_config_parser_content): add support
4134 for <fork> option and fill in code for <auth>
4136 * bus/system.conf.in: add <fork/> to default configuration,
4137 and limit auth mechanisms to EXTERNAL
4139 * doc/config-file.txt (Elements): add <fork>
4141 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4142 (_dbus_change_identity): new function
4144 2003-03-31 Havoc Pennington <hp@redhat.com>
4146 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4147 (_dbus_listen_unix_socket): fix off-by-one error in null
4148 termination spotted by Nalin
4150 2003-03-31 Havoc Pennington <hp@redhat.com>
4152 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4153 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4154 having a real home directory available.
4156 2003-03-31 Havoc Pennington <hp@redhat.com>
4158 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4160 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4162 * configure.in: add support for specifying a style of init script
4165 2003-03-31 Havoc Pennington <hp@redhat.com>
4167 Fix some annoying DBusString API and fix all affected code.
4169 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4171 (_dbus_string_get_data): change to return string instead of using
4173 (_dbus_string_get_const_data): ditto
4174 (_dbus_string_get_data_len): ditto
4175 (_dbus_string_get_const_data_len): ditto
4177 2003-03-31 Havoc Pennington <hp@redhat.com>
4179 * bus/main.c (main): fix up the command line arguments to be nicer
4181 2003-03-31 Havoc Pennington <hp@redhat.com>
4183 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4184 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4185 final location that lands in the config file
4187 * bus/config-loader-expat.c (bus_config_load): fix type of
4190 * doc/TODO: remove TODO item for dbus_bus_get()
4192 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4194 2003-03-31 Havoc Pennington <hp@pobox.com>
4196 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4197 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4198 argument since they are always client side
4200 * dbus/dbus-server.c (dbus_server_get_address): new function
4202 * bus/main.c (main): take the configuration file as an argument.
4204 * test/data/valid-config-files/debug-allow-all.conf: new file to
4205 use with dispatch.c tests for example
4207 * bus/test-main.c (main): require test data dir
4209 * bus/bus.c (bus_context_new): change this to take a
4210 configuration file name as argument
4212 * doc/config-file.txt (Elements): add <servicedir>
4214 * bus/system.conf, bus/session.conf: new files
4216 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4217 well-known socket if none set
4219 * configure.in: create system.conf and session.conf
4221 2003-03-30 Havoc Pennington <hp@pobox.com>
4223 * bus/config-parser.c: hacking
4225 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4226 to shut down, since it could cause weirdness with the DBusList
4229 * dbus/dbus-list.c (_dbus_list_test): add tests for the
4230 link-oriented stack routines
4231 (alloc_link): free the mempool if the first alloc from it fails
4233 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4235 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4237 (_dbus_string_skip_white): new
4239 * doc/config-file.txt (Elements): add <includedir>
4241 2003-03-28 Havoc Pennington <hp@pobox.com>
4243 * dbus/dbus-string.c (_dbus_string_copy_data_len)
4244 (_dbus_string_copy_data): new functions
4246 2003-03-28 Anders Carlsson <andersca@codefactory.se>
4248 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4252 * dbus/dbus-memory.c:
4255 2003-03-28 Havoc Pennington <hp@pobox.com>
4257 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4258 I think it may have just been superstition. Not sure.
4260 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4261 failures that were not being handled.
4263 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4265 * dbus/dbus-memory.c: add ability to set number of mallocs in a
4266 row that will fail on out-of-memory.
4268 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4269 function for testing out-of-memory handling.
4271 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4272 allocation functions, they do map exactly to the expat ones.
4274 2003-03-27 Havoc Pennington <hp@redhat.com>
4276 * bus/config-loader-libxml.c (bus_config_load): add another error
4279 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4282 Add note about automatic service activation.
4284 * doc/dbus-specification.sgml:
4285 Rename the specification and clarify a few things.
4287 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4290 * dbus/dbus-address.c:
4292 * dbus/dbus-marshal.c:
4293 * dbus/dbus-server-debug-pipe.c:
4294 * dbus/dbus-transport-unix.c:
4295 Fix documentation warnings.
4297 2003-03-26 Havoc Pennington <hp@pobox.com>
4299 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4300 after every test so it's quick and easy to see which leaked, and
4301 so we test multiple dbus_shutdown() calls
4303 * configure.in: change configure.in XML stuff to also support
4306 * config-loader-libxml.c: some hacking
4308 * config-loader-expat.c: some hacking
4310 * config-parser.c: some hacking, plus tests
4312 2003-03-25 Havoc Pennington <hp@redhat.com>
4314 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4316 * configure.in: add --with-xml option to specify XML library,
4317 right now only libxml is supported.
4319 * bus/config-loader-libxml.c, config-parser.c: sync some minor
4320 nonworking code between home and work, still just stubs
4322 2003-03-24 Havoc Pennington <hp@redhat.com>
4324 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4327 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4328 NULL argument for "message" if the error is a well-known one,
4329 fill in a generic message in this case.
4331 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4334 * bus/test.c (bus_test_flush_bus): add
4336 * bus/policy.c (bus_policy_test): test code stub
4338 2003-03-24 Havoc Pennington <hp@pobox.com>
4340 * bus/connection.c (bus_connections_setup_connection): set up
4341 the "can this user connect" function, but it always returns
4342 TRUE until we have a config file parser so we can have a config
4343 file that allows connections.
4345 2003-03-23 Havoc Pennington <hp@pobox.com>
4347 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4348 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4349 the mutex, so we can check for proper memory management
4352 * dbus/dbus-dataslot.c: remove the mutex from
4353 DBusDataSlotAllocator and lock it manually when using it,
4354 to simplify fitting it into the global slots framework.
4356 * dbus/dbus-threads.c (init_static_locks): rework how we're
4357 handling global locks so they are easily shut down.
4359 * bus/policy.c (bus_policy_append_rule): fix
4361 * bus/test-main.c (main): check for memleaks
4363 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4364 test suite check for memleaks
4366 * dbus/dbus-memory.c: add support in test mode for tracking
4367 number of outstanding blocks
4369 2003-03-23 Havoc Pennington <hp@pobox.com>
4371 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4374 * dbus/dbus-hash.h: add ULONG hash keys
4376 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4377 (_dbus_get_group_id): new function
4379 2003-03-20 Havoc Pennington <hp@redhat.com>
4381 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4383 (dbus_connection_get_unix_user): new function
4385 2003-03-20 Havoc Pennington <hp@pobox.com>
4387 * bus/connection.c (bus_connection_send_oom_error): assert that
4388 message has a sender
4389 (connection_execute_transaction): ditto
4390 (bus_connection_preallocate_oom_error): fix to set the sender, and
4391 set recipient to the destination service, not the bus driver
4393 * bus/policy.c: hacking
4395 * dbus/dbus-message.c (dbus_message_service_is): new function
4396 (dbus_message_sender_is): new
4398 2003-03-19 Havoc Pennington <hp@redhat.com>
4400 * bus/policy.c: start sketching code for policy restrictions on
4401 what connections can do.
4403 2003-03-18 Havoc Pennington <hp@redhat.com>
4405 * doc/TODO: some notes on high-level todo items. Little nitpick
4406 stuff is all in @todo, so no need to add it here.
4408 * doc/config-file.txt: some notes on how config file might look
4410 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4416 2003-03-17 Havoc Pennington <hp@redhat.com>
4418 * dbus/dbus-internals.h: add gcc attributes so that
4419 our printf-style functions warn on bad arguments to
4422 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4425 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4428 2003-03-17 Havoc Pennington <hp@redhat.com>
4430 * bus/test-main.c (main): make it print something as it runs
4431 so make check doesn't look stuck
4433 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
4434 from CVS, now obsolete
4436 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4438 * bus/dispatch.c: (bus_dispatch):
4439 Refetch the service name since it may have been reallocated
4440 when dbus_message_set_sender was called.
4442 * dbus/dbus-sysdeps.c: (_dbus_accept):
4443 Add address and address length variables and use them to stop
4444 valgrind from complaining.
4446 2003-03-17 Havoc Pennington <hp@pobox.com>
4448 All tests pass, no memleaks, no valgrind complaints.
4450 * bus/test.c: refcount handler_slot
4452 * bus/connection.c (bus_connections_new): refcount
4453 connection_data_slot
4455 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
4456 bytes so that auth scripts pass.
4458 * bus/dispatch.c: init message_handler_slot so it gets allocated
4461 * bus/dispatch.c (message_handler_slot_ref): fix memleak
4463 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
4464 dealloc server_pipe_hash when no longer used for benefit of
4467 * dbus/dbus-auth.c (process_command): memleak fix
4469 * bus/dispatch.c (check_hello_message): memleak fix
4471 2003-03-16 Havoc Pennington <hp@pobox.com>
4473 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
4475 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4477 * bus/activation.c (bus_activation_activate_service): Append
4478 the pending activation entry to the list of pending activations.
4480 2003-03-16 Havoc Pennington <hp@pobox.com>
4482 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
4485 * dbus/dbus-address.c (create_entry): fix OOM handling when
4486 failing to alloc entry->method
4488 2003-03-16 Havoc Pennington <hp@pobox.com>
4490 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
4493 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4494 add some missing dbus_set_result
4496 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
4497 alloc the DBusMessageHandler
4499 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
4500 the transport here, since we call this from the finalizer; it
4501 resulted in a double-finalize.
4503 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
4504 where we tried to use transport->connection that was NULL,
4505 happened when transport was disconnected early on due to OOM
4507 * bus/*.c: adapt to handle OOM for watches/timeouts
4509 * dbus/dbus-transport-unix.c: port to handle OOM during
4512 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
4513 reference to unused bytes instead of a copy
4515 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
4518 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
4521 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
4524 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4526 * doc/dbus-specification.sgml:
4527 Document reply message for ActivateService.
4529 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4531 * bus/activation.c: (bus_pending_activation_entry_free),
4532 (bus_pending_activation_free), (bus_activation_new),
4533 (bus_activation_unref), (bus_activation_service_created),
4534 (bus_activation_activate_service):
4536 * bus/bus.c: (bus_context_new):
4537 * bus/desktop-file.c: (new_section):
4538 * bus/driver.c: (bus_driver_send_service_deleted),
4539 (bus_driver_handle_activate_service):
4540 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
4542 * dbus/dbus-connection.c:
4543 (dbus_connection_send_with_reply_and_block):
4544 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4545 * dbus/dbus-protocol.h:
4546 Make activation work better. Now pending activations will be queued
4547 and the daemon won't try to activate services that are already registered.
4549 2003-03-16 Havoc Pennington <hp@pobox.com>
4551 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
4554 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
4555 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
4557 2003-03-16 Havoc Pennington <hp@pobox.com>
4559 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
4560 this. always run the test suite before commit...
4562 * bus/*: adapt to DBusConnection API changes
4564 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
4565 requires renaming stuff to avoid dbus_connection_dispatch name
4568 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
4571 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4572 separate from _dbus_message_loader_return_buffer()
4574 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
4575 this, because it's now always broken to use; the number of
4576 messages in queue vs. the number still buffered by the message
4577 loader is undefined/meaningless. Should use
4578 dbus_connection_get_dispatch_state().
4579 (dbus_connection_dispatch): rename from
4580 dbus_connection_dispatch_message
4582 2003-03-16 Havoc Pennington <hp@pobox.com>
4584 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
4587 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4589 * dbus/dbus-connection.c:
4590 (dbus_connection_send_with_reply_and_block):
4591 Decrease connection->n_incoming when removing an entry
4593 * dbus/dbus-dict.c: (dbus_dict_entry_free),
4594 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4595 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4596 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
4597 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
4598 (dbus_dict_get_byte_array):
4599 Handle NULL arrays and strings. Also add support for byte arrays.
4601 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
4602 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
4603 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4604 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4605 (_dbus_demarshal_dict), (demarshal_and_validate_len),
4606 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
4607 * dbus/dbus-marshal.h:
4608 Add support for marshalling and demarshalling empty arrays and strings.
4610 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4611 (dbus_message_append_string_array),
4612 (dbus_message_iter_get_boolean),
4613 (dbus_message_iter_get_boolean_array),
4614 (dbus_message_iter_get_int32_array),
4615 (dbus_message_iter_get_uint32_array),
4616 (dbus_message_iter_get_double_array),
4617 (dbus_message_iter_get_byte_array),
4618 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
4619 (check_message_handling):
4620 Add support for getting empty arrays and dicts.
4622 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
4623 Don't do any validation at all for now, that's better than just checking
4626 * test/data/valid-messages/emptiness.message:
4627 New test message with lots of empty arrays.
4629 2003-03-16 Havoc Pennington <hp@pobox.com>
4631 * dbus/dbus-connection.c
4632 (_dbus_connection_queue_received_message_link): new function that
4633 can't fail due to OOM
4635 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
4636 new function pops a message together with a list link
4639 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
4640 message queuing functions to avoid needing to alloc memory
4642 2003-03-16 Havoc Pennington <hp@pobox.com>
4644 Oops - test code was only testing failure of around 30 of the
4645 mallocs in the test path, but it turns out there are 500+
4646 mallocs. I believe this was due to misguided linking setup such
4647 that there was one copy of dbus_malloc etc. in the daemon and one
4648 in the shared lib, and only daemon mallocs were tested. In any
4649 case, the test case now tests all 500+ mallocs, and doesn't pass
4650 yet, though there are lots of fixes in this patch.
4652 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4653 this so that it doesn't need to allocate memory, since it
4654 has no way of indicating failure due to OOM (and would be
4655 annoying if it did).
4657 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
4659 * bus/Makefile.am: rearrange to create two self-contained
4660 libraries, to avoid having libraries with overlapping symbols.
4661 that was resulting in weirdness, e.g. I'm pretty sure there
4662 were two copies of global static variables.
4664 * dbus/dbus-internals.c: move the malloc debug stuff to
4667 * dbus/dbus-list.c (free_link): free list mempool if it becomes
4670 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
4672 * dbus/dbus-address.c (dbus_parse_address): free list nodes
4675 * bus/dispatch.c (bus_dispatch_add_connection): free
4676 message_handler_slot when no longer using it, so
4677 memory leak checkers are happy for the test suite.
4679 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
4681 * bus/bus.c (new_connection_callback): disconnect in here if
4682 bus_connections_setup_connection fails.
4684 * bus/connection.c (bus_connections_unref): fix to free the
4686 (bus_connections_setup_connection): if this fails, don't
4687 disconnect the connection, just be sure there are no side
4690 * dbus/dbus-string.c (undo_alignment): unbreak this
4692 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
4694 (_dbus_auth_new): fix the order in which we free strings
4697 * bus/connection.c (bus_connection_disconnected): fix to
4698 not send ServiceDeleted multiple times in case of memory
4701 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
4702 get the base service name
4703 (dbus_bus_register_client): don't return base service name,
4704 instead store it on the DBusConnection and have an accessor
4706 (dbus_bus_register_client): rename dbus_bus_register()
4708 * bus/dispatch.c (check_hello_message): verify that other
4709 connections on the bus also got the correct results, not
4710 just the one sending hello
4712 2003-03-15 Havoc Pennington <hp@pobox.com>
4714 Make it pass the Hello handling test including all OOM codepaths.
4715 Now to do other messages...
4717 * bus/services.c (bus_service_remove_owner): fix crash when
4718 removing owner from an empty list of owners
4719 (bus_registry_ensure): don't leave service in the list of
4720 a connection's owned services if we fail to put the service
4723 * bus/connection.c (bus_connection_preallocate_oom_error): set
4724 error flag on the OOM error.
4726 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4727 handle _dbus_transport_set_connection failure
4729 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
4730 to create watches up front and simply enable/disable them as
4732 (unix_connection_set): this can now fail on OOM
4734 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
4735 of enabling/disabling a watch or timeout.
4737 * bus/loop.c (bus_loop_iterate): don't touch disabled
4740 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
4742 2003-03-15 Havoc Pennington <hp@pobox.com>
4744 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
4745 write useful test code, after all that futzing around ;-)
4747 Test does not yet pass because we can't handle OOM in
4748 _dbus_transport_messages_pending (basically,
4749 dbus_connection_preallocate_send() does not prealloc the write
4750 watch). To fix this, I think we need to add new stuff to
4751 set_watch_functions, namely a SetEnabled function so we can alloc
4752 the watch earlier, then enable it later.
4754 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
4755 dbus-memory.c to the convenience lib
4757 * bus/test.c: rename some static functions to keep them clearly
4758 distinct from stuff in connection.c. Handle client disconnection.
4760 2003-03-14 Havoc Pennington <hp@pobox.com>
4762 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
4763 transport, tests more of the real codepath. Set up clients
4764 with bus_setup_debug_client.
4766 * bus/test.c (bus_setup_debug_client): function to set up debug
4767 "clients" on the main loop
4769 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
4772 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
4775 * dbus/dbus-server-debug.c: support a debug server based on pipes
4777 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
4778 (_dbus_close): new function
4780 * configure.in: check for socketpair
4782 2003-03-14 Havoc Pennington <hp@redhat.com>
4784 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
4787 * dbus/dbus-transport-debug.c: rework this a good bit to be
4788 less complicated. hopefully still works.
4790 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
4793 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
4796 * dbus/dbus-message.c (dbus_message_copy): rename from
4797 dbus_message_new_from_message, fix it up to copy
4798 all the message fields, add test case
4800 * bus/dispatch.c (bus_dispatch_test): add some more test code,
4801 not quite passing yet
4803 2003-03-14 Havoc Pennington <hp@pobox.com>
4805 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
4806 until no work remains" in test code. (the large diff here
4807 is just code movement, no actual changes)
4809 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
4810 1, no point waiting around for test code.
4811 (_dbus_server_debug_accept_transport): unref the timeout
4812 after adding it (right?)
4814 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
4816 2003-03-13 Havoc Pennington <hp@redhat.com>
4818 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
4821 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
4824 * dbus/dbus-connection.h: Make AddWatchFunction and
4825 AddTimeoutFunction return a bool so they can fail on out-of-memory
4827 * bus/bus.c (bus_context_new): set up timeout handlers
4829 * bus/connection.c (bus_connections_setup_connection): set up
4832 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
4835 * bus/bus.c (bus_context_new): adapt to changes
4837 * bus/connection.c: adapt to changes
4839 * test/watch.c: adapt to DBusWatch changes
4841 * bus/dispatch.c (bus_dispatch_test): started adding this but
4844 2003-03-14 Anders Carlsson <andersca@codefactory.se>
4846 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
4848 2003-03-13 Havoc Pennington <hp@pobox.com>
4850 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
4851 set up a test framework as for the library
4853 2003-03-12 Havoc Pennington <hp@pobox.com>
4855 Throughout: purge global variables, introduce BusActivation,
4856 BusConnections, BusRegistry, etc. objects instead.
4858 * bus/bus.h, bus/bus.c: introduce BusContext as a global
4861 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
4862 going to redo this a bit differently I think
4864 2003-03-12 Havoc Pennington <hp@redhat.com>
4866 Mega-patch that gets the message bus daemon initially handling
4867 out-of-memory. Work still needed. Also lots of random
4868 moving stuff to DBusError instead of ResultCode.
4870 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
4872 * dbus/dbus-connection.c
4873 (dbus_connection_send_with_reply_and_block): use DBusError
4875 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
4878 * dbus/dbus-connection.c (dbus_connection_send): drop the result
4879 code here, as the only failure possible is OOM.
4881 * bus/connection.c (bus_connection_disconnect):
4882 rename bus_connection_disconnected as it's a notification only
4884 * bus/driver.c (bus_driver_handle_acquire_service): don't free
4885 "name" on get_args failure, should be done by get_args;
4886 don't disconnect client for bad args, just return an error.
4887 (bus_driver_handle_service_exists): ditto
4889 * bus/services.c (bus_services_list): NULL-terminate returned array
4891 * bus/driver.c (bus_driver_send_service_lost)
4892 (bus_driver_send_service_acquired): send messages from driver to a
4893 specific client to the client's unique name, not to the broadcast
4896 * dbus/dbus-message.c (decode_header_data): reject messages that
4897 contain no name field
4898 (_dbus_message_get_client_serial): rename to
4899 dbus_message_get_serial and make public
4900 (_dbus_message_set_serial): rename from set_client_serial
4901 (_dbus_message_set_reply_serial): make public
4902 (_dbus_message_get_reply_serial): make public
4904 * bus/connection.c (bus_connection_foreach): allow stopping
4905 iteration by returning FALSE from foreach function.
4907 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
4908 (dbus_connection_free_preallocated_send)
4909 (dbus_connection_preallocate_send): new API for sending a message
4910 without possibility of malloc failure.
4911 (dbus_connection_send_message): rename to just
4912 dbus_connection_send (and same for whole function family)
4914 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
4916 * dbus/dbus-sysdeps.c (_dbus_exit): new function
4918 * bus/activation.c: handle/return errors
4920 * dbus/dbus-errors.h: add more DBUS_ERROR #define
4922 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
4923 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
4924 (_dbus_result_from_errno): move to this file
4926 2003-03-10 Anders Carlsson <andersca@codefactory.se>
4928 * dbus/dbus-marshal.c:
4929 (_dbus_marshal_set_string):
4930 Take a length argument so we can marshal the correct string
4933 (_dbus_marshal_dict), (_dbus_demarshal_dict),
4934 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
4935 (_dbus_marshal_test):
4936 * dbus/dbus-marshal.h:
4937 Add support for marshalling and demarshalling dicts.
4939 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4940 Add support for TYPE DICT.
4942 * dbus/dbus-message.c: (set_string_field):
4943 Adjust header padding.
4945 (dbus_message_append_args_valist), (dbus_message_append_dict),
4946 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
4947 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
4948 (check_message_handling), (check_have_valid_message):
4949 * dbus/dbus-message.h:
4950 Add functions for setting and getting dicts.
4952 * dbus/dbus-protocol.h:
4958 * doc/dbus-specification.sgml:
4959 Add information about how dicts are marshalled.
4961 * test/data/invalid-messages/dict-with-nil-value.message:
4962 * test/data/invalid-messages/too-short-dict.message:
4963 * test/data/valid-messages/dict-simple.message:
4964 * test/data/valid-messages/dict.message:
4965 Add sample messages containing dicts.
4967 2003-03-08 Anders Carlsson <andersca@codefactory.se>
4969 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
4971 2003-03-07 Anders Carlsson <andersca@codefactory.se>
4974 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
4975 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
4976 (dbus_dict_set_int32), (dbus_dict_set_uint32),
4977 (dbus_dict_set_double), (dbus_dict_set_string),
4978 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4979 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4980 (dbus_dict_set_string_array), (_dbus_dict_test):
4982 Fix according to comments from Havoc.
4984 2003-03-06 Michael Meeks <michael@server.home>
4986 * configure.in: if we don't have kde-config, disable have_qt.
4988 2003-03-07 Anders Carlsson <andersca@codefactory.se>
4993 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
4994 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
4995 (dbus_dict_remove), (dbus_dict_get_value_type),
4996 (dbus_dict_get_keys), (dbus_dict_put_boolean),
4997 (dbus_dict_put_int32), (dbus_dict_put_uint32),
4998 (dbus_dict_put_double), (dbus_dict_put_string),
4999 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5000 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5001 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5002 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5003 (dbus_dict_get_double), (dbus_dict_get_string),
5004 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5005 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5006 (dbus_dict_get_string_array), (_dbus_dict_test):
5008 Add DBusDict implementation
5010 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5014 2003-03-04 Havoc Pennington <hp@pobox.com>
5016 * test/data/auth/*: adapt to changes
5018 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5019 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5022 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5023 more stuff from being in a context name, to make the protocol
5024 simpler to deal with
5026 * dbus/dbus-errors.c (dbus_error_has_name): new function
5027 (dbus_error_is_set): new function
5029 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5030 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5032 * dbus/dbus-connection.c (dbus_connection_flush): also read
5033 messages during a flush operation
5035 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5037 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5039 * configure.in: Check for gethostbyname on Solaris.
5041 * dbus/dbus-transport.c: (_dbus_transport_open):
5042 Remove duplicate "tcp" entry.
5044 * doc/dbus-specification.sgml:
5045 Clarify some things.
5047 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5049 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5050 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5051 (_dbus_keyring_test):
5052 * dbus/dbus-md5.c: (_dbus_md5_compute):
5053 * dbus/dbus-sha.c: (_dbus_sha_compute):
5056 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5058 * README: Add some things.
5060 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5062 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5063 after case DBUS_TYPE_BOOELAN.
5065 2003-03-02 Havoc Pennington <hp@pobox.com>
5067 * test/break-loader.c (randomly_set_extreme_ints): add test that
5068 sets really huge and small integers
5070 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5071 that length of boolean array fits in the string, and that
5072 string has room for boolean value in single-bool case.
5074 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5075 optional value to "ALIGN" command which is what to fill the
5078 * test/data/valid-messages/no-padding.message: add regression
5079 test for the message padding problem
5081 2003-03-02 Havoc Pennington <hp@pobox.com>
5083 * dbus/dbus-message.c (decode_header_data): fix to always init
5084 message_padding, from Benjamin Dauvergne
5086 2003-03-02 Havoc Pennington <hp@pobox.com>
5092 2003-03-01 Joe Shaw <joe@assbarn.com>
5094 * configure.in: Check for "struct cmsgcred" and try to access its
5095 members for BSD-like unices.
5097 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5098 _dbus_read_credentials_unix_socket().
5099 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5100 read() for reading the credential byte off the unix socket. Use
5101 struct cmsgcred on systems that support it.
5103 2003-02-27 Alexander Larsson <alexl@redhat.com>
5107 Make gthreads-2.0 dependency optional. Don't build thread test if
5110 2003-02-27 Havoc Pennington <hp@pobox.com>
5112 * dbus/dbus-connection.c
5113 (dbus_connection_send_message_with_reply_and_block): fix doh!
5114 doh! doh! bug that resulted in never removing a reply from the
5115 queue, no wonder we called get_reply_serial so much ;-)
5117 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5118 and client serial instead of demarshaling them every time
5120 2003-02-27 Havoc Pennington <hp@pobox.com>
5122 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5123 more inlined, using dbus-string-private.h, speeds things up
5126 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5127 when freeing the string
5128 (_dbus_string_steal_data): fix for align offset
5129 (undo_alignment): new function
5131 2003-02-26 Havoc Pennington <hp@redhat.com>
5133 All kinds of audit fixes from Owen, plus initial attempt to
5134 handle unaligned memory returned from malloc.
5136 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5137 leave room for align_offset and nul byte
5138 (fixup_alignment): function to track an align_offset and
5139 ensure real->str is aligned
5140 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5141 to allow a nul byte plus align offset
5142 (_dbus_string_lock): fix overflow issue
5143 (_dbus_string_init_const_len): add assertions on sanity of len,
5144 assign allocated to be ALLOCATION_PADDING larger than len
5145 (set_length): fixup the overflow handling
5146 (_dbus_string_get_data_len): fix overflow in assertion
5147 (open_gap): detect overflow in size of gap to be opened
5148 (_dbus_string_lengthen): add overflow check
5149 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5150 (_dbus_string_append): add overflow check
5151 (_dbus_string_append_unichar): overflow
5152 (_dbus_string_delete): fix overflow in assertion
5153 (_dbus_string_copy_len): overflow in assertion
5154 (_dbus_string_replace_len): overflows in assertions
5155 (_dbus_string_find): change to implement in terms of
5156 _dbus_string_find_to
5157 (_dbus_string_find_to): assorted fixage
5158 (_dbus_string_equal_c_str): assert c_str != NULL,
5159 fix logic so the function works
5160 (_dbus_string_ends_with_c_str): fix overflow thingy
5161 (_dbus_string_base64_encode): overflow fix
5162 (_dbus_string_validate_ascii): overflow
5163 (_dbus_string_validate_nul): overflow
5165 2003-02-26 Havoc Pennington <hp@redhat.com>
5167 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5169 2003-02-26 Alexander Larsson <alexl@redhat.com>
5172 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5174 * dbus/dbus-connection.c:
5175 * dbus/dbus-connection.h:
5176 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5177 Add dbus_connection_set_wakeup_main_function and use it when queueing
5178 incoming and outgoing messages.
5181 * dbus/dbus-dataslot.c:
5182 Threadsafe usage of DBusDataSlotAllocator
5184 * dbus/dbus-message.c: (dbus_message_get_args_iter):
5187 * dbus/dbus-server-unix.c:
5190 * glib/dbus-gmain.c:
5191 Implement the new wakeup functions for glib.
5194 * glib/test-thread-client.c:
5195 * glib/test-thread-server.c:
5196 * glib/test-thread.h:
5197 Initial cut at some thread test code. Not really done yet.
5199 2003-02-26 Havoc Pennington <hp@pobox.com>
5201 * dbus/dbus-connection.c
5202 (dbus_connection_send_message_with_reply_and_block): fix crash
5203 where we ref'd the outgoing message instead of the returned reply
5205 * dbus/dbus-transport-unix.c (do_authentication): check read watch
5206 at the end of this function, so if we didn't need to read for
5207 authentication, we reinstall it for receiving messages
5209 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5210 a NULL sender for peer-to-peer case
5212 * dbus/dbus-transport-unix.c (check_read_watch): handle
5213 !authenticated case correctly
5215 * glib/dbus-gmain.c: add support for DBusServer
5217 * dbus/dbus-server.c: add data slot support
5219 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5220 return values and handle errors
5222 * dbus/dbus-dataslot.c: factor out the data slot stuff from
5225 * Doxyfile.in (INPUT): add glib subdir
5227 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5228 setup_with_g_main instead of hookup_with_g_main; write docs
5230 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5232 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5233 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5234 * dbus/dbus-message.c: (dbus_message_append_boolean),
5235 (dbus_message_append_boolean_array),
5236 (dbus_message_get_args_valist), (_dbus_message_test):
5237 * dbus/dbus-message.h:
5238 * doc/dbus-specification.sgml:
5239 Various fixes as pointed out by Havoc.
5241 * test/data/invalid-messages/bad-boolean-array.message:
5242 * test/data/invalid-messages/bad-boolean.message:
5243 Add invalid boolean value test cases.
5245 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5247 * dbus/dbus-internals.c: (_dbus_type_to_string):
5248 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5249 (_dbus_marshal_validate_arg):
5250 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5251 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5252 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5253 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5254 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5255 (dbus_message_iter_get_double),
5256 (dbus_message_iter_get_boolean_array), (message_iter_test):
5257 * dbus/dbus-message.h:
5258 * dbus/dbus-protocol.h:
5259 * doc/dbus-specification.sgml:
5260 * test/data/valid-messages/lots-of-arguments.message:
5261 Add support for boolean and boolean array types.
5263 2003-02-23 Havoc Pennington <hp@pobox.com>
5265 * dbus/dbus-keyring.c: finish most of this implementation and
5268 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5269 these barf if the error isn't cleared to NULL
5271 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5272 (_dbus_create_directory): new function
5274 * dbus/dbus-errors.c (dbus_set_error): fix warning
5276 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5277 (_dbus_string_hex_decode): new function
5278 (test_hex_roundtrip): test code
5280 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5282 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5284 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5285 the save-to-temp/rename trick to atomically write the new file
5286 (_dbus_string_parse_uint): new function
5288 2003-02-22 Havoc Pennington <hp@pobox.com>
5290 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5292 2003-02-22 Havoc Pennington <hp@pobox.com>
5294 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5295 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5297 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5299 * dbus/test/data/sha-1: add US government test suite for SHA-1
5301 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5303 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5304 Make string arrays NULL-terminated.
5306 * dbus/dbus-memory.c: (dbus_free_string_array):
5307 * dbus/dbus-memory.h:
5308 New function for freeing NULL-terminated string arrays.
5310 * dbus/dbus-message-builder.c: (append_quoted_string),
5311 (_dbus_message_data_load):
5312 Add support for array types.
5314 * dbus/dbus-message.c: (check_message_handling):
5315 Add more types as test cases.
5317 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5318 (_dbus_string_parse_double):
5319 Add the start offset to the end offset.
5321 * test/data/valid-messages/lots-of-arguments.message:
5322 New test message with lots of arguments.
5324 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5326 * dbus/dbus-message.c: (dbus_message_append_nil),
5327 (dbus_message_append_int32), (dbus_message_append_uint32),
5328 (dbus_message_append_double), (dbus_message_append_string),
5329 (dbus_message_append_int32_array),
5330 (dbus_message_append_uint32_array),
5331 (dbus_message_append_double_array),
5332 (dbus_message_append_byte_array),
5333 (dbus_message_append_string_array):
5334 Fix all out-of-memory handling in these functions.
5336 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5338 * dbus/dbus-message.c: (dbus_message_append_nil):
5341 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5343 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5344 (dbus_message_append_nil), (dbus_message_append_int32_array),
5345 (dbus_message_append_uint32_array),
5346 (dbus_message_append_double_array),
5347 (dbus_message_append_byte_array),
5348 (dbus_message_append_string_array), (dbus_message_get_args_valist),
5349 (dbus_message_iter_get_int32_array),
5350 (dbus_message_iter_get_uint32_array),
5351 (dbus_message_iter_get_double_array),
5352 (dbus_message_iter_get_byte_array),
5353 (dbus_message_iter_get_string_array):
5355 * dbus/dbus-message.h:
5356 Add functions for appending and getting arrays.
5358 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5360 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5361 element size at least 8 bytes, fixes mempool tests on
5364 2003-02-20 Alexander Larsson <alexl@redhat.com>
5366 * dbus/dbus-transport-unix.c (unix_do_iteration):
5367 Unlock the connection mutex during a blocking select call.
5368 Add todo about how we need a way to wake up the select.
5370 * dbus/dbus-connection-internal.h:
5371 * dbus/dbus-connection.c:
5372 Add _dbus_connection_lock and _dbus_connection_unlock.
5374 2003-02-19 Havoc Pennington <hp@pobox.com>
5376 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5377 Doxyfile.in, not Doxyfile
5379 * dbus/dbus-keyring.c: do some hacking on this
5381 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5383 * dbus/dbus-errors.c (dbus_set_error_const): do not call
5385 (dbus_set_error): remove dbus_error_init, check for message ==
5386 NULL *before* we sprintf into it, and add @todo about including
5387 system headers in this file
5389 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5391 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5393 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5394 get various bits of user information based on either username
5396 (_dbus_homedir_from_username): new function
5398 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5401 Add check for nonposix getpwnam_r
5403 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5404 Align the pool element size to a sizeof (void *) boundary.
5406 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5407 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5408 General Solaris fixes.
5410 * test/data/valid-messages/simplest-manual.message:
5411 Explicitly state that we want little-endian packing.
5413 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5415 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5417 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5418 Added to create a transport connecting using a tcp/ip socket.
5420 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5421 to a tcp socket at given host and port.
5422 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5425 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5427 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5428 Added to create a server listening on a TCP/IP socket.
5430 2003-02-19 Havoc Pennington <hp@pobox.com>
5432 Throughout: mop up all the Doxygen warnings and undocumented
5435 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
5436 to search any paths.
5438 * dbus/dbus-threads.c: move global mutex initializers to
5439 dbus-internals.h, multiple prototypes was confusing doxygen
5440 besides being kind of ugly
5442 * Doxyfile (PREDEFINED): have Doxygen define
5443 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
5444 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
5445 (do not abuse the feature! it's for stuff like the autogenerated
5446 macros in dbus-md5.c, not just for things you don't feel like
5449 2003-02-18 Havoc Pennington <hp@pobox.com>
5451 * dbus/dbus-string.c (_dbus_string_zero): new function
5453 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
5454 wrap it in some dbus-friendly API
5456 * dbus/dbus-types.h: add 16-bit types
5458 2003-02-18 Joe Shaw <joe@assbarn.com>
5460 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
5461 credentials from our currently running process.
5462 (get_word): Fix a buglet where we were copying the entire length
5463 instead of relative to our position.
5465 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
5466 keys on the stack... it's 640k of data.
5468 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
5469 read the credentials byte off the socket, even if we don't have
5471 (_dbus_poll): Implement poll() using select() for systems which
5474 * glib/test-dbus-glib.c (main): Print out an error if no
5475 parameters are given.
5477 * test/data/auth/fallback.auth-script: Added. Tests that a client
5478 can fallback to a secondary auth mechanism if the first fails.
5480 2003-02-18 Havoc Pennington <hp@pobox.com>
5484 2003-02-17 Havoc Pennington <hp@pobox.com>
5486 * doc/dbus-specification.sgml: lots of cosmetic
5487 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
5488 env variable to DBUS_BUS_ADDRESS, s/client/application/,
5489 s/server/bus/ (except in authentication section). Add a section
5490 "Message Bus Message Routing"
5492 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
5498 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5500 * doc/dbus-specification.sgml:
5501 Specification updates.
5503 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5505 * bus/activation.c: (bus_activation_init), (child_setup),
5506 (bus_activation_activate_service):
5508 * bus/main.c: (main):
5509 Set DBUS_ADDRESS environment variable.
5511 * dbus/dbus-errors.c: (dbus_set_error):
5512 Don't use va_copy since that's a C99 feature.
5514 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
5515 (_dbus_spawn_async):
5516 * dbus/dbus-sysdeps.h:
5517 Add child_setup_func to _dbus_spawn_async.
5519 * doc/dbus-specification.sgml:
5520 Update specification.
5522 * test/spawn-test.c: (setup_func), (main):
5525 2003-02-17 Alexander Larsson <alexl@redhat.com>
5527 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
5530 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5534 * doc/dbus-test-plan.sgml:
5535 Add test plan document.
5540 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5542 * dbus/dbus-message.c: (decode_header_data),
5543 (_dbus_message_loader_return_buffer):
5544 Set the header padding amount when loading a message.
5546 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5548 * bus/dispatch.c: (send_one_message):
5549 Only send broadcast messages to registered connections.
5551 * dbus/dbus-message.c: (dbus_message_name_is):
5552 * dbus/dbus-message.h:
5553 New convenience function.
5555 * dbus/dbus-transport-debug.c: (do_reading):
5556 Only dispatch one message per run.
5559 * test/bus-test.c: (new_connection_callback), (die),
5560 (test_hello_client1_handler), (test_hello_client2_handler),
5561 (test_hello_replies), (main):
5563 * test/bus-test-loop.[ch]:
5566 2003-02-16 Havoc Pennington <hp@pobox.com>
5568 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5569 backward conditional
5571 2003-02-16 Alexander Larsson <alexl@redhat.com>
5573 * dbus/dbus-connection.c:
5574 Implement sent_message_with_reply. (with_reply_and block is still
5576 Made dispatch_message not lose message if OOM.
5578 * dbus/dbus-errors.h:
5579 Add NoReply error (for reply timeouts).
5581 2003-02-16 Alexander Larsson <alexl@redhat.com>
5583 * dbus/dbus-hash.c (_dbus_hash_table_unref):
5584 Actually free keys and values when destroying hashtable.
5586 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5588 * dbus/dbus-auth.c: (client_try_next_mechanism):
5591 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
5592 Return TRUE if there's no thread implementation around.
5594 * glib/dbus-gmain.c: (free_source),
5595 (dbus_connection_hookup_with_g_main):
5596 Make sure to remove the GSource when the connection is finalized.
5598 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5600 * bus/dispatch.c: (bus_dispatch_message_handler):
5601 * dbus/dbus-errors.h:
5602 Return an error if someone tries to send a message to a service
5605 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5607 * bus/activation.c: (load_directory), (bus_activation_init),
5608 (bus_activation_activate_service):
5611 (bus_driver_handle_activate_service), (bus_driver_handle_message):
5612 More work on the activation handling.
5614 * dbus/dbus-errors.h:
5615 Add some error messages
5617 * dbus/dbus-message.c: (dbus_message_new_error_reply):
5618 * dbus/dbus-message.h:
5619 New function that creates an error message.
5621 * dbus/dbus-protocol.h:
5622 Add ACTIVATE_SERVER message.
5624 * dbus/dbus-server-unix.c: (unix_handle_watch),
5625 (_dbus_server_new_for_domain_socket):
5626 Call _dbus_fd_set_close_on_exec.
5628 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
5629 (_dbus_spawn_async), (_dbus_disable_sigpipe),
5630 (_dbus_fd_set_close_on_exec):
5631 * dbus/dbus-sysdeps.h:
5632 Add _dbus_fd_set_close_on exec function. Also add function that checks
5633 that all open fds are set to close-on-exec and warns otherwise.
5635 * dbus/dbus-transport-unix.c:
5636 (_dbus_transport_new_for_domain_socket):
5637 Call _dbus_fd_set_close_on_exec.
5639 2003-02-16 Havoc Pennington <hp@pobox.com>
5641 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
5642 allow people to avoid setting SIGPIPE to SIG_IGN
5643 (_dbus_connection_new_for_transport): disable SIGPIPE unless
5644 we've been asked not to
5646 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5648 * dbus/dbus-list.c: (_dbus_list_append_link),
5649 (_dbus_list_prepend_link):
5650 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
5654 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5657 * bus/activation.c: (bus_activation_entry_free),
5658 (add_desktop_file_entry), (load_directory), (bus_activation_init):
5660 * bus/main.c: (main):
5661 Add simple activation support, doesn't work yet though.
5663 2003-02-15 Zack Rusin <zack@kde.org>
5665 * qt/dbus-qthread.cpp: small casting fix
5667 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5669 * dbus/dbus-errors.c: (dbus_set_error):
5670 * dbus/dbus-errors.h:
5671 Add a few errors and make dbus_set_error void.
5673 * dbus/dbus-sysdeps.c:
5674 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
5675 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
5676 * dbus/dbus-sysdeps.h:
5677 Add _dbus_spawn_async.
5679 * test/spawn-test.c: (main):
5680 Test for _dbus_spawn_async.
5682 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5684 * dbus/dbus-internals.h:
5685 Fix build without tests.
5687 * dbus/dbus-list.c: (alloc_link):
5688 Fix a segfault when a malloc fails.
5690 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
5691 (dbus_malloc0), (dbus_realloc):
5692 Add support for malloc debugging.
5694 2003-02-15 Alexander Larsson <alexl@redhat.com>
5696 * dbus/dbus-threads.c:
5697 * dbus/dbus-threads.h:
5698 Add condvars. Remove static mutext from API.
5699 Implement static mutexes by initializing them from threads_init.
5701 * glib/dbus-gthread.c:
5702 * qt/dbus-qthread.cpp:
5703 Update with the thread api changes.
5708 Turn StaticMutex into normal mutex + init function.
5709 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
5710 _dbus_list_append_link, _dbus_list_prepend_link
5713 * dbus/dbus-sysdeps.c:
5714 * dbus/dbus-sysdeps.h:
5715 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
5716 _dbus_atomic_dec. Only slow fallback implementation at the moment.
5718 * dbus/dbus-protocol.h:
5719 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
5721 * dbus/dbus-message.c:
5722 Make ref/unref atomic.
5725 * dbus/dbus-connection-internal.h:
5726 * dbus/dbus-connection.c:
5727 * dbus/dbus-connection.h:
5729 Change _peek to _borrow,_return & _steal_borrowed.
5730 Change disconnect callback to event.
5731 Make dbus_connection_dispatch_messages reentrant.
5733 * dbus/dbus-transport.c:
5734 Don't ref the connection on calls to the transport
5737 * dbus/dbus-message-handler.c:
5740 * glib/dbus-gmain.c:
5741 Don't use peek_message anymore
5744 * test/debug-thread.c:
5745 * test/debug-thread.h:
5746 Simple thread implementation that asserts() on deadlocks in
5747 single-threaded code.
5750 (main) Call debug_threads_init.
5753 Use disconnect message instead of disconnect callback.
5757 Don't call dbus_connection_set_disconnect_function. Instead export
5758 bus_connection_disconnect.
5761 Call bus_connection_disconnect when we get a disconnected message.
5763 2003-02-15 Havoc Pennington <hp@pobox.com>
5765 * dbus/dbus-message.c (dbus_message_new): fool around with the
5768 2003-02-14 Havoc Pennington <hp@pobox.com>
5770 * dbus/dbus-mempool.c: fail if the debug functions so indicate
5772 * dbus/dbus-memory.c: fail if the debug functions indicate we
5775 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
5776 (_dbus_decrement_fail_alloc_counter): debug functions to
5777 simulate memory allocation failures
5779 2003-02-14 Havoc Pennington <hp@pobox.com>
5781 * dbus/dbus-errors.h (struct DBusError): add a word of padding
5784 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5786 * bus/driver.c: (bus_driver_handle_hello):
5788 * bus/services.c: (bus_service_lookup):
5789 Reorder message sending so we get a more sane order.
5791 * test/bus-test.c: (message_handler):
5794 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5796 * bus/driver.c: (bus_driver_send_service_deleted),
5797 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5798 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5799 (bus_driver_send_welcome_message),
5800 (bus_driver_handle_list_services),
5801 (bus_driver_handle_acquire_service),
5802 (bus_driver_handle_service_exists):
5803 * dbus/dbus-bus.c: (dbus_bus_register_client),
5804 (dbus_bus_acquire_service), (dbus_bus_service_exists):
5805 * dbus/dbus-errors.c: (dbus_result_to_string):
5806 * dbus/dbus-errors.h:
5807 * dbus/dbus-message.c: (dbus_message_append_args),
5808 (dbus_message_append_args_valist), (dbus_message_get_args),
5809 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
5810 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
5811 (dbus_message_iter_get_byte_array),
5812 (dbus_message_iter_get_string_array), (message_iter_test),
5813 (check_message_handling), (_dbus_message_test):
5814 * dbus/dbus-message.h:
5815 * test/bus-test.c: (main):
5816 Change fields to arguments in messages, so that they won't be
5817 confused with header fields.
5819 * glib/test-dbus-glib.c: (main):
5820 Remove append_fields from hello message.
5822 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5824 * dbus/dbus-errors.c:
5825 * dbus/dbus-message.c:
5826 * dbus/dbus-string.c:
5827 Documentation fixes.
5829 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5831 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
5833 Implement support for timeouts in dbus-glib.
5835 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5837 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5838 * dbus/dbus-message.c: (process_test_subdir):
5839 * test/break-loader.c: (find_breaks_based_on):
5840 Plug some memory leaks.
5842 2003-02-13 Richard Hult <rhult@codefactory.se>
5844 * bus/main.c: Fix build.
5846 * dbus/dbus-errors.h:
5847 * dbus/dbus-errors.c: Fix copyright for Anders.
5849 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5854 * bus/connection.c: (bus_connection_foreach):
5857 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
5858 (unescape_string), (new_section), (parse_section_start),
5859 (parse_key_value), (report_error), (bus_desktop_file_load),
5860 (bus_desktop_file_get_string):
5861 * bus/desktop-file.h:
5862 Use DBusError for error reporting.
5864 * bus/dispatch.c: (send_one_message),
5865 (bus_dispatch_message_handler):
5866 * bus/driver.c: (bus_driver_send_service_deleted),
5867 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5868 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5869 (bus_driver_send_welcome_message),
5870 (bus_driver_handle_list_services),
5871 (bus_driver_handle_acquire_service),
5872 (bus_driver_handle_service_exists):
5873 * bus/loop.c: (bus_loop_run):
5875 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
5877 * bus/utils.c: (bus_wait_for_memory):
5879 New files with general utility functions.
5881 * dbus/dbus-internals.h:
5882 Remove _DBUS_HANDLE_OOM.
5884 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5886 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
5887 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
5888 * dbus/dbus-errors.h:
5889 Add DBusError structure.
5891 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5893 * test/data/valid-messages/standard-acquire-service.message:
5894 * test/data/valid-messages/standard-hello.message:
5895 * test/data/valid-messages/standard-list-services.message:
5896 * test/data/valid-messages/standard-service-exists.message:
5897 Add some standard messages.
5899 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5901 * bus/driver.c: (bus_driver_send_welcome_message),
5902 (bus_driver_handle_list_services),
5903 (bus_driver_handle_acquire_service),
5904 (bus_driver_handle_service_exists), (bus_driver_handle_message):
5905 Update for API changes in libdbus.
5907 * dbus/dbus-message.c: (dbus_message_new_reply):
5908 * dbus/dbus-message.h:
5909 Remove the name argument. The spec states that replies shouldn't
5912 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5914 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
5915 (report_error), (bus_desktop_file_load), (lookup_section),
5916 (lookup_line), (bus_desktop_file_get_raw),
5917 (bus_desktop_file_get_string):
5918 * bus/desktop-file.h:
5919 Some fixes, and new functions for getting a key value from a section.
5921 2003-02-13 Havoc Pennington <hp@pobox.com>
5923 * test/data/auth/fail-after-n-attempts.auth-script: new test
5925 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
5928 2003-02-13 Havoc Pennington <hp@pobox.com>
5930 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
5931 dbus_credentials_match were backward
5933 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
5934 NO_CREDENTIALS and ROOT_CREDENTIALS
5936 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
5937 into here. Never process more commands after we've reached an
5938 end state; store further data as unused bytes.
5940 * test/data/auth/*: add more auth tests
5942 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
5943 command to match exact string and EXPECT_UNUSED to match unused
5946 * test/Makefile.am (dist-hook): fix to dist all the test stuff
5948 2003-02-12 Havoc Pennington <hp@pobox.com>
5950 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
5951 \r off of popped lines
5953 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
5956 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
5959 2003-02-12 Havoc Pennington <hp@pobox.com>
5961 * dbus/Makefile.am: remove break-loader from the build, since it
5964 * configure.in: add --enable-gcov to turn on coverage profiling
5965 flags and disable optimization
5967 2003-02-10 Havoc Pennington <hp@pobox.com>
5969 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
5970 initial cut at test framework for DBusAuth from laptop.
5971 Doesn't quite work yet but it compiles and I need to get
5972 it off the 266mhz laptop. ;-)
5974 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
5975 fix a memleak in error case
5977 2003-02-12 Anders Carlsson <andersca@codefactory.se>
5980 * bus/desktop-file.c:
5981 * bus/desktop-file.h:
5982 Add a desktop file parser.
5984 2003-02-11 Zack Rusin <zack@kde.org>
5986 * qt/message.[h|cpp]: sample implementation
5987 of the KDE wrapper for DBusMessage
5989 2003-02-09 Zack Rusin <zack@kde.org>
5991 * test/bus-test.c: make_it_compile
5992 * doc/dbus-specification.sgml: minimal semantic fix
5994 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6000 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6003 * dbus/dbus-break-loader.c:
6005 * test/break-loader.c:
6006 Move dbus-break-loader to test/ and rename it to break-loader.
6008 2003-02-02 Havoc Pennington <hp@pobox.com>
6010 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6011 for code to manage cookies in your home directory
6013 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6015 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6016 to authenticate, then disconnect the client.
6018 2003-02-03 Alexander Larsson <alexl@redhat.com>
6020 * dbus/dbus-message.c (dbus_message_append_fields):
6023 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6025 * doc/dbus-specification.sgml:
6026 Update address format section.
6028 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6031 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6032 (message_handler), (new_connection_callback), (loop_quit),
6036 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6038 * bus/driver.c: (bus_driver_handle_service_exists):
6039 Simplify the code a bit.
6041 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6044 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6047 Add libdbus-daemon.la and link to it.
6049 2003-02-01 James Willcox <jwillcox@gnome.org>
6051 * bus/driver.c: (bus_driver_handle_own_service):
6052 Actually include the service reply code in the message.
6054 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6056 * bus/driver.c: (bus_driver_handle_service_exists):
6057 Don't unref the incoming message.
6059 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6061 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6063 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6065 * dbus/dbus-server.c: (dbus_server_listen):
6066 * dbus/dbus-transport.c: (_dbus_transport_open):
6067 ifdef out the calls to the debug transport and server.
6069 2003-02-02 Alexander Larsson <alexl@redhat.com>
6071 * dbus/dbus-watch.c (dbus_watch_get_flags):
6072 Add note in the docs that ERROR or HANGUP won't be returned
6073 and are assumed always on.
6075 * glib/dbus-gmain.c (add_watch):
6076 Always add IO_ERR | IO_HUP
6078 * dbus/dbus-message.h:
6079 Add semicolon after dbus_message_iter_get_string_array().
6080 Makes qt code build again
6082 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6084 * bus/driver.c: (create_unique_client_name),
6085 (bus_driver_handle_hello):
6086 Don't take a name, just use a numeric id to identify
6090 * dbus/dbus-bus.c: (dbus_bus_register_client),
6091 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6093 Add new convenience functions for communicating with the bus.
6095 * dbus/dbus-message.h:
6097 * dbus/dbus-protocol.h:
6100 2003-02-01 Alexander Larsson <alexl@redhat.com>
6102 * dbus/dbus-message.c (dbus_message_append_fields):
6103 Add some more doc comments.
6105 2003-02-01 Havoc Pennington <hp@pobox.com>
6107 * dbus/dbus-break-loader.c (randomly_modify_length): change
6108 a 4-byte value in the message as if it were a length
6110 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6111 execute bit on saved files
6113 2003-02-01 Havoc Pennington <hp@pobox.com>
6115 * dbus/dbus-break-loader.c (main): new program to find messages
6116 that break the loader.
6118 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6119 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6121 * dbus/dbus-string.c (_dbus_string_set_byte): new
6123 2003-01-31 Havoc Pennington <hp@pobox.com>
6125 * dbus/dbus-message.c: refactor the test code to be more general,
6126 in preparation for writing a "randomly permute test cases to
6127 try to break the loader" program.
6129 2003-01-31 Havoc Pennington <hp@pobox.com>
6131 * doc/dbus-specification.sgml: work on the specification
6133 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6134 the protocol version of the message.
6136 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6137 no longer specifies that.
6138 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6141 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6142 "break" for DBUS_TYPE_NIL, remove @todo
6144 2003-01-31 Havoc Pennington <hp@pobox.com>
6146 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6147 just set_is_error/get_is_error as this is a commonly-used
6148 function, and write docs.
6150 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6152 * dbus/dbus-address.c: (dbus_address_entry_free):
6153 Free key and value lists.
6155 * dbus/dbus-internals.c: (_dbus_type_to_string):
6156 Add the types we didn't have.
6158 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6159 (_dbus_marshal_validate_arg):
6162 * dbus/dbus-message.c: (dbus_message_set_sender):
6163 Remove todo about being able to set sender to NULL.
6165 (dbus_message_set_is_error_reply),
6166 (dbus_message_get_is_error_reply):
6167 * dbus/dbus-message.h:
6170 * dbus/dbus-protocol.h:
6171 Add error reply flag.
6173 * test/data/valid-messages/opposite-endian.message:
6174 Add NIL type to test.
6176 2003-01-31 Havoc Pennington <hp@pobox.com>
6178 * doc/dbus-specification.sgml: fully specify the header. Add
6179 flags and major protocol version, and change header/body len to
6182 * dbus/dbus-message-builder.c (append_saved_length): append length
6185 * dbus/dbus-message.c (dbus_message_create_header): change header
6186 length and body length to unsigned. Add the new fields from the
6188 (_dbus_message_loader_return_buffer): unsigned header/body len
6190 2003-01-30 Havoc Pennington <hp@pobox.com>
6192 * dbus/dbus-auth.c: rework to use only REJECTED, no
6195 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6196 use REJECTED, suggested by Mark McLoughlin
6198 2003-01-30 Havoc Pennington <hp@pobox.com>
6200 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6201 a better way to report errors here. e.g. "unix address lacks
6202 path" or something. also "no such file" when the path doesn't
6205 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6207 (dbus_parse_address): add @todo about documenting address format,
6208 and allowing , and ; to be escaped
6210 2003-01-30 Anders Carlsson <andersca@codefactory.se>
6213 Add dbus-address.[ch]
6215 * dbus/dbus-address.c: (dbus_address_entry_free),
6216 (dbus_address_entries_free), (create_entry),
6217 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6218 (dbus_parse_address), (_dbus_address_test):
6219 * dbus/dbus-address.h:
6220 New files for dealing with address parsing.
6222 * dbus/dbus-connection.c:
6223 Document timeout functions.
6225 * dbus/dbus-message.c:
6226 Document dbus_message_new_from_message.
6228 * dbus/dbus-server-debug.c:
6231 * dbus/dbus-server.c: (dbus_server_listen):
6232 Parse address and use correct server implementation.
6234 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6235 * dbus/dbus-string.h:
6236 New function with test.
6238 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6242 * dbus/dbus-transport-debug.c:
6245 * dbus/dbus-transport.c: (_dbus_transport_open):
6246 Parse address and use correct transport implementation.
6248 2003-01-30 Havoc Pennington <hp@pobox.com>
6250 * dbus/dbus-message.c: use message->byte_order instead of
6251 DBUS_COMPILER_BYTE_ORDER throughout.
6252 (dbus_message_create_header): pad header to align the
6253 start of the body of the message to 8-byte boundary
6255 * dbus/dbus-marshal.h: make all the demarshalers take const
6256 DBusString arguments.
6258 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6259 validate message args here, so we don't have to do slow validation
6260 later, and so we catch bad messages as they are incoming. Also add
6261 better checks on header_len and body_len. Also fill in
6264 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6265 implemented properly)
6266 (_dbus_string_validate_nul): new function to check all-nul
6268 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6269 get_arg_end_pos and remove all validation
6270 (_dbus_marshal_validate_arg): actually do validation here.
6272 2003-01-29 Havoc Pennington <hp@pobox.com>
6274 * dbus/dbus-message.c (check_message_handling): fix assertion
6275 failure on set_client_serial
6277 2003-01-28 Havoc Pennington <hp@pobox.com>
6279 * dbus/dbus-server-debug.c: Add doc section comments
6281 * dbus/dbus-transport-debug.c: add doc section comments
6283 2003-01-28 Havoc Pennington <hp@redhat.com>
6285 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6286 the reverse order from how I had it
6287 (_dbus_string_base64_encode): reverse encoding order. I was
6288 basically byteswapping everything during encoding.
6290 2003-01-28 Anders Carlsson <andersca@codefactory.se>
6292 * dbus/dbus-connection-internal.h:
6293 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6294 (_dbus_connection_remove_timeout):
6295 Add functions for adding and removing timeouts.
6297 * dbus/dbus-message.c: (dbus_message_new_from_message):
6298 Add new function that takes a message and creates an exact
6299 copy of it, but with the refcount set to 1.
6300 (check_message_handling):
6303 * dbus/dbus-server-protected.h:
6304 * dbus/dbus-server.c: (_dbus_server_init_base),
6305 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6306 (dbus_server_set_timeout_functions):
6307 (_dbus_server_remove_timeout):
6308 New functions so that a server can add and remove timeouts.
6310 (dbus_server_listen):
6311 Add commented out call to dbus_server_debug_new.
6313 * dbus/dbus-timeout.c: (_dbus_timeout_new):
6314 Actually set the handler, doh.
6316 * dbus/dbus-transport.c: (_dbus_transport_open):
6317 Add commented out call to dbus_transport_debug_client_new.
6320 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6322 2003-01-28 Havoc Pennington <hp@pobox.com>
6324 * dbus/dbus-message.c (check_message_handling): function to check
6325 on the loaded message, iterates over it etc.
6327 2003-01-28 Havoc Pennington <hp@pobox.com>
6329 * test/Makefile.am (dist-hook): fix make distdir
6331 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6333 2003-01-27 Havoc Pennington <hp@pobox.com>
6335 * dbus/dbus-mempool.c (time_for_size): replace printf with
6338 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6339 empty lines; fix the SAVE_LENGTH stuff to be
6340 START_LENGTH/END_LENGTH so it actually works; couple other
6343 * test/Makefile.am (dist-hook): add dist-hook for .message files
6345 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6346 can be constant or locked.
6347 (_dbus_string_free): allow freeing a const string as
6350 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6352 * dbus/dbus-test-main.c (main): take an argument which is the
6353 directory containing test data
6355 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6356 argument to this and load all the messages in test/data/
6357 checking that they can be loaded or not loaded as appropriate.
6359 2003-01-27 Anders Carlsson <andersca@codefactory.se>
6361 * bus/dispatch.c: (bus_dispatch_message_handler):
6362 Dispatch messages sent to services.
6364 * bus/driver.c: (bus_driver_send_service_deleted),
6365 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6366 (bus_driver_send_service_acquired):
6367 Add helper functions for sending service related messages.
6369 (bus_driver_send_welcome_message):
6370 Send HELLO_REPLY instead of WELCOME.
6372 (bus_driver_handle_list_services):
6373 Send LIST_SERVICES_REPLY instead of SERVICES.
6375 (bus_driver_handle_own_service),
6376 (bus_driver_handle_service_exists):
6377 New message handlers.
6379 (bus_driver_handle_message):
6380 Invoke new message handlers.
6382 (bus_driver_remove_connection):
6383 Don't remove any services here since that's done automatically
6384 by bus_service_remove_owner now.
6387 New function signatures.
6389 * bus/services.c: (bus_service_add_owner):
6390 Send ServiceAcquired message if we're the only primary owner.
6392 (bus_service_remove_owner):
6393 Send ServiceAcquired/ServiceLost messages.
6395 (bus_service_set_prohibit_replacement),
6396 (bus_service_get_prohibit_replacement):
6397 Functions for setting prohibit replacement.
6399 (bus_service_has_owner):
6400 New function that checks if a connection is in the owner queue of
6404 Add new function signatures.
6406 * dbus/dbus-list.c: (_dbus_list_test):
6407 Add tests for _dbus_list_remove_last and traversing the list backwards.
6410 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6411 go any further, so return NULL then.
6413 * dbus/dbus-protocol.h:
6414 Add new messages, service flags and service replies.
6416 2003-01-26 Havoc Pennington <hp@pobox.com>
6418 * dbus/dbus-message-builder.c: implement, completely untested.
6420 * test/data/*: add data to be used in testing.
6421 ".message" files are our simple loadable text format.
6422 ".message-raw" will be binary dumps of messages.
6424 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6426 2003-01-26 Havoc Pennington <hp@pobox.com>
6428 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6430 * dbus/dbus-errors.c (dbus_result_to_string): add
6433 * dbus/dbus-message-builder.c: new file, will contain code to load
6434 up messages from files. Not implemented yet.
6436 2003-01-26 Havoc Pennington <hp@pobox.com>
6438 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
6439 the sender by setting to NULL
6441 2003-01-26 Havoc Pennington <hp@pobox.com>
6443 The unit tests pass, but otherwise untested. If it breaks, the
6444 tests should have been better. ;-)
6446 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
6449 * dbus/dbus-message.c: redo everything so we maintain
6450 message->header as the only copy of the various fields.
6451 This avoids the possibility of out-of-memory in some cases,
6452 for example dbus_message_lock() can't run out of memory anymore,
6453 and avoids extra copying. Figured I may as well go ahead and do
6454 this since it was busted for dbus_message_lock to not return
6455 failure on OOM, and dbus_message_write_header was totally
6456 unchecked for OOM. Also fixed some random other bugs.
6458 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
6459 that strings are nul-terminated. Also, end_pos can be equal
6460 to string length just not greater than, I think.
6461 (_dbus_marshal_set_int32): new function
6462 (_dbus_marshal_set_uint32): new function
6463 (_dbus_marshal_set_string): new function
6465 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
6466 a warning, init timeout_list to NULL
6467 (dbus_connection_send_message): don't use uninitialized variable
6470 * dbus/dbus-string.c (_dbus_string_replace_len): new function
6472 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6474 * bus/driver.c: (bus_driver_handle_hello),
6475 (bus_driver_send_welcome_message):
6478 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6480 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
6481 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6482 (dbus_connection_unref):
6483 * dbus/dbus-marshal.c: (_dbus_marshal_test):
6484 * dbus/dbus-message.c: (dbus_message_unref),
6487 (dbus_message_get_fields):
6488 Remove debugging printout.
6490 (_dbus_message_loader_return_buffer):
6491 Don't store the header string.
6493 (_dbus_message_test):
6496 2003-01-26 Richard Hult <rhult@codefactory.se>
6498 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
6499 the file descriptor list, since it can change under us.
6501 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6503 * glib/dbus-gmain.c: (dbus_connection_prepare),
6504 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
6505 (remove_watch), (dbus_connection_hookup_with_g_main):
6506 Rewrite the glib handling to use its own GSource instead of a
6507 GIOChannel so we can catch messages put in the queue while waiting
6510 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6513 * bus/connection.c: (connection_disconnect_handler),
6514 (connection_watch_callback), (bus_connection_setup):
6515 * bus/dispatch.c: (send_one_message),
6516 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
6517 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
6519 * bus/driver.c: (bus_driver_send_service_deleted),
6520 (bus_driver_send_service_created), (bus_driver_handle_hello),
6521 (bus_driver_send_welcome_message),
6522 (bus_driver_handle_list_services), (bus_driver_remove_connection),
6523 (bus_driver_handle_message):
6525 Refactor code, put the message dispatching in its own file. Use
6526 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
6529 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6531 * dbus/dbus-internals.h:
6532 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
6534 * dbus/dbus-message.c: (dbus_message_get_sender):
6535 * dbus/dbus-message.h:
6536 Implement dbus_message_get_sender.
6538 * dbus/dbus-protocol.h:
6539 Add message and service defines.
6541 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6543 * dbus/dbus-connection.c: (dbus_connection_send_message):
6544 * dbus/dbus-message-internal.h:
6545 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
6546 (dbus_message_write_header):
6547 Remove _dbus_messag_unlock and don't set the client serial on a
6548 message if one already exists.
6550 2003-01-24 Havoc Pennington <hp@pobox.com>
6552 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
6555 * bus/driver.c (bus_driver_handle_list_services): fix a leak
6558 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6560 * dbus/dbus-list.c: (alloc_link), (free_link):
6561 Use a memory pool for the links.
6563 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6565 * bus/connection.c: (bus_connection_foreach):
6567 Add new bus_connection_foreach function.
6569 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
6570 Add function that broadcasts a message to all clients.
6572 (bus_driver_send_service_created), (bus_driver_handle_hello),
6573 (bus_driver_send_welcome_message),
6574 (bus_driver_handle_list_services), (bus_driver_message_handler):
6575 Implement functions that take care of listing services, and notifying
6576 clients when new services are created.
6578 * bus/services.c: (bus_services_list):
6580 Add new function that returns an array of strings with the currently
6581 registered services.
6584 * glib/dbus-gmain.c:
6585 Update copyright year.
6587 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6589 * dbus/dbus-connection.c: (dbus_connection_send_message):
6590 Unlock the message in case it was sent earlier.
6592 (dbus_connection_send_message_with_reply_and_block):
6593 Remove the reply message from the list.
6595 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6596 Set array_len and new_pos correctly.
6598 (_dbus_marshal_test):
6599 Remove debug output.
6601 * dbus/dbus-message-internal.h:
6602 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
6603 New function that returns the reply serial.
6605 (_dbus_message_unlock):
6606 New function that unlocks a message and resets its header.
6608 (dbus_message_append_string_array),
6609 (dbus_message_get_fields_valist),
6610 (dbus_message_iter_get_field_type),
6611 (dbus_message_iter_get_string_array),
6612 (dbus_message_get_fields),
6613 (dbus_message_append_fields_valist):
6614 Handle string arrays.
6616 (dbus_message_set_sender):
6617 Make this function public since the bus daemon needs it.
6619 (decode_header_data):
6620 Set the reply serial to -1 initially.
6622 * dbus/dbus-message.h:
6623 Add dbus_message_set_sender.
6625 2003-01-24 Havoc Pennington <hp@pobox.com>
6627 * doc/dbus-specification.sgml: add some stuff
6629 2003-01-22 Havoc Pennington <hp@pobox.com>
6631 * doc/dbus-specification.sgml: Start to document the protocol.
6633 2003-01-22 Havoc Pennington <hp@pobox.com>
6635 * dbus/dbus-connection.c
6636 (dbus_connection_send_message_with_reply_and_block): add some @todo
6638 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
6640 2003-01-21 Havoc Pennington <hp@pobox.com>
6642 (patch untested because can't compile)
6644 * bus/driver.c (create_unique_client_name): make this function
6645 never recycle client names. Also, caller should initialize
6648 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
6650 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6652 * dbus/dbus-marshal.c: (_dbus_marshal_double),
6653 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6654 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
6655 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
6656 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
6657 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
6658 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
6659 * dbus/dbus-marshal.h:
6660 * dbus/dbus-protocol.h:
6661 Add support for marshalling and demarshalling integer, double
6664 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6669 * bus/connection.c: (connection_disconnect_handler):
6670 Remove the connection from the bus driver's list.
6672 (connection_watch_callback): Dispatch messages.
6674 (free_connection_data): Free connection name.
6676 (bus_connection_setup): Add connection to the bus driver's list.
6677 (bus_connection_remove_owned_service):
6678 (bus_connection_set_name), (bus_connection_get_name):
6679 Add functions for setting and getting the connection's name.
6682 Add function headers.
6684 * bus/driver.c: (create_unique_client_name),
6685 (bus_driver_handle_hello_message),
6686 (bus_driver_send_welcome_message), (bus_driver_message_handler),
6687 (bus_driver_add_connection), (bus_driver_remove_connection):
6690 * bus/services.c: (bus_service_free):
6692 New file that handles communication and registreation with the bus
6695 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6697 * dbus/dbus-connection.c: (dbus_connection_send_message):
6698 Add a new client_serial parameter.
6700 (dbus_connection_send_message_with_reply):
6701 Remove a @todo since we've implemented the blocking function.
6703 (dbus_connection_send_message_with_reply_and_block):
6704 New function that sends a message and waits for a reply and
6705 then returns the reply.
6707 * dbus/dbus-connection.h:
6710 * dbus/dbus-errors.c: (dbus_result_to_string):
6711 * dbus/dbus-errors.h:
6712 Add new DBUS_RESULT.
6714 * dbus/dbus-message-internal.h:
6715 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
6716 (_dbus_message_set_sender), (dbus_message_write_header),
6717 (dbus_message_new_reply), (decode_header_data),
6718 (_dbus_message_loader_return_buffer), (_dbus_message_test):
6719 * dbus/dbus-message.h:
6720 Add new functions that set the reply serial and sender.
6721 Also marshal and demarshal them correctly and add test.
6723 * dbus/dbus-protocol.h:
6724 Add new DBUS_MESSAGE_TYPE_SENDER.
6727 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
6728 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
6729 (dbus_connection_hookup_with_g_main):
6730 * glib/test-dbus-glib.c: (main):
6731 Rewrite to use GIOChannel and remove the GSource crack.
6733 * test/echo-client.c: (main):
6734 * test/watch.c: (check_messages):
6735 Update for changed APIs
6737 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6739 * dbus/Makefile.am: Add dbus-timeout.[cħ]
6741 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
6742 Create a DBusTimeoutList.
6743 (dbus_connection_set_timeout_functions): Add new function to
6744 set timeout callbacks
6746 * dbus/dbus-connection.h: Add public DBusTimeout API.
6748 * dbus/dbus-message.c: (dbus_message_get_service):
6749 * dbus/dbus-message.h: New function.
6751 * dbus/dbus-server.c: Fix small doc typo.
6753 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
6755 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6757 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
6758 of the string, just as long as specified.
6760 2003-01-19 Havoc Pennington <hp@pobox.com>
6762 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
6765 * dbus/dbus-server.c (dbus_server_set_max_connections)
6766 (dbus_server_get_max_connections, dbus_server_get_n_connections):
6767 keep track of current number of connections, and add API for
6768 setting a max (but haven't implemented enforcing the max yet)
6770 2003-01-18 Havoc Pennington <hp@pobox.com>
6772 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
6773 reading/writing if read_watch != NULL or write_watch != NULL.
6775 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
6776 the message loader code to actually load message->header and
6777 message->body into the newly-created message.
6779 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
6782 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
6783 (dbus_connection_get_max_message_size)
6784 (dbus_connection_set_max_live_messages_size)
6785 (dbus_connection_get_max_live_messages_size): implement some
6786 resource limitation functions
6788 * dbus/dbus-resources.c: new file implementing some of the
6789 resource limits stuff
6791 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
6792 missing docs, add @todo to handle OOM etc.
6794 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
6797 2003-01-18 Havoc Pennington <hp@pobox.com>
6799 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
6800 connection if it hasn't been already.
6802 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
6803 replace with DisconnectFunction.
6805 2003-01-18 Havoc Pennington <hp@pobox.com>
6807 Building --disable-verbose-mode --disable-asserts --disable-tests
6808 cuts the library from 112K to 45K or so
6810 * configure.in: check for varargs macro support,
6811 add --enable-verbose-mode, --enable-asserts.
6813 * dbus/dbus-internals.h (_dbus_assert): support
6815 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
6817 2003-01-18 Havoc Pennington <hp@pobox.com>
6819 * dbus/dbus-test.c: include config.h so that tests actually run
6821 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
6822 so the failure mode when that assumption fails will be plenty
6825 2003-01-18 Havoc Pennington <hp@pobox.com>
6827 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
6829 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
6832 * test/Makefile.am: don't use special variable "TESTS" for echo-*
6833 since we don't want to use those in make check
6835 2003-01-15 Havoc Pennington <hp@redhat.com>
6841 2003-01-15 Havoc Pennington <hp@redhat.com>
6843 * test/Makefile.am: fix so that test source code ends up in the
6844 distribution on make distcheck
6846 2003-01-15 Havoc Pennington <hp@redhat.com>
6852 2003-01-15 Havoc Pennington <hp@redhat.com>
6854 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
6855 fix build when --disable-tests
6857 * Makefile.am (EXTRA_DIST): put HACKING in here
6859 * HACKING: document procedure for making a tarball release.
6861 2003-01-14 Anders Carlsson <andersca@codefactory.se>
6863 * bus/connection.c: (connection_error_handler),
6864 (bus_connection_setup):
6865 * bus/main.c: (main):
6866 Make sure that the DBusConnectionData struct is NULLed
6867 out to prevent a segfault.
6869 * dbus/dbus-errors.c: (dbus_result_to_string):
6870 * dbus/dbus-errors.h:
6871 * dbus/dbus-message.c: (dbus_message_get_fields),
6872 (dbus_message_get_fields_valist), (_dbus_message_test):
6873 * dbus/dbus-message.h:
6874 Make dbus_message_get_fields return a result code so we can
6875 track invalid fields as well as oom.
6877 2003-01-11 Havoc Pennington <hp@pobox.com>
6879 * configure.in: change --enable-test/--enable-ansi action-if-given
6880 to enable_foo=$enableval instead of enable_foo=yes
6882 2003-01-08 Havoc Pennington <hp@pobox.com>
6884 * dbus/dbus-string.c (_dbus_string_align_length): new function
6886 * dbus/dbus-test-main.c: move main() for test app here
6888 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
6889 symbol to run tests, because dbus-test isn't in the main
6892 Code review nitpicks.
6894 * dbus/dbus-message.c (dbus_message_write_header): add newlines
6895 for people with narrow emacs ;-). Assert client_serial was filled
6896 in. Assert message->name != NULL.
6897 (dbus_message_append_fields): have "first_field_type" arg separate
6898 from va list, needed for C++ binding that also uses varargs IIRC
6899 and helps with type safety
6900 (dbus_message_new): add @todo about using DBusString to store
6901 service/name internally
6902 (dbus_message_new): don't leak ->service and ->name on OOM later
6904 (dbus_message_unref): free the service name
6905 (dbus_message_get_fields): same change to varargs
6906 i.e. first_field_type
6907 (_dbus_message_loader_return_buffer): assert that the message data
6908 is aligned (if not it's a bug in our code). Put in verbose griping
6909 about why we set corrupted = TRUE.
6910 (decode_header_data): add FIXME that char* is evil. Was going to
6911 add FIXME about evil locale-specific string.h strncmp, but just
6912 switched to wacky string-as-uint32 optimization. Move check for
6913 "no room for field name" above get_const_data_len() to avoid
6914 assertion failure in get_const_data_len if we have trailing 2
6915 bytes or the like. Check for service and name fields being
6916 provided twice. Don't leak service/name on error. Require field
6917 names to be aligned to 4 bytes.
6919 * dbus/dbus-marshal.c: move byte swap stuff to header
6920 (_dbus_pack_int32): uscore-prefix
6921 (_dbus_unpack_int32): uscore-prefix
6922 (_dbus_unpack_uint32): export
6923 (_dbus_demarshal_string): add @todo complaining about use of
6925 (_dbus_marshal_get_field_end_pos): add @todo about bad error
6926 handling allowing corrupt data to go unchecked
6928 2003-01-08 Havoc Pennington <hp@redhat.com>
6930 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
6931 to the select() as needed for authentication. (should be using
6932 _dbus_poll() not select, but for another day)
6934 * dbus/dbus.h: include dbus/dbus-protocol.h
6936 2003-01-08 Anders Carlsson <andersca@codefactory.se>
6938 * dbus/Makefile.am (dbusinclude_HEADERS): Install
6941 2003-01-08 Anders Carlsson <andersca@codefactory.se>
6943 * dbus/dbus-internals.c: (_dbus_type_to_string):
6944 New function that returns a string describing a type.
6946 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
6947 * dbus/dbus-marshal.h:
6948 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
6949 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
6950 (dbus_message_iter_get_byte_array):
6951 * dbus/dbus-message.h:
6952 Add new convenience functions for appending and getting message fields.
6953 Also add demarshalling routines for byte arrays.
6955 2003-01-07 Anders Carlsson <andersca@codefactory.se>
6957 * dbus/dbus-connection-internal.h:
6958 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6959 (_dbus_connection_get_next_client_serial),
6960 (dbus_connection_send_message):
6961 * dbus/dbus-internals.h:
6962 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
6963 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
6964 (_dbus_marshal_uint32), (_dbus_demarshal_double),
6965 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
6966 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
6967 (_dbus_verbose_bytes), (_dbus_marshal_test):
6968 * dbus/dbus-marshal.h:
6969 * dbus/dbus-message-internal.h:
6970 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
6971 (dbus_message_write_header), (_dbus_message_lock),
6972 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
6973 (dbus_message_get_name), (dbus_message_append_int32),
6974 (dbus_message_append_uint32), (dbus_message_append_double),
6975 (dbus_message_append_string), (dbus_message_append_byte_array),
6976 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
6977 (dbus_message_iter_unref), (dbus_message_iter_has_next),
6978 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
6979 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
6980 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
6981 (decode_header_data), (_dbus_message_loader_return_buffer),
6982 (message_iter_test), (_dbus_message_test):
6983 * dbus/dbus-message.h:
6984 * dbus/dbus-protocol.h:
6985 * dbus/dbus-test.c: (main):
6987 * glib/test-dbus-glib.c: (message_handler), (main):
6988 * test/echo-client.c: (main):
6989 * test/watch.c: (check_messages):
6990 Make messages sendable and receivable for real.
6992 2003-01-07 Anders Carlsson <andersca@codefactory.se>
6994 * dbus/dbus-marshal.c: (_dbus_marshal_double),
6995 (_dbus_marshal_string), (_dbus_marshal_byte_array):
6996 * dbus/dbus-message.c: (dbus_message_append_int32),
6997 (dbus_message_append_uint32), (dbus_message_append_double),
6998 (dbus_message_append_string), (dbus_message_append_byte_array):
6999 Handle OOM restoration.
7001 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7003 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7004 (_dbus_demarshal_string), (_dbus_marshal_test):
7005 * dbus/dbus-marshal.h:
7006 * dbus/dbus-message.c: (dbus_message_get_name),
7007 Document these functions.
7009 (dbus_message_append_int32), (dbus_message_append_uint32),
7010 (dbus_message_append_double), (dbus_message_append_string),
7011 (dbus_message_append_byte_array):
7012 * dbus/dbus-message.h:
7013 Add functions for adding message fields of different types.
7015 * dbus/dbus-protocol.h:
7016 Add the different types.
7018 2003-01-05 Havoc Pennington <hp@pobox.com>
7020 * bus/connection.c: implement routines for handling connections,
7021 first thing is keeping a list of owned services on each connection
7022 and setting up watches etc.
7024 * bus/services.c: implement a mapping from service names to lists
7027 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7029 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7030 to use static mutexes for global data
7032 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7033 collection of functions to set/get application-specific data
7034 on the DBusConnection.
7036 2003-01-04 Havoc Pennington <hp@pobox.com>
7038 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7039 (_dbus_poll): new function
7041 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7044 * bus/loop.c: initial code for the daemon main loop
7046 2003-01-04 Havoc Pennington <hp@pobox.com>
7048 * test/watch.c (error_handler): make it safe if the error handler
7049 is called multiple times (if we s/error handler/disconnect
7050 handler/ we should just guarantee it's called only once)
7052 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7053 error handler on disconnect (it's quite possible we should
7054 just change the error handler to a "disconnect handler," I'm
7055 not sure we have any other meaningful errors)
7057 * configure.in: check for getpwnam_r
7059 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7060 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7061 mechanism as in SASL spec, using socket credentials
7063 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7064 (_dbus_send_credentials_unix_socket): new function
7066 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7068 (_dbus_write): only check errno if <0 returned
7069 (_dbus_write_two): ditto
7071 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7073 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7074 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7075 (_dbus_marshal_test):
7076 * dbus/dbus-marshal.h:
7077 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7078 to _dbus_marshal_utf8_string. Also fix some tests.
7080 2002-12-28 Harri Porten <porten@kde.org>
7082 * configure.in: added check for C++ compiler and a very cheesy
7083 check for the Qt integration
7085 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7087 * qt/Makefile.am: added
7089 * qt/.cvsignore: added
7091 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7092 latter, added #ifdef QT_THREAD_SUPPORT guard.
7094 * dbus/Makefile.am: added missing headers for make dist
7096 2002-12-28 Kristian Rietveld <kris@gtk.org>
7098 * dbus/Makefile.am: fixup export-symbols-regex.
7100 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7102 * acinclude.m4: Add this file and put the
7103 PKG_CHECK_MODULE macro in it.
7105 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7107 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7108 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7109 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7110 (_dbus_marshal_test):
7111 Make the demarshalling routines align the pos argument.
7112 Add string marshalling tests and fix the obvious bugs
7115 2002-12-26 Havoc Pennington <hp@pobox.com>
7117 * dbus/dbus-auth.c: fixes fixes fixes
7119 * dbus/dbus-transport-unix.c: wire up support for
7120 encoding/decoding data on the wire
7122 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7123 (_dbus_auth_decode_data): append to target string
7124 instead of nuking it.
7126 2002-12-26 Havoc Pennington <hp@pobox.com>
7128 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7129 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7132 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7133 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7134 now). Main point is because I wanted unpack_uint32 to implement
7136 (_dbus_verbose_bytes): new function
7138 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7140 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7141 mechanism to handle a corrupt message stream
7142 (_dbus_message_loader_new): fix preallocation to only prealloc,
7145 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7146 (_dbus_string_test): enhance tests for copy/move and fix the
7149 * dbus/dbus-transport-unix.c: Hold references in more places to
7150 avoid reentrancy problems
7152 * dbus/dbus-transport.c: ditto
7154 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7155 leak reference count in no-message case
7157 * test/watch.c (do_mainloop): handle adding/removing watches
7158 during iteration over the watches. Also, ref the connection/server
7159 stored on a watch, so we don't try to mangle a destroyed one.
7161 * dbus/dbus-transport-unix.c (do_authentication): perform
7164 * dbus/dbus-auth.c (get_state): add a state
7165 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7166 (_dbus_auth_get_unused_bytes): append the unused bytes
7167 to the passed in string, rather than prepend
7169 * dbus/dbus-transport.c (_dbus_transport_init_base): create
7170 the auth conversation DBusAuth
7172 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7173 (_dbus_transport_new_for_domain_socket): when creating a
7174 transport, pass in whether it's a client-side or server-side
7175 transport so we know which DBusAuth to create
7177 2002-12-03 Havoc Pennington <hp@pobox.com>
7179 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7180 _after_ finalizing the derived members
7181 (unix_connection_set): unref watch if we fail to add it
7183 * dbus/dbus-connection.c (dbus_connection_unref): delete the
7184 transport first, so that the connection owned by the
7185 transport will be valid as the transport finalizes.
7187 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7188 if necessary, and remove watches from the connection.
7190 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7192 2002-12-26 Anders Carlsson <andersca@codefactory.se>
7194 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7195 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7196 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7197 (_dbus_marshal_test):
7198 * dbus/dbus-marshal.h:
7199 Add string marshal functions and have the demarshal functions
7200 return the new position.
7202 2002-12-25 Havoc Pennington <hp@pobox.com>
7204 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7205 it is a simple protocol that just maps directly to SASL.
7207 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7208 initial implementation, not actually used yet.
7210 * dbus/dbus-string.c (_dbus_string_find): new function
7211 (_dbus_string_equal): new function
7212 (_dbus_string_base64_encode): new function
7213 (_dbus_string_base64_decode): new function
7215 2002-12-25 Anders Carlsson <andersca@codefactory.se>
7218 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7219 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7220 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7221 (_dbus_demarshal_uint32), (_dbus_marshal_test):
7222 * dbus/dbus-marshal.h:
7223 * dbus/dbus-protocol.h:
7224 * dbus/dbus-test.c: (main):
7226 Add un-optimized marshalling/demarshalling routines.
7228 2002-12-25 Harri Porten <porten@kde.org>
7230 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7232 2002-12-24 Zack Rusin <zack@kde.org>
7234 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7235 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7238 2002-12-24 Havoc Pennington <hp@pobox.com>
7240 * glib/dbus-gthread.c: fix include
7242 * glib/dbus-glib.h: rename DBusMessageHandler for now.
7243 I think glib API needs to change, though, as you don't
7244 want to use DBusMessageFunction, you want to use the
7245 DBusMessageHandler object. Probably
7246 dbus_connection_open_with_g_main_loop()
7247 and dbus_connection_setup_g_main_loop() or something like that
7248 (but think of better names...) that just create a connection
7249 that has watch/timeout functions etc. already set up.
7251 * dbus/dbus-connection.c
7252 (dbus_connection_send_message_with_reply): new function just to
7253 show how the message handler helps us deal with replies.
7255 * dbus/dbus-list.c (_dbus_list_remove_last): new function
7257 * dbus/dbus-string.c (_dbus_string_test): free a string that
7260 * dbus/dbus-hash.c: use memory pools for the hash entries
7261 (rebuild_table): be more paranoid about overflow, and
7262 shrink table when we can
7263 (_dbus_hash_test): reduce number of sprintfs and write
7264 valid C89. Add tests for case where we grow and then
7265 shrink the hash table.
7267 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7269 * dbus/dbus-connection.c (dbus_connection_register_handler)
7270 (dbus_connection_unregister_handler): new functions
7272 * dbus/dbus-message.c (dbus_message_get_name): new
7274 * dbus/dbus-list.c: fix docs typo
7276 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7277 an object representing a handler for messages.
7279 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7282 * glib/dbus-gthread.c: (dbus_gthread_init):
7283 Don't use the gdbus prefix for public functions.
7285 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7289 Add GLib checks and fixup .pc files
7293 * glib/dbus-gmain.c: (gdbus_connection_prepare),
7294 (gdbus_connection_check), (gdbus_connection_dispatch),
7295 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7296 (dbus_connection_gsource_new):
7297 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7298 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7299 * glib/test-dbus-glib.c: (message_handler), (main):
7302 2002-12-15 Harri Porten <porten@kde.org>
7304 * autogen.sh: check for libtoolize before attempting to use it
7306 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7309 * .cvsignore: ignore more stamp files
7311 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7313 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7314 without make install.
7316 2002-12-15 Havoc Pennington <hp@pobox.com>
7318 * dbus/dbus-threads.c: add thread stubs that a higher library
7319 layer can fill in. e.g. the GLib wrapper might fill them in with
7320 GThread stuff. We still need to use this thread API to
7321 thread-safe-ize the library.
7323 2002-12-12 Havoc Pennington <hp@pobox.com>
7325 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7326 below new interfaces and include fewer system headers.
7328 * dbus/dbus-sysdeps.c (_dbus_read): new function
7329 (_dbus_write): new function
7330 (_dbus_write_two): new function
7331 (_dbus_connect_unix_socket): new function
7332 (_dbus_listen_unix_socket): new function
7334 * dbus/dbus-message-internal.h: change interfaces to use
7337 2002-12-11 Havoc Pennington <hp@pobox.com>
7339 * dbus/dbus-types.h: add dbus_unichar
7341 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7343 * dbus/dbus-connection.c (dbus_connection_send_message): return
7346 * dbus/dbus-transport.c: include dbus-watch.h
7348 * dbus/dbus-connection.c: include dbus-message-internal.h
7350 * HACKING: add file with coding guidelines stuff.
7352 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7353 handling here, for security purposes (as in vsftpd). Not actually
7354 using this class yet.
7356 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7357 system/libc usage here, as in vsftpd, for ease of auditing (and
7358 should also simplify portability). Haven't actually moved all the
7359 system/libc usage into here yet.
7361 2002-11-25 Havoc Pennington <hp@pobox.com>
7363 * dbus/dbus-internals.c (_dbus_verbose): fix to not
7364 always print the first verbose message.
7366 2002-11-24 Havoc Pennington <hp@pobox.com>
7368 * test/echo-client.c, test/echo-server.c: cheesy test
7371 * configure.in (AC_CHECK_FUNCS): check for writev
7373 * dbus/dbus-message.c (_dbus_message_get_network_data): new
7376 * dbus/dbus-list.c (_dbus_list_foreach): new function
7378 * dbus/dbus-internals.c (_dbus_verbose): new function
7380 * dbus/dbus-server.c, dbus/dbus-server.h: public object
7381 representing a server that listens for connections.
7383 * dbus/.cvsignore: create
7385 * dbus/dbus-errors.h, dbus/dbus-errors.c:
7386 public API for reporting errors
7388 * dbus/dbus-connection.h, dbus/dbus-connection.c:
7389 public object representing a connection that
7390 sends/receives messages. (Same object used for
7391 both client and server.)
7393 * dbus/dbus-transport.h, dbus/dbus-transport.c:
7394 Basic abstraction for different kinds of stream
7395 that we might read/write messages from.
7397 2002-11-23 Havoc Pennington <hp@pobox.com>
7399 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7402 * dbus/dbus-test.c (main): add list test, and include
7403 dbus-test.h as intended
7405 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7406 (_dbus_hash_table_remove_int): return value indicates
7407 whether the entry existed to remove
7409 * dbus/dbus-list.c: add linked list utility class,
7412 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7415 2002-11-23 Havoc Pennington <hp@pobox.com>
7417 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7418 DBUS_END_DECLS to nothing, that should fix this once and for all
7420 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7422 * dbus/dbus-message.c, dbus/dbus-hash.c:
7423 add some missing @brief
7425 2002-11-23 Havoc Pennington <hp@pobox.com>
7427 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7428 to avoid confusing Doxygen
7430 * dbus/dbus-hash.c: @} not }@
7432 * dbus/dbus-message.c (struct DBusMessage): split out
7435 2002-11-23 Havoc Pennington <hp@pobox.com>
7437 * configure.in: pile on more warning flags if using gcc
7439 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
7440 to document static functions
7442 * configure.in: add summary to end of configure so it
7443 looks nice and attractive
7445 * dbus/dbus-hash.c: finish implementation and write unit
7448 * configure.in: add --enable-tests to enable unit tests
7450 * dbus/dbus-test.c: test program to run unit tests
7451 for all files in dbus/*, initially runs a test for
7454 * dbus/dbus-internals.h: file to hold some internal utility stuff
7456 2002-11-22 Havoc Pennington <hp@redhat.com>
7458 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
7459 "ported" away from Tcl
7461 * dbus/dbus-types.h: header for types such as dbus_bool_t
7463 2002-11-22 Havoc Pennington <hp@redhat.com>
7465 * dbus/dbus.h: fixups for doc warnings
7467 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
7469 (QUIET): make it quiet so we can see warnings
7471 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
7473 2002-11-22 Havoc Pennington <hp@redhat.com>
7475 * Makefile.am: include "Doxyfile" target in all-local
7477 * configure.in: generate the Doxyfile
7479 * Doxyfile.in: move Doxyfile here, so we can use
7480 configure to generate a Doxyfile with the right
7483 2002-11-22 Havoc Pennington <hp@redhat.com>
7485 * dbus/dbus-message.c: move inline docs into .c file
7487 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
7488 so all docs are under doc/
7489 (MAN_EXTENSION): generate man pages. Use extension
7490 ".3dbus" which matches ".3qt" on my system,
7491 I guess this is OK, I don't know really.
7492 (FILE_PATTERNS): look for .c files not .h, makes sense
7495 2002-11-22 Havoc Pennington <hp@pobox.com>
7497 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
7498 because any app can be a server, and any app can be a client,
7499 the bus is a special kind of server.
7501 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
7503 * Doxyfile : adding. Still needs Makefile rules to be generated
7504 automatically (just run "doxygen" in the toplevel dir for now to
7507 * dbus/dbus-message.h : Adding sample docs (javadoc since
7508 resembles gtk-doc a little more)
7510 * dbus/dbus.h : Adding sample docs
7512 2002-11-21 Havoc Pennington <hp@redhat.com>
7514 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
7515 so we can allow ourselves to include files directly,
7516 instead of having to use dbus.h
7518 * dbus/dbus.h: fill in
7520 * dbus/dbus-message.h: sketch out a sample header file.
7521 Include griping if you include it directly instead of
7524 * dbus/dbus-macros.h: new file with macros for extern "C",
7525 TRUE/FALSE, NULL, etc.
7527 * doc/file-boilerplate.c: put include guards in here
7529 2002-11-21 Havoc Pennington <hp@redhat.com>
7531 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
7533 * COPYING: include the GPL as well, and license code
7534 under both AFL and GPL.
7536 2002-11-21 Havoc Pennington <hp@redhat.com>
7538 * acconfig.h: get rid of this
7540 * autogen.sh (run_configure): add --no-configure option
7542 * configure.in: remove AC_ARG_PROGRAM to make
7543 autoconf complain less. add AC_PREREQ.
7544 add AC_DEFINE third arg.
7546 2002-11-21 Anders Carlsson <andersca@codefactory.se>
7549 Fix references so we can distcheck.
7551 2002-11-21 Havoc Pennington <hp@redhat.com>
7553 * Initial module creation