1 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
3 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5 * doc/busconfig.dtd: update the DTD for the at_console attribute.
7 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8 messages after the first one (bug #1389).
10 * bus/dispatch.c (check_double_hello_message): add a test case for
11 the double hello message bug.
12 (check_existent_service_activation): fix check of spawning error.
14 2004-09-16 David Zeuthen <david@fubar.dk>
16 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
18 2004-09-12 David Zeuthen <david@fubar.dk>
20 Patch from Kay Sievers <kay.sievers@vrfy.org>
22 * bus/bus.c (bus_context_new):
26 Add commandline option --nofork to override configuration file
29 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
31 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
32 compilers don't like it (bug #974).
34 2004-09-04 Harald Fernengel <harry@kdevelop.org>
36 * qt/connection.*: Applied patch by Jérôme Lodewyck
37 <lodewyck@clipper.ens.fr> to integrate an existing
38 connection into the Qt eventloop
40 2004-08-30 Jon Trowbridge <trow@ximian.com>
42 * mono/BusDriver.cs: Added. This is a class for interacting with
43 the org.freedesktop.DBus service.
45 * mono/Message.cs: Added a mechanism to expose the message that is
46 currently being dispatched via the static Message.Current
47 property. Added Message.Sender and Message.Destination
50 * mono/Handler.cs: Expose the dispatched message via
51 Message.Current when handling method calls.
53 * mono/Service.cs: Expose the dispatched message via
54 Message.Current when handling signal emissions.
56 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
57 Connection.BaseService property.
59 2004-08-28 Havoc Pennington <hp@redhat.com>
61 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
63 More fixes from Steve Grubb
65 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
66 (_dbus_listen_tcp_socket): fix fd leak
68 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
69 EINTR to a bit lower in the code
71 2004-08-26 Jon Trowbridge <trow@ximian.com>
73 * bus/driver.c (bus_driver_handle_service_exists): Respond with
74 TRUE if we are inquiring about the existence of the built-in
75 org.freedesktop.DBus service.
77 2004-08-25 John Palmieri <johnp@redhat.com>
78 * bus/config-parser.c:
79 (struct PolicyType): Add POLICY_CONSOLE
80 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
81 (start_busconfig_child): Sets up console element when
82 <policy at_console=""> is encountered in a policy file
83 (append_rule_from_element): Convert console elements to console
87 (bus_policy_create_client_policy): Add console rules to the client
88 policy based on if the client is at the console
89 (bus_policy_append_console_rule): New function for adding a
90 console rule to a policy
91 (bus_policy_merge): Handle console rule merging
93 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
94 where we check for console user files
96 * dbus/dbus-sysdeps.c:
97 (_dbus_file_exists): New function which checks if the given
99 (_dbus_user_at_console): New function which does the system
100 specific process of checking if the user is at the console
102 * dbus/dbus-userdb.c:
103 (_dbus_is_console_user): New function converts a UID to user name
104 and then calls the system specific _dbus_user_at_console to
105 see if the user is at the console and therefor a console user
107 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
109 * bus/config-parser.c (set_limit):
110 * bus/dbus-daemon-1.1.in:
111 * test/data/valid-config-files/many-rules.conf: set the
112 max_match_rules_per_connection limt from the config file.
114 * doc/busconfig.dtd: update the DTD.
116 * bus/driver.c: remove some unused variables.
118 2004-08-24 Mikael Hallendal <micke@imendio.com>
120 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
121 it's been replaced by dbus_g_bus_get
123 2004-08-23 Colin Walters <walters@redhat.com>
125 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
127 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
129 * bus/selinux.c: Create a thread for policy reload notification.
130 (bus_selinux_get_policy_root): Implement.
132 * bus/config-parser.c (start_busconfig_child)
133 (bus_config_parser_content): Support SELinux-root relative
136 * configure.in <HAVE_SELINUX>: Add -lpthread.
138 * bus/test-main.c (test_pre_hook, test_post_hook): New.
139 (test_post_hook): Move memory checking into here.
140 (test_pre_hook, test_post_hook): Move SELinux checks in
141 here, but conditional on a DBUS_TEST_SELINUX environment
142 variable. Unfortunately we can't run the SELinux checks
143 as a normal user, since they won't have any permissions
144 for /selinux. So this will have to be tested manually
145 for now, until we have virtualization for most of
148 2004-08-23 Havoc Pennington <hp@redhat.com>
150 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
151 drop supplementary groups, suggested by Steve Grubb
153 2004-08-20 Colin Walters <walters@redhat.com>
155 * bus/config-parser.c (start_busconfig_child): Remove some unused
158 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
161 2004-08-17 Joe Shaw <joeshaw@novell.com>
163 * configure.in: If --enable-mono is passed in, if we can't find
166 * mono/Makefile.am: Use /gacutil to install assemblies into the
169 2004-08-12 Havoc Pennington <hp@redhat.com>
171 * NEWS: update for 0.22
173 * configure.in: release 0.22
175 2004-08-11 Colin Walters <walters@redhat.com>
177 * tools/dbus-send.c (main, usage): Add --reply-timeout
180 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
182 * bus/bus.c (process_config_first_time_only): get rid of an unused
183 DBusError that was causing a memoy leak (bug #989).
185 * dbus/dbus-keyring.c, dbus/dbus-message.c:
186 fix compilation on Solaris/Forte C (bug #974)
188 * bus/main.c (main): plug two minuscule memleaks.
190 2004-08-10 Havoc Pennington <hp@redhat.com>
192 * doc/dbus-tutorial.xml: add some more info on GLib bindings
194 2004-08-09 Havoc Pennington <hp@redhat.com>
196 * COPYING: switch to Academic Free License version 2.1 instead of
197 2.0, to resolve complaints about patent termination clause.
199 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
201 * README: added documentation for the --enable-python
204 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
206 * bus/config-parser.c (bus_config_parser_new): fix an invalid
207 _unref in the SELinux support.
209 * doc/busconfig.dtd: update DTD for SELinux support.
211 * bus/config-loader-libxml.c: fix error handler and parser
212 initialisation/cleanup. OOM test now works with libxml2 HEAD.
214 * configure.in: remove the warning about libxml2.
216 * dbus/dbus-bus.c: silence doxygen warning.
218 2004-07-31 Colin Walters <walters@redhat.com>
220 * configure.in: Move #error in SELinux check to its own line.
222 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
224 * dbus/dbus-internals.h (_DBUS_SET_OOM):
225 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
228 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
229 broken by the change in the _SET_OOM macros.
231 2004-07-31 Colin Walters <walters@redhat.com>
233 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
236 2004-07-31 Colin Walters <walters@redhat.com>
238 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
239 to correctly detect DBUS__ACQUIRE_SVC. Also add an
242 2004-07-24 Havoc Pennington <hp@redhat.com>
244 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
246 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
249 * configure.in: add --enable-selinux
251 * bus/policy.c (bus_policy_merge): add FIXME to a comment
253 * bus/main.c (main): initialize and shut down selinux
255 * bus/connection.c: store SELinux ID on each connection, to avoid
256 repeated getting of the string context and converting it into
259 * bus/bus.c (bus_context_get_policy): new accessor, though it
261 (bus_context_check_security_policy): check whether the security
262 context of sender connection can send to the security context of
265 * bus/config-parser.c: add parsing for <selinux> and <associate>
267 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
268 implement dbus_connection_get_unix_fd()
270 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
271 function, used by the selinux stuff
273 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
275 * bus/config-loader-libxml.c: complete the implementation of
276 libxml backend for config file loader. Doesn't work with full OOM
279 * configure.in: change error when selecting libxml into a warning.
281 * test/data/invalid-config-files: add two non-well-formed XML
284 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
286 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
287 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
288 be necessary to read all the buffer. (bug #894)
290 * bus/activation.c (bus_activation_activate_service): fix a
291 potential assertion failure (bug #896). Small optimization in the
292 case of auto-activation messages.
294 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
295 add test case for byte-through-vararg bug (#901). patch by Kimmo
298 2004-07-28 Anders Carlsson <andersca@gnome.org>
301 * python/dbus_bindings.pyx.in:
302 Add dbus.init_gthreads (), allow emit_signal to pass
303 arguments to the signal.
305 2004-07-24 Havoc Pennington <hp@redhat.com>
307 * AUTHORS: add some people, not really comprehensively, let me
310 2004-07-24 Havoc Pennington <hp@redhat.com>
312 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
315 * test/Makefile.am (DIST_SUBDIRS): here also
317 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
319 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
320 breaking build on Solaris, reported by Farhad Saberi on the ML.
322 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
323 va_arg invocation to account for integer promotion in the case of
324 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
326 * bus/services.c (bus_service_remove_owner): fix bug #902, use
327 _dbus_list_get_first_link, not _dbus_list_get_first.
329 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
331 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
332 handler functions so that the asserts in _dbus_object_subtree_unref
335 * dbus/dbus-transport-unix.c (do_reading):
336 _dbus_transport_queue_messages return value is of type
337 dbus_bool_t, not DBusDispatchStatus.
339 2004-07-19 David Zeuthen <david@fubar.dk>
341 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
344 (check_get_connection_unix_user): Debug says GetProperty; but the
345 method is called GetConnectionUnixUser
346 (check_get_connection_unix_process_id): New function
347 (bus_dispatch_test): Actually call check_get_connection_unix_user();
348 also call check_get_connection_unix_process_id()
351 (bus_driver_handle_get_connection_unix_process_id): New function,
352 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
356 (handle_server_data_external_mech): Set pid from the credentials
357 obtained from the socket
359 * dbus/dbus-connection.c:
360 (dbus_connection_get_unix_process_id): New function
362 * dbus/dbus-connection.h:
363 Add prototype for dbus_connection_get_unix_process_id
365 * dbus/dbus-transport.c:
366 (_dbus_transport_get_unix_process_id): New function
368 * dbus/dbus-transport.h:
369 Add prototype for _dbus_transport_get_unix_process_id
371 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
373 * dbus/dbus-message.c: Message counter fix, patch by Christian
374 Hammond <chipx86@gnupdate.org>
376 2004-07-18 Seth Nickell <seth@gnome.org>
379 * python/dbus_bindings.pyx.in:
380 * python/tests/test-client.py:
382 Add dbus.ByteArray and dbus_bindings.ByteArray
383 types so that byte streams can be passed back.
385 Give jdahlin the heaps of credit that are so
388 2004-07-12 Seth Nickell <seth@gnome.org>
392 Add message argument to the default object_method_handler
395 * python/dbus_bindings.pyx.in:
397 Automatically return NIL when passed an empty list
398 (we can't pass back a list since lists are typed
399 and we don't have any idea what type the the client
400 intended the list to be... :-( )
402 2004-07-10 Seth Nickell <seth@gnome.org>
404 * python/examples/Makefile.am:
406 Fix distcheck breakage caused by new examples.
408 2004-07-10 Seth Nickell <seth@gnome.org>
412 Add "message" argument to service-side dbus.Object
413 methods. This will break existing services written
414 using the python bindings, but will allow extraction
415 of all the message information (e.g. who its from).
417 Add improved "object oriented" signal handling/emission.
419 * python/examples/example-service.py:
423 * python/examples/example-signal-emitter.py:
424 * python/examples/example-signal-recipient.py:
426 Two new examples that show how to emit and receive
427 signals using the new APIs.
429 * python/examples/example-signals.py:
430 * python/examples/gconf-proxy-service.py:
431 * python/examples/gconf-proxy-service2.py:
433 Add "message" argument to service methods.
435 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
437 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
438 * dbus/bus.c (dbus_bus_get_unix_user)
439 * doc/dbus-specification.xml: implement GetConnectionUnixUser
440 method of org.freedesktop.DBus interface.
442 * bus/dispatch.c: test case
444 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
446 * python/Makefile.am: switched include directory from glib/ to dbus/
447 since dbus-glib.h moved
449 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
451 * configure.in: prevent building the gcj stuff and libxml loader
452 since they are broken.
454 2004-06-20 Havoc Pennington <hp@redhat.com>
456 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
457 codes from the dbus error names
459 * glib/dbus-glib.h: move to subdir dbus/ since it's included
460 as dbus/dbus-glib.h and that breakage is now visible due to
461 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
463 * glib/dbus-glib.h: s/gproxy/g_proxy/
465 * dbus/dbus-shared.h: new header to hold stuff shared with
468 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
471 * glib/dbus-glib.h (dbus_set_g_error): move to
474 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
475 of stuff to enable this
477 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
479 * a bunch of other changes with the same basic "separate glib
480 bindings from dbus.h" theme
482 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
484 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
486 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
488 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
490 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
491 the reply value of the ServiceExists message.
493 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
495 * python/dbus_bindings.pyx.in: No longer need to parse path
496 elements and pass them as arrays of strings. The C API now
497 accepts plain path strings.
498 (_build_parsed_path): removed
500 2004-06-07 Havoc Pennington <hp@redhat.com>
502 * doc/TODO: remove auto-activation item since it's done; sort
503 items by importance/milestone
505 2004-06-07 Havoc Pennington <hp@redhat.com>
507 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
508 random signature when using REQUIRED_FIELDS (this hack won't work
511 * dbus/dbus-message.c: change the signature to be a header field,
512 instead of message->signature special-case string. Incremental
513 step forward. Then we can fix up code to send the signature in the
514 message, then fix up code to validate said signature, then fix up
515 code to not put the typecodes inline, etc.
516 (load_one_message): don't make up the signature after the fact
517 (decode_header_data): require signature field for the known
520 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
522 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
524 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
526 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
528 * mono/Handler.cs: Updated to follow new path argument for
529 (un-)registering objects.
531 * mono/example/Makefile.am:
533 * configure.in: Bumped required version for mono and use new -pkg
536 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
538 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
539 registration functions take the path argument as char* instead of
542 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
543 split off the path decompostion part of
544 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
547 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
549 2004-06-02 Kristian Høgsberg <krh@redhat.com>
551 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
552 machine approach. A state is implemented as a function that
553 handles incoming events as specified for that state.
555 * doc/dbus-specification.xml: Update auth protocol state machine
556 specification to match implementation. Remove some leftover
559 2004-06-02 Kristian Høgsberg <krh@redhat.com>
561 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
562 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
565 * Doxyfile.in: remove deprecated options.
567 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
568 glib/test-thread.h, glib/test-thread-client.c,
569 glib/test-thread-server.c, glib/test-profile.c,
570 glib/test-dbus-glib.c: remove these unused files.
572 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
574 * dbus/dbus-object-tree.c
575 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
576 non-fallback handlers (bug #684).
577 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
578 (find_subtree_recurse): report wether the returned subtree is an
579 exact match or a "fallback" match higher up in the tree.
580 (object_tree_test_iteration): update test case.
582 2004-06-01 Seth Nickell <seth@gnome.org>
584 * python/dbus_bindings.pyx.in:
585 * python/tests/test-client.py:
587 Round off basic type support. Add dicts (yay!), and
588 remaining array types.
590 Make MessageIter more general so it works for dicts too.
592 Mark all loop variables as C integers.
594 2004-05-31 Havoc Pennington <hp@redhat.com>
596 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
599 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
601 * glib/dbus-glib-tool.c (main): set up to have a --self-test
602 option that runs the tests, and start filling in some code
603 including for starters just dumping the interfaces to stdout
605 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
607 * test/data/valid-introspection-files/lots-of-types.xml: test of
608 an example introspection file
610 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
613 2004-05-31 Seth Nickell <seth@gnome.org>
615 * python/dbus_bindings.pyx.in:
616 * python/tests/test-client.py:
621 Fix string array memory trashing bug... oops...
623 2004-05-30 Seth Nickell <seth@gnome.org>
627 Add a nicer-but-less-flexible alternate API for handling
628 calls to virtual objects in dbus.ObjectTree.
630 Screw up the argument order to the dbus.Object constructor
631 for consistency with dbus.ObjectTree (and to make dbus_methods
632 optional for future extension)
634 * python/examples/Makefile.am:
635 * python/examples/gconf-proxy-service.py:
636 * python/examples/gconf-proxy-service2.py:
638 Alternate implementation of gconf-proxy-service using the
639 nicer dbus.ObjectTree API.
641 * python/examples/example-service.py:
642 * python/tests/test-server.py
644 Reverse the argument order to deal with dbus.Object constructor
647 2004-05-30 Seth Nickell <seth@gnome.org>
649 * python/examples/example-client.py:
650 * python/examples/example-service.py:
652 Take it back. Lists seem to work but they're broken
653 in the test suite. Make the base examples use
656 2004-05-30 Seth Nickell <seth@gnome.org>
658 * python/dbus_bindings.pyx.in:
659 * python/tests/test-client.py:
661 Add some more tests and fix errors that crop up.
662 Unfortunately, currently it seems like marshalling
663 and unmarshalling of lists is completely broken :-(
665 2004-05-30 Seth Nickell <seth@gnome.org>
667 * python/dbus_bindings.pyx.in:
669 Add support for ObjectPath type.
673 Refactor message handling code to a common function.
675 * python/tests/test-client.py:
676 * python/tests/test-server.py:
678 Add tests that check to make sure values of all types
679 can be echoed from a service w/o mangling.
681 2004-05-29 Seth Nickell <seth@gnome.org>
685 Add ObjectTree class which allows implementation
686 of trees of "virtual" objects. Basically the python
687 wrapper for "register_fallback".
689 * python/examples/Makefile.am
690 * python/examples/gconf-proxy-client.py:
691 * python/examples/gconf-proxy-service.py:
693 Implement a simple GConf proxy service that supports
694 get/set on string and int GConf keys using the ObjectTree.
696 2004-05-29 Seth Nickell <seth@gnome.org>
699 * python/examples/example-client.py:
700 * python/examples/example-service.py:
701 * python/examples/list-system-services.py:
703 Add SessionBus, SystemBus and ActivationBus classes
704 so you don't need to know the special little BUS_TYPE
707 2004-05-29 Havoc Pennington <hp@redhat.com>
709 * bus/config-parser.c (process_test_valid_subdir): temporarily
710 stop testing config parser OOM handling, since expat has issues
711 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
713 * bus/dbus-daemon-1.1.in: change requested_reply to
714 send_requested_reply/receive_requested_reply so we can send the
715 replies, not just receive them.
717 * bus/config-parser.c: parse the new
718 send_requested_reply/receive_requested_reply
720 * bus/policy.c (bus_client_policy_check_can_send): add
721 requested_reply argument and use it
723 * bus/bus.c (bus_context_check_security_policy): pass through
724 requested_reply status to message send check
726 * bus/system.conf.in: adapt to requested_reply change
728 2004-05-28 Havoc Pennington <hp@redhat.com>
730 * test/glib/test-service-glib.c (main): remove unused variable
732 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
734 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
735 from the enum, no longer in use.
737 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
740 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
741 whether error_name passed in is a valid error name.
743 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
745 * dbus/dbus-message.c (dbus_message_get_args): Added support for
746 OBJECT_PATH and OBJECT_PATH_ARRAY
748 2004-05-28 Seth Nickell <seth@gnome.org>
750 * python/examples/Makefile.am:
752 Forget to add Makefile.am. Do not pass go.
754 2004-05-28 Michael Meeks <michael@ximian.com>
756 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
759 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
761 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
762 (_dbus_message_iter_get_basic_type_array): impl.
763 drastically simplify ~all relevant _get methods to use these.
764 (_dbus_message_iter_append_basic_array),
765 (dbus_message_iter_append_basic): impl
766 drastically simplify ~all relevant _append methods to use these.
768 * dbus/dbus-message-builder.c (parse_basic_type)
769 (parse_basic_array, lookup_basic_type): impl.
770 (_dbus_message_data_load): prune scads of duplicate /
773 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
774 (_dbus_demarshal_basic_type): implement,
775 (demarshal_and_validate_len/arg): beef up debug.
776 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
778 2004-05-27 Seth Nickell <seth@gnome.org>
781 * python/Makefile.am:
783 Include the example python apps in the tarball.
785 * python/examples/list-system-services.py
787 Add a python new example that fetches the list of services
790 2004-05-27 Seth Nickell <seth@gnome.org>
793 * python/dbus_bindings.pyx.in:
795 Fix failure to notify that a signal was not handled,
796 resulted in hung functions.
798 2004-05-25 Colin Walters <walters@redhat.com>
800 * tools/dbus-monitor.c (main): Monitor all types of messages.
802 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
804 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
805 which unregisters the object path and disposes the handler.
807 2004-05-23 Kristian Høgsberg <krh@redhat.com>
809 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
811 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
812 operands to && so we call dbus_message_iter_next () for the last
815 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
817 * dbus/dbus-object-tree.c
818 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
819 children even if the requested path isn't registered.
820 (object_tree_test_iteration): test object_tree_list_registered.
822 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
825 2004-05-20 Kristian Høgsberg <krh@redhat.com>
827 * doc/TODO: Remove resolved items.
829 * bus/expirelist.h (struct BusExpireList): remove unused n_items
832 * bus/connection.c (bus_connections_expect_reply): Enforce the
833 per-connection limit on pending replies.
835 Patch from Jon Trowbridge <trow@ximian.com>:
837 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
838 up a watch that triggers a config reload when one end of the pipe
840 (signal_handler): Instead of doing the config reload in our SIGHUP
841 handler, just write to the reload pipe and let the associated
842 watch handle the reload when control returns to the main loop.
844 * bus/driver.c (bus_driver_handle_reload_config): Added.
845 Implements a ReloadConfig method for requesting a configuration
846 file reload via the bus driver.
848 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
850 * HACKING: Updated release instructions concerning the wiki page.
852 2004-05-18 Kristian Høgsberg <krh@redhat.com>
854 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
855 filter against auth->allowed_mechs; we only add allowed mechs in
858 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
859 ALLOWED_MECHS to auth-script format so we can set the list of
862 * data/auth/client-out-of-mechanisms.auth-script: New test to
863 check client disconnects when it is out of mechanisms to try.
865 * dbus/dbus-auth.c (process_command): Remove check for lines
866 longer that 1 MB; we only buffer up maximum 16 kB.
868 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
869 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
870 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
871 assume there might be unused bytes.
873 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
874 client-out-of-mechs, it is handled in process_reject(). Move check
875 for max failures to send_rejected(), as it's a server-only thing.
877 * dbus/dbus-auth.c: Factor out protocol reply code into functions
878 send_auth(), send_data(), send_rejected(), send_error(),
879 send_ok(), send_begin() and send_cancel().
881 2004-05-17 Kristian Høgsberg <krh@redhat.com>
883 Remove base64 encoding, replace with hex encoding. Original patch
884 from trow@ximian.com, added error handling.
886 * dbus/dbus-string.c (_dbus_string_base64_encode)
887 (_dbus_string_base64_decode): Remove.
888 (_dbus_string_hex_decode): Add end_return argument so we can
889 distinguish between OOM and invalid hex encoding.
890 (_dbus_string_test): Remove base64 tests and add test case for
893 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
894 Replace base64 with hex.
896 * test/data/auth/invalid-hex-encoding.auth-script: New test case
897 for invalid hex encoded data in auth protocol.
899 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
901 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
904 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
906 * mono/dbus-sharp.dll.config.in: Added for GAC
907 * mono/dbus-sharp.snk: Added for GAC
908 * mono/Assembly.cs.in: Added for GAC
909 * mono/Makefile.am: Changes for GAC installation
910 * configure.in: Added refs for dbus-sharp.dll.config.in and
911 Assembly.cs.in. More fixes for mono testing
912 * mono/example/Makefile.am: Changed var to CSC
913 * Makefile.am: Changed flag name to DBUS_USE_CSC
915 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
917 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
918 * mono/doc/*: Added documentation framework
919 * configure.in: Added monodoc check
920 * README: Added description of mono configure flags
922 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
924 * doc/dbus-specification.xml: Added a "Required" column to the
925 header fields table and changed the "zero or more" verbage in
926 the above paragraph to read "The header must contain the required
927 named header fields and zero or more of the optional named header
929 * test/data/invalid-messages/*.message: Added the required PATH
930 named header field to the tests so that they don't fail on
933 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
935 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
936 the stack by implicitly defining variable and parameter types and
937 removing the hack of defining C pointers as python objects and later
940 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
942 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
944 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
946 * mono/DBusType/Dict.cs: Handle empty dicts
947 * mono/DBusType/Array.cs: Handle empty arrays
948 * mono/Arguments.cs: Handle empty arguments
950 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
952 * dbus-sharp.pc.in: Modified to include include Libs and Requires
955 2004-04-25 Kristian Høgsberg <krh@redhat.com>
957 * test/data/valid-messages/standard-*.message: Update message
958 test scripts to new header field names.
960 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
962 * test/break-loader.c (randomly_do_n_things): tracked down buffer
963 overflow to times_we_did_each_thing array which would chop off the
964 first character of the failure_dir string. Increased the size of
965 the array to 7 to reflect the number of random mutation functions
968 2004-04-21 Kristian Høgsberg <krh@redhat.com>
970 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
971 unix_server->watch here, it is unreffed in disconnect.
972 (_dbus_server_new_for_tcp_socket): convert NULL host to
973 "localhost" here so we don't append NULL to address.
975 * dbus/dbus-server.c (_dbus_server_test): Add test case for
976 various addresses, including tcp with no explicit host.
978 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
980 * dbus/dbus-message.c (decode_header_data, decode_string_field):
981 fix incorrect setting of .name_offset in the HeaderField (it was
982 off by two bytes, positioned right after the name and typecode)
984 * bus/bus.c (bus_context_new, bus_context_unref): test before
985 calling dbus_server_free_data_slot and _dbus_user_database_unref
988 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
991 2004-04-19 Kristian Høgsberg <krh@redhat.com>
993 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
994 _dbus_poll() instead of select().
996 2004-04-15 Jon Trowbridge <trow@ximian.com>
998 * bus/main.c (signal_handler): Reload the configuration files
1000 (main): Set up our SIGHUP handler.
1002 * bus/bus.c (struct BusContext): Store the config file, user and
1003 fork flag in the BusContext.
1004 (process_config_first_time_only): Added. Contains the code
1005 (previously in bus_context_new) for setting up the BusContext from
1006 the BusConfigParser that should only be run the first time the
1007 config files are read.
1008 (process_config_every_time): Added. Contains the code (previously
1009 in bus_context_new) for setting up the BusContext from the
1010 BusConfigParser that should be run every time the config files are
1012 (load_config): Added. Builds a BusConfigParser from the config
1013 files and passes the resulting structure off to
1014 process_config_first_time_only (assuming this is the first time)
1015 and process_config_every_time.
1016 (bus_context_new): All of the config-related code has been moved
1017 to process_config_first_time_only and process_config_every_time.
1018 Now this function just does the non-config-related initializations
1019 and calls load_config.
1020 (bus_context_reload_config): Added.
1022 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1024 * bus/driver.c (bus_driver_handle_get_service_owner):
1025 implement a GetServiceOwner method.
1026 * doc/dbus-specification.xml: document it.
1027 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1029 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1030 implement, using the bus GetServiceOwner method.
1032 * test/glib/test-dbus-glib.c:
1033 use dbus_gproxy_new_for_service_owner so that we can receive the
1036 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1038 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1039 dbus/dbus-message.c, dbus/dbus-protocol.h
1040 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1042 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1043 dbus/dbus-message.c, dbus/dbus-protocol.h
1044 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1046 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1047 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1048 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1050 * doc/dbus-specification.xml (Header Fields Table):
1051 s/SERVICE/DESTINATION
1052 s/SENDER_SERVICE/SENDER
1055 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1057 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1060 2004-04-13 Michael Meeks <michael@ximian.com>
1062 * glib/dbus-gobject.c (handle_introspect): split out
1063 (introspect_properties): this.
1064 (handle_introspect): implement this.
1066 * test/glib/Makefile.am: use the absolute path so the bus
1067 daemon's chdir ("/") doesn't kill us dead.
1069 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1071 2004-04-12 Jon Trowbridge <trow@ximian.com>
1073 * bus/config-parser.c (struct BusConfigParser): Added
1074 included_files field.
1075 (seen_include): Added. Checks whether or not a file has already
1076 been included by any parent BusConfigParser.
1077 (bus_config_parser_new): Copy the parent's included_files.
1078 (include_file): Track which files have been included, and fail on
1079 circular inclusions.
1080 (process_test_valid_subdir): Changed printf to report if we are
1081 testing valid or invalid conf files.
1082 (all_are_equiv): Changed printf to be a bit clearer about
1083 what we are actually doing.
1084 (bus_config_parser_test): Test invalid configuration files.
1086 2004-04-09 Jon Trowbridge <trow@ximian.com>
1088 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1089 argument. If non-null, the newly-constructed BusConfigParser will
1090 be initialized with the parent's BusLimits instead of the default
1092 (include_file): When including a config file, pass in
1093 the current parser as the parent and then copy the BusLimits
1094 from the included BusConfigParser pack to the current parser.
1095 (process_test_valid_subdir): Renamed from process_test_subdir.
1096 (process_test_equiv_subdir): Added. Walks through a directory,
1097 descending into each subdirectory and loading the config files
1098 it finds there. If any subdirectory contains two config files
1099 that don't produce identical BusConfigParser structs, fail.
1100 For now, the BusConfigParser's BusPolicies are not compared.
1101 (bus_config_parser_test): Call both process_test_valid_subdir and
1102 process_test_equiv_subdir.
1104 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1105 argument and pass it along to the call to bus_config_parser_new.
1106 Also made a few small changes to allow this code to compile.
1108 * bus/config-loader-expat.c (bus_config_load): Take a parent
1109 argument and pass it along to the call to bus_config_parser_new.
1111 * bus/bus.c (bus_context_new): Load the config file
1112 with a NULL parent argument.
1114 2004-03-29 Michael Meeks <michael@ximian.com>
1116 * glib/dbus-gobject.c (introspect_properties): split
1117 out, fix mangled 'while' flow control.
1118 (introspect_signals): implement.
1119 (handle_introspect): update.
1121 2004-03-29 Michael Meeks <michael@ximian.com>
1123 * glib/dbus-gobject.c (set_object_property): split out /
1124 re-work, use the property type, and not the message type(!)
1125 (get_object_property): ditto.
1127 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1128 (dbus_gvalue_marshal): make this code re-usable, needed
1129 for signals too, also on both proxy and server side.
1130 Re-write for more efficiency / readability.
1132 2004-03-29 Michael Meeks <michael@ximian.com>
1134 * dbus/dbus-message.c
1135 (dbus_message_new_error_printf): impl.
1137 * dbus/dbus-connection.c
1138 (dbus_connection_unregister_object_path): fix warning.
1140 * configure.in: fix no-mono-installed situation.
1142 2004-03-27 Havoc Pennington <hp@redhat.com>
1144 Patch from Timo Teräs:
1146 * tools/dbus-send.c (main): if --print-reply, assume type is
1147 method call; support boolean type args
1149 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1150 bunch of memleak and logic bugs
1152 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1154 * mono/Arguments.cs:
1155 * mono/Introspector.cs:
1157 * mono/InterfaceProxy.cs:
1159 * mono/ProxyBuilder.cs:
1161 Added InterfaceProxy class to avoid building proxies for every
1165 * dbus-message.c (dbus_message_append_args_valist)
1166 (dbus_message_iter_get_object_path)
1167 (dbus_message_iter_get_object_path_array)
1168 (dbus_message_iter_append_object_path)
1169 (dbus_message_iter_append_object_path_array):
1170 Added object_path iter functions to handle OBJECT_PATH arguments
1172 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1174 First checkin of mono bindings.
1177 Build stuff for the bindings
1178 * dbus-sharp.pc.in: Added for pkgconfig
1180 2004-03-21 Havoc Pennington <hp@redhat.com>
1182 * test/test-service.c (main): remove debug spew
1184 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1186 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1189 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1190 (dbus_message_iter_init_array_iterator)
1191 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1192 indicate whether the iterator is empty
1194 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1197 2004-03-19 Havoc Pennington <hp@redhat.com>
1199 * NEWS: 0.21 updates
1201 * configure.in: 0.21
1203 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1205 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1206 you don't need pyrex to make dist
1208 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1211 2004-03-18 Richard Hult <richard@imendio.com>
1213 * dbus/dbus-message.c (dbus_message_get_auto_activation)
1214 (dbus_message_set_auto_activation): Add doxygen docs.
1216 2004-03-16 Richard Hult <richard@imendio.com>
1218 * bus/activation.c: (bus_activation_service_created),
1219 (bus_activation_send_pending_auto_activation_messages),
1220 (bus_activation_activate_service):
1222 * bus/dispatch.c: (bus_dispatch),
1223 (check_nonexistent_service_auto_activation),
1224 (check_service_auto_activated),
1225 (check_segfault_service_auto_activation),
1226 (check_existent_service_auto_activation), (bus_dispatch_test):
1227 * bus/driver.c: (bus_driver_handle_activate_service):
1228 * bus/services.c: (bus_registry_acquire_service):
1229 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1230 (dbus_message_get_auto_activation):
1231 * dbus/dbus-message.h:
1232 * dbus/dbus-protocol.h: Implement auto-activation.
1234 * doc/dbus-specification.xml: Add auto-activation to the spec.
1236 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
1238 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1239 fix a bug with CUSTOM types.
1241 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1242 a unit test for this bug (used to fail).
1244 2004-03-12 Mikael Hallendal <micke@imendio.com>
1247 (babysitter_watch_callback): notify all pending activations waiting for
1248 the same exec that the activation failed.
1249 (bus_activation_activate_service): shortcut the activation if we
1250 already waiting for the same executable to start up.
1252 2004-03-12 Mikael Hallendal <micke@imendio.com>
1255 - Added service file reloading.
1256 Each service files directory is kept in an hash table in
1257 BusActivation and each BusActivationEntry knows what .service-file it
1258 was read from. So when you try to activate a service the bus will
1259 check if it's been updated, removed or if new .service-files has
1261 - Test code at the bottom for the service file reloading.
1262 * bus/test-main.c: (main):
1264 - added service reloading test.
1265 * dbus/dbus-sysdeps.c:
1266 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1268 2004-03-08 Michael Meeks <michael@ximian.com>
1270 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
1271 bail immediately if disconnected, to avoid busy loop.
1273 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1274 cleanup cut/paste/inefficiency.
1276 2004-03-01 David Zeuthen <david@fubar.dk>
1278 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1279 bug where args were used twice. This bug resulted in a segfault
1280 on a Debian/PPC system when starting the messagebus daemon. Include
1281 dbus-sysdeps.h for DBUS_VA_COPY
1283 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1285 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1286 appropriate va_copy implementation. From GLib
1288 2004-02-24 Joe Shaw <joe@ximian.com>
1290 * bus/services.c (bus_registry_acquire_service): We need to pass
1291 in the service name to dbus_set_error() to prevent a crash.
1293 2003-12-26 Anders Carlsson <andersca@gnome.org>
1295 * AUTHORS: Reveal my True identity.
1297 2003-12-17 Mikael Hallendal <micke@imendio.com>
1299 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1300 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1302 2003-12-13 Mikael Hallendal <micke@imendio.com>
1304 * doc/TODO: Added not about better error check of configuration files.
1306 2003-12-02 Richard Hult <richard@imendio.com>
1308 * Update AFL version to 2.0 throughout the source files to reflect
1309 the update that was done a while ago.
1311 2003-12-02 Richard Hult <richard@imendio.com>
1313 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1314 wrote_dict_key to FALSE on the iter that the dict is appended to,
1315 just like when appending other types. Fixes a bug where a dict
1316 couldn't be put inside a dict.
1317 (dbus_message_iter_append_dict_key): Fix typo in warning message.
1318 (message_iter_test, _dbus_message_test): Add test case for dict
1321 2003-12-01 David Zeuthen <david@fubar.dk>
1323 * python/dbus.py: Add the actual message when calling the reciever
1324 of a signal such that parameters can be inspected. Add the method
1325 remove_signal_receiver
1327 2003-11-26 Mikael Hallendal <micke@imendio.com>
1331 * glib/*.[ch]: Made ref functions return the pointer
1333 2003-11-25 Zack Rusin <zack@kde.org>
1335 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1337 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
1340 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
1341 the Integrator and to better fit with the server,
1343 2003-11-24 Zack Rusin <zack@kde.org>
1345 * qt/connection.h, qt/connection.cpp: removing initDbus method since
1346 the integrator handles it now
1348 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1349 since QTimer wasn't really meant to be used the way DBusTimeout is
1351 2003-11-24 Zack Rusin <zack@kde.org>
1353 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
1354 Integrator class which integrates D-BUS with the Qt event loop,
1356 * qt/connection.h, qt/connection.cpp: Move all the code which
1357 was dealing with D-BUS integration to the Integrator class,
1358 and start using Integrator,
1360 2003-11-23 Zack Rusin <zack@kde.org>
1362 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
1365 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1366 switching namespaces to DBusQt, reworking the class,
1368 * Makefile.cvs: switching dependencies so that it matches KDE
1371 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
1374 2003-11-19 Havoc Pennington <hp@redhat.com>
1378 * configure.in: bump version to 0.20
1380 * configure.in (have_qt): add yet another place to look for qt
1381 (someone hand trolltech a .pc file...)
1383 2003-11-01 Havoc Pennington <hp@redhat.com>
1385 * doc/dbus-specification.xml: add state machine docs on the auth
1386 protocol; just a first draft, I'm sure it's wrong.
1388 2003-10-28 David Zeuthen <david@fubar.dk>
1390 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1391 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1393 2003-10-28 Havoc Pennington <hp@redhat.com>
1395 * dbus/dbus-message.c (get_next_field): delete unused function
1397 2003-10-28 Havoc Pennington <hp@redhat.com>
1399 * bus/expirelist.c (do_expiration_with_current_time): detect
1400 failure of the expire_func due to OOM
1402 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1404 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1405 NoReply error that's now created by the bus when the service exits
1407 2003-10-28 Havoc Pennington <hp@redhat.com>
1409 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1410 tests for set_path, set_interface, set_member, etc.
1412 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1414 * dbus/dbus-message.c (set_string_field): always just delete and
1415 re-append the field; accept NULL for deletion
1416 (re_align_fields_recurse): reimplement
1418 2003-10-26 Havoc Pennington <hp@redhat.com>
1420 * dbus/dbus-connection.c: fix docs to properly describe the
1421 disconnected message
1422 (_dbus_connection_notify_disconnected): remove this function;
1423 we can't synchronously add the disconnected message, we have to
1424 do it after we've queued any remaining real messages
1425 (_dbus_connection_get_dispatch_status_unlocked): queue the
1426 disconnect message only if the transport has finished queueing all
1427 its real messages and is disconnected.
1428 (dbus_connection_disconnect): update the dispatch status here
1430 2003-10-22 Havoc Pennington <hp@redhat.com>
1432 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1434 * bus/connection.c (bus_transaction_send_from_driver): set the
1435 destination to the connection's base service
1437 2003-10-20 Havoc Pennington <hp@redhat.com>
1439 hmm, make check is currently not passing.
1441 * doc/dbus-specification.xml: add requirement that custom type
1442 names follow the same rules as interface names.
1444 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1445 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1448 * doc/dbus-specification.xml: update type codes to match
1449 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1450 CUSTOM. Add type OBJECT_PATH to the spec.
1452 2003-10-17 Havoc Pennington <hp@redhat.com>
1454 * bus/driver.c (create_unique_client_name): use "." as separator
1455 in base service names instead of '-'
1457 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1458 byte at the end of the string
1460 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1461 optimization macros since string validation seems to be a slow
1464 * doc/dbus-specification.xml: restrict valid
1465 service/interface/member/error names. Add test suite code for the
1468 * dbus/dbus-string.c: limit service/interface/member/error names
1471 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
1472 format arg to verbose spew
1474 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
1475 memory, return instead of g_error
1477 * test/test-service.c (path_message_func): support emitting a
1480 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
1481 activation bus type if DBUS_BUS_ACTIVATION was set; default to
1482 assuming the activation bus was the session bus so that services
1483 started manually will still register.
1484 (init_connections_unlocked): fix so that in OOM situation we get
1485 the same semantics when retrying the function
1487 * test/test-service.c (main): change to use path registration, to
1488 test those codepaths; register with DBUS_BUS_ACTIVATION rather
1489 than DBUS_BUS_SESSION
1491 2003-10-16 Havoc Pennington <hp@redhat.com>
1493 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
1495 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
1496 coverage of the tests
1497 (coverage-report.txt): don't move the .da and .bbg files around
1499 2003-10-16 Havoc Pennington <hp@redhat.com>
1501 * bus/bus.c (struct BusContext): remove struct field I didn't mean
1504 2003-10-16 Havoc Pennington <hp@redhat.com>
1506 * bus/connection.c (bus_pending_reply_expired): either cancel or
1508 (bus_connections_check_reply): use unlink, not remove_link, as we
1509 don't want to free the link; fixes double free mess
1511 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
1512 where no reply was received
1514 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
1517 * bus/signals.c (match_rule_matches): add special cases for the
1518 bus driver, so you can match on sender/destination for it.
1520 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
1521 DBUS_PRINT_BACKTRACE is set
1523 * dbus/dbus-internals.c: add pid to assertion failure messages
1525 * dbus/dbus-connection.c: add message type code to the debug spew
1527 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
1528 sender=foo not service=foo
1530 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
1531 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
1532 DBUS_ACTIVATION_ADDRESS instead
1534 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
1535 DBUS_SYSTEM_BUS_ADDRESS if appropriate
1537 * bus/bus.c (bus_context_new): handle OOM copying bus type into
1540 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
1541 (dbus_message_iter_get_object_path_array): new function (half
1542 finished, disabled for the moment)
1544 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
1545 DBUS_MESSAGE_TYPE_ERROR
1547 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
1548 avoid redirecting stderr to /dev/null
1549 (babysit): close stdin if not doing the "exit_with_session" thing
1551 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
1552 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
1553 stdout/stdin, so things don't get confused
1555 * bus/system.conf.in: fix to allow replies, I modified .conf
1556 instead of .conf.in again.
1558 2003-10-14 David Zeuthen <david@fubar.dk>
1560 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
1561 argtype to arg_type when raising unknown arg type exception.
1562 Changed type list to reflect the changes in dbus-protocol.h so
1563 the bindings actually work.
1565 2003-10-14 Havoc Pennington <hp@redhat.com>
1567 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
1568 to have a bug keeping it from outputting the .da files sometimes
1569 (string_get_string): don't append garbage nul bytes to the string.
1571 2003-10-15 Seth Nickell <seth@gnome.org>
1573 * python/Makefile.am:
1575 Include dbus_h_wrapper.h in the dist tarball.
1577 2003-10-14 Havoc Pennington <hp@redhat.com>
1579 * bus/bus.c (bus_context_check_security_policy): revamp this to
1580 work more sanely with new policy-based requested reply setup
1582 * bus/connection.c (bus_transaction_send_from_driver): set bus
1583 driver messages as no reply
1585 * bus/policy.c (bus_client_policy_check_can_receive): handle a
1586 requested_reply attribute on allow/deny rules
1588 * bus/system.conf: add <allow requested_reply="true"/>
1590 * bus/driver.c (bus_driver_handle_message): fix check for replies
1591 sent to the bus driver, which was backward. How did this ever work
1592 at all though? I think I'm missing something.
1594 * dbus/dbus-message.c (decode_header_data): require error and
1595 method return messages to have a reply serial field to be valid
1596 (_dbus_message_loader_queue_messages): break up this function;
1597 validate that reply serial and plain serial are nonzero;
1598 clean up the OOM/error handling.
1599 (get_uint_field): don't return -1 from this
1600 (dbus_message_create_header): fix signed/unsigned bug
1602 * bus/connection.c (bus_connections_expect_reply): save serial of
1603 the incoming message, not reply serial
1605 2003-10-14 Havoc Pennington <hp@redhat.com>
1607 * bus/connection.c: implement pending reply tracking using
1610 * bus/bus.c (bus_context_check_security_policy): verify that a
1611 reply is pending in order to allow a reply to be sent. Deny
1612 messages of unknown type.
1614 * bus/dbus-daemon-1.1.in: update to mention new resource limits
1616 * bus/bus.c (bus_context_get_max_replies_per_connection): new
1617 (bus_context_get_reply_timeout): new
1619 2003-10-13 Seth Nickell <seth@gnome.org>
1621 * python/Makefile.am:
1623 Pass "make distcheck": remove a couple files from DIST_FILES
1624 that weren't included in the final version.
1626 2003-10-12 Havoc Pennington <hp@pobox.com>
1628 Added test code that 1) starts an actual bus daemon and 2) uses
1629 DBusGProxy; fixed bugs that were revealed by the test. Lots
1630 more testing possible, but this is the basic framework.
1632 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
1633 empty proxy lists from the proxy list hash
1635 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
1636 couple of return_if_fail checks
1638 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
1639 to allocate, so everything is cleared to NULL as it should be.
1641 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
1642 source as data to dbus_connection_set_timeout_functions() as the
1643 timeout functions expected
1645 * test/glib/run-test.sh: add a little script to start up a message
1646 bus and run tests using it
1648 * tools/dbus-launch.1: updates
1650 * tools/dbus-launch.c (main): add --config-file option
1652 * tools/dbus-launch.c (main): remove confusing else if (runprog)
1653 that could never be reached.
1655 * dbus/dbus-message.c (dbus_message_new_method_return)
1656 (dbus_message_new_error, dbus_message_new_signal): set the
1657 no-reply-expected flag on all these. Redundant, but may
1658 as well be consistent.
1660 2003-10-11 Havoc Pennington <hp@pobox.com>
1662 * test/decode-gcov.c (function_solve_graph): make broken block
1663 graph a nonfatal error since it seems to be broken. Need to debug
1666 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
1667 can't just check type > INVALID < LAST anymore
1669 * dbus/dbus-message.c (dbus_message_get_signature): new function
1670 (dbus_message_has_signature): new function
1671 (struct DBusMessage): add signature field (right now it isn't sent
1672 over the wire, just generated on the fly)
1673 (dbus_message_copy): copy the signature, and init strings to
1674 proper length to avoid some reallocs
1675 (dbus_message_iter_init_array_iterator): return void, since it
1677 (dbus_message_iter_init_dict_iterator): return void since it can't fail
1678 (_dbus_message_loader_queue_messages): add silly temporary hack to
1679 fill in message->signature on load
1681 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
1682 characters, so they are relatively human-readable.
1684 2003-10-11 Havoc Pennington <hp@pobox.com>
1686 * dbus/dbus-message.c (_dbus_message_test): add more test
1687 coverage, but #if 0 for now since they uncover a bug
1688 not fixed yet; I think in re_align_field_recurse()
1689 (re_align_field_recurse): add FIXME about broken assertion
1691 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
1693 * bus/connection.c: share a couple code bits with expirelist.c
1695 * bus/expirelist.h, bus/expirelist.c: implement a generic
1696 expire-items-after-N-seconds facility, was going to share between
1697 expiring connections and replies, decided not to use for expiring
1698 connections for now.
1700 * COPYING: include AFL 2.0 (still need to change all the file headers)
1702 2003-10-09 Havoc Pennington <hp@redhat.com>
1704 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
1705 gcc 3.3. Not that we do anything about it yet.
1707 * bus/signals.c (bus_match_rule_parse): impose max length on the
1710 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
1712 2003-10-09 Havoc Pennington <hp@redhat.com>
1714 Make matching rules theoretically work (add parser).
1716 * bus/bus.c (bus_context_check_security_policy): fix up to handle
1717 the case where destination is explicitly specified as bus driver
1718 and someone else is eavesdropping.
1720 * bus/policy.c (bus_client_policy_check_can_receive): fix up
1721 definition of eavesdropping and assertion
1723 * tools/dbus-send.c (main): use dbus_message_type_from_string
1725 * bus/signals.c (bus_match_rule_parse): implement
1727 * dbus/dbus-message.c (dbus_message_type_from_string): new
1729 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
1731 2003-10-02 Havoc Pennington <hp@pobox.com>
1733 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
1734 dbus_gproxy_oneway_call
1736 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
1737 (dbus_server_setup_with_g_main): fix to allow calling them more
1738 than once on the same args
1739 (dbus_bus_get_with_g_main): new function
1741 2003-10-02 Havoc Pennington <hp@redhat.com>
1743 * doc/dbus-tutorial.xml: write some stuff
1745 2003-09-29 Havoc Pennington <hp@pobox.com>
1747 * configure.in: split checks for Doxygen from XML docs, check for
1750 * doc/Makefile.am: XML-ify all the docs, and add a blank
1753 2003-09-29 Havoc Pennington <hp@pobox.com>
1755 * Merge dbus-object-names branch. To see the entire patch
1756 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
1757 it's huuuuge though.
1758 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
1760 2003-09-28 Havoc Pennington <hp@pobox.com>
1762 * HACKING: update to reflect new server
1764 2003-09-26 Seth Nickell <seth@gnome.org>
1767 * python/examples/example-signals.py:
1769 Start implementing some notions of signals. The API
1770 is really terrible, but they sort of work (with the
1771 exception of being able to filter by service, and to
1772 transmit signals *as* a particular service). Need to
1773 figure out how to make messages come from the service
1776 * python/dbus_bindings.pyx.in:
1778 Removed duplicate message_handler callbacks.
1780 2003-09-25 Havoc Pennington <hp@redhat.com>
1782 * bus/session.conf.in: fix my mess
1784 2003-09-25 Havoc Pennington <hp@pobox.com>
1786 * bus/session.conf.in: fix security policy, reported by Seth Nickell
1788 2003-09-25 Seth Nickell <seth@gnome.org>
1790 * python/examples/example-service.py:
1792 Johan notices complete wrong code in example-service, but
1793 completely wrong in a way that works exactly the same (!).
1794 Johan is confused, how could this possibly work? Example
1795 code fails to serve purpose of making things clear.
1798 2003-09-25 Mark McLoughlin <mark@skynet.ie>
1800 * doc/dbus-specification.sgml: don't require header fields
1801 to be 4-byte aligned and specify that fields should be
1802 distinguished from padding by the fact that zero is not
1805 * doc/TODO: remove re-alignment item and add item to doc
1806 the OBJECT_PATH type.
1808 * dbus/dbus-message.c:
1809 (HeaderField): rename the original member to value_offset
1810 and introduce a name_offset member to keep track of where
1811 the field actually begins.
1812 (adjust_field_offsets): remove.
1813 (append_int_field), (append_uint_field),
1814 (append_string_field): don't align the start of the header
1815 field to a 4-byte boundary.
1816 (get_next_field): impl finding the next marhsalled field
1817 after a given field.
1818 (re_align_field_recurse): impl re-aligning a number of
1819 already marshalled fields.
1820 (delete_field): impl deleting a field of any type and
1821 re-aligning any following fields.
1822 (delete_int_or_uint_field), (delete_string_field): remove.
1823 (set_int_field), (set_uint_field): no need to re-check
1824 that we have the correct type for the field.
1825 (set_string_field): ditto and impl re-aligning any
1827 (decode_header_data): update to take into account that
1828 the fields aren't 4-byte aligned any more and the new
1829 way to distinguish padding from header fields. Also,
1830 don't exit when there is too much header padding.
1831 (process_test_subdir): print the directory.
1832 (_dbus_message_test): add test to make sure a following
1833 field is re-aligned correctly after field deletion.
1835 * dbus/dbus-string.[ch]:
1836 (_dbus_string_insert_bytes): rename from insert_byte and
1837 allow the insert of multiple bytes.
1838 (_dbus_string_test): test inserting multiple bytes.
1840 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
1841 warning note to docs about having to re-align any
1842 marshalled values following the string.
1844 * dbus/dbus-message-builder.c:
1845 (append_string_field), (_dbus_message_data_load):
1846 don't align the header field.
1848 * dbus/dbus-auth.c: (process_test_subdir): print the
1851 * test/break-loader.c: (randomly_add_one_byte): upd. for
1854 * test/data/invalid-messages/bad-header-field-alignment.message:
1857 * test/data/valid-messages/unknown-header-field.message: shove
1858 a dict in the unknown field.
1860 2003-09-25 Seth Nickell <seth@gnome.org>
1863 * python/dbus_bindings.pyx.in:
1865 Handle return values.
1867 * python/examples/example-client.py:
1868 * python/examples/example-service.py:
1870 Pass back return values from the service to the client.
1872 2003-09-24 Seth Nickell <seth@gnome.org>
1876 Connect Object methods (when you are sharing an object) up... pass
1877 in a list of methods to be shared. Sharing all the methods just
1878 worked out too weird. You can now create nice Services over the
1881 * python/dbus_bindings.pyx.in:
1883 Keep references to user_data tuples passed into C functions so
1884 Python doesn't garbage collect on us.
1886 Implement MethodReturn and Error subclasses of Message for creating
1887 DBusMessage's of those types.
1889 * python/examples/example-client.py:
1890 * python/examples/example-service.py:
1892 Simple example code showing both how create DBus services and objects,
1893 and how to use them.
1895 2003-09-23 Havoc Pennington <hp@pobox.com>
1897 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
1899 2003-09-23 Havoc Pennington <hp@redhat.com>
1901 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
1902 (dbus_gproxy_disconnect_signal): implement
1903 (dbus_gproxy_manager_remove_signal_match): implement
1904 (dbus_gproxy_manager_add_signal_match): implement
1905 (dbus_gproxy_oneway_call): implement
1907 2003-09-23 Havoc Pennington <hp@pobox.com>
1909 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
1910 subclass. This means dropping the transparent thread safety of the
1911 proxy; you now need a separate proxy per-thread, or your own
1912 locking on the proxy. Probably right anyway.
1913 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
1915 2003-09-22 Havoc Pennington <hp@redhat.com>
1917 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
1919 2003-09-21 Seth Nickell <seth@gnome.org>
1921 First checkin of the Python bindings.
1923 * python/.cvsignore:
1924 * python/Makefile.am:
1925 * python/dbus_bindings.pyx.in:
1926 * python/dbus_h_wrapper.h:
1928 Pieces for Pyrex to operate on, building a dbus_bindings.so
1929 python module for low-level access to the DBus APIs.
1933 High-level Python module for accessing DBus objects.
1938 Build stuff for the python bindings.
1942 Extra macro needed for finding the Python C header files.
1944 2003-09-21 Havoc Pennington <hp@pobox.com>
1946 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
1947 implementing the proxy manager, didn't get very far.
1949 * dbus/dbus-bus.c (dbus_bus_add_match): new
1950 (dbus_bus_remove_match): new
1952 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
1953 path_name argument; adjust the other not-yet-implemented
1954 gproxy constructors to be what I think they should be.
1956 2003-09-21 Havoc Pennington <hp@pobox.com>
1958 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
1959 by default for message bus connections.
1961 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
1962 exit_on_disconnect flag is set and we process the disconnected
1964 (dbus_connection_set_exit_on_disconnect): new function
1966 2003-09-21 Havoc Pennington <hp@pobox.com>
1968 Get matching rules mostly working in the bus; only actually
1969 parsing the rule text remains. However, the client side of
1970 "signal connections" hasn't been started, this patch is only the
1973 * dbus/dispatch.c: fix for the matching rules changes
1975 * bus/driver.c (bus_driver_handle_remove_match)
1976 (bus_driver_handle_add_match): send an ack reply from these
1979 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
1980 arguments, reported by Seth Nickell
1982 * bus/config-parser.c (append_rule_from_element): support
1983 eavesdrop=true|false attribute on policies so match rules
1984 can be prevented from snooping on the system bus.
1986 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
1987 and "destination" in attribute names; fix some docs bugs;
1988 add eavesdrop=true|false attribute
1990 * bus/driver.c (bus_driver_handle_add_match)
1991 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
1994 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
1995 rid of broadcast service concept, signals are just always broadcast
1997 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
1998 mostly implement matching rules stuff (currently only exposed as signal
2001 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2003 * doc/dbus-specification.sgml: Change the header field name
2004 to be an enum and update the rest of the spec to reference
2005 the fields using the conventinal name.
2007 * dbus/dbus-protocol.h: update to reflect the spec.
2009 * doc/TODO: add item to remove the 4 byte alignment requirement.
2011 * dbus/dbus-message.c: Remove the code to generalise the
2012 header/body length and serial number header fields as named
2013 header fields so we can reference field names using the
2015 (append_int_field), (append_uint_field), (append_string_field):
2016 Append the field name as a byte rather than four chars.
2017 (delete_int_or_uint_field), (delete_string_field): reflect the
2018 fact that the field name and typecode now occupy 4 bytes instead
2020 (decode_string_field), (decode_header_data): update to reflect
2021 protocol changes and move the field specific encoding from
2022 decode_string_field() back into decode_header_data().
2024 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2025 Add utility to aid debugging.
2027 * dbus/dbus-message-builder.c:
2028 (append_string_field), (_dbus_message_data_load): Update to
2029 reflect protocol changes; Change the FIELD_NAME directive
2030 to HEADER_FIELD and allow it to take the field's conventional
2031 name rather than the actual value.
2033 * test/data/*/*.message: Update to use HEADER_FIELD instead
2034 of FIELD_NAME; Always align the header on an 8 byte boundary
2035 *before* updating the header length.
2037 2003-09-15 Havoc Pennington <hp@pobox.com>
2039 * dbus/dbus-pending-call.c: add the get/set object data
2040 boilerplate as for DBusConnection, etc. Use generic object data
2041 for the notify callback.
2043 * glib/dbus-gparser.c (parse_node): parse child nodes
2045 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2047 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2048 contain functions shared between the convenience lib and the
2051 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2052 -export-symbols-regex to the GLib library
2054 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2055 fix the locking in here, and add a default handler for
2056 Introspect() that just returns sub-nodes.
2058 2003-09-14 Havoc Pennington <hp@pobox.com>
2060 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2061 rather than gfoo consistent
2063 * glib/dbus-gproxy.h: delete for now, move contents to
2064 dbus-glib.h, because the include files don't work right since we
2065 aren't in the dbus/ subdir.
2067 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2068 (dbus_gproxy_end_call): finish
2069 (dbus_gproxy_begin_call): finish
2071 * glib/dbus-gmain.c (dbus_set_g_error): new
2073 * glib/dbus-gobject.c (handle_introspect): include information
2074 about child nodes in the introspection
2076 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2077 function to help in implementation of introspection
2079 * dbus/dbus-object-tree.c
2080 (_dbus_object_tree_list_registered_and_unlock): new function
2082 2003-09-12 Havoc Pennington <hp@pobox.com>
2084 * glib/dbus-gidl.h: add common base class for all the foo_info
2087 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2090 * test/Makefile.am: try test srcdir -ef . in addition to test
2091 srcdir = ., one of them should work (yeah lame)
2093 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2096 * glib/dbus-gparser.h: make description_load routines return
2097 NodeInfo* not Parser*
2099 * Makefile.am (SUBDIRS): build test dir after all library dirs
2101 * configure.in: add GTK+ detection
2103 2003-09-07 Havoc Pennington <hp@pobox.com>
2105 * Make Doxygen contented.
2107 2003-09-07 Havoc Pennington <hp@pobox.com>
2109 * doc/dbus-specification.sgml: more updates
2111 2003-09-06 Havoc Pennington <hp@pobox.com>
2113 * doc/dbus-specification.sgml: partial updates
2115 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2116 zillionth time; hopefully I edited the right file this time.
2118 * bus/config-parser.c (append_rule_from_element): support
2119 send_type, send_path, receive_type, receive_path
2121 * bus/policy.c: add message type and path to the list of things
2122 that can be "firewalled"
2124 2003-09-06 Havoc Pennington <hp@pobox.com>
2126 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2127 (dbus_connection_register_object_path): make this not handle
2128 messages to paths below the given path
2130 2003-09-03 Havoc Pennington <hp@pobox.com>
2132 * test/glib/Makefile.am: add this with random glib-linked test
2135 * glib/Makefile.am: remove the random test programs from here,
2136 leave only the unit tests
2138 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2139 uscore/javacaps conversion, and fix
2140 (get_object_property, set_object_property): change to .NET
2141 convention for mapping props to methods, set_FooBar/get_FooBar,
2142 since one language has such a convention we may as well copy it.
2143 Plus real methods in either getFooBar or get_foo_bar style won't
2144 collide with this convention.
2146 2003-09-01 Havoc Pennington <hp@pobox.com>
2148 * glib/dbus-gparser.c: implement
2150 * glib/dbus-gobject.c: start implementing skeletons support
2152 * configure.in: when disabling checks/assert, also define
2153 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2155 2003-09-01 Havoc Pennington <hp@pobox.com>
2157 * glib/Makefile.am: rearrange a bunch of files and get "make
2158 check" framework set up
2160 2003-08-31 Havoc Pennington <hp@pobox.com>
2162 * fix build with --disable-tests
2164 2003-08-30 Havoc Pennington <hp@pobox.com>
2166 * dbus/dbus-connection.c: purge DBusMessageHandler
2168 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2169 use callbacks everywhere
2171 2003-08-30 Havoc Pennington <hp@pobox.com>
2173 * test/data/valid-config-files/system.d/test.conf: change to
2174 root for the user so warnings don't get printed
2176 * dbus/dbus-message.c: add dbus_message_get_path,
2177 dbus_message_set_path
2179 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2180 dispatching to a path
2182 * dbus/dbus-string.c (_dbus_string_validate_path): add
2184 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2185 (_dbus_marshal_object_path): implement
2187 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2188 to contain the path to the target object
2189 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2190 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2192 2003-08-30 Havoc Pennington <hp@pobox.com>
2194 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2196 2003-08-29 Havoc Pennington <hp@pobox.com>
2198 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2200 (struct DBusObjectSubtree): shrink this
2201 a lot, since we may have a lot of them
2202 (_dbus_object_tree_free_all_unlocked): implement
2203 (_dbus_object_tree_dispatch_and_unlock): implement
2205 2003-08-29 Havoc Pennington <hp@pobox.com>
2207 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2209 2003-08-28 Havoc Pennington <hp@pobox.com>
2213 * dbus/dbus-connection.c: port to no ObjectID, create a
2214 DBusObjectTree, rename ObjectTree to ObjectPath in public API
2216 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
2217 everything except UnregisterFunction and MessageFunction
2219 * dbus/dbus-marshal.c: port away from DBusObjectID,
2220 add DBUS_TYPE_OBJECT_PATH
2222 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
2223 dbus/dbus-objectid.[hc]: remove these, we are moving to
2224 path-based object IDs
2226 2003-08-25 Havoc Pennington <hp@pobox.com>
2228 Just noticed that dbus_message_test is hosed, I wonder when I
2229 broke that. I thought make check was passing earlier...
2231 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
2232 container tree, will replace most of dbus-object-registry
2234 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2237 2003-08-19 Havoc Pennington <hp@pobox.com>
2239 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2240 (dbus_message_is_error): fix this function
2242 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2245 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2246 reflect clarified man page
2247 (bus_client_policy_check_can_send): ditto
2249 * bus/session.conf.in: fixup
2251 * bus/system.conf.in: fixup
2253 2003-08-18 Havoc Pennington <hp@redhat.com>
2255 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2257 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2258 dumb bug created earlier (wrong order of args to
2259 decode_header_data())
2261 * tools/dbus-send.c: port
2263 * tools/dbus-print-message.c (print_message): port
2265 * test/data/*messages: port all messages over
2267 * dbus/dbus-message-builder.c: support including
2270 * bus/driver.c: port over
2272 * bus/dispatch.c: port over to new stuff
2274 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2275 rename disconnect signal to "Disconnected"
2277 2003-08-17 Havoc Pennington <hp@pobox.com>
2279 This doesn't compile yet, but syncing up so I can hack on it from
2280 work. What are branches for if not broken code? ;-)
2282 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2283 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2284 DBUS_HEADER_FIELD_ERROR_NAME
2286 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2287 for the interface+member pairs
2288 (string_hash): change to use g_str_hash algorithm
2289 (find_direct_function, find_string_function): refactor these to
2292 * dbus/dbus-message.c: port all of this over to support
2293 interface/member fields instead of name field
2295 * dbus/dbus-object-registry.c: port over
2297 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2298 from _dbus_string_validate_name
2300 * bus/dbus-daemon-1.1: change file format for the
2301 <deny>/<allow> stuff to match new message naming scheme
2303 * bus/policy.c: port over
2305 * bus/config-parser.c: parse new format
2307 2003-08-16 Havoc Pennington <hp@pobox.com>
2309 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2312 * glib/dbus-gproxy.c: some hacking
2314 2003-08-15 Havoc Pennington <hp@redhat.com>
2316 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2318 * dbus/dbus-connection.c
2319 (dbus_connection_send_with_reply_and_block): factor out internals;
2320 change to convert any error replies to DBusError instead of
2321 returning them as a message
2323 2003-08-15 Havoc Pennington <hp@pobox.com>
2325 * dbus/dbus-connection.c,
2326 dbus/dbus-pending-call.c: Finish the pending call stuff
2328 2003-08-14 Havoc Pennington <hp@redhat.com>
2330 * dbus/dbus-pending-call.c: start on new object that will replace
2331 DBusMessageHandler and ReplyHandlerData for tracking outstanding
2334 * dbus/dbus-gproxy.c: start on proxy object used to communicate
2335 with remote interfaces
2337 * dbus/dbus-gidl.c: do the boring boilerplate in here
2339 2003-08-12 Havoc Pennington <hp@pobox.com>
2341 * bus/dispatch.c (bus_dispatch): make this return proper
2342 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2344 * dbus/dbus-errors.c (dbus_set_error): use
2345 _dbus_string_append_printf_valist
2347 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2348 (_dbus_string_append_printf): new
2350 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2353 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2354 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2355 message is unhandled.
2357 2003-08-11 Havoc Pennington <hp@pobox.com>
2359 * bus/test.c (client_disconnect_handler): change to return
2360 HANDLED (would have been REMOVE_MESSAGE)
2362 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2363 HANDLED/NOT_YET_HANDLED instead of
2364 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
2367 2003-08-10 Havoc Pennington <hp@pobox.com>
2369 * tools/dbus-send.c (main): add --type argument, for now
2370 supporting only method_call and signal types.
2372 * tools/dbus-print-message.c: print message type
2374 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2375 init connection->objects
2377 * doc/dbus-specification.sgml: fix sgml
2379 * bus/*.c: port over to object-instance API changes
2381 * test/test-service.c: ditto
2383 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2384 name, we will have to fix up the rest of the code to also handle
2386 (dbus_message_new): generic message-creation call
2387 (set_string_field): allow appending name field
2389 2003-08-06 Havoc Pennington <hp@pobox.com>
2391 * dbus/dbus-object-registry.c: implement signal connection
2394 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2396 * dbus/dbus-internals.c (_dbus_memdup): new function
2398 2003-08-02 Havoc Pennington <hp@pobox.com>
2400 * dbus/dbus-message.c (dbus_message_get_no_reply)
2401 (dbus_message_set_no_reply): add these and remove
2402 set_is_error/get_is_error
2404 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
2405 remove the ERROR flag, since there's now an ERROR type
2407 2003-08-01 Havoc Pennington <hp@pobox.com>
2409 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2412 * dbus/dbus-message.c (dbus_message_get_type): new function
2414 * doc/dbus-specification.sgml: add "type" byte to messages
2416 2003-08-01 Havoc Pennington <hp@pobox.com>
2418 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2419 a message type enum to distinguish kinds of message
2420 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
2421 that need not be replied to
2423 2003-08-01 Havoc Pennington <hp@pobox.com>
2425 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2426 (unpack_8_octets): fix no-64-bit-int bug
2428 * dbus/dbus-object-registry.c (validate_id): validate the
2429 connection ID bits, not just the instance ID.
2431 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2432 the connection-global 33 bits of the object ID
2434 * dbus/dbus-object-registry.c (info_from_entry): fill in
2435 object ID in the new way
2437 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2438 define server/client/instance bits.
2440 2003-07-30 Havoc Pennington <hp@pobox.com>
2442 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2445 2003-07-13 Havoc Pennington <hp@pobox.com>
2447 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2448 fields to DBusObjectVTable and DBusObjectInfo
2450 2003-07-12 Havoc Pennington <hp@pobox.com>
2452 * dbus/dbus-object-registry.c: implement unit test,
2453 fix bugs discovered in process
2455 * dbus/dbus-connection.c: remove handler_table and
2456 register_handler(), add DBusObjectRegistry usage
2458 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2459 (dbus_object_id_set_null): new functions
2461 2003-07-08 Havoc Pennington <hp@pobox.com>
2463 * dbus/dbus-object.c: implement some of this
2465 * dbus/dbus-object-registry.c
2466 (_dbus_object_registry_add_and_unlock): fill in the object_id out
2468 (_dbus_object_registry_new): handle OOM
2470 2003-07-08 Havoc Pennington <hp@pobox.com>
2472 * dbus/dbus-object.h: sketch out an API for registering objects
2473 with a connection, that allows us to use as little as 24 bytes
2474 per object and lets application code represent an object in
2475 any conceivable way.
2477 * dbus/dbus-object-registry.c: implement the hard bits of the
2478 DBusConnection aspect of object API. Not yet wired up.
2480 2003-07-06 Havoc Pennington <hp@pobox.com>
2482 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
2483 (_dbus_marshal_object_id): new
2484 (_dbus_demarshal_object_id): new
2485 (_dbus_marshal_get_arg_end_pos): support object ID type, and
2486 consolidate identical switch cases. Don't conditionalize handling
2487 of DBUS_TYPE_UINT64, need to handle the type always.
2488 (_dbus_marshal_validate_arg): consolidate identical cases, and
2489 handle DBUS_TYPE_OBJECT_ID
2491 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
2493 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
2495 2003-09-28 Havoc Pennington <hp@pobox.com>
2499 2003-09-28 Havoc Pennington <hp@pobox.com>
2501 * doc/Makefile.am (dbus-specification.html): testing a funky hack
2502 to work with Debian db2html
2504 2003-09-28 Havoc Pennington <hp@pobox.com>
2506 * configure.in: 0.13
2508 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
2509 stylesheet-images for benefit of Debian
2511 Change back to using filesystem-linked sockets for the system
2512 bus, so only root can create the default system bus address.
2514 * bus/system.conf.in: change to use
2515 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2517 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
2520 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2521 here, and AC_DEFINE DBUS_SYSTEM_PATH
2523 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2526 * doc/busconfig.dtd:
2529 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2531 * doc/dbus-specification.sgml:
2532 Add activation reply values.
2534 2003-08-05 Havoc Pennington <hp@redhat.com>
2536 * configure.in: 0.12
2538 2003-08-05 Anders Carlsson <andersca@codefactory.se>
2540 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
2541 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
2542 (add_watch), (remove_watch), (create_source):
2543 Refcount fds, fixes some reentrancy issues.
2545 2003-07-30 Havoc Pennington <hp@redhat.com>
2547 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
2548 bus address to be abstract if we have abstract sockets
2552 2003-07-28 Havoc Pennington <hp@redhat.com>
2554 * bus/messagebus.in: fix to avoid processname/servicename
2555 confusion, from Michael Kearey
2556 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
2558 2003-07-23 Havoc Pennington <hp@pobox.com>
2560 * dbus/dbus-message.c (dbus_message_iter_get_named):
2561 fix from Andy Hanton to remove broken "+1"
2563 2003-07-16 Havoc Pennington <hp@pobox.com>
2565 * tools/dbus-launch.c (babysit): close stdout/stderr in the
2566 babysitter process, as suggested by Thomas Leonard, so
2567 an "eval `dbus-launch --exit-with-session`" will actually
2570 2003-07-16 Havoc Pennington <hp@pobox.com>
2572 * configure.in: print out EXPANDED_* variables in the summary at
2573 the end; clean up the code that computes EXPANDED_ variables and
2574 get the ones using exec_prefix right. Should make things work
2575 when you build without --prefix
2577 2003-06-29 Havoc Pennington <hp@pobox.com>
2579 * mono/Test.cs (class Test): fire up a main loop and run it
2581 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
2582 done once, the app has to do it
2584 2003-06-26 Havoc Pennington <hp@pobox.com>
2586 * mono/Connection.cs: set up connection with the glib main loop
2588 2003-07-01 Havoc Pennington <hp@redhat.com>
2590 * doc/dbus-specification.sgml: clarify the format of a type code,
2591 change suggested by Jim Blandy
2593 2003-06-29 Miloslav Trmac <mitr@volny.cz>
2596 * tools/Makefile.am: Don't assume srcdir == builddir.
2598 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
2599 the allocated block.
2600 (_dbus_memory_test): New function.
2601 * dbus/dbus-test.h: Add _dbus_memory_test ().
2602 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
2604 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
2606 (dbus_message_new): Remove obsolete @todo.
2608 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
2609 (_dbus_marshal_set_uint64): Fix comment.
2611 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
2612 hardcode FIELD_REPLY_SERIAL.
2614 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
2615 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
2617 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
2618 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
2620 2003-06-24 Havoc Pennington <hp@pobox.com>
2622 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
2624 2003-06-23 Anders Carlsson <andersca@codefactory.se>
2630 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
2631 * gcj/org/.cvsignore:
2632 * gcj/org/Makefile.am:
2633 * gcj/org/freedesktop/.cvsignore:
2634 * gcj/org/freedesktop/Makefile.am:
2635 * gcj/org/freedesktop/dbus/.cvsignore:
2636 * gcj/org/freedesktop/dbus/Makefile.am:
2637 * gcj/org/freedesktop/dbus/Message.java: (Message),
2639 * gcj/org/freedesktop/dbus/natMessage.cc:
2640 Fix the build system.
2642 2003-06-22 Havoc Pennington <hp@pobox.com>
2644 * mono/Connection.cs: add more bindings
2646 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
2649 2003-06-22 Havoc Pennington <hp@pobox.com>
2651 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
2652 Start wrapping more stuff.
2654 2003-06-22 Havoc Pennington <hp@pobox.com>
2656 * mono/Message.cs: implement Message.Wrap() that ensures we only
2657 have a single C# wrapper per DBusMessage, assuming it works which
2658 it probably doesn't.
2660 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
2661 (dbus_message_free_data_slot): new
2662 (dbus_message_set_data): new
2663 (dbus_message_get_data): new
2665 2003-06-22 Havoc Pennington <hp@pobox.com>
2667 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
2668 (_dbus_data_slot_allocator_alloc): rework these to keep a
2669 reference count on each slot and automatically manage a global
2670 slot ID variable passed in by address
2672 * bus/bus.c: convert to new dataslot API
2674 * dbus/dbus-bus.c: convert to new dataslot API
2676 * dbus/dbus-connection.c: convert to new dataslot API
2678 * dbus/dbus-server.c: convert to new dataslot API
2680 * glib/dbus-gmain.c: ditto
2684 * bus/connection.c: ditto
2686 2003-06-22 Anders Carlsson <andersca@codefactory.se>
2688 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
2689 after the gcj checks so that the correct configuration tags
2690 will be added to libtool.
2692 * dbus-glib-1.pc.in: No need to specify any includes since
2693 dbus-1.pc.in has those.
2695 2003-06-22 Havoc Pennington <hp@pobox.com>
2697 * mono/*, gcj/*, configure.in, Makefile.am:
2698 Check in makefiles and subdirs for mono and gcj bindings.
2699 Neither binding actually exists, just trying to get through
2700 all the build and other boring bits.
2702 2003-06-21 Philip Blundell <philb@gnu.org>
2704 * tools/dbus-monitor.1: Updated.
2706 * tools/dbus-send.1: Likewise.
2708 2003-06-20 Anders Carlsson <andersca@codefactory.se>
2710 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
2711 for hangup and error after checking read so we won't discard
2712 pending data if both hangup and read are set.
2714 2003-06-19 Philip Blundell <philb@gnu.org>
2716 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
2718 * tools/dbus-send.c: Accept both --system and --session.
2720 * tools/dbus-monitor.c: Same here.
2722 2003-06-19 Anders Carlsson <andersca@codefactory.se>
2724 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
2725 from C++ (Patch by Miloslav Trmac).
2727 2003-06-15 Joe Shaw <joe@assbarn.com>
2729 * configure.in: Check for socklen_t.
2731 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
2733 * test/test-segfault.c: Add #include <sys/time.h>
2735 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
2736 dbus-launch needs it.
2738 2003-06-09 Havoc Pennington <hp@redhat.com>
2740 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
2741 SUN_LEN, it breaks abstract socket usage
2743 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
2746 2003-06-04 Havoc Pennington <hp@pobox.com>
2748 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
2749 using unix:abstract=/foo, and when listening in a tmpdir
2750 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
2752 * dbus/dbus-transport.c (_dbus_transport_open): support
2755 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2756 support abstract sockets
2758 * dbus/dbus-transport-unix.c
2759 (_dbus_transport_new_for_domain_socket): support abstract sockets
2761 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
2762 toggle as an argument, implement abstract namespace support
2763 (_dbus_listen_unix_socket): ditto
2765 * configure.in: add --enable-abstract-sockets and implement
2766 a configure check for autodetection of the right value.
2768 2003-06-01 Havoc Pennington <hp@pobox.com>
2770 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
2771 in /tmp (though on Linux this will end up being useless,
2772 when we add abstract namespace support)
2774 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
2777 2003-05-28 Colin Walters <walters@verbum.org>
2779 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
2781 2003-05-18 Anders Carlsson <andersca@codefactory.se>
2783 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
2785 2003-05-17 Colin Walters <walters@gnu.org>
2787 * tools/dbus-send.c: Don't exit with an error code if --help was
2788 passed. Default to using the session bus instead of the system
2791 * tools/dbus-launch.c: Ditto.
2793 * tools/dbus-monitor.c: Ditto.
2795 * tools/dbus-send.1: Update with new arguments.
2797 * tools/dbus-launch.c: Emit code to export variables. New
2798 arguments -s and -c to specify shell syntax, and a bit of code to
2799 autodetect syntax. Also, allow specifying a program to run.
2801 * tools/dbus-launch.1: Update with new arguments.
2803 * tools/dbus-send.1: Ditto.
2805 * tools/dbus-monitor.1: Ditto.
2807 2003-05-17 Havoc Pennington <hp@pobox.com>
2809 * bus/config-parser.c (merge_included): merge in policies from
2810 child configuration file.
2812 * bus/policy.c (bus_policy_merge): function to merge two policies
2815 2003-05-16 Havoc Pennington <hp@redhat.com>
2817 * dbus/dbus-connection.c: disable verbose lock spew
2819 * tools/dbus-send.c: add --print-reply command line option
2821 * tools/dbus-print-message.h (print_message): new util function
2822 shared by dbus-send and dbus-monitor
2824 * tools/dbus-monitor.c (handler_func): exit on disconnect
2826 * dbus/dbus-transport-unix.c (do_reading): if the transport is
2827 disconnected, don't try to use the read_watch
2829 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
2830 so we can find this bug more easily
2832 2003-05-16 Havoc Pennington <hp@redhat.com>
2834 * bus/policy.c (free_rule_list_func): avoid a crash when passed
2835 NULL as DBusHashTable is annoyingly likely to do.
2837 2003-05-16 Colin Walters <walters@verbum.org>
2839 * tools/dbus-monitor.c: Add --session argument and usage()
2842 * tools/dbus-monitor.1: Update with new --session arg.
2844 * bus/Makefile.am (install-data-hook): Create
2845 $(libdir)/dbus-1.0/services so that the session bus is happy.
2847 2003-05-15 Havoc Pennington <hp@redhat.com>
2849 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
2850 on non-x86. ifdef's are evil.
2852 2003-05-15 Havoc Pennington <hp@redhat.com>
2854 * configure.in: 0.11
2858 * bus/Makefile.am (initddir): apparently we are supposed to put
2859 init scripts in /etc/rc.d/init.d not /etc/init.d
2861 * bus/Makefile.am: remove the "you must --enable-tests to make
2862 check" as it broke distcheck
2864 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
2866 2003-05-13 James Willcox <jwillcox@gnome.org>
2869 * bus/activation.c: (bus_activation_service_created),
2870 (bus_activation_activate_service):
2871 * bus/driver.c: (bus_driver_send_service_deleted),
2872 (bus_driver_send_service_created), (bus_driver_send_service_lost),
2873 (bus_driver_send_service_acquired),
2874 (bus_driver_send_welcome_message),
2875 (bus_driver_handle_list_services):
2876 * bus/session.conf.in:
2877 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
2878 (dbus_bus_service_exists), (dbus_bus_activate_service):
2881 Add some convenience API which lets you activate a service, and did a
2882 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
2883 and dbus_message_get_args()
2885 2003-05-11 Havoc Pennington <hp@pobox.com>
2887 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
2888 calling _dbus_marshal_validate_arg() for every byte in a byte
2891 * dbus/dbus-message-handler.c: use atomic reference counting to
2892 reduce number of locks slightly; the global lock in here sucks
2894 * dbus/dbus-connection.c
2895 (_dbus_connection_update_dispatch_status_and_unlock): variant of
2896 update_dispatch_status that can be called with lock held; then use
2897 in a couple places to reduce locking/unlocking
2898 (dbus_connection_send): hold the lock over the whole function
2899 instead of acquiring it twice.
2901 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
2903 * bus/connection.c (bus_connections_setup_connection): fix access
2904 to already-freed memory.
2906 * dbus/dbus-connection.c: keep a little cache of linked list
2907 nodes, to avoid using the global linked list alloc lock in the
2908 normal send-message case. Instead we just use the connection lock
2909 that we already have to take.
2911 * dbus/dbus-list.c (_dbus_list_find_last): new function
2913 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
2914 change to use a struct for the atomic type; fix docs,
2915 they return value before increment, not after increment.
2917 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
2918 (_dbus_string_append_8_aligned): new functions to try to
2919 microoptimize this operation.
2920 (reallocate_for_length): break this out of set_length(), to
2921 improve profile info, and also so we can consider inlining the
2924 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
2925 strings with some preallocation, cuts down on our calls to realloc
2926 a fair bit. Though if we can get the "move entire string to empty
2927 string" optimization below to kick in here, it would be better.
2929 * dbus/dbus-string.c (_dbus_string_move): just call
2930 _dbus_string_move_len
2931 (_dbus_string_move_len): add a special case for moving
2932 an entire string into an empty string; we can just
2933 swap the string data instead of doing any reallocs.
2934 (_dbus_string_init_preallocated): new function
2936 2003-05-11 Havoc Pennington <hp@pobox.com>
2938 Write a "test-profile" that does echo client-server with threads;
2939 profile reveals lock contention, memcpy/realloc of buffers, and
2940 UTF-8 validation as hot spots. 20% of lock contention eliminated
2941 with dbus_atomic_inc/dec implementation on x86. Much remaining
2942 contention is global mempool locks for GList and DBusList.
2944 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
2947 * dbus/dbus-connection.c (struct DBusConnection): use
2948 dbus_atomic_t for the reference count
2950 * dbus/dbus-message.c (struct DBusMessage): declare
2951 dbus_atomic_t values as volatile
2953 * configure.in: code to detect ability to use atomic integer
2954 operations in assembly, from GLib patch
2956 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
2957 time, tired of it being wrong in threads and forked processes
2959 * glib/test-profile.c: a little program to bounce messages back
2960 and forth between threads and eat CPU
2962 * dbus/dbus-connection.c: add debug spew macros for debugging
2963 thread locks; include config.h at top; fix deadlock in
2964 dbus_connection_flush()
2966 2003-05-08 Havoc Pennington <hp@pobox.com>
2968 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
2969 data from getting written, and there wasn't a good reason to
2972 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
2973 dbus_verbose lines in test coverage
2974 (main): add list of functions sorted by # of untested blocks
2975 to the coverage report
2977 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
2979 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
2981 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
2982 extend test coverage
2984 * test/data/auth/cancel.auth-script: test canceling an
2987 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
2988 aren't used. in CVS history if we end up needing them.
2990 2003-05-04 Havoc Pennington <hp@pobox.com>
2992 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
2995 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
2996 function, which assumed length was in # of strings, not bytes
2998 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3001 * dbus/dbus-connection.c
3002 (_dbus_connection_queue_received_message): disable function for
3003 now, we are only using it in test mode
3005 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3006 remove a mistaken FIXME
3008 2003-05-04 Havoc Pennington <hp@pobox.com>
3010 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3011 unlock mutex on successful return, patch from Anders Gustafsson
3013 2003-05-04 Havoc Pennington <hp@pobox.com>
3015 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3018 2003-05-04 Havoc Pennington <hp@pobox.com>
3020 * tools/dbus-launch.c: implement
3022 * bus/main.c (main), bus/bus.c (bus_context_new):
3023 implement --print-pid and --fork
3025 2003-05-03 Havoc Pennington <hp@redhat.com>
3027 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3028 the address had no value, and add to test suite. Fix and
3029 regression test from Miloslav Trmac
3031 2003-05-03 Havoc Pennington <hp@pobox.com>
3033 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3034 watch is invalid when handled
3036 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3037 dbus-launch utility to launch the bus from a shell script. Didn't
3038 actually implement dbus-launch yet, it's just a placeholder still.
3040 2003-05-03 Havoc Pennington <hp@pobox.com>
3042 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3043 daemon; also documents daemon config file, so replaces
3044 doc/config-file.txt. Corrected some stuff from config-file.txt in
3045 the process of moving it.
3047 2003-05-03 Havoc Pennington <hp@pobox.com>
3049 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3052 2003-05-03 Colin Walters <walters@verbum.org>
3054 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3055 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3057 * Makefile.am: Update to use new .pc versioning scheme.
3059 2003-05-02 Havoc Pennington <hp@redhat.com>
3061 * bus/system.conf.in: allow send/receive to/from message bus
3064 2003-04-30 Havoc Pennington <hp@redhat.com>
3066 * configure.in: print a note when building with unit tests and
3069 2003-04-30 Havoc Pennington <hp@redhat.com>
3071 * Makefile.am: add a check-local that complains if you didn't
3072 configure with --enable-tests
3074 2003-04-29 Havoc Pennington <hp@redhat.com>
3076 * glib/dbus-gmain.c: docs cleanups
3078 * dbus/dbus-types.h: add docs on int64 types
3080 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3081 public API docs section
3083 2003-04-29 Havoc Pennington <hp@redhat.com>
3085 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3086 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3087 parallel install API version, not with the D-BUS package version.
3089 * HACKING: move some of README over here
3091 * README: updates, and document API/ABI policy
3093 * configure.in: reindentation
3095 2003-04-29 Havoc Pennington <hp@redhat.com>
3097 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3098 to use this library" to be sure people have the right
3101 2003-04-28 Havoc Pennington <hp@redhat.com>
3103 * configure.in: add --enable-docs which by default is auto yes if
3104 doxygen and db2html found, no otherwise; but can be forced on/off
3106 * doc/Makefile.am: conditionalize whether to build docs on
3109 2003-04-28 Havoc Pennington <hp@redhat.com>
3111 * configure.in: 0.10
3115 * bus/system.conf.in: add <includedir>system.d</includedir>
3117 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3118 username was provided but not uid
3120 * bus/config-parser.c (struct BusConfigParser): keep track of
3121 whether the parser is toplevel or was included; change some
3122 of the error handling if it's included.
3124 2003-04-27 Havoc Pennington <hp@pobox.com>
3128 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3129 report correct status if we finish processing authentication
3130 inside this function.
3132 * bus/activation.c (try_send_activation_failure): use
3133 bus_transaction_send_error_reply
3135 * bus/connection.c (bus_connection_get_groups): return an error
3136 explaining the problem
3138 * bus/bus.c (bus_context_check_security_policy): implement
3139 restriction here that inactive connections can only send the
3140 hello message. Also, allow bus driver to send anything to
3143 * bus/connection.c (bus_connection_complete): create the
3144 BusClientPolicy here instead of on-demand.
3145 (bus_connection_get_policy): don't return an error
3147 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3148 sender field in message being replied to
3150 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3151 causing it to return FALSE always
3153 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3154 we checked sender rather than destination
3156 2003-04-25 Havoc Pennington <hp@redhat.com>
3158 test suite is slightly hosed at the moment, will fix soon
3160 * bus/connection.c (bus_connections_expire_incomplete): fix to
3161 properly disable the timeout when required
3162 (bus_connection_set_name): check whether we can remove incomplete
3163 connections timeout after we complete each connection.
3165 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3166 probably still broken.
3168 * bus/services.c (bus_registry_acquire_service): implement max
3169 number of services owned, and honor allow/deny rules on which
3170 services a connection can own.
3172 * bus/connection.c (bus_connection_get_policy): report errors here
3174 * bus/activation.c: implement limit on number of pending
3177 2003-04-25 Havoc Pennington <hp@redhat.com>
3179 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3180 where we used >= 0 instead of != DBUS_UID_UNSET.
3182 2003-04-25 Havoc Pennington <hp@redhat.com>
3184 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3185 were toggled without add/remove, fix from Anders Gustafsson
3187 2003-04-24 Havoc Pennington <hp@redhat.com>
3189 * test/data/valid-config-files/basic.conf: add <limit> tags to
3192 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3193 <limit> tag in configuration file.
3195 2003-04-24 Havoc Pennington <hp@redhat.com>
3197 * bus/dispatch.c: somehow missed some name_is
3199 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3200 (_dbus_timeout_set_interval): new
3202 * bus/connection.c (bus_connections_setup_connection): record time
3203 when each connection is first set up, and expire them after the
3204 auth timeout passes.
3206 2003-04-24 Havoc Pennington <hp@redhat.com>
3208 * dbus/dbus-message.c (dbus_message_name_is): rename
3209 (dbus_message_service_is): rename
3210 (dbus_message_sender_is): rename
3211 (dbus_message_get_service): rename
3213 2003-04-24 Havoc Pennington <hp@redhat.com>
3215 * configure.in: add --enable-checks
3217 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3219 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3220 to use thread locks.
3221 (_dbus_connection_handler_destroyed_locked): move some private
3222 functions into proper docs group
3224 * dbus/dbus-internals.h: add _dbus_return_if_fail,
3225 _dbus_return_val_if_fail
3227 Throughout: use dbus_return_if_fail
3229 2003-04-23 James Willcox <jwillcox@gnome.org>
3232 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3233 (dbus_connection_setup_with_g_main),
3234 (dbus_server_setup_with_g_main):
3235 * glib/test-dbus-glib.c: (main):
3236 * glib/test-thread-client.c: (main):
3237 * glib/test-thread-server.c: (new_connection_callback), (main):
3238 * tools/dbus-monitor.c: (main):
3240 Added a GMainContext argument to dbus_connection_setup_with_g_main()
3241 and dbus_server_setup_with_g_main().
3243 2003-04-20 Havoc Pennington <hp@pobox.com>
3245 * doc/dbus-specification.sgml: document the restrictions on
3246 message and service names
3248 2003-04-22 Havoc Pennington <hp@redhat.com>
3250 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3251 support, and do some code cleanups to share more code and
3252 speed up array marshal/demarshal.
3254 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3256 * configure.in: generate dbus-arch-deps.h
3258 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3261 2003-04-22 Havoc Pennington <hp@redhat.com>
3263 * test/data/valid-messages/opposite-endian.message: fix test
3264 to use proper type for rply field
3266 * test/data/invalid-messages: add tests for below validation
3268 * dbus/dbus-message.c (decode_header_data): validate field types,
3269 and validate that named fields are valid names
3270 (decode_name_field): consider messages in the
3271 org.freedesktop.Local. namespace to be invalid.
3273 * dbus/dbus-string.c (_dbus_string_validate_name): new
3275 2003-04-19 Havoc Pennington <hp@pobox.com>
3277 * bus/driver.c (bus_driver_handle_hello): check limits and
3278 return an error if they are exceeded.
3280 * bus/connection.c: maintain separate lists of active and inactive
3281 connections, and a count of each. Maintain count of completed
3282 connections per user. Implement code to check connection limits.
3284 * dbus/dbus-list.c (_dbus_list_unlink): export
3286 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3287 number of bytes in the message queue for a connection
3289 2003-04-18 Havoc Pennington <hp@pobox.com>
3291 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3293 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3296 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3297 on realloc be sure to update the pointer in the keyring
3299 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3300 offset to avoid writing to unallocated memory
3302 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3303 try the next mechanism, so we properly handle OOM
3305 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3307 (_dbus_keyring_new): fix OOM bug
3308 (_dbus_keyring_new_homedir): always set error; impose a maximum
3309 number of keys we'll load from the file, mostly to speed up the
3310 test suite and make its OOM checks more useful, but also for
3313 * dbus/dbus-auth.c (process_error_server): reject authentication
3314 if we get an error from the client
3315 (process_cancel): on cancel, send REJECTED, per the spec
3316 (process_error_client): send CANCEL if we get an error from the
3319 2003-04-18 Havoc Pennington <hp@pobox.com>
3321 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3324 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3327 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3328 about DBUS_TEST_HOMEDIR once
3330 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3333 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3334 config file so we test the right thing
3336 Throughout: assorted docs improvements
3338 2003-04-18 Havoc Pennington <hp@pobox.com>
3340 * glib/dbus-gmain.c: adapt to watch changes
3342 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3344 * dbus/dbus-server.h: remove dbus_server_handle_watch
3346 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3348 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3349 like DBusTimeout, so we don't need dbus_connection_handle_watch
3352 2003-04-17 Havoc Pennington <hp@redhat.com>
3354 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3355 database usage so it all goes via the DBusUserDatabase cache.
3357 2003-04-17 Havoc Pennington <hp@redhat.com>
3359 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3360 there was an OOM watch we skipped, we always return TRUE so we
3361 iterate again to have a look at it again. Fixes test suite hang.
3362 Code rearrangement also lets us lose some memset and only iterate
3363 over callbacks once.
3365 * bus/driver.c (bus_driver_handle_message): sense of test for
3368 2003-04-16 Havoc Pennington <hp@pobox.com>
3370 * doc/dbus-specification.sgml: make spec say serials are unsigned
3372 * dbus/dbus-message.h: change message serials to unsigned
3374 * dbus/dbus-connection.c: adapt to message serials being unsigned
3376 2003-04-15 Havoc Pennington <hp@pobox.com>
3378 * bus/bus.c: create and keep around a shared DBusUserDatabase
3381 * bus/connection.c (bus_connection_get_groups): don't cache
3382 groups for user in the connection object, since user database
3383 object now does that.
3385 2003-04-16 Havoc Pennington <hp@redhat.com>
3387 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3388 list of size counters
3389 (_dbus_message_loader_putback_message_link): put back a popped link
3391 * dbus/dbus-connection.c
3392 (dbus_connection_set_max_live_messages_size): rename
3394 (dbus_connection_get_outgoing_size): get size of outgoing
3396 (_dbus_connection_set_connection_counter): remove this cruft
3398 2003-04-14 Havoc Pennington <hp@redhat.com>
3400 * dbus/dbus-userdb.c: user database abstraction, mostly to get
3401 caching, but at some point we might want to be able to use a
3404 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3405 SHA1 conf file to test the sha1 auth mechanism, since the regular
3406 test always uses EXTERNAL when available.
3409 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3410 add conf file that requires use of sha1 auth
3412 2003-04-13 Havoc Pennington <hp@pobox.com>
3414 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3415 from Philip Blundell to send messages and monitor them.
3417 2003-04-13 Havoc Pennington <hp@pobox.com>
3419 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3422 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3425 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3426 fix to only recover unused bytes if we're already authenticated
3427 (_dbus_transport_get_is_authenticated): fix to still mark us
3428 authenticated if there are unused bytes.
3430 * bus/dispatch.c: implement security policy checking
3432 * bus/connection.c (bus_transaction_send_from_driver): new
3434 * bus/bus.c (bus_context_check_security_policy): new
3436 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3437 now we just set the DBusError and it gets converted to an error
3440 * bus/connection.c (allow_user_function): enable code using actual
3441 data from the config file
3443 * bus/policy.c (list_allows_user): handle wildcard rules for
3444 user/group connection perms
3446 2003-04-13 Havoc Pennington <hp@pobox.com>
3448 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3450 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3452 * bus/policy.c (bus_policy_append_mandatory_rule)
3453 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3454 (bus_policy_append_group_rule): new functions
3456 2003-04-12 Havoc Pennington <hp@pobox.com>
3458 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3460 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3461 the pid/gid/uid, just for paranoia.
3463 * test/break-loader.c (randomly_do_n_things): find a byte
3464 containing a type code, and randomly change it to a different
3467 2003-04-12 Havoc Pennington <hp@pobox.com>
3469 * bus/policy.h: change BusPolicy to be the thing from the config
3470 file, and rename old BusPolicy to BusClientPolicy
3472 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
3473 match change in how policy works
3475 * dbus/dbus-internals.h: mark assert_not_reached as
3476 __attribute((noreturn))__
3478 2003-04-11 Havoc Pennington <hp@redhat.com>
3480 * doc/dbus-specification.sgml: fix a spot with the wrong name for
3481 the broadcast service. Use boolean return for ServiceExists.
3483 2003-04-11 Havoc Pennington <hp@redhat.com>
3485 * configure.in: add another directory to look for qt in.
3487 2003-04-11 Havoc Pennington <hp@redhat.com>
3489 * AUTHORS: add Colin Walters
3491 2003-04-11 Havoc Pennington <hp@redhat.com>
3497 2003-04-11 Havoc Pennington <hp@redhat.com>
3499 * bus/messagebus.in: remove pid file when stopping the
3500 message bus, since the bus won't have privileges to remove it
3503 2003-04-11 Havoc Pennington <hp@redhat.com>
3505 * bus/bus.c (bus_context_new): move credentials change after
3508 2003-04-11 Havoc Pennington <hp@pobox.com>
3510 * test/decode-gcov.c: add "below average functions" to the
3511 coverage report, and change how some of the code works.
3513 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
3514 not in the coverage stats.
3516 * test/test-service.c (main): use _dbus_verbose not fprintf in a
3517 couple places so running the test suite doesn't result in megaspam.
3519 2003-04-11 Havoc Pennington <hp@pobox.com>
3521 * bus/dispatch.c (check_existent_service_activation): accept a no
3522 memory error in a place we didn't before
3524 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
3525 in case the first one failed," since the test suite is less
3528 2003-04-10 Havoc Pennington <hp@pobox.com>
3530 * bus/dispatch.c (check_segfault_service_activation): add test
3531 for launching an executable that just crashes.
3533 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
3534 don't leave a million cores. We'll see how portable this is.
3536 2003-04-10 Havoc Pennington <hp@pobox.com>
3538 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
3539 the possible parent failures before we fork, so that we don't
3540 fail to create a babysitter after creating the child.
3542 * bus/activation.c (bus_activation_activate_service): kill child
3543 if we don't successfully complete the activation.
3545 2003-04-10 Havoc Pennington <hp@redhat.com>
3547 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
3548 the connection if it's disconnected
3550 * bus/activation.c (bus_activation_service_created): use new
3551 transaction features to roll back removal of pending activation if
3552 we don't successfully create the service after all. Don't remove
3553 pending activation if the function fails.
3555 * dbus/dbus-list.c (_dbus_list_insert_before_link)
3556 (_dbus_list_insert_after_link): new code to facilitate
3559 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
3560 new functionality, so we can preallocate the ability to insert
3563 * bus/connection.c (bus_transaction_add_cancel_hook): new function
3564 allowing us to put custom hooks in a transaction to be used for
3565 cancelling said transaction
3567 * doc/dbus-specification.sgml: add some discussion of secondary
3568 service owners, and disallow zero-length service names
3570 * bus/services.c (bus_registry_acquire_service): new function,
3571 splits out part of bus_driver_handle_acquire_service() and fixes
3572 a bug where we didn't remove the service doing the acquiring
3573 from the secondary queue if we failed to remove the current owner
3574 from the front of the queue.
3576 2003-04-10 Alexander Larsson <alexl@redhat.com>
3578 * doc/dbus-specification.sgml:
3579 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
3581 2003-04-10 Alexander Larsson <alexl@redhat.com>
3586 Added files to cvsignore
3588 * dbus/dbus-message.h:
3589 * dbus/dbus-message.c: (dbus_message_iter_get_named):
3590 Make get_named() take two out argument and return a boolean.
3591 (dbus_message_iter_get_args_valist):
3592 Update usage of get_named().
3593 (dbus_message_iter_append_byte):
3595 (dbus_message_iter_append_named)
3597 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
3600 2003-04-10 Alexander Larsson <alexl@redhat.com>
3602 * dbus/dbus-marshal.[ch]:
3603 Add array_type_pos argument to _dbus_marshal_validate_arg.
3604 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
3606 * dbus/dbus-message.[ch]:
3607 Multi-dimensional arrays have full type specification in the
3608 outermost array. Iter code re-arranged to handle this.
3609 Added some more iter tests.
3611 * doc/dbus-specification.sgml:
3614 Update new array encoding description.
3615 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
3617 * test/data/invalid-messages/array-with-mixed-types.message:
3618 * test/data/valid-messages/array-of-array-of-uint32.message:
3619 Change to the new array format.
3621 * test/data/invalid-messages/too-short-dict.message:
3624 * test/data/valid-messages/recursive-types.message:
3625 Fix up and extend test.
3627 2003-04-10 Havoc Pennington <hp@pobox.com>
3629 * bus/dispatch.c: lots of fixes
3631 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
3632 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
3633 that was crack, broke the test service.
3635 * dbus/dbus-transport.c (_dbus_transport_open): fix error
3636 handling to avoid piling up errors if we get a failure on the
3639 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
3640 pid in assertion failures.
3642 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
3643 to some fixed size of file descriptor array. Don't return TRUE
3644 anytime a timeout exists, that led to lots of busy loop silliness
3647 2003-04-09 Havoc Pennington <hp@redhat.com>
3649 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
3650 I'd checked this in earlier but hadn't.
3652 2003-04-09 Havoc Pennington <hp@redhat.com>
3654 * bus/dispatch.c (bus_dispatch_test): get a bit further through
3655 the activation test (man this is getting old!)
3657 2003-04-09 Havoc Pennington <hp@redhat.com>
3659 * test/test-utils.c: use dispatch status function to fix this up
3661 * bus/connection.c (connection_watch_callback): don't dispatch
3663 (connection_timeout_callback): don't dispatch from here
3664 (bus_connections_setup_connection): set the dispatch status function
3665 (bus_connection_disconnected): unset it
3667 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
3668 used to add a connection to be dispatched
3669 (_dbus_loop_iterate): do the dispatching at the end of each
3672 * dbus/dbus-connection.c
3673 (dbus_connection_set_dispatch_status_function): new function
3674 allowing us to fix up main loop usage
3675 (_dbus_connection_last_unref): free all the various function
3677 (dbus_connection_dispatch): call the DispatchStatusFunction
3678 whenever this function returns
3679 (dbus_connection_handle_watch): call DispatchStatusFunction
3680 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
3681 (reply_handler_timeout): call DispatchStatusFunction
3682 (dbus_connection_flush): call DispatchStatusFunction
3684 2003-04-09 Havoc Pennington <hp@redhat.com>
3686 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
3689 * bus/dispatch.c (check_service_activated): fix bug in test
3691 * dbus/dbus-mainloop.c (check_timeout): fix this up
3693 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
3694 verbose output so we can sort out output from different processes,
3695 e.g. in the activation case.
3697 2003-04-08 Colin Walters <walters@gnu.org>
3699 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
3701 (bus_context_new): Set it.
3702 (bus_context_unref): Use it to delete the pid file.
3704 2003-04-08 Havoc Pennington <hp@redhat.com>
3706 * test/data/invalid-messages/array-with-mixed-types.message:
3707 regression test that fails for the moment
3709 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
3710 tests for convenience
3712 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
3713 array of nil, it broke things.
3715 * test/data/invalid-messages/array-of-nil.message: regression test
3717 * test/data/valid-messages/array-of-array-of-uint32.message:
3718 happened to write this so added it to suite
3720 2003-04-08 Havoc Pennington <hp@redhat.com>
3722 * bus/driver.c (bus_driver_handle_acquire_service): init
3723 retval/reply before checking name
3725 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
3726 recursion depth argument
3728 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
3729 in the public struct for future extension
3731 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
3734 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
3737 * doc/dbus-specification.sgml: fix typo
3739 2003-04-08 Alexander Larsson <alexl@redhat.com>
3741 Implemented recursive types, named types and new-style iters
3744 * glib/test-thread-client.c: (thread_func):
3745 * glib/test-thread-server.c: (handle_test_message):
3746 * test/test-service.c: (handle_echo):
3755 * dbus/dbus-internals.c: (_dbus_type_to_string):
3756 Update for new types.
3758 * dbus/dbus-marshal.[ch]:
3759 Implement recursive types and the new marshalling format.
3760 Remove hardcoded dict marshalling.
3761 Marshal named types.
3763 * dbus/dbus-message-builder.c:
3765 Remove references to old types
3767 * dbus/dbus-message.[ch]:
3768 New non-refcounted iter API that supports recursive iters.
3769 Use iters for appending, including support for recursive
3771 Add byte and named type support.
3772 Update everything to new marshalling formats.
3773 Add tests for new API.
3775 * dbus/dbus-protocol.h:
3776 Remove old array types.
3777 Add types: BYTE, ARRAY, DICT, NAMED
3779 * dbus/dbus-string.c:
3780 * dbus/dbus-sysdeps.c:
3781 Make parse_double locale safe.
3783 * dbus/dbus-test-main.c:
3789 * doc/dbus-specification.sgml:
3792 * test/data/incomplete-messages/missing-body.message:
3793 * test/data/invalid-messages/bad-boolean.message:
3794 * test/data/invalid-messages/bad-boolean-array.message:
3795 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
3796 * test/data/invalid-messages/boolean-has-no-value.message-raw:
3797 * test/data/invalid-messages/too-short-dict.message:
3798 * test/data/valid-messages/dict-simple.message:
3799 * test/data/valid-messages/dict.message:
3800 * test/data/valid-messages/emptiness.message:
3801 * test/data/valid-messages/lots-of-arguments.message:
3802 * test/data/valid-messages/no-padding.message:
3803 * test/data/valid-messages/recursive-types.message:
3804 Add missing NAME fields
3805 Fix up dicts & arrays
3807 * test/data/invalid-messages/dict-with-nil-value.message:
3808 Removed, this is not invalid anymore.
3810 * test/data/valid-messages/recursive-types.message:
3811 Add new test for deeply recursive types.
3813 2003-04-07 Havoc Pennington <hp@pobox.com>
3815 * bus/driver.c (bus_driver_handle_acquire_service): return an
3816 error if you try to acquire a service that starts with ':'
3818 2003-04-07 Havoc Pennington <hp@redhat.com>
3820 * doc/dbus-specification.sgml: require that base service names
3821 start with ':' and that the base service is created/deleted
3822 as first and last things a connection does on the bus
3824 * bus/dispatch.c (check_existent_service_activation): lots more
3825 work on the activation test; it doesn't fully pass yet...
3827 * test/test-service.c (main): fix so we don't memleak the
3828 connection to the message bus
3829 (filter_func): accept a message asking us to exit
3831 2003-04-06 Havoc Pennington <hp@pobox.com>
3833 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
3836 * configure.in: fixes to Qt detection from Colin Walters
3838 * doc/Makefile.am: Only remove generated docbook dirs if they
3839 exist, from Colin Walters
3841 * dbus/dbus-bus.c: change how we set well-known connections to
3842 NULL, so that it works if a single connection is stored in
3843 two well-known array slots.
3845 * test/Makefile.am: remove a lot of stuff that isn't immediately
3846 useful, it's in CVS history if we want it.
3848 * test/test-service.c: use dbus-mainloop instead of that
3851 2003-04-06 Havoc Pennington <hp@pobox.com>
3853 * dbus/Makefile.am: split lists of sources into stuff that goes in
3854 the library, util functions that go in the lib and are also used
3855 elsewhere, and util functions that are used in tests/daemon but
3856 don't go in the lib.
3858 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
3859 here so it can be used in test binaries also
3861 2003-04-06 Havoc Pennington <hp@pobox.com>
3863 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
3864 here in the parent process, so we can return an error if it
3865 fails. Also, move some of the code into the child so the parent
3866 is less hosed if we fail midway through.
3868 * bus/bus.c (bus_context_new): move pidfile detection further up
3869 in the function, before we start overwriting sockets and such.
3871 * bus/messagebus.in: adjust this a bit, not sure if it will work.
3873 * configure.in: add --with-system-pid-file and --with-system-socket
3875 2003-04-06 Colin Walters <walters@verbum.org>
3877 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
3879 * bus/system.conf.in: Declare a pidfile.
3881 * bus/bus.c (bus_context_new): Test for an existing pid file, and
3882 create one (if appropriate).
3884 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
3885 (struct BusConfigParser) [pidfile]: New.
3886 (element_type_to_name, merge_included, start_busconfig_child)
3887 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
3888 (bus_config_parser_unref): Free it.
3889 (bus_config_parser_get_pidfile): New function.
3891 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
3893 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
3895 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
3897 * dbus/dbus-sysdeps.h: Prototype it.
3899 2003-04-06 Havoc Pennington <hp@pobox.com>
3901 * bus/bus.c (bus_context_new): print the address in here, rather
3902 than in main(), because we need to do it before forking the daemon
3904 * bus/dispatch.c (send_service_nonexistent_error): set the sender
3905 on the service nonexistent error
3907 * bus/driver.c (bus_driver_handle_acquire_service): set the
3908 sender on the AcquireService reply
3910 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
3911 server also listen on a UNIX socket so services can connect to it.
3913 2003-04-06 Havoc Pennington <hp@pobox.com>
3915 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
3916 so it detects deadlocks and also we actually init threads when
3919 2003-04-06 Havoc Pennington <hp@pobox.com>
3921 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3922 save the domain socket name, and unlink it when we disconnect the
3923 server. Means that at least when we exit normally, we won't leave
3924 a bunch of junk in /tmp
3926 * dbus/dbus-transport-unix.c
3927 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
3928 memory management). (I was making a real change here but then
3931 2003-04-06 Havoc Pennington <hp@pobox.com>
3933 * bus/bus.c (bus_context_new): fix wrong handling of
3934 server_data_slot_unref() in the error case.
3936 * dbus/dbus-internals.h (_dbus_assert): change so it passes
3937 "(condition) != 0" to _dbus_real_assert so that
3938 "_dbus_assert (pointer)" doesn't cause a warning
3940 * bus/main.c (main): accept --print-address option to print out
3941 the message bus address
3943 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
3945 * dbus/dbus-transport.c (_dbus_transport_open): special error for
3946 "tmpdir" option to unix: address on client side
3948 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
3951 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
3952 we can use to create sockets in the test suite.
3954 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
3955 cleanly. To be used for testing.
3957 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
3959 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
3961 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3962 handle trying to call this when there's no servers active
3964 2003-04-05 Havoc Pennington <hp@pobox.com>
3970 2003-04-05 Havoc Pennington <hp@pobox.com>
3972 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
3973 crash on startup. Need to get "try starting the daemon"
3974 in the test suite I guess. ;-)
3976 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
3977 tracked the number of open connections; it's better done in
3978 application-specific code as you want it to span all servers etc.
3980 2003-04-05 Havoc Pennington <hp@pobox.com>
3982 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
3983 patch from Colin Walters
3985 2003-04-05 Havoc Pennington <hp@pobox.com>
3987 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
3988 reality; in fact multiple mechanisms are allowed.
3990 * dbus/dbus-internals.c (_dbus_real_assert)
3991 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
3992 _dbus_assert_not_reached() into functions, so that they don't show
3993 up in basic block counts for test coverage, and don't use up as
3994 much disk space. Does mean slower execution speed though, so
3995 assumes --disable-asserts is the normal production case.
3997 2003-04-05 Havoc Pennington <hp@pobox.com>
3999 * test/Makefile.am (dist-hook): also dist *.in files
4005 2003-04-05 Havoc Pennington <hp@pobox.com>
4007 * dbus/dbus-string.c: docs warning
4009 * dbus/dbus-spawn.c: missing docs
4011 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4013 2003-04-05 Havoc Pennington <hp@pobox.com>
4015 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4018 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4019 to -1 once we've reaped the babysitter
4020 (_dbus_babysitter_handle_watch): do as much work as we can, not
4023 * bus/activation.c: add code using DBusBabysitter so that we
4024 handle it when a service fails to start up properly.
4025 (bus_activation_service_created): don't remove the activation
4026 entries as we go, just let them get removed when we free the pending
4027 activation. Unref reply messages after sending them.
4029 2003-04-05 Havoc Pennington <hp@pobox.com>
4031 * test/decode-gcov.c (main): print per-directory stats in the report
4033 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4035 2003-04-05 Havoc Pennington <hp@pobox.com>
4037 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4039 * test/decode-gcov.c: hack up a little program to suck data
4040 out of gcov files. Yes this is sort of silly.
4042 * configure.in: define something in config.h and do an
4043 AM_CONDITIONAL when gcov is enabled
4045 2003-04-04 Havoc Pennington <hp@redhat.com>
4047 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4048 return a "babysitter" object that is used to monitor the status of
4049 the spawned process and reap it when required.
4051 * test/test-segfault.c, test/test-exit.c,
4052 test/test-sleep-forever.c: binaries that do various lame things,
4053 used in the test suite.
4055 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4057 2003-04-03 Havoc Pennington <hp@pobox.com>
4059 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4060 in preparation for modifying it, dbus-sysdeps is getting
4063 2003-04-03 Havoc Pennington <hp@redhat.com>
4065 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4068 * bus/*.[hc]: adapt to mainloop change
4070 2003-04-03 Havoc Pennington <hp@redhat.com>
4072 * bus/activation.c (load_directory): fix up memleaks
4073 (bus_activation_entry_free): free the entry
4075 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4076 we get one from the message bus; fix memleaks.
4078 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4080 2003-04-03 Havoc Pennington <hp@pobox.com>
4082 * bus/config-parser.c (bus_config_parser_unref): free
4083 list of mechanisms, bug discovered by test suite enhancements
4084 (putting system.conf and session.conf into suite)
4086 * test/Makefile.am, test/test-service.c: add placeholder for a
4087 test service that we'll activate as part of test suite. Doesn't
4090 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4091 setting NULL value, and use system malloc not dbus_malloc()
4092 when we have unavoidable memleakage.
4094 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4095 didn't work, and support DBUS_BUS_ACTIVATION.
4097 * bus/activation.c (child_setup): pass our well-known bus type to
4100 * bus/config-parser.c: support <type> to specify well-known type
4102 * doc/dbus-specification.sgml: document the env variables to
4103 locate well-known buses and find service activator
4105 2003-04-02 Havoc Pennington <hp@redhat.com>
4107 * test/Makefile.am (all-local): add a rule to copy tests to
4108 builddir, so we can have generated tests. Use this to remove the
4109 silly hack for testing system.conf and session.conf. Will use this
4110 shortly to generate .service files pointing to test binaries.
4112 2003-04-02 Havoc Pennington <hp@redhat.com>
4114 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4115 current alloc and needed new length, not max of the doubled
4116 allocation and needed new length. Also, when building tests,
4117 don't do the double-allocation stuff, just realloc every time.
4119 2003-04-02 Havoc Pennington <hp@redhat.com>
4121 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4123 (_dbus_string_get_dirname): new
4124 (_dbus_sysdeps_test): new
4125 (_dbus_directory_open): include dirnames in error messages
4127 * bus/config-parser.c: interpret <include> and <includedir> and
4128 <servicedir> relative to config file location if the given
4129 filename is not absolute.
4131 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4133 2003-04-02 Havoc Pennington <hp@redhat.com>
4135 * bus/connection.c (bus_transaction_send_error_reply): set sender
4136 service for the error, and unref the reply on success
4138 * bus/activation.c: convert to use BusTransaction so OOM can be
4140 (bus_activation_service_created): set sender of the message
4142 2003-04-01 Havoc Pennington <hp@redhat.com>
4144 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4145 <includedir> (at least mostly)
4147 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4148 first, then the user ID
4150 2003-04-01 Havoc Pennington <hp@pobox.com>
4152 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4155 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4157 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4159 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4160 socket 0777, and unlink any existing socket.
4162 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4163 the configuration file so specifies; set up auth mechanism
4166 * bus/config-parser.c (bus_config_parser_content): add support
4167 for <fork> option and fill in code for <auth>
4169 * bus/system.conf.in: add <fork/> to default configuration,
4170 and limit auth mechanisms to EXTERNAL
4172 * doc/config-file.txt (Elements): add <fork>
4174 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4175 (_dbus_change_identity): new function
4177 2003-03-31 Havoc Pennington <hp@redhat.com>
4179 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4180 (_dbus_listen_unix_socket): fix off-by-one error in null
4181 termination spotted by Nalin
4183 2003-03-31 Havoc Pennington <hp@redhat.com>
4185 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4186 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4187 having a real home directory available.
4189 2003-03-31 Havoc Pennington <hp@redhat.com>
4191 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4193 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4195 * configure.in: add support for specifying a style of init script
4198 2003-03-31 Havoc Pennington <hp@redhat.com>
4200 Fix some annoying DBusString API and fix all affected code.
4202 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4204 (_dbus_string_get_data): change to return string instead of using
4206 (_dbus_string_get_const_data): ditto
4207 (_dbus_string_get_data_len): ditto
4208 (_dbus_string_get_const_data_len): ditto
4210 2003-03-31 Havoc Pennington <hp@redhat.com>
4212 * bus/main.c (main): fix up the command line arguments to be nicer
4214 2003-03-31 Havoc Pennington <hp@redhat.com>
4216 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4217 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4218 final location that lands in the config file
4220 * bus/config-loader-expat.c (bus_config_load): fix type of
4223 * doc/TODO: remove TODO item for dbus_bus_get()
4225 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4227 2003-03-31 Havoc Pennington <hp@pobox.com>
4229 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4230 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4231 argument since they are always client side
4233 * dbus/dbus-server.c (dbus_server_get_address): new function
4235 * bus/main.c (main): take the configuration file as an argument.
4237 * test/data/valid-config-files/debug-allow-all.conf: new file to
4238 use with dispatch.c tests for example
4240 * bus/test-main.c (main): require test data dir
4242 * bus/bus.c (bus_context_new): change this to take a
4243 configuration file name as argument
4245 * doc/config-file.txt (Elements): add <servicedir>
4247 * bus/system.conf, bus/session.conf: new files
4249 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4250 well-known socket if none set
4252 * configure.in: create system.conf and session.conf
4254 2003-03-30 Havoc Pennington <hp@pobox.com>
4256 * bus/config-parser.c: hacking
4258 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4259 to shut down, since it could cause weirdness with the DBusList
4262 * dbus/dbus-list.c (_dbus_list_test): add tests for the
4263 link-oriented stack routines
4264 (alloc_link): free the mempool if the first alloc from it fails
4266 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4268 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4270 (_dbus_string_skip_white): new
4272 * doc/config-file.txt (Elements): add <includedir>
4274 2003-03-28 Havoc Pennington <hp@pobox.com>
4276 * dbus/dbus-string.c (_dbus_string_copy_data_len)
4277 (_dbus_string_copy_data): new functions
4279 2003-03-28 Anders Carlsson <andersca@codefactory.se>
4281 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4285 * dbus/dbus-memory.c:
4288 2003-03-28 Havoc Pennington <hp@pobox.com>
4290 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4291 I think it may have just been superstition. Not sure.
4293 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4294 failures that were not being handled.
4296 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4298 * dbus/dbus-memory.c: add ability to set number of mallocs in a
4299 row that will fail on out-of-memory.
4301 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4302 function for testing out-of-memory handling.
4304 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4305 allocation functions, they do map exactly to the expat ones.
4307 2003-03-27 Havoc Pennington <hp@redhat.com>
4309 * bus/config-loader-libxml.c (bus_config_load): add another error
4312 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4315 Add note about automatic service activation.
4317 * doc/dbus-specification.sgml:
4318 Rename the specification and clarify a few things.
4320 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4323 * dbus/dbus-address.c:
4325 * dbus/dbus-marshal.c:
4326 * dbus/dbus-server-debug-pipe.c:
4327 * dbus/dbus-transport-unix.c:
4328 Fix documentation warnings.
4330 2003-03-26 Havoc Pennington <hp@pobox.com>
4332 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4333 after every test so it's quick and easy to see which leaked, and
4334 so we test multiple dbus_shutdown() calls
4336 * configure.in: change configure.in XML stuff to also support
4339 * config-loader-libxml.c: some hacking
4341 * config-loader-expat.c: some hacking
4343 * config-parser.c: some hacking, plus tests
4345 2003-03-25 Havoc Pennington <hp@redhat.com>
4347 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4349 * configure.in: add --with-xml option to specify XML library,
4350 right now only libxml is supported.
4352 * bus/config-loader-libxml.c, config-parser.c: sync some minor
4353 nonworking code between home and work, still just stubs
4355 2003-03-24 Havoc Pennington <hp@redhat.com>
4357 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4360 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4361 NULL argument for "message" if the error is a well-known one,
4362 fill in a generic message in this case.
4364 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4367 * bus/test.c (bus_test_flush_bus): add
4369 * bus/policy.c (bus_policy_test): test code stub
4371 2003-03-24 Havoc Pennington <hp@pobox.com>
4373 * bus/connection.c (bus_connections_setup_connection): set up
4374 the "can this user connect" function, but it always returns
4375 TRUE until we have a config file parser so we can have a config
4376 file that allows connections.
4378 2003-03-23 Havoc Pennington <hp@pobox.com>
4380 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4381 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4382 the mutex, so we can check for proper memory management
4385 * dbus/dbus-dataslot.c: remove the mutex from
4386 DBusDataSlotAllocator and lock it manually when using it,
4387 to simplify fitting it into the global slots framework.
4389 * dbus/dbus-threads.c (init_static_locks): rework how we're
4390 handling global locks so they are easily shut down.
4392 * bus/policy.c (bus_policy_append_rule): fix
4394 * bus/test-main.c (main): check for memleaks
4396 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4397 test suite check for memleaks
4399 * dbus/dbus-memory.c: add support in test mode for tracking
4400 number of outstanding blocks
4402 2003-03-23 Havoc Pennington <hp@pobox.com>
4404 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4407 * dbus/dbus-hash.h: add ULONG hash keys
4409 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4410 (_dbus_get_group_id): new function
4412 2003-03-20 Havoc Pennington <hp@redhat.com>
4414 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4416 (dbus_connection_get_unix_user): new function
4418 2003-03-20 Havoc Pennington <hp@pobox.com>
4420 * bus/connection.c (bus_connection_send_oom_error): assert that
4421 message has a sender
4422 (connection_execute_transaction): ditto
4423 (bus_connection_preallocate_oom_error): fix to set the sender, and
4424 set recipient to the destination service, not the bus driver
4426 * bus/policy.c: hacking
4428 * dbus/dbus-message.c (dbus_message_service_is): new function
4429 (dbus_message_sender_is): new
4431 2003-03-19 Havoc Pennington <hp@redhat.com>
4433 * bus/policy.c: start sketching code for policy restrictions on
4434 what connections can do.
4436 2003-03-18 Havoc Pennington <hp@redhat.com>
4438 * doc/TODO: some notes on high-level todo items. Little nitpick
4439 stuff is all in @todo, so no need to add it here.
4441 * doc/config-file.txt: some notes on how config file might look
4443 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4449 2003-03-17 Havoc Pennington <hp@redhat.com>
4451 * dbus/dbus-internals.h: add gcc attributes so that
4452 our printf-style functions warn on bad arguments to
4455 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4458 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4461 2003-03-17 Havoc Pennington <hp@redhat.com>
4463 * bus/test-main.c (main): make it print something as it runs
4464 so make check doesn't look stuck
4466 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
4467 from CVS, now obsolete
4469 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4471 * bus/dispatch.c: (bus_dispatch):
4472 Refetch the service name since it may have been reallocated
4473 when dbus_message_set_sender was called.
4475 * dbus/dbus-sysdeps.c: (_dbus_accept):
4476 Add address and address length variables and use them to stop
4477 valgrind from complaining.
4479 2003-03-17 Havoc Pennington <hp@pobox.com>
4481 All tests pass, no memleaks, no valgrind complaints.
4483 * bus/test.c: refcount handler_slot
4485 * bus/connection.c (bus_connections_new): refcount
4486 connection_data_slot
4488 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
4489 bytes so that auth scripts pass.
4491 * bus/dispatch.c: init message_handler_slot so it gets allocated
4494 * bus/dispatch.c (message_handler_slot_ref): fix memleak
4496 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
4497 dealloc server_pipe_hash when no longer used for benefit of
4500 * dbus/dbus-auth.c (process_command): memleak fix
4502 * bus/dispatch.c (check_hello_message): memleak fix
4504 2003-03-16 Havoc Pennington <hp@pobox.com>
4506 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
4508 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4510 * bus/activation.c (bus_activation_activate_service): Append
4511 the pending activation entry to the list of pending activations.
4513 2003-03-16 Havoc Pennington <hp@pobox.com>
4515 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
4518 * dbus/dbus-address.c (create_entry): fix OOM handling when
4519 failing to alloc entry->method
4521 2003-03-16 Havoc Pennington <hp@pobox.com>
4523 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
4526 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4527 add some missing dbus_set_result
4529 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
4530 alloc the DBusMessageHandler
4532 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
4533 the transport here, since we call this from the finalizer; it
4534 resulted in a double-finalize.
4536 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
4537 where we tried to use transport->connection that was NULL,
4538 happened when transport was disconnected early on due to OOM
4540 * bus/*.c: adapt to handle OOM for watches/timeouts
4542 * dbus/dbus-transport-unix.c: port to handle OOM during
4545 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
4546 reference to unused bytes instead of a copy
4548 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
4551 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
4554 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
4557 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4559 * doc/dbus-specification.sgml:
4560 Document reply message for ActivateService.
4562 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4564 * bus/activation.c: (bus_pending_activation_entry_free),
4565 (bus_pending_activation_free), (bus_activation_new),
4566 (bus_activation_unref), (bus_activation_service_created),
4567 (bus_activation_activate_service):
4569 * bus/bus.c: (bus_context_new):
4570 * bus/desktop-file.c: (new_section):
4571 * bus/driver.c: (bus_driver_send_service_deleted),
4572 (bus_driver_handle_activate_service):
4573 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
4575 * dbus/dbus-connection.c:
4576 (dbus_connection_send_with_reply_and_block):
4577 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4578 * dbus/dbus-protocol.h:
4579 Make activation work better. Now pending activations will be queued
4580 and the daemon won't try to activate services that are already registered.
4582 2003-03-16 Havoc Pennington <hp@pobox.com>
4584 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
4587 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
4588 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
4590 2003-03-16 Havoc Pennington <hp@pobox.com>
4592 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
4593 this. always run the test suite before commit...
4595 * bus/*: adapt to DBusConnection API changes
4597 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
4598 requires renaming stuff to avoid dbus_connection_dispatch name
4601 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
4604 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4605 separate from _dbus_message_loader_return_buffer()
4607 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
4608 this, because it's now always broken to use; the number of
4609 messages in queue vs. the number still buffered by the message
4610 loader is undefined/meaningless. Should use
4611 dbus_connection_get_dispatch_state().
4612 (dbus_connection_dispatch): rename from
4613 dbus_connection_dispatch_message
4615 2003-03-16 Havoc Pennington <hp@pobox.com>
4617 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
4620 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4622 * dbus/dbus-connection.c:
4623 (dbus_connection_send_with_reply_and_block):
4624 Decrease connection->n_incoming when removing an entry
4626 * dbus/dbus-dict.c: (dbus_dict_entry_free),
4627 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4628 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4629 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
4630 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
4631 (dbus_dict_get_byte_array):
4632 Handle NULL arrays and strings. Also add support for byte arrays.
4634 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
4635 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
4636 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4637 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4638 (_dbus_demarshal_dict), (demarshal_and_validate_len),
4639 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
4640 * dbus/dbus-marshal.h:
4641 Add support for marshalling and demarshalling empty arrays and strings.
4643 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4644 (dbus_message_append_string_array),
4645 (dbus_message_iter_get_boolean),
4646 (dbus_message_iter_get_boolean_array),
4647 (dbus_message_iter_get_int32_array),
4648 (dbus_message_iter_get_uint32_array),
4649 (dbus_message_iter_get_double_array),
4650 (dbus_message_iter_get_byte_array),
4651 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
4652 (check_message_handling):
4653 Add support for getting empty arrays and dicts.
4655 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
4656 Don't do any validation at all for now, that's better than just checking
4659 * test/data/valid-messages/emptiness.message:
4660 New test message with lots of empty arrays.
4662 2003-03-16 Havoc Pennington <hp@pobox.com>
4664 * dbus/dbus-connection.c
4665 (_dbus_connection_queue_received_message_link): new function that
4666 can't fail due to OOM
4668 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
4669 new function pops a message together with a list link
4672 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
4673 message queuing functions to avoid needing to alloc memory
4675 2003-03-16 Havoc Pennington <hp@pobox.com>
4677 Oops - test code was only testing failure of around 30 of the
4678 mallocs in the test path, but it turns out there are 500+
4679 mallocs. I believe this was due to misguided linking setup such
4680 that there was one copy of dbus_malloc etc. in the daemon and one
4681 in the shared lib, and only daemon mallocs were tested. In any
4682 case, the test case now tests all 500+ mallocs, and doesn't pass
4683 yet, though there are lots of fixes in this patch.
4685 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4686 this so that it doesn't need to allocate memory, since it
4687 has no way of indicating failure due to OOM (and would be
4688 annoying if it did).
4690 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
4692 * bus/Makefile.am: rearrange to create two self-contained
4693 libraries, to avoid having libraries with overlapping symbols.
4694 that was resulting in weirdness, e.g. I'm pretty sure there
4695 were two copies of global static variables.
4697 * dbus/dbus-internals.c: move the malloc debug stuff to
4700 * dbus/dbus-list.c (free_link): free list mempool if it becomes
4703 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
4705 * dbus/dbus-address.c (dbus_parse_address): free list nodes
4708 * bus/dispatch.c (bus_dispatch_add_connection): free
4709 message_handler_slot when no longer using it, so
4710 memory leak checkers are happy for the test suite.
4712 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
4714 * bus/bus.c (new_connection_callback): disconnect in here if
4715 bus_connections_setup_connection fails.
4717 * bus/connection.c (bus_connections_unref): fix to free the
4719 (bus_connections_setup_connection): if this fails, don't
4720 disconnect the connection, just be sure there are no side
4723 * dbus/dbus-string.c (undo_alignment): unbreak this
4725 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
4727 (_dbus_auth_new): fix the order in which we free strings
4730 * bus/connection.c (bus_connection_disconnected): fix to
4731 not send ServiceDeleted multiple times in case of memory
4734 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
4735 get the base service name
4736 (dbus_bus_register_client): don't return base service name,
4737 instead store it on the DBusConnection and have an accessor
4739 (dbus_bus_register_client): rename dbus_bus_register()
4741 * bus/dispatch.c (check_hello_message): verify that other
4742 connections on the bus also got the correct results, not
4743 just the one sending hello
4745 2003-03-15 Havoc Pennington <hp@pobox.com>
4747 Make it pass the Hello handling test including all OOM codepaths.
4748 Now to do other messages...
4750 * bus/services.c (bus_service_remove_owner): fix crash when
4751 removing owner from an empty list of owners
4752 (bus_registry_ensure): don't leave service in the list of
4753 a connection's owned services if we fail to put the service
4756 * bus/connection.c (bus_connection_preallocate_oom_error): set
4757 error flag on the OOM error.
4759 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4760 handle _dbus_transport_set_connection failure
4762 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
4763 to create watches up front and simply enable/disable them as
4765 (unix_connection_set): this can now fail on OOM
4767 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
4768 of enabling/disabling a watch or timeout.
4770 * bus/loop.c (bus_loop_iterate): don't touch disabled
4773 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
4775 2003-03-15 Havoc Pennington <hp@pobox.com>
4777 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
4778 write useful test code, after all that futzing around ;-)
4780 Test does not yet pass because we can't handle OOM in
4781 _dbus_transport_messages_pending (basically,
4782 dbus_connection_preallocate_send() does not prealloc the write
4783 watch). To fix this, I think we need to add new stuff to
4784 set_watch_functions, namely a SetEnabled function so we can alloc
4785 the watch earlier, then enable it later.
4787 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
4788 dbus-memory.c to the convenience lib
4790 * bus/test.c: rename some static functions to keep them clearly
4791 distinct from stuff in connection.c. Handle client disconnection.
4793 2003-03-14 Havoc Pennington <hp@pobox.com>
4795 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
4796 transport, tests more of the real codepath. Set up clients
4797 with bus_setup_debug_client.
4799 * bus/test.c (bus_setup_debug_client): function to set up debug
4800 "clients" on the main loop
4802 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
4805 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
4808 * dbus/dbus-server-debug.c: support a debug server based on pipes
4810 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
4811 (_dbus_close): new function
4813 * configure.in: check for socketpair
4815 2003-03-14 Havoc Pennington <hp@redhat.com>
4817 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
4820 * dbus/dbus-transport-debug.c: rework this a good bit to be
4821 less complicated. hopefully still works.
4823 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
4826 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
4829 * dbus/dbus-message.c (dbus_message_copy): rename from
4830 dbus_message_new_from_message, fix it up to copy
4831 all the message fields, add test case
4833 * bus/dispatch.c (bus_dispatch_test): add some more test code,
4834 not quite passing yet
4836 2003-03-14 Havoc Pennington <hp@pobox.com>
4838 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
4839 until no work remains" in test code. (the large diff here
4840 is just code movement, no actual changes)
4842 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
4843 1, no point waiting around for test code.
4844 (_dbus_server_debug_accept_transport): unref the timeout
4845 after adding it (right?)
4847 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
4849 2003-03-13 Havoc Pennington <hp@redhat.com>
4851 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
4854 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
4857 * dbus/dbus-connection.h: Make AddWatchFunction and
4858 AddTimeoutFunction return a bool so they can fail on out-of-memory
4860 * bus/bus.c (bus_context_new): set up timeout handlers
4862 * bus/connection.c (bus_connections_setup_connection): set up
4865 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
4868 * bus/bus.c (bus_context_new): adapt to changes
4870 * bus/connection.c: adapt to changes
4872 * test/watch.c: adapt to DBusWatch changes
4874 * bus/dispatch.c (bus_dispatch_test): started adding this but
4877 2003-03-14 Anders Carlsson <andersca@codefactory.se>
4879 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
4881 2003-03-13 Havoc Pennington <hp@pobox.com>
4883 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
4884 set up a test framework as for the library
4886 2003-03-12 Havoc Pennington <hp@pobox.com>
4888 Throughout: purge global variables, introduce BusActivation,
4889 BusConnections, BusRegistry, etc. objects instead.
4891 * bus/bus.h, bus/bus.c: introduce BusContext as a global
4894 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
4895 going to redo this a bit differently I think
4897 2003-03-12 Havoc Pennington <hp@redhat.com>
4899 Mega-patch that gets the message bus daemon initially handling
4900 out-of-memory. Work still needed. Also lots of random
4901 moving stuff to DBusError instead of ResultCode.
4903 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
4905 * dbus/dbus-connection.c
4906 (dbus_connection_send_with_reply_and_block): use DBusError
4908 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
4911 * dbus/dbus-connection.c (dbus_connection_send): drop the result
4912 code here, as the only failure possible is OOM.
4914 * bus/connection.c (bus_connection_disconnect):
4915 rename bus_connection_disconnected as it's a notification only
4917 * bus/driver.c (bus_driver_handle_acquire_service): don't free
4918 "name" on get_args failure, should be done by get_args;
4919 don't disconnect client for bad args, just return an error.
4920 (bus_driver_handle_service_exists): ditto
4922 * bus/services.c (bus_services_list): NULL-terminate returned array
4924 * bus/driver.c (bus_driver_send_service_lost)
4925 (bus_driver_send_service_acquired): send messages from driver to a
4926 specific client to the client's unique name, not to the broadcast
4929 * dbus/dbus-message.c (decode_header_data): reject messages that
4930 contain no name field
4931 (_dbus_message_get_client_serial): rename to
4932 dbus_message_get_serial and make public
4933 (_dbus_message_set_serial): rename from set_client_serial
4934 (_dbus_message_set_reply_serial): make public
4935 (_dbus_message_get_reply_serial): make public
4937 * bus/connection.c (bus_connection_foreach): allow stopping
4938 iteration by returning FALSE from foreach function.
4940 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
4941 (dbus_connection_free_preallocated_send)
4942 (dbus_connection_preallocate_send): new API for sending a message
4943 without possibility of malloc failure.
4944 (dbus_connection_send_message): rename to just
4945 dbus_connection_send (and same for whole function family)
4947 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
4949 * dbus/dbus-sysdeps.c (_dbus_exit): new function
4951 * bus/activation.c: handle/return errors
4953 * dbus/dbus-errors.h: add more DBUS_ERROR #define
4955 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
4956 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
4957 (_dbus_result_from_errno): move to this file
4959 2003-03-10 Anders Carlsson <andersca@codefactory.se>
4961 * dbus/dbus-marshal.c:
4962 (_dbus_marshal_set_string):
4963 Take a length argument so we can marshal the correct string
4966 (_dbus_marshal_dict), (_dbus_demarshal_dict),
4967 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
4968 (_dbus_marshal_test):
4969 * dbus/dbus-marshal.h:
4970 Add support for marshalling and demarshalling dicts.
4972 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4973 Add support for TYPE DICT.
4975 * dbus/dbus-message.c: (set_string_field):
4976 Adjust header padding.
4978 (dbus_message_append_args_valist), (dbus_message_append_dict),
4979 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
4980 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
4981 (check_message_handling), (check_have_valid_message):
4982 * dbus/dbus-message.h:
4983 Add functions for setting and getting dicts.
4985 * dbus/dbus-protocol.h:
4991 * doc/dbus-specification.sgml:
4992 Add information about how dicts are marshalled.
4994 * test/data/invalid-messages/dict-with-nil-value.message:
4995 * test/data/invalid-messages/too-short-dict.message:
4996 * test/data/valid-messages/dict-simple.message:
4997 * test/data/valid-messages/dict.message:
4998 Add sample messages containing dicts.
5000 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5002 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5004 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5007 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5008 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5009 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5010 (dbus_dict_set_double), (dbus_dict_set_string),
5011 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5012 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5013 (dbus_dict_set_string_array), (_dbus_dict_test):
5015 Fix according to comments from Havoc.
5017 2003-03-06 Michael Meeks <michael@server.home>
5019 * configure.in: if we don't have kde-config, disable have_qt.
5021 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5026 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5027 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5028 (dbus_dict_remove), (dbus_dict_get_value_type),
5029 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5030 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5031 (dbus_dict_put_double), (dbus_dict_put_string),
5032 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5033 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5034 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5035 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5036 (dbus_dict_get_double), (dbus_dict_get_string),
5037 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5038 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5039 (dbus_dict_get_string_array), (_dbus_dict_test):
5041 Add DBusDict implementation
5043 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5047 2003-03-04 Havoc Pennington <hp@pobox.com>
5049 * test/data/auth/*: adapt to changes
5051 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5052 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5055 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5056 more stuff from being in a context name, to make the protocol
5057 simpler to deal with
5059 * dbus/dbus-errors.c (dbus_error_has_name): new function
5060 (dbus_error_is_set): new function
5062 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5063 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5065 * dbus/dbus-connection.c (dbus_connection_flush): also read
5066 messages during a flush operation
5068 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5070 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5072 * configure.in: Check for gethostbyname on Solaris.
5074 * dbus/dbus-transport.c: (_dbus_transport_open):
5075 Remove duplicate "tcp" entry.
5077 * doc/dbus-specification.sgml:
5078 Clarify some things.
5080 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5082 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5083 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5084 (_dbus_keyring_test):
5085 * dbus/dbus-md5.c: (_dbus_md5_compute):
5086 * dbus/dbus-sha.c: (_dbus_sha_compute):
5089 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5091 * README: Add some things.
5093 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5095 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5096 after case DBUS_TYPE_BOOELAN.
5098 2003-03-02 Havoc Pennington <hp@pobox.com>
5100 * test/break-loader.c (randomly_set_extreme_ints): add test that
5101 sets really huge and small integers
5103 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5104 that length of boolean array fits in the string, and that
5105 string has room for boolean value in single-bool case.
5107 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5108 optional value to "ALIGN" command which is what to fill the
5111 * test/data/valid-messages/no-padding.message: add regression
5112 test for the message padding problem
5114 2003-03-02 Havoc Pennington <hp@pobox.com>
5116 * dbus/dbus-message.c (decode_header_data): fix to always init
5117 message_padding, from Benjamin Dauvergne
5119 2003-03-02 Havoc Pennington <hp@pobox.com>
5125 2003-03-01 Joe Shaw <joe@assbarn.com>
5127 * configure.in: Check for "struct cmsgcred" and try to access its
5128 members for BSD-like unices.
5130 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5131 _dbus_read_credentials_unix_socket().
5132 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5133 read() for reading the credential byte off the unix socket. Use
5134 struct cmsgcred on systems that support it.
5136 2003-02-27 Alexander Larsson <alexl@redhat.com>
5140 Make gthreads-2.0 dependency optional. Don't build thread test if
5143 2003-02-27 Havoc Pennington <hp@pobox.com>
5145 * dbus/dbus-connection.c
5146 (dbus_connection_send_message_with_reply_and_block): fix doh!
5147 doh! doh! bug that resulted in never removing a reply from the
5148 queue, no wonder we called get_reply_serial so much ;-)
5150 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5151 and client serial instead of demarshaling them every time
5153 2003-02-27 Havoc Pennington <hp@pobox.com>
5155 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5156 more inlined, using dbus-string-private.h, speeds things up
5159 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5160 when freeing the string
5161 (_dbus_string_steal_data): fix for align offset
5162 (undo_alignment): new function
5164 2003-02-26 Havoc Pennington <hp@redhat.com>
5166 All kinds of audit fixes from Owen, plus initial attempt to
5167 handle unaligned memory returned from malloc.
5169 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5170 leave room for align_offset and nul byte
5171 (fixup_alignment): function to track an align_offset and
5172 ensure real->str is aligned
5173 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5174 to allow a nul byte plus align offset
5175 (_dbus_string_lock): fix overflow issue
5176 (_dbus_string_init_const_len): add assertions on sanity of len,
5177 assign allocated to be ALLOCATION_PADDING larger than len
5178 (set_length): fixup the overflow handling
5179 (_dbus_string_get_data_len): fix overflow in assertion
5180 (open_gap): detect overflow in size of gap to be opened
5181 (_dbus_string_lengthen): add overflow check
5182 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5183 (_dbus_string_append): add overflow check
5184 (_dbus_string_append_unichar): overflow
5185 (_dbus_string_delete): fix overflow in assertion
5186 (_dbus_string_copy_len): overflow in assertion
5187 (_dbus_string_replace_len): overflows in assertions
5188 (_dbus_string_find): change to implement in terms of
5189 _dbus_string_find_to
5190 (_dbus_string_find_to): assorted fixage
5191 (_dbus_string_equal_c_str): assert c_str != NULL,
5192 fix logic so the function works
5193 (_dbus_string_ends_with_c_str): fix overflow thingy
5194 (_dbus_string_base64_encode): overflow fix
5195 (_dbus_string_validate_ascii): overflow
5196 (_dbus_string_validate_nul): overflow
5198 2003-02-26 Havoc Pennington <hp@redhat.com>
5200 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5202 2003-02-26 Alexander Larsson <alexl@redhat.com>
5205 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5207 * dbus/dbus-connection.c:
5208 * dbus/dbus-connection.h:
5209 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5210 Add dbus_connection_set_wakeup_main_function and use it when queueing
5211 incoming and outgoing messages.
5214 * dbus/dbus-dataslot.c:
5215 Threadsafe usage of DBusDataSlotAllocator
5217 * dbus/dbus-message.c: (dbus_message_get_args_iter):
5220 * dbus/dbus-server-unix.c:
5223 * glib/dbus-gmain.c:
5224 Implement the new wakeup functions for glib.
5227 * glib/test-thread-client.c:
5228 * glib/test-thread-server.c:
5229 * glib/test-thread.h:
5230 Initial cut at some thread test code. Not really done yet.
5232 2003-02-26 Havoc Pennington <hp@pobox.com>
5234 * dbus/dbus-connection.c
5235 (dbus_connection_send_message_with_reply_and_block): fix crash
5236 where we ref'd the outgoing message instead of the returned reply
5238 * dbus/dbus-transport-unix.c (do_authentication): check read watch
5239 at the end of this function, so if we didn't need to read for
5240 authentication, we reinstall it for receiving messages
5242 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5243 a NULL sender for peer-to-peer case
5245 * dbus/dbus-transport-unix.c (check_read_watch): handle
5246 !authenticated case correctly
5248 * glib/dbus-gmain.c: add support for DBusServer
5250 * dbus/dbus-server.c: add data slot support
5252 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5253 return values and handle errors
5255 * dbus/dbus-dataslot.c: factor out the data slot stuff from
5258 * Doxyfile.in (INPUT): add glib subdir
5260 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5261 setup_with_g_main instead of hookup_with_g_main; write docs
5263 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5265 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5266 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5267 * dbus/dbus-message.c: (dbus_message_append_boolean),
5268 (dbus_message_append_boolean_array),
5269 (dbus_message_get_args_valist), (_dbus_message_test):
5270 * dbus/dbus-message.h:
5271 * doc/dbus-specification.sgml:
5272 Various fixes as pointed out by Havoc.
5274 * test/data/invalid-messages/bad-boolean-array.message:
5275 * test/data/invalid-messages/bad-boolean.message:
5276 Add invalid boolean value test cases.
5278 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5280 * dbus/dbus-internals.c: (_dbus_type_to_string):
5281 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5282 (_dbus_marshal_validate_arg):
5283 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5284 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5285 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5286 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5287 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5288 (dbus_message_iter_get_double),
5289 (dbus_message_iter_get_boolean_array), (message_iter_test):
5290 * dbus/dbus-message.h:
5291 * dbus/dbus-protocol.h:
5292 * doc/dbus-specification.sgml:
5293 * test/data/valid-messages/lots-of-arguments.message:
5294 Add support for boolean and boolean array types.
5296 2003-02-23 Havoc Pennington <hp@pobox.com>
5298 * dbus/dbus-keyring.c: finish most of this implementation and
5301 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5302 these barf if the error isn't cleared to NULL
5304 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5305 (_dbus_create_directory): new function
5307 * dbus/dbus-errors.c (dbus_set_error): fix warning
5309 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5310 (_dbus_string_hex_decode): new function
5311 (test_hex_roundtrip): test code
5313 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5315 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5317 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5318 the save-to-temp/rename trick to atomically write the new file
5319 (_dbus_string_parse_uint): new function
5321 2003-02-22 Havoc Pennington <hp@pobox.com>
5323 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5325 2003-02-22 Havoc Pennington <hp@pobox.com>
5327 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5328 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5330 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5332 * dbus/test/data/sha-1: add US government test suite for SHA-1
5334 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5336 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5337 Make string arrays NULL-terminated.
5339 * dbus/dbus-memory.c: (dbus_free_string_array):
5340 * dbus/dbus-memory.h:
5341 New function for freeing NULL-terminated string arrays.
5343 * dbus/dbus-message-builder.c: (append_quoted_string),
5344 (_dbus_message_data_load):
5345 Add support for array types.
5347 * dbus/dbus-message.c: (check_message_handling):
5348 Add more types as test cases.
5350 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5351 (_dbus_string_parse_double):
5352 Add the start offset to the end offset.
5354 * test/data/valid-messages/lots-of-arguments.message:
5355 New test message with lots of arguments.
5357 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5359 * dbus/dbus-message.c: (dbus_message_append_nil),
5360 (dbus_message_append_int32), (dbus_message_append_uint32),
5361 (dbus_message_append_double), (dbus_message_append_string),
5362 (dbus_message_append_int32_array),
5363 (dbus_message_append_uint32_array),
5364 (dbus_message_append_double_array),
5365 (dbus_message_append_byte_array),
5366 (dbus_message_append_string_array):
5367 Fix all out-of-memory handling in these functions.
5369 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5371 * dbus/dbus-message.c: (dbus_message_append_nil):
5374 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5376 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5377 (dbus_message_append_nil), (dbus_message_append_int32_array),
5378 (dbus_message_append_uint32_array),
5379 (dbus_message_append_double_array),
5380 (dbus_message_append_byte_array),
5381 (dbus_message_append_string_array), (dbus_message_get_args_valist),
5382 (dbus_message_iter_get_int32_array),
5383 (dbus_message_iter_get_uint32_array),
5384 (dbus_message_iter_get_double_array),
5385 (dbus_message_iter_get_byte_array),
5386 (dbus_message_iter_get_string_array):
5388 * dbus/dbus-message.h:
5389 Add functions for appending and getting arrays.
5391 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5393 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5394 element size at least 8 bytes, fixes mempool tests on
5397 2003-02-20 Alexander Larsson <alexl@redhat.com>
5399 * dbus/dbus-transport-unix.c (unix_do_iteration):
5400 Unlock the connection mutex during a blocking select call.
5401 Add todo about how we need a way to wake up the select.
5403 * dbus/dbus-connection-internal.h:
5404 * dbus/dbus-connection.c:
5405 Add _dbus_connection_lock and _dbus_connection_unlock.
5407 2003-02-19 Havoc Pennington <hp@pobox.com>
5409 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5410 Doxyfile.in, not Doxyfile
5412 * dbus/dbus-keyring.c: do some hacking on this
5414 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5416 * dbus/dbus-errors.c (dbus_set_error_const): do not call
5418 (dbus_set_error): remove dbus_error_init, check for message ==
5419 NULL *before* we sprintf into it, and add @todo about including
5420 system headers in this file
5422 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5424 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5426 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5427 get various bits of user information based on either username
5429 (_dbus_homedir_from_username): new function
5431 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5434 Add check for nonposix getpwnam_r
5436 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5437 Align the pool element size to a sizeof (void *) boundary.
5439 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5440 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5441 General Solaris fixes.
5443 * test/data/valid-messages/simplest-manual.message:
5444 Explicitly state that we want little-endian packing.
5446 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5448 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5450 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5451 Added to create a transport connecting using a tcp/ip socket.
5453 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5454 to a tcp socket at given host and port.
5455 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5458 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5460 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5461 Added to create a server listening on a TCP/IP socket.
5463 2003-02-19 Havoc Pennington <hp@pobox.com>
5465 Throughout: mop up all the Doxygen warnings and undocumented
5468 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
5469 to search any paths.
5471 * dbus/dbus-threads.c: move global mutex initializers to
5472 dbus-internals.h, multiple prototypes was confusing doxygen
5473 besides being kind of ugly
5475 * Doxyfile (PREDEFINED): have Doxygen define
5476 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
5477 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
5478 (do not abuse the feature! it's for stuff like the autogenerated
5479 macros in dbus-md5.c, not just for things you don't feel like
5482 2003-02-18 Havoc Pennington <hp@pobox.com>
5484 * dbus/dbus-string.c (_dbus_string_zero): new function
5486 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
5487 wrap it in some dbus-friendly API
5489 * dbus/dbus-types.h: add 16-bit types
5491 2003-02-18 Joe Shaw <joe@assbarn.com>
5493 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
5494 credentials from our currently running process.
5495 (get_word): Fix a buglet where we were copying the entire length
5496 instead of relative to our position.
5498 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
5499 keys on the stack... it's 640k of data.
5501 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
5502 read the credentials byte off the socket, even if we don't have
5504 (_dbus_poll): Implement poll() using select() for systems which
5507 * glib/test-dbus-glib.c (main): Print out an error if no
5508 parameters are given.
5510 * test/data/auth/fallback.auth-script: Added. Tests that a client
5511 can fallback to a secondary auth mechanism if the first fails.
5513 2003-02-18 Havoc Pennington <hp@pobox.com>
5517 2003-02-17 Havoc Pennington <hp@pobox.com>
5519 * doc/dbus-specification.sgml: lots of cosmetic
5520 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
5521 env variable to DBUS_BUS_ADDRESS, s/client/application/,
5522 s/server/bus/ (except in authentication section). Add a section
5523 "Message Bus Message Routing"
5525 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
5531 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5533 * doc/dbus-specification.sgml:
5534 Specification updates.
5536 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5538 * bus/activation.c: (bus_activation_init), (child_setup),
5539 (bus_activation_activate_service):
5541 * bus/main.c: (main):
5542 Set DBUS_ADDRESS environment variable.
5544 * dbus/dbus-errors.c: (dbus_set_error):
5545 Don't use va_copy since that's a C99 feature.
5547 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
5548 (_dbus_spawn_async):
5549 * dbus/dbus-sysdeps.h:
5550 Add child_setup_func to _dbus_spawn_async.
5552 * doc/dbus-specification.sgml:
5553 Update specification.
5555 * test/spawn-test.c: (setup_func), (main):
5558 2003-02-17 Alexander Larsson <alexl@redhat.com>
5560 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
5563 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5567 * doc/dbus-test-plan.sgml:
5568 Add test plan document.
5573 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5575 * dbus/dbus-message.c: (decode_header_data),
5576 (_dbus_message_loader_return_buffer):
5577 Set the header padding amount when loading a message.
5579 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5581 * bus/dispatch.c: (send_one_message):
5582 Only send broadcast messages to registered connections.
5584 * dbus/dbus-message.c: (dbus_message_name_is):
5585 * dbus/dbus-message.h:
5586 New convenience function.
5588 * dbus/dbus-transport-debug.c: (do_reading):
5589 Only dispatch one message per run.
5592 * test/bus-test.c: (new_connection_callback), (die),
5593 (test_hello_client1_handler), (test_hello_client2_handler),
5594 (test_hello_replies), (main):
5596 * test/bus-test-loop.[ch]:
5599 2003-02-16 Havoc Pennington <hp@pobox.com>
5601 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5602 backward conditional
5604 2003-02-16 Alexander Larsson <alexl@redhat.com>
5606 * dbus/dbus-connection.c:
5607 Implement sent_message_with_reply. (with_reply_and block is still
5609 Made dispatch_message not lose message if OOM.
5611 * dbus/dbus-errors.h:
5612 Add NoReply error (for reply timeouts).
5614 2003-02-16 Alexander Larsson <alexl@redhat.com>
5616 * dbus/dbus-hash.c (_dbus_hash_table_unref):
5617 Actually free keys and values when destroying hashtable.
5619 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5621 * dbus/dbus-auth.c: (client_try_next_mechanism):
5624 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
5625 Return TRUE if there's no thread implementation around.
5627 * glib/dbus-gmain.c: (free_source),
5628 (dbus_connection_hookup_with_g_main):
5629 Make sure to remove the GSource when the connection is finalized.
5631 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5633 * bus/dispatch.c: (bus_dispatch_message_handler):
5634 * dbus/dbus-errors.h:
5635 Return an error if someone tries to send a message to a service
5638 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5640 * bus/activation.c: (load_directory), (bus_activation_init),
5641 (bus_activation_activate_service):
5644 (bus_driver_handle_activate_service), (bus_driver_handle_message):
5645 More work on the activation handling.
5647 * dbus/dbus-errors.h:
5648 Add some error messages
5650 * dbus/dbus-message.c: (dbus_message_new_error_reply):
5651 * dbus/dbus-message.h:
5652 New function that creates an error message.
5654 * dbus/dbus-protocol.h:
5655 Add ACTIVATE_SERVER message.
5657 * dbus/dbus-server-unix.c: (unix_handle_watch),
5658 (_dbus_server_new_for_domain_socket):
5659 Call _dbus_fd_set_close_on_exec.
5661 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
5662 (_dbus_spawn_async), (_dbus_disable_sigpipe),
5663 (_dbus_fd_set_close_on_exec):
5664 * dbus/dbus-sysdeps.h:
5665 Add _dbus_fd_set_close_on exec function. Also add function that checks
5666 that all open fds are set to close-on-exec and warns otherwise.
5668 * dbus/dbus-transport-unix.c:
5669 (_dbus_transport_new_for_domain_socket):
5670 Call _dbus_fd_set_close_on_exec.
5672 2003-02-16 Havoc Pennington <hp@pobox.com>
5674 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
5675 allow people to avoid setting SIGPIPE to SIG_IGN
5676 (_dbus_connection_new_for_transport): disable SIGPIPE unless
5677 we've been asked not to
5679 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5681 * dbus/dbus-list.c: (_dbus_list_append_link),
5682 (_dbus_list_prepend_link):
5683 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
5687 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5690 * bus/activation.c: (bus_activation_entry_free),
5691 (add_desktop_file_entry), (load_directory), (bus_activation_init):
5693 * bus/main.c: (main):
5694 Add simple activation support, doesn't work yet though.
5696 2003-02-15 Zack Rusin <zack@kde.org>
5698 * qt/dbus-qthread.cpp: small casting fix
5700 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5702 * dbus/dbus-errors.c: (dbus_set_error):
5703 * dbus/dbus-errors.h:
5704 Add a few errors and make dbus_set_error void.
5706 * dbus/dbus-sysdeps.c:
5707 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
5708 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
5709 * dbus/dbus-sysdeps.h:
5710 Add _dbus_spawn_async.
5712 * test/spawn-test.c: (main):
5713 Test for _dbus_spawn_async.
5715 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5717 * dbus/dbus-internals.h:
5718 Fix build without tests.
5720 * dbus/dbus-list.c: (alloc_link):
5721 Fix a segfault when a malloc fails.
5723 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
5724 (dbus_malloc0), (dbus_realloc):
5725 Add support for malloc debugging.
5727 2003-02-15 Alexander Larsson <alexl@redhat.com>
5729 * dbus/dbus-threads.c:
5730 * dbus/dbus-threads.h:
5731 Add condvars. Remove static mutext from API.
5732 Implement static mutexes by initializing them from threads_init.
5734 * glib/dbus-gthread.c:
5735 * qt/dbus-qthread.cpp:
5736 Update with the thread api changes.
5741 Turn StaticMutex into normal mutex + init function.
5742 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
5743 _dbus_list_append_link, _dbus_list_prepend_link
5746 * dbus/dbus-sysdeps.c:
5747 * dbus/dbus-sysdeps.h:
5748 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
5749 _dbus_atomic_dec. Only slow fallback implementation at the moment.
5751 * dbus/dbus-protocol.h:
5752 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
5754 * dbus/dbus-message.c:
5755 Make ref/unref atomic.
5758 * dbus/dbus-connection-internal.h:
5759 * dbus/dbus-connection.c:
5760 * dbus/dbus-connection.h:
5762 Change _peek to _borrow,_return & _steal_borrowed.
5763 Change disconnect callback to event.
5764 Make dbus_connection_dispatch_messages reentrant.
5766 * dbus/dbus-transport.c:
5767 Don't ref the connection on calls to the transport
5770 * dbus/dbus-message-handler.c:
5773 * glib/dbus-gmain.c:
5774 Don't use peek_message anymore
5777 * test/debug-thread.c:
5778 * test/debug-thread.h:
5779 Simple thread implementation that asserts() on deadlocks in
5780 single-threaded code.
5783 (main) Call debug_threads_init.
5786 Use disconnect message instead of disconnect callback.
5790 Don't call dbus_connection_set_disconnect_function. Instead export
5791 bus_connection_disconnect.
5794 Call bus_connection_disconnect when we get a disconnected message.
5796 2003-02-15 Havoc Pennington <hp@pobox.com>
5798 * dbus/dbus-message.c (dbus_message_new): fool around with the
5801 2003-02-14 Havoc Pennington <hp@pobox.com>
5803 * dbus/dbus-mempool.c: fail if the debug functions so indicate
5805 * dbus/dbus-memory.c: fail if the debug functions indicate we
5808 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
5809 (_dbus_decrement_fail_alloc_counter): debug functions to
5810 simulate memory allocation failures
5812 2003-02-14 Havoc Pennington <hp@pobox.com>
5814 * dbus/dbus-errors.h (struct DBusError): add a word of padding
5817 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5819 * bus/driver.c: (bus_driver_handle_hello):
5821 * bus/services.c: (bus_service_lookup):
5822 Reorder message sending so we get a more sane order.
5824 * test/bus-test.c: (message_handler):
5827 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5829 * bus/driver.c: (bus_driver_send_service_deleted),
5830 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5831 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5832 (bus_driver_send_welcome_message),
5833 (bus_driver_handle_list_services),
5834 (bus_driver_handle_acquire_service),
5835 (bus_driver_handle_service_exists):
5836 * dbus/dbus-bus.c: (dbus_bus_register_client),
5837 (dbus_bus_acquire_service), (dbus_bus_service_exists):
5838 * dbus/dbus-errors.c: (dbus_result_to_string):
5839 * dbus/dbus-errors.h:
5840 * dbus/dbus-message.c: (dbus_message_append_args),
5841 (dbus_message_append_args_valist), (dbus_message_get_args),
5842 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
5843 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
5844 (dbus_message_iter_get_byte_array),
5845 (dbus_message_iter_get_string_array), (message_iter_test),
5846 (check_message_handling), (_dbus_message_test):
5847 * dbus/dbus-message.h:
5848 * test/bus-test.c: (main):
5849 Change fields to arguments in messages, so that they won't be
5850 confused with header fields.
5852 * glib/test-dbus-glib.c: (main):
5853 Remove append_fields from hello message.
5855 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5857 * dbus/dbus-errors.c:
5858 * dbus/dbus-message.c:
5859 * dbus/dbus-string.c:
5860 Documentation fixes.
5862 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5864 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
5866 Implement support for timeouts in dbus-glib.
5868 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5870 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5871 * dbus/dbus-message.c: (process_test_subdir):
5872 * test/break-loader.c: (find_breaks_based_on):
5873 Plug some memory leaks.
5875 2003-02-13 Richard Hult <rhult@codefactory.se>
5877 * bus/main.c: Fix build.
5879 * dbus/dbus-errors.h:
5880 * dbus/dbus-errors.c: Fix copyright for Anders.
5882 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5887 * bus/connection.c: (bus_connection_foreach):
5890 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
5891 (unescape_string), (new_section), (parse_section_start),
5892 (parse_key_value), (report_error), (bus_desktop_file_load),
5893 (bus_desktop_file_get_string):
5894 * bus/desktop-file.h:
5895 Use DBusError for error reporting.
5897 * bus/dispatch.c: (send_one_message),
5898 (bus_dispatch_message_handler):
5899 * bus/driver.c: (bus_driver_send_service_deleted),
5900 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5901 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5902 (bus_driver_send_welcome_message),
5903 (bus_driver_handle_list_services),
5904 (bus_driver_handle_acquire_service),
5905 (bus_driver_handle_service_exists):
5906 * bus/loop.c: (bus_loop_run):
5908 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
5910 * bus/utils.c: (bus_wait_for_memory):
5912 New files with general utility functions.
5914 * dbus/dbus-internals.h:
5915 Remove _DBUS_HANDLE_OOM.
5917 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5919 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
5920 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
5921 * dbus/dbus-errors.h:
5922 Add DBusError structure.
5924 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5926 * test/data/valid-messages/standard-acquire-service.message:
5927 * test/data/valid-messages/standard-hello.message:
5928 * test/data/valid-messages/standard-list-services.message:
5929 * test/data/valid-messages/standard-service-exists.message:
5930 Add some standard messages.
5932 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5934 * bus/driver.c: (bus_driver_send_welcome_message),
5935 (bus_driver_handle_list_services),
5936 (bus_driver_handle_acquire_service),
5937 (bus_driver_handle_service_exists), (bus_driver_handle_message):
5938 Update for API changes in libdbus.
5940 * dbus/dbus-message.c: (dbus_message_new_reply):
5941 * dbus/dbus-message.h:
5942 Remove the name argument. The spec states that replies shouldn't
5945 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5947 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
5948 (report_error), (bus_desktop_file_load), (lookup_section),
5949 (lookup_line), (bus_desktop_file_get_raw),
5950 (bus_desktop_file_get_string):
5951 * bus/desktop-file.h:
5952 Some fixes, and new functions for getting a key value from a section.
5954 2003-02-13 Havoc Pennington <hp@pobox.com>
5956 * test/data/auth/fail-after-n-attempts.auth-script: new test
5958 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
5961 2003-02-13 Havoc Pennington <hp@pobox.com>
5963 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
5964 dbus_credentials_match were backward
5966 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
5967 NO_CREDENTIALS and ROOT_CREDENTIALS
5969 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
5970 into here. Never process more commands after we've reached an
5971 end state; store further data as unused bytes.
5973 * test/data/auth/*: add more auth tests
5975 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
5976 command to match exact string and EXPECT_UNUSED to match unused
5979 * test/Makefile.am (dist-hook): fix to dist all the test stuff
5981 2003-02-12 Havoc Pennington <hp@pobox.com>
5983 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
5984 \r off of popped lines
5986 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
5989 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
5992 2003-02-12 Havoc Pennington <hp@pobox.com>
5994 * dbus/Makefile.am: remove break-loader from the build, since it
5997 * configure.in: add --enable-gcov to turn on coverage profiling
5998 flags and disable optimization
6000 2003-02-10 Havoc Pennington <hp@pobox.com>
6002 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6003 initial cut at test framework for DBusAuth from laptop.
6004 Doesn't quite work yet but it compiles and I need to get
6005 it off the 266mhz laptop. ;-)
6007 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6008 fix a memleak in error case
6010 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6013 * bus/desktop-file.c:
6014 * bus/desktop-file.h:
6015 Add a desktop file parser.
6017 2003-02-11 Zack Rusin <zack@kde.org>
6019 * qt/message.[h|cpp]: sample implementation
6020 of the KDE wrapper for DBusMessage
6022 2003-02-09 Zack Rusin <zack@kde.org>
6024 * test/bus-test.c: make_it_compile
6025 * doc/dbus-specification.sgml: minimal semantic fix
6027 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6033 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6036 * dbus/dbus-break-loader.c:
6038 * test/break-loader.c:
6039 Move dbus-break-loader to test/ and rename it to break-loader.
6041 2003-02-02 Havoc Pennington <hp@pobox.com>
6043 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6044 for code to manage cookies in your home directory
6046 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6048 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6049 to authenticate, then disconnect the client.
6051 2003-02-03 Alexander Larsson <alexl@redhat.com>
6053 * dbus/dbus-message.c (dbus_message_append_fields):
6056 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6058 * doc/dbus-specification.sgml:
6059 Update address format section.
6061 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6064 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6065 (message_handler), (new_connection_callback), (loop_quit),
6069 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6071 * bus/driver.c: (bus_driver_handle_service_exists):
6072 Simplify the code a bit.
6074 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6077 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6080 Add libdbus-daemon.la and link to it.
6082 2003-02-01 James Willcox <jwillcox@gnome.org>
6084 * bus/driver.c: (bus_driver_handle_own_service):
6085 Actually include the service reply code in the message.
6087 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6089 * bus/driver.c: (bus_driver_handle_service_exists):
6090 Don't unref the incoming message.
6092 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6094 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6096 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6098 * dbus/dbus-server.c: (dbus_server_listen):
6099 * dbus/dbus-transport.c: (_dbus_transport_open):
6100 ifdef out the calls to the debug transport and server.
6102 2003-02-02 Alexander Larsson <alexl@redhat.com>
6104 * dbus/dbus-watch.c (dbus_watch_get_flags):
6105 Add note in the docs that ERROR or HANGUP won't be returned
6106 and are assumed always on.
6108 * glib/dbus-gmain.c (add_watch):
6109 Always add IO_ERR | IO_HUP
6111 * dbus/dbus-message.h:
6112 Add semicolon after dbus_message_iter_get_string_array().
6113 Makes qt code build again
6115 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6117 * bus/driver.c: (create_unique_client_name),
6118 (bus_driver_handle_hello):
6119 Don't take a name, just use a numeric id to identify
6123 * dbus/dbus-bus.c: (dbus_bus_register_client),
6124 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6126 Add new convenience functions for communicating with the bus.
6128 * dbus/dbus-message.h:
6130 * dbus/dbus-protocol.h:
6133 2003-02-01 Alexander Larsson <alexl@redhat.com>
6135 * dbus/dbus-message.c (dbus_message_append_fields):
6136 Add some more doc comments.
6138 2003-02-01 Havoc Pennington <hp@pobox.com>
6140 * dbus/dbus-break-loader.c (randomly_modify_length): change
6141 a 4-byte value in the message as if it were a length
6143 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6144 execute bit on saved files
6146 2003-02-01 Havoc Pennington <hp@pobox.com>
6148 * dbus/dbus-break-loader.c (main): new program to find messages
6149 that break the loader.
6151 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6152 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6154 * dbus/dbus-string.c (_dbus_string_set_byte): new
6156 2003-01-31 Havoc Pennington <hp@pobox.com>
6158 * dbus/dbus-message.c: refactor the test code to be more general,
6159 in preparation for writing a "randomly permute test cases to
6160 try to break the loader" program.
6162 2003-01-31 Havoc Pennington <hp@pobox.com>
6164 * doc/dbus-specification.sgml: work on the specification
6166 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6167 the protocol version of the message.
6169 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6170 no longer specifies that.
6171 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6174 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6175 "break" for DBUS_TYPE_NIL, remove @todo
6177 2003-01-31 Havoc Pennington <hp@pobox.com>
6179 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6180 just set_is_error/get_is_error as this is a commonly-used
6181 function, and write docs.
6183 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6185 * dbus/dbus-address.c: (dbus_address_entry_free):
6186 Free key and value lists.
6188 * dbus/dbus-internals.c: (_dbus_type_to_string):
6189 Add the types we didn't have.
6191 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6192 (_dbus_marshal_validate_arg):
6195 * dbus/dbus-message.c: (dbus_message_set_sender):
6196 Remove todo about being able to set sender to NULL.
6198 (dbus_message_set_is_error_reply),
6199 (dbus_message_get_is_error_reply):
6200 * dbus/dbus-message.h:
6203 * dbus/dbus-protocol.h:
6204 Add error reply flag.
6206 * test/data/valid-messages/opposite-endian.message:
6207 Add NIL type to test.
6209 2003-01-31 Havoc Pennington <hp@pobox.com>
6211 * doc/dbus-specification.sgml: fully specify the header. Add
6212 flags and major protocol version, and change header/body len to
6215 * dbus/dbus-message-builder.c (append_saved_length): append length
6218 * dbus/dbus-message.c (dbus_message_create_header): change header
6219 length and body length to unsigned. Add the new fields from the
6221 (_dbus_message_loader_return_buffer): unsigned header/body len
6223 2003-01-30 Havoc Pennington <hp@pobox.com>
6225 * dbus/dbus-auth.c: rework to use only REJECTED, no
6228 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6229 use REJECTED, suggested by Mark McLoughlin
6231 2003-01-30 Havoc Pennington <hp@pobox.com>
6233 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6234 a better way to report errors here. e.g. "unix address lacks
6235 path" or something. also "no such file" when the path doesn't
6238 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6240 (dbus_parse_address): add @todo about documenting address format,
6241 and allowing , and ; to be escaped
6243 2003-01-30 Anders Carlsson <andersca@codefactory.se>
6246 Add dbus-address.[ch]
6248 * dbus/dbus-address.c: (dbus_address_entry_free),
6249 (dbus_address_entries_free), (create_entry),
6250 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6251 (dbus_parse_address), (_dbus_address_test):
6252 * dbus/dbus-address.h:
6253 New files for dealing with address parsing.
6255 * dbus/dbus-connection.c:
6256 Document timeout functions.
6258 * dbus/dbus-message.c:
6259 Document dbus_message_new_from_message.
6261 * dbus/dbus-server-debug.c:
6264 * dbus/dbus-server.c: (dbus_server_listen):
6265 Parse address and use correct server implementation.
6267 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6268 * dbus/dbus-string.h:
6269 New function with test.
6271 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6275 * dbus/dbus-transport-debug.c:
6278 * dbus/dbus-transport.c: (_dbus_transport_open):
6279 Parse address and use correct transport implementation.
6281 2003-01-30 Havoc Pennington <hp@pobox.com>
6283 * dbus/dbus-message.c: use message->byte_order instead of
6284 DBUS_COMPILER_BYTE_ORDER throughout.
6285 (dbus_message_create_header): pad header to align the
6286 start of the body of the message to 8-byte boundary
6288 * dbus/dbus-marshal.h: make all the demarshalers take const
6289 DBusString arguments.
6291 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6292 validate message args here, so we don't have to do slow validation
6293 later, and so we catch bad messages as they are incoming. Also add
6294 better checks on header_len and body_len. Also fill in
6297 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6298 implemented properly)
6299 (_dbus_string_validate_nul): new function to check all-nul
6301 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6302 get_arg_end_pos and remove all validation
6303 (_dbus_marshal_validate_arg): actually do validation here.
6305 2003-01-29 Havoc Pennington <hp@pobox.com>
6307 * dbus/dbus-message.c (check_message_handling): fix assertion
6308 failure on set_client_serial
6310 2003-01-28 Havoc Pennington <hp@pobox.com>
6312 * dbus/dbus-server-debug.c: Add doc section comments
6314 * dbus/dbus-transport-debug.c: add doc section comments
6316 2003-01-28 Havoc Pennington <hp@redhat.com>
6318 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6319 the reverse order from how I had it
6320 (_dbus_string_base64_encode): reverse encoding order. I was
6321 basically byteswapping everything during encoding.
6323 2003-01-28 Anders Carlsson <andersca@codefactory.se>
6325 * dbus/dbus-connection-internal.h:
6326 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6327 (_dbus_connection_remove_timeout):
6328 Add functions for adding and removing timeouts.
6330 * dbus/dbus-message.c: (dbus_message_new_from_message):
6331 Add new function that takes a message and creates an exact
6332 copy of it, but with the refcount set to 1.
6333 (check_message_handling):
6336 * dbus/dbus-server-protected.h:
6337 * dbus/dbus-server.c: (_dbus_server_init_base),
6338 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6339 (dbus_server_set_timeout_functions):
6340 (_dbus_server_remove_timeout):
6341 New functions so that a server can add and remove timeouts.
6343 (dbus_server_listen):
6344 Add commented out call to dbus_server_debug_new.
6346 * dbus/dbus-timeout.c: (_dbus_timeout_new):
6347 Actually set the handler, doh.
6349 * dbus/dbus-transport.c: (_dbus_transport_open):
6350 Add commented out call to dbus_transport_debug_client_new.
6353 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6355 2003-01-28 Havoc Pennington <hp@pobox.com>
6357 * dbus/dbus-message.c (check_message_handling): function to check
6358 on the loaded message, iterates over it etc.
6360 2003-01-28 Havoc Pennington <hp@pobox.com>
6362 * test/Makefile.am (dist-hook): fix make distdir
6364 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6366 2003-01-27 Havoc Pennington <hp@pobox.com>
6368 * dbus/dbus-mempool.c (time_for_size): replace printf with
6371 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6372 empty lines; fix the SAVE_LENGTH stuff to be
6373 START_LENGTH/END_LENGTH so it actually works; couple other
6376 * test/Makefile.am (dist-hook): add dist-hook for .message files
6378 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6379 can be constant or locked.
6380 (_dbus_string_free): allow freeing a const string as
6383 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6385 * dbus/dbus-test-main.c (main): take an argument which is the
6386 directory containing test data
6388 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6389 argument to this and load all the messages in test/data/
6390 checking that they can be loaded or not loaded as appropriate.
6392 2003-01-27 Anders Carlsson <andersca@codefactory.se>
6394 * bus/dispatch.c: (bus_dispatch_message_handler):
6395 Dispatch messages sent to services.
6397 * bus/driver.c: (bus_driver_send_service_deleted),
6398 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6399 (bus_driver_send_service_acquired):
6400 Add helper functions for sending service related messages.
6402 (bus_driver_send_welcome_message):
6403 Send HELLO_REPLY instead of WELCOME.
6405 (bus_driver_handle_list_services):
6406 Send LIST_SERVICES_REPLY instead of SERVICES.
6408 (bus_driver_handle_own_service),
6409 (bus_driver_handle_service_exists):
6410 New message handlers.
6412 (bus_driver_handle_message):
6413 Invoke new message handlers.
6415 (bus_driver_remove_connection):
6416 Don't remove any services here since that's done automatically
6417 by bus_service_remove_owner now.
6420 New function signatures.
6422 * bus/services.c: (bus_service_add_owner):
6423 Send ServiceAcquired message if we're the only primary owner.
6425 (bus_service_remove_owner):
6426 Send ServiceAcquired/ServiceLost messages.
6428 (bus_service_set_prohibit_replacement),
6429 (bus_service_get_prohibit_replacement):
6430 Functions for setting prohibit replacement.
6432 (bus_service_has_owner):
6433 New function that checks if a connection is in the owner queue of
6437 Add new function signatures.
6439 * dbus/dbus-list.c: (_dbus_list_test):
6440 Add tests for _dbus_list_remove_last and traversing the list backwards.
6443 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6444 go any further, so return NULL then.
6446 * dbus/dbus-protocol.h:
6447 Add new messages, service flags and service replies.
6449 2003-01-26 Havoc Pennington <hp@pobox.com>
6451 * dbus/dbus-message-builder.c: implement, completely untested.
6453 * test/data/*: add data to be used in testing.
6454 ".message" files are our simple loadable text format.
6455 ".message-raw" will be binary dumps of messages.
6457 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6459 2003-01-26 Havoc Pennington <hp@pobox.com>
6461 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6463 * dbus/dbus-errors.c (dbus_result_to_string): add
6466 * dbus/dbus-message-builder.c: new file, will contain code to load
6467 up messages from files. Not implemented yet.
6469 2003-01-26 Havoc Pennington <hp@pobox.com>
6471 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
6472 the sender by setting to NULL
6474 2003-01-26 Havoc Pennington <hp@pobox.com>
6476 The unit tests pass, but otherwise untested. If it breaks, the
6477 tests should have been better. ;-)
6479 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
6482 * dbus/dbus-message.c: redo everything so we maintain
6483 message->header as the only copy of the various fields.
6484 This avoids the possibility of out-of-memory in some cases,
6485 for example dbus_message_lock() can't run out of memory anymore,
6486 and avoids extra copying. Figured I may as well go ahead and do
6487 this since it was busted for dbus_message_lock to not return
6488 failure on OOM, and dbus_message_write_header was totally
6489 unchecked for OOM. Also fixed some random other bugs.
6491 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
6492 that strings are nul-terminated. Also, end_pos can be equal
6493 to string length just not greater than, I think.
6494 (_dbus_marshal_set_int32): new function
6495 (_dbus_marshal_set_uint32): new function
6496 (_dbus_marshal_set_string): new function
6498 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
6499 a warning, init timeout_list to NULL
6500 (dbus_connection_send_message): don't use uninitialized variable
6503 * dbus/dbus-string.c (_dbus_string_replace_len): new function
6505 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6507 * bus/driver.c: (bus_driver_handle_hello),
6508 (bus_driver_send_welcome_message):
6511 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6513 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
6514 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6515 (dbus_connection_unref):
6516 * dbus/dbus-marshal.c: (_dbus_marshal_test):
6517 * dbus/dbus-message.c: (dbus_message_unref),
6520 (dbus_message_get_fields):
6521 Remove debugging printout.
6523 (_dbus_message_loader_return_buffer):
6524 Don't store the header string.
6526 (_dbus_message_test):
6529 2003-01-26 Richard Hult <rhult@codefactory.se>
6531 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
6532 the file descriptor list, since it can change under us.
6534 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6536 * glib/dbus-gmain.c: (dbus_connection_prepare),
6537 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
6538 (remove_watch), (dbus_connection_hookup_with_g_main):
6539 Rewrite the glib handling to use its own GSource instead of a
6540 GIOChannel so we can catch messages put in the queue while waiting
6543 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6546 * bus/connection.c: (connection_disconnect_handler),
6547 (connection_watch_callback), (bus_connection_setup):
6548 * bus/dispatch.c: (send_one_message),
6549 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
6550 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
6552 * bus/driver.c: (bus_driver_send_service_deleted),
6553 (bus_driver_send_service_created), (bus_driver_handle_hello),
6554 (bus_driver_send_welcome_message),
6555 (bus_driver_handle_list_services), (bus_driver_remove_connection),
6556 (bus_driver_handle_message):
6558 Refactor code, put the message dispatching in its own file. Use
6559 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
6562 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6564 * dbus/dbus-internals.h:
6565 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
6567 * dbus/dbus-message.c: (dbus_message_get_sender):
6568 * dbus/dbus-message.h:
6569 Implement dbus_message_get_sender.
6571 * dbus/dbus-protocol.h:
6572 Add message and service defines.
6574 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6576 * dbus/dbus-connection.c: (dbus_connection_send_message):
6577 * dbus/dbus-message-internal.h:
6578 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
6579 (dbus_message_write_header):
6580 Remove _dbus_messag_unlock and don't set the client serial on a
6581 message if one already exists.
6583 2003-01-24 Havoc Pennington <hp@pobox.com>
6585 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
6588 * bus/driver.c (bus_driver_handle_list_services): fix a leak
6591 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6593 * dbus/dbus-list.c: (alloc_link), (free_link):
6594 Use a memory pool for the links.
6596 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6598 * bus/connection.c: (bus_connection_foreach):
6600 Add new bus_connection_foreach function.
6602 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
6603 Add function that broadcasts a message to all clients.
6605 (bus_driver_send_service_created), (bus_driver_handle_hello),
6606 (bus_driver_send_welcome_message),
6607 (bus_driver_handle_list_services), (bus_driver_message_handler):
6608 Implement functions that take care of listing services, and notifying
6609 clients when new services are created.
6611 * bus/services.c: (bus_services_list):
6613 Add new function that returns an array of strings with the currently
6614 registered services.
6617 * glib/dbus-gmain.c:
6618 Update copyright year.
6620 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6622 * dbus/dbus-connection.c: (dbus_connection_send_message):
6623 Unlock the message in case it was sent earlier.
6625 (dbus_connection_send_message_with_reply_and_block):
6626 Remove the reply message from the list.
6628 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6629 Set array_len and new_pos correctly.
6631 (_dbus_marshal_test):
6632 Remove debug output.
6634 * dbus/dbus-message-internal.h:
6635 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
6636 New function that returns the reply serial.
6638 (_dbus_message_unlock):
6639 New function that unlocks a message and resets its header.
6641 (dbus_message_append_string_array),
6642 (dbus_message_get_fields_valist),
6643 (dbus_message_iter_get_field_type),
6644 (dbus_message_iter_get_string_array),
6645 (dbus_message_get_fields),
6646 (dbus_message_append_fields_valist):
6647 Handle string arrays.
6649 (dbus_message_set_sender):
6650 Make this function public since the bus daemon needs it.
6652 (decode_header_data):
6653 Set the reply serial to -1 initially.
6655 * dbus/dbus-message.h:
6656 Add dbus_message_set_sender.
6658 2003-01-24 Havoc Pennington <hp@pobox.com>
6660 * doc/dbus-specification.sgml: add some stuff
6662 2003-01-22 Havoc Pennington <hp@pobox.com>
6664 * doc/dbus-specification.sgml: Start to document the protocol.
6666 2003-01-22 Havoc Pennington <hp@pobox.com>
6668 * dbus/dbus-connection.c
6669 (dbus_connection_send_message_with_reply_and_block): add some @todo
6671 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
6673 2003-01-21 Havoc Pennington <hp@pobox.com>
6675 (patch untested because can't compile)
6677 * bus/driver.c (create_unique_client_name): make this function
6678 never recycle client names. Also, caller should initialize
6681 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
6683 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6685 * dbus/dbus-marshal.c: (_dbus_marshal_double),
6686 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6687 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
6688 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
6689 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
6690 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
6691 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
6692 * dbus/dbus-marshal.h:
6693 * dbus/dbus-protocol.h:
6694 Add support for marshalling and demarshalling integer, double
6697 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6702 * bus/connection.c: (connection_disconnect_handler):
6703 Remove the connection from the bus driver's list.
6705 (connection_watch_callback): Dispatch messages.
6707 (free_connection_data): Free connection name.
6709 (bus_connection_setup): Add connection to the bus driver's list.
6710 (bus_connection_remove_owned_service):
6711 (bus_connection_set_name), (bus_connection_get_name):
6712 Add functions for setting and getting the connection's name.
6715 Add function headers.
6717 * bus/driver.c: (create_unique_client_name),
6718 (bus_driver_handle_hello_message),
6719 (bus_driver_send_welcome_message), (bus_driver_message_handler),
6720 (bus_driver_add_connection), (bus_driver_remove_connection):
6723 * bus/services.c: (bus_service_free):
6725 New file that handles communication and registreation with the bus
6728 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6730 * dbus/dbus-connection.c: (dbus_connection_send_message):
6731 Add a new client_serial parameter.
6733 (dbus_connection_send_message_with_reply):
6734 Remove a @todo since we've implemented the blocking function.
6736 (dbus_connection_send_message_with_reply_and_block):
6737 New function that sends a message and waits for a reply and
6738 then returns the reply.
6740 * dbus/dbus-connection.h:
6743 * dbus/dbus-errors.c: (dbus_result_to_string):
6744 * dbus/dbus-errors.h:
6745 Add new DBUS_RESULT.
6747 * dbus/dbus-message-internal.h:
6748 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
6749 (_dbus_message_set_sender), (dbus_message_write_header),
6750 (dbus_message_new_reply), (decode_header_data),
6751 (_dbus_message_loader_return_buffer), (_dbus_message_test):
6752 * dbus/dbus-message.h:
6753 Add new functions that set the reply serial and sender.
6754 Also marshal and demarshal them correctly and add test.
6756 * dbus/dbus-protocol.h:
6757 Add new DBUS_MESSAGE_TYPE_SENDER.
6760 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
6761 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
6762 (dbus_connection_hookup_with_g_main):
6763 * glib/test-dbus-glib.c: (main):
6764 Rewrite to use GIOChannel and remove the GSource crack.
6766 * test/echo-client.c: (main):
6767 * test/watch.c: (check_messages):
6768 Update for changed APIs
6770 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6772 * dbus/Makefile.am: Add dbus-timeout.[cħ]
6774 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
6775 Create a DBusTimeoutList.
6776 (dbus_connection_set_timeout_functions): Add new function to
6777 set timeout callbacks
6779 * dbus/dbus-connection.h: Add public DBusTimeout API.
6781 * dbus/dbus-message.c: (dbus_message_get_service):
6782 * dbus/dbus-message.h: New function.
6784 * dbus/dbus-server.c: Fix small doc typo.
6786 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
6788 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6790 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
6791 of the string, just as long as specified.
6793 2003-01-19 Havoc Pennington <hp@pobox.com>
6795 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
6798 * dbus/dbus-server.c (dbus_server_set_max_connections)
6799 (dbus_server_get_max_connections, dbus_server_get_n_connections):
6800 keep track of current number of connections, and add API for
6801 setting a max (but haven't implemented enforcing the max yet)
6803 2003-01-18 Havoc Pennington <hp@pobox.com>
6805 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
6806 reading/writing if read_watch != NULL or write_watch != NULL.
6808 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
6809 the message loader code to actually load message->header and
6810 message->body into the newly-created message.
6812 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
6815 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
6816 (dbus_connection_get_max_message_size)
6817 (dbus_connection_set_max_live_messages_size)
6818 (dbus_connection_get_max_live_messages_size): implement some
6819 resource limitation functions
6821 * dbus/dbus-resources.c: new file implementing some of the
6822 resource limits stuff
6824 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
6825 missing docs, add @todo to handle OOM etc.
6827 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
6830 2003-01-18 Havoc Pennington <hp@pobox.com>
6832 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
6833 connection if it hasn't been already.
6835 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
6836 replace with DisconnectFunction.
6838 2003-01-18 Havoc Pennington <hp@pobox.com>
6840 Building --disable-verbose-mode --disable-asserts --disable-tests
6841 cuts the library from 112K to 45K or so
6843 * configure.in: check for varargs macro support,
6844 add --enable-verbose-mode, --enable-asserts.
6846 * dbus/dbus-internals.h (_dbus_assert): support
6848 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
6850 2003-01-18 Havoc Pennington <hp@pobox.com>
6852 * dbus/dbus-test.c: include config.h so that tests actually run
6854 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
6855 so the failure mode when that assumption fails will be plenty
6858 2003-01-18 Havoc Pennington <hp@pobox.com>
6860 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
6862 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
6865 * test/Makefile.am: don't use special variable "TESTS" for echo-*
6866 since we don't want to use those in make check
6868 2003-01-15 Havoc Pennington <hp@redhat.com>
6874 2003-01-15 Havoc Pennington <hp@redhat.com>
6876 * test/Makefile.am: fix so that test source code ends up in the
6877 distribution on make distcheck
6879 2003-01-15 Havoc Pennington <hp@redhat.com>
6885 2003-01-15 Havoc Pennington <hp@redhat.com>
6887 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
6888 fix build when --disable-tests
6890 * Makefile.am (EXTRA_DIST): put HACKING in here
6892 * HACKING: document procedure for making a tarball release.
6894 2003-01-14 Anders Carlsson <andersca@codefactory.se>
6896 * bus/connection.c: (connection_error_handler),
6897 (bus_connection_setup):
6898 * bus/main.c: (main):
6899 Make sure that the DBusConnectionData struct is NULLed
6900 out to prevent a segfault.
6902 * dbus/dbus-errors.c: (dbus_result_to_string):
6903 * dbus/dbus-errors.h:
6904 * dbus/dbus-message.c: (dbus_message_get_fields),
6905 (dbus_message_get_fields_valist), (_dbus_message_test):
6906 * dbus/dbus-message.h:
6907 Make dbus_message_get_fields return a result code so we can
6908 track invalid fields as well as oom.
6910 2003-01-11 Havoc Pennington <hp@pobox.com>
6912 * configure.in: change --enable-test/--enable-ansi action-if-given
6913 to enable_foo=$enableval instead of enable_foo=yes
6915 2003-01-08 Havoc Pennington <hp@pobox.com>
6917 * dbus/dbus-string.c (_dbus_string_align_length): new function
6919 * dbus/dbus-test-main.c: move main() for test app here
6921 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
6922 symbol to run tests, because dbus-test isn't in the main
6925 Code review nitpicks.
6927 * dbus/dbus-message.c (dbus_message_write_header): add newlines
6928 for people with narrow emacs ;-). Assert client_serial was filled
6929 in. Assert message->name != NULL.
6930 (dbus_message_append_fields): have "first_field_type" arg separate
6931 from va list, needed for C++ binding that also uses varargs IIRC
6932 and helps with type safety
6933 (dbus_message_new): add @todo about using DBusString to store
6934 service/name internally
6935 (dbus_message_new): don't leak ->service and ->name on OOM later
6937 (dbus_message_unref): free the service name
6938 (dbus_message_get_fields): same change to varargs
6939 i.e. first_field_type
6940 (_dbus_message_loader_return_buffer): assert that the message data
6941 is aligned (if not it's a bug in our code). Put in verbose griping
6942 about why we set corrupted = TRUE.
6943 (decode_header_data): add FIXME that char* is evil. Was going to
6944 add FIXME about evil locale-specific string.h strncmp, but just
6945 switched to wacky string-as-uint32 optimization. Move check for
6946 "no room for field name" above get_const_data_len() to avoid
6947 assertion failure in get_const_data_len if we have trailing 2
6948 bytes or the like. Check for service and name fields being
6949 provided twice. Don't leak service/name on error. Require field
6950 names to be aligned to 4 bytes.
6952 * dbus/dbus-marshal.c: move byte swap stuff to header
6953 (_dbus_pack_int32): uscore-prefix
6954 (_dbus_unpack_int32): uscore-prefix
6955 (_dbus_unpack_uint32): export
6956 (_dbus_demarshal_string): add @todo complaining about use of
6958 (_dbus_marshal_get_field_end_pos): add @todo about bad error
6959 handling allowing corrupt data to go unchecked
6961 2003-01-08 Havoc Pennington <hp@redhat.com>
6963 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
6964 to the select() as needed for authentication. (should be using
6965 _dbus_poll() not select, but for another day)
6967 * dbus/dbus.h: include dbus/dbus-protocol.h
6969 2003-01-08 Anders Carlsson <andersca@codefactory.se>
6971 * dbus/Makefile.am (dbusinclude_HEADERS): Install
6974 2003-01-08 Anders Carlsson <andersca@codefactory.se>
6976 * dbus/dbus-internals.c: (_dbus_type_to_string):
6977 New function that returns a string describing a type.
6979 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
6980 * dbus/dbus-marshal.h:
6981 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
6982 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
6983 (dbus_message_iter_get_byte_array):
6984 * dbus/dbus-message.h:
6985 Add new convenience functions for appending and getting message fields.
6986 Also add demarshalling routines for byte arrays.
6988 2003-01-07 Anders Carlsson <andersca@codefactory.se>
6990 * dbus/dbus-connection-internal.h:
6991 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6992 (_dbus_connection_get_next_client_serial),
6993 (dbus_connection_send_message):
6994 * dbus/dbus-internals.h:
6995 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
6996 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
6997 (_dbus_marshal_uint32), (_dbus_demarshal_double),
6998 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
6999 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7000 (_dbus_verbose_bytes), (_dbus_marshal_test):
7001 * dbus/dbus-marshal.h:
7002 * dbus/dbus-message-internal.h:
7003 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7004 (dbus_message_write_header), (_dbus_message_lock),
7005 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7006 (dbus_message_get_name), (dbus_message_append_int32),
7007 (dbus_message_append_uint32), (dbus_message_append_double),
7008 (dbus_message_append_string), (dbus_message_append_byte_array),
7009 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7010 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7011 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7012 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7013 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7014 (decode_header_data), (_dbus_message_loader_return_buffer),
7015 (message_iter_test), (_dbus_message_test):
7016 * dbus/dbus-message.h:
7017 * dbus/dbus-protocol.h:
7018 * dbus/dbus-test.c: (main):
7020 * glib/test-dbus-glib.c: (message_handler), (main):
7021 * test/echo-client.c: (main):
7022 * test/watch.c: (check_messages):
7023 Make messages sendable and receivable for real.
7025 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7027 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7028 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7029 * dbus/dbus-message.c: (dbus_message_append_int32),
7030 (dbus_message_append_uint32), (dbus_message_append_double),
7031 (dbus_message_append_string), (dbus_message_append_byte_array):
7032 Handle OOM restoration.
7034 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7036 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7037 (_dbus_demarshal_string), (_dbus_marshal_test):
7038 * dbus/dbus-marshal.h:
7039 * dbus/dbus-message.c: (dbus_message_get_name),
7040 Document these functions.
7042 (dbus_message_append_int32), (dbus_message_append_uint32),
7043 (dbus_message_append_double), (dbus_message_append_string),
7044 (dbus_message_append_byte_array):
7045 * dbus/dbus-message.h:
7046 Add functions for adding message fields of different types.
7048 * dbus/dbus-protocol.h:
7049 Add the different types.
7051 2003-01-05 Havoc Pennington <hp@pobox.com>
7053 * bus/connection.c: implement routines for handling connections,
7054 first thing is keeping a list of owned services on each connection
7055 and setting up watches etc.
7057 * bus/services.c: implement a mapping from service names to lists
7060 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7062 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7063 to use static mutexes for global data
7065 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7066 collection of functions to set/get application-specific data
7067 on the DBusConnection.
7069 2003-01-04 Havoc Pennington <hp@pobox.com>
7071 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7072 (_dbus_poll): new function
7074 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7077 * bus/loop.c: initial code for the daemon main loop
7079 2003-01-04 Havoc Pennington <hp@pobox.com>
7081 * test/watch.c (error_handler): make it safe if the error handler
7082 is called multiple times (if we s/error handler/disconnect
7083 handler/ we should just guarantee it's called only once)
7085 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7086 error handler on disconnect (it's quite possible we should
7087 just change the error handler to a "disconnect handler," I'm
7088 not sure we have any other meaningful errors)
7090 * configure.in: check for getpwnam_r
7092 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7093 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7094 mechanism as in SASL spec, using socket credentials
7096 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7097 (_dbus_send_credentials_unix_socket): new function
7099 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7101 (_dbus_write): only check errno if <0 returned
7102 (_dbus_write_two): ditto
7104 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7106 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7107 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7108 (_dbus_marshal_test):
7109 * dbus/dbus-marshal.h:
7110 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7111 to _dbus_marshal_utf8_string. Also fix some tests.
7113 2002-12-28 Harri Porten <porten@kde.org>
7115 * configure.in: added check for C++ compiler and a very cheesy
7116 check for the Qt integration
7118 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7120 * qt/Makefile.am: added
7122 * qt/.cvsignore: added
7124 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7125 latter, added #ifdef QT_THREAD_SUPPORT guard.
7127 * dbus/Makefile.am: added missing headers for make dist
7129 2002-12-28 Kristian Rietveld <kris@gtk.org>
7131 * dbus/Makefile.am: fixup export-symbols-regex.
7133 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7135 * acinclude.m4: Add this file and put the
7136 PKG_CHECK_MODULE macro in it.
7138 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7140 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7141 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7142 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7143 (_dbus_marshal_test):
7144 Make the demarshalling routines align the pos argument.
7145 Add string marshalling tests and fix the obvious bugs
7148 2002-12-26 Havoc Pennington <hp@pobox.com>
7150 * dbus/dbus-auth.c: fixes fixes fixes
7152 * dbus/dbus-transport-unix.c: wire up support for
7153 encoding/decoding data on the wire
7155 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7156 (_dbus_auth_decode_data): append to target string
7157 instead of nuking it.
7159 2002-12-26 Havoc Pennington <hp@pobox.com>
7161 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7162 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7165 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7166 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7167 now). Main point is because I wanted unpack_uint32 to implement
7169 (_dbus_verbose_bytes): new function
7171 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7173 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7174 mechanism to handle a corrupt message stream
7175 (_dbus_message_loader_new): fix preallocation to only prealloc,
7178 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7179 (_dbus_string_test): enhance tests for copy/move and fix the
7182 * dbus/dbus-transport-unix.c: Hold references in more places to
7183 avoid reentrancy problems
7185 * dbus/dbus-transport.c: ditto
7187 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7188 leak reference count in no-message case
7190 * test/watch.c (do_mainloop): handle adding/removing watches
7191 during iteration over the watches. Also, ref the connection/server
7192 stored on a watch, so we don't try to mangle a destroyed one.
7194 * dbus/dbus-transport-unix.c (do_authentication): perform
7197 * dbus/dbus-auth.c (get_state): add a state
7198 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7199 (_dbus_auth_get_unused_bytes): append the unused bytes
7200 to the passed in string, rather than prepend
7202 * dbus/dbus-transport.c (_dbus_transport_init_base): create
7203 the auth conversation DBusAuth
7205 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7206 (_dbus_transport_new_for_domain_socket): when creating a
7207 transport, pass in whether it's a client-side or server-side
7208 transport so we know which DBusAuth to create
7210 2002-12-03 Havoc Pennington <hp@pobox.com>
7212 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7213 _after_ finalizing the derived members
7214 (unix_connection_set): unref watch if we fail to add it
7216 * dbus/dbus-connection.c (dbus_connection_unref): delete the
7217 transport first, so that the connection owned by the
7218 transport will be valid as the transport finalizes.
7220 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7221 if necessary, and remove watches from the connection.
7223 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7225 2002-12-26 Anders Carlsson <andersca@codefactory.se>
7227 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7228 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7229 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7230 (_dbus_marshal_test):
7231 * dbus/dbus-marshal.h:
7232 Add string marshal functions and have the demarshal functions
7233 return the new position.
7235 2002-12-25 Havoc Pennington <hp@pobox.com>
7237 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7238 it is a simple protocol that just maps directly to SASL.
7240 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7241 initial implementation, not actually used yet.
7243 * dbus/dbus-string.c (_dbus_string_find): new function
7244 (_dbus_string_equal): new function
7245 (_dbus_string_base64_encode): new function
7246 (_dbus_string_base64_decode): new function
7248 2002-12-25 Anders Carlsson <andersca@codefactory.se>
7251 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7252 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7253 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7254 (_dbus_demarshal_uint32), (_dbus_marshal_test):
7255 * dbus/dbus-marshal.h:
7256 * dbus/dbus-protocol.h:
7257 * dbus/dbus-test.c: (main):
7259 Add un-optimized marshalling/demarshalling routines.
7261 2002-12-25 Harri Porten <porten@kde.org>
7263 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7265 2002-12-24 Zack Rusin <zack@kde.org>
7267 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7268 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7271 2002-12-24 Havoc Pennington <hp@pobox.com>
7273 * glib/dbus-gthread.c: fix include
7275 * glib/dbus-glib.h: rename DBusMessageHandler for now.
7276 I think glib API needs to change, though, as you don't
7277 want to use DBusMessageFunction, you want to use the
7278 DBusMessageHandler object. Probably
7279 dbus_connection_open_with_g_main_loop()
7280 and dbus_connection_setup_g_main_loop() or something like that
7281 (but think of better names...) that just create a connection
7282 that has watch/timeout functions etc. already set up.
7284 * dbus/dbus-connection.c
7285 (dbus_connection_send_message_with_reply): new function just to
7286 show how the message handler helps us deal with replies.
7288 * dbus/dbus-list.c (_dbus_list_remove_last): new function
7290 * dbus/dbus-string.c (_dbus_string_test): free a string that
7293 * dbus/dbus-hash.c: use memory pools for the hash entries
7294 (rebuild_table): be more paranoid about overflow, and
7295 shrink table when we can
7296 (_dbus_hash_test): reduce number of sprintfs and write
7297 valid C89. Add tests for case where we grow and then
7298 shrink the hash table.
7300 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7302 * dbus/dbus-connection.c (dbus_connection_register_handler)
7303 (dbus_connection_unregister_handler): new functions
7305 * dbus/dbus-message.c (dbus_message_get_name): new
7307 * dbus/dbus-list.c: fix docs typo
7309 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7310 an object representing a handler for messages.
7312 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7315 * glib/dbus-gthread.c: (dbus_gthread_init):
7316 Don't use the gdbus prefix for public functions.
7318 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7322 Add GLib checks and fixup .pc files
7326 * glib/dbus-gmain.c: (gdbus_connection_prepare),
7327 (gdbus_connection_check), (gdbus_connection_dispatch),
7328 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7329 (dbus_connection_gsource_new):
7330 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7331 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7332 * glib/test-dbus-glib.c: (message_handler), (main):
7335 2002-12-15 Harri Porten <porten@kde.org>
7337 * autogen.sh: check for libtoolize before attempting to use it
7339 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7342 * .cvsignore: ignore more stamp files
7344 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7346 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7347 without make install.
7349 2002-12-15 Havoc Pennington <hp@pobox.com>
7351 * dbus/dbus-threads.c: add thread stubs that a higher library
7352 layer can fill in. e.g. the GLib wrapper might fill them in with
7353 GThread stuff. We still need to use this thread API to
7354 thread-safe-ize the library.
7356 2002-12-12 Havoc Pennington <hp@pobox.com>
7358 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7359 below new interfaces and include fewer system headers.
7361 * dbus/dbus-sysdeps.c (_dbus_read): new function
7362 (_dbus_write): new function
7363 (_dbus_write_two): new function
7364 (_dbus_connect_unix_socket): new function
7365 (_dbus_listen_unix_socket): new function
7367 * dbus/dbus-message-internal.h: change interfaces to use
7370 2002-12-11 Havoc Pennington <hp@pobox.com>
7372 * dbus/dbus-types.h: add dbus_unichar
7374 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7376 * dbus/dbus-connection.c (dbus_connection_send_message): return
7379 * dbus/dbus-transport.c: include dbus-watch.h
7381 * dbus/dbus-connection.c: include dbus-message-internal.h
7383 * HACKING: add file with coding guidelines stuff.
7385 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7386 handling here, for security purposes (as in vsftpd). Not actually
7387 using this class yet.
7389 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7390 system/libc usage here, as in vsftpd, for ease of auditing (and
7391 should also simplify portability). Haven't actually moved all the
7392 system/libc usage into here yet.
7394 2002-11-25 Havoc Pennington <hp@pobox.com>
7396 * dbus/dbus-internals.c (_dbus_verbose): fix to not
7397 always print the first verbose message.
7399 2002-11-24 Havoc Pennington <hp@pobox.com>
7401 * test/echo-client.c, test/echo-server.c: cheesy test
7404 * configure.in (AC_CHECK_FUNCS): check for writev
7406 * dbus/dbus-message.c (_dbus_message_get_network_data): new
7409 * dbus/dbus-list.c (_dbus_list_foreach): new function
7411 * dbus/dbus-internals.c (_dbus_verbose): new function
7413 * dbus/dbus-server.c, dbus/dbus-server.h: public object
7414 representing a server that listens for connections.
7416 * dbus/.cvsignore: create
7418 * dbus/dbus-errors.h, dbus/dbus-errors.c:
7419 public API for reporting errors
7421 * dbus/dbus-connection.h, dbus/dbus-connection.c:
7422 public object representing a connection that
7423 sends/receives messages. (Same object used for
7424 both client and server.)
7426 * dbus/dbus-transport.h, dbus/dbus-transport.c:
7427 Basic abstraction for different kinds of stream
7428 that we might read/write messages from.
7430 2002-11-23 Havoc Pennington <hp@pobox.com>
7432 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7435 * dbus/dbus-test.c (main): add list test, and include
7436 dbus-test.h as intended
7438 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7439 (_dbus_hash_table_remove_int): return value indicates
7440 whether the entry existed to remove
7442 * dbus/dbus-list.c: add linked list utility class,
7445 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7448 2002-11-23 Havoc Pennington <hp@pobox.com>
7450 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7451 DBUS_END_DECLS to nothing, that should fix this once and for all
7453 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7455 * dbus/dbus-message.c, dbus/dbus-hash.c:
7456 add some missing @brief
7458 2002-11-23 Havoc Pennington <hp@pobox.com>
7460 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7461 to avoid confusing Doxygen
7463 * dbus/dbus-hash.c: @} not }@
7465 * dbus/dbus-message.c (struct DBusMessage): split out
7468 2002-11-23 Havoc Pennington <hp@pobox.com>
7470 * configure.in: pile on more warning flags if using gcc
7472 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
7473 to document static functions
7475 * configure.in: add summary to end of configure so it
7476 looks nice and attractive
7478 * dbus/dbus-hash.c: finish implementation and write unit
7481 * configure.in: add --enable-tests to enable unit tests
7483 * dbus/dbus-test.c: test program to run unit tests
7484 for all files in dbus/*, initially runs a test for
7487 * dbus/dbus-internals.h: file to hold some internal utility stuff
7489 2002-11-22 Havoc Pennington <hp@redhat.com>
7491 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
7492 "ported" away from Tcl
7494 * dbus/dbus-types.h: header for types such as dbus_bool_t
7496 2002-11-22 Havoc Pennington <hp@redhat.com>
7498 * dbus/dbus.h: fixups for doc warnings
7500 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
7502 (QUIET): make it quiet so we can see warnings
7504 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
7506 2002-11-22 Havoc Pennington <hp@redhat.com>
7508 * Makefile.am: include "Doxyfile" target in all-local
7510 * configure.in: generate the Doxyfile
7512 * Doxyfile.in: move Doxyfile here, so we can use
7513 configure to generate a Doxyfile with the right
7516 2002-11-22 Havoc Pennington <hp@redhat.com>
7518 * dbus/dbus-message.c: move inline docs into .c file
7520 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
7521 so all docs are under doc/
7522 (MAN_EXTENSION): generate man pages. Use extension
7523 ".3dbus" which matches ".3qt" on my system,
7524 I guess this is OK, I don't know really.
7525 (FILE_PATTERNS): look for .c files not .h, makes sense
7528 2002-11-22 Havoc Pennington <hp@pobox.com>
7530 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
7531 because any app can be a server, and any app can be a client,
7532 the bus is a special kind of server.
7534 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
7536 * Doxyfile : adding. Still needs Makefile rules to be generated
7537 automatically (just run "doxygen" in the toplevel dir for now to
7540 * dbus/dbus-message.h : Adding sample docs (javadoc since
7541 resembles gtk-doc a little more)
7543 * dbus/dbus.h : Adding sample docs
7545 2002-11-21 Havoc Pennington <hp@redhat.com>
7547 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
7548 so we can allow ourselves to include files directly,
7549 instead of having to use dbus.h
7551 * dbus/dbus.h: fill in
7553 * dbus/dbus-message.h: sketch out a sample header file.
7554 Include griping if you include it directly instead of
7557 * dbus/dbus-macros.h: new file with macros for extern "C",
7558 TRUE/FALSE, NULL, etc.
7560 * doc/file-boilerplate.c: put include guards in here
7562 2002-11-21 Havoc Pennington <hp@redhat.com>
7564 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
7566 * COPYING: include the GPL as well, and license code
7567 under both AFL and GPL.
7569 2002-11-21 Havoc Pennington <hp@redhat.com>
7571 * acconfig.h: get rid of this
7573 * autogen.sh (run_configure): add --no-configure option
7575 * configure.in: remove AC_ARG_PROGRAM to make
7576 autoconf complain less. add AC_PREREQ.
7577 add AC_DEFINE third arg.
7579 2002-11-21 Anders Carlsson <andersca@codefactory.se>
7582 Fix references so we can distcheck.
7584 2002-11-21 Havoc Pennington <hp@redhat.com>
7586 * Initial module creation