1 2004-10-29 Colin Walters <walters@redhat.com>
3 Patch from Ed Catmur <ed@catmur.co.uk>
5 * mono/doc/Makefile.am (install-data-local): Handle
8 2004-10-29 Colin Walters <walters@redhat.com>
10 * bus/.cvsignore, qt/.cvsignore: Update.
12 2004-10-29 Colin Walters <walters@redhat.com>
14 Patch from Kristof Vansant <de_lupus@pandora.be>
16 * configure.in: Detect Slackware.
17 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
18 * bus/rc.messagebus.in: New file.
20 2004-10-29 Colin Walters <walters@redhat.com>
22 * tools/dbus-monitor.c (filter_func): Return
23 DBUS_HANDLER_RESULT_HANDLED in filter function
25 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
27 2004-10-29 Colin Walters <walters@redhat.com>
29 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
31 * bus/services.c (bus_registry_acquire_service):
32 Correctly retrieve service name from DBusString
35 2004-10-29 Colin Walters <walters@redhat.com>
37 * dbus/dbus-glib.h: Update documentation to not
38 refer to internal APIs.
40 2004-10-27 Joe Shaw <joeshaw@novell.com>
42 * mono/Arguments.cs (GetDBusTypeConstructor):
43 type.UnderlyingSystemType will return "System.Byte" if you do it
44 on "byte[]", which is not what we want. So check the type.IsArray
45 property and use System.Array instead.
47 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
49 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
50 the DBusUserInfo structure since this is passed into the function.
51 This would cause a double free when the function that allocated
52 the structure would try to free it when an error occured.
54 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
55 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
56 for service activation to avoid 32bit/64bit parallel install issues
58 2004-10-21 Colin Walters <walters@verbum.org>
60 * AUTHORS: Fix my email address, the @gnu.org one
61 has been bouncing for some time. Also add J5.
63 2004-10-21 Colin Walters <walters@verbum.org>
65 * dbus/dbus-transport-unix.c (do_authentication): Return
66 authentication status to callers.
67 (unix_handle_watch): If we completed authentication this round,
68 don't do another read. Instead wait until the next iteration,
69 after we've read any pending data in the auth buffer.
70 (unix_do_iteration): Ditto.
71 (unix_handle_watch): Updated for new do_authentication prototype.
73 2004-10-18 Colin Walters <walters@verbum.org>
75 * bus/selinux.c (bus_selinux_enabled): Handle
76 --disable-selinux case.
78 2004-10-18 Colin Walters <walters@verbum.org>
80 * bus/selinux.h: Add bus_selinux_enabled.
82 * bus/selinux.c (bus_selinux_enabled): Implement it.
84 * bus/config-parser.c (struct include): Add
85 if_selinux_enabled member.
86 (start_busconfig_child): Parse if_selinux_enabled
87 attribute for include.
88 (bus_config_parser_content): Handle it.
90 * bus/session.conf.in, bus/system.conf.in: Add
91 inclusion of context mapping to default config files;
92 conditional on SELinux being enabled.
94 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
96 * test/data/invalid-config-files/badselinux-1.conf,
97 test/data/invalid-config-files/badselinux-2.conf:
98 Test files for bad syntax.
100 2004-10-17 Colin Walters <walters@verbum.org>
102 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
103 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
104 format specifier mismatches.
106 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
108 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
111 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
112 pointer (bug #1540, Leonardo Boiko).
114 2004-09-28 Jon Trowbridge <trow@ximian.com>
116 * mono/BusDriver.cs: Changed BusDriver struct to remove
117 the ServiceCreated and ServiceDeleted events and replace them
118 with the new ServiceOwnerChanged event.
120 * mono/example/BusListener.cs: Added a new example program,
121 which listens for and reports any ServiceOwnerChanged events
124 * mono/example/Makefile.am (DESTDIR): Build changes for the
125 new BusListener.cs example.
127 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
129 * bus/signals.c (bus_match_rule_parse): validate the components of
130 match rules (bug #1439).
132 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
134 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
136 * doc/dbus-specification.xml: document ServiceOwnerChanged
139 * bus/driver.c, bus/driver.h, bus/services.c: Use
140 ServiceOwnerChanged signal instead of ServiceCreated and
143 * bus/dispatch.c: update testcase for the new signal.
145 2004-09-20 Jon Trowbridge <trow@ximian.com>
147 Patch from Nat Friedman <nat@novell.com>
149 * mono/Makefile.am: A number of small build fixes to allow "make
150 distcheck" to succeed.
152 * mono/example/Makefile.am: "make distcheck" fixes.
154 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
157 * test/Makefile.am: "make distcheck" fixes.
159 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
161 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
163 * doc/busconfig.dtd: update the DTD for the at_console attribute.
165 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
166 messages after the first one (bug #1389).
168 * bus/dispatch.c (check_double_hello_message): add a test case for
169 the double hello message bug.
170 (check_existent_service_activation): fix check of spawning error.
172 2004-09-16 David Zeuthen <david@fubar.dk>
174 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
176 2004-09-12 David Zeuthen <david@fubar.dk>
178 Patch from Kay Sievers <kay.sievers@vrfy.org>
180 * bus/bus.c (bus_context_new):
184 Add commandline option --nofork to override configuration file
187 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
189 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
190 compilers don't like it (bug #974).
192 2004-09-04 Harald Fernengel <harry@kdevelop.org>
194 * qt/connection.*: Applied patch by Jérôme Lodewyck
195 <lodewyck@clipper.ens.fr> to integrate an existing
196 connection into the Qt eventloop
198 2004-08-30 Jon Trowbridge <trow@ximian.com>
200 * mono/BusDriver.cs: Added. This is a class for interacting with
201 the org.freedesktop.DBus service.
203 * mono/Message.cs: Added a mechanism to expose the message that is
204 currently being dispatched via the static Message.Current
205 property. Added Message.Sender and Message.Destination
208 * mono/Handler.cs: Expose the dispatched message via
209 Message.Current when handling method calls.
211 * mono/Service.cs: Expose the dispatched message via
212 Message.Current when handling signal emissions.
214 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
215 Connection.BaseService property.
217 2004-08-28 Havoc Pennington <hp@redhat.com>
219 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
221 More fixes from Steve Grubb
223 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
224 (_dbus_listen_tcp_socket): fix fd leak
226 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
227 EINTR to a bit lower in the code
229 2004-08-26 Jon Trowbridge <trow@ximian.com>
231 * bus/driver.c (bus_driver_handle_service_exists): Respond with
232 TRUE if we are inquiring about the existence of the built-in
233 org.freedesktop.DBus service.
235 2004-08-25 John Palmieri <johnp@redhat.com>
236 * bus/config-parser.c:
237 (struct PolicyType): Add POLICY_CONSOLE
238 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
239 (start_busconfig_child): Sets up console element when
240 <policy at_console=""> is encountered in a policy file
241 (append_rule_from_element): Convert console elements to console
245 (bus_policy_create_client_policy): Add console rules to the client
246 policy based on if the client is at the console
247 (bus_policy_append_console_rule): New function for adding a
248 console rule to a policy
249 (bus_policy_merge): Handle console rule merging
251 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
252 where we check for console user files
254 * dbus/dbus-sysdeps.c:
255 (_dbus_file_exists): New function which checks if the given
257 (_dbus_user_at_console): New function which does the system
258 specific process of checking if the user is at the console
260 * dbus/dbus-userdb.c:
261 (_dbus_is_console_user): New function converts a UID to user name
262 and then calls the system specific _dbus_user_at_console to
263 see if the user is at the console and therefor a console user
265 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
267 * bus/config-parser.c (set_limit):
268 * bus/dbus-daemon-1.1.in:
269 * test/data/valid-config-files/many-rules.conf: set the
270 max_match_rules_per_connection limt from the config file.
272 * doc/busconfig.dtd: update the DTD.
274 * bus/driver.c: remove some unused variables.
276 2004-08-24 Mikael Hallendal <micke@imendio.com>
278 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
279 it's been replaced by dbus_g_bus_get
281 2004-08-23 Colin Walters <walters@redhat.com>
283 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
285 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
287 * bus/selinux.c: Create a thread for policy reload notification.
288 (bus_selinux_get_policy_root): Implement.
290 * bus/config-parser.c (start_busconfig_child)
291 (bus_config_parser_content): Support SELinux-root relative
294 * configure.in <HAVE_SELINUX>: Add -lpthread.
296 * bus/test-main.c (test_pre_hook, test_post_hook): New.
297 (test_post_hook): Move memory checking into here.
298 (test_pre_hook, test_post_hook): Move SELinux checks in
299 here, but conditional on a DBUS_TEST_SELINUX environment
300 variable. Unfortunately we can't run the SELinux checks
301 as a normal user, since they won't have any permissions
302 for /selinux. So this will have to be tested manually
303 for now, until we have virtualization for most of
306 2004-08-23 Havoc Pennington <hp@redhat.com>
308 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
309 drop supplementary groups, suggested by Steve Grubb
311 2004-08-20 Colin Walters <walters@redhat.com>
313 * bus/config-parser.c (start_busconfig_child): Remove some unused
316 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
319 2004-08-17 Joe Shaw <joeshaw@novell.com>
321 * configure.in: If --enable-mono is passed in, if we can't find
324 * mono/Makefile.am: Use /gacutil to install assemblies into the
327 2004-08-12 Havoc Pennington <hp@redhat.com>
329 * NEWS: update for 0.22
331 * configure.in: release 0.22
333 2004-08-11 Colin Walters <walters@redhat.com>
335 * tools/dbus-send.c (main, usage): Add --reply-timeout
338 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
340 * bus/bus.c (process_config_first_time_only): get rid of an unused
341 DBusError that was causing a memoy leak (bug #989).
343 * dbus/dbus-keyring.c, dbus/dbus-message.c:
344 fix compilation on Solaris/Forte C (bug #974)
346 * bus/main.c (main): plug two minuscule memleaks.
348 2004-08-10 Havoc Pennington <hp@redhat.com>
350 * doc/dbus-tutorial.xml: add some more info on GLib bindings
352 2004-08-09 Havoc Pennington <hp@redhat.com>
354 * COPYING: switch to Academic Free License version 2.1 instead of
355 2.0, to resolve complaints about patent termination clause.
357 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
359 * README: added documentation for the --enable-python
362 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
364 * bus/config-parser.c (bus_config_parser_new): fix an invalid
365 _unref in the SELinux support.
367 * doc/busconfig.dtd: update DTD for SELinux support.
369 * bus/config-loader-libxml.c: fix error handler and parser
370 initialisation/cleanup. OOM test now works with libxml2 HEAD.
372 * configure.in: remove the warning about libxml2.
374 * dbus/dbus-bus.c: silence doxygen warning.
376 2004-07-31 Colin Walters <walters@redhat.com>
378 * configure.in: Move #error in SELinux check to its own line.
380 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
382 * dbus/dbus-internals.h (_DBUS_SET_OOM):
383 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
386 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
387 broken by the change in the _SET_OOM macros.
389 2004-07-31 Colin Walters <walters@redhat.com>
391 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
394 2004-07-31 Colin Walters <walters@redhat.com>
396 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
397 to correctly detect DBUS__ACQUIRE_SVC. Also add an
400 2004-07-24 Havoc Pennington <hp@redhat.com>
402 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
404 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
407 * configure.in: add --enable-selinux
409 * bus/policy.c (bus_policy_merge): add FIXME to a comment
411 * bus/main.c (main): initialize and shut down selinux
413 * bus/connection.c: store SELinux ID on each connection, to avoid
414 repeated getting of the string context and converting it into
417 * bus/bus.c (bus_context_get_policy): new accessor, though it
419 (bus_context_check_security_policy): check whether the security
420 context of sender connection can send to the security context of
423 * bus/config-parser.c: add parsing for <selinux> and <associate>
425 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
426 implement dbus_connection_get_unix_fd()
428 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
429 function, used by the selinux stuff
431 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
433 * bus/config-loader-libxml.c: complete the implementation of
434 libxml backend for config file loader. Doesn't work with full OOM
437 * configure.in: change error when selecting libxml into a warning.
439 * test/data/invalid-config-files: add two non-well-formed XML
442 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
444 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
445 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
446 be necessary to read all the buffer. (bug #894)
448 * bus/activation.c (bus_activation_activate_service): fix a
449 potential assertion failure (bug #896). Small optimization in the
450 case of auto-activation messages.
452 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
453 add test case for byte-through-vararg bug (#901). patch by Kimmo
456 2004-07-28 Anders Carlsson <andersca@gnome.org>
459 * python/dbus_bindings.pyx.in:
460 Add dbus.init_gthreads (), allow emit_signal to pass
461 arguments to the signal.
463 2004-07-24 Havoc Pennington <hp@redhat.com>
465 * AUTHORS: add some people, not really comprehensively, let me
468 2004-07-24 Havoc Pennington <hp@redhat.com>
470 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
473 * test/Makefile.am (DIST_SUBDIRS): here also
475 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
477 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
478 breaking build on Solaris, reported by Farhad Saberi on the ML.
480 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
481 va_arg invocation to account for integer promotion in the case of
482 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
484 * bus/services.c (bus_service_remove_owner): fix bug #902, use
485 _dbus_list_get_first_link, not _dbus_list_get_first.
487 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
489 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
490 handler functions so that the asserts in _dbus_object_subtree_unref
493 * dbus/dbus-transport-unix.c (do_reading):
494 _dbus_transport_queue_messages return value is of type
495 dbus_bool_t, not DBusDispatchStatus.
497 2004-07-19 David Zeuthen <david@fubar.dk>
499 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
502 (check_get_connection_unix_user): Debug says GetProperty; but the
503 method is called GetConnectionUnixUser
504 (check_get_connection_unix_process_id): New function
505 (bus_dispatch_test): Actually call check_get_connection_unix_user();
506 also call check_get_connection_unix_process_id()
509 (bus_driver_handle_get_connection_unix_process_id): New function,
510 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
514 (handle_server_data_external_mech): Set pid from the credentials
515 obtained from the socket
517 * dbus/dbus-connection.c:
518 (dbus_connection_get_unix_process_id): New function
520 * dbus/dbus-connection.h:
521 Add prototype for dbus_connection_get_unix_process_id
523 * dbus/dbus-transport.c:
524 (_dbus_transport_get_unix_process_id): New function
526 * dbus/dbus-transport.h:
527 Add prototype for _dbus_transport_get_unix_process_id
529 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
531 * dbus/dbus-message.c: Message counter fix, patch by Christian
532 Hammond <chipx86@gnupdate.org>
534 2004-07-18 Seth Nickell <seth@gnome.org>
537 * python/dbus_bindings.pyx.in:
538 * python/tests/test-client.py:
540 Add dbus.ByteArray and dbus_bindings.ByteArray
541 types so that byte streams can be passed back.
543 Give jdahlin the heaps of credit that are so
546 2004-07-12 Seth Nickell <seth@gnome.org>
550 Add message argument to the default object_method_handler
553 * python/dbus_bindings.pyx.in:
555 Automatically return NIL when passed an empty list
556 (we can't pass back a list since lists are typed
557 and we don't have any idea what type the the client
558 intended the list to be... :-( )
560 2004-07-10 Seth Nickell <seth@gnome.org>
562 * python/examples/Makefile.am:
564 Fix distcheck breakage caused by new examples.
566 2004-07-10 Seth Nickell <seth@gnome.org>
570 Add "message" argument to service-side dbus.Object
571 methods. This will break existing services written
572 using the python bindings, but will allow extraction
573 of all the message information (e.g. who its from).
575 Add improved "object oriented" signal handling/emission.
577 * python/examples/example-service.py:
581 * python/examples/example-signal-emitter.py:
582 * python/examples/example-signal-recipient.py:
584 Two new examples that show how to emit and receive
585 signals using the new APIs.
587 * python/examples/example-signals.py:
588 * python/examples/gconf-proxy-service.py:
589 * python/examples/gconf-proxy-service2.py:
591 Add "message" argument to service methods.
593 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
595 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
596 * dbus/bus.c (dbus_bus_get_unix_user)
597 * doc/dbus-specification.xml: implement GetConnectionUnixUser
598 method of org.freedesktop.DBus interface.
600 * bus/dispatch.c: test case
602 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
604 * python/Makefile.am: switched include directory from glib/ to dbus/
605 since dbus-glib.h moved
607 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
609 * configure.in: prevent building the gcj stuff and libxml loader
610 since they are broken.
612 2004-06-20 Havoc Pennington <hp@redhat.com>
614 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
615 codes from the dbus error names
617 * glib/dbus-glib.h: move to subdir dbus/ since it's included
618 as dbus/dbus-glib.h and that breakage is now visible due to
619 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
621 * glib/dbus-glib.h: s/gproxy/g_proxy/
623 * dbus/dbus-shared.h: new header to hold stuff shared with
626 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
629 * glib/dbus-glib.h (dbus_set_g_error): move to
632 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
633 of stuff to enable this
635 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
637 * a bunch of other changes with the same basic "separate glib
638 bindings from dbus.h" theme
640 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
642 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
644 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
646 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
648 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
649 the reply value of the ServiceExists message.
651 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
653 * python/dbus_bindings.pyx.in: No longer need to parse path
654 elements and pass them as arrays of strings. The C API now
655 accepts plain path strings.
656 (_build_parsed_path): removed
658 2004-06-07 Havoc Pennington <hp@redhat.com>
660 * doc/TODO: remove auto-activation item since it's done; sort
661 items by importance/milestone
663 2004-06-07 Havoc Pennington <hp@redhat.com>
665 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
666 random signature when using REQUIRED_FIELDS (this hack won't work
669 * dbus/dbus-message.c: change the signature to be a header field,
670 instead of message->signature special-case string. Incremental
671 step forward. Then we can fix up code to send the signature in the
672 message, then fix up code to validate said signature, then fix up
673 code to not put the typecodes inline, etc.
674 (load_one_message): don't make up the signature after the fact
675 (decode_header_data): require signature field for the known
678 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
680 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
682 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
684 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
686 * mono/Handler.cs: Updated to follow new path argument for
687 (un-)registering objects.
689 * mono/example/Makefile.am:
691 * configure.in: Bumped required version for mono and use new -pkg
694 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
696 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
697 registration functions take the path argument as char* instead of
700 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
701 split off the path decompostion part of
702 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
705 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
707 2004-06-02 Kristian Høgsberg <krh@redhat.com>
709 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
710 machine approach. A state is implemented as a function that
711 handles incoming events as specified for that state.
713 * doc/dbus-specification.xml: Update auth protocol state machine
714 specification to match implementation. Remove some leftover
717 2004-06-02 Kristian Høgsberg <krh@redhat.com>
719 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
720 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
723 * Doxyfile.in: remove deprecated options.
725 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
726 glib/test-thread.h, glib/test-thread-client.c,
727 glib/test-thread-server.c, glib/test-profile.c,
728 glib/test-dbus-glib.c: remove these unused files.
730 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
732 * dbus/dbus-object-tree.c
733 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
734 non-fallback handlers (bug #684).
735 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
736 (find_subtree_recurse): report wether the returned subtree is an
737 exact match or a "fallback" match higher up in the tree.
738 (object_tree_test_iteration): update test case.
740 2004-06-01 Seth Nickell <seth@gnome.org>
742 * python/dbus_bindings.pyx.in:
743 * python/tests/test-client.py:
745 Round off basic type support. Add dicts (yay!), and
746 remaining array types.
748 Make MessageIter more general so it works for dicts too.
750 Mark all loop variables as C integers.
752 2004-05-31 Havoc Pennington <hp@redhat.com>
754 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
757 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
759 * glib/dbus-glib-tool.c (main): set up to have a --self-test
760 option that runs the tests, and start filling in some code
761 including for starters just dumping the interfaces to stdout
763 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
765 * test/data/valid-introspection-files/lots-of-types.xml: test of
766 an example introspection file
768 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
771 2004-05-31 Seth Nickell <seth@gnome.org>
773 * python/dbus_bindings.pyx.in:
774 * python/tests/test-client.py:
779 Fix string array memory trashing bug... oops...
781 2004-05-30 Seth Nickell <seth@gnome.org>
785 Add a nicer-but-less-flexible alternate API for handling
786 calls to virtual objects in dbus.ObjectTree.
788 Screw up the argument order to the dbus.Object constructor
789 for consistency with dbus.ObjectTree (and to make dbus_methods
790 optional for future extension)
792 * python/examples/Makefile.am:
793 * python/examples/gconf-proxy-service.py:
794 * python/examples/gconf-proxy-service2.py:
796 Alternate implementation of gconf-proxy-service using the
797 nicer dbus.ObjectTree API.
799 * python/examples/example-service.py:
800 * python/tests/test-server.py
802 Reverse the argument order to deal with dbus.Object constructor
805 2004-05-30 Seth Nickell <seth@gnome.org>
807 * python/examples/example-client.py:
808 * python/examples/example-service.py:
810 Take it back. Lists seem to work but they're broken
811 in the test suite. Make the base examples use
814 2004-05-30 Seth Nickell <seth@gnome.org>
816 * python/dbus_bindings.pyx.in:
817 * python/tests/test-client.py:
819 Add some more tests and fix errors that crop up.
820 Unfortunately, currently it seems like marshalling
821 and unmarshalling of lists is completely broken :-(
823 2004-05-30 Seth Nickell <seth@gnome.org>
825 * python/dbus_bindings.pyx.in:
827 Add support for ObjectPath type.
831 Refactor message handling code to a common function.
833 * python/tests/test-client.py:
834 * python/tests/test-server.py:
836 Add tests that check to make sure values of all types
837 can be echoed from a service w/o mangling.
839 2004-05-29 Seth Nickell <seth@gnome.org>
843 Add ObjectTree class which allows implementation
844 of trees of "virtual" objects. Basically the python
845 wrapper for "register_fallback".
847 * python/examples/Makefile.am
848 * python/examples/gconf-proxy-client.py:
849 * python/examples/gconf-proxy-service.py:
851 Implement a simple GConf proxy service that supports
852 get/set on string and int GConf keys using the ObjectTree.
854 2004-05-29 Seth Nickell <seth@gnome.org>
857 * python/examples/example-client.py:
858 * python/examples/example-service.py:
859 * python/examples/list-system-services.py:
861 Add SessionBus, SystemBus and ActivationBus classes
862 so you don't need to know the special little BUS_TYPE
865 2004-05-29 Havoc Pennington <hp@redhat.com>
867 * bus/config-parser.c (process_test_valid_subdir): temporarily
868 stop testing config parser OOM handling, since expat has issues
869 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
871 * bus/dbus-daemon-1.1.in: change requested_reply to
872 send_requested_reply/receive_requested_reply so we can send the
873 replies, not just receive them.
875 * bus/config-parser.c: parse the new
876 send_requested_reply/receive_requested_reply
878 * bus/policy.c (bus_client_policy_check_can_send): add
879 requested_reply argument and use it
881 * bus/bus.c (bus_context_check_security_policy): pass through
882 requested_reply status to message send check
884 * bus/system.conf.in: adapt to requested_reply change
886 2004-05-28 Havoc Pennington <hp@redhat.com>
888 * test/glib/test-service-glib.c (main): remove unused variable
890 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
892 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
893 from the enum, no longer in use.
895 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
898 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
899 whether error_name passed in is a valid error name.
901 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
903 * dbus/dbus-message.c (dbus_message_get_args): Added support for
904 OBJECT_PATH and OBJECT_PATH_ARRAY
906 2004-05-28 Seth Nickell <seth@gnome.org>
908 * python/examples/Makefile.am:
910 Forget to add Makefile.am. Do not pass go.
912 2004-05-28 Michael Meeks <michael@ximian.com>
914 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
917 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
919 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
920 (_dbus_message_iter_get_basic_type_array): impl.
921 drastically simplify ~all relevant _get methods to use these.
922 (_dbus_message_iter_append_basic_array),
923 (dbus_message_iter_append_basic): impl
924 drastically simplify ~all relevant _append methods to use these.
926 * dbus/dbus-message-builder.c (parse_basic_type)
927 (parse_basic_array, lookup_basic_type): impl.
928 (_dbus_message_data_load): prune scads of duplicate /
931 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
932 (_dbus_demarshal_basic_type): implement,
933 (demarshal_and_validate_len/arg): beef up debug.
934 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
936 2004-05-27 Seth Nickell <seth@gnome.org>
939 * python/Makefile.am:
941 Include the example python apps in the tarball.
943 * python/examples/list-system-services.py
945 Add a python new example that fetches the list of services
948 2004-05-27 Seth Nickell <seth@gnome.org>
951 * python/dbus_bindings.pyx.in:
953 Fix failure to notify that a signal was not handled,
954 resulted in hung functions.
956 2004-05-25 Colin Walters <walters@redhat.com>
958 * tools/dbus-monitor.c (main): Monitor all types of messages.
960 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
962 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
963 which unregisters the object path and disposes the handler.
965 2004-05-23 Kristian Høgsberg <krh@redhat.com>
967 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
969 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
970 operands to && so we call dbus_message_iter_next () for the last
973 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
975 * dbus/dbus-object-tree.c
976 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
977 children even if the requested path isn't registered.
978 (object_tree_test_iteration): test object_tree_list_registered.
980 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
983 2004-05-20 Kristian Høgsberg <krh@redhat.com>
985 * doc/TODO: Remove resolved items.
987 * bus/expirelist.h (struct BusExpireList): remove unused n_items
990 * bus/connection.c (bus_connections_expect_reply): Enforce the
991 per-connection limit on pending replies.
993 Patch from Jon Trowbridge <trow@ximian.com>:
995 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
996 up a watch that triggers a config reload when one end of the pipe
998 (signal_handler): Instead of doing the config reload in our SIGHUP
999 handler, just write to the reload pipe and let the associated
1000 watch handle the reload when control returns to the main loop.
1002 * bus/driver.c (bus_driver_handle_reload_config): Added.
1003 Implements a ReloadConfig method for requesting a configuration
1004 file reload via the bus driver.
1006 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1008 * HACKING: Updated release instructions concerning the wiki page.
1010 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1012 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1013 filter against auth->allowed_mechs; we only add allowed mechs in
1014 record_mechanisms().
1016 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1017 ALLOWED_MECHS to auth-script format so we can set the list of
1020 * data/auth/client-out-of-mechanisms.auth-script: New test to
1021 check client disconnects when it is out of mechanisms to try.
1023 * dbus/dbus-auth.c (process_command): Remove check for lines
1024 longer that 1 MB; we only buffer up maximum 16 kB.
1026 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1027 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1028 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1029 assume there might be unused bytes.
1031 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1032 client-out-of-mechs, it is handled in process_reject(). Move check
1033 for max failures to send_rejected(), as it's a server-only thing.
1035 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1036 send_auth(), send_data(), send_rejected(), send_error(),
1037 send_ok(), send_begin() and send_cancel().
1039 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1041 Remove base64 encoding, replace with hex encoding. Original patch
1042 from trow@ximian.com, added error handling.
1044 * dbus/dbus-string.c (_dbus_string_base64_encode)
1045 (_dbus_string_base64_decode): Remove.
1046 (_dbus_string_hex_decode): Add end_return argument so we can
1047 distinguish between OOM and invalid hex encoding.
1048 (_dbus_string_test): Remove base64 tests and add test case for
1051 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1052 Replace base64 with hex.
1054 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1055 for invalid hex encoded data in auth protocol.
1057 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1059 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1062 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1064 * mono/dbus-sharp.dll.config.in: Added for GAC
1065 * mono/dbus-sharp.snk: Added for GAC
1066 * mono/Assembly.cs.in: Added for GAC
1067 * mono/Makefile.am: Changes for GAC installation
1068 * configure.in: Added refs for dbus-sharp.dll.config.in and
1069 Assembly.cs.in. More fixes for mono testing
1070 * mono/example/Makefile.am: Changed var to CSC
1071 * Makefile.am: Changed flag name to DBUS_USE_CSC
1073 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1075 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1076 * mono/doc/*: Added documentation framework
1077 * configure.in: Added monodoc check
1078 * README: Added description of mono configure flags
1080 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1082 * doc/dbus-specification.xml: Added a "Required" column to the
1083 header fields table and changed the "zero or more" verbage in
1084 the above paragraph to read "The header must contain the required
1085 named header fields and zero or more of the optional named header
1087 * test/data/invalid-messages/*.message: Added the required PATH
1088 named header field to the tests so that they don't fail on
1089 'Missing path field'
1091 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1093 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1094 the stack by implicitly defining variable and parameter types and
1095 removing the hack of defining C pointers as python objects and later
1098 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1100 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1102 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1104 * mono/DBusType/Dict.cs: Handle empty dicts
1105 * mono/DBusType/Array.cs: Handle empty arrays
1106 * mono/Arguments.cs: Handle empty arguments
1108 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1110 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1113 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1115 * test/data/valid-messages/standard-*.message: Update message
1116 test scripts to new header field names.
1118 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1120 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1121 overflow to times_we_did_each_thing array which would chop off the
1122 first character of the failure_dir string. Increased the size of
1123 the array to 7 to reflect the number of random mutation functions
1126 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1128 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1129 unix_server->watch here, it is unreffed in disconnect.
1130 (_dbus_server_new_for_tcp_socket): convert NULL host to
1131 "localhost" here so we don't append NULL to address.
1133 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1134 various addresses, including tcp with no explicit host.
1136 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1138 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1139 fix incorrect setting of .name_offset in the HeaderField (it was
1140 off by two bytes, positioned right after the name and typecode)
1142 * bus/bus.c (bus_context_new, bus_context_unref): test before
1143 calling dbus_server_free_data_slot and _dbus_user_database_unref
1144 in case of an error.
1146 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1149 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1151 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1152 _dbus_poll() instead of select().
1154 2004-04-15 Jon Trowbridge <trow@ximian.com>
1156 * bus/main.c (signal_handler): Reload the configuration files
1158 (main): Set up our SIGHUP handler.
1160 * bus/bus.c (struct BusContext): Store the config file, user and
1161 fork flag in the BusContext.
1162 (process_config_first_time_only): Added. Contains the code
1163 (previously in bus_context_new) for setting up the BusContext from
1164 the BusConfigParser that should only be run the first time the
1165 config files are read.
1166 (process_config_every_time): Added. Contains the code (previously
1167 in bus_context_new) for setting up the BusContext from the
1168 BusConfigParser that should be run every time the config files are
1170 (load_config): Added. Builds a BusConfigParser from the config
1171 files and passes the resulting structure off to
1172 process_config_first_time_only (assuming this is the first time)
1173 and process_config_every_time.
1174 (bus_context_new): All of the config-related code has been moved
1175 to process_config_first_time_only and process_config_every_time.
1176 Now this function just does the non-config-related initializations
1177 and calls load_config.
1178 (bus_context_reload_config): Added.
1180 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1182 * bus/driver.c (bus_driver_handle_get_service_owner):
1183 implement a GetServiceOwner method.
1184 * doc/dbus-specification.xml: document it.
1185 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1187 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1188 implement, using the bus GetServiceOwner method.
1190 * test/glib/test-dbus-glib.c:
1191 use dbus_gproxy_new_for_service_owner so that we can receive the
1194 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1196 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1197 dbus/dbus-message.c, dbus/dbus-protocol.h
1198 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1200 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1201 dbus/dbus-message.c, dbus/dbus-protocol.h
1202 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1204 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1205 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1206 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1208 * doc/dbus-specification.xml (Header Fields Table):
1209 s/SERVICE/DESTINATION
1210 s/SENDER_SERVICE/SENDER
1213 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1215 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1218 2004-04-13 Michael Meeks <michael@ximian.com>
1220 * glib/dbus-gobject.c (handle_introspect): split out
1221 (introspect_properties): this.
1222 (handle_introspect): implement this.
1224 * test/glib/Makefile.am: use the absolute path so the bus
1225 daemon's chdir ("/") doesn't kill us dead.
1227 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1229 2004-04-12 Jon Trowbridge <trow@ximian.com>
1231 * bus/config-parser.c (struct BusConfigParser): Added
1232 included_files field.
1233 (seen_include): Added. Checks whether or not a file has already
1234 been included by any parent BusConfigParser.
1235 (bus_config_parser_new): Copy the parent's included_files.
1236 (include_file): Track which files have been included, and fail on
1237 circular inclusions.
1238 (process_test_valid_subdir): Changed printf to report if we are
1239 testing valid or invalid conf files.
1240 (all_are_equiv): Changed printf to be a bit clearer about
1241 what we are actually doing.
1242 (bus_config_parser_test): Test invalid configuration files.
1244 2004-04-09 Jon Trowbridge <trow@ximian.com>
1246 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1247 argument. If non-null, the newly-constructed BusConfigParser will
1248 be initialized with the parent's BusLimits instead of the default
1250 (include_file): When including a config file, pass in
1251 the current parser as the parent and then copy the BusLimits
1252 from the included BusConfigParser pack to the current parser.
1253 (process_test_valid_subdir): Renamed from process_test_subdir.
1254 (process_test_equiv_subdir): Added. Walks through a directory,
1255 descending into each subdirectory and loading the config files
1256 it finds there. If any subdirectory contains two config files
1257 that don't produce identical BusConfigParser structs, fail.
1258 For now, the BusConfigParser's BusPolicies are not compared.
1259 (bus_config_parser_test): Call both process_test_valid_subdir and
1260 process_test_equiv_subdir.
1262 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1263 argument and pass it along to the call to bus_config_parser_new.
1264 Also made a few small changes to allow this code to compile.
1266 * bus/config-loader-expat.c (bus_config_load): Take a parent
1267 argument and pass it along to the call to bus_config_parser_new.
1269 * bus/bus.c (bus_context_new): Load the config file
1270 with a NULL parent argument.
1272 2004-03-29 Michael Meeks <michael@ximian.com>
1274 * glib/dbus-gobject.c (introspect_properties): split
1275 out, fix mangled 'while' flow control.
1276 (introspect_signals): implement.
1277 (handle_introspect): update.
1279 2004-03-29 Michael Meeks <michael@ximian.com>
1281 * glib/dbus-gobject.c (set_object_property): split out /
1282 re-work, use the property type, and not the message type(!)
1283 (get_object_property): ditto.
1285 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1286 (dbus_gvalue_marshal): make this code re-usable, needed
1287 for signals too, also on both proxy and server side.
1288 Re-write for more efficiency / readability.
1290 2004-03-29 Michael Meeks <michael@ximian.com>
1292 * dbus/dbus-message.c
1293 (dbus_message_new_error_printf): impl.
1295 * dbus/dbus-connection.c
1296 (dbus_connection_unregister_object_path): fix warning.
1298 * configure.in: fix no-mono-installed situation.
1300 2004-03-27 Havoc Pennington <hp@redhat.com>
1302 Patch from Timo Teräs:
1304 * tools/dbus-send.c (main): if --print-reply, assume type is
1305 method call; support boolean type args
1307 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1308 bunch of memleak and logic bugs
1310 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1312 * mono/Arguments.cs:
1313 * mono/Introspector.cs:
1315 * mono/InterfaceProxy.cs:
1317 * mono/ProxyBuilder.cs:
1319 Added InterfaceProxy class to avoid building proxies for every
1323 * dbus-message.c (dbus_message_append_args_valist)
1324 (dbus_message_iter_get_object_path)
1325 (dbus_message_iter_get_object_path_array)
1326 (dbus_message_iter_append_object_path)
1327 (dbus_message_iter_append_object_path_array):
1328 Added object_path iter functions to handle OBJECT_PATH arguments
1330 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1332 First checkin of mono bindings.
1335 Build stuff for the bindings
1336 * dbus-sharp.pc.in: Added for pkgconfig
1338 2004-03-21 Havoc Pennington <hp@redhat.com>
1340 * test/test-service.c (main): remove debug spew
1342 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1344 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1347 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1348 (dbus_message_iter_init_array_iterator)
1349 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1350 indicate whether the iterator is empty
1352 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1355 2004-03-19 Havoc Pennington <hp@redhat.com>
1357 * NEWS: 0.21 updates
1359 * configure.in: 0.21
1361 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1363 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1364 you don't need pyrex to make dist
1366 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1369 2004-03-18 Richard Hult <richard@imendio.com>
1371 * dbus/dbus-message.c (dbus_message_get_auto_activation)
1372 (dbus_message_set_auto_activation): Add doxygen docs.
1374 2004-03-16 Richard Hult <richard@imendio.com>
1376 * bus/activation.c: (bus_activation_service_created),
1377 (bus_activation_send_pending_auto_activation_messages),
1378 (bus_activation_activate_service):
1380 * bus/dispatch.c: (bus_dispatch),
1381 (check_nonexistent_service_auto_activation),
1382 (check_service_auto_activated),
1383 (check_segfault_service_auto_activation),
1384 (check_existent_service_auto_activation), (bus_dispatch_test):
1385 * bus/driver.c: (bus_driver_handle_activate_service):
1386 * bus/services.c: (bus_registry_acquire_service):
1387 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1388 (dbus_message_get_auto_activation):
1389 * dbus/dbus-message.h:
1390 * dbus/dbus-protocol.h: Implement auto-activation.
1392 * doc/dbus-specification.xml: Add auto-activation to the spec.
1394 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
1396 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1397 fix a bug with CUSTOM types.
1399 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1400 a unit test for this bug (used to fail).
1402 2004-03-12 Mikael Hallendal <micke@imendio.com>
1405 (babysitter_watch_callback): notify all pending activations waiting for
1406 the same exec that the activation failed.
1407 (bus_activation_activate_service): shortcut the activation if we
1408 already waiting for the same executable to start up.
1410 2004-03-12 Mikael Hallendal <micke@imendio.com>
1413 - Added service file reloading.
1414 Each service files directory is kept in an hash table in
1415 BusActivation and each BusActivationEntry knows what .service-file it
1416 was read from. So when you try to activate a service the bus will
1417 check if it's been updated, removed or if new .service-files has
1419 - Test code at the bottom for the service file reloading.
1420 * bus/test-main.c: (main):
1422 - added service reloading test.
1423 * dbus/dbus-sysdeps.c:
1424 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1426 2004-03-08 Michael Meeks <michael@ximian.com>
1428 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
1429 bail immediately if disconnected, to avoid busy loop.
1431 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1432 cleanup cut/paste/inefficiency.
1434 2004-03-01 David Zeuthen <david@fubar.dk>
1436 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1437 bug where args were used twice. This bug resulted in a segfault
1438 on a Debian/PPC system when starting the messagebus daemon. Include
1439 dbus-sysdeps.h for DBUS_VA_COPY
1441 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1443 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1444 appropriate va_copy implementation. From GLib
1446 2004-02-24 Joe Shaw <joe@ximian.com>
1448 * bus/services.c (bus_registry_acquire_service): We need to pass
1449 in the service name to dbus_set_error() to prevent a crash.
1451 2003-12-26 Anders Carlsson <andersca@gnome.org>
1453 * AUTHORS: Reveal my True identity.
1455 2003-12-17 Mikael Hallendal <micke@imendio.com>
1457 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1458 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1460 2003-12-13 Mikael Hallendal <micke@imendio.com>
1462 * doc/TODO: Added not about better error check of configuration files.
1464 2003-12-02 Richard Hult <richard@imendio.com>
1466 * Update AFL version to 2.0 throughout the source files to reflect
1467 the update that was done a while ago.
1469 2003-12-02 Richard Hult <richard@imendio.com>
1471 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1472 wrote_dict_key to FALSE on the iter that the dict is appended to,
1473 just like when appending other types. Fixes a bug where a dict
1474 couldn't be put inside a dict.
1475 (dbus_message_iter_append_dict_key): Fix typo in warning message.
1476 (message_iter_test, _dbus_message_test): Add test case for dict
1479 2003-12-01 David Zeuthen <david@fubar.dk>
1481 * python/dbus.py: Add the actual message when calling the reciever
1482 of a signal such that parameters can be inspected. Add the method
1483 remove_signal_receiver
1485 2003-11-26 Mikael Hallendal <micke@imendio.com>
1489 * glib/*.[ch]: Made ref functions return the pointer
1491 2003-11-25 Zack Rusin <zack@kde.org>
1493 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1495 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
1498 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
1499 the Integrator and to better fit with the server,
1501 2003-11-24 Zack Rusin <zack@kde.org>
1503 * qt/connection.h, qt/connection.cpp: removing initDbus method since
1504 the integrator handles it now
1506 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1507 since QTimer wasn't really meant to be used the way DBusTimeout is
1509 2003-11-24 Zack Rusin <zack@kde.org>
1511 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
1512 Integrator class which integrates D-BUS with the Qt event loop,
1514 * qt/connection.h, qt/connection.cpp: Move all the code which
1515 was dealing with D-BUS integration to the Integrator class,
1516 and start using Integrator,
1518 2003-11-23 Zack Rusin <zack@kde.org>
1520 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
1523 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1524 switching namespaces to DBusQt, reworking the class,
1526 * Makefile.cvs: switching dependencies so that it matches KDE
1529 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
1532 2003-11-19 Havoc Pennington <hp@redhat.com>
1536 * configure.in: bump version to 0.20
1538 * configure.in (have_qt): add yet another place to look for qt
1539 (someone hand trolltech a .pc file...)
1541 2003-11-01 Havoc Pennington <hp@redhat.com>
1543 * doc/dbus-specification.xml: add state machine docs on the auth
1544 protocol; just a first draft, I'm sure it's wrong.
1546 2003-10-28 David Zeuthen <david@fubar.dk>
1548 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1549 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1551 2003-10-28 Havoc Pennington <hp@redhat.com>
1553 * dbus/dbus-message.c (get_next_field): delete unused function
1555 2003-10-28 Havoc Pennington <hp@redhat.com>
1557 * bus/expirelist.c (do_expiration_with_current_time): detect
1558 failure of the expire_func due to OOM
1560 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1562 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1563 NoReply error that's now created by the bus when the service exits
1565 2003-10-28 Havoc Pennington <hp@redhat.com>
1567 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1568 tests for set_path, set_interface, set_member, etc.
1570 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1572 * dbus/dbus-message.c (set_string_field): always just delete and
1573 re-append the field; accept NULL for deletion
1574 (re_align_fields_recurse): reimplement
1576 2003-10-26 Havoc Pennington <hp@redhat.com>
1578 * dbus/dbus-connection.c: fix docs to properly describe the
1579 disconnected message
1580 (_dbus_connection_notify_disconnected): remove this function;
1581 we can't synchronously add the disconnected message, we have to
1582 do it after we've queued any remaining real messages
1583 (_dbus_connection_get_dispatch_status_unlocked): queue the
1584 disconnect message only if the transport has finished queueing all
1585 its real messages and is disconnected.
1586 (dbus_connection_disconnect): update the dispatch status here
1588 2003-10-22 Havoc Pennington <hp@redhat.com>
1590 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1592 * bus/connection.c (bus_transaction_send_from_driver): set the
1593 destination to the connection's base service
1595 2003-10-20 Havoc Pennington <hp@redhat.com>
1597 hmm, make check is currently not passing.
1599 * doc/dbus-specification.xml: add requirement that custom type
1600 names follow the same rules as interface names.
1602 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1603 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1606 * doc/dbus-specification.xml: update type codes to match
1607 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1608 CUSTOM. Add type OBJECT_PATH to the spec.
1610 2003-10-17 Havoc Pennington <hp@redhat.com>
1612 * bus/driver.c (create_unique_client_name): use "." as separator
1613 in base service names instead of '-'
1615 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1616 byte at the end of the string
1618 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1619 optimization macros since string validation seems to be a slow
1622 * doc/dbus-specification.xml: restrict valid
1623 service/interface/member/error names. Add test suite code for the
1626 * dbus/dbus-string.c: limit service/interface/member/error names
1629 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
1630 format arg to verbose spew
1632 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
1633 memory, return instead of g_error
1635 * test/test-service.c (path_message_func): support emitting a
1638 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
1639 activation bus type if DBUS_BUS_ACTIVATION was set; default to
1640 assuming the activation bus was the session bus so that services
1641 started manually will still register.
1642 (init_connections_unlocked): fix so that in OOM situation we get
1643 the same semantics when retrying the function
1645 * test/test-service.c (main): change to use path registration, to
1646 test those codepaths; register with DBUS_BUS_ACTIVATION rather
1647 than DBUS_BUS_SESSION
1649 2003-10-16 Havoc Pennington <hp@redhat.com>
1651 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
1653 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
1654 coverage of the tests
1655 (coverage-report.txt): don't move the .da and .bbg files around
1657 2003-10-16 Havoc Pennington <hp@redhat.com>
1659 * bus/bus.c (struct BusContext): remove struct field I didn't mean
1662 2003-10-16 Havoc Pennington <hp@redhat.com>
1664 * bus/connection.c (bus_pending_reply_expired): either cancel or
1666 (bus_connections_check_reply): use unlink, not remove_link, as we
1667 don't want to free the link; fixes double free mess
1669 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
1670 where no reply was received
1672 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
1675 * bus/signals.c (match_rule_matches): add special cases for the
1676 bus driver, so you can match on sender/destination for it.
1678 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
1679 DBUS_PRINT_BACKTRACE is set
1681 * dbus/dbus-internals.c: add pid to assertion failure messages
1683 * dbus/dbus-connection.c: add message type code to the debug spew
1685 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
1686 sender=foo not service=foo
1688 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
1689 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
1690 DBUS_ACTIVATION_ADDRESS instead
1692 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
1693 DBUS_SYSTEM_BUS_ADDRESS if appropriate
1695 * bus/bus.c (bus_context_new): handle OOM copying bus type into
1698 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
1699 (dbus_message_iter_get_object_path_array): new function (half
1700 finished, disabled for the moment)
1702 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
1703 DBUS_MESSAGE_TYPE_ERROR
1705 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
1706 avoid redirecting stderr to /dev/null
1707 (babysit): close stdin if not doing the "exit_with_session" thing
1709 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
1710 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
1711 stdout/stdin, so things don't get confused
1713 * bus/system.conf.in: fix to allow replies, I modified .conf
1714 instead of .conf.in again.
1716 2003-10-14 David Zeuthen <david@fubar.dk>
1718 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
1719 argtype to arg_type when raising unknown arg type exception.
1720 Changed type list to reflect the changes in dbus-protocol.h so
1721 the bindings actually work.
1723 2003-10-14 Havoc Pennington <hp@redhat.com>
1725 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
1726 to have a bug keeping it from outputting the .da files sometimes
1727 (string_get_string): don't append garbage nul bytes to the string.
1729 2003-10-15 Seth Nickell <seth@gnome.org>
1731 * python/Makefile.am:
1733 Include dbus_h_wrapper.h in the dist tarball.
1735 2003-10-14 Havoc Pennington <hp@redhat.com>
1737 * bus/bus.c (bus_context_check_security_policy): revamp this to
1738 work more sanely with new policy-based requested reply setup
1740 * bus/connection.c (bus_transaction_send_from_driver): set bus
1741 driver messages as no reply
1743 * bus/policy.c (bus_client_policy_check_can_receive): handle a
1744 requested_reply attribute on allow/deny rules
1746 * bus/system.conf: add <allow requested_reply="true"/>
1748 * bus/driver.c (bus_driver_handle_message): fix check for replies
1749 sent to the bus driver, which was backward. How did this ever work
1750 at all though? I think I'm missing something.
1752 * dbus/dbus-message.c (decode_header_data): require error and
1753 method return messages to have a reply serial field to be valid
1754 (_dbus_message_loader_queue_messages): break up this function;
1755 validate that reply serial and plain serial are nonzero;
1756 clean up the OOM/error handling.
1757 (get_uint_field): don't return -1 from this
1758 (dbus_message_create_header): fix signed/unsigned bug
1760 * bus/connection.c (bus_connections_expect_reply): save serial of
1761 the incoming message, not reply serial
1763 2003-10-14 Havoc Pennington <hp@redhat.com>
1765 * bus/connection.c: implement pending reply tracking using
1768 * bus/bus.c (bus_context_check_security_policy): verify that a
1769 reply is pending in order to allow a reply to be sent. Deny
1770 messages of unknown type.
1772 * bus/dbus-daemon-1.1.in: update to mention new resource limits
1774 * bus/bus.c (bus_context_get_max_replies_per_connection): new
1775 (bus_context_get_reply_timeout): new
1777 2003-10-13 Seth Nickell <seth@gnome.org>
1779 * python/Makefile.am:
1781 Pass "make distcheck": remove a couple files from DIST_FILES
1782 that weren't included in the final version.
1784 2003-10-12 Havoc Pennington <hp@pobox.com>
1786 Added test code that 1) starts an actual bus daemon and 2) uses
1787 DBusGProxy; fixed bugs that were revealed by the test. Lots
1788 more testing possible, but this is the basic framework.
1790 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
1791 empty proxy lists from the proxy list hash
1793 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
1794 couple of return_if_fail checks
1796 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
1797 to allocate, so everything is cleared to NULL as it should be.
1799 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
1800 source as data to dbus_connection_set_timeout_functions() as the
1801 timeout functions expected
1803 * test/glib/run-test.sh: add a little script to start up a message
1804 bus and run tests using it
1806 * tools/dbus-launch.1: updates
1808 * tools/dbus-launch.c (main): add --config-file option
1810 * tools/dbus-launch.c (main): remove confusing else if (runprog)
1811 that could never be reached.
1813 * dbus/dbus-message.c (dbus_message_new_method_return)
1814 (dbus_message_new_error, dbus_message_new_signal): set the
1815 no-reply-expected flag on all these. Redundant, but may
1816 as well be consistent.
1818 2003-10-11 Havoc Pennington <hp@pobox.com>
1820 * test/decode-gcov.c (function_solve_graph): make broken block
1821 graph a nonfatal error since it seems to be broken. Need to debug
1824 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
1825 can't just check type > INVALID < LAST anymore
1827 * dbus/dbus-message.c (dbus_message_get_signature): new function
1828 (dbus_message_has_signature): new function
1829 (struct DBusMessage): add signature field (right now it isn't sent
1830 over the wire, just generated on the fly)
1831 (dbus_message_copy): copy the signature, and init strings to
1832 proper length to avoid some reallocs
1833 (dbus_message_iter_init_array_iterator): return void, since it
1835 (dbus_message_iter_init_dict_iterator): return void since it can't fail
1836 (_dbus_message_loader_queue_messages): add silly temporary hack to
1837 fill in message->signature on load
1839 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
1840 characters, so they are relatively human-readable.
1842 2003-10-11 Havoc Pennington <hp@pobox.com>
1844 * dbus/dbus-message.c (_dbus_message_test): add more test
1845 coverage, but #if 0 for now since they uncover a bug
1846 not fixed yet; I think in re_align_field_recurse()
1847 (re_align_field_recurse): add FIXME about broken assertion
1849 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
1851 * bus/connection.c: share a couple code bits with expirelist.c
1853 * bus/expirelist.h, bus/expirelist.c: implement a generic
1854 expire-items-after-N-seconds facility, was going to share between
1855 expiring connections and replies, decided not to use for expiring
1856 connections for now.
1858 * COPYING: include AFL 2.0 (still need to change all the file headers)
1860 2003-10-09 Havoc Pennington <hp@redhat.com>
1862 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
1863 gcc 3.3. Not that we do anything about it yet.
1865 * bus/signals.c (bus_match_rule_parse): impose max length on the
1868 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
1870 2003-10-09 Havoc Pennington <hp@redhat.com>
1872 Make matching rules theoretically work (add parser).
1874 * bus/bus.c (bus_context_check_security_policy): fix up to handle
1875 the case where destination is explicitly specified as bus driver
1876 and someone else is eavesdropping.
1878 * bus/policy.c (bus_client_policy_check_can_receive): fix up
1879 definition of eavesdropping and assertion
1881 * tools/dbus-send.c (main): use dbus_message_type_from_string
1883 * bus/signals.c (bus_match_rule_parse): implement
1885 * dbus/dbus-message.c (dbus_message_type_from_string): new
1887 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
1889 2003-10-02 Havoc Pennington <hp@pobox.com>
1891 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
1892 dbus_gproxy_oneway_call
1894 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
1895 (dbus_server_setup_with_g_main): fix to allow calling them more
1896 than once on the same args
1897 (dbus_bus_get_with_g_main): new function
1899 2003-10-02 Havoc Pennington <hp@redhat.com>
1901 * doc/dbus-tutorial.xml: write some stuff
1903 2003-09-29 Havoc Pennington <hp@pobox.com>
1905 * configure.in: split checks for Doxygen from XML docs, check for
1908 * doc/Makefile.am: XML-ify all the docs, and add a blank
1911 2003-09-29 Havoc Pennington <hp@pobox.com>
1913 * Merge dbus-object-names branch. To see the entire patch
1914 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
1915 it's huuuuge though.
1916 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
1918 2003-09-28 Havoc Pennington <hp@pobox.com>
1920 * HACKING: update to reflect new server
1922 2003-09-26 Seth Nickell <seth@gnome.org>
1925 * python/examples/example-signals.py:
1927 Start implementing some notions of signals. The API
1928 is really terrible, but they sort of work (with the
1929 exception of being able to filter by service, and to
1930 transmit signals *as* a particular service). Need to
1931 figure out how to make messages come from the service
1934 * python/dbus_bindings.pyx.in:
1936 Removed duplicate message_handler callbacks.
1938 2003-09-25 Havoc Pennington <hp@redhat.com>
1940 * bus/session.conf.in: fix my mess
1942 2003-09-25 Havoc Pennington <hp@pobox.com>
1944 * bus/session.conf.in: fix security policy, reported by Seth Nickell
1946 2003-09-25 Seth Nickell <seth@gnome.org>
1948 * python/examples/example-service.py:
1950 Johan notices complete wrong code in example-service, but
1951 completely wrong in a way that works exactly the same (!).
1952 Johan is confused, how could this possibly work? Example
1953 code fails to serve purpose of making things clear.
1956 2003-09-25 Mark McLoughlin <mark@skynet.ie>
1958 * doc/dbus-specification.sgml: don't require header fields
1959 to be 4-byte aligned and specify that fields should be
1960 distinguished from padding by the fact that zero is not
1963 * doc/TODO: remove re-alignment item and add item to doc
1964 the OBJECT_PATH type.
1966 * dbus/dbus-message.c:
1967 (HeaderField): rename the original member to value_offset
1968 and introduce a name_offset member to keep track of where
1969 the field actually begins.
1970 (adjust_field_offsets): remove.
1971 (append_int_field), (append_uint_field),
1972 (append_string_field): don't align the start of the header
1973 field to a 4-byte boundary.
1974 (get_next_field): impl finding the next marhsalled field
1975 after a given field.
1976 (re_align_field_recurse): impl re-aligning a number of
1977 already marshalled fields.
1978 (delete_field): impl deleting a field of any type and
1979 re-aligning any following fields.
1980 (delete_int_or_uint_field), (delete_string_field): remove.
1981 (set_int_field), (set_uint_field): no need to re-check
1982 that we have the correct type for the field.
1983 (set_string_field): ditto and impl re-aligning any
1985 (decode_header_data): update to take into account that
1986 the fields aren't 4-byte aligned any more and the new
1987 way to distinguish padding from header fields. Also,
1988 don't exit when there is too much header padding.
1989 (process_test_subdir): print the directory.
1990 (_dbus_message_test): add test to make sure a following
1991 field is re-aligned correctly after field deletion.
1993 * dbus/dbus-string.[ch]:
1994 (_dbus_string_insert_bytes): rename from insert_byte and
1995 allow the insert of multiple bytes.
1996 (_dbus_string_test): test inserting multiple bytes.
1998 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
1999 warning note to docs about having to re-align any
2000 marshalled values following the string.
2002 * dbus/dbus-message-builder.c:
2003 (append_string_field), (_dbus_message_data_load):
2004 don't align the header field.
2006 * dbus/dbus-auth.c: (process_test_subdir): print the
2009 * test/break-loader.c: (randomly_add_one_byte): upd. for
2012 * test/data/invalid-messages/bad-header-field-alignment.message:
2015 * test/data/valid-messages/unknown-header-field.message: shove
2016 a dict in the unknown field.
2018 2003-09-25 Seth Nickell <seth@gnome.org>
2021 * python/dbus_bindings.pyx.in:
2023 Handle return values.
2025 * python/examples/example-client.py:
2026 * python/examples/example-service.py:
2028 Pass back return values from the service to the client.
2030 2003-09-24 Seth Nickell <seth@gnome.org>
2034 Connect Object methods (when you are sharing an object) up... pass
2035 in a list of methods to be shared. Sharing all the methods just
2036 worked out too weird. You can now create nice Services over the
2039 * python/dbus_bindings.pyx.in:
2041 Keep references to user_data tuples passed into C functions so
2042 Python doesn't garbage collect on us.
2044 Implement MethodReturn and Error subclasses of Message for creating
2045 DBusMessage's of those types.
2047 * python/examples/example-client.py:
2048 * python/examples/example-service.py:
2050 Simple example code showing both how create DBus services and objects,
2051 and how to use them.
2053 2003-09-23 Havoc Pennington <hp@pobox.com>
2055 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2057 2003-09-23 Havoc Pennington <hp@redhat.com>
2059 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2060 (dbus_gproxy_disconnect_signal): implement
2061 (dbus_gproxy_manager_remove_signal_match): implement
2062 (dbus_gproxy_manager_add_signal_match): implement
2063 (dbus_gproxy_oneway_call): implement
2065 2003-09-23 Havoc Pennington <hp@pobox.com>
2067 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2068 subclass. This means dropping the transparent thread safety of the
2069 proxy; you now need a separate proxy per-thread, or your own
2070 locking on the proxy. Probably right anyway.
2071 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2073 2003-09-22 Havoc Pennington <hp@redhat.com>
2075 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2077 2003-09-21 Seth Nickell <seth@gnome.org>
2079 First checkin of the Python bindings.
2081 * python/.cvsignore:
2082 * python/Makefile.am:
2083 * python/dbus_bindings.pyx.in:
2084 * python/dbus_h_wrapper.h:
2086 Pieces for Pyrex to operate on, building a dbus_bindings.so
2087 python module for low-level access to the DBus APIs.
2091 High-level Python module for accessing DBus objects.
2096 Build stuff for the python bindings.
2100 Extra macro needed for finding the Python C header files.
2102 2003-09-21 Havoc Pennington <hp@pobox.com>
2104 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2105 implementing the proxy manager, didn't get very far.
2107 * dbus/dbus-bus.c (dbus_bus_add_match): new
2108 (dbus_bus_remove_match): new
2110 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2111 path_name argument; adjust the other not-yet-implemented
2112 gproxy constructors to be what I think they should be.
2114 2003-09-21 Havoc Pennington <hp@pobox.com>
2116 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2117 by default for message bus connections.
2119 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2120 exit_on_disconnect flag is set and we process the disconnected
2122 (dbus_connection_set_exit_on_disconnect): new function
2124 2003-09-21 Havoc Pennington <hp@pobox.com>
2126 Get matching rules mostly working in the bus; only actually
2127 parsing the rule text remains. However, the client side of
2128 "signal connections" hasn't been started, this patch is only the
2131 * dbus/dispatch.c: fix for the matching rules changes
2133 * bus/driver.c (bus_driver_handle_remove_match)
2134 (bus_driver_handle_add_match): send an ack reply from these
2137 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2138 arguments, reported by Seth Nickell
2140 * bus/config-parser.c (append_rule_from_element): support
2141 eavesdrop=true|false attribute on policies so match rules
2142 can be prevented from snooping on the system bus.
2144 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2145 and "destination" in attribute names; fix some docs bugs;
2146 add eavesdrop=true|false attribute
2148 * bus/driver.c (bus_driver_handle_add_match)
2149 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2152 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2153 rid of broadcast service concept, signals are just always broadcast
2155 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2156 mostly implement matching rules stuff (currently only exposed as signal
2159 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2161 * doc/dbus-specification.sgml: Change the header field name
2162 to be an enum and update the rest of the spec to reference
2163 the fields using the conventinal name.
2165 * dbus/dbus-protocol.h: update to reflect the spec.
2167 * doc/TODO: add item to remove the 4 byte alignment requirement.
2169 * dbus/dbus-message.c: Remove the code to generalise the
2170 header/body length and serial number header fields as named
2171 header fields so we can reference field names using the
2173 (append_int_field), (append_uint_field), (append_string_field):
2174 Append the field name as a byte rather than four chars.
2175 (delete_int_or_uint_field), (delete_string_field): reflect the
2176 fact that the field name and typecode now occupy 4 bytes instead
2178 (decode_string_field), (decode_header_data): update to reflect
2179 protocol changes and move the field specific encoding from
2180 decode_string_field() back into decode_header_data().
2182 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2183 Add utility to aid debugging.
2185 * dbus/dbus-message-builder.c:
2186 (append_string_field), (_dbus_message_data_load): Update to
2187 reflect protocol changes; Change the FIELD_NAME directive
2188 to HEADER_FIELD and allow it to take the field's conventional
2189 name rather than the actual value.
2191 * test/data/*/*.message: Update to use HEADER_FIELD instead
2192 of FIELD_NAME; Always align the header on an 8 byte boundary
2193 *before* updating the header length.
2195 2003-09-15 Havoc Pennington <hp@pobox.com>
2197 * dbus/dbus-pending-call.c: add the get/set object data
2198 boilerplate as for DBusConnection, etc. Use generic object data
2199 for the notify callback.
2201 * glib/dbus-gparser.c (parse_node): parse child nodes
2203 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2205 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2206 contain functions shared between the convenience lib and the
2209 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2210 -export-symbols-regex to the GLib library
2212 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2213 fix the locking in here, and add a default handler for
2214 Introspect() that just returns sub-nodes.
2216 2003-09-14 Havoc Pennington <hp@pobox.com>
2218 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2219 rather than gfoo consistent
2221 * glib/dbus-gproxy.h: delete for now, move contents to
2222 dbus-glib.h, because the include files don't work right since we
2223 aren't in the dbus/ subdir.
2225 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2226 (dbus_gproxy_end_call): finish
2227 (dbus_gproxy_begin_call): finish
2229 * glib/dbus-gmain.c (dbus_set_g_error): new
2231 * glib/dbus-gobject.c (handle_introspect): include information
2232 about child nodes in the introspection
2234 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2235 function to help in implementation of introspection
2237 * dbus/dbus-object-tree.c
2238 (_dbus_object_tree_list_registered_and_unlock): new function
2240 2003-09-12 Havoc Pennington <hp@pobox.com>
2242 * glib/dbus-gidl.h: add common base class for all the foo_info
2245 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2248 * test/Makefile.am: try test srcdir -ef . in addition to test
2249 srcdir = ., one of them should work (yeah lame)
2251 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2254 * glib/dbus-gparser.h: make description_load routines return
2255 NodeInfo* not Parser*
2257 * Makefile.am (SUBDIRS): build test dir after all library dirs
2259 * configure.in: add GTK+ detection
2261 2003-09-07 Havoc Pennington <hp@pobox.com>
2263 * Make Doxygen contented.
2265 2003-09-07 Havoc Pennington <hp@pobox.com>
2267 * doc/dbus-specification.sgml: more updates
2269 2003-09-06 Havoc Pennington <hp@pobox.com>
2271 * doc/dbus-specification.sgml: partial updates
2273 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2274 zillionth time; hopefully I edited the right file this time.
2276 * bus/config-parser.c (append_rule_from_element): support
2277 send_type, send_path, receive_type, receive_path
2279 * bus/policy.c: add message type and path to the list of things
2280 that can be "firewalled"
2282 2003-09-06 Havoc Pennington <hp@pobox.com>
2284 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2285 (dbus_connection_register_object_path): make this not handle
2286 messages to paths below the given path
2288 2003-09-03 Havoc Pennington <hp@pobox.com>
2290 * test/glib/Makefile.am: add this with random glib-linked test
2293 * glib/Makefile.am: remove the random test programs from here,
2294 leave only the unit tests
2296 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2297 uscore/javacaps conversion, and fix
2298 (get_object_property, set_object_property): change to .NET
2299 convention for mapping props to methods, set_FooBar/get_FooBar,
2300 since one language has such a convention we may as well copy it.
2301 Plus real methods in either getFooBar or get_foo_bar style won't
2302 collide with this convention.
2304 2003-09-01 Havoc Pennington <hp@pobox.com>
2306 * glib/dbus-gparser.c: implement
2308 * glib/dbus-gobject.c: start implementing skeletons support
2310 * configure.in: when disabling checks/assert, also define
2311 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2313 2003-09-01 Havoc Pennington <hp@pobox.com>
2315 * glib/Makefile.am: rearrange a bunch of files and get "make
2316 check" framework set up
2318 2003-08-31 Havoc Pennington <hp@pobox.com>
2320 * fix build with --disable-tests
2322 2003-08-30 Havoc Pennington <hp@pobox.com>
2324 * dbus/dbus-connection.c: purge DBusMessageHandler
2326 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2327 use callbacks everywhere
2329 2003-08-30 Havoc Pennington <hp@pobox.com>
2331 * test/data/valid-config-files/system.d/test.conf: change to
2332 root for the user so warnings don't get printed
2334 * dbus/dbus-message.c: add dbus_message_get_path,
2335 dbus_message_set_path
2337 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2338 dispatching to a path
2340 * dbus/dbus-string.c (_dbus_string_validate_path): add
2342 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2343 (_dbus_marshal_object_path): implement
2345 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2346 to contain the path to the target object
2347 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2348 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2350 2003-08-30 Havoc Pennington <hp@pobox.com>
2352 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2354 2003-08-29 Havoc Pennington <hp@pobox.com>
2356 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2358 (struct DBusObjectSubtree): shrink this
2359 a lot, since we may have a lot of them
2360 (_dbus_object_tree_free_all_unlocked): implement
2361 (_dbus_object_tree_dispatch_and_unlock): implement
2363 2003-08-29 Havoc Pennington <hp@pobox.com>
2365 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2367 2003-08-28 Havoc Pennington <hp@pobox.com>
2371 * dbus/dbus-connection.c: port to no ObjectID, create a
2372 DBusObjectTree, rename ObjectTree to ObjectPath in public API
2374 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
2375 everything except UnregisterFunction and MessageFunction
2377 * dbus/dbus-marshal.c: port away from DBusObjectID,
2378 add DBUS_TYPE_OBJECT_PATH
2380 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
2381 dbus/dbus-objectid.[hc]: remove these, we are moving to
2382 path-based object IDs
2384 2003-08-25 Havoc Pennington <hp@pobox.com>
2386 Just noticed that dbus_message_test is hosed, I wonder when I
2387 broke that. I thought make check was passing earlier...
2389 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
2390 container tree, will replace most of dbus-object-registry
2392 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2395 2003-08-19 Havoc Pennington <hp@pobox.com>
2397 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2398 (dbus_message_is_error): fix this function
2400 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2403 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2404 reflect clarified man page
2405 (bus_client_policy_check_can_send): ditto
2407 * bus/session.conf.in: fixup
2409 * bus/system.conf.in: fixup
2411 2003-08-18 Havoc Pennington <hp@redhat.com>
2413 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2415 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2416 dumb bug created earlier (wrong order of args to
2417 decode_header_data())
2419 * tools/dbus-send.c: port
2421 * tools/dbus-print-message.c (print_message): port
2423 * test/data/*messages: port all messages over
2425 * dbus/dbus-message-builder.c: support including
2428 * bus/driver.c: port over
2430 * bus/dispatch.c: port over to new stuff
2432 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2433 rename disconnect signal to "Disconnected"
2435 2003-08-17 Havoc Pennington <hp@pobox.com>
2437 This doesn't compile yet, but syncing up so I can hack on it from
2438 work. What are branches for if not broken code? ;-)
2440 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2441 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2442 DBUS_HEADER_FIELD_ERROR_NAME
2444 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2445 for the interface+member pairs
2446 (string_hash): change to use g_str_hash algorithm
2447 (find_direct_function, find_string_function): refactor these to
2450 * dbus/dbus-message.c: port all of this over to support
2451 interface/member fields instead of name field
2453 * dbus/dbus-object-registry.c: port over
2455 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2456 from _dbus_string_validate_name
2458 * bus/dbus-daemon-1.1: change file format for the
2459 <deny>/<allow> stuff to match new message naming scheme
2461 * bus/policy.c: port over
2463 * bus/config-parser.c: parse new format
2465 2003-08-16 Havoc Pennington <hp@pobox.com>
2467 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2470 * glib/dbus-gproxy.c: some hacking
2472 2003-08-15 Havoc Pennington <hp@redhat.com>
2474 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2476 * dbus/dbus-connection.c
2477 (dbus_connection_send_with_reply_and_block): factor out internals;
2478 change to convert any error replies to DBusError instead of
2479 returning them as a message
2481 2003-08-15 Havoc Pennington <hp@pobox.com>
2483 * dbus/dbus-connection.c,
2484 dbus/dbus-pending-call.c: Finish the pending call stuff
2486 2003-08-14 Havoc Pennington <hp@redhat.com>
2488 * dbus/dbus-pending-call.c: start on new object that will replace
2489 DBusMessageHandler and ReplyHandlerData for tracking outstanding
2492 * dbus/dbus-gproxy.c: start on proxy object used to communicate
2493 with remote interfaces
2495 * dbus/dbus-gidl.c: do the boring boilerplate in here
2497 2003-08-12 Havoc Pennington <hp@pobox.com>
2499 * bus/dispatch.c (bus_dispatch): make this return proper
2500 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2502 * dbus/dbus-errors.c (dbus_set_error): use
2503 _dbus_string_append_printf_valist
2505 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2506 (_dbus_string_append_printf): new
2508 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2511 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2512 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2513 message is unhandled.
2515 2003-08-11 Havoc Pennington <hp@pobox.com>
2517 * bus/test.c (client_disconnect_handler): change to return
2518 HANDLED (would have been REMOVE_MESSAGE)
2520 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2521 HANDLED/NOT_YET_HANDLED instead of
2522 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
2525 2003-08-10 Havoc Pennington <hp@pobox.com>
2527 * tools/dbus-send.c (main): add --type argument, for now
2528 supporting only method_call and signal types.
2530 * tools/dbus-print-message.c: print message type
2532 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2533 init connection->objects
2535 * doc/dbus-specification.sgml: fix sgml
2537 * bus/*.c: port over to object-instance API changes
2539 * test/test-service.c: ditto
2541 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2542 name, we will have to fix up the rest of the code to also handle
2544 (dbus_message_new): generic message-creation call
2545 (set_string_field): allow appending name field
2547 2003-08-06 Havoc Pennington <hp@pobox.com>
2549 * dbus/dbus-object-registry.c: implement signal connection
2552 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2554 * dbus/dbus-internals.c (_dbus_memdup): new function
2556 2003-08-02 Havoc Pennington <hp@pobox.com>
2558 * dbus/dbus-message.c (dbus_message_get_no_reply)
2559 (dbus_message_set_no_reply): add these and remove
2560 set_is_error/get_is_error
2562 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
2563 remove the ERROR flag, since there's now an ERROR type
2565 2003-08-01 Havoc Pennington <hp@pobox.com>
2567 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2570 * dbus/dbus-message.c (dbus_message_get_type): new function
2572 * doc/dbus-specification.sgml: add "type" byte to messages
2574 2003-08-01 Havoc Pennington <hp@pobox.com>
2576 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2577 a message type enum to distinguish kinds of message
2578 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
2579 that need not be replied to
2581 2003-08-01 Havoc Pennington <hp@pobox.com>
2583 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2584 (unpack_8_octets): fix no-64-bit-int bug
2586 * dbus/dbus-object-registry.c (validate_id): validate the
2587 connection ID bits, not just the instance ID.
2589 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2590 the connection-global 33 bits of the object ID
2592 * dbus/dbus-object-registry.c (info_from_entry): fill in
2593 object ID in the new way
2595 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2596 define server/client/instance bits.
2598 2003-07-30 Havoc Pennington <hp@pobox.com>
2600 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2603 2003-07-13 Havoc Pennington <hp@pobox.com>
2605 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2606 fields to DBusObjectVTable and DBusObjectInfo
2608 2003-07-12 Havoc Pennington <hp@pobox.com>
2610 * dbus/dbus-object-registry.c: implement unit test,
2611 fix bugs discovered in process
2613 * dbus/dbus-connection.c: remove handler_table and
2614 register_handler(), add DBusObjectRegistry usage
2616 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2617 (dbus_object_id_set_null): new functions
2619 2003-07-08 Havoc Pennington <hp@pobox.com>
2621 * dbus/dbus-object.c: implement some of this
2623 * dbus/dbus-object-registry.c
2624 (_dbus_object_registry_add_and_unlock): fill in the object_id out
2626 (_dbus_object_registry_new): handle OOM
2628 2003-07-08 Havoc Pennington <hp@pobox.com>
2630 * dbus/dbus-object.h: sketch out an API for registering objects
2631 with a connection, that allows us to use as little as 24 bytes
2632 per object and lets application code represent an object in
2633 any conceivable way.
2635 * dbus/dbus-object-registry.c: implement the hard bits of the
2636 DBusConnection aspect of object API. Not yet wired up.
2638 2003-07-06 Havoc Pennington <hp@pobox.com>
2640 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
2641 (_dbus_marshal_object_id): new
2642 (_dbus_demarshal_object_id): new
2643 (_dbus_marshal_get_arg_end_pos): support object ID type, and
2644 consolidate identical switch cases. Don't conditionalize handling
2645 of DBUS_TYPE_UINT64, need to handle the type always.
2646 (_dbus_marshal_validate_arg): consolidate identical cases, and
2647 handle DBUS_TYPE_OBJECT_ID
2649 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
2651 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
2653 2003-09-28 Havoc Pennington <hp@pobox.com>
2657 2003-09-28 Havoc Pennington <hp@pobox.com>
2659 * doc/Makefile.am (dbus-specification.html): testing a funky hack
2660 to work with Debian db2html
2662 2003-09-28 Havoc Pennington <hp@pobox.com>
2664 * configure.in: 0.13
2666 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
2667 stylesheet-images for benefit of Debian
2669 Change back to using filesystem-linked sockets for the system
2670 bus, so only root can create the default system bus address.
2672 * bus/system.conf.in: change to use
2673 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2675 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
2678 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2679 here, and AC_DEFINE DBUS_SYSTEM_PATH
2681 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2684 * doc/busconfig.dtd:
2687 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2689 * doc/dbus-specification.sgml:
2690 Add activation reply values.
2692 2003-08-05 Havoc Pennington <hp@redhat.com>
2694 * configure.in: 0.12
2696 2003-08-05 Anders Carlsson <andersca@codefactory.se>
2698 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
2699 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
2700 (add_watch), (remove_watch), (create_source):
2701 Refcount fds, fixes some reentrancy issues.
2703 2003-07-30 Havoc Pennington <hp@redhat.com>
2705 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
2706 bus address to be abstract if we have abstract sockets
2710 2003-07-28 Havoc Pennington <hp@redhat.com>
2712 * bus/messagebus.in: fix to avoid processname/servicename
2713 confusion, from Michael Kearey
2714 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
2716 2003-07-23 Havoc Pennington <hp@pobox.com>
2718 * dbus/dbus-message.c (dbus_message_iter_get_named):
2719 fix from Andy Hanton to remove broken "+1"
2721 2003-07-16 Havoc Pennington <hp@pobox.com>
2723 * tools/dbus-launch.c (babysit): close stdout/stderr in the
2724 babysitter process, as suggested by Thomas Leonard, so
2725 an "eval `dbus-launch --exit-with-session`" will actually
2728 2003-07-16 Havoc Pennington <hp@pobox.com>
2730 * configure.in: print out EXPANDED_* variables in the summary at
2731 the end; clean up the code that computes EXPANDED_ variables and
2732 get the ones using exec_prefix right. Should make things work
2733 when you build without --prefix
2735 2003-06-29 Havoc Pennington <hp@pobox.com>
2737 * mono/Test.cs (class Test): fire up a main loop and run it
2739 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
2740 done once, the app has to do it
2742 2003-06-26 Havoc Pennington <hp@pobox.com>
2744 * mono/Connection.cs: set up connection with the glib main loop
2746 2003-07-01 Havoc Pennington <hp@redhat.com>
2748 * doc/dbus-specification.sgml: clarify the format of a type code,
2749 change suggested by Jim Blandy
2751 2003-06-29 Miloslav Trmac <mitr@volny.cz>
2754 * tools/Makefile.am: Don't assume srcdir == builddir.
2756 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
2757 the allocated block.
2758 (_dbus_memory_test): New function.
2759 * dbus/dbus-test.h: Add _dbus_memory_test ().
2760 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
2762 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
2764 (dbus_message_new): Remove obsolete @todo.
2766 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
2767 (_dbus_marshal_set_uint64): Fix comment.
2769 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
2770 hardcode FIELD_REPLY_SERIAL.
2772 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
2773 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
2775 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
2776 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
2778 2003-06-24 Havoc Pennington <hp@pobox.com>
2780 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
2782 2003-06-23 Anders Carlsson <andersca@codefactory.se>
2788 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
2789 * gcj/org/.cvsignore:
2790 * gcj/org/Makefile.am:
2791 * gcj/org/freedesktop/.cvsignore:
2792 * gcj/org/freedesktop/Makefile.am:
2793 * gcj/org/freedesktop/dbus/.cvsignore:
2794 * gcj/org/freedesktop/dbus/Makefile.am:
2795 * gcj/org/freedesktop/dbus/Message.java: (Message),
2797 * gcj/org/freedesktop/dbus/natMessage.cc:
2798 Fix the build system.
2800 2003-06-22 Havoc Pennington <hp@pobox.com>
2802 * mono/Connection.cs: add more bindings
2804 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
2807 2003-06-22 Havoc Pennington <hp@pobox.com>
2809 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
2810 Start wrapping more stuff.
2812 2003-06-22 Havoc Pennington <hp@pobox.com>
2814 * mono/Message.cs: implement Message.Wrap() that ensures we only
2815 have a single C# wrapper per DBusMessage, assuming it works which
2816 it probably doesn't.
2818 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
2819 (dbus_message_free_data_slot): new
2820 (dbus_message_set_data): new
2821 (dbus_message_get_data): new
2823 2003-06-22 Havoc Pennington <hp@pobox.com>
2825 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
2826 (_dbus_data_slot_allocator_alloc): rework these to keep a
2827 reference count on each slot and automatically manage a global
2828 slot ID variable passed in by address
2830 * bus/bus.c: convert to new dataslot API
2832 * dbus/dbus-bus.c: convert to new dataslot API
2834 * dbus/dbus-connection.c: convert to new dataslot API
2836 * dbus/dbus-server.c: convert to new dataslot API
2838 * glib/dbus-gmain.c: ditto
2842 * bus/connection.c: ditto
2844 2003-06-22 Anders Carlsson <andersca@codefactory.se>
2846 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
2847 after the gcj checks so that the correct configuration tags
2848 will be added to libtool.
2850 * dbus-glib-1.pc.in: No need to specify any includes since
2851 dbus-1.pc.in has those.
2853 2003-06-22 Havoc Pennington <hp@pobox.com>
2855 * mono/*, gcj/*, configure.in, Makefile.am:
2856 Check in makefiles and subdirs for mono and gcj bindings.
2857 Neither binding actually exists, just trying to get through
2858 all the build and other boring bits.
2860 2003-06-21 Philip Blundell <philb@gnu.org>
2862 * tools/dbus-monitor.1: Updated.
2864 * tools/dbus-send.1: Likewise.
2866 2003-06-20 Anders Carlsson <andersca@codefactory.se>
2868 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
2869 for hangup and error after checking read so we won't discard
2870 pending data if both hangup and read are set.
2872 2003-06-19 Philip Blundell <philb@gnu.org>
2874 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
2876 * tools/dbus-send.c: Accept both --system and --session.
2878 * tools/dbus-monitor.c: Same here.
2880 2003-06-19 Anders Carlsson <andersca@codefactory.se>
2882 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
2883 from C++ (Patch by Miloslav Trmac).
2885 2003-06-15 Joe Shaw <joe@assbarn.com>
2887 * configure.in: Check for socklen_t.
2889 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
2891 * test/test-segfault.c: Add #include <sys/time.h>
2893 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
2894 dbus-launch needs it.
2896 2003-06-09 Havoc Pennington <hp@redhat.com>
2898 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
2899 SUN_LEN, it breaks abstract socket usage
2901 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
2904 2003-06-04 Havoc Pennington <hp@pobox.com>
2906 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
2907 using unix:abstract=/foo, and when listening in a tmpdir
2908 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
2910 * dbus/dbus-transport.c (_dbus_transport_open): support
2913 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2914 support abstract sockets
2916 * dbus/dbus-transport-unix.c
2917 (_dbus_transport_new_for_domain_socket): support abstract sockets
2919 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
2920 toggle as an argument, implement abstract namespace support
2921 (_dbus_listen_unix_socket): ditto
2923 * configure.in: add --enable-abstract-sockets and implement
2924 a configure check for autodetection of the right value.
2926 2003-06-01 Havoc Pennington <hp@pobox.com>
2928 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
2929 in /tmp (though on Linux this will end up being useless,
2930 when we add abstract namespace support)
2932 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
2935 2003-05-28 Colin Walters <walters@verbum.org>
2937 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
2939 2003-05-18 Anders Carlsson <andersca@codefactory.se>
2941 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
2943 2003-05-17 Colin Walters <walters@gnu.org>
2945 * tools/dbus-send.c: Don't exit with an error code if --help was
2946 passed. Default to using the session bus instead of the system
2949 * tools/dbus-launch.c: Ditto.
2951 * tools/dbus-monitor.c: Ditto.
2953 * tools/dbus-send.1: Update with new arguments.
2955 * tools/dbus-launch.c: Emit code to export variables. New
2956 arguments -s and -c to specify shell syntax, and a bit of code to
2957 autodetect syntax. Also, allow specifying a program to run.
2959 * tools/dbus-launch.1: Update with new arguments.
2961 * tools/dbus-send.1: Ditto.
2963 * tools/dbus-monitor.1: Ditto.
2965 2003-05-17 Havoc Pennington <hp@pobox.com>
2967 * bus/config-parser.c (merge_included): merge in policies from
2968 child configuration file.
2970 * bus/policy.c (bus_policy_merge): function to merge two policies
2973 2003-05-16 Havoc Pennington <hp@redhat.com>
2975 * dbus/dbus-connection.c: disable verbose lock spew
2977 * tools/dbus-send.c: add --print-reply command line option
2979 * tools/dbus-print-message.h (print_message): new util function
2980 shared by dbus-send and dbus-monitor
2982 * tools/dbus-monitor.c (handler_func): exit on disconnect
2984 * dbus/dbus-transport-unix.c (do_reading): if the transport is
2985 disconnected, don't try to use the read_watch
2987 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
2988 so we can find this bug more easily
2990 2003-05-16 Havoc Pennington <hp@redhat.com>
2992 * bus/policy.c (free_rule_list_func): avoid a crash when passed
2993 NULL as DBusHashTable is annoyingly likely to do.
2995 2003-05-16 Colin Walters <walters@verbum.org>
2997 * tools/dbus-monitor.c: Add --session argument and usage()
3000 * tools/dbus-monitor.1: Update with new --session arg.
3002 * bus/Makefile.am (install-data-hook): Create
3003 $(libdir)/dbus-1.0/services so that the session bus is happy.
3005 2003-05-15 Havoc Pennington <hp@redhat.com>
3007 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3008 on non-x86. ifdef's are evil.
3010 2003-05-15 Havoc Pennington <hp@redhat.com>
3012 * configure.in: 0.11
3016 * bus/Makefile.am (initddir): apparently we are supposed to put
3017 init scripts in /etc/rc.d/init.d not /etc/init.d
3019 * bus/Makefile.am: remove the "you must --enable-tests to make
3020 check" as it broke distcheck
3022 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3024 2003-05-13 James Willcox <jwillcox@gnome.org>
3027 * bus/activation.c: (bus_activation_service_created),
3028 (bus_activation_activate_service):
3029 * bus/driver.c: (bus_driver_send_service_deleted),
3030 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3031 (bus_driver_send_service_acquired),
3032 (bus_driver_send_welcome_message),
3033 (bus_driver_handle_list_services):
3034 * bus/session.conf.in:
3035 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3036 (dbus_bus_service_exists), (dbus_bus_activate_service):
3039 Add some convenience API which lets you activate a service, and did a
3040 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3041 and dbus_message_get_args()
3043 2003-05-11 Havoc Pennington <hp@pobox.com>
3045 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3046 calling _dbus_marshal_validate_arg() for every byte in a byte
3049 * dbus/dbus-message-handler.c: use atomic reference counting to
3050 reduce number of locks slightly; the global lock in here sucks
3052 * dbus/dbus-connection.c
3053 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3054 update_dispatch_status that can be called with lock held; then use
3055 in a couple places to reduce locking/unlocking
3056 (dbus_connection_send): hold the lock over the whole function
3057 instead of acquiring it twice.
3059 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3061 * bus/connection.c (bus_connections_setup_connection): fix access
3062 to already-freed memory.
3064 * dbus/dbus-connection.c: keep a little cache of linked list
3065 nodes, to avoid using the global linked list alloc lock in the
3066 normal send-message case. Instead we just use the connection lock
3067 that we already have to take.
3069 * dbus/dbus-list.c (_dbus_list_find_last): new function
3071 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3072 change to use a struct for the atomic type; fix docs,
3073 they return value before increment, not after increment.
3075 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3076 (_dbus_string_append_8_aligned): new functions to try to
3077 microoptimize this operation.
3078 (reallocate_for_length): break this out of set_length(), to
3079 improve profile info, and also so we can consider inlining the
3082 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3083 strings with some preallocation, cuts down on our calls to realloc
3084 a fair bit. Though if we can get the "move entire string to empty
3085 string" optimization below to kick in here, it would be better.
3087 * dbus/dbus-string.c (_dbus_string_move): just call
3088 _dbus_string_move_len
3089 (_dbus_string_move_len): add a special case for moving
3090 an entire string into an empty string; we can just
3091 swap the string data instead of doing any reallocs.
3092 (_dbus_string_init_preallocated): new function
3094 2003-05-11 Havoc Pennington <hp@pobox.com>
3096 Write a "test-profile" that does echo client-server with threads;
3097 profile reveals lock contention, memcpy/realloc of buffers, and
3098 UTF-8 validation as hot spots. 20% of lock contention eliminated
3099 with dbus_atomic_inc/dec implementation on x86. Much remaining
3100 contention is global mempool locks for GList and DBusList.
3102 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3105 * dbus/dbus-connection.c (struct DBusConnection): use
3106 dbus_atomic_t for the reference count
3108 * dbus/dbus-message.c (struct DBusMessage): declare
3109 dbus_atomic_t values as volatile
3111 * configure.in: code to detect ability to use atomic integer
3112 operations in assembly, from GLib patch
3114 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3115 time, tired of it being wrong in threads and forked processes
3117 * glib/test-profile.c: a little program to bounce messages back
3118 and forth between threads and eat CPU
3120 * dbus/dbus-connection.c: add debug spew macros for debugging
3121 thread locks; include config.h at top; fix deadlock in
3122 dbus_connection_flush()
3124 2003-05-08 Havoc Pennington <hp@pobox.com>
3126 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3127 data from getting written, and there wasn't a good reason to
3130 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3131 dbus_verbose lines in test coverage
3132 (main): add list of functions sorted by # of untested blocks
3133 to the coverage report
3135 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3137 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3139 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3140 extend test coverage
3142 * test/data/auth/cancel.auth-script: test canceling an
3145 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3146 aren't used. in CVS history if we end up needing them.
3148 2003-05-04 Havoc Pennington <hp@pobox.com>
3150 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3153 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3154 function, which assumed length was in # of strings, not bytes
3156 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3159 * dbus/dbus-connection.c
3160 (_dbus_connection_queue_received_message): disable function for
3161 now, we are only using it in test mode
3163 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3164 remove a mistaken FIXME
3166 2003-05-04 Havoc Pennington <hp@pobox.com>
3168 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3169 unlock mutex on successful return, patch from Anders Gustafsson
3171 2003-05-04 Havoc Pennington <hp@pobox.com>
3173 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3176 2003-05-04 Havoc Pennington <hp@pobox.com>
3178 * tools/dbus-launch.c: implement
3180 * bus/main.c (main), bus/bus.c (bus_context_new):
3181 implement --print-pid and --fork
3183 2003-05-03 Havoc Pennington <hp@redhat.com>
3185 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3186 the address had no value, and add to test suite. Fix and
3187 regression test from Miloslav Trmac
3189 2003-05-03 Havoc Pennington <hp@pobox.com>
3191 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3192 watch is invalid when handled
3194 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3195 dbus-launch utility to launch the bus from a shell script. Didn't
3196 actually implement dbus-launch yet, it's just a placeholder still.
3198 2003-05-03 Havoc Pennington <hp@pobox.com>
3200 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3201 daemon; also documents daemon config file, so replaces
3202 doc/config-file.txt. Corrected some stuff from config-file.txt in
3203 the process of moving it.
3205 2003-05-03 Havoc Pennington <hp@pobox.com>
3207 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3210 2003-05-03 Colin Walters <walters@verbum.org>
3212 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3213 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3215 * Makefile.am: Update to use new .pc versioning scheme.
3217 2003-05-02 Havoc Pennington <hp@redhat.com>
3219 * bus/system.conf.in: allow send/receive to/from message bus
3222 2003-04-30 Havoc Pennington <hp@redhat.com>
3224 * configure.in: print a note when building with unit tests and
3227 2003-04-30 Havoc Pennington <hp@redhat.com>
3229 * Makefile.am: add a check-local that complains if you didn't
3230 configure with --enable-tests
3232 2003-04-29 Havoc Pennington <hp@redhat.com>
3234 * glib/dbus-gmain.c: docs cleanups
3236 * dbus/dbus-types.h: add docs on int64 types
3238 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3239 public API docs section
3241 2003-04-29 Havoc Pennington <hp@redhat.com>
3243 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3244 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3245 parallel install API version, not with the D-BUS package version.
3247 * HACKING: move some of README over here
3249 * README: updates, and document API/ABI policy
3251 * configure.in: reindentation
3253 2003-04-29 Havoc Pennington <hp@redhat.com>
3255 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3256 to use this library" to be sure people have the right
3259 2003-04-28 Havoc Pennington <hp@redhat.com>
3261 * configure.in: add --enable-docs which by default is auto yes if
3262 doxygen and db2html found, no otherwise; but can be forced on/off
3264 * doc/Makefile.am: conditionalize whether to build docs on
3267 2003-04-28 Havoc Pennington <hp@redhat.com>
3269 * configure.in: 0.10
3273 * bus/system.conf.in: add <includedir>system.d</includedir>
3275 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3276 username was provided but not uid
3278 * bus/config-parser.c (struct BusConfigParser): keep track of
3279 whether the parser is toplevel or was included; change some
3280 of the error handling if it's included.
3282 2003-04-27 Havoc Pennington <hp@pobox.com>
3286 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3287 report correct status if we finish processing authentication
3288 inside this function.
3290 * bus/activation.c (try_send_activation_failure): use
3291 bus_transaction_send_error_reply
3293 * bus/connection.c (bus_connection_get_groups): return an error
3294 explaining the problem
3296 * bus/bus.c (bus_context_check_security_policy): implement
3297 restriction here that inactive connections can only send the
3298 hello message. Also, allow bus driver to send anything to
3301 * bus/connection.c (bus_connection_complete): create the
3302 BusClientPolicy here instead of on-demand.
3303 (bus_connection_get_policy): don't return an error
3305 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3306 sender field in message being replied to
3308 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3309 causing it to return FALSE always
3311 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3312 we checked sender rather than destination
3314 2003-04-25 Havoc Pennington <hp@redhat.com>
3316 test suite is slightly hosed at the moment, will fix soon
3318 * bus/connection.c (bus_connections_expire_incomplete): fix to
3319 properly disable the timeout when required
3320 (bus_connection_set_name): check whether we can remove incomplete
3321 connections timeout after we complete each connection.
3323 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3324 probably still broken.
3326 * bus/services.c (bus_registry_acquire_service): implement max
3327 number of services owned, and honor allow/deny rules on which
3328 services a connection can own.
3330 * bus/connection.c (bus_connection_get_policy): report errors here
3332 * bus/activation.c: implement limit on number of pending
3335 2003-04-25 Havoc Pennington <hp@redhat.com>
3337 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3338 where we used >= 0 instead of != DBUS_UID_UNSET.
3340 2003-04-25 Havoc Pennington <hp@redhat.com>
3342 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3343 were toggled without add/remove, fix from Anders Gustafsson
3345 2003-04-24 Havoc Pennington <hp@redhat.com>
3347 * test/data/valid-config-files/basic.conf: add <limit> tags to
3350 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3351 <limit> tag in configuration file.
3353 2003-04-24 Havoc Pennington <hp@redhat.com>
3355 * bus/dispatch.c: somehow missed some name_is
3357 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3358 (_dbus_timeout_set_interval): new
3360 * bus/connection.c (bus_connections_setup_connection): record time
3361 when each connection is first set up, and expire them after the
3362 auth timeout passes.
3364 2003-04-24 Havoc Pennington <hp@redhat.com>
3366 * dbus/dbus-message.c (dbus_message_name_is): rename
3367 (dbus_message_service_is): rename
3368 (dbus_message_sender_is): rename
3369 (dbus_message_get_service): rename
3371 2003-04-24 Havoc Pennington <hp@redhat.com>
3373 * configure.in: add --enable-checks
3375 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3377 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3378 to use thread locks.
3379 (_dbus_connection_handler_destroyed_locked): move some private
3380 functions into proper docs group
3382 * dbus/dbus-internals.h: add _dbus_return_if_fail,
3383 _dbus_return_val_if_fail
3385 Throughout: use dbus_return_if_fail
3387 2003-04-23 James Willcox <jwillcox@gnome.org>
3390 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3391 (dbus_connection_setup_with_g_main),
3392 (dbus_server_setup_with_g_main):
3393 * glib/test-dbus-glib.c: (main):
3394 * glib/test-thread-client.c: (main):
3395 * glib/test-thread-server.c: (new_connection_callback), (main):
3396 * tools/dbus-monitor.c: (main):
3398 Added a GMainContext argument to dbus_connection_setup_with_g_main()
3399 and dbus_server_setup_with_g_main().
3401 2003-04-20 Havoc Pennington <hp@pobox.com>
3403 * doc/dbus-specification.sgml: document the restrictions on
3404 message and service names
3406 2003-04-22 Havoc Pennington <hp@redhat.com>
3408 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3409 support, and do some code cleanups to share more code and
3410 speed up array marshal/demarshal.
3412 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3414 * configure.in: generate dbus-arch-deps.h
3416 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3419 2003-04-22 Havoc Pennington <hp@redhat.com>
3421 * test/data/valid-messages/opposite-endian.message: fix test
3422 to use proper type for rply field
3424 * test/data/invalid-messages: add tests for below validation
3426 * dbus/dbus-message.c (decode_header_data): validate field types,
3427 and validate that named fields are valid names
3428 (decode_name_field): consider messages in the
3429 org.freedesktop.Local. namespace to be invalid.
3431 * dbus/dbus-string.c (_dbus_string_validate_name): new
3433 2003-04-19 Havoc Pennington <hp@pobox.com>
3435 * bus/driver.c (bus_driver_handle_hello): check limits and
3436 return an error if they are exceeded.
3438 * bus/connection.c: maintain separate lists of active and inactive
3439 connections, and a count of each. Maintain count of completed
3440 connections per user. Implement code to check connection limits.
3442 * dbus/dbus-list.c (_dbus_list_unlink): export
3444 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3445 number of bytes in the message queue for a connection
3447 2003-04-18 Havoc Pennington <hp@pobox.com>
3449 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3451 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3454 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3455 on realloc be sure to update the pointer in the keyring
3457 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3458 offset to avoid writing to unallocated memory
3460 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3461 try the next mechanism, so we properly handle OOM
3463 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3465 (_dbus_keyring_new): fix OOM bug
3466 (_dbus_keyring_new_homedir): always set error; impose a maximum
3467 number of keys we'll load from the file, mostly to speed up the
3468 test suite and make its OOM checks more useful, but also for
3471 * dbus/dbus-auth.c (process_error_server): reject authentication
3472 if we get an error from the client
3473 (process_cancel): on cancel, send REJECTED, per the spec
3474 (process_error_client): send CANCEL if we get an error from the
3477 2003-04-18 Havoc Pennington <hp@pobox.com>
3479 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3482 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3485 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3486 about DBUS_TEST_HOMEDIR once
3488 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3491 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3492 config file so we test the right thing
3494 Throughout: assorted docs improvements
3496 2003-04-18 Havoc Pennington <hp@pobox.com>
3498 * glib/dbus-gmain.c: adapt to watch changes
3500 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3502 * dbus/dbus-server.h: remove dbus_server_handle_watch
3504 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3506 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3507 like DBusTimeout, so we don't need dbus_connection_handle_watch
3510 2003-04-17 Havoc Pennington <hp@redhat.com>
3512 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3513 database usage so it all goes via the DBusUserDatabase cache.
3515 2003-04-17 Havoc Pennington <hp@redhat.com>
3517 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3518 there was an OOM watch we skipped, we always return TRUE so we
3519 iterate again to have a look at it again. Fixes test suite hang.
3520 Code rearrangement also lets us lose some memset and only iterate
3521 over callbacks once.
3523 * bus/driver.c (bus_driver_handle_message): sense of test for
3526 2003-04-16 Havoc Pennington <hp@pobox.com>
3528 * doc/dbus-specification.sgml: make spec say serials are unsigned
3530 * dbus/dbus-message.h: change message serials to unsigned
3532 * dbus/dbus-connection.c: adapt to message serials being unsigned
3534 2003-04-15 Havoc Pennington <hp@pobox.com>
3536 * bus/bus.c: create and keep around a shared DBusUserDatabase
3539 * bus/connection.c (bus_connection_get_groups): don't cache
3540 groups for user in the connection object, since user database
3541 object now does that.
3543 2003-04-16 Havoc Pennington <hp@redhat.com>
3545 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3546 list of size counters
3547 (_dbus_message_loader_putback_message_link): put back a popped link
3549 * dbus/dbus-connection.c
3550 (dbus_connection_set_max_live_messages_size): rename
3552 (dbus_connection_get_outgoing_size): get size of outgoing
3554 (_dbus_connection_set_connection_counter): remove this cruft
3556 2003-04-14 Havoc Pennington <hp@redhat.com>
3558 * dbus/dbus-userdb.c: user database abstraction, mostly to get
3559 caching, but at some point we might want to be able to use a
3562 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3563 SHA1 conf file to test the sha1 auth mechanism, since the regular
3564 test always uses EXTERNAL when available.
3567 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3568 add conf file that requires use of sha1 auth
3570 2003-04-13 Havoc Pennington <hp@pobox.com>
3572 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3573 from Philip Blundell to send messages and monitor them.
3575 2003-04-13 Havoc Pennington <hp@pobox.com>
3577 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3580 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3583 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3584 fix to only recover unused bytes if we're already authenticated
3585 (_dbus_transport_get_is_authenticated): fix to still mark us
3586 authenticated if there are unused bytes.
3588 * bus/dispatch.c: implement security policy checking
3590 * bus/connection.c (bus_transaction_send_from_driver): new
3592 * bus/bus.c (bus_context_check_security_policy): new
3594 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3595 now we just set the DBusError and it gets converted to an error
3598 * bus/connection.c (allow_user_function): enable code using actual
3599 data from the config file
3601 * bus/policy.c (list_allows_user): handle wildcard rules for
3602 user/group connection perms
3604 2003-04-13 Havoc Pennington <hp@pobox.com>
3606 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3608 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3610 * bus/policy.c (bus_policy_append_mandatory_rule)
3611 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3612 (bus_policy_append_group_rule): new functions
3614 2003-04-12 Havoc Pennington <hp@pobox.com>
3616 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3618 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3619 the pid/gid/uid, just for paranoia.
3621 * test/break-loader.c (randomly_do_n_things): find a byte
3622 containing a type code, and randomly change it to a different
3625 2003-04-12 Havoc Pennington <hp@pobox.com>
3627 * bus/policy.h: change BusPolicy to be the thing from the config
3628 file, and rename old BusPolicy to BusClientPolicy
3630 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
3631 match change in how policy works
3633 * dbus/dbus-internals.h: mark assert_not_reached as
3634 __attribute((noreturn))__
3636 2003-04-11 Havoc Pennington <hp@redhat.com>
3638 * doc/dbus-specification.sgml: fix a spot with the wrong name for
3639 the broadcast service. Use boolean return for ServiceExists.
3641 2003-04-11 Havoc Pennington <hp@redhat.com>
3643 * configure.in: add another directory to look for qt in.
3645 2003-04-11 Havoc Pennington <hp@redhat.com>
3647 * AUTHORS: add Colin Walters
3649 2003-04-11 Havoc Pennington <hp@redhat.com>
3655 2003-04-11 Havoc Pennington <hp@redhat.com>
3657 * bus/messagebus.in: remove pid file when stopping the
3658 message bus, since the bus won't have privileges to remove it
3661 2003-04-11 Havoc Pennington <hp@redhat.com>
3663 * bus/bus.c (bus_context_new): move credentials change after
3666 2003-04-11 Havoc Pennington <hp@pobox.com>
3668 * test/decode-gcov.c: add "below average functions" to the
3669 coverage report, and change how some of the code works.
3671 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
3672 not in the coverage stats.
3674 * test/test-service.c (main): use _dbus_verbose not fprintf in a
3675 couple places so running the test suite doesn't result in megaspam.
3677 2003-04-11 Havoc Pennington <hp@pobox.com>
3679 * bus/dispatch.c (check_existent_service_activation): accept a no
3680 memory error in a place we didn't before
3682 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
3683 in case the first one failed," since the test suite is less
3686 2003-04-10 Havoc Pennington <hp@pobox.com>
3688 * bus/dispatch.c (check_segfault_service_activation): add test
3689 for launching an executable that just crashes.
3691 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
3692 don't leave a million cores. We'll see how portable this is.
3694 2003-04-10 Havoc Pennington <hp@pobox.com>
3696 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
3697 the possible parent failures before we fork, so that we don't
3698 fail to create a babysitter after creating the child.
3700 * bus/activation.c (bus_activation_activate_service): kill child
3701 if we don't successfully complete the activation.
3703 2003-04-10 Havoc Pennington <hp@redhat.com>
3705 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
3706 the connection if it's disconnected
3708 * bus/activation.c (bus_activation_service_created): use new
3709 transaction features to roll back removal of pending activation if
3710 we don't successfully create the service after all. Don't remove
3711 pending activation if the function fails.
3713 * dbus/dbus-list.c (_dbus_list_insert_before_link)
3714 (_dbus_list_insert_after_link): new code to facilitate
3717 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
3718 new functionality, so we can preallocate the ability to insert
3721 * bus/connection.c (bus_transaction_add_cancel_hook): new function
3722 allowing us to put custom hooks in a transaction to be used for
3723 cancelling said transaction
3725 * doc/dbus-specification.sgml: add some discussion of secondary
3726 service owners, and disallow zero-length service names
3728 * bus/services.c (bus_registry_acquire_service): new function,
3729 splits out part of bus_driver_handle_acquire_service() and fixes
3730 a bug where we didn't remove the service doing the acquiring
3731 from the secondary queue if we failed to remove the current owner
3732 from the front of the queue.
3734 2003-04-10 Alexander Larsson <alexl@redhat.com>
3736 * doc/dbus-specification.sgml:
3737 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
3739 2003-04-10 Alexander Larsson <alexl@redhat.com>
3744 Added files to cvsignore
3746 * dbus/dbus-message.h:
3747 * dbus/dbus-message.c: (dbus_message_iter_get_named):
3748 Make get_named() take two out argument and return a boolean.
3749 (dbus_message_iter_get_args_valist):
3750 Update usage of get_named().
3751 (dbus_message_iter_append_byte):
3753 (dbus_message_iter_append_named)
3755 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
3758 2003-04-10 Alexander Larsson <alexl@redhat.com>
3760 * dbus/dbus-marshal.[ch]:
3761 Add array_type_pos argument to _dbus_marshal_validate_arg.
3762 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
3764 * dbus/dbus-message.[ch]:
3765 Multi-dimensional arrays have full type specification in the
3766 outermost array. Iter code re-arranged to handle this.
3767 Added some more iter tests.
3769 * doc/dbus-specification.sgml:
3772 Update new array encoding description.
3773 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
3775 * test/data/invalid-messages/array-with-mixed-types.message:
3776 * test/data/valid-messages/array-of-array-of-uint32.message:
3777 Change to the new array format.
3779 * test/data/invalid-messages/too-short-dict.message:
3782 * test/data/valid-messages/recursive-types.message:
3783 Fix up and extend test.
3785 2003-04-10 Havoc Pennington <hp@pobox.com>
3787 * bus/dispatch.c: lots of fixes
3789 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
3790 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
3791 that was crack, broke the test service.
3793 * dbus/dbus-transport.c (_dbus_transport_open): fix error
3794 handling to avoid piling up errors if we get a failure on the
3797 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
3798 pid in assertion failures.
3800 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
3801 to some fixed size of file descriptor array. Don't return TRUE
3802 anytime a timeout exists, that led to lots of busy loop silliness
3805 2003-04-09 Havoc Pennington <hp@redhat.com>
3807 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
3808 I'd checked this in earlier but hadn't.
3810 2003-04-09 Havoc Pennington <hp@redhat.com>
3812 * bus/dispatch.c (bus_dispatch_test): get a bit further through
3813 the activation test (man this is getting old!)
3815 2003-04-09 Havoc Pennington <hp@redhat.com>
3817 * test/test-utils.c: use dispatch status function to fix this up
3819 * bus/connection.c (connection_watch_callback): don't dispatch
3821 (connection_timeout_callback): don't dispatch from here
3822 (bus_connections_setup_connection): set the dispatch status function
3823 (bus_connection_disconnected): unset it
3825 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
3826 used to add a connection to be dispatched
3827 (_dbus_loop_iterate): do the dispatching at the end of each
3830 * dbus/dbus-connection.c
3831 (dbus_connection_set_dispatch_status_function): new function
3832 allowing us to fix up main loop usage
3833 (_dbus_connection_last_unref): free all the various function
3835 (dbus_connection_dispatch): call the DispatchStatusFunction
3836 whenever this function returns
3837 (dbus_connection_handle_watch): call DispatchStatusFunction
3838 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
3839 (reply_handler_timeout): call DispatchStatusFunction
3840 (dbus_connection_flush): call DispatchStatusFunction
3842 2003-04-09 Havoc Pennington <hp@redhat.com>
3844 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
3847 * bus/dispatch.c (check_service_activated): fix bug in test
3849 * dbus/dbus-mainloop.c (check_timeout): fix this up
3851 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
3852 verbose output so we can sort out output from different processes,
3853 e.g. in the activation case.
3855 2003-04-08 Colin Walters <walters@gnu.org>
3857 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
3859 (bus_context_new): Set it.
3860 (bus_context_unref): Use it to delete the pid file.
3862 2003-04-08 Havoc Pennington <hp@redhat.com>
3864 * test/data/invalid-messages/array-with-mixed-types.message:
3865 regression test that fails for the moment
3867 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
3868 tests for convenience
3870 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
3871 array of nil, it broke things.
3873 * test/data/invalid-messages/array-of-nil.message: regression test
3875 * test/data/valid-messages/array-of-array-of-uint32.message:
3876 happened to write this so added it to suite
3878 2003-04-08 Havoc Pennington <hp@redhat.com>
3880 * bus/driver.c (bus_driver_handle_acquire_service): init
3881 retval/reply before checking name
3883 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
3884 recursion depth argument
3886 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
3887 in the public struct for future extension
3889 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
3892 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
3895 * doc/dbus-specification.sgml: fix typo
3897 2003-04-08 Alexander Larsson <alexl@redhat.com>
3899 Implemented recursive types, named types and new-style iters
3902 * glib/test-thread-client.c: (thread_func):
3903 * glib/test-thread-server.c: (handle_test_message):
3904 * test/test-service.c: (handle_echo):
3913 * dbus/dbus-internals.c: (_dbus_type_to_string):
3914 Update for new types.
3916 * dbus/dbus-marshal.[ch]:
3917 Implement recursive types and the new marshalling format.
3918 Remove hardcoded dict marshalling.
3919 Marshal named types.
3921 * dbus/dbus-message-builder.c:
3923 Remove references to old types
3925 * dbus/dbus-message.[ch]:
3926 New non-refcounted iter API that supports recursive iters.
3927 Use iters for appending, including support for recursive
3929 Add byte and named type support.
3930 Update everything to new marshalling formats.
3931 Add tests for new API.
3933 * dbus/dbus-protocol.h:
3934 Remove old array types.
3935 Add types: BYTE, ARRAY, DICT, NAMED
3937 * dbus/dbus-string.c:
3938 * dbus/dbus-sysdeps.c:
3939 Make parse_double locale safe.
3941 * dbus/dbus-test-main.c:
3947 * doc/dbus-specification.sgml:
3950 * test/data/incomplete-messages/missing-body.message:
3951 * test/data/invalid-messages/bad-boolean.message:
3952 * test/data/invalid-messages/bad-boolean-array.message:
3953 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
3954 * test/data/invalid-messages/boolean-has-no-value.message-raw:
3955 * test/data/invalid-messages/too-short-dict.message:
3956 * test/data/valid-messages/dict-simple.message:
3957 * test/data/valid-messages/dict.message:
3958 * test/data/valid-messages/emptiness.message:
3959 * test/data/valid-messages/lots-of-arguments.message:
3960 * test/data/valid-messages/no-padding.message:
3961 * test/data/valid-messages/recursive-types.message:
3962 Add missing NAME fields
3963 Fix up dicts & arrays
3965 * test/data/invalid-messages/dict-with-nil-value.message:
3966 Removed, this is not invalid anymore.
3968 * test/data/valid-messages/recursive-types.message:
3969 Add new test for deeply recursive types.
3971 2003-04-07 Havoc Pennington <hp@pobox.com>
3973 * bus/driver.c (bus_driver_handle_acquire_service): return an
3974 error if you try to acquire a service that starts with ':'
3976 2003-04-07 Havoc Pennington <hp@redhat.com>
3978 * doc/dbus-specification.sgml: require that base service names
3979 start with ':' and that the base service is created/deleted
3980 as first and last things a connection does on the bus
3982 * bus/dispatch.c (check_existent_service_activation): lots more
3983 work on the activation test; it doesn't fully pass yet...
3985 * test/test-service.c (main): fix so we don't memleak the
3986 connection to the message bus
3987 (filter_func): accept a message asking us to exit
3989 2003-04-06 Havoc Pennington <hp@pobox.com>
3991 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
3994 * configure.in: fixes to Qt detection from Colin Walters
3996 * doc/Makefile.am: Only remove generated docbook dirs if they
3997 exist, from Colin Walters
3999 * dbus/dbus-bus.c: change how we set well-known connections to
4000 NULL, so that it works if a single connection is stored in
4001 two well-known array slots.
4003 * test/Makefile.am: remove a lot of stuff that isn't immediately
4004 useful, it's in CVS history if we want it.
4006 * test/test-service.c: use dbus-mainloop instead of that
4009 2003-04-06 Havoc Pennington <hp@pobox.com>
4011 * dbus/Makefile.am: split lists of sources into stuff that goes in
4012 the library, util functions that go in the lib and are also used
4013 elsewhere, and util functions that are used in tests/daemon but
4014 don't go in the lib.
4016 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4017 here so it can be used in test binaries also
4019 2003-04-06 Havoc Pennington <hp@pobox.com>
4021 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4022 here in the parent process, so we can return an error if it
4023 fails. Also, move some of the code into the child so the parent
4024 is less hosed if we fail midway through.
4026 * bus/bus.c (bus_context_new): move pidfile detection further up
4027 in the function, before we start overwriting sockets and such.
4029 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4031 * configure.in: add --with-system-pid-file and --with-system-socket
4033 2003-04-06 Colin Walters <walters@verbum.org>
4035 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4037 * bus/system.conf.in: Declare a pidfile.
4039 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4040 create one (if appropriate).
4042 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4043 (struct BusConfigParser) [pidfile]: New.
4044 (element_type_to_name, merge_included, start_busconfig_child)
4045 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4046 (bus_config_parser_unref): Free it.
4047 (bus_config_parser_get_pidfile): New function.
4049 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4051 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4053 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4055 * dbus/dbus-sysdeps.h: Prototype it.
4057 2003-04-06 Havoc Pennington <hp@pobox.com>
4059 * bus/bus.c (bus_context_new): print the address in here, rather
4060 than in main(), because we need to do it before forking the daemon
4062 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4063 on the service nonexistent error
4065 * bus/driver.c (bus_driver_handle_acquire_service): set the
4066 sender on the AcquireService reply
4068 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4069 server also listen on a UNIX socket so services can connect to it.
4071 2003-04-06 Havoc Pennington <hp@pobox.com>
4073 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4074 so it detects deadlocks and also we actually init threads when
4077 2003-04-06 Havoc Pennington <hp@pobox.com>
4079 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4080 save the domain socket name, and unlink it when we disconnect the
4081 server. Means that at least when we exit normally, we won't leave
4082 a bunch of junk in /tmp
4084 * dbus/dbus-transport-unix.c
4085 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4086 memory management). (I was making a real change here but then
4089 2003-04-06 Havoc Pennington <hp@pobox.com>
4091 * bus/bus.c (bus_context_new): fix wrong handling of
4092 server_data_slot_unref() in the error case.
4094 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4095 "(condition) != 0" to _dbus_real_assert so that
4096 "_dbus_assert (pointer)" doesn't cause a warning
4098 * bus/main.c (main): accept --print-address option to print out
4099 the message bus address
4101 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4103 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4104 "tmpdir" option to unix: address on client side
4106 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4109 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4110 we can use to create sockets in the test suite.
4112 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4113 cleanly. To be used for testing.
4115 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4117 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4119 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4120 handle trying to call this when there's no servers active
4122 2003-04-05 Havoc Pennington <hp@pobox.com>
4128 2003-04-05 Havoc Pennington <hp@pobox.com>
4130 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4131 crash on startup. Need to get "try starting the daemon"
4132 in the test suite I guess. ;-)
4134 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4135 tracked the number of open connections; it's better done in
4136 application-specific code as you want it to span all servers etc.
4138 2003-04-05 Havoc Pennington <hp@pobox.com>
4140 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4141 patch from Colin Walters
4143 2003-04-05 Havoc Pennington <hp@pobox.com>
4145 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4146 reality; in fact multiple mechanisms are allowed.
4148 * dbus/dbus-internals.c (_dbus_real_assert)
4149 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4150 _dbus_assert_not_reached() into functions, so that they don't show
4151 up in basic block counts for test coverage, and don't use up as
4152 much disk space. Does mean slower execution speed though, so
4153 assumes --disable-asserts is the normal production case.
4155 2003-04-05 Havoc Pennington <hp@pobox.com>
4157 * test/Makefile.am (dist-hook): also dist *.in files
4163 2003-04-05 Havoc Pennington <hp@pobox.com>
4165 * dbus/dbus-string.c: docs warning
4167 * dbus/dbus-spawn.c: missing docs
4169 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4171 2003-04-05 Havoc Pennington <hp@pobox.com>
4173 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4176 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4177 to -1 once we've reaped the babysitter
4178 (_dbus_babysitter_handle_watch): do as much work as we can, not
4181 * bus/activation.c: add code using DBusBabysitter so that we
4182 handle it when a service fails to start up properly.
4183 (bus_activation_service_created): don't remove the activation
4184 entries as we go, just let them get removed when we free the pending
4185 activation. Unref reply messages after sending them.
4187 2003-04-05 Havoc Pennington <hp@pobox.com>
4189 * test/decode-gcov.c (main): print per-directory stats in the report
4191 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4193 2003-04-05 Havoc Pennington <hp@pobox.com>
4195 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4197 * test/decode-gcov.c: hack up a little program to suck data
4198 out of gcov files. Yes this is sort of silly.
4200 * configure.in: define something in config.h and do an
4201 AM_CONDITIONAL when gcov is enabled
4203 2003-04-04 Havoc Pennington <hp@redhat.com>
4205 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4206 return a "babysitter" object that is used to monitor the status of
4207 the spawned process and reap it when required.
4209 * test/test-segfault.c, test/test-exit.c,
4210 test/test-sleep-forever.c: binaries that do various lame things,
4211 used in the test suite.
4213 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4215 2003-04-03 Havoc Pennington <hp@pobox.com>
4217 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4218 in preparation for modifying it, dbus-sysdeps is getting
4221 2003-04-03 Havoc Pennington <hp@redhat.com>
4223 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4226 * bus/*.[hc]: adapt to mainloop change
4228 2003-04-03 Havoc Pennington <hp@redhat.com>
4230 * bus/activation.c (load_directory): fix up memleaks
4231 (bus_activation_entry_free): free the entry
4233 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4234 we get one from the message bus; fix memleaks.
4236 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4238 2003-04-03 Havoc Pennington <hp@pobox.com>
4240 * bus/config-parser.c (bus_config_parser_unref): free
4241 list of mechanisms, bug discovered by test suite enhancements
4242 (putting system.conf and session.conf into suite)
4244 * test/Makefile.am, test/test-service.c: add placeholder for a
4245 test service that we'll activate as part of test suite. Doesn't
4248 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4249 setting NULL value, and use system malloc not dbus_malloc()
4250 when we have unavoidable memleakage.
4252 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4253 didn't work, and support DBUS_BUS_ACTIVATION.
4255 * bus/activation.c (child_setup): pass our well-known bus type to
4258 * bus/config-parser.c: support <type> to specify well-known type
4260 * doc/dbus-specification.sgml: document the env variables to
4261 locate well-known buses and find service activator
4263 2003-04-02 Havoc Pennington <hp@redhat.com>
4265 * test/Makefile.am (all-local): add a rule to copy tests to
4266 builddir, so we can have generated tests. Use this to remove the
4267 silly hack for testing system.conf and session.conf. Will use this
4268 shortly to generate .service files pointing to test binaries.
4270 2003-04-02 Havoc Pennington <hp@redhat.com>
4272 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4273 current alloc and needed new length, not max of the doubled
4274 allocation and needed new length. Also, when building tests,
4275 don't do the double-allocation stuff, just realloc every time.
4277 2003-04-02 Havoc Pennington <hp@redhat.com>
4279 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4281 (_dbus_string_get_dirname): new
4282 (_dbus_sysdeps_test): new
4283 (_dbus_directory_open): include dirnames in error messages
4285 * bus/config-parser.c: interpret <include> and <includedir> and
4286 <servicedir> relative to config file location if the given
4287 filename is not absolute.
4289 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4291 2003-04-02 Havoc Pennington <hp@redhat.com>
4293 * bus/connection.c (bus_transaction_send_error_reply): set sender
4294 service for the error, and unref the reply on success
4296 * bus/activation.c: convert to use BusTransaction so OOM can be
4298 (bus_activation_service_created): set sender of the message
4300 2003-04-01 Havoc Pennington <hp@redhat.com>
4302 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4303 <includedir> (at least mostly)
4305 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4306 first, then the user ID
4308 2003-04-01 Havoc Pennington <hp@pobox.com>
4310 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4313 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4315 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4317 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4318 socket 0777, and unlink any existing socket.
4320 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4321 the configuration file so specifies; set up auth mechanism
4324 * bus/config-parser.c (bus_config_parser_content): add support
4325 for <fork> option and fill in code for <auth>
4327 * bus/system.conf.in: add <fork/> to default configuration,
4328 and limit auth mechanisms to EXTERNAL
4330 * doc/config-file.txt (Elements): add <fork>
4332 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4333 (_dbus_change_identity): new function
4335 2003-03-31 Havoc Pennington <hp@redhat.com>
4337 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4338 (_dbus_listen_unix_socket): fix off-by-one error in null
4339 termination spotted by Nalin
4341 2003-03-31 Havoc Pennington <hp@redhat.com>
4343 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4344 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4345 having a real home directory available.
4347 2003-03-31 Havoc Pennington <hp@redhat.com>
4349 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4351 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4353 * configure.in: add support for specifying a style of init script
4356 2003-03-31 Havoc Pennington <hp@redhat.com>
4358 Fix some annoying DBusString API and fix all affected code.
4360 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4362 (_dbus_string_get_data): change to return string instead of using
4364 (_dbus_string_get_const_data): ditto
4365 (_dbus_string_get_data_len): ditto
4366 (_dbus_string_get_const_data_len): ditto
4368 2003-03-31 Havoc Pennington <hp@redhat.com>
4370 * bus/main.c (main): fix up the command line arguments to be nicer
4372 2003-03-31 Havoc Pennington <hp@redhat.com>
4374 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4375 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4376 final location that lands in the config file
4378 * bus/config-loader-expat.c (bus_config_load): fix type of
4381 * doc/TODO: remove TODO item for dbus_bus_get()
4383 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4385 2003-03-31 Havoc Pennington <hp@pobox.com>
4387 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4388 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4389 argument since they are always client side
4391 * dbus/dbus-server.c (dbus_server_get_address): new function
4393 * bus/main.c (main): take the configuration file as an argument.
4395 * test/data/valid-config-files/debug-allow-all.conf: new file to
4396 use with dispatch.c tests for example
4398 * bus/test-main.c (main): require test data dir
4400 * bus/bus.c (bus_context_new): change this to take a
4401 configuration file name as argument
4403 * doc/config-file.txt (Elements): add <servicedir>
4405 * bus/system.conf, bus/session.conf: new files
4407 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4408 well-known socket if none set
4410 * configure.in: create system.conf and session.conf
4412 2003-03-30 Havoc Pennington <hp@pobox.com>
4414 * bus/config-parser.c: hacking
4416 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4417 to shut down, since it could cause weirdness with the DBusList
4420 * dbus/dbus-list.c (_dbus_list_test): add tests for the
4421 link-oriented stack routines
4422 (alloc_link): free the mempool if the first alloc from it fails
4424 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4426 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4428 (_dbus_string_skip_white): new
4430 * doc/config-file.txt (Elements): add <includedir>
4432 2003-03-28 Havoc Pennington <hp@pobox.com>
4434 * dbus/dbus-string.c (_dbus_string_copy_data_len)
4435 (_dbus_string_copy_data): new functions
4437 2003-03-28 Anders Carlsson <andersca@codefactory.se>
4439 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4443 * dbus/dbus-memory.c:
4446 2003-03-28 Havoc Pennington <hp@pobox.com>
4448 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4449 I think it may have just been superstition. Not sure.
4451 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4452 failures that were not being handled.
4454 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4456 * dbus/dbus-memory.c: add ability to set number of mallocs in a
4457 row that will fail on out-of-memory.
4459 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4460 function for testing out-of-memory handling.
4462 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4463 allocation functions, they do map exactly to the expat ones.
4465 2003-03-27 Havoc Pennington <hp@redhat.com>
4467 * bus/config-loader-libxml.c (bus_config_load): add another error
4470 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4473 Add note about automatic service activation.
4475 * doc/dbus-specification.sgml:
4476 Rename the specification and clarify a few things.
4478 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4481 * dbus/dbus-address.c:
4483 * dbus/dbus-marshal.c:
4484 * dbus/dbus-server-debug-pipe.c:
4485 * dbus/dbus-transport-unix.c:
4486 Fix documentation warnings.
4488 2003-03-26 Havoc Pennington <hp@pobox.com>
4490 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4491 after every test so it's quick and easy to see which leaked, and
4492 so we test multiple dbus_shutdown() calls
4494 * configure.in: change configure.in XML stuff to also support
4497 * config-loader-libxml.c: some hacking
4499 * config-loader-expat.c: some hacking
4501 * config-parser.c: some hacking, plus tests
4503 2003-03-25 Havoc Pennington <hp@redhat.com>
4505 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4507 * configure.in: add --with-xml option to specify XML library,
4508 right now only libxml is supported.
4510 * bus/config-loader-libxml.c, config-parser.c: sync some minor
4511 nonworking code between home and work, still just stubs
4513 2003-03-24 Havoc Pennington <hp@redhat.com>
4515 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4518 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4519 NULL argument for "message" if the error is a well-known one,
4520 fill in a generic message in this case.
4522 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4525 * bus/test.c (bus_test_flush_bus): add
4527 * bus/policy.c (bus_policy_test): test code stub
4529 2003-03-24 Havoc Pennington <hp@pobox.com>
4531 * bus/connection.c (bus_connections_setup_connection): set up
4532 the "can this user connect" function, but it always returns
4533 TRUE until we have a config file parser so we can have a config
4534 file that allows connections.
4536 2003-03-23 Havoc Pennington <hp@pobox.com>
4538 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4539 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4540 the mutex, so we can check for proper memory management
4543 * dbus/dbus-dataslot.c: remove the mutex from
4544 DBusDataSlotAllocator and lock it manually when using it,
4545 to simplify fitting it into the global slots framework.
4547 * dbus/dbus-threads.c (init_static_locks): rework how we're
4548 handling global locks so they are easily shut down.
4550 * bus/policy.c (bus_policy_append_rule): fix
4552 * bus/test-main.c (main): check for memleaks
4554 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4555 test suite check for memleaks
4557 * dbus/dbus-memory.c: add support in test mode for tracking
4558 number of outstanding blocks
4560 2003-03-23 Havoc Pennington <hp@pobox.com>
4562 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4565 * dbus/dbus-hash.h: add ULONG hash keys
4567 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4568 (_dbus_get_group_id): new function
4570 2003-03-20 Havoc Pennington <hp@redhat.com>
4572 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4574 (dbus_connection_get_unix_user): new function
4576 2003-03-20 Havoc Pennington <hp@pobox.com>
4578 * bus/connection.c (bus_connection_send_oom_error): assert that
4579 message has a sender
4580 (connection_execute_transaction): ditto
4581 (bus_connection_preallocate_oom_error): fix to set the sender, and
4582 set recipient to the destination service, not the bus driver
4584 * bus/policy.c: hacking
4586 * dbus/dbus-message.c (dbus_message_service_is): new function
4587 (dbus_message_sender_is): new
4589 2003-03-19 Havoc Pennington <hp@redhat.com>
4591 * bus/policy.c: start sketching code for policy restrictions on
4592 what connections can do.
4594 2003-03-18 Havoc Pennington <hp@redhat.com>
4596 * doc/TODO: some notes on high-level todo items. Little nitpick
4597 stuff is all in @todo, so no need to add it here.
4599 * doc/config-file.txt: some notes on how config file might look
4601 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4607 2003-03-17 Havoc Pennington <hp@redhat.com>
4609 * dbus/dbus-internals.h: add gcc attributes so that
4610 our printf-style functions warn on bad arguments to
4613 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4616 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4619 2003-03-17 Havoc Pennington <hp@redhat.com>
4621 * bus/test-main.c (main): make it print something as it runs
4622 so make check doesn't look stuck
4624 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
4625 from CVS, now obsolete
4627 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4629 * bus/dispatch.c: (bus_dispatch):
4630 Refetch the service name since it may have been reallocated
4631 when dbus_message_set_sender was called.
4633 * dbus/dbus-sysdeps.c: (_dbus_accept):
4634 Add address and address length variables and use them to stop
4635 valgrind from complaining.
4637 2003-03-17 Havoc Pennington <hp@pobox.com>
4639 All tests pass, no memleaks, no valgrind complaints.
4641 * bus/test.c: refcount handler_slot
4643 * bus/connection.c (bus_connections_new): refcount
4644 connection_data_slot
4646 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
4647 bytes so that auth scripts pass.
4649 * bus/dispatch.c: init message_handler_slot so it gets allocated
4652 * bus/dispatch.c (message_handler_slot_ref): fix memleak
4654 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
4655 dealloc server_pipe_hash when no longer used for benefit of
4658 * dbus/dbus-auth.c (process_command): memleak fix
4660 * bus/dispatch.c (check_hello_message): memleak fix
4662 2003-03-16 Havoc Pennington <hp@pobox.com>
4664 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
4666 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4668 * bus/activation.c (bus_activation_activate_service): Append
4669 the pending activation entry to the list of pending activations.
4671 2003-03-16 Havoc Pennington <hp@pobox.com>
4673 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
4676 * dbus/dbus-address.c (create_entry): fix OOM handling when
4677 failing to alloc entry->method
4679 2003-03-16 Havoc Pennington <hp@pobox.com>
4681 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
4684 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4685 add some missing dbus_set_result
4687 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
4688 alloc the DBusMessageHandler
4690 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
4691 the transport here, since we call this from the finalizer; it
4692 resulted in a double-finalize.
4694 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
4695 where we tried to use transport->connection that was NULL,
4696 happened when transport was disconnected early on due to OOM
4698 * bus/*.c: adapt to handle OOM for watches/timeouts
4700 * dbus/dbus-transport-unix.c: port to handle OOM during
4703 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
4704 reference to unused bytes instead of a copy
4706 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
4709 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
4712 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
4715 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4717 * doc/dbus-specification.sgml:
4718 Document reply message for ActivateService.
4720 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4722 * bus/activation.c: (bus_pending_activation_entry_free),
4723 (bus_pending_activation_free), (bus_activation_new),
4724 (bus_activation_unref), (bus_activation_service_created),
4725 (bus_activation_activate_service):
4727 * bus/bus.c: (bus_context_new):
4728 * bus/desktop-file.c: (new_section):
4729 * bus/driver.c: (bus_driver_send_service_deleted),
4730 (bus_driver_handle_activate_service):
4731 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
4733 * dbus/dbus-connection.c:
4734 (dbus_connection_send_with_reply_and_block):
4735 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4736 * dbus/dbus-protocol.h:
4737 Make activation work better. Now pending activations will be queued
4738 and the daemon won't try to activate services that are already registered.
4740 2003-03-16 Havoc Pennington <hp@pobox.com>
4742 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
4745 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
4746 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
4748 2003-03-16 Havoc Pennington <hp@pobox.com>
4750 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
4751 this. always run the test suite before commit...
4753 * bus/*: adapt to DBusConnection API changes
4755 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
4756 requires renaming stuff to avoid dbus_connection_dispatch name
4759 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
4762 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4763 separate from _dbus_message_loader_return_buffer()
4765 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
4766 this, because it's now always broken to use; the number of
4767 messages in queue vs. the number still buffered by the message
4768 loader is undefined/meaningless. Should use
4769 dbus_connection_get_dispatch_state().
4770 (dbus_connection_dispatch): rename from
4771 dbus_connection_dispatch_message
4773 2003-03-16 Havoc Pennington <hp@pobox.com>
4775 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
4778 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4780 * dbus/dbus-connection.c:
4781 (dbus_connection_send_with_reply_and_block):
4782 Decrease connection->n_incoming when removing an entry
4784 * dbus/dbus-dict.c: (dbus_dict_entry_free),
4785 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4786 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4787 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
4788 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
4789 (dbus_dict_get_byte_array):
4790 Handle NULL arrays and strings. Also add support for byte arrays.
4792 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
4793 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
4794 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4795 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4796 (_dbus_demarshal_dict), (demarshal_and_validate_len),
4797 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
4798 * dbus/dbus-marshal.h:
4799 Add support for marshalling and demarshalling empty arrays and strings.
4801 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4802 (dbus_message_append_string_array),
4803 (dbus_message_iter_get_boolean),
4804 (dbus_message_iter_get_boolean_array),
4805 (dbus_message_iter_get_int32_array),
4806 (dbus_message_iter_get_uint32_array),
4807 (dbus_message_iter_get_double_array),
4808 (dbus_message_iter_get_byte_array),
4809 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
4810 (check_message_handling):
4811 Add support for getting empty arrays and dicts.
4813 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
4814 Don't do any validation at all for now, that's better than just checking
4817 * test/data/valid-messages/emptiness.message:
4818 New test message with lots of empty arrays.
4820 2003-03-16 Havoc Pennington <hp@pobox.com>
4822 * dbus/dbus-connection.c
4823 (_dbus_connection_queue_received_message_link): new function that
4824 can't fail due to OOM
4826 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
4827 new function pops a message together with a list link
4830 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
4831 message queuing functions to avoid needing to alloc memory
4833 2003-03-16 Havoc Pennington <hp@pobox.com>
4835 Oops - test code was only testing failure of around 30 of the
4836 mallocs in the test path, but it turns out there are 500+
4837 mallocs. I believe this was due to misguided linking setup such
4838 that there was one copy of dbus_malloc etc. in the daemon and one
4839 in the shared lib, and only daemon mallocs were tested. In any
4840 case, the test case now tests all 500+ mallocs, and doesn't pass
4841 yet, though there are lots of fixes in this patch.
4843 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4844 this so that it doesn't need to allocate memory, since it
4845 has no way of indicating failure due to OOM (and would be
4846 annoying if it did).
4848 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
4850 * bus/Makefile.am: rearrange to create two self-contained
4851 libraries, to avoid having libraries with overlapping symbols.
4852 that was resulting in weirdness, e.g. I'm pretty sure there
4853 were two copies of global static variables.
4855 * dbus/dbus-internals.c: move the malloc debug stuff to
4858 * dbus/dbus-list.c (free_link): free list mempool if it becomes
4861 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
4863 * dbus/dbus-address.c (dbus_parse_address): free list nodes
4866 * bus/dispatch.c (bus_dispatch_add_connection): free
4867 message_handler_slot when no longer using it, so
4868 memory leak checkers are happy for the test suite.
4870 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
4872 * bus/bus.c (new_connection_callback): disconnect in here if
4873 bus_connections_setup_connection fails.
4875 * bus/connection.c (bus_connections_unref): fix to free the
4877 (bus_connections_setup_connection): if this fails, don't
4878 disconnect the connection, just be sure there are no side
4881 * dbus/dbus-string.c (undo_alignment): unbreak this
4883 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
4885 (_dbus_auth_new): fix the order in which we free strings
4888 * bus/connection.c (bus_connection_disconnected): fix to
4889 not send ServiceDeleted multiple times in case of memory
4892 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
4893 get the base service name
4894 (dbus_bus_register_client): don't return base service name,
4895 instead store it on the DBusConnection and have an accessor
4897 (dbus_bus_register_client): rename dbus_bus_register()
4899 * bus/dispatch.c (check_hello_message): verify that other
4900 connections on the bus also got the correct results, not
4901 just the one sending hello
4903 2003-03-15 Havoc Pennington <hp@pobox.com>
4905 Make it pass the Hello handling test including all OOM codepaths.
4906 Now to do other messages...
4908 * bus/services.c (bus_service_remove_owner): fix crash when
4909 removing owner from an empty list of owners
4910 (bus_registry_ensure): don't leave service in the list of
4911 a connection's owned services if we fail to put the service
4914 * bus/connection.c (bus_connection_preallocate_oom_error): set
4915 error flag on the OOM error.
4917 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4918 handle _dbus_transport_set_connection failure
4920 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
4921 to create watches up front and simply enable/disable them as
4923 (unix_connection_set): this can now fail on OOM
4925 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
4926 of enabling/disabling a watch or timeout.
4928 * bus/loop.c (bus_loop_iterate): don't touch disabled
4931 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
4933 2003-03-15 Havoc Pennington <hp@pobox.com>
4935 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
4936 write useful test code, after all that futzing around ;-)
4938 Test does not yet pass because we can't handle OOM in
4939 _dbus_transport_messages_pending (basically,
4940 dbus_connection_preallocate_send() does not prealloc the write
4941 watch). To fix this, I think we need to add new stuff to
4942 set_watch_functions, namely a SetEnabled function so we can alloc
4943 the watch earlier, then enable it later.
4945 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
4946 dbus-memory.c to the convenience lib
4948 * bus/test.c: rename some static functions to keep them clearly
4949 distinct from stuff in connection.c. Handle client disconnection.
4951 2003-03-14 Havoc Pennington <hp@pobox.com>
4953 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
4954 transport, tests more of the real codepath. Set up clients
4955 with bus_setup_debug_client.
4957 * bus/test.c (bus_setup_debug_client): function to set up debug
4958 "clients" on the main loop
4960 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
4963 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
4966 * dbus/dbus-server-debug.c: support a debug server based on pipes
4968 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
4969 (_dbus_close): new function
4971 * configure.in: check for socketpair
4973 2003-03-14 Havoc Pennington <hp@redhat.com>
4975 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
4978 * dbus/dbus-transport-debug.c: rework this a good bit to be
4979 less complicated. hopefully still works.
4981 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
4984 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
4987 * dbus/dbus-message.c (dbus_message_copy): rename from
4988 dbus_message_new_from_message, fix it up to copy
4989 all the message fields, add test case
4991 * bus/dispatch.c (bus_dispatch_test): add some more test code,
4992 not quite passing yet
4994 2003-03-14 Havoc Pennington <hp@pobox.com>
4996 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
4997 until no work remains" in test code. (the large diff here
4998 is just code movement, no actual changes)
5000 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5001 1, no point waiting around for test code.
5002 (_dbus_server_debug_accept_transport): unref the timeout
5003 after adding it (right?)
5005 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5007 2003-03-13 Havoc Pennington <hp@redhat.com>
5009 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5012 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5015 * dbus/dbus-connection.h: Make AddWatchFunction and
5016 AddTimeoutFunction return a bool so they can fail on out-of-memory
5018 * bus/bus.c (bus_context_new): set up timeout handlers
5020 * bus/connection.c (bus_connections_setup_connection): set up
5023 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5026 * bus/bus.c (bus_context_new): adapt to changes
5028 * bus/connection.c: adapt to changes
5030 * test/watch.c: adapt to DBusWatch changes
5032 * bus/dispatch.c (bus_dispatch_test): started adding this but
5035 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5037 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5039 2003-03-13 Havoc Pennington <hp@pobox.com>
5041 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5042 set up a test framework as for the library
5044 2003-03-12 Havoc Pennington <hp@pobox.com>
5046 Throughout: purge global variables, introduce BusActivation,
5047 BusConnections, BusRegistry, etc. objects instead.
5049 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5052 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5053 going to redo this a bit differently I think
5055 2003-03-12 Havoc Pennington <hp@redhat.com>
5057 Mega-patch that gets the message bus daemon initially handling
5058 out-of-memory. Work still needed. Also lots of random
5059 moving stuff to DBusError instead of ResultCode.
5061 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5063 * dbus/dbus-connection.c
5064 (dbus_connection_send_with_reply_and_block): use DBusError
5066 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5069 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5070 code here, as the only failure possible is OOM.
5072 * bus/connection.c (bus_connection_disconnect):
5073 rename bus_connection_disconnected as it's a notification only
5075 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5076 "name" on get_args failure, should be done by get_args;
5077 don't disconnect client for bad args, just return an error.
5078 (bus_driver_handle_service_exists): ditto
5080 * bus/services.c (bus_services_list): NULL-terminate returned array
5082 * bus/driver.c (bus_driver_send_service_lost)
5083 (bus_driver_send_service_acquired): send messages from driver to a
5084 specific client to the client's unique name, not to the broadcast
5087 * dbus/dbus-message.c (decode_header_data): reject messages that
5088 contain no name field
5089 (_dbus_message_get_client_serial): rename to
5090 dbus_message_get_serial and make public
5091 (_dbus_message_set_serial): rename from set_client_serial
5092 (_dbus_message_set_reply_serial): make public
5093 (_dbus_message_get_reply_serial): make public
5095 * bus/connection.c (bus_connection_foreach): allow stopping
5096 iteration by returning FALSE from foreach function.
5098 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5099 (dbus_connection_free_preallocated_send)
5100 (dbus_connection_preallocate_send): new API for sending a message
5101 without possibility of malloc failure.
5102 (dbus_connection_send_message): rename to just
5103 dbus_connection_send (and same for whole function family)
5105 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5107 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5109 * bus/activation.c: handle/return errors
5111 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5113 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5114 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5115 (_dbus_result_from_errno): move to this file
5117 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5119 * dbus/dbus-marshal.c:
5120 (_dbus_marshal_set_string):
5121 Take a length argument so we can marshal the correct string
5124 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5125 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5126 (_dbus_marshal_test):
5127 * dbus/dbus-marshal.h:
5128 Add support for marshalling and demarshalling dicts.
5130 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5131 Add support for TYPE DICT.
5133 * dbus/dbus-message.c: (set_string_field):
5134 Adjust header padding.
5136 (dbus_message_append_args_valist), (dbus_message_append_dict),
5137 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5138 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5139 (check_message_handling), (check_have_valid_message):
5140 * dbus/dbus-message.h:
5141 Add functions for setting and getting dicts.
5143 * dbus/dbus-protocol.h:
5149 * doc/dbus-specification.sgml:
5150 Add information about how dicts are marshalled.
5152 * test/data/invalid-messages/dict-with-nil-value.message:
5153 * test/data/invalid-messages/too-short-dict.message:
5154 * test/data/valid-messages/dict-simple.message:
5155 * test/data/valid-messages/dict.message:
5156 Add sample messages containing dicts.
5158 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5160 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5162 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5165 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5166 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5167 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5168 (dbus_dict_set_double), (dbus_dict_set_string),
5169 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5170 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5171 (dbus_dict_set_string_array), (_dbus_dict_test):
5173 Fix according to comments from Havoc.
5175 2003-03-06 Michael Meeks <michael@server.home>
5177 * configure.in: if we don't have kde-config, disable have_qt.
5179 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5184 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5185 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5186 (dbus_dict_remove), (dbus_dict_get_value_type),
5187 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5188 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5189 (dbus_dict_put_double), (dbus_dict_put_string),
5190 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5191 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5192 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5193 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5194 (dbus_dict_get_double), (dbus_dict_get_string),
5195 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5196 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5197 (dbus_dict_get_string_array), (_dbus_dict_test):
5199 Add DBusDict implementation
5201 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5205 2003-03-04 Havoc Pennington <hp@pobox.com>
5207 * test/data/auth/*: adapt to changes
5209 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5210 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5213 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5214 more stuff from being in a context name, to make the protocol
5215 simpler to deal with
5217 * dbus/dbus-errors.c (dbus_error_has_name): new function
5218 (dbus_error_is_set): new function
5220 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5221 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5223 * dbus/dbus-connection.c (dbus_connection_flush): also read
5224 messages during a flush operation
5226 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5228 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5230 * configure.in: Check for gethostbyname on Solaris.
5232 * dbus/dbus-transport.c: (_dbus_transport_open):
5233 Remove duplicate "tcp" entry.
5235 * doc/dbus-specification.sgml:
5236 Clarify some things.
5238 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5240 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5241 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5242 (_dbus_keyring_test):
5243 * dbus/dbus-md5.c: (_dbus_md5_compute):
5244 * dbus/dbus-sha.c: (_dbus_sha_compute):
5247 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5249 * README: Add some things.
5251 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5253 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5254 after case DBUS_TYPE_BOOELAN.
5256 2003-03-02 Havoc Pennington <hp@pobox.com>
5258 * test/break-loader.c (randomly_set_extreme_ints): add test that
5259 sets really huge and small integers
5261 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5262 that length of boolean array fits in the string, and that
5263 string has room for boolean value in single-bool case.
5265 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5266 optional value to "ALIGN" command which is what to fill the
5269 * test/data/valid-messages/no-padding.message: add regression
5270 test for the message padding problem
5272 2003-03-02 Havoc Pennington <hp@pobox.com>
5274 * dbus/dbus-message.c (decode_header_data): fix to always init
5275 message_padding, from Benjamin Dauvergne
5277 2003-03-02 Havoc Pennington <hp@pobox.com>
5283 2003-03-01 Joe Shaw <joe@assbarn.com>
5285 * configure.in: Check for "struct cmsgcred" and try to access its
5286 members for BSD-like unices.
5288 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5289 _dbus_read_credentials_unix_socket().
5290 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5291 read() for reading the credential byte off the unix socket. Use
5292 struct cmsgcred on systems that support it.
5294 2003-02-27 Alexander Larsson <alexl@redhat.com>
5298 Make gthreads-2.0 dependency optional. Don't build thread test if
5301 2003-02-27 Havoc Pennington <hp@pobox.com>
5303 * dbus/dbus-connection.c
5304 (dbus_connection_send_message_with_reply_and_block): fix doh!
5305 doh! doh! bug that resulted in never removing a reply from the
5306 queue, no wonder we called get_reply_serial so much ;-)
5308 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5309 and client serial instead of demarshaling them every time
5311 2003-02-27 Havoc Pennington <hp@pobox.com>
5313 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5314 more inlined, using dbus-string-private.h, speeds things up
5317 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5318 when freeing the string
5319 (_dbus_string_steal_data): fix for align offset
5320 (undo_alignment): new function
5322 2003-02-26 Havoc Pennington <hp@redhat.com>
5324 All kinds of audit fixes from Owen, plus initial attempt to
5325 handle unaligned memory returned from malloc.
5327 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5328 leave room for align_offset and nul byte
5329 (fixup_alignment): function to track an align_offset and
5330 ensure real->str is aligned
5331 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5332 to allow a nul byte plus align offset
5333 (_dbus_string_lock): fix overflow issue
5334 (_dbus_string_init_const_len): add assertions on sanity of len,
5335 assign allocated to be ALLOCATION_PADDING larger than len
5336 (set_length): fixup the overflow handling
5337 (_dbus_string_get_data_len): fix overflow in assertion
5338 (open_gap): detect overflow in size of gap to be opened
5339 (_dbus_string_lengthen): add overflow check
5340 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5341 (_dbus_string_append): add overflow check
5342 (_dbus_string_append_unichar): overflow
5343 (_dbus_string_delete): fix overflow in assertion
5344 (_dbus_string_copy_len): overflow in assertion
5345 (_dbus_string_replace_len): overflows in assertions
5346 (_dbus_string_find): change to implement in terms of
5347 _dbus_string_find_to
5348 (_dbus_string_find_to): assorted fixage
5349 (_dbus_string_equal_c_str): assert c_str != NULL,
5350 fix logic so the function works
5351 (_dbus_string_ends_with_c_str): fix overflow thingy
5352 (_dbus_string_base64_encode): overflow fix
5353 (_dbus_string_validate_ascii): overflow
5354 (_dbus_string_validate_nul): overflow
5356 2003-02-26 Havoc Pennington <hp@redhat.com>
5358 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5360 2003-02-26 Alexander Larsson <alexl@redhat.com>
5363 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5365 * dbus/dbus-connection.c:
5366 * dbus/dbus-connection.h:
5367 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5368 Add dbus_connection_set_wakeup_main_function and use it when queueing
5369 incoming and outgoing messages.
5372 * dbus/dbus-dataslot.c:
5373 Threadsafe usage of DBusDataSlotAllocator
5375 * dbus/dbus-message.c: (dbus_message_get_args_iter):
5378 * dbus/dbus-server-unix.c:
5381 * glib/dbus-gmain.c:
5382 Implement the new wakeup functions for glib.
5385 * glib/test-thread-client.c:
5386 * glib/test-thread-server.c:
5387 * glib/test-thread.h:
5388 Initial cut at some thread test code. Not really done yet.
5390 2003-02-26 Havoc Pennington <hp@pobox.com>
5392 * dbus/dbus-connection.c
5393 (dbus_connection_send_message_with_reply_and_block): fix crash
5394 where we ref'd the outgoing message instead of the returned reply
5396 * dbus/dbus-transport-unix.c (do_authentication): check read watch
5397 at the end of this function, so if we didn't need to read for
5398 authentication, we reinstall it for receiving messages
5400 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5401 a NULL sender for peer-to-peer case
5403 * dbus/dbus-transport-unix.c (check_read_watch): handle
5404 !authenticated case correctly
5406 * glib/dbus-gmain.c: add support for DBusServer
5408 * dbus/dbus-server.c: add data slot support
5410 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5411 return values and handle errors
5413 * dbus/dbus-dataslot.c: factor out the data slot stuff from
5416 * Doxyfile.in (INPUT): add glib subdir
5418 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5419 setup_with_g_main instead of hookup_with_g_main; write docs
5421 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5423 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5424 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5425 * dbus/dbus-message.c: (dbus_message_append_boolean),
5426 (dbus_message_append_boolean_array),
5427 (dbus_message_get_args_valist), (_dbus_message_test):
5428 * dbus/dbus-message.h:
5429 * doc/dbus-specification.sgml:
5430 Various fixes as pointed out by Havoc.
5432 * test/data/invalid-messages/bad-boolean-array.message:
5433 * test/data/invalid-messages/bad-boolean.message:
5434 Add invalid boolean value test cases.
5436 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5438 * dbus/dbus-internals.c: (_dbus_type_to_string):
5439 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5440 (_dbus_marshal_validate_arg):
5441 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5442 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5443 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5444 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5445 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5446 (dbus_message_iter_get_double),
5447 (dbus_message_iter_get_boolean_array), (message_iter_test):
5448 * dbus/dbus-message.h:
5449 * dbus/dbus-protocol.h:
5450 * doc/dbus-specification.sgml:
5451 * test/data/valid-messages/lots-of-arguments.message:
5452 Add support for boolean and boolean array types.
5454 2003-02-23 Havoc Pennington <hp@pobox.com>
5456 * dbus/dbus-keyring.c: finish most of this implementation and
5459 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5460 these barf if the error isn't cleared to NULL
5462 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5463 (_dbus_create_directory): new function
5465 * dbus/dbus-errors.c (dbus_set_error): fix warning
5467 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5468 (_dbus_string_hex_decode): new function
5469 (test_hex_roundtrip): test code
5471 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5473 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5475 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5476 the save-to-temp/rename trick to atomically write the new file
5477 (_dbus_string_parse_uint): new function
5479 2003-02-22 Havoc Pennington <hp@pobox.com>
5481 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5483 2003-02-22 Havoc Pennington <hp@pobox.com>
5485 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5486 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5488 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5490 * dbus/test/data/sha-1: add US government test suite for SHA-1
5492 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5494 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5495 Make string arrays NULL-terminated.
5497 * dbus/dbus-memory.c: (dbus_free_string_array):
5498 * dbus/dbus-memory.h:
5499 New function for freeing NULL-terminated string arrays.
5501 * dbus/dbus-message-builder.c: (append_quoted_string),
5502 (_dbus_message_data_load):
5503 Add support for array types.
5505 * dbus/dbus-message.c: (check_message_handling):
5506 Add more types as test cases.
5508 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5509 (_dbus_string_parse_double):
5510 Add the start offset to the end offset.
5512 * test/data/valid-messages/lots-of-arguments.message:
5513 New test message with lots of arguments.
5515 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5517 * dbus/dbus-message.c: (dbus_message_append_nil),
5518 (dbus_message_append_int32), (dbus_message_append_uint32),
5519 (dbus_message_append_double), (dbus_message_append_string),
5520 (dbus_message_append_int32_array),
5521 (dbus_message_append_uint32_array),
5522 (dbus_message_append_double_array),
5523 (dbus_message_append_byte_array),
5524 (dbus_message_append_string_array):
5525 Fix all out-of-memory handling in these functions.
5527 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5529 * dbus/dbus-message.c: (dbus_message_append_nil):
5532 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5534 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5535 (dbus_message_append_nil), (dbus_message_append_int32_array),
5536 (dbus_message_append_uint32_array),
5537 (dbus_message_append_double_array),
5538 (dbus_message_append_byte_array),
5539 (dbus_message_append_string_array), (dbus_message_get_args_valist),
5540 (dbus_message_iter_get_int32_array),
5541 (dbus_message_iter_get_uint32_array),
5542 (dbus_message_iter_get_double_array),
5543 (dbus_message_iter_get_byte_array),
5544 (dbus_message_iter_get_string_array):
5546 * dbus/dbus-message.h:
5547 Add functions for appending and getting arrays.
5549 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5551 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5552 element size at least 8 bytes, fixes mempool tests on
5555 2003-02-20 Alexander Larsson <alexl@redhat.com>
5557 * dbus/dbus-transport-unix.c (unix_do_iteration):
5558 Unlock the connection mutex during a blocking select call.
5559 Add todo about how we need a way to wake up the select.
5561 * dbus/dbus-connection-internal.h:
5562 * dbus/dbus-connection.c:
5563 Add _dbus_connection_lock and _dbus_connection_unlock.
5565 2003-02-19 Havoc Pennington <hp@pobox.com>
5567 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5568 Doxyfile.in, not Doxyfile
5570 * dbus/dbus-keyring.c: do some hacking on this
5572 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5574 * dbus/dbus-errors.c (dbus_set_error_const): do not call
5576 (dbus_set_error): remove dbus_error_init, check for message ==
5577 NULL *before* we sprintf into it, and add @todo about including
5578 system headers in this file
5580 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5582 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5584 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5585 get various bits of user information based on either username
5587 (_dbus_homedir_from_username): new function
5589 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5592 Add check for nonposix getpwnam_r
5594 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5595 Align the pool element size to a sizeof (void *) boundary.
5597 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5598 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5599 General Solaris fixes.
5601 * test/data/valid-messages/simplest-manual.message:
5602 Explicitly state that we want little-endian packing.
5604 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5606 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5608 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5609 Added to create a transport connecting using a tcp/ip socket.
5611 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5612 to a tcp socket at given host and port.
5613 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5616 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5618 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5619 Added to create a server listening on a TCP/IP socket.
5621 2003-02-19 Havoc Pennington <hp@pobox.com>
5623 Throughout: mop up all the Doxygen warnings and undocumented
5626 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
5627 to search any paths.
5629 * dbus/dbus-threads.c: move global mutex initializers to
5630 dbus-internals.h, multiple prototypes was confusing doxygen
5631 besides being kind of ugly
5633 * Doxyfile (PREDEFINED): have Doxygen define
5634 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
5635 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
5636 (do not abuse the feature! it's for stuff like the autogenerated
5637 macros in dbus-md5.c, not just for things you don't feel like
5640 2003-02-18 Havoc Pennington <hp@pobox.com>
5642 * dbus/dbus-string.c (_dbus_string_zero): new function
5644 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
5645 wrap it in some dbus-friendly API
5647 * dbus/dbus-types.h: add 16-bit types
5649 2003-02-18 Joe Shaw <joe@assbarn.com>
5651 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
5652 credentials from our currently running process.
5653 (get_word): Fix a buglet where we were copying the entire length
5654 instead of relative to our position.
5656 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
5657 keys on the stack... it's 640k of data.
5659 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
5660 read the credentials byte off the socket, even if we don't have
5662 (_dbus_poll): Implement poll() using select() for systems which
5665 * glib/test-dbus-glib.c (main): Print out an error if no
5666 parameters are given.
5668 * test/data/auth/fallback.auth-script: Added. Tests that a client
5669 can fallback to a secondary auth mechanism if the first fails.
5671 2003-02-18 Havoc Pennington <hp@pobox.com>
5675 2003-02-17 Havoc Pennington <hp@pobox.com>
5677 * doc/dbus-specification.sgml: lots of cosmetic
5678 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
5679 env variable to DBUS_BUS_ADDRESS, s/client/application/,
5680 s/server/bus/ (except in authentication section). Add a section
5681 "Message Bus Message Routing"
5683 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
5689 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5691 * doc/dbus-specification.sgml:
5692 Specification updates.
5694 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5696 * bus/activation.c: (bus_activation_init), (child_setup),
5697 (bus_activation_activate_service):
5699 * bus/main.c: (main):
5700 Set DBUS_ADDRESS environment variable.
5702 * dbus/dbus-errors.c: (dbus_set_error):
5703 Don't use va_copy since that's a C99 feature.
5705 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
5706 (_dbus_spawn_async):
5707 * dbus/dbus-sysdeps.h:
5708 Add child_setup_func to _dbus_spawn_async.
5710 * doc/dbus-specification.sgml:
5711 Update specification.
5713 * test/spawn-test.c: (setup_func), (main):
5716 2003-02-17 Alexander Larsson <alexl@redhat.com>
5718 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
5721 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5725 * doc/dbus-test-plan.sgml:
5726 Add test plan document.
5731 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5733 * dbus/dbus-message.c: (decode_header_data),
5734 (_dbus_message_loader_return_buffer):
5735 Set the header padding amount when loading a message.
5737 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5739 * bus/dispatch.c: (send_one_message):
5740 Only send broadcast messages to registered connections.
5742 * dbus/dbus-message.c: (dbus_message_name_is):
5743 * dbus/dbus-message.h:
5744 New convenience function.
5746 * dbus/dbus-transport-debug.c: (do_reading):
5747 Only dispatch one message per run.
5750 * test/bus-test.c: (new_connection_callback), (die),
5751 (test_hello_client1_handler), (test_hello_client2_handler),
5752 (test_hello_replies), (main):
5754 * test/bus-test-loop.[ch]:
5757 2003-02-16 Havoc Pennington <hp@pobox.com>
5759 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5760 backward conditional
5762 2003-02-16 Alexander Larsson <alexl@redhat.com>
5764 * dbus/dbus-connection.c:
5765 Implement sent_message_with_reply. (with_reply_and block is still
5767 Made dispatch_message not lose message if OOM.
5769 * dbus/dbus-errors.h:
5770 Add NoReply error (for reply timeouts).
5772 2003-02-16 Alexander Larsson <alexl@redhat.com>
5774 * dbus/dbus-hash.c (_dbus_hash_table_unref):
5775 Actually free keys and values when destroying hashtable.
5777 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5779 * dbus/dbus-auth.c: (client_try_next_mechanism):
5782 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
5783 Return TRUE if there's no thread implementation around.
5785 * glib/dbus-gmain.c: (free_source),
5786 (dbus_connection_hookup_with_g_main):
5787 Make sure to remove the GSource when the connection is finalized.
5789 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5791 * bus/dispatch.c: (bus_dispatch_message_handler):
5792 * dbus/dbus-errors.h:
5793 Return an error if someone tries to send a message to a service
5796 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5798 * bus/activation.c: (load_directory), (bus_activation_init),
5799 (bus_activation_activate_service):
5802 (bus_driver_handle_activate_service), (bus_driver_handle_message):
5803 More work on the activation handling.
5805 * dbus/dbus-errors.h:
5806 Add some error messages
5808 * dbus/dbus-message.c: (dbus_message_new_error_reply):
5809 * dbus/dbus-message.h:
5810 New function that creates an error message.
5812 * dbus/dbus-protocol.h:
5813 Add ACTIVATE_SERVER message.
5815 * dbus/dbus-server-unix.c: (unix_handle_watch),
5816 (_dbus_server_new_for_domain_socket):
5817 Call _dbus_fd_set_close_on_exec.
5819 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
5820 (_dbus_spawn_async), (_dbus_disable_sigpipe),
5821 (_dbus_fd_set_close_on_exec):
5822 * dbus/dbus-sysdeps.h:
5823 Add _dbus_fd_set_close_on exec function. Also add function that checks
5824 that all open fds are set to close-on-exec and warns otherwise.
5826 * dbus/dbus-transport-unix.c:
5827 (_dbus_transport_new_for_domain_socket):
5828 Call _dbus_fd_set_close_on_exec.
5830 2003-02-16 Havoc Pennington <hp@pobox.com>
5832 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
5833 allow people to avoid setting SIGPIPE to SIG_IGN
5834 (_dbus_connection_new_for_transport): disable SIGPIPE unless
5835 we've been asked not to
5837 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5839 * dbus/dbus-list.c: (_dbus_list_append_link),
5840 (_dbus_list_prepend_link):
5841 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
5845 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5848 * bus/activation.c: (bus_activation_entry_free),
5849 (add_desktop_file_entry), (load_directory), (bus_activation_init):
5851 * bus/main.c: (main):
5852 Add simple activation support, doesn't work yet though.
5854 2003-02-15 Zack Rusin <zack@kde.org>
5856 * qt/dbus-qthread.cpp: small casting fix
5858 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5860 * dbus/dbus-errors.c: (dbus_set_error):
5861 * dbus/dbus-errors.h:
5862 Add a few errors and make dbus_set_error void.
5864 * dbus/dbus-sysdeps.c:
5865 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
5866 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
5867 * dbus/dbus-sysdeps.h:
5868 Add _dbus_spawn_async.
5870 * test/spawn-test.c: (main):
5871 Test for _dbus_spawn_async.
5873 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5875 * dbus/dbus-internals.h:
5876 Fix build without tests.
5878 * dbus/dbus-list.c: (alloc_link):
5879 Fix a segfault when a malloc fails.
5881 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
5882 (dbus_malloc0), (dbus_realloc):
5883 Add support for malloc debugging.
5885 2003-02-15 Alexander Larsson <alexl@redhat.com>
5887 * dbus/dbus-threads.c:
5888 * dbus/dbus-threads.h:
5889 Add condvars. Remove static mutext from API.
5890 Implement static mutexes by initializing them from threads_init.
5892 * glib/dbus-gthread.c:
5893 * qt/dbus-qthread.cpp:
5894 Update with the thread api changes.
5899 Turn StaticMutex into normal mutex + init function.
5900 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
5901 _dbus_list_append_link, _dbus_list_prepend_link
5904 * dbus/dbus-sysdeps.c:
5905 * dbus/dbus-sysdeps.h:
5906 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
5907 _dbus_atomic_dec. Only slow fallback implementation at the moment.
5909 * dbus/dbus-protocol.h:
5910 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
5912 * dbus/dbus-message.c:
5913 Make ref/unref atomic.
5916 * dbus/dbus-connection-internal.h:
5917 * dbus/dbus-connection.c:
5918 * dbus/dbus-connection.h:
5920 Change _peek to _borrow,_return & _steal_borrowed.
5921 Change disconnect callback to event.
5922 Make dbus_connection_dispatch_messages reentrant.
5924 * dbus/dbus-transport.c:
5925 Don't ref the connection on calls to the transport
5928 * dbus/dbus-message-handler.c:
5931 * glib/dbus-gmain.c:
5932 Don't use peek_message anymore
5935 * test/debug-thread.c:
5936 * test/debug-thread.h:
5937 Simple thread implementation that asserts() on deadlocks in
5938 single-threaded code.
5941 (main) Call debug_threads_init.
5944 Use disconnect message instead of disconnect callback.
5948 Don't call dbus_connection_set_disconnect_function. Instead export
5949 bus_connection_disconnect.
5952 Call bus_connection_disconnect when we get a disconnected message.
5954 2003-02-15 Havoc Pennington <hp@pobox.com>
5956 * dbus/dbus-message.c (dbus_message_new): fool around with the
5959 2003-02-14 Havoc Pennington <hp@pobox.com>
5961 * dbus/dbus-mempool.c: fail if the debug functions so indicate
5963 * dbus/dbus-memory.c: fail if the debug functions indicate we
5966 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
5967 (_dbus_decrement_fail_alloc_counter): debug functions to
5968 simulate memory allocation failures
5970 2003-02-14 Havoc Pennington <hp@pobox.com>
5972 * dbus/dbus-errors.h (struct DBusError): add a word of padding
5975 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5977 * bus/driver.c: (bus_driver_handle_hello):
5979 * bus/services.c: (bus_service_lookup):
5980 Reorder message sending so we get a more sane order.
5982 * test/bus-test.c: (message_handler):
5985 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5987 * bus/driver.c: (bus_driver_send_service_deleted),
5988 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5989 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5990 (bus_driver_send_welcome_message),
5991 (bus_driver_handle_list_services),
5992 (bus_driver_handle_acquire_service),
5993 (bus_driver_handle_service_exists):
5994 * dbus/dbus-bus.c: (dbus_bus_register_client),
5995 (dbus_bus_acquire_service), (dbus_bus_service_exists):
5996 * dbus/dbus-errors.c: (dbus_result_to_string):
5997 * dbus/dbus-errors.h:
5998 * dbus/dbus-message.c: (dbus_message_append_args),
5999 (dbus_message_append_args_valist), (dbus_message_get_args),
6000 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6001 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6002 (dbus_message_iter_get_byte_array),
6003 (dbus_message_iter_get_string_array), (message_iter_test),
6004 (check_message_handling), (_dbus_message_test):
6005 * dbus/dbus-message.h:
6006 * test/bus-test.c: (main):
6007 Change fields to arguments in messages, so that they won't be
6008 confused with header fields.
6010 * glib/test-dbus-glib.c: (main):
6011 Remove append_fields from hello message.
6013 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6015 * dbus/dbus-errors.c:
6016 * dbus/dbus-message.c:
6017 * dbus/dbus-string.c:
6018 Documentation fixes.
6020 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6022 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6024 Implement support for timeouts in dbus-glib.
6026 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6028 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6029 * dbus/dbus-message.c: (process_test_subdir):
6030 * test/break-loader.c: (find_breaks_based_on):
6031 Plug some memory leaks.
6033 2003-02-13 Richard Hult <rhult@codefactory.se>
6035 * bus/main.c: Fix build.
6037 * dbus/dbus-errors.h:
6038 * dbus/dbus-errors.c: Fix copyright for Anders.
6040 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6045 * bus/connection.c: (bus_connection_foreach):
6048 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6049 (unescape_string), (new_section), (parse_section_start),
6050 (parse_key_value), (report_error), (bus_desktop_file_load),
6051 (bus_desktop_file_get_string):
6052 * bus/desktop-file.h:
6053 Use DBusError for error reporting.
6055 * bus/dispatch.c: (send_one_message),
6056 (bus_dispatch_message_handler):
6057 * bus/driver.c: (bus_driver_send_service_deleted),
6058 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6059 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6060 (bus_driver_send_welcome_message),
6061 (bus_driver_handle_list_services),
6062 (bus_driver_handle_acquire_service),
6063 (bus_driver_handle_service_exists):
6064 * bus/loop.c: (bus_loop_run):
6066 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6068 * bus/utils.c: (bus_wait_for_memory):
6070 New files with general utility functions.
6072 * dbus/dbus-internals.h:
6073 Remove _DBUS_HANDLE_OOM.
6075 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6077 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6078 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6079 * dbus/dbus-errors.h:
6080 Add DBusError structure.
6082 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6084 * test/data/valid-messages/standard-acquire-service.message:
6085 * test/data/valid-messages/standard-hello.message:
6086 * test/data/valid-messages/standard-list-services.message:
6087 * test/data/valid-messages/standard-service-exists.message:
6088 Add some standard messages.
6090 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6092 * bus/driver.c: (bus_driver_send_welcome_message),
6093 (bus_driver_handle_list_services),
6094 (bus_driver_handle_acquire_service),
6095 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6096 Update for API changes in libdbus.
6098 * dbus/dbus-message.c: (dbus_message_new_reply):
6099 * dbus/dbus-message.h:
6100 Remove the name argument. The spec states that replies shouldn't
6103 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6105 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6106 (report_error), (bus_desktop_file_load), (lookup_section),
6107 (lookup_line), (bus_desktop_file_get_raw),
6108 (bus_desktop_file_get_string):
6109 * bus/desktop-file.h:
6110 Some fixes, and new functions for getting a key value from a section.
6112 2003-02-13 Havoc Pennington <hp@pobox.com>
6114 * test/data/auth/fail-after-n-attempts.auth-script: new test
6116 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6119 2003-02-13 Havoc Pennington <hp@pobox.com>
6121 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6122 dbus_credentials_match were backward
6124 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6125 NO_CREDENTIALS and ROOT_CREDENTIALS
6127 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6128 into here. Never process more commands after we've reached an
6129 end state; store further data as unused bytes.
6131 * test/data/auth/*: add more auth tests
6133 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6134 command to match exact string and EXPECT_UNUSED to match unused
6137 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6139 2003-02-12 Havoc Pennington <hp@pobox.com>
6141 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6142 \r off of popped lines
6144 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6147 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6150 2003-02-12 Havoc Pennington <hp@pobox.com>
6152 * dbus/Makefile.am: remove break-loader from the build, since it
6155 * configure.in: add --enable-gcov to turn on coverage profiling
6156 flags and disable optimization
6158 2003-02-10 Havoc Pennington <hp@pobox.com>
6160 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6161 initial cut at test framework for DBusAuth from laptop.
6162 Doesn't quite work yet but it compiles and I need to get
6163 it off the 266mhz laptop. ;-)
6165 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6166 fix a memleak in error case
6168 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6171 * bus/desktop-file.c:
6172 * bus/desktop-file.h:
6173 Add a desktop file parser.
6175 2003-02-11 Zack Rusin <zack@kde.org>
6177 * qt/message.[h|cpp]: sample implementation
6178 of the KDE wrapper for DBusMessage
6180 2003-02-09 Zack Rusin <zack@kde.org>
6182 * test/bus-test.c: make_it_compile
6183 * doc/dbus-specification.sgml: minimal semantic fix
6185 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6191 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6194 * dbus/dbus-break-loader.c:
6196 * test/break-loader.c:
6197 Move dbus-break-loader to test/ and rename it to break-loader.
6199 2003-02-02 Havoc Pennington <hp@pobox.com>
6201 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6202 for code to manage cookies in your home directory
6204 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6206 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6207 to authenticate, then disconnect the client.
6209 2003-02-03 Alexander Larsson <alexl@redhat.com>
6211 * dbus/dbus-message.c (dbus_message_append_fields):
6214 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6216 * doc/dbus-specification.sgml:
6217 Update address format section.
6219 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6222 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6223 (message_handler), (new_connection_callback), (loop_quit),
6227 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6229 * bus/driver.c: (bus_driver_handle_service_exists):
6230 Simplify the code a bit.
6232 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6235 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6238 Add libdbus-daemon.la and link to it.
6240 2003-02-01 James Willcox <jwillcox@gnome.org>
6242 * bus/driver.c: (bus_driver_handle_own_service):
6243 Actually include the service reply code in the message.
6245 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6247 * bus/driver.c: (bus_driver_handle_service_exists):
6248 Don't unref the incoming message.
6250 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6252 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6254 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6256 * dbus/dbus-server.c: (dbus_server_listen):
6257 * dbus/dbus-transport.c: (_dbus_transport_open):
6258 ifdef out the calls to the debug transport and server.
6260 2003-02-02 Alexander Larsson <alexl@redhat.com>
6262 * dbus/dbus-watch.c (dbus_watch_get_flags):
6263 Add note in the docs that ERROR or HANGUP won't be returned
6264 and are assumed always on.
6266 * glib/dbus-gmain.c (add_watch):
6267 Always add IO_ERR | IO_HUP
6269 * dbus/dbus-message.h:
6270 Add semicolon after dbus_message_iter_get_string_array().
6271 Makes qt code build again
6273 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6275 * bus/driver.c: (create_unique_client_name),
6276 (bus_driver_handle_hello):
6277 Don't take a name, just use a numeric id to identify
6281 * dbus/dbus-bus.c: (dbus_bus_register_client),
6282 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6284 Add new convenience functions for communicating with the bus.
6286 * dbus/dbus-message.h:
6288 * dbus/dbus-protocol.h:
6291 2003-02-01 Alexander Larsson <alexl@redhat.com>
6293 * dbus/dbus-message.c (dbus_message_append_fields):
6294 Add some more doc comments.
6296 2003-02-01 Havoc Pennington <hp@pobox.com>
6298 * dbus/dbus-break-loader.c (randomly_modify_length): change
6299 a 4-byte value in the message as if it were a length
6301 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6302 execute bit on saved files
6304 2003-02-01 Havoc Pennington <hp@pobox.com>
6306 * dbus/dbus-break-loader.c (main): new program to find messages
6307 that break the loader.
6309 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6310 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6312 * dbus/dbus-string.c (_dbus_string_set_byte): new
6314 2003-01-31 Havoc Pennington <hp@pobox.com>
6316 * dbus/dbus-message.c: refactor the test code to be more general,
6317 in preparation for writing a "randomly permute test cases to
6318 try to break the loader" program.
6320 2003-01-31 Havoc Pennington <hp@pobox.com>
6322 * doc/dbus-specification.sgml: work on the specification
6324 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6325 the protocol version of the message.
6327 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6328 no longer specifies that.
6329 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6332 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6333 "break" for DBUS_TYPE_NIL, remove @todo
6335 2003-01-31 Havoc Pennington <hp@pobox.com>
6337 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6338 just set_is_error/get_is_error as this is a commonly-used
6339 function, and write docs.
6341 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6343 * dbus/dbus-address.c: (dbus_address_entry_free):
6344 Free key and value lists.
6346 * dbus/dbus-internals.c: (_dbus_type_to_string):
6347 Add the types we didn't have.
6349 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6350 (_dbus_marshal_validate_arg):
6353 * dbus/dbus-message.c: (dbus_message_set_sender):
6354 Remove todo about being able to set sender to NULL.
6356 (dbus_message_set_is_error_reply),
6357 (dbus_message_get_is_error_reply):
6358 * dbus/dbus-message.h:
6361 * dbus/dbus-protocol.h:
6362 Add error reply flag.
6364 * test/data/valid-messages/opposite-endian.message:
6365 Add NIL type to test.
6367 2003-01-31 Havoc Pennington <hp@pobox.com>
6369 * doc/dbus-specification.sgml: fully specify the header. Add
6370 flags and major protocol version, and change header/body len to
6373 * dbus/dbus-message-builder.c (append_saved_length): append length
6376 * dbus/dbus-message.c (dbus_message_create_header): change header
6377 length and body length to unsigned. Add the new fields from the
6379 (_dbus_message_loader_return_buffer): unsigned header/body len
6381 2003-01-30 Havoc Pennington <hp@pobox.com>
6383 * dbus/dbus-auth.c: rework to use only REJECTED, no
6386 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6387 use REJECTED, suggested by Mark McLoughlin
6389 2003-01-30 Havoc Pennington <hp@pobox.com>
6391 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6392 a better way to report errors here. e.g. "unix address lacks
6393 path" or something. also "no such file" when the path doesn't
6396 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6398 (dbus_parse_address): add @todo about documenting address format,
6399 and allowing , and ; to be escaped
6401 2003-01-30 Anders Carlsson <andersca@codefactory.se>
6404 Add dbus-address.[ch]
6406 * dbus/dbus-address.c: (dbus_address_entry_free),
6407 (dbus_address_entries_free), (create_entry),
6408 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6409 (dbus_parse_address), (_dbus_address_test):
6410 * dbus/dbus-address.h:
6411 New files for dealing with address parsing.
6413 * dbus/dbus-connection.c:
6414 Document timeout functions.
6416 * dbus/dbus-message.c:
6417 Document dbus_message_new_from_message.
6419 * dbus/dbus-server-debug.c:
6422 * dbus/dbus-server.c: (dbus_server_listen):
6423 Parse address and use correct server implementation.
6425 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6426 * dbus/dbus-string.h:
6427 New function with test.
6429 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6433 * dbus/dbus-transport-debug.c:
6436 * dbus/dbus-transport.c: (_dbus_transport_open):
6437 Parse address and use correct transport implementation.
6439 2003-01-30 Havoc Pennington <hp@pobox.com>
6441 * dbus/dbus-message.c: use message->byte_order instead of
6442 DBUS_COMPILER_BYTE_ORDER throughout.
6443 (dbus_message_create_header): pad header to align the
6444 start of the body of the message to 8-byte boundary
6446 * dbus/dbus-marshal.h: make all the demarshalers take const
6447 DBusString arguments.
6449 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6450 validate message args here, so we don't have to do slow validation
6451 later, and so we catch bad messages as they are incoming. Also add
6452 better checks on header_len and body_len. Also fill in
6455 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6456 implemented properly)
6457 (_dbus_string_validate_nul): new function to check all-nul
6459 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6460 get_arg_end_pos and remove all validation
6461 (_dbus_marshal_validate_arg): actually do validation here.
6463 2003-01-29 Havoc Pennington <hp@pobox.com>
6465 * dbus/dbus-message.c (check_message_handling): fix assertion
6466 failure on set_client_serial
6468 2003-01-28 Havoc Pennington <hp@pobox.com>
6470 * dbus/dbus-server-debug.c: Add doc section comments
6472 * dbus/dbus-transport-debug.c: add doc section comments
6474 2003-01-28 Havoc Pennington <hp@redhat.com>
6476 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6477 the reverse order from how I had it
6478 (_dbus_string_base64_encode): reverse encoding order. I was
6479 basically byteswapping everything during encoding.
6481 2003-01-28 Anders Carlsson <andersca@codefactory.se>
6483 * dbus/dbus-connection-internal.h:
6484 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6485 (_dbus_connection_remove_timeout):
6486 Add functions for adding and removing timeouts.
6488 * dbus/dbus-message.c: (dbus_message_new_from_message):
6489 Add new function that takes a message and creates an exact
6490 copy of it, but with the refcount set to 1.
6491 (check_message_handling):
6494 * dbus/dbus-server-protected.h:
6495 * dbus/dbus-server.c: (_dbus_server_init_base),
6496 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6497 (dbus_server_set_timeout_functions):
6498 (_dbus_server_remove_timeout):
6499 New functions so that a server can add and remove timeouts.
6501 (dbus_server_listen):
6502 Add commented out call to dbus_server_debug_new.
6504 * dbus/dbus-timeout.c: (_dbus_timeout_new):
6505 Actually set the handler, doh.
6507 * dbus/dbus-transport.c: (_dbus_transport_open):
6508 Add commented out call to dbus_transport_debug_client_new.
6511 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6513 2003-01-28 Havoc Pennington <hp@pobox.com>
6515 * dbus/dbus-message.c (check_message_handling): function to check
6516 on the loaded message, iterates over it etc.
6518 2003-01-28 Havoc Pennington <hp@pobox.com>
6520 * test/Makefile.am (dist-hook): fix make distdir
6522 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6524 2003-01-27 Havoc Pennington <hp@pobox.com>
6526 * dbus/dbus-mempool.c (time_for_size): replace printf with
6529 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6530 empty lines; fix the SAVE_LENGTH stuff to be
6531 START_LENGTH/END_LENGTH so it actually works; couple other
6534 * test/Makefile.am (dist-hook): add dist-hook for .message files
6536 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6537 can be constant or locked.
6538 (_dbus_string_free): allow freeing a const string as
6541 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6543 * dbus/dbus-test-main.c (main): take an argument which is the
6544 directory containing test data
6546 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6547 argument to this and load all the messages in test/data/
6548 checking that they can be loaded or not loaded as appropriate.
6550 2003-01-27 Anders Carlsson <andersca@codefactory.se>
6552 * bus/dispatch.c: (bus_dispatch_message_handler):
6553 Dispatch messages sent to services.
6555 * bus/driver.c: (bus_driver_send_service_deleted),
6556 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6557 (bus_driver_send_service_acquired):
6558 Add helper functions for sending service related messages.
6560 (bus_driver_send_welcome_message):
6561 Send HELLO_REPLY instead of WELCOME.
6563 (bus_driver_handle_list_services):
6564 Send LIST_SERVICES_REPLY instead of SERVICES.
6566 (bus_driver_handle_own_service),
6567 (bus_driver_handle_service_exists):
6568 New message handlers.
6570 (bus_driver_handle_message):
6571 Invoke new message handlers.
6573 (bus_driver_remove_connection):
6574 Don't remove any services here since that's done automatically
6575 by bus_service_remove_owner now.
6578 New function signatures.
6580 * bus/services.c: (bus_service_add_owner):
6581 Send ServiceAcquired message if we're the only primary owner.
6583 (bus_service_remove_owner):
6584 Send ServiceAcquired/ServiceLost messages.
6586 (bus_service_set_prohibit_replacement),
6587 (bus_service_get_prohibit_replacement):
6588 Functions for setting prohibit replacement.
6590 (bus_service_has_owner):
6591 New function that checks if a connection is in the owner queue of
6595 Add new function signatures.
6597 * dbus/dbus-list.c: (_dbus_list_test):
6598 Add tests for _dbus_list_remove_last and traversing the list backwards.
6601 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6602 go any further, so return NULL then.
6604 * dbus/dbus-protocol.h:
6605 Add new messages, service flags and service replies.
6607 2003-01-26 Havoc Pennington <hp@pobox.com>
6609 * dbus/dbus-message-builder.c: implement, completely untested.
6611 * test/data/*: add data to be used in testing.
6612 ".message" files are our simple loadable text format.
6613 ".message-raw" will be binary dumps of messages.
6615 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6617 2003-01-26 Havoc Pennington <hp@pobox.com>
6619 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6621 * dbus/dbus-errors.c (dbus_result_to_string): add
6624 * dbus/dbus-message-builder.c: new file, will contain code to load
6625 up messages from files. Not implemented yet.
6627 2003-01-26 Havoc Pennington <hp@pobox.com>
6629 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
6630 the sender by setting to NULL
6632 2003-01-26 Havoc Pennington <hp@pobox.com>
6634 The unit tests pass, but otherwise untested. If it breaks, the
6635 tests should have been better. ;-)
6637 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
6640 * dbus/dbus-message.c: redo everything so we maintain
6641 message->header as the only copy of the various fields.
6642 This avoids the possibility of out-of-memory in some cases,
6643 for example dbus_message_lock() can't run out of memory anymore,
6644 and avoids extra copying. Figured I may as well go ahead and do
6645 this since it was busted for dbus_message_lock to not return
6646 failure on OOM, and dbus_message_write_header was totally
6647 unchecked for OOM. Also fixed some random other bugs.
6649 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
6650 that strings are nul-terminated. Also, end_pos can be equal
6651 to string length just not greater than, I think.
6652 (_dbus_marshal_set_int32): new function
6653 (_dbus_marshal_set_uint32): new function
6654 (_dbus_marshal_set_string): new function
6656 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
6657 a warning, init timeout_list to NULL
6658 (dbus_connection_send_message): don't use uninitialized variable
6661 * dbus/dbus-string.c (_dbus_string_replace_len): new function
6663 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6665 * bus/driver.c: (bus_driver_handle_hello),
6666 (bus_driver_send_welcome_message):
6669 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6671 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
6672 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6673 (dbus_connection_unref):
6674 * dbus/dbus-marshal.c: (_dbus_marshal_test):
6675 * dbus/dbus-message.c: (dbus_message_unref),
6678 (dbus_message_get_fields):
6679 Remove debugging printout.
6681 (_dbus_message_loader_return_buffer):
6682 Don't store the header string.
6684 (_dbus_message_test):
6687 2003-01-26 Richard Hult <rhult@codefactory.se>
6689 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
6690 the file descriptor list, since it can change under us.
6692 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6694 * glib/dbus-gmain.c: (dbus_connection_prepare),
6695 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
6696 (remove_watch), (dbus_connection_hookup_with_g_main):
6697 Rewrite the glib handling to use its own GSource instead of a
6698 GIOChannel so we can catch messages put in the queue while waiting
6701 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6704 * bus/connection.c: (connection_disconnect_handler),
6705 (connection_watch_callback), (bus_connection_setup):
6706 * bus/dispatch.c: (send_one_message),
6707 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
6708 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
6710 * bus/driver.c: (bus_driver_send_service_deleted),
6711 (bus_driver_send_service_created), (bus_driver_handle_hello),
6712 (bus_driver_send_welcome_message),
6713 (bus_driver_handle_list_services), (bus_driver_remove_connection),
6714 (bus_driver_handle_message):
6716 Refactor code, put the message dispatching in its own file. Use
6717 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
6720 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6722 * dbus/dbus-internals.h:
6723 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
6725 * dbus/dbus-message.c: (dbus_message_get_sender):
6726 * dbus/dbus-message.h:
6727 Implement dbus_message_get_sender.
6729 * dbus/dbus-protocol.h:
6730 Add message and service defines.
6732 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6734 * dbus/dbus-connection.c: (dbus_connection_send_message):
6735 * dbus/dbus-message-internal.h:
6736 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
6737 (dbus_message_write_header):
6738 Remove _dbus_messag_unlock and don't set the client serial on a
6739 message if one already exists.
6741 2003-01-24 Havoc Pennington <hp@pobox.com>
6743 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
6746 * bus/driver.c (bus_driver_handle_list_services): fix a leak
6749 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6751 * dbus/dbus-list.c: (alloc_link), (free_link):
6752 Use a memory pool for the links.
6754 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6756 * bus/connection.c: (bus_connection_foreach):
6758 Add new bus_connection_foreach function.
6760 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
6761 Add function that broadcasts a message to all clients.
6763 (bus_driver_send_service_created), (bus_driver_handle_hello),
6764 (bus_driver_send_welcome_message),
6765 (bus_driver_handle_list_services), (bus_driver_message_handler):
6766 Implement functions that take care of listing services, and notifying
6767 clients when new services are created.
6769 * bus/services.c: (bus_services_list):
6771 Add new function that returns an array of strings with the currently
6772 registered services.
6775 * glib/dbus-gmain.c:
6776 Update copyright year.
6778 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6780 * dbus/dbus-connection.c: (dbus_connection_send_message):
6781 Unlock the message in case it was sent earlier.
6783 (dbus_connection_send_message_with_reply_and_block):
6784 Remove the reply message from the list.
6786 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6787 Set array_len and new_pos correctly.
6789 (_dbus_marshal_test):
6790 Remove debug output.
6792 * dbus/dbus-message-internal.h:
6793 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
6794 New function that returns the reply serial.
6796 (_dbus_message_unlock):
6797 New function that unlocks a message and resets its header.
6799 (dbus_message_append_string_array),
6800 (dbus_message_get_fields_valist),
6801 (dbus_message_iter_get_field_type),
6802 (dbus_message_iter_get_string_array),
6803 (dbus_message_get_fields),
6804 (dbus_message_append_fields_valist):
6805 Handle string arrays.
6807 (dbus_message_set_sender):
6808 Make this function public since the bus daemon needs it.
6810 (decode_header_data):
6811 Set the reply serial to -1 initially.
6813 * dbus/dbus-message.h:
6814 Add dbus_message_set_sender.
6816 2003-01-24 Havoc Pennington <hp@pobox.com>
6818 * doc/dbus-specification.sgml: add some stuff
6820 2003-01-22 Havoc Pennington <hp@pobox.com>
6822 * doc/dbus-specification.sgml: Start to document the protocol.
6824 2003-01-22 Havoc Pennington <hp@pobox.com>
6826 * dbus/dbus-connection.c
6827 (dbus_connection_send_message_with_reply_and_block): add some @todo
6829 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
6831 2003-01-21 Havoc Pennington <hp@pobox.com>
6833 (patch untested because can't compile)
6835 * bus/driver.c (create_unique_client_name): make this function
6836 never recycle client names. Also, caller should initialize
6839 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
6841 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6843 * dbus/dbus-marshal.c: (_dbus_marshal_double),
6844 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6845 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
6846 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
6847 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
6848 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
6849 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
6850 * dbus/dbus-marshal.h:
6851 * dbus/dbus-protocol.h:
6852 Add support for marshalling and demarshalling integer, double
6855 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6860 * bus/connection.c: (connection_disconnect_handler):
6861 Remove the connection from the bus driver's list.
6863 (connection_watch_callback): Dispatch messages.
6865 (free_connection_data): Free connection name.
6867 (bus_connection_setup): Add connection to the bus driver's list.
6868 (bus_connection_remove_owned_service):
6869 (bus_connection_set_name), (bus_connection_get_name):
6870 Add functions for setting and getting the connection's name.
6873 Add function headers.
6875 * bus/driver.c: (create_unique_client_name),
6876 (bus_driver_handle_hello_message),
6877 (bus_driver_send_welcome_message), (bus_driver_message_handler),
6878 (bus_driver_add_connection), (bus_driver_remove_connection):
6881 * bus/services.c: (bus_service_free):
6883 New file that handles communication and registreation with the bus
6886 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6888 * dbus/dbus-connection.c: (dbus_connection_send_message):
6889 Add a new client_serial parameter.
6891 (dbus_connection_send_message_with_reply):
6892 Remove a @todo since we've implemented the blocking function.
6894 (dbus_connection_send_message_with_reply_and_block):
6895 New function that sends a message and waits for a reply and
6896 then returns the reply.
6898 * dbus/dbus-connection.h:
6901 * dbus/dbus-errors.c: (dbus_result_to_string):
6902 * dbus/dbus-errors.h:
6903 Add new DBUS_RESULT.
6905 * dbus/dbus-message-internal.h:
6906 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
6907 (_dbus_message_set_sender), (dbus_message_write_header),
6908 (dbus_message_new_reply), (decode_header_data),
6909 (_dbus_message_loader_return_buffer), (_dbus_message_test):
6910 * dbus/dbus-message.h:
6911 Add new functions that set the reply serial and sender.
6912 Also marshal and demarshal them correctly and add test.
6914 * dbus/dbus-protocol.h:
6915 Add new DBUS_MESSAGE_TYPE_SENDER.
6918 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
6919 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
6920 (dbus_connection_hookup_with_g_main):
6921 * glib/test-dbus-glib.c: (main):
6922 Rewrite to use GIOChannel and remove the GSource crack.
6924 * test/echo-client.c: (main):
6925 * test/watch.c: (check_messages):
6926 Update for changed APIs
6928 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6930 * dbus/Makefile.am: Add dbus-timeout.[cħ]
6932 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
6933 Create a DBusTimeoutList.
6934 (dbus_connection_set_timeout_functions): Add new function to
6935 set timeout callbacks
6937 * dbus/dbus-connection.h: Add public DBusTimeout API.
6939 * dbus/dbus-message.c: (dbus_message_get_service):
6940 * dbus/dbus-message.h: New function.
6942 * dbus/dbus-server.c: Fix small doc typo.
6944 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
6946 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6948 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
6949 of the string, just as long as specified.
6951 2003-01-19 Havoc Pennington <hp@pobox.com>
6953 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
6956 * dbus/dbus-server.c (dbus_server_set_max_connections)
6957 (dbus_server_get_max_connections, dbus_server_get_n_connections):
6958 keep track of current number of connections, and add API for
6959 setting a max (but haven't implemented enforcing the max yet)
6961 2003-01-18 Havoc Pennington <hp@pobox.com>
6963 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
6964 reading/writing if read_watch != NULL or write_watch != NULL.
6966 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
6967 the message loader code to actually load message->header and
6968 message->body into the newly-created message.
6970 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
6973 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
6974 (dbus_connection_get_max_message_size)
6975 (dbus_connection_set_max_live_messages_size)
6976 (dbus_connection_get_max_live_messages_size): implement some
6977 resource limitation functions
6979 * dbus/dbus-resources.c: new file implementing some of the
6980 resource limits stuff
6982 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
6983 missing docs, add @todo to handle OOM etc.
6985 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
6988 2003-01-18 Havoc Pennington <hp@pobox.com>
6990 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
6991 connection if it hasn't been already.
6993 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
6994 replace with DisconnectFunction.
6996 2003-01-18 Havoc Pennington <hp@pobox.com>
6998 Building --disable-verbose-mode --disable-asserts --disable-tests
6999 cuts the library from 112K to 45K or so
7001 * configure.in: check for varargs macro support,
7002 add --enable-verbose-mode, --enable-asserts.
7004 * dbus/dbus-internals.h (_dbus_assert): support
7006 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7008 2003-01-18 Havoc Pennington <hp@pobox.com>
7010 * dbus/dbus-test.c: include config.h so that tests actually run
7012 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7013 so the failure mode when that assumption fails will be plenty
7016 2003-01-18 Havoc Pennington <hp@pobox.com>
7018 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7020 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7023 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7024 since we don't want to use those in make check
7026 2003-01-15 Havoc Pennington <hp@redhat.com>
7032 2003-01-15 Havoc Pennington <hp@redhat.com>
7034 * test/Makefile.am: fix so that test source code ends up in the
7035 distribution on make distcheck
7037 2003-01-15 Havoc Pennington <hp@redhat.com>
7043 2003-01-15 Havoc Pennington <hp@redhat.com>
7045 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7046 fix build when --disable-tests
7048 * Makefile.am (EXTRA_DIST): put HACKING in here
7050 * HACKING: document procedure for making a tarball release.
7052 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7054 * bus/connection.c: (connection_error_handler),
7055 (bus_connection_setup):
7056 * bus/main.c: (main):
7057 Make sure that the DBusConnectionData struct is NULLed
7058 out to prevent a segfault.
7060 * dbus/dbus-errors.c: (dbus_result_to_string):
7061 * dbus/dbus-errors.h:
7062 * dbus/dbus-message.c: (dbus_message_get_fields),
7063 (dbus_message_get_fields_valist), (_dbus_message_test):
7064 * dbus/dbus-message.h:
7065 Make dbus_message_get_fields return a result code so we can
7066 track invalid fields as well as oom.
7068 2003-01-11 Havoc Pennington <hp@pobox.com>
7070 * configure.in: change --enable-test/--enable-ansi action-if-given
7071 to enable_foo=$enableval instead of enable_foo=yes
7073 2003-01-08 Havoc Pennington <hp@pobox.com>
7075 * dbus/dbus-string.c (_dbus_string_align_length): new function
7077 * dbus/dbus-test-main.c: move main() for test app here
7079 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7080 symbol to run tests, because dbus-test isn't in the main
7083 Code review nitpicks.
7085 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7086 for people with narrow emacs ;-). Assert client_serial was filled
7087 in. Assert message->name != NULL.
7088 (dbus_message_append_fields): have "first_field_type" arg separate
7089 from va list, needed for C++ binding that also uses varargs IIRC
7090 and helps with type safety
7091 (dbus_message_new): add @todo about using DBusString to store
7092 service/name internally
7093 (dbus_message_new): don't leak ->service and ->name on OOM later
7095 (dbus_message_unref): free the service name
7096 (dbus_message_get_fields): same change to varargs
7097 i.e. first_field_type
7098 (_dbus_message_loader_return_buffer): assert that the message data
7099 is aligned (if not it's a bug in our code). Put in verbose griping
7100 about why we set corrupted = TRUE.
7101 (decode_header_data): add FIXME that char* is evil. Was going to
7102 add FIXME about evil locale-specific string.h strncmp, but just
7103 switched to wacky string-as-uint32 optimization. Move check for
7104 "no room for field name" above get_const_data_len() to avoid
7105 assertion failure in get_const_data_len if we have trailing 2
7106 bytes or the like. Check for service and name fields being
7107 provided twice. Don't leak service/name on error. Require field
7108 names to be aligned to 4 bytes.
7110 * dbus/dbus-marshal.c: move byte swap stuff to header
7111 (_dbus_pack_int32): uscore-prefix
7112 (_dbus_unpack_int32): uscore-prefix
7113 (_dbus_unpack_uint32): export
7114 (_dbus_demarshal_string): add @todo complaining about use of
7116 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7117 handling allowing corrupt data to go unchecked
7119 2003-01-08 Havoc Pennington <hp@redhat.com>
7121 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7122 to the select() as needed for authentication. (should be using
7123 _dbus_poll() not select, but for another day)
7125 * dbus/dbus.h: include dbus/dbus-protocol.h
7127 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7129 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7132 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7134 * dbus/dbus-internals.c: (_dbus_type_to_string):
7135 New function that returns a string describing a type.
7137 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7138 * dbus/dbus-marshal.h:
7139 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7140 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7141 (dbus_message_iter_get_byte_array):
7142 * dbus/dbus-message.h:
7143 Add new convenience functions for appending and getting message fields.
7144 Also add demarshalling routines for byte arrays.
7146 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7148 * dbus/dbus-connection-internal.h:
7149 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7150 (_dbus_connection_get_next_client_serial),
7151 (dbus_connection_send_message):
7152 * dbus/dbus-internals.h:
7153 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7154 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7155 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7156 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7157 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7158 (_dbus_verbose_bytes), (_dbus_marshal_test):
7159 * dbus/dbus-marshal.h:
7160 * dbus/dbus-message-internal.h:
7161 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7162 (dbus_message_write_header), (_dbus_message_lock),
7163 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7164 (dbus_message_get_name), (dbus_message_append_int32),
7165 (dbus_message_append_uint32), (dbus_message_append_double),
7166 (dbus_message_append_string), (dbus_message_append_byte_array),
7167 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7168 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7169 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7170 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7171 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7172 (decode_header_data), (_dbus_message_loader_return_buffer),
7173 (message_iter_test), (_dbus_message_test):
7174 * dbus/dbus-message.h:
7175 * dbus/dbus-protocol.h:
7176 * dbus/dbus-test.c: (main):
7178 * glib/test-dbus-glib.c: (message_handler), (main):
7179 * test/echo-client.c: (main):
7180 * test/watch.c: (check_messages):
7181 Make messages sendable and receivable for real.
7183 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7185 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7186 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7187 * dbus/dbus-message.c: (dbus_message_append_int32),
7188 (dbus_message_append_uint32), (dbus_message_append_double),
7189 (dbus_message_append_string), (dbus_message_append_byte_array):
7190 Handle OOM restoration.
7192 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7194 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7195 (_dbus_demarshal_string), (_dbus_marshal_test):
7196 * dbus/dbus-marshal.h:
7197 * dbus/dbus-message.c: (dbus_message_get_name),
7198 Document these functions.
7200 (dbus_message_append_int32), (dbus_message_append_uint32),
7201 (dbus_message_append_double), (dbus_message_append_string),
7202 (dbus_message_append_byte_array):
7203 * dbus/dbus-message.h:
7204 Add functions for adding message fields of different types.
7206 * dbus/dbus-protocol.h:
7207 Add the different types.
7209 2003-01-05 Havoc Pennington <hp@pobox.com>
7211 * bus/connection.c: implement routines for handling connections,
7212 first thing is keeping a list of owned services on each connection
7213 and setting up watches etc.
7215 * bus/services.c: implement a mapping from service names to lists
7218 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7220 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7221 to use static mutexes for global data
7223 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7224 collection of functions to set/get application-specific data
7225 on the DBusConnection.
7227 2003-01-04 Havoc Pennington <hp@pobox.com>
7229 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7230 (_dbus_poll): new function
7232 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7235 * bus/loop.c: initial code for the daemon main loop
7237 2003-01-04 Havoc Pennington <hp@pobox.com>
7239 * test/watch.c (error_handler): make it safe if the error handler
7240 is called multiple times (if we s/error handler/disconnect
7241 handler/ we should just guarantee it's called only once)
7243 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7244 error handler on disconnect (it's quite possible we should
7245 just change the error handler to a "disconnect handler," I'm
7246 not sure we have any other meaningful errors)
7248 * configure.in: check for getpwnam_r
7250 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7251 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7252 mechanism as in SASL spec, using socket credentials
7254 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7255 (_dbus_send_credentials_unix_socket): new function
7257 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7259 (_dbus_write): only check errno if <0 returned
7260 (_dbus_write_two): ditto
7262 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7264 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7265 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7266 (_dbus_marshal_test):
7267 * dbus/dbus-marshal.h:
7268 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7269 to _dbus_marshal_utf8_string. Also fix some tests.
7271 2002-12-28 Harri Porten <porten@kde.org>
7273 * configure.in: added check for C++ compiler and a very cheesy
7274 check for the Qt integration
7276 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7278 * qt/Makefile.am: added
7280 * qt/.cvsignore: added
7282 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7283 latter, added #ifdef QT_THREAD_SUPPORT guard.
7285 * dbus/Makefile.am: added missing headers for make dist
7287 2002-12-28 Kristian Rietveld <kris@gtk.org>
7289 * dbus/Makefile.am: fixup export-symbols-regex.
7291 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7293 * acinclude.m4: Add this file and put the
7294 PKG_CHECK_MODULE macro in it.
7296 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7298 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7299 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7300 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7301 (_dbus_marshal_test):
7302 Make the demarshalling routines align the pos argument.
7303 Add string marshalling tests and fix the obvious bugs
7306 2002-12-26 Havoc Pennington <hp@pobox.com>
7308 * dbus/dbus-auth.c: fixes fixes fixes
7310 * dbus/dbus-transport-unix.c: wire up support for
7311 encoding/decoding data on the wire
7313 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7314 (_dbus_auth_decode_data): append to target string
7315 instead of nuking it.
7317 2002-12-26 Havoc Pennington <hp@pobox.com>
7319 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7320 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7323 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7324 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7325 now). Main point is because I wanted unpack_uint32 to implement
7327 (_dbus_verbose_bytes): new function
7329 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7331 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7332 mechanism to handle a corrupt message stream
7333 (_dbus_message_loader_new): fix preallocation to only prealloc,
7336 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7337 (_dbus_string_test): enhance tests for copy/move and fix the
7340 * dbus/dbus-transport-unix.c: Hold references in more places to
7341 avoid reentrancy problems
7343 * dbus/dbus-transport.c: ditto
7345 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7346 leak reference count in no-message case
7348 * test/watch.c (do_mainloop): handle adding/removing watches
7349 during iteration over the watches. Also, ref the connection/server
7350 stored on a watch, so we don't try to mangle a destroyed one.
7352 * dbus/dbus-transport-unix.c (do_authentication): perform
7355 * dbus/dbus-auth.c (get_state): add a state
7356 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7357 (_dbus_auth_get_unused_bytes): append the unused bytes
7358 to the passed in string, rather than prepend
7360 * dbus/dbus-transport.c (_dbus_transport_init_base): create
7361 the auth conversation DBusAuth
7363 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7364 (_dbus_transport_new_for_domain_socket): when creating a
7365 transport, pass in whether it's a client-side or server-side
7366 transport so we know which DBusAuth to create
7368 2002-12-03 Havoc Pennington <hp@pobox.com>
7370 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7371 _after_ finalizing the derived members
7372 (unix_connection_set): unref watch if we fail to add it
7374 * dbus/dbus-connection.c (dbus_connection_unref): delete the
7375 transport first, so that the connection owned by the
7376 transport will be valid as the transport finalizes.
7378 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7379 if necessary, and remove watches from the connection.
7381 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7383 2002-12-26 Anders Carlsson <andersca@codefactory.se>
7385 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7386 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7387 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7388 (_dbus_marshal_test):
7389 * dbus/dbus-marshal.h:
7390 Add string marshal functions and have the demarshal functions
7391 return the new position.
7393 2002-12-25 Havoc Pennington <hp@pobox.com>
7395 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7396 it is a simple protocol that just maps directly to SASL.
7398 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7399 initial implementation, not actually used yet.
7401 * dbus/dbus-string.c (_dbus_string_find): new function
7402 (_dbus_string_equal): new function
7403 (_dbus_string_base64_encode): new function
7404 (_dbus_string_base64_decode): new function
7406 2002-12-25 Anders Carlsson <andersca@codefactory.se>
7409 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7410 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7411 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7412 (_dbus_demarshal_uint32), (_dbus_marshal_test):
7413 * dbus/dbus-marshal.h:
7414 * dbus/dbus-protocol.h:
7415 * dbus/dbus-test.c: (main):
7417 Add un-optimized marshalling/demarshalling routines.
7419 2002-12-25 Harri Porten <porten@kde.org>
7421 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7423 2002-12-24 Zack Rusin <zack@kde.org>
7425 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7426 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7429 2002-12-24 Havoc Pennington <hp@pobox.com>
7431 * glib/dbus-gthread.c: fix include
7433 * glib/dbus-glib.h: rename DBusMessageHandler for now.
7434 I think glib API needs to change, though, as you don't
7435 want to use DBusMessageFunction, you want to use the
7436 DBusMessageHandler object. Probably
7437 dbus_connection_open_with_g_main_loop()
7438 and dbus_connection_setup_g_main_loop() or something like that
7439 (but think of better names...) that just create a connection
7440 that has watch/timeout functions etc. already set up.
7442 * dbus/dbus-connection.c
7443 (dbus_connection_send_message_with_reply): new function just to
7444 show how the message handler helps us deal with replies.
7446 * dbus/dbus-list.c (_dbus_list_remove_last): new function
7448 * dbus/dbus-string.c (_dbus_string_test): free a string that
7451 * dbus/dbus-hash.c: use memory pools for the hash entries
7452 (rebuild_table): be more paranoid about overflow, and
7453 shrink table when we can
7454 (_dbus_hash_test): reduce number of sprintfs and write
7455 valid C89. Add tests for case where we grow and then
7456 shrink the hash table.
7458 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7460 * dbus/dbus-connection.c (dbus_connection_register_handler)
7461 (dbus_connection_unregister_handler): new functions
7463 * dbus/dbus-message.c (dbus_message_get_name): new
7465 * dbus/dbus-list.c: fix docs typo
7467 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7468 an object representing a handler for messages.
7470 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7473 * glib/dbus-gthread.c: (dbus_gthread_init):
7474 Don't use the gdbus prefix for public functions.
7476 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7480 Add GLib checks and fixup .pc files
7484 * glib/dbus-gmain.c: (gdbus_connection_prepare),
7485 (gdbus_connection_check), (gdbus_connection_dispatch),
7486 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7487 (dbus_connection_gsource_new):
7488 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7489 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7490 * glib/test-dbus-glib.c: (message_handler), (main):
7493 2002-12-15 Harri Porten <porten@kde.org>
7495 * autogen.sh: check for libtoolize before attempting to use it
7497 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7500 * .cvsignore: ignore more stamp files
7502 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7504 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7505 without make install.
7507 2002-12-15 Havoc Pennington <hp@pobox.com>
7509 * dbus/dbus-threads.c: add thread stubs that a higher library
7510 layer can fill in. e.g. the GLib wrapper might fill them in with
7511 GThread stuff. We still need to use this thread API to
7512 thread-safe-ize the library.
7514 2002-12-12 Havoc Pennington <hp@pobox.com>
7516 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7517 below new interfaces and include fewer system headers.
7519 * dbus/dbus-sysdeps.c (_dbus_read): new function
7520 (_dbus_write): new function
7521 (_dbus_write_two): new function
7522 (_dbus_connect_unix_socket): new function
7523 (_dbus_listen_unix_socket): new function
7525 * dbus/dbus-message-internal.h: change interfaces to use
7528 2002-12-11 Havoc Pennington <hp@pobox.com>
7530 * dbus/dbus-types.h: add dbus_unichar
7532 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7534 * dbus/dbus-connection.c (dbus_connection_send_message): return
7537 * dbus/dbus-transport.c: include dbus-watch.h
7539 * dbus/dbus-connection.c: include dbus-message-internal.h
7541 * HACKING: add file with coding guidelines stuff.
7543 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7544 handling here, for security purposes (as in vsftpd). Not actually
7545 using this class yet.
7547 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7548 system/libc usage here, as in vsftpd, for ease of auditing (and
7549 should also simplify portability). Haven't actually moved all the
7550 system/libc usage into here yet.
7552 2002-11-25 Havoc Pennington <hp@pobox.com>
7554 * dbus/dbus-internals.c (_dbus_verbose): fix to not
7555 always print the first verbose message.
7557 2002-11-24 Havoc Pennington <hp@pobox.com>
7559 * test/echo-client.c, test/echo-server.c: cheesy test
7562 * configure.in (AC_CHECK_FUNCS): check for writev
7564 * dbus/dbus-message.c (_dbus_message_get_network_data): new
7567 * dbus/dbus-list.c (_dbus_list_foreach): new function
7569 * dbus/dbus-internals.c (_dbus_verbose): new function
7571 * dbus/dbus-server.c, dbus/dbus-server.h: public object
7572 representing a server that listens for connections.
7574 * dbus/.cvsignore: create
7576 * dbus/dbus-errors.h, dbus/dbus-errors.c:
7577 public API for reporting errors
7579 * dbus/dbus-connection.h, dbus/dbus-connection.c:
7580 public object representing a connection that
7581 sends/receives messages. (Same object used for
7582 both client and server.)
7584 * dbus/dbus-transport.h, dbus/dbus-transport.c:
7585 Basic abstraction for different kinds of stream
7586 that we might read/write messages from.
7588 2002-11-23 Havoc Pennington <hp@pobox.com>
7590 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7593 * dbus/dbus-test.c (main): add list test, and include
7594 dbus-test.h as intended
7596 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7597 (_dbus_hash_table_remove_int): return value indicates
7598 whether the entry existed to remove
7600 * dbus/dbus-list.c: add linked list utility class,
7603 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7606 2002-11-23 Havoc Pennington <hp@pobox.com>
7608 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7609 DBUS_END_DECLS to nothing, that should fix this once and for all
7611 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7613 * dbus/dbus-message.c, dbus/dbus-hash.c:
7614 add some missing @brief
7616 2002-11-23 Havoc Pennington <hp@pobox.com>
7618 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7619 to avoid confusing Doxygen
7621 * dbus/dbus-hash.c: @} not }@
7623 * dbus/dbus-message.c (struct DBusMessage): split out
7626 2002-11-23 Havoc Pennington <hp@pobox.com>
7628 * configure.in: pile on more warning flags if using gcc
7630 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
7631 to document static functions
7633 * configure.in: add summary to end of configure so it
7634 looks nice and attractive
7636 * dbus/dbus-hash.c: finish implementation and write unit
7639 * configure.in: add --enable-tests to enable unit tests
7641 * dbus/dbus-test.c: test program to run unit tests
7642 for all files in dbus/*, initially runs a test for
7645 * dbus/dbus-internals.h: file to hold some internal utility stuff
7647 2002-11-22 Havoc Pennington <hp@redhat.com>
7649 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
7650 "ported" away from Tcl
7652 * dbus/dbus-types.h: header for types such as dbus_bool_t
7654 2002-11-22 Havoc Pennington <hp@redhat.com>
7656 * dbus/dbus.h: fixups for doc warnings
7658 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
7660 (QUIET): make it quiet so we can see warnings
7662 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
7664 2002-11-22 Havoc Pennington <hp@redhat.com>
7666 * Makefile.am: include "Doxyfile" target in all-local
7668 * configure.in: generate the Doxyfile
7670 * Doxyfile.in: move Doxyfile here, so we can use
7671 configure to generate a Doxyfile with the right
7674 2002-11-22 Havoc Pennington <hp@redhat.com>
7676 * dbus/dbus-message.c: move inline docs into .c file
7678 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
7679 so all docs are under doc/
7680 (MAN_EXTENSION): generate man pages. Use extension
7681 ".3dbus" which matches ".3qt" on my system,
7682 I guess this is OK, I don't know really.
7683 (FILE_PATTERNS): look for .c files not .h, makes sense
7686 2002-11-22 Havoc Pennington <hp@pobox.com>
7688 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
7689 because any app can be a server, and any app can be a client,
7690 the bus is a special kind of server.
7692 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
7694 * Doxyfile : adding. Still needs Makefile rules to be generated
7695 automatically (just run "doxygen" in the toplevel dir for now to
7698 * dbus/dbus-message.h : Adding sample docs (javadoc since
7699 resembles gtk-doc a little more)
7701 * dbus/dbus.h : Adding sample docs
7703 2002-11-21 Havoc Pennington <hp@redhat.com>
7705 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
7706 so we can allow ourselves to include files directly,
7707 instead of having to use dbus.h
7709 * dbus/dbus.h: fill in
7711 * dbus/dbus-message.h: sketch out a sample header file.
7712 Include griping if you include it directly instead of
7715 * dbus/dbus-macros.h: new file with macros for extern "C",
7716 TRUE/FALSE, NULL, etc.
7718 * doc/file-boilerplate.c: put include guards in here
7720 2002-11-21 Havoc Pennington <hp@redhat.com>
7722 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
7724 * COPYING: include the GPL as well, and license code
7725 under both AFL and GPL.
7727 2002-11-21 Havoc Pennington <hp@redhat.com>
7729 * acconfig.h: get rid of this
7731 * autogen.sh (run_configure): add --no-configure option
7733 * configure.in: remove AC_ARG_PROGRAM to make
7734 autoconf complain less. add AC_PREREQ.
7735 add AC_DEFINE third arg.
7737 2002-11-21 Anders Carlsson <andersca@codefactory.se>
7740 Fix references so we can distcheck.
7742 2002-11-21 Havoc Pennington <hp@redhat.com>
7744 * Initial module creation