From a5fdd77e0f042b40dcbb093ab2bafc51806eeb3b Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Tue, 30 Oct 2012 16:16:21 -0700 Subject: [PATCH 1/1] Imported Upstream version 1.5.12 --- AUTHORS | 122 + COPYING | 552 + ChangeLog | 5 + ChangeLog.pre-1-0 | 15146 +++++++++++ ChangeLog.pre-1-2 | 2027 ++ Doxyfile.in | 181 + HACKING | 351 + INSTALL | 252 + Makefile.am | 33 + Makefile.in | 1045 + NEWS | 474 + NEWS.pre-1-0 | 614 + NEWS.pre-1-2 | 153 + README | 163 + README.cygwin | 6 + README.launchd | 61 + README.win | 111 + README.wince | 81 + aclocal.m4 | 1335 + bus/Makefile.am | 292 + bus/Makefile.in | 1496 ++ bus/activation-exit-codes.h | 45 + bus/activation-helper-bin.c | 100 + bus/activation-helper.c | 566 + bus/activation-helper.h | 31 + bus/activation.c | 2573 ++ bus/activation.h | 69 + bus/bus.c | 1648 ++ bus/bus.h | 129 + bus/config-loader-expat.c | 294 + bus/config-loader-libxml.c | 324 + bus/config-parser-common.c | 190 + bus/config-parser-common.h | 59 + bus/config-parser-trivial.c | 716 + bus/config-parser-trivial.h | 72 + bus/config-parser.c | 3633 +++ bus/config-parser.h | 87 + bus/connection.c | 2385 ++ bus/connection.h | 154 + bus/dbus.service.in | 9 + bus/dbus.socket.in | 5 + bus/desktop-file.c | 802 + bus/desktop-file.h | 57 + bus/dir-watch-default.c | 35 + bus/dir-watch-dnotify.c | 93 + bus/dir-watch-inotify.c | 279 + bus/dir-watch-kqueue.c | 250 + bus/dir-watch.h | 40 + bus/dispatch.c | 4910 ++++ bus/dispatch.h | 38 + bus/driver.c | 2035 ++ bus/driver.h | 52 + bus/expirelist.c | 402 + bus/expirelist.h | 80 + bus/main.c | 641 + bus/messagebus-config.in | 178 + bus/messagebus.in | 92 + bus/org.freedesktop.dbus-session.plist.in | 33 + bus/policy.c | 1313 + bus/policy.h | 169 + bus/rc.messagebus.in | 79 + bus/selinux.c | 1093 + bus/selinux.h | 72 + bus/services.c | 1304 + bus/services.h | 94 + bus/session.conf.in | 63 + bus/signals.c | 2815 ++ bus/signals.h | 100 + bus/stats.c | 352 + bus/stats.h | 38 + bus/system.conf.in | 83 + bus/test-launch-helper.c | 147 + bus/test-main.c | 190 + bus/test-system.c | 107 + bus/test.c | 315 + bus/test.h | 57 + bus/utils.c | 48 + bus/utils.h | 36 + cleanup-man-pages.sh | 86 + cmake/CMakeLists.txt | 611 + cmake/ConfigureChecks.cmake | 160 + cmake/Doxyfile.cmake | 182 + cmake/bus-test.bat.cmake | 14 + cmake/bus/CMakeLists.txt | 187 + cmake/bus/dbus-daemon.xml | 752 + cmake/bus/service.cmake | 3 + cmake/bus/system.conf.cmake | 62 + cmake/config.h.cmake | 252 + cmake/cross-compile.sh | 110 + cmake/dbus-env.bat.cmake | 8 + cmake/dbus/CMakeLists.txt | 309 + cmake/doc/CMakeLists.txt | 120 + cmake/doc/index.html.cmake | 55 + cmake/modules/CPackInstallConfig.cmake | 44 + cmake/modules/CheckForAbstractSockets.c | 33 + cmake/modules/CheckPrototypeExists.cmake | 35 + cmake/modules/CheckStructMember.cmake | 36 + cmake/modules/FindDoxygen.cmake | 3 + cmake/modules/FindGLIB.cmake | 42 + cmake/modules/FindLibExpat.cmake | 61 + cmake/modules/FindLibIconv.cmake | 52 + cmake/modules/MacroGetenvWinPath.cmake | 5 + cmake/modules/MacroLibrary.cmake | 9 + cmake/modules/MacroOptionalFindPackage.cmake | 22 + cmake/modules/Macros.cmake | 15 + cmake/modules/MacrosAutotools.cmake | 40 + cmake/modules/ProjectSourceGroup.cmake | 18 + cmake/modules/Win32Macros.cmake | 44 + cmake/test/CMakeLists.txt | 155 + cmake/test/name-test/CMakeLists.txt | 39 + cmake/tools/CMakeLists.txt | 49 + cmake/tools/dbus-launch.xml | 240 + cmake/tools/dbus-monitor.xml | 121 + cmake/tools/dbus-send.xml | 143 + compile | 310 + config.guess | 1530 ++ config.h.in | 480 + config.sub | 1773 ++ configure | 25654 +++++++++++++++++++ configure.ac | 1819 ++ dbus-1-uninstalled.pc.in | 17 + dbus-1.pc.in | 17 + dbus/Makefile.am | 312 + dbus/Makefile.in | 2282 ++ dbus/dbus-address.c | 826 + dbus/dbus-address.h | 67 + dbus/dbus-arch-deps.h.in | 67 + dbus/dbus-auth-script.c | 803 + dbus/dbus-auth-script.h | 37 + dbus/dbus-auth-util.c | 170 + dbus/dbus-auth.c | 2810 ++ dbus/dbus-auth.h | 83 + dbus/dbus-bus.c | 1590 ++ dbus/dbus-bus.h | 95 + dbus/dbus-connection-internal.h | 136 + dbus/dbus-connection.c | 6275 +++++ dbus/dbus-connection.h | 496 + dbus/dbus-credentials-util.c | 206 + dbus/dbus-credentials.c | 550 + dbus/dbus-credentials.h | 79 + dbus/dbus-dataslot.c | 479 + dbus/dbus-dataslot.h | 96 + dbus/dbus-errors.c | 422 + dbus/dbus-errors.h | 90 + dbus/dbus-file-unix.c | 417 + dbus/dbus-file-win.c | 407 + dbus/dbus-file.c | 28 + dbus/dbus-file.h | 63 + dbus/dbus-hash.c | 1831 ++ dbus/dbus-hash.h | 134 + dbus/dbus-internals.c | 1050 + dbus/dbus-internals.h | 379 + dbus/dbus-keyring.c | 1153 + dbus/dbus-keyring.h | 52 + dbus/dbus-list.c | 1339 + dbus/dbus-list.h | 100 + dbus/dbus-macros.h | 188 + dbus/dbus-mainloop.c | 940 + dbus/dbus-mainloop.h | 66 + dbus/dbus-marshal-basic.c | 1995 ++ dbus/dbus-marshal-basic.h | 237 + dbus/dbus-marshal-byteswap-util.c | 105 + dbus/dbus-marshal-byteswap.c | 252 + dbus/dbus-marshal-byteswap.h | 37 + dbus/dbus-marshal-header.c | 1512 ++ dbus/dbus-marshal-header.h | 128 + dbus/dbus-marshal-recursive-util.c | 3577 +++ dbus/dbus-marshal-recursive.c | 2752 ++ dbus/dbus-marshal-recursive.h | 181 + dbus/dbus-marshal-validate-util.c | 588 + dbus/dbus-marshal-validate.c | 1259 + dbus/dbus-marshal-validate.h | 206 + dbus/dbus-memory.c | 935 + dbus/dbus-memory.h | 73 + dbus/dbus-mempool.c | 635 + dbus/dbus-mempool.h | 50 + dbus/dbus-message-factory.c | 1305 + dbus/dbus-message-factory.h | 61 + dbus/dbus-message-internal.h | 107 + dbus/dbus-message-private.h | 143 + dbus/dbus-message-util.c | 1545 ++ dbus/dbus-message.c | 4767 ++++ dbus/dbus-message.h | 309 + dbus/dbus-misc.c | 248 + dbus/dbus-misc.h | 52 + dbus/dbus-nonce.c | 426 + dbus/dbus-nonce.h | 72 + dbus/dbus-object-tree.c | 1965 ++ dbus/dbus-object-tree.h | 63 + dbus/dbus-pending-call-internal.h | 67 + dbus/dbus-pending-call.c | 847 + dbus/dbus-pending-call.h | 79 + dbus/dbus-pipe-unix.c | 83 + dbus/dbus-pipe-win.c | 90 + dbus/dbus-pipe.c | 85 + dbus/dbus-pipe.h | 59 + dbus/dbus-protocol.h | 470 + dbus/dbus-resources.c | 290 + dbus/dbus-resources.h | 61 + dbus/dbus-server-debug-pipe.c | 431 + dbus/dbus-server-debug-pipe.h | 47 + dbus/dbus-server-launchd.c | 209 + dbus/dbus-server-launchd.h | 36 + dbus/dbus-server-protected.h | 176 + dbus/dbus-server-socket.c | 586 + dbus/dbus-server-socket.h | 54 + dbus/dbus-server-unix.c | 300 + dbus/dbus-server-unix.h | 37 + dbus/dbus-server-win.c | 122 + dbus/dbus-server-win.h | 36 + dbus/dbus-server.c | 1249 + dbus/dbus-server.h | 106 + dbus/dbus-sha.c | 969 + dbus/dbus-sha.h | 55 + dbus/dbus-shared.h | 131 + dbus/dbus-shell.c | 641 + dbus/dbus-shell.h | 41 + dbus/dbus-signature.c | 589 + dbus/dbus-signature.h | 95 + dbus/dbus-socket-set-epoll.c | 371 + dbus/dbus-socket-set-poll.c | 320 + dbus/dbus-socket-set.c | 47 + dbus/dbus-socket-set.h | 122 + dbus/dbus-sockets-win.h | 66 + dbus/dbus-spawn-win.c | 1035 + dbus/dbus-spawn.c | 1579 ++ dbus/dbus-spawn.h | 67 + dbus/dbus-string-private.h | 133 + dbus/dbus-string-util.c | 938 + dbus/dbus-string.c | 2698 ++ dbus/dbus-string.h | 314 + dbus/dbus-syntax.c | 309 + dbus/dbus-syntax.h | 58 + dbus/dbus-sysdeps-pthread.c | 280 + dbus/dbus-sysdeps-thread-win.c | 274 + dbus/dbus-sysdeps-unix.c | 4068 +++ dbus/dbus-sysdeps-unix.h | 145 + dbus/dbus-sysdeps-util-unix.c | 1165 + dbus/dbus-sysdeps-util-win.c | 1532 ++ dbus/dbus-sysdeps-util.c | 199 + dbus/dbus-sysdeps-win.c | 3622 +++ dbus/dbus-sysdeps-win.h | 90 + dbus/dbus-sysdeps-wince-glue.c | 1165 + dbus/dbus-sysdeps-wince-glue.h | 246 + dbus/dbus-sysdeps.c | 769 + dbus/dbus-sysdeps.h | 544 + dbus/dbus-test-main.c | 58 + dbus/dbus-test.c | 172 + dbus/dbus-test.h | 80 + dbus/dbus-threads-internal.h | 95 + dbus/dbus-threads.c | 633 + dbus/dbus-threads.h | 189 + dbus/dbus-timeout.c | 491 + dbus/dbus-timeout.h | 75 + dbus/dbus-transport-protected.h | 146 + dbus/dbus-transport-socket.c | 1438 ++ dbus/dbus-transport-socket.h | 46 + dbus/dbus-transport-unix.c | 442 + dbus/dbus-transport-unix.h | 37 + dbus/dbus-transport-win.c | 89 + dbus/dbus-transport-win.h | 33 + dbus/dbus-transport.c | 1517 ++ dbus/dbus-transport.h | 109 + dbus/dbus-types.h | 178 + dbus/dbus-userdb-util.c | 480 + dbus/dbus-userdb.c | 668 + dbus/dbus-userdb.h | 121 + dbus/dbus-uuidgen.c | 130 + dbus/dbus-uuidgen.h | 47 + dbus/dbus-valgrind-internal.h | 67 + dbus/dbus-watch.c | 705 + dbus/dbus-watch.h | 89 + dbus/dbus.h | 104 + dbus/sd-daemon.c | 435 + dbus/sd-daemon.h | 257 + dbus/versioninfo.rc.in | 52 + depcomp | 688 + doc/Makefile.am | 175 + doc/Makefile.in | 770 + doc/TODO | 155 + doc/busconfig.dtd | 65 + doc/dbus-cleanup-sockets.1 | 43 + doc/dbus-daemon.1.in | 766 + doc/dbus-faq.html | 437 + doc/dbus-faq.xml | 674 + doc/dbus-launch.1 | 183 + doc/dbus-monitor.1 | 78 + doc/dbus-send.1 | 109 + doc/dbus-specification.html | 2898 +++ doc/dbus-specification.xml | 5579 ++++ doc/dbus-test-plan.html | 141 + doc/dbus-test-plan.xml | 232 + doc/dbus-tutorial.html | 991 + doc/dbus-tutorial.xml | 1667 ++ doc/dbus-uuidgen.1 | 89 + doc/dcop-howto.txt | 559 + doc/diagram.png | Bin 0 -> 78762 bytes doc/diagram.svg | 590 + doc/doxygen_to_devhelp.xsl | 40 + doc/file-boilerplate.c | 27 + doc/introspect.dtd | 37 + doc/introspect.xsl | 106 + doc/system-activation.txt | 80 + install-sh | 527 + ltmain.sh | 9661 +++++++ m4/as-ac-expand.m4 | 49 + m4/compiler.m4 | 67 + m4/libtool.m4 | 8001 ++++++ m4/ltoptions.m4 | 384 + m4/ltsugar.m4 | 123 + m4/ltversion.m4 | 23 + m4/lt~obsolete.m4 | 98 + m4/pkg.m4 | 155 + m4/tp-compiler-flag.m4 | 43 + m4/tp-compiler-warnings.m4 | 49 + missing | 331 + test/Makefile.am | 323 + test/Makefile.in | 1455 ++ test/corrupt.c | 376 + .../auth/anonymous-client-successful.auth-script | 16 + .../auth/anonymous-server-successful.auth-script | 13 + test/data/auth/cancel.auth-script | 19 + .../data/auth/client-out-of-mechanisms.auth-script | 7 + test/data/auth/external-failed.auth-script | 11 + test/data/auth/external-root.auth-script | 11 + test/data/auth/external-silly.auth-script | 12 + test/data/auth/external-successful.auth-script | 12 + test/data/auth/extra-bytes.auth-script | 10 + test/data/auth/fail-after-n-attempts.auth-script | 34 + test/data/auth/fallback.auth-script | 17 + test/data/auth/invalid-command-client.auth-script | 8 + test/data/auth/invalid-command.auth-script | 7 + test/data/auth/invalid-hex-encoding.auth-script | 6 + test/data/auth/mechanisms.auth-script | 8 + test/data/equiv-config-files/basic/basic-1.conf | 25 + test/data/equiv-config-files/basic/basic-2.conf | 5 + .../equiv-config-files/basic/basic.d/basic.conf | 13 + .../equiv-config-files/entities/basic.d/basic.conf | 13 + .../equiv-config-files/entities/entities-1.conf | 14 + .../equiv-config-files/entities/entities-2.conf | 5 + test/data/incomplete-messages/missing-body.message | 19 + test/data/invalid-config-files/badselinux-1.conf | 10 + test/data/invalid-config-files/badselinux-2.conf | 10 + test/data/invalid-config-files/circular-1.conf | 4 + test/data/invalid-config-files/circular-2.conf | 4 + test/data/invalid-config-files/circular-3.conf | 4 + .../data/invalid-config-files/not-well-formed.conf | 5 + test/data/invalid-config-files/truncated-file.conf | 9 + test/data/invalid-messages/array-of-nil.message | 31 + .../array-with-mixed-types.message | 52 + .../invalid-messages/bad-boolean-array.message | 27 + test/data/invalid-messages/bad-boolean.message | 22 + test/data/invalid-messages/bad-endian.message | 25 + .../bad-header-field-alignment.message | 38 + .../boolean-has-no-value.message-raw | Bin 0 -> 102 bytes test/data/invalid-messages/local-namespace.message | 21 + test/data/invalid-messages/no-dot-in-name.message | 19 + .../not-nul-header-padding.message | 25 + test/data/invalid-messages/overlong-name.message | 20 + .../too-little-header-padding.message | 24 + .../too-much-header-padding-by-far.message | 26 + .../too-much-header-padding.message | 23 + test/data/invalid-messages/too-short-dict.message | 28 + ...org.freedesktop.DBus.TestSuiteNoExec.service.in | 4 + ....freedesktop.DBus.TestSuiteNoService.service.in | 4 + ...org.freedesktop.DBus.TestSuiteNoUser.service.in | 3 + test/data/sha-1/Readme.txt | 83 + test/data/sha-1/bit-hashes.sha1 | 1239 + test/data/sha-1/bit-messages.sha1 | 4009 +++ test/data/sha-1/byte-hashes.sha1 | 343 + test/data/sha-1/byte-messages.sha1 | 2294 ++ .../debug-allow-all-fail.conf.in | 17 + .../debug-allow-all-pass.conf.in | 17 + test/data/valid-config-files/basic.conf | 32 + test/data/valid-config-files/basic.d/basic.conf | 13 + .../debug-allow-all-sha1.conf.in | 16 + .../valid-config-files/debug-allow-all.conf.in | 15 + test/data/valid-config-files/entities.conf | 14 + test/data/valid-config-files/incoming-limit.conf | 18 + test/data/valid-config-files/many-rules.conf | 61 + test/data/valid-config-files/system.d/test.conf | 20 + .../array-of-array-of-uint32.message | 33 + test/data/valid-messages/dict-simple.message | 15 + test/data/valid-messages/dict.message | 47 + test/data/valid-messages/emptiness.message | 63 + test/data/valid-messages/lots-of-arguments.message | 65 + test/data/valid-messages/no-padding.message | 22 + test/data/valid-messages/opposite-endian.message | 30 + test/data/valid-messages/recursive-types.message | 99 + test/data/valid-messages/simplest-manual.message | 30 + test/data/valid-messages/simplest.message | 10 + .../standard-acquire-service.message | 26 + test/data/valid-messages/standard-hello.message | 22 + .../valid-messages/standard-list-services.message | 22 + .../valid-messages/standard-service-exists.message | 24 + .../valid-messages/unknown-header-field.message | 19 + ...reedesktop.DBus.TestSuiteEchoService.service.in | 5 + ...esktop.DBus.TestSuiteSegfaultService.service.in | 5 + ...p.DBus.TestSuiteShellEchoServiceFail.service.in | 5 + ...Bus.TestSuiteShellEchoServiceSuccess.service.in | 5 + ...reedesktop.DBus.TestSuite.PrivServer.service.in | 4 + ...reedesktop.DBus.TestSuiteEchoService.service.in | 3 + ...top.DBus.TestSuiteForkingEchoService.service.in | 3 + ...esktop.DBus.TestSuiteSegfaultService.service.in | 4 + ...p.DBus.TestSuiteShellEchoServiceFail.service.in | 3 + ...Bus.TestSuiteShellEchoServiceSuccess.service.in | 4 + test/dbus-daemon-eavesdrop.c | 555 + test/dbus-daemon.c | 368 + test/dbus-test-runner | 43 + test/internals/refs.c | 608 + test/internals/syslog.c | 100 + test/loopback.c | 211 + test/marshal.c | 257 + test/name-test/Makefile.am | 39 + test/name-test/Makefile.in | 773 + test/name-test/run-test-systemserver.sh | 51 + test/name-test/run-test.sh | 60 + test/name-test/test-activation-forking.py | 60 + test/name-test/test-autolaunch.c | 50 + test/name-test/test-ids.c | 56 + test/name-test/test-pending-call-dispatch.c | 124 + test/name-test/test-pending-call-timeout.c | 103 + test/name-test/test-privserver-client.c | 168 + test/name-test/test-privserver.c | 123 + test/name-test/test-shutdown.c | 68 + test/name-test/test-threads-init.c | 180 + test/name-test/test-wait-for-echo.py | 41 + test/name-test/tmp-session-like-system.conf | 91 + test/relay.c | 322 + test/shell-test.c | 109 + test/spawn-test.c | 44 + test/syntax.c | 289 + test/test-exit.c | 7 + test/test-names.c | 78 + test/test-segfault.c | 30 + test/test-service.c | 505 + test/test-shell-service.c | 203 + test/test-sleep-forever.c | 22 + test/test-utils.c | 315 + test/test-utils.h | 25 + tools/Makefile.am | 76 + tools/Makefile.in | 786 + tools/dbus-cleanup-sockets.c | 448 + tools/dbus-launch-win.c | 170 + tools/dbus-launch-x11.c | 468 + tools/dbus-launch.c | 1228 + tools/dbus-launch.h | 57 + tools/dbus-monitor.c | 416 + tools/dbus-print-message.c | 409 + tools/dbus-print-message.h | 31 + tools/dbus-send.c | 542 + tools/dbus-uuidgen.c | 161 + tools/lcov.am | 43 + tools/run-with-tmp-session-bus.sh | 76 + tools/strtoll.c | 166 + tools/strtoull.c | 144 + 456 files changed, 242306 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 ChangeLog.pre-1-0 create mode 100644 ChangeLog.pre-1-2 create mode 100644 Doxyfile.in create mode 100644 HACKING create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 Makefile.in create mode 100644 NEWS create mode 100644 NEWS.pre-1-0 create mode 100644 NEWS.pre-1-2 create mode 100644 README create mode 100755 README.cygwin create mode 100644 README.launchd create mode 100644 README.win create mode 100644 README.wince create mode 100644 aclocal.m4 create mode 100644 bus/Makefile.am create mode 100644 bus/Makefile.in create mode 100644 bus/activation-exit-codes.h create mode 100644 bus/activation-helper-bin.c create mode 100644 bus/activation-helper.c create mode 100644 bus/activation-helper.h create mode 100644 bus/activation.c create mode 100644 bus/activation.h create mode 100644 bus/bus.c create mode 100644 bus/bus.h create mode 100644 bus/config-loader-expat.c create mode 100644 bus/config-loader-libxml.c create mode 100644 bus/config-parser-common.c create mode 100644 bus/config-parser-common.h create mode 100644 bus/config-parser-trivial.c create mode 100644 bus/config-parser-trivial.h create mode 100644 bus/config-parser.c create mode 100644 bus/config-parser.h create mode 100644 bus/connection.c create mode 100644 bus/connection.h create mode 100644 bus/dbus.service.in create mode 100644 bus/dbus.socket.in create mode 100644 bus/desktop-file.c create mode 100644 bus/desktop-file.h create mode 100644 bus/dir-watch-default.c create mode 100644 bus/dir-watch-dnotify.c create mode 100644 bus/dir-watch-inotify.c create mode 100644 bus/dir-watch-kqueue.c create mode 100644 bus/dir-watch.h create mode 100644 bus/dispatch.c create mode 100644 bus/dispatch.h create mode 100644 bus/driver.c create mode 100644 bus/driver.h create mode 100644 bus/expirelist.c create mode 100644 bus/expirelist.h create mode 100644 bus/main.c create mode 100644 bus/messagebus-config.in create mode 100755 bus/messagebus.in create mode 100644 bus/org.freedesktop.dbus-session.plist.in create mode 100644 bus/policy.c create mode 100644 bus/policy.h create mode 100644 bus/rc.messagebus.in create mode 100644 bus/selinux.c create mode 100644 bus/selinux.h create mode 100644 bus/services.c create mode 100644 bus/services.h create mode 100644 bus/session.conf.in create mode 100644 bus/signals.c create mode 100644 bus/signals.h create mode 100644 bus/stats.c create mode 100644 bus/stats.h create mode 100644 bus/system.conf.in create mode 100644 bus/test-launch-helper.c create mode 100644 bus/test-main.c create mode 100644 bus/test-system.c create mode 100644 bus/test.c create mode 100644 bus/test.h create mode 100644 bus/utils.c create mode 100644 bus/utils.h create mode 100755 cleanup-man-pages.sh create mode 100644 cmake/CMakeLists.txt create mode 100644 cmake/ConfigureChecks.cmake create mode 100644 cmake/Doxyfile.cmake create mode 100644 cmake/bus-test.bat.cmake create mode 100644 cmake/bus/CMakeLists.txt create mode 100644 cmake/bus/dbus-daemon.xml create mode 100644 cmake/bus/service.cmake create mode 100644 cmake/bus/system.conf.cmake create mode 100644 cmake/config.h.cmake create mode 100755 cmake/cross-compile.sh create mode 100644 cmake/dbus-env.bat.cmake create mode 100644 cmake/dbus/CMakeLists.txt create mode 100644 cmake/doc/CMakeLists.txt create mode 100644 cmake/doc/index.html.cmake create mode 100644 cmake/modules/CPackInstallConfig.cmake create mode 100644 cmake/modules/CheckForAbstractSockets.c create mode 100644 cmake/modules/CheckPrototypeExists.cmake create mode 100644 cmake/modules/CheckStructMember.cmake create mode 100644 cmake/modules/FindDoxygen.cmake create mode 100644 cmake/modules/FindGLIB.cmake create mode 100644 cmake/modules/FindLibExpat.cmake create mode 100644 cmake/modules/FindLibIconv.cmake create mode 100644 cmake/modules/MacroGetenvWinPath.cmake create mode 100644 cmake/modules/MacroLibrary.cmake create mode 100644 cmake/modules/MacroOptionalFindPackage.cmake create mode 100644 cmake/modules/Macros.cmake create mode 100644 cmake/modules/MacrosAutotools.cmake create mode 100644 cmake/modules/ProjectSourceGroup.cmake create mode 100644 cmake/modules/Win32Macros.cmake create mode 100644 cmake/test/CMakeLists.txt create mode 100644 cmake/test/name-test/CMakeLists.txt create mode 100644 cmake/tools/CMakeLists.txt create mode 100644 cmake/tools/dbus-launch.xml create mode 100644 cmake/tools/dbus-monitor.xml create mode 100644 cmake/tools/dbus-send.xml create mode 100755 compile create mode 100755 config.guess create mode 100644 config.h.in create mode 100755 config.sub create mode 100755 configure create mode 100644 configure.ac create mode 100644 dbus-1-uninstalled.pc.in create mode 100644 dbus-1.pc.in create mode 100644 dbus/Makefile.am create mode 100644 dbus/Makefile.in create mode 100644 dbus/dbus-address.c create mode 100644 dbus/dbus-address.h create mode 100644 dbus/dbus-arch-deps.h.in create mode 100644 dbus/dbus-auth-script.c create mode 100644 dbus/dbus-auth-script.h create mode 100644 dbus/dbus-auth-util.c create mode 100644 dbus/dbus-auth.c create mode 100644 dbus/dbus-auth.h create mode 100644 dbus/dbus-bus.c create mode 100644 dbus/dbus-bus.h create mode 100644 dbus/dbus-connection-internal.h create mode 100644 dbus/dbus-connection.c create mode 100644 dbus/dbus-connection.h create mode 100644 dbus/dbus-credentials-util.c create mode 100644 dbus/dbus-credentials.c create mode 100644 dbus/dbus-credentials.h create mode 100644 dbus/dbus-dataslot.c create mode 100644 dbus/dbus-dataslot.h create mode 100644 dbus/dbus-errors.c create mode 100644 dbus/dbus-errors.h create mode 100644 dbus/dbus-file-unix.c create mode 100644 dbus/dbus-file-win.c create mode 100644 dbus/dbus-file.c create mode 100644 dbus/dbus-file.h create mode 100644 dbus/dbus-hash.c create mode 100644 dbus/dbus-hash.h create mode 100644 dbus/dbus-internals.c create mode 100644 dbus/dbus-internals.h create mode 100644 dbus/dbus-keyring.c create mode 100644 dbus/dbus-keyring.h create mode 100644 dbus/dbus-list.c create mode 100644 dbus/dbus-list.h create mode 100644 dbus/dbus-macros.h create mode 100644 dbus/dbus-mainloop.c create mode 100644 dbus/dbus-mainloop.h create mode 100644 dbus/dbus-marshal-basic.c create mode 100644 dbus/dbus-marshal-basic.h create mode 100644 dbus/dbus-marshal-byteswap-util.c create mode 100644 dbus/dbus-marshal-byteswap.c create mode 100644 dbus/dbus-marshal-byteswap.h create mode 100644 dbus/dbus-marshal-header.c create mode 100644 dbus/dbus-marshal-header.h create mode 100644 dbus/dbus-marshal-recursive-util.c create mode 100644 dbus/dbus-marshal-recursive.c create mode 100644 dbus/dbus-marshal-recursive.h create mode 100644 dbus/dbus-marshal-validate-util.c create mode 100644 dbus/dbus-marshal-validate.c create mode 100644 dbus/dbus-marshal-validate.h create mode 100644 dbus/dbus-memory.c create mode 100644 dbus/dbus-memory.h create mode 100644 dbus/dbus-mempool.c create mode 100644 dbus/dbus-mempool.h create mode 100644 dbus/dbus-message-factory.c create mode 100644 dbus/dbus-message-factory.h create mode 100644 dbus/dbus-message-internal.h create mode 100644 dbus/dbus-message-private.h create mode 100644 dbus/dbus-message-util.c create mode 100644 dbus/dbus-message.c create mode 100644 dbus/dbus-message.h create mode 100644 dbus/dbus-misc.c create mode 100644 dbus/dbus-misc.h create mode 100644 dbus/dbus-nonce.c create mode 100644 dbus/dbus-nonce.h create mode 100644 dbus/dbus-object-tree.c create mode 100644 dbus/dbus-object-tree.h create mode 100644 dbus/dbus-pending-call-internal.h create mode 100644 dbus/dbus-pending-call.c create mode 100644 dbus/dbus-pending-call.h create mode 100644 dbus/dbus-pipe-unix.c create mode 100644 dbus/dbus-pipe-win.c create mode 100644 dbus/dbus-pipe.c create mode 100644 dbus/dbus-pipe.h create mode 100644 dbus/dbus-protocol.h create mode 100644 dbus/dbus-resources.c create mode 100644 dbus/dbus-resources.h create mode 100644 dbus/dbus-server-debug-pipe.c create mode 100644 dbus/dbus-server-debug-pipe.h create mode 100644 dbus/dbus-server-launchd.c create mode 100644 dbus/dbus-server-launchd.h create mode 100644 dbus/dbus-server-protected.h create mode 100644 dbus/dbus-server-socket.c create mode 100644 dbus/dbus-server-socket.h create mode 100644 dbus/dbus-server-unix.c create mode 100644 dbus/dbus-server-unix.h create mode 100644 dbus/dbus-server-win.c create mode 100644 dbus/dbus-server-win.h create mode 100644 dbus/dbus-server.c create mode 100644 dbus/dbus-server.h create mode 100644 dbus/dbus-sha.c create mode 100644 dbus/dbus-sha.h create mode 100644 dbus/dbus-shared.h create mode 100644 dbus/dbus-shell.c create mode 100644 dbus/dbus-shell.h create mode 100644 dbus/dbus-signature.c create mode 100644 dbus/dbus-signature.h create mode 100644 dbus/dbus-socket-set-epoll.c create mode 100644 dbus/dbus-socket-set-poll.c create mode 100644 dbus/dbus-socket-set.c create mode 100644 dbus/dbus-socket-set.h create mode 100644 dbus/dbus-sockets-win.h create mode 100644 dbus/dbus-spawn-win.c create mode 100644 dbus/dbus-spawn.c create mode 100644 dbus/dbus-spawn.h create mode 100644 dbus/dbus-string-private.h create mode 100644 dbus/dbus-string-util.c create mode 100644 dbus/dbus-string.c create mode 100644 dbus/dbus-string.h create mode 100644 dbus/dbus-syntax.c create mode 100644 dbus/dbus-syntax.h create mode 100644 dbus/dbus-sysdeps-pthread.c create mode 100644 dbus/dbus-sysdeps-thread-win.c create mode 100644 dbus/dbus-sysdeps-unix.c create mode 100644 dbus/dbus-sysdeps-unix.h create mode 100644 dbus/dbus-sysdeps-util-unix.c create mode 100644 dbus/dbus-sysdeps-util-win.c create mode 100644 dbus/dbus-sysdeps-util.c create mode 100644 dbus/dbus-sysdeps-win.c create mode 100644 dbus/dbus-sysdeps-win.h create mode 100644 dbus/dbus-sysdeps-wince-glue.c create mode 100644 dbus/dbus-sysdeps-wince-glue.h create mode 100644 dbus/dbus-sysdeps.c create mode 100644 dbus/dbus-sysdeps.h create mode 100644 dbus/dbus-test-main.c create mode 100644 dbus/dbus-test.c create mode 100644 dbus/dbus-test.h create mode 100644 dbus/dbus-threads-internal.h create mode 100644 dbus/dbus-threads.c create mode 100644 dbus/dbus-threads.h create mode 100644 dbus/dbus-timeout.c create mode 100644 dbus/dbus-timeout.h create mode 100644 dbus/dbus-transport-protected.h create mode 100644 dbus/dbus-transport-socket.c create mode 100644 dbus/dbus-transport-socket.h create mode 100644 dbus/dbus-transport-unix.c create mode 100644 dbus/dbus-transport-unix.h create mode 100644 dbus/dbus-transport-win.c create mode 100644 dbus/dbus-transport-win.h create mode 100644 dbus/dbus-transport.c create mode 100644 dbus/dbus-transport.h create mode 100644 dbus/dbus-types.h create mode 100644 dbus/dbus-userdb-util.c create mode 100644 dbus/dbus-userdb.c create mode 100644 dbus/dbus-userdb.h create mode 100644 dbus/dbus-uuidgen.c create mode 100644 dbus/dbus-uuidgen.h create mode 100644 dbus/dbus-valgrind-internal.h create mode 100644 dbus/dbus-watch.c create mode 100644 dbus/dbus-watch.h create mode 100644 dbus/dbus.h create mode 100644 dbus/sd-daemon.c create mode 100644 dbus/sd-daemon.h create mode 100644 dbus/versioninfo.rc.in create mode 100755 depcomp create mode 100644 doc/Makefile.am create mode 100644 doc/Makefile.in create mode 100644 doc/TODO create mode 100644 doc/busconfig.dtd create mode 100644 doc/dbus-cleanup-sockets.1 create mode 100644 doc/dbus-daemon.1.in create mode 100644 doc/dbus-faq.html create mode 100644 doc/dbus-faq.xml create mode 100644 doc/dbus-launch.1 create mode 100644 doc/dbus-monitor.1 create mode 100644 doc/dbus-send.1 create mode 100644 doc/dbus-specification.html create mode 100644 doc/dbus-specification.xml create mode 100644 doc/dbus-test-plan.html create mode 100644 doc/dbus-test-plan.xml create mode 100644 doc/dbus-tutorial.html create mode 100644 doc/dbus-tutorial.xml create mode 100644 doc/dbus-uuidgen.1 create mode 100644 doc/dcop-howto.txt create mode 100644 doc/diagram.png create mode 100644 doc/diagram.svg create mode 100644 doc/doxygen_to_devhelp.xsl create mode 100644 doc/file-boilerplate.c create mode 100644 doc/introspect.dtd create mode 100644 doc/introspect.xsl create mode 100644 doc/system-activation.txt create mode 100755 install-sh create mode 100644 ltmain.sh create mode 100644 m4/as-ac-expand.m4 create mode 100644 m4/compiler.m4 create mode 100644 m4/libtool.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100644 m4/pkg.m4 create mode 100644 m4/tp-compiler-flag.m4 create mode 100644 m4/tp-compiler-warnings.m4 create mode 100755 missing create mode 100644 test/Makefile.am create mode 100644 test/Makefile.in create mode 100644 test/corrupt.c create mode 100644 test/data/auth/anonymous-client-successful.auth-script create mode 100644 test/data/auth/anonymous-server-successful.auth-script create mode 100644 test/data/auth/cancel.auth-script create mode 100644 test/data/auth/client-out-of-mechanisms.auth-script create mode 100644 test/data/auth/external-failed.auth-script create mode 100644 test/data/auth/external-root.auth-script create mode 100644 test/data/auth/external-silly.auth-script create mode 100644 test/data/auth/external-successful.auth-script create mode 100644 test/data/auth/extra-bytes.auth-script create mode 100644 test/data/auth/fail-after-n-attempts.auth-script create mode 100644 test/data/auth/fallback.auth-script create mode 100644 test/data/auth/invalid-command-client.auth-script create mode 100644 test/data/auth/invalid-command.auth-script create mode 100644 test/data/auth/invalid-hex-encoding.auth-script create mode 100644 test/data/auth/mechanisms.auth-script create mode 100644 test/data/equiv-config-files/basic/basic-1.conf create mode 100644 test/data/equiv-config-files/basic/basic-2.conf create mode 100644 test/data/equiv-config-files/basic/basic.d/basic.conf create mode 100644 test/data/equiv-config-files/entities/basic.d/basic.conf create mode 100644 test/data/equiv-config-files/entities/entities-1.conf create mode 100644 test/data/equiv-config-files/entities/entities-2.conf create mode 100644 test/data/incomplete-messages/missing-body.message create mode 100644 test/data/invalid-config-files/badselinux-1.conf create mode 100644 test/data/invalid-config-files/badselinux-2.conf create mode 100644 test/data/invalid-config-files/circular-1.conf create mode 100644 test/data/invalid-config-files/circular-2.conf create mode 100644 test/data/invalid-config-files/circular-3.conf create mode 100644 test/data/invalid-config-files/not-well-formed.conf create mode 100644 test/data/invalid-config-files/truncated-file.conf create mode 100644 test/data/invalid-messages/array-of-nil.message create mode 100644 test/data/invalid-messages/array-with-mixed-types.message create mode 100644 test/data/invalid-messages/bad-boolean-array.message create mode 100644 test/data/invalid-messages/bad-boolean.message create mode 100644 test/data/invalid-messages/bad-endian.message create mode 100644 test/data/invalid-messages/bad-header-field-alignment.message create mode 100644 test/data/invalid-messages/boolean-has-no-value.message-raw create mode 100644 test/data/invalid-messages/local-namespace.message create mode 100644 test/data/invalid-messages/no-dot-in-name.message create mode 100644 test/data/invalid-messages/not-nul-header-padding.message create mode 100644 test/data/invalid-messages/overlong-name.message create mode 100644 test/data/invalid-messages/too-little-header-padding.message create mode 100644 test/data/invalid-messages/too-much-header-padding-by-far.message create mode 100644 test/data/invalid-messages/too-much-header-padding.message create mode 100644 test/data/invalid-messages/too-short-dict.message create mode 100644 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service.in create mode 100644 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service.in create mode 100644 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service.in create mode 100644 test/data/sha-1/Readme.txt create mode 100644 test/data/sha-1/bit-hashes.sha1 create mode 100644 test/data/sha-1/bit-messages.sha1 create mode 100644 test/data/sha-1/byte-hashes.sha1 create mode 100644 test/data/sha-1/byte-messages.sha1 create mode 100644 test/data/valid-config-files-system/debug-allow-all-fail.conf.in create mode 100644 test/data/valid-config-files-system/debug-allow-all-pass.conf.in create mode 100644 test/data/valid-config-files/basic.conf create mode 100644 test/data/valid-config-files/basic.d/basic.conf create mode 100644 test/data/valid-config-files/debug-allow-all-sha1.conf.in create mode 100644 test/data/valid-config-files/debug-allow-all.conf.in create mode 100644 test/data/valid-config-files/entities.conf create mode 100644 test/data/valid-config-files/incoming-limit.conf create mode 100644 test/data/valid-config-files/many-rules.conf create mode 100644 test/data/valid-config-files/system.d/test.conf create mode 100644 test/data/valid-messages/array-of-array-of-uint32.message create mode 100644 test/data/valid-messages/dict-simple.message create mode 100644 test/data/valid-messages/dict.message create mode 100644 test/data/valid-messages/emptiness.message create mode 100644 test/data/valid-messages/lots-of-arguments.message create mode 100644 test/data/valid-messages/no-padding.message create mode 100644 test/data/valid-messages/opposite-endian.message create mode 100644 test/data/valid-messages/recursive-types.message create mode 100644 test/data/valid-messages/simplest-manual.message create mode 100644 test/data/valid-messages/simplest.message create mode 100644 test/data/valid-messages/standard-acquire-service.message create mode 100644 test/data/valid-messages/standard-hello.message create mode 100644 test/data/valid-messages/standard-list-services.message create mode 100644 test/data/valid-messages/standard-service-exists.message create mode 100644 test/data/valid-messages/unknown-header-field.message create mode 100644 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service.in create mode 100644 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service.in create mode 100644 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service.in create mode 100644 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service.in create mode 100644 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service.in create mode 100644 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service.in create mode 100644 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service.in create mode 100644 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service.in create mode 100644 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service.in create mode 100644 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service.in create mode 100644 test/dbus-daemon-eavesdrop.c create mode 100644 test/dbus-daemon.c create mode 100755 test/dbus-test-runner create mode 100644 test/internals/refs.c create mode 100644 test/internals/syslog.c create mode 100644 test/loopback.c create mode 100644 test/marshal.c create mode 100644 test/name-test/Makefile.am create mode 100644 test/name-test/Makefile.in create mode 100755 test/name-test/run-test-systemserver.sh create mode 100755 test/name-test/run-test.sh create mode 100644 test/name-test/test-activation-forking.py create mode 100644 test/name-test/test-autolaunch.c create mode 100644 test/name-test/test-ids.c create mode 100644 test/name-test/test-pending-call-dispatch.c create mode 100644 test/name-test/test-pending-call-timeout.c create mode 100644 test/name-test/test-privserver-client.c create mode 100644 test/name-test/test-privserver.c create mode 100644 test/name-test/test-shutdown.c create mode 100644 test/name-test/test-threads-init.c create mode 100755 test/name-test/test-wait-for-echo.py create mode 100644 test/name-test/tmp-session-like-system.conf create mode 100644 test/relay.c create mode 100644 test/shell-test.c create mode 100644 test/spawn-test.c create mode 100644 test/syntax.c create mode 100644 test/test-exit.c create mode 100644 test/test-names.c create mode 100644 test/test-segfault.c create mode 100644 test/test-service.c create mode 100644 test/test-shell-service.c create mode 100644 test/test-sleep-forever.c create mode 100644 test/test-utils.c create mode 100644 test/test-utils.h create mode 100644 tools/Makefile.am create mode 100644 tools/Makefile.in create mode 100644 tools/dbus-cleanup-sockets.c create mode 100644 tools/dbus-launch-win.c create mode 100644 tools/dbus-launch-x11.c create mode 100644 tools/dbus-launch.c create mode 100644 tools/dbus-launch.h create mode 100644 tools/dbus-monitor.c create mode 100644 tools/dbus-print-message.c create mode 100644 tools/dbus-print-message.h create mode 100644 tools/dbus-send.c create mode 100644 tools/dbus-uuidgen.c create mode 100644 tools/lcov.am create mode 100755 tools/run-with-tmp-session-bus.sh create mode 100644 tools/strtoll.c create mode 100644 tools/strtoull.c diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..ed8afdf --- /dev/null +++ b/AUTHORS @@ -0,0 +1,122 @@ +Alban Crequy +Alexander Larsson +Anders Carlsson +Andre Heinecke +Artem Bityutskiy +Aurelien Jarno +Benjamin Reed +Brian Cameron +Brian Cameron +Chris Mayo +Christian Dywan +Christian Ehrlicher +Christian Persch (GNOME) +Colin Walters +Colin Watson +Cosimo Alfarano +Cristian Rodríguez +Cyril Brulebois +Daniel P. Berrange +Daniel Reed +David Zeuthen +Dennis Kaarsemaker +Diego E. 'Flameeyes' Pettenò +Eamon Walsh +Federico Mena Quintero +Frank Osterfeld +Frederic Crozat +Fridrich Štrba +Grzegorz Dąbrowski +Harald Fernengel +Harri Porten +Hasso Tepper +Havoc Pennington +Havoc Pennington +Hendrik Buschmeier +James Carter +James Westby +James Willcox +Jens Granseuer +Jérémie Dimino +Jiří Klimeš +Joe Marcus Clarke +Joe Shaw +Johan Gyllenspetz +Johannes Carlsson +John (J5) Palmieri +Jon Gosting +Jon Trowbridge +Kay Sievers +Kimmo Hämäläinen +Kjartan Maraas +Kristian Høgsberg +Kristian Rietveld +Kurt Miller +Lawrence R. Steeger +Lennart Poettering +Lennart Poettering +Lionel Landwerlin +Luiz Augusto Von Dentz +Marc Brockschmidt +Marc Mutz +Marcus Brinkmann +Mark Brand +Mark McLoughlin +Matthias Clasen +Matt McCutchen +Michael Meeks +Michael Meeks +Mikael Hallendal +Mikael Hallendal +Mike McQuaid +Miloslav Trmac +Murray Cumming +Nguyễn Thái Ngọc Duy +Ole André Vadla Ravnås +Olivier Andrieu +Oswald Buddenhagen +Owen Fraser-Green +Patrick von Reth +Pau Garcia i Quiles +Paul Bolle +Peter Breitenlohner +Peter Kümmel +Peter McCurdy +Philip Blundell +Plácido Revilla +Ralf Habacker +Ray Strode +Richard A. Hankins +Richard Hughes +Richard Hult +Richard Hult +Robert McQueen +Roberto Guido +Romain Pokrzywka +Ross Burton +Ryan Lortie +Sascha Silbe +Sascha Silbe +Scott James Remnant +Scott James Remnant +Sebastian Sauer +Seth Nickell +Simon McVittie +Sjoerd Simons +Sledz +Steve Grubb +Sven Herzberg +Thiago Macieira +Tim Dijkstra +Tobias Mueller +Tomas Hoger +Tomas Pelka +Tom Hughes +Tor Lillqvist +Waldo Bastian +William Lachance +Will Thompson +Wulf C. Krueger +Xan Lopez +Yaakov Selkowitz +Zack Rusin diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..8260b10 --- /dev/null +++ b/COPYING @@ -0,0 +1,552 @@ +D-Bus is licensed to you under your choice of the Academic Free +License version 2.1, or the GNU General Public License version 2 +(or, at your option any later version). + +Both licenses are included here. Some of the standalone binaries are +under the GPL only; in particular, but not limited to, +tools/dbus-cleanup-sockets.c and test/decode-gcov.c. Each source code +file is marked with the proper copyright information - if you find a +file that isn't marked please bring it to our attention. + +The Academic Free License +v. 2.1 + +This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work: + +Licensed under the Academic Free License version 2.1 + +1) Grant of Copyright License. Licensor hereby grants You a +world-wide, royalty-free, non-exclusive, perpetual, sublicenseable +license to do the following: + +a) to reproduce the Original Work in copies; + +b) to prepare derivative works ("Derivative Works") based upon the Original Work; + +c) to distribute copies of the Original Work and Derivative Works to the public; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license, under +patent claims owned or controlled by the Licensor that are embodied in +the Original Work as furnished by the Licensor, to make, use, sell and +offer for sale the Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the +preferred form of the Original Work for making modifications to it and +all available documentation describing how to modify the Original +Work. Licensor hereby agrees to provide a machine-readable copy of the +Source Code of the Original Work along with each copy of the Original +Work that Licensor distributes. Licensor reserves the right to satisfy +this obligation by placing a machine-readable copy of the Source Code +in an information repository reasonably calculated to permit +inexpensive and convenient access by You for as long as Licensor +continues to distribute the Original Work, and by publishing the +address of that information repository in a notice immediately +following the copyright notice that applies to the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor +the names of any contributors to the Original Work, nor any of their +trademarks or service marks, may be used to endorse or promote +products derived from this Original Work without express prior written +permission of the Licensor. Nothing in this License shall be deemed to +grant any rights to trademarks, copyrights, patents, trade secrets or +any other intellectual property of Licensor except as expressly stated +herein. No patent license is granted to make, use, sell or offer to +sell embodiments of any patent claims other than the licensed claims +defined in Section 2. No right is granted to the trademarks of +Licensor even if such marks are included in the Original Work. Nothing +in this License shall be interpreted to prohibit Licensor from +licensing under different terms from this License any Original Work +that Licensor otherwise would have a right to license. + +5) This section intentionally omitted. + +6) Attribution Rights. You must retain, in the Source Code of any +Derivative Works that You create, all copyright, patent or trademark +notices from the Source Code of the Original Work, as well as any +notices of licensing and any descriptive text identified therein as an +"Attribution Notice." You must cause the Source Code for any +Derivative Works that You create to carry a prominent Attribution +Notice reasonably calculated to inform recipients that You have +modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor +warrants that the copyright in and to the Original Work and the patent +rights granted herein by Licensor are owned by the Licensor or are +sublicensed to You under the terms of this License with the permission +of the contributor(s) of those copyrights and patent rights. Except as +expressly stated in the immediately proceeding sentence, the Original +Work is provided under this License on an "AS IS" BASIS and WITHOUT +WARRANTY, either express or implied, including, without limitation, +the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL +WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential +part of this License. No license to Original Work is granted hereunder +except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal +theory, whether in tort (including negligence), contract, or +otherwise, shall the Licensor be liable to any person for any direct, +indirect, special, incidental, or consequential damages of any +character arising as a result of this License or the use of the +Original Work including, without limitation, damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and +all other commercial damages or losses. This limitation of liability +shall not apply to liability for death or personal injury resulting +from Licensor's negligence to the extent applicable law prohibits such +limitation. Some jurisdictions do not allow the exclusion or +limitation of incidental or consequential damages, so this exclusion +and limitation may not apply to You. + +9) Acceptance and Termination. If You distribute copies of the +Original Work or a Derivative Work, You must make a reasonable effort +under the circumstances to obtain the express assent of recipients to +the terms of this License. Nothing else but this License (or another +written agreement between Licensor and You) grants You permission to +create Derivative Works based upon the Original Work or to exercise +any of the rights granted in Section 1 herein, and any attempt to do +so except under the terms of this License (or another written +agreement between Licensor and You) is expressly prohibited by +U.S. copyright law, the equivalent laws of other countries, and by +international treaty. Therefore, by exercising any of the rights +granted to You in Section 1 herein, You indicate Your acceptance of +this License and all of its terms and conditions. + +10) Termination for Patent Action. This License shall terminate +automatically and You may no longer exercise any of the rights granted +to You by this License as of the date You commence an action, +including a cross-claim or counterclaim, against Licensor or any +licensee alleging that the Original Work infringes a patent. This +termination provision shall not apply for an action alleging patent +infringement by combinations of the Original Work with other software +or hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating +to this License may be brought only in the courts of a jurisdiction +wherein the Licensor resides or in which Licensor conducts its primary +business, and under the laws of that jurisdiction excluding its +conflict-of-law provisions. The application of the United Nations +Convention on Contracts for the International Sale of Goods is +expressly excluded. Any use of the Original Work outside the scope of +this License or after its termination shall be subject to the +requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 +et seq., the equivalent laws of other countries, and international +treaty. This section shall survive the termination of this License. + +12) Attorneys Fees. In any action to enforce the terms of this License +or seeking damages relating thereto, the prevailing party shall be +entitled to recover its costs and expenses, including, without +limitation, reasonable attorneys' fees and costs incurred in +connection with such action, including any appeal of such action. This +section shall survive the termination of this License. + +13) Miscellaneous. This License represents the complete agreement +concerning the subject matter hereof. If any provision of this License +is held to be unenforceable, such provision shall be reformed only to +the extent necessary to make it enforceable. + +14) Definition of "You" in This License. "You" throughout this +License, whether in upper or lower case, means an individual or a +legal entity exercising rights under, and complying with all of the +terms of, this License. For legal entities, "You" includes any entity +that controls, is controlled by, or is under common control with +you. For purposes of this definition, "control" means (i) the power, +direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +15) Right to Use. You may use the Original Work in all ways not +otherwise restricted or conditioned by this License or by law, and +Licensor promises not to interfere with or be responsible for such +uses by You. + +This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights +reserved. Permission is hereby granted to copy and distribute this +license without modification. This license may not be modified without +the express written permission of its copyright owner. + + +-- +END OF ACADEMIC FREE LICENSE. The following is intended to describe the essential +differences between the Academic Free License (AFL) version 1.0 and other +open source licenses: + +The Academic Free License is similar to the BSD, MIT, UoI/NCSA and Apache +licenses in many respects but it is intended to solve a few problems with +those licenses. + +* The AFL is written so as to make it clear what software is being +licensed (by the inclusion of a statement following the copyright notice +in the software). This way, the license functions better than a template +license. The BSD, MIT and UoI/NCSA licenses apply to unidentified software. + +* The AFL contains a complete copyright grant to the software. The BSD +and Apache licenses are vague and incomplete in that respect. + +* The AFL contains a complete patent grant to the software. The BSD, MIT, +UoI/NCSA and Apache licenses rely on an implied patent license and contain +no explicit patent grant. + +* The AFL makes it clear that no trademark rights are granted to the +licensor's trademarks. The Apache license contains such a provision, but the +BSD, MIT and UoI/NCSA licenses do not. + +* The AFL includes the warranty by the licensor that it either owns the +copyright or that it is distributing the software under a license. None of +the other licenses contain that warranty. All other warranties are disclaimed, +as is the case for the other licenses. + +* The AFL is itself copyrighted (with the right granted to copy and distribute +without modification). This ensures that the owner of the copyright to the +license will control changes. The Apache license contains a copyright notice, +but the BSD, MIT and UoI/NCSA licenses do not. +-- +START OF GNU GENERAL PUBLIC LICENSE +-- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..0bc33d4 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,5 @@ +2008-04-16 John (J5) Palmieri + + * tools/dbus-monitor.c: take out the trailing comma in the + ProfileAttributeFlags enum as it isn't in our style guides + and causes some compilers to error out diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0 new file mode 100644 index 0000000..eab5982 --- /dev/null +++ b/ChangeLog.pre-1-0 @@ -0,0 +1,15146 @@ +2006-11-09 John (J5) Palmieri + + * Released 1.0.0 + +2006-11-09 John (J5) Palmieri + + * AUTHORS: added Peter and Tor of windows porting fame + +2006-11-08 Havoc Pennington + + * doc/dbus-specification.xml: add a note about protocol stability + + * doc/TODO: Remove "important for 1.0" section, replace with + "important for 1.2" section + +2006-11-08 John (J5) Palmieri + + * README: remove some of the out of date flags + + * doc/TODO: Remove todo items which are done + +2006-11-08 John (J5) Palmieri + + * tools/dbus-monitor.c: Handle sigint so we flush stdout + (Patch from Olli Salli ) + +2006-11-08 John (J5) Palmieri + + * tools/dbus-monitor.1: update the manpage for dbus-monitor + (Patch from Olli Salli ) + +2006-11-08 John (J5) Palmieri + + * AUTHORS: Update with all people listed in the ChangeLog + +2006-11-08 John (J5) Palmieri + + * tools/dbus-monitor.c: add profiling tools to dbus-monitor + (Patch from Olli Salli ) + +2006-11-07 Havoc Pennington + + * HACKING: Update release instructions to include stuff about + stable releases, branching, etc. May not be totally correct, + please fix if needed, but keep instructions up-to-date so we do + each stable release consistently in the future. + +2006-11-07 Havoc Pennington + + * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various + documentation updates. Bump faq/spec versions (not to 1.0; I don't + think the spec will be "finished"/1.0 when we ship the 1.0 library). + +2006-11-06 John (J5) Palmieri + + * bus/bus.c: Missed patch - pass in the context to the directory watch + +2006-11-02 John (J5) Palmieri + + * Released D-Bus 1.0 RC 3(0.95) + +2006-11-02 John (J5) Palmieri + + * bus/activation.c (bus_activation_new): don't fail if we can not read + the directory as it may not exist + +2006-11-02 John (J5) Palmieri + + * bus/config-parser.c (service_dirs_find_dir): use + _dbus_list_get_next_link so we don't get stuck in an infinite loop + (start_busconfig_child): move processing of standard_session_servicedirs + tags here because they have no content + (bus_config_parser_content): check we don't have content in + standard_session_servicedirs tag + +2006-11-02 John (J5) Palmieri + + * tools/Makefile.am: Make sure the /var/lib/dbus directory is created + Packagers need to own this directory + +2006-11-02 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: fixed script to replace the + tag with a tag that + points to the test service directory + +2006-11-02 John (J5) Palmieri + + * configure.in: Add a check for DIR *dirp->dd_fd + + * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use + DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care + of both Solaris and Irix + +2006-11-01 Havoc Pennington + + * bus/dbus-daemon.1.in: document standard_session_servicedirs + +2006-11-01 John (J5) Palmieri + + * configure.in: expose DBUS_DATADIR + + * bus/config-parser.c: add the standard_session_servicedirs element + to the parser + (bus_config_parser_content): process the standard_session_servicedirs + element by getting the standard directories from sysdeps and merging + them into the service directory list + (test_default_session_servicedirs): make sure we get what we expect + + * bus/session.conf.in: replace the servicedir tag with the + standard_session_servicedirs tag + + * dbus/dbus-list.h: remove the typedef of DBusList and place it in + dbus-sysdeps.h to avoid circular header dependencies + + * dbus/dbus-sysdeps.h: add the typedef of DBusList + + * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function + which takes a string of directories delimited by colons, parses them + out, appends a suffix and puts them in a list ignoring empty elements + (_dbus_get_standard_session_servicedirs): returns the standard + directories for a session bus to look for service activation files + on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and + DBUS_DATADIR directories + + * test/data/valid-config-files/many-rules.conf: add the + standard_session_servicedirs tag to the valid config file tests + +2006-10-30 Havoc Pennington + + * tools/dbus-launch.1, doc/TODO: capture intent to change the + command line options of dbus-launch a bit post 1.0 + +2006-10-27 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_open_private): document + how to choose shared vs. private connections + +2006-10-27 Havoc Pennington + + * dbus/dbus-test.c: enclose more of the file in the + DBUS_BUILD_TESTS check. + + * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for + DBUS_DISABLE_ASSERT case. + + * dbus/dbus-connection.c (dbus_connection_get_unix_user): document + that it only works on the server side + + * dbus/dbus-bus.c: add a global lock covering the BusData we + attach to each connection + (internal_bus_get): lock our access to the BusData + (dbus_bus_register): lock the entire registration process + with _DBUS_LOCK(bus_datas). If we get the lock and + registration is already complete, silently return (vs. previous + behavior of aborting). + (dbus_bus_set_unique_name): lock the BusData + (dbus_bus_get_unique_name): lock the BusData + +2006-10-27 John (J5) Palmieri + + * bus/config-parser.c (service_dirs_find_dir, + service_dirs_append_unique_or_free, + service_dirs_append_link_unique_or_free): New static methods + for only appending unique service directory names into + the service directory list + (merge_included, bus_config_parser_content): Only add unique + service directory names into the list + +2006-10-27 Havoc Pennington + + * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder" + variables volatile, suggested by Thiago. Document struct fields. + (PTHREAD_CHECK): remove pthread error checking if assertions are + disabled, should reduce the no-assertions case to the bare + minimum code. + +2006-10-26 Havoc Pennington + + * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change + to be recursive + (_dbus_pthread_mutex_unlock): make it recursive + (_dbus_pthread_condvar_wait): save/restore the recursion count + (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count + +2006-10-26 Havoc Pennington + + * doc/dbus-specification.xml: clarify the UUID text slightly + + * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on + pthread errors. Add DBusMutexPThread and DBusCondVarPThread + in preparation for being able to extend them for e.g. recursive + mutexes. + +2006-10-26 Havoc Pennington + + * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how + condition variables relate to recursive mutexes. + + * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, + dbus/dbus-threads.c: Split the platforms-specific thread + implementations into their own files. + + * dbus/dbus-sysdeps-pthread.c + (_dbus_pthread_condvar_wait_timeout): invert the return value, it + was backward. Not that anything uses it. + +2006-10-26 John (J5) Palmieri + + * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the + LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This + needs to be cleaned up more. + + * doc/TODO: Add a todo that *BSD hackers should look at cleaning + up the CREDS issue. + +2006-10-26 John (J5) Palmieri + + * configure.in, dbus-1.pc.in: Check to see if thread methods + are in glibc or libpthread and add -lpthread to the link stage + if it is the latter + +2006-10-26 Thiago Macieira + + * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix + bug 8780: the connection lock is only required while recording + the shared connection, so protect only that code + section. Don't require connection_lookup_shared to return a + locked connection. + +2006-10-26 Thiago Macieira + + * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): + check if get_machine_uuid() returns NULL before proceeding any + further: we can't init the X atoms or create a session file + name if there is no machine ID. + This solves a crash reported by some users if + --exit-with-session was used without --autolaunch= + +2006-10-26 John (J5) Palmieri + + * tools/dbus-launch.c (main): run the dbus-daemon in the builddir + if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set + + * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY + before we run dbus-launch + + * configure.in: define TEST_BUS_BINARY to be the full path to + dbus-daemon in the build root + +2006-10-25 Sjoerd Simons + + * dbus/Makefile.am: + * tools/Makefile.am: + * toos/dbus-uuidgen.1: + Move the machine-id file to /var/lib/dbus + +2006-10-24 David Zeuthen + + * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's + _dbus_assert (thread_init_generation != _dbus_current_generation) + not _dbus_assert (thread_init_generation == _dbus_current_generation) + +2006-10-24 Thiago Macieira + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps-unix.c: Add function + _dbus_make_file_world_readable that chmods a file to 0644. + + * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): + Avoid writing to the static "argv" array, thereby avoiding a + COW on the child process. + + * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively): + call _dbus_make_file_world_readable on the created file. + +2006-10-23 David Zeuthen + + * dbus/dbus-memory.c: Use atomic variable to protect + n_blocks_outstanding otherwise OOM will be reported using SMP on + some arches + + * bus/dispatch.c: Add missing end of line characters + + * bus/desktop-file.c (parse_section_start, parse_key_value) + (bus_desktop_file_load): Propertly handle OOM + + * dbus/dbus-threads.c (init_uninitialized_locks): Check that + thread_init_generation equals _dbus_current_generation, not 0 + +2006-10-22 Havoc Pennington + + * dbus/dbus-connection-internal.h: move prototype of + _dbus_bus_notify_shared_connection_disconnected_unlocked() here so + it isn't in a public header and doesn't end up in the DBusBus + group in Doxygen + +2006-10-21 Havoc Pennington + + * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in + the tarball if packagers want to run it + + * cleanup-man-pages.sh: Add a script which munges all the internal + API man pages out of the Doxygen output. This reduces the size of + the installed man pages from 7 to 2 megs, and avoids + namespace-polluting pages. Right now (like Doxygen) this script + isn't in the build, it's something packagers can do manually. + +2006-10-21 Havoc Pennington + + * dbus/dbus-connection.h: don't include the watch/timeout + functions in connection section + +2006-10-21 Havoc Pennington + + * Documentation! Whee! Doxygen now 100% silent. If you make it + angry again, you will be punished. + +2006-10-21 Havoc Pennington + + * More documentation - all public API now documented according to + Doxygen + +2006-10-21 Havoc Pennington + + * Document a bunch of undocumented stuff + +2006-10-21 Havoc Pennington + + * Clean up Doxygen group markers for public API so Doxygen finds + everything (not comprehensively fixed for private API). + Means all remaining Doxygen warnings are just about missing docs + and thus pretty simple to resolve. + +2006-10-21 Havoc Pennington + + * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro + + * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() + as DBUS_GNUC_DEPRECATED + +2006-10-21 Havoc Pennington + + * Move all private API into the private Doxygen group sections of + the files, so they don't show up in the public API docs + +2006-10-21 Havoc Pennington + + * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around + dbus_message_iter_get_array_len(). + + * throughout: documentation improvements. + +2006-10-20 Havoc Pennington + + * doc/TODO: remove the int64 thing from 1.0 since it doesn't + matter, and the message-loader-breaker thing since nobody is going + to do it. Add an item to 1.0 about supporting recursive locks + in dbus_threads_init_default() though, since it should be easy. + + * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch): + Fix this in the !dispatch case to avoid busy-looping after + disconnection + + * More misc docs improvements + +2006-10-19 Havoc Pennington + + * more Doxygen-related fixes (lots of moving things from the + public to internal section in dbus-connection.c) + +2006-10-19 Havoc Pennington + + * Fix a pile of Doxygen warnings and missing docs + +2006-10-19 John (J5) Palmieri + + * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, + bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext + instead of a void *. kqueue uses this to get the context's loop + while the other modules ignore the parameter. This allows us to + avoid platform conditionals + + * bus/bus.c (process_config_postinit): Pass in the context to the + watch + +2006-10-19 John (J5) Palmieri + + * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure + when starting the system bus + +2006-10-18 John (J5) Palmieri + + * configure.in: More fixups for cross compile (Patch from + Marco Pracucci ) + +2006-10-17 Havoc Pennington + + * tools/dbus-send.c (main): don't close shared connection, fix + from Timo Hoenig + +2006-10-17 Havoc Pennington + + * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here + + * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement, + since realistically it doesn't look like we'll be changing it + anymore. + +2006-10-17 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to + be used for return_if_fail type warnings; prefixes the pid, and + fatal by default. + +2006-10-14 John (J5) Palmieri + + * configure.in: Released 1.0 RC 2(0.94) + Add check for -fPIC and enable it if available + +2006-10-14 John (J5) Palmieri + + * doc/TODO: Remove the check TODO item + +2006-10-13 John (J5) Palmieri + + * dbus-transport-socket.c (exchange_credentials): + Print out more detailed errors if reading or sending + credentials fail (Patch from Julio M. Merino Vidal + ) + +2006-10-13 John (J5) Palmieri + + * configure.in: when checking for posix getpwnam_r assume true + for cross compiles + +2006-10-13 John (J5) Palmieri + + * configure.in: Check for gethostbyname first before we check for it + in libnsl. On gnu systems it is implemeneted + +2006-10-13 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): fix to handle closed + connections, from Tambet Ingo bug #8631 + +2006-10-11 John (J5) Palmieri + + * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN + +2006-10-11 John (J5) Palmieri + + * test/name-test/Makefile.am: don't link against both libdbus and + libdbus-convenience + +2006-10-11 John (J5) Palmieri + + * configure.in: check for dirfd even if it is a macro + (Patch from Timothy Redaelli ) + +2006-10-08 John (J5) Palmieri + + * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris + avoid using dirfd on systems that don't have dirfd + (Patch by Brian Cameron ) + +2006-10-02 John (J5) Palmieir + + * dbus/dbus-sysdeps.c (_dbus_abort): Remove from + #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck + + * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from + #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS) + macro because _dbus_abort calls it + + * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck + works + +2006-10-02 John (J5) Palmieir + + * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for + MAXNAMELEN for Mac OSX. (Patch from Jonas B ) + +2006-10-02 Thiago Macieira + + * tools/dbus-launch.c (main): make it complain and abort + execution in case an unknown option is given. Also, process + the '--' argument as the end of arguments. + +2006-10-01 Havoc Pennington + + * tools/dbus-launch.c (print_variables): if no syntax is given, + don't print something that's sort-of-half-sh-syntax, just print + a plain key-value pairs thing. + + * tools/dbus-launch-x11.c: use machine ID rather than hostname for + the local machine representation (but still have the hostname in + the display). Remove the hostname from the display if it is + localhost. Change session files to be named + ~/.dbus/session-bus/machine-display. Change X atoms to be + underscore-prefixed so nobody whines about ICCCM compliance. + Otherwise name them the same as the env variables. + Change session file format to include key-value pairs and an + explanatory comment. Keys are the same as the env variables. + (set_address_in_x11): X property format can't depend on + sizeof(pid_t) on a particular machine, fix to always be 32 bits + + * tools/dbus-launch.c: make --autolaunch take a machine id + argument. If --autolaunch is used with a program to run, complain + for now (but add a FIXME). Also, don't look for existing bus if + there's a program to run (but add a FIXME). + + * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass + machine uuid to dbus-launch (avoids linking dbus-launch to libdbus + just to get this, and avoids duplicating uuid-reading code). + + * tools/dbus-launch.1: clarify various things + +2006-10-01 Havoc Pennington + + * test/test-service.c (path_message_func): remove broken extra + unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c + + * test/test-shell-service.c (path_message_func): same fix + + * dbus/dbus-connection.c + (_dbus_connection_get_dispatch_status_unlocked): break up the + function a little for clarity and fix the notification of + dbus-bus.c to not require dispatch to be complete + + * dbus/dbus-connection.c (dbus_connection_unref): improve the + warning when you try to finalize an open connection. + +2006-10-01 Havoc Pennington + + * dbus/dbus-bus.c + (internal_bus_get): only weak ref the connection; this means + _dbus_bus_notify_shared_connection_disconnected_unlocked can be + called safely in any context + (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't + unref + + * dbus/dbus-connection.c + (_dbus_connection_get_dispatch_status_unlocked): move + _dbus_bus_notify_shared_connection_disconnected_unlocked here + when queuing Disconnected instead of when the Disconnected message + arrives, so dbus_bus_get() won't return closed connections. + +2006-10-01 Havoc Pennington + + * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): + Add a hack to make DBusNewConnectionFunction work right. + + * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use + the hack here. Also, fix the todo about refcount leak. + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + and use the hack here + + * dbus/dbus-connection.c: Kill the "shared" flag vs. the + "shareable" flag; this was completely broken, since it meant + dbus_connection_open() returned a connection of unknown + shared-ness. Now, we always hold a ref on anything opened + as shareable. + + Move the call to notify dbus-bus.c into + connection_forget_shared_unlocked, so libdbus consistently forgets + all its knowledge of a connection at once. This exposed numerous + places where things were totally broken if we dropped a ref inside + get_dispatch_status_unlocked where + connection_forget_shared_unlocked was previously, so move + connection_forget_shared_unlocked into + _dbus_connection_update_dispatch_status_and_unlock. Also move the + exit_on_disconnect here. + + (shared_connections_shutdown): this assumed weak refs to the + shared connections; since we have strong refs now, the assertion + was failing and stuff was left in the hash. Fix it to close + still-open shared connections. + + * bus/dispatch.c: fixup to use dbus_connection_open_private on the + debug pipe connections + + * dbus/dbus-connection.c (dbus_connection_dispatch): only notify + dbus-bus.c if the closed connection is in fact shared + (_dbus_connection_close_possibly_shared): rename from + _dbus_connection_close_internal + (dbus_connection_close, dbus_connection_open, + dbus_connection_open_private): Improve docs to explain the deal + with when you should close or unref or both + + * dbus/dbus-bus.c + (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename + from _dbus_bus_check_connection_and_unref_unlocked and modify to + loop over all connections + + * test/test-utils.c (test_connection_shutdown): don't try to close + shared connections. + + * test/name-test/test-threads-init.c (main): fix warnings in here + + * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT + env variable to cause blocking waiting for gdb; drop + DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() + unconditionally. + + * configure.in: add -export-dynamic to libtool flags if assertions enabled + so _dbus_print_backtrace works. + + * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf + instead of _dbus_verbose to print the backtrace, and diagnose lack + of -rdynamic/-export-dynamic + +2006-09-30 Havoc Pennington + + * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) + (internal_bus_get): fix screwy code formatting. whoever committed + that was not paying attention! + +2006-09-30 Havoc Pennington + + * configure.in (LT_CURRENT, LT_AGE): increment current and age to + reflect addition of interfaces. + + * doc/dbus-specification.xml: describe a new + org.freedesktop.DBus.Peer.GetMachineId method + + * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function + (_dbus_string_skip_white, _dbus_string_skip_blank): use new + DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion + at end of skip_white + (_dbus_string_chop_white): new function + + * bus/connection.c (bus_connections_setup_connection): call + dbus_connection_set_route_peer_messages. + + * dbus/dbus-connection.c + (_dbus_connection_peer_filter_unlocked_no_update): modify to + support a GetMachineId method. + + Also, support a new flag to let the bus pass peer methods through + to apps on the bus, which can be set with + dbus_connection_set_route_peer_messages. + + Finally, handle and return an error for anything unknown on the + Peer interface, which will allow us to extend the Peer interface + in the future without fear that we're now intercepting something + apps were wanting to see. + + * tools/dbus-uuidgen.c: a thin wrapper around the functions in + dbus/dbus-uuidgen.c + + * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen + binary here, since most of the code is already in libdbus + + * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the + uuid from the system config file + + * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) + (_dbus_read_uuid_file_without_creating) + (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new + uuid-related functions, partly factored out from dbus-server.c + + * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to + DBUS_ERROR_FILE_EXISTS instead of EEXIST + + * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error + + * tools/dbus-cleanup-sockets.1: explain what the point of this + thing is a bit more + + * autogen.sh (run_configure): add --config-cache to default + configure args + + * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the + error set/clear assertions when DBUS_DISABLE_CHECKS is defined + + * tools/dbus-launch.c (main): if xdisplay hasn't been opened, + don't try to save address, fixes crash in make check + +2006-09-30 Thiago Macieira + + * configure.in: add DBUS_BINDIR as a #define to C source code. + + * tools/dbus-launch.c + * tools/dbus-launch.h + * tools/dbus-launch-x11.c: + * tools/dbus-launch.1: Add the --autolaunch option to + dbus-launch, which makes it scan for an existing session + started with --autolaunch. With that option, it also creates + an X11 window and saves the bus address and PID to it. + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add + a function that runs "dbus-launch --autolaunch" to retrieve + the running D-Bus session address (or start one if none was running) + + * dbus/dbus-transport.c: Add the handler for the "autolaunch:" + address protocol, which tries to get the running session from + dbus-launch. + + * dbus/dbus-bus.c: + * dbus/dbus-internals.h: Make "autolaunch:" be the default + D-Bus session bus address. + + * dbus/dbus-connection.c: Fix horrible typo in error message. + +2006-09-18 John (J5) Palmieri + + * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@ + +2006-09-17 Havoc Pennington + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + fix so that if unix_user_function is set on windows, we still + do the default check that the auth identity matches the bus identity + +2006-09-16 Havoc Pennington + + * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate + to _dbus_transport_open_platform_specific, + _dbus_transport_open_socket, + and _dbus_transport_open_debug_pipe + + * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific + +2006-09-16 Havoc Pennington + + Attempt auditing public API to remove all cases where a Unix + function returns weird emulated goo to Windows. This probably + breaks the bus daemon on Windows, to fix it again we may + need to stop processing unix-specific config options on Windows, + and may need to add Windows-specific public API or config options. + + * configure.in (LT_CURRENT, LT_AGE): increment current and age, + to reflect added interfaces; should not break soname. + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do + not invoke unix user function on Windows. Kind of a hacky fix, but + we don't want a "unix uid" leaking out on Windows. + + * dbus/dbus-connection.c (dbus_connection_get_socket): add new API + to get the socket fd on Windows or UNIX + (dbus_connection_get_unix_fd): make this always fail on Windows + +2006-09-16 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_listen): change how this works + to be able to delegate to a set of handlers that can succeed, + fail, or choose not to handle. Allows us to have + dbus_server_listen_platform_specific. + + * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket): + factor out the tcp socket stuff to be used on windows, leaving + unix domain socket only in dbus-socket-unix.c + + * dbus/dbus-transport-socket.c + (_dbus_transport_new_for_tcp_socket): factor out the tcp socket + stuff to be used on windows, leaving unix domain socket only + in dbus-transport-unix.c + + * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert + temporary hack to be sure this fails on windows + (dbus_connection_get_unix_process_id): ditto + +2006-09-16 Havoc Pennington + + * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) + (_dbus_open_unix_socket, _dbus_open_socket): change API for + _dbus_open_socket so the domain/type/protocol from system headers + are not required. This is kind of pointless though unless we move + part of _dbus_connect_tcp_socket into sysdeps.c instead of + sysdeps-unix.c, which would mean adding a wrapper around + bind/listen/etc. + Also, add DBusError to the socket-opening functions so they + don't require use of errno. + +2006-09-16 Havoc Pennington + + * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make + dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header. + + * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter + Kümmel bug #8249 to make the sysdeps.h read/write/open/close + functions specifically for sockets only, and move generic + read/write/open/close into unix-specific code. + +2006-09-14 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind + complaint about accessing revents when poll returns 0, from Julian Seward. + +2006-09-14 John (J5) Palmieri + + * Released 1.0 RC 1 (0.93) + +2006-09-14 John (J5) Palmieri + + * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file): + use _dbus_close instead of close + +2006-09-14 John (J5) Palmieri + + * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket + credentials. Fixes "external" authentication under e.g. NetBSD + which does not support any other socket credentials mechanism. + (Patch from Julio M. Merino Vidal ) + +2006-09-14 John (J5) Palmieri + + * dbus/dbus-threads.c: Allow recursive mutex's to be passed into + dbus_threads_init and be used by the dbus mutex functions to + avoid deadlocks. + + * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item + +2006-09-13 John (J5) Palmieri + + * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file): + use threadsafe readdir_r instead of readdir + +2006-09-13 John (J5) Palmieri + + * dbus-threads.c (dbus_threads_init_default): New method for + initializing the internal thread implementation (Patch from + Alexander Larsson ) + +2006-09-11 John (J5) Palmieri + + * remove a bunch of todo items from the 1.0 list + +2006-09-11 John (J5) Palmieri + + * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and + key not found + +2006-09-11 John (J5) Palmieri + + * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more + complex debugging code + + * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move + between the test suite ifdefs + (_dbus_verbose_bytes): return if verbosity is not enabled + +2006-09-11 John (J5) Palmieri + + * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c: + remove DBusMark + +2006-09-10 Havoc Pennington + + patch mostly by Peter Kümmel, bug #8211 + + * dbus/dbus-sysdeps-unix.c: new file, which splits out + unix-specific stuff in dbus-sysdeps.c + + * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, + and move unix-specific stuff to dbus-sysdeps-unix.c + + * configure.in: check HAVE_ERRNO_H + +2006-09-08 John (J5) Palmieri + + * bus/test-main.c (main): Initialize threading during tests + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + Unlock connection on error + (generate_local_error_message): static method for generating + an error message when we don't have a message to reply to + (_dbus_connection_block_pending_call): Send a disconnect error + instead of just a timeout (NULL) when the bus gets disconnected + while blocking for a reply. + +2006-09-08 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove + filters (Patch from Kimmo Hämäläinen + ) + +2006-09-07 John (J5) Palmieri + + * dbus/dbus-connection-internal.h: Add prototype for + _dbus_connection_test_get_locks to remove warning + +2006-09-07 John (J5) Palmieri + + * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we + close child_err_report_pipe[WRITE_END] on exec (Patch from + Kimmo Hämäläinen ) + +2006-09-07 John (J5) Palmieri + + * Clean up close calls to use _dbus_close (Patch from + Kimmo Hämäläinen ) + +2006-09-06 John (J5) Palmieri + + * doc/TODO: + - Remove pending call locking todo item + - dbus_connection_open now holds hard ref. Remove todo item + - do proper locking on _dbus_bus_check_connection_and_unref + and handle DBUS_BUS_STARTER. Remove todo item + - Warn on closing of a shared connection. Remove todo item + + * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c, + dbus/dbus-connection.c: Use the dbus_connection_close_internal + so we don't get the warning when closing shared connections + + * test/test-service.c, test/test-shell-service.c: Applications + don't close shared connections themselves so we unref instead of + close + + * test/test-utils.c (test_connection_shutdown): Close the connection + + * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to + _dbus_bus_check_connection_and_unref_unlocked since we only call this + method on a locked connection. + Make sure we call _dbus_connection_unref_unlocked instead of + dbus_connection_unref also. + Handle DBUS_BUS_STARTER correctly + + * dbus/dbus-connection.c (connection_record_shared_unlocked): + Mark as shared and hard ref the connection + (connection_forget_shared_unlocked): Remove the hard ref from the + connection + (_dbus_connection_close_internal_and_unlock): New internal function + which takes a locked connection and unlocks it after closing it + (_dbus_connection_close_internal): New internal function which acts + like the origonal dbus_connection_close method by grabbing a connection + lock and calling _dbus_connection_close_internal_and_unlock + (dbus_connection_close): Public close method, warns when the app + trys to close a shared connection + +2006-09-06 John (J5) Palmieri + + * bus/driver.c: + (bus_driver_generate_introspect_string): New method for populating + a DBusString with the introspect data + (bus_driver_handle_introspect): Move introspect generation code to + bus_driver_generate_introspect_string + + * bus/main.c: + (introspect): New function which prints out the intropect data and + exits + (main): Add a --introspect switch + +2006-09-06 John (J5) Palmieri + + * doc/TODO: Removed dtd publishing item. + It seems the dtd has already been added at + http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd + +2006-09-05 John (J5) Palmieri + + * doc/TODO, various source files: Audited todo's and FIXME's and + prepended the ones we should be looking at with 1.0. Those + prepended with 1.0? need clerification or might not be needed + for 1.0 + +2006-09-05 John (J5) Palmieri + + * dbus/dbus-pending-call.c: Add some checks so we don't crash on + NULL in the public API (Patch from Kimmo Hämäläinen + ) + +2006-09-05 John (J5) Palmieri + + * configure.in: Fix for OS-X compile time endian issues (patch from + Benjamin Reed ) + +2006-09-05 John (J5) Palmieri + + * configure.in: Check for no-common compiler flag (OS-X fix from + Benjamin Reed ) + +2006-09-01 John (J5) Palmieri + + * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat + ) + +2006-08-29 Havoc Pennington + + * test/test-service.c (path_message_func): fix lack of return value + + * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix + formatting, remove #ifdef, and fix docs. #ifdef doesn't make + any more sense than on anything else in this file. + (_dbus_get_tmpdir): add const to return value, and keep the + results of the various getenv around in a static variable. + +2006-08-29 Havoc Pennington + + * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change + from Ralf Habacker to move UNIX-specific sysdeps into a separate file. + +2006-08-25 John (J5) Palmieri + + * test/Makefile.am: change find to use syntax that works with non + gnu versions of find + +2006-08-25 John (J5) Palmieri + + * dbus/dbus-transport.c: fix invalid deref when checking if + a vtable method exists (Patch from Christian Ehrlicher + ) + +2006-08-25 John (J5) Palmieri + + * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, + test/name-test/Makefile.am: Fixed some issues with getting get dbus + to build with builddir != srcdir (Taken from a patch by Bernard Leak + ) + +2006-08-25 John (J5) Palmieri + + * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the + default case + +2006-08-25 John (J5) Palmieri + + * configure.ac, bus/Makefile.am: Generalize kqueue support so that + it works on any system providing this interface, not only FreeBSD. + For example, NetBSD. (Patch by Julio M. Merino Vidal ) + +2006-08-20 Havoc Pennington + + * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to + the docs + +2006-08-18 John (J5) Palmieri + + * Released 0.92 + +2006-08-18 John (J5) Palmieri + + * dbus/dbus-threads.c (dbus_threads_init): change the documentation + to reflect the init late change + + * bus/bus.c (bus_context_new): Check user before we fork so we can + print out an error message a user will be able to see + +2006-08-18 John (J5) Palmieri + + Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) + + * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h: + Add two more global locks for use on windows platforms. These are + unused on non-windows platforms but are not ifdefed out to avoid + potential bugs (i.e. the few bytes lost does not warrent the extra + maintanence and complexity that having seperate sets of locks would + cause) + +2006-08-18 John (J5) Palmieri + + * bus/services.c (bus_registry_acquire_service): Return an error + when an application tries to register the org.freedesktop.DBus Bus Name + + * bus/services.c (bus_registry_release_service): Return an error + when an application tries to release the org.freedesktop.DBus Bus Name + +2006-08-17 Alp Toker + + * doc/dbus-specification.xml: Fix some minor typos. + +2006-08-17 John (J5) Palmieri + + * configure.in: use $with_init_scripts instead of $operating_system + to determine where to store the pid since the init scripts manipulate + the pid file (patch from Marcelo Ricardo Leitner + . + +2006-08-16 John (J5) Palmieri + + * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and + static DBusList *uninitialized_condvar_list to support new late + initialization threading model. In this model threads can be initialized + even after the D-Bus API has been used but still needs to be initialized + before the second thread has been started. Mutexes and condvar addresses + are stored in the two static lists and are replaced with actuall locks + when threads are initalized. + (_dbus_mutex_new_at_location): New method for creating a mutex and placing + the location into the static list + (_dbus_mutex_free_at_location): New method for removing a mutex location + from the static list and freeing the mutex + (_dbus_condvar_new_at_location): New method for creating a conditional + variable and placing the location into the static list + (_dbus_condvar_free_at_location): New method for removing a conditional + variable location from the static list and freeing the conditional variable + (init_uninitialized_locks): Atomic method which goes through the static + lists of mutex and condvar location and updates them with actuall locks + (init_global_locks): changed to init_locks + + * dbus/dbus-connection.c: + (_dbus_connection_test_get_locks): New method for tests to check connections + (_dbus_connection_new_for_transport): Use the new at_location mutex and + condvar API + (dbus_connection_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * dbus/dbus-dataslot.c: + (_dbus_data_slot_allocator_alloc): Use the address of the mutex + instead of the mutex itself + + * dbus/dbus-message.c: + (dbus_message_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * dbus/dbus-pending-call.c: + (dbus_pending_call_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * dbus/dbus-server.c: + (_dbus_server_init_base): Use the new at_location mutex API + (dbus_server_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * test/name-test/test-threads-init.c: New test case for late thread + initialization + +2006-08-14 John (J5) Palmieri + + * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): + Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort + causes compile problems when asserts are turned off + Keeping _dbus_warn for printing out the message so even if + asserts are turned off the user gets the messages that something is + wrong + +2006-08-14 John (J5) Palmieri + + Patches by Kjartan Maraas + + * bus/services.c (bus_service_list_queued_owners): + Add a pointer cast to fix compiler warning + + * dbus/dbus-dataslot.c (_dbus_data_slot_list_get): + return a NULL instead of FALSE since the return type + is not expecting a boolean + + * dbus/dbus-marshal-basic.c (_dbus_marshal_test): + Remove unused variable + + * dbus/dbus-marshal-recursive-util.c (node_new): + return a NULL instead of FALSE since the return type + is not expecting a boolean + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + Send a NULL into _dbus_transport_new_for_fd instead of a FALSE + because we are expecting a pointer not a boolean + + * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): + add void as the parameter so some compilers + don't complain + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket, + _dbus_transport_new_for_tcp_socket): + Send a NULL into _dbus_transport_new_for_fd instead of a FALSE + because we are expecting a pointer not a boolean + + * test/shell-test.c (test_command_line): + cast the second argument to _dbus_list_append to avoid compiler + warnings + + * test/test-names.c (main): remove unused variable + + * test/test-service.c (check_hello_from_self_reply): + Initialize echo_message and echo_reply to NULL + + * test/test-shell-service.c (handle_echo): + Remove unused variable and cast the third parameter passed to + dbus_connection_get_object_path_data to avoid compiler warrnings + + * test/name-test/test-names.c (clear_message_queue): + Remove unused function + + * test/name-test/test-pending-call-dispatch.c: + Fix format string in printf + + +2006-08-14 John (J5) Palmieri + + * dbus/dbus-bus.c: + * test/name-test/test-names.c: + Remove test method dbus_bus_connection_get_unique_name because + we already have public method dbus_bus_get_unique_name that + does the exact same thing + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-signature.c: + fix typos in Julio's previous patch which cause make check to fail + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp. + In any case it was wrong since this is a test checking to see if + address parsing is correct. There was no need to get the true + tmp directory. + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-macros.h: Revert the addition of stddef.h + as we should not be adding it to library headers + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-signature.c: + Fix the unit tests so that they work if assertions are not enabled. + (patch from Julio M. Merino Vidal ) + +2006-08-10 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: + * test/name-test/run-test.sh: + Remove bashisms (patch from Julio M. Merino Vidal + ) + +2006-08-10 John (J5) Palmieri + + * configure.in: add a version (>= 2.6.0) check for libxml2 + +2006-08-10 John (J5) Palmieri + + * configure.in: make sure the compiler supports -Wfloat-equal + + * bus/dir-watch-dnotify.c: move functional code after + variable declerations (C99 fix) (patches from Jens Granseuer + + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-macros.h: + add #include so that Sun compilers don't complain about + the defining NULL + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-sysdeps.c: + * dbus/dbus-address.c: + * bus/activation.c: + * test/shell-test.c: + don't hardcode tmp directory (patch from Dave Meikle + ) + +2006-08-09 John (J5) Palmieri + + * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): + Change an assert to a detailed warning and abort. + When allocator->lock != mutex it indicates that the user has failed + to initalize threads before using the D-Bus library. This warning + helps the user identify the issue and fix their app. + +2006-08-08 John (J5) Palmieri + + These are all patches from Kjartan Maraas + with cleanups of bugs found from Coverity reports: + + * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file): + close the file on error to avoid a leak + + * bus/expirelist.c (bus_expire_list_test): + Check for NULL on dbus_new0 + + * bus/activation.c (update_directory): + remove dead code + + * bus/config-parser.c (merge_service_context_hash, start_selinux_child): + Fix some leaks + + * bus/bus.c (process_config_every_time): + Fixed a leak + + * bus/desktop-file.c (parse_key_value): + Fixed leak + + * bus/selinux.c (bus_selinux_id_table_insert): + Fixed leak + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-object-tree.c (_dbus_object_subtree_new): + remove dead code + +2006-08-08 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of + #!/bin/bash + +2006-08-08 John (J5) Palmieri + + * Doxyfile.in: fix the INPUT line so we can generate docs + when sourcedir != builddir (patch from Cygwin Ports maintainer + + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps.c: + * dbus/dbus-string.c: + s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with + GLib's function which does the same thing + + * configure.in: + * bus/Makefile.am: + * bus/dir-watch-default.c: + * bus/dir-watch-dnotify.c: + * bus/dir-watch-kqueue.c: + Add kqueue directory watching for freebsd and split the directory + watching code into seperate files per method/arch + (patches from Timothy Redaelli ) + +2006-08-08 John (J5) Palmieri + + * configure.in: + * tools/Makefile.am: + * tools/dbus-launch.c: + * bus/Makefile.am: + allow --with-dbus-daemondir switch to be used to make the + daemon install to a seperate bindir like /usr/libexec + (patch from Brian Cameron + + * bus/Makefile.am (install-data-hook): removed the slash after + $(DESTDIR) so we don't get the double slash which does not work + in windows (patch from Andras Porjesz + ) + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps.c: + add _dbus_printf_length (patch from Peter Kümmel + ) + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-internals.c: unistd.h is not used + (_dbus_verbose_real): only enable verbose printing + if DBUS_VERBOSE environment var is set to '1' + (patch from Peter Kümmel ) + +2006-08-08 John (J5) Palmieri + + * configure.in: add a GCC flag check for -Wdeclaration-after-statement + so we still compile on older gcc (patch from Frederic Peters + + +2006-08-04 Havoc Pennington + + * configure.in: add -Wdeclaration-after-statement + + * dbus/dbus-connection.c: change all the pending call stuff to + reflect the fact that pending call operations use the connection + lock + + * dbus/dbus-pending-call.c: add locking here + + * dbus/dbus-errors.c (struct DBusRealError): don't make the name + field const consistent with how message field is done + +2006-08-03 John (J5) Palmieri + + * s/D-BUS/D-Bus/g + +2006-08-03 John (J5) Palmieri + + * dbus/dbus-object-tree.c: Patch by Benjamin Otte + - fix invalid + read/write reported by valgrind + +2006-07-24 John (J5) Palmieri + + * Released 0.91 + +2006-07-22 John (J5) Palmieri + + * dbus/dbus-connection.c: + (_dbus_connection_attach_pending_call_unlocked): + (connection_timeout_and_complete_all_pending_calls_unlocked): + Make sure we set timeout_added on pending calls to FALSE when + we remove the timeout from the connection + +2006-07-21 John (J5) Palmieri + + * Removed some extra bindings stuff lingering around (thanks timo) + * dbus-pendingcall.c (_dbus_pending_call_new): + s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion + when we tried to take a lock on an already locked connection + +2006-07-17 John (J5) Palmieri + + * Released 0.90 + +2006-07-17 Havoc Pennington + + * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit + ints, reported by Owen Taylor + +2006-07-17 John (J5) Palmieri + + * doc/TODO: + * dbus/dbus-bus.c: + * dbus-errors.c: + * dbus/dbus-marshal-validate.c: + Removed TODO items which were fixed or are no longer relevent + +2006-07-17 John (J5) Palmieri + + * dbus-qt4-1.pc.in, dbus-sharp.pc.in: + Remove stray files from the stripped bindings + +2006-07-16 Havoc Pennington + + * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error): + Improve the error message on reply timeout + +2006-07-14 John (J5) Palmieri + + * Remove all bindings + +2006-07-13 John (J5) Palmieri + + * dbus-connection.c (dbus_connection_send_with_reply): return TRUE + and set pending_reply out arg to NULL is connection is disconnected + (connection_timeout_and_complete_all_pending_calls_unlocked): New + static method for cleaning up pending calls on disconnect + (_dbus_connection_get_dispatch_status_unlocked): If we have pending + calls queued timeouts on disconnect + + * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection): + Remove + +2006-07-13 Carlos Garcia Campos + + * bus/activation.[ch] (bus_activation_list_services): new function to + get the list of services that can be activated + + * bus/dispatch.c: test coverage for the new bus method + ListActivatableNames + + * bus/driver.c: new bus method ListActivatableNames to get the list of + services that can be activated + + * doc/dbus-specification.xml: ListActivatableNames method documentation + +2006-07-12 John (J5) Palmieri + * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of + source files + +2006-07-12 John (J5) Palmieri + * dbus/dbus-message-factory.c: + Fix index into an array (patch by Peter Kümmel ) + +2006-07-12 John (J5) Palmieri + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: + * file dbus/dbus-pending-call.c: + * dbus/dbus-pending-call.h: + Make DBusPendingCall an opaque type even to D-Bus internals + +2006-07-07 John (J5) Palmieri + + * dbus/dbus-connection.h: remove connection_disconnect and replace with + connection_close + + * dbus/dbus-connection.c: include dbus-bus.h + (_dbus_connection_read_write_dispatch): make static + +2006-07-07 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_close): removed deprecated + function + (dbus_connection_dispatch): On disconnect unref any shared connections + + * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function + for cleaning up shared connections on disconnect + (internal_bus_get): get a hard refrence to shared connections when + they are created + + * doc/TODO: Remove items which are no longer relevent or have been fixed + Split 1.0 todo items with a 0.90 freeze todo list + +2006-06-14 Ross Burton + + * glib/dbus-gobject.c: + Free a leaking GArray (surely not!) in dbus_g_method_return. + +2006-06-14 Ross Burton + + * tools/Makefile.am: + * tools/dbus-monitor.c: + Don't use the GLib bindings in dbus-monitor (patch from Ralf + Habacker). + +2006-06-14 Ross Burton + + * tools/dbus-print-message.c: + Also print the object path when outputting signals or method calls. + +2006-06-13 Thiago Macieira + + * qt/src/Makefile.am: install the qdbus.h header. + This allows people to actually use the installed code. + +2006-06-12 Ross Burton + + * glib/dbus-gproxy.c: + Don't leak a GArray when firing signals (thank Rob Taylor for review). + +2006-06-12 Thiago Macieira + + * Released 0.62 + +2006-06-12 Thiago Macieira + + * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that + break pedantic builds. Closes bug 6043 (patch approved by + Havoc back in February). + +2006-06-12 Thiago Macieira + + * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods + that took a QDBusMessage parameter. + * qt/src/qdbusbus.h: Add a default flag for RequestName. + * qt/tools/dbus.cpp: Don't use automatic call because we might + be calling an async method: request a reply. + +2006-06-11 Thiago Macieira + + * test/qt/*: Update the testcases, including testing the new + functionality of sending null QByteArray and QString over the + bus. Add new headertest test and restore the old + qdbusxmlparser test. + +2006-06-11 Thiago Macieira + + * qt/tools/dbuscpp2xml.cpp: Compile on Windows. + * qt/tools/dbusidl2cpp.cpp: Add missing newline. + + * qt/examples/Makefile.am: + * qt/examples/chat.h: Use UI-generated files with the ui_*.h + form. + + * qt/src/qdbusmarshall.cpp: Allow sending of QString() and + QByteArray() (nulls) over the bus. + * qt/src/qdbusabstractinterface.cpp: Use the correct variable, + the one that has the signature suffix stripped. + * qt/src/qdbusreply.h: Make some methods const. + +2006-06-09 Thiago Macieira + + Patch from Timo Hoenig . + + * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers + required during build to EXTRA_DIST. + * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST. + * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS. + * configure.in: Fix "make dist", take care that the Makefile for + qt/dbus is being generated. + +2006-06-07 John (J5) Palmieri + + * bus/bus.c: Fix eavesdropping on method calls + +2006-06-07 John (J5) Palmieri + + * configure.in: + * dbus/dbus-userdb-util.c: + Add Solaris console owner patch from Artem Kachitchkine + +2006-06-07 Thiago Macieira + + * qt/Makfile.am: + * qt/src/Makefile.am: Fix the EXTRA_DIST after the + reorganisation. Thanks to Timo Hoenig for pointing this out. + +2006-06-06 Robert McQueen + + * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every + call to dbus_g_type_get_struct. + +2006-06-06 Robert McQueen + + * glib/dbus-gvalue-utils.c: Fix the failing test where static string + pointers were put into a GPtrArray-based specialised collection, and + then freed along with the array. GValues which you add into + collections or maps which have the NOCOPY flag set are assumed to not + belong to the caller, so rather than the existing pointer-stealing + semantics, they are copied instead. Given that the main consumers of + this abstraction are the bindings themselves, I don't think this is + too bad, but others should watch their choice of take vs set_static. + +2006-06-06 Robert McQueen + + * glib/dbus-gvalue-utils.c: Spotted a warning about the return value + of g_slist_prepend not being used. Fixed copying of slist-based + specialised collections, then wrote a test case and found that it was + all broken. Went on to fix iterating and appending too. Good thing + nobody uses this code yet. + +2006-06-06 Robert McQueen + + * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of + the iterators use gvalue_take_ptrarray_value (the GValues themselves + are discarded without unsetting, so it makes no difference whether + we take or set_static). Remove cases for G_TYPE_POINTER because + there really is nothing useful we can do with them in our + specialised types - we *need* boxed copy/free functions at the very + least. + +2006-06-05 Thiago Macieira + + * qt/dbus: Add directory. I had forgotten to add this + yesterday after the move... + + * qt/examples/Makefile.am: + * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp. + + * qt/tools/Makefile.am: + * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp. + Added feature to get and set properties. + Added validation of service, object path and interface names. + + * qt/tools/dbusidl2cpp.cpp: Two new features: + 1) Allow specifying both the header and the source file names, + by separating them with a colon. + 2) Don't write an interface output if the -p switch wasn't + given, but the -a was. + + * qt/src/*: Fix usage of Iterators and ConstIterators. + Fix shadowing of variables by other variables (-Wshadow). + Fix keyword-cleanliness in headers. + Fix ASCII-cast (QLatin1String, QLatin1Char). + Fix validation of member names. + Add extra checking of introspection data during XML parsing. + Various bug fixes. + +2006-06-04 Thiago Macieira + + * dbus/Makefile.am: + * dbus/qdbus.h: Remove unnecessary file. This is mirrored into + qt/dbus/qdbus.h now. + +2006-06-04 Thiago Macieira + + * configure.in: Make --disable-qt actually do + something. Patch inspired by Zack Rusin. + +2006-06-04 Thiago Macieira + + * qt/: Update to Subversion r548032. + This includes a big reorganisation of the files inside the + subdir. + +2006-05-30 Sjoerd Simons + + * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more + clear: + "Failed to connect to socket : " instead of + "Failed to connect to socket : :" + + * dbus/dbus-transport-unix.c: Fix crash when no host option is given + for a tcp transport. + +2006-05-29 Thiago Macieira + + * qt/*: Update the QtDBus bindings up to revision 546310 in + Subversion. + This adds the dbuscpp2xml tool, that parses a C++ header and + outputs a D-BUS Introspection XML. + +2006-05-21 Havoc Pennington + + * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name + is not NULL when it shouldn't be. Also a couple of possible fixes + for #4637 though I don't understand why the bug happens, to be + honest... also the object constructor has an assert name != NULL + and the name is only currently NULL for peer-to-peer proxies that + I don't think anyone uses? So it should be asserting. + Anyway, for now at least see if we get an earlier assertion failure. + + * glib/dbus-gvalue-utils.c: Put in a couple of assertions for + apparently broken code to be sure the tests fail and someone + will fix them... + +2006-05-07 Thiago Macieira + + * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists + and arrays when they had a single element: has_next returns + false, even before you read the element. So, instead, check + the array length. + +2006-05-06 Thiago Macieira + + * qt/qdbusmessage.cpp: + * qt/qdbustypehelper_p.h: + * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when + the list is a const-reference + +2006-05-03 John (J5) Palmieri + + * Adding old doc patch that never got applied + + * dbus/bus.c (dbus_bus_add_match): Add documentation + + * doc/dbus-specification.xml: Add documentation for the match rules + and the AddMatch and RemoveMatch methods + +2006-05-02 Thiago Macieira + + * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct + call (r535506) + + * qt/dbusidl2cpp.cpp: + * qt/qdbusabstractadaptor.cpp: + * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a + sibling of the QDBusAbstractAdaptor objects instead of the + parent. (r535848) + + * qt/dbusidl2cpp.cpp: + * qt/qdbusabstractinterface.cpp: + * qt/qdbusabstractinterface.h: + * qt/qdbusabstractinterface_p.h: + * qt/qdbusinterface.cpp: Make properties in interfaces + actually work. The code that was generated would not compile, + due to moc calls to functions that did not exist. They now + shall. (r536571) + +2006-04-30 Thiago Macieira + + * Makefile.am: + * configure.in: + * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1. + Thanks to Brad Hards for providing the patch + +2006-04-29 Thiago Macieira + + * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct + call. (r535506) + +2006-04-29 Thiago Macieira + + * qt/examples/dbus.cpp: Enhance error messages and use + QDBusInterfacePtr. + +2006-04-29 Thiago Macieira + + * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr + and disable the copy operators. (r533772, r534746) + + * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929) + + * qt/qdbusabstractinterface.cpp: + * qt/qdbusabstractinterface.h: Change the default call mode to + not use the event loop. Add convenience call() methods that + take a CallMode parameter. (r534042) + + * qt/qdbusconnection.h: Change the default call mode to not + use the event loop. (r534042) + + * qt/qdbusinterface.cpp: + * qt/qdbusinterface.h: Add a method to tell us if the + interface is valid (since we don't return a null pointer + anymore) (r534099) + + * qt/qdbusinterface_p.h: Don't crash if metaObject is 0 + (r534101) + + * qt/qdbusinternalfilters.cpp: Decouple the introspection + function in two so taht we get the chance to introspect + without having a QDBusMessage (r534102) + + * qt/qdbusbus.h: + * qt/qdbusconnection.cpp: + * qt/qdbusconnection_p.h: + * qt/qdbusintegrator.cpp: Keep a list of our own names to + avoid a round-trip to the server when attempting to introspect + one of our own objects. Also make sure the filter functions + match the empty interface as well. (r534108) + Don't keep the connection names. Instead, trust the unique + connection name (r534111) + Remove event loop usage (r534112) + +2006-04-29 Thiago Macieira + + * qt/qdbusintegrator.cpp: Fix assertion failure spotted by + Brad Hards. + +2006-04-28 Robert McQueen + + * glib/dbus-gproxy.c: Fix properties so that they can be given in + any order, making it easier for people who inherit from this + object. + +2006-04-28 Robert McQueen + + * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking + of memory from within pointer arrays and lists. Fixes bug #6300. + +2006-04-28 Robert McQueen + + * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in + generating struct signatures. Fixes bug #6083. + +2006-04-28 Robert McQueen + + * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc + to qdbusconnection_p.moc. + +2006-04-24 John (J5) Palmieri + + * README, INSTALL: Doc fixes + Patch from Brad Hards + +2006-04-23 Thiago Macieira + + * qt/examples/dbus.cpp: Use the new merged-interface mode for + the dynamic meta object. No need to guess which interface to + call. + +2006-04-23 Thiago Macieira + + * qt/qdbusconnection_p.h: + * qt/qdbusmetaobject.cpp: + * qt/qdbusmetaobject_p.h: + * qt/qdbusintegrator.cpp: Use the new merged-interface mode + for the dynamic meta object. No need to guess which + interface to call. + * qt/qdbusabstractinterface_p.h: + * qt/qdbusconnection.cpp: + * qt/qdbusintegrator.cpp: + * qt/qdbusinterface.cpp: + * qt/qdbusinterface.h: Make findInterface always return a non-null pointer. + Add a QDBusRef that looks and behaves like DCOPRef. + +2006-04-23 Thiago Macieira + + * dbus/dbus-connection.c: Interfaces are optional in method + calls, so don't give up if the interface parameter is NULL. + Patch reviewed by Havoc Pennington. + +2006-04-23 Thiago Macieira + + * qt/qdbusreply.h: Add default constructor and operator= + (r532625) + * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach() + in public headers (r532952) + * qt/qdbusabstractinterface.cpp: + * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and + make it the default (r532951) + +2006-04-19 John (J5) Palmieri + + * dbus/dbus-connection.c: Fix asserts + Patch from Tim Moloney + +2006-04-19 John (J5) Palmieri + + * mono/Connection.cs, mono/Message.cs: Check Target type + Patch from Aaron Bockover (abockover at novell.com) + +2006-04-13 Thiago Macieira + + * INSTALL: fine-tune the requirements for the Qt4 binding. + +2006-04-16 Daniel P. Berrange + + * tools/dbus-print-message.c: Added support for printing of all + remaining data types. Fixed logic for indentation of compound + data types. + +2006-04-15 Daniel P. Berrange + + * INSTALL: fill out content of file providing DBus specific + build installations, followed by generic Auto* INSTALL file + content + +2006-04-13 Thiago Macieira + + * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug. + Patch by Stefan Eilers. (r529537) + +2006-04-13 Thiago Macieira + + * qt/qdbusinternalfilters.cpp: Don't show the parent's + contents (r528208) + +2006-04-10 Thiago Macieira + + * qt/Makefile.am: fix the dependency for + qdbusconnection_p.moc. It's included in qdbusintegrator.cpp, + not in qdbusconnection.cpp. + Thanks to Jakub Stachowski for + spotting this. + +2006-04-10 Thiago Macieira + + * qt/examples/listnames.cpp: + * qt/examples/Makefile.am: Three ways to list the names on the + bus. + +2006-04-10 Thiago Macieira + + * test/qt/tst_hal.cpp: Remove the waiting, since it's not + needed anymore. Requires Qt 4.1.3 to work properly. (r528148) + +2006-04-10 Thiago Macieira + + Merge from Subversion: + * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to + something that exists (r526315) + * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable + slots/signals (r526316) + * qt/qdbusinternalfilters.cpp: Fix the setProperty call and + also return an unknown-method error if the parameters don't + match for org.freedesktop.DBus.Properties. (r526842) + * qt/examples/dbus.cpp: Allow passing of QVariants (r526843) + * qt/qdbusintegrator.cpp: Restore the proper order of + delivery: don't make method returns be delivered on priority + (r528150) + +2006-03-28 Thiago Macieira + + * configure.in qt/Makefile.am: add qt/examples + * qt/examples: Add QtDBus example programs: + - hello: Hello, World + - ping: Simple method-calling program + - pong: Simple object-exporting program (not using adaptors) + - complexping: Interactive method-calling program + (also gets and sets properties). + - complexpong: Sample program exporting methods, signals and + properties, using adaptors. + - dbus: Simple implementation of a generic method-calling + program, similar to 'dbus-send', but with semantics + similar to 'dcop'. + - chat: Simplistic chat program, implemented using signals + and the system bus. Looks like IRC. + +2006-03-28 Thiago Macieira + + * configure.in: Detect QtGui (necessary for one of the + example programs). Note: this increases the minimum required + version of Qt to 4.1.3. + +2006-03-28 Thiago Macieira + + * test/qt/*: Sync with KDE Subversion revision 523647. + Update the testcases to the new API. Remove testcases for + classes that are no longer public or have been removed. + +2006-03-28 Thiago Macieira + + * qt/*: + * dbus/qdbus.h: Sync with KDE Subversion revision + 523647. Hopefully, this will be the last of the + source-incompatible changes. Documentation has been improved; + support for QList has been added; QDBusObject is + gone; QDBus(Abstract)Interface is now a QObject with + auto-generated meta-object; QDBusIntrospection is marked + private, since QMetaObject can be used now; lots of bugfixes. + +2006-03-16 John (J5) Palmieri + + Patch from Milosz Derezynski + + * configure.in: + Output the service directory in the configure summary + + * dbus-1.pc.in: + Add session_bus_services_dir + +2006-03-10 Ross Burton + + * tools/dbus-print-message.c: + Add support for object paths and signatures. + +2006-03-06 Sjoerd Simons + + * bus/bus.c: (bus_context_reload_config): Flush the user database cache on + config reload. + * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group + information caches + * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): + * dbus/dbus-hash.h: Add function to remove all entries from a hash table + * dbus/dbus-userdb.c: (_dbus_user_database_flush): + * dbus/dbus-userdb.h: Add function to flush all user/group information + caches. + +2006-03-06 Thiago Macieira + + * qt/dbusidl2cpp.cpp: + * qt/Makefile.am: add the dbusidl2cpp tool, the replacement + for dcopidl2cpp, found in the KDE installations (or the more + modern kalyptus): generate Qt4 C++ code for the input XML + introspection. Currently no IDL parsing. + +2006-03-06 Thiago Macieira + + * test/qt/*: Update the self-tests. + +2006-03-06 Thiago Macieira + + * qt/*: + * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This + represents the first feature-complete version of the Qt4 + bindings since I took ove maintainership. + +2006-03-06 Thiago Macieira + + * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings + dir. This is C++, so we can't use the DBus ones. + +2006-03-02 John (J5) Palmieri + + * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h + (Patch from Artem Kachitchkine ) + +2006-03-02 John (J5) Palmieri + + * dbus/dbus-connection.c: + (_dbus_connection_block_pending_call): + Check to see if our data has already been read off the connection + by another blocking pending call before we block in poll. + (check_for_reply_and_update_dispatch_unlocked): + Code taken from _dbus_connection_block_pending_call - checks for + an already read reply and updates the dispatch if there is one. + + * test/name-test/test-pending-call-dispatch.c: + New test for making sure we don't get stuck polling a + dbus connection which has no data on the socket when + blocking out of order on two or more pending calls. + +2006-02-28 Thiago Macieira + + * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues: + make/automake don't detect that we're talking about the same + .lo file if I specify the full path to the source files. + +2006-02-26 Havoc Pennington + + * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed + + * dbus/dbus-bus.c (internal_bus_get): in the error message if the + session bus variable is unset, suggest "man dbus-launch" and "man + dbus-daemon" to figure out how to fix the problem + +2006-02-25 Havoc Pennington + + * glib/dbus-glib-tool.c (usage): fix up the usage message, someone + should make this thing use the new glib options parser + +2006-02-25 Thiago Macieira + + * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the + .lo files taking moc sources. + +2006-02-25 Havoc Pennington + + * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h + and install it as a public header + +2006-02-24 John (J5) Palmieri + + * Released 0.61 + +2006-02-24 John (J5) Palmieri + + * proxies.py: Fix the callchain + +2006-02-24 John (J5) Palmieri + + * patch from Sjoerd Simons : + + * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to + dbus/dbus-sysdeps.c + + * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't + call _dbus_group_info_free_allocated which causes infinite loop, + correctly call _dbus_group_info_free + +2006-02-20 Thiago Macieira + + * qt/qdbusinterface_p.h: + * qt/qdbusinterface.cpp: Use the standard + org.freedesktop.DBus.Method.NoReply annotation for the "async" + calls instead of creating one for us. + + * qt/qdbusconnection_p.h: + * qt/qdbusintegrator.cpp: Remove debugging code. + + * qt/qdbusintegrator.cpp: + * qt/qdbusmessage.cpp: + * qt/qdbusmessage_p.h: + * qt/qdbusmessage.h: Change the behaviour of automatic + reply-sending: now a reply is always sent, unless the caller + didn't request one or if the user slot has already sent one. + +2006-02-16 Robert McQueen + + * configure.in: Patch from Debian packages by Sjoerd Simons + to add --with-qt-moc and --with-qt3-moc + arguments so it's possible to build both bindings in the + same tree. + + * qt/Makefile.am: Fix truncated value so that make dist works. + +2006-02-16 Robert McQueen + + * acinclude.m4, configure.in: Patch from Brad Hards + to avoid warnings from autoconf 1.9 by + improving quoting, re-ordering a few checks, and a few other + aesthetic tidy-ups. + +2006-02-16 Robert McQueen + + * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): + Patch from Rob Taylor to correct a bogus + assertion that the next element to read from the iter is fixed in + size. This is not the case when you are at the end of the iter, + because the next element type is INVALID. + + * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a + a bogus assert which means that you may not initialise a 0-length + string unless you provide a non-NULL pointer. This prevented + you from marshalling messages containing zero-length arrays in + some cases. + + * glib/dbus-gvalue.c (demarshal_collection_array): Another patch + from Rob to correct bogus asserts when trying to demarshal an + array and get_fixed_array got you 0 elements. Append nothing to + the GArray in this case. + + * test/glib/test-dbus-glib.c: Add a test case for round-tripping + an empty array via the glib bindings. Without all of the above + patches, this new test fails. + +2006-02-16 Robert McQueen + + * glib/dbus-gmain.c: Make the previous commit compile. + + * python/_dbus.py, python/matchrules.py: Patch from Ole Andre + Ravnaas to allow you to + specify sender_keyword="foo", path_keyword="bar" when adding + a signal listener, so that you can bind to signals generically + but still do something useful in your callback. + + * python/dbus_bindings.pyx: Demarshal the byte type as unsigned + chars so that they're not cast to chars and made negative. Thanks + to Jakub Stachowski for reporting this and testing the fix. + +2006-02-15 John (J5) Palmieri + + * dbus/dbus-glib.h: + * glib/dbus-gmain.h: + (dbus_g_connection_open): new method for openning + a connection to an arbitrary address in the glib bindings + + * ChangeLog: checkin last entry which doesn't seem to be commited + +2006-02-13 John (J5) Palmieri + + * tools/dbus-launch.c: Fixed sh syntax output + +2006-02-13 Robert McQueen + + * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c, + glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c, + glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c, + glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c: + Patch from Rob Taylor to add a big + missing piece of the glib bindings jigsaw puzzle. This modifies + the existing specialised types to have N type parameters (rather + than the current 1 or 2 for arrays and dictionaries respectively). + You can then use this to get a glib type to represent any arbitrary + D-Bus struct type using dbus_g_type_get_struct. The only + implementation of these types is with GValueArrays as before, + but it's now possible to store these in arrays, emit them in + signals, etc. + +2006-02-10 John (J5) Palmieri + + * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly + deal with nested arrays (Bug #5823) Patch by Thiago Macieira + + +2006-02-10 John (J5) Palmieri + + * mono/doc/Makefile.am: Fix parallel make problem with mono-doc + (Bug #4213) Patch from Doug Goldstein + +2006-02-10 John (J5) Palmieri + + * bus/connection.c (bus_connections_expect_reply): Make + pending reply limit not common to all connections (Bug #5416) + Patch from Kimmo Hämäläinen + +2006-02-10 John (J5) Palmieri + + * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720) + +2006-02-10 John (J5) Palmieri + + * gcj/Makefile.am: point to correct jar command (Bug #4529) + patch from Doug Goldstein + +2006-02-09 Joe Shaw + + * mono/Arguments.cs: Fix a magic number in the mono bindings + that doesn't work on 64 bit arches. Patch from Peter Johanson. + +2006-01-27 Robert McQueen + + * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's + patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol + when generating the client-side methods, instead of overloading + CSymbol which broke everything horribly. My apologies. + +2006-01-27 Robert McQueen + + * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch + by me and Rob Taylor to add a simple_free function to D-Bus map + and collection types, which allows those types which can be freed + with a GDestroyNotify (such as GHashTables and GArrays, but not + GPtrArrays) to be stored as the values in hashtables. + + * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}: + Patch by Rob Taylor to add nested dicts to the glib tests to check + the above code works, and appears not to leak when called repeatedly. + +2006-01-27 Robert McQueen + + * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor + to free a D-Bus allocated string with dbus_free () instead of + g_free (). + +2006-01-27 Iain Holmes + + * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose + method from being called multiple times. + +2006-01-19 Robert McQueen + + * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor + to add support for generating bindings + to arrays that are represented as GPtrArrays rather than GArrays (ie + size-variable things, such as strings, objects, structs, etc). + +2006-01-05 Robert McQueen + + * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki + to make it possible to inherit from + DBusGProxy, by splitting the DBusGProxy struct into a public part and + a private part, and moving the setting of the DBusGProxyManager into a + connection property, allowing proper GObject construction. + +2006-01-05 Robert McQueen + + * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki + to make dbus-binding-tool heed C symbol name + annotations when generating glib client bindings. + +2005-12-19 John (J5) Palmieri + + * dbus/dbus-shared.h: Call it shared constants instead of shared macros + + * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings + +2005-12-19 John (J5) Palmieri + + * dbus/dbus-shared.h: add DOxygen markup to quiet warnings + +2005-12-19 John (J5) Palmieri + + * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@}) + +2005-12-19 Ross Burton + + * doc/dbus-tutorial.xml: + Document the Glib client-side bindings, and list all possible annotations. + +2005-12-19 John (J5) Palmieri + + * dbus/bus.c (dbus_bus_release_name): Add documentation + +2005-12-06 Robert McQueen + + * python/service.py: s/sucessful/successful/ so we're allocating to + and reading from the same variable. Oops. + +2005-11-30 John (J5) Palmieri + + * Released 0.60 + +2005-11-30 John (J5) Palmieri + + * test/qt/Makefile.am: build from srcdir + + * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE + Note - this code is wrong and needs to be fixed by the Qt binding + developers. The flags should be treated as bitfields and not enums. + + * qt/qtconnection.h: Change ProhibitReplace to AllowReplace + +2005-11-30 John (J5) Palmieri + + * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, + link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods + in production code + +2005-11-30 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_read_write): Add new + method for getting messages off the bus in the absence of a + mainloop. This method is much like + dbus_connection_read_write_dispatch except it does not dispatch + the messages to a registered filter function. Instead it + allows a developer to process messages by directly popping + them off the bus. + +2005-11-30 John (J5) Palmieri + + * bus/desktop-file.c (parse_key_value): Ignore locales allowing + the parser to continue instead of returning error + (bus_desktop_file_load): Do not free parser data when + parse_section_start or parse_key_value fails because it was + already freed by parser_free (patch from Carlos Garcia Campos + ) + +2005-11-30 John (J5) Palmieri + + * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c, + dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c + glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c + test/test-segfault.c, test/test-utils.c, + test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c + tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c: + Various cleanup of dead code and compiler warnings (patch from + Kjartan Maraas ) + +2005-11-30 John (J5) Palmieri + + * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak + (patch from Carlos Garnacho Parro + +2005-11-27 Robert McQueen + + * python/dbus_bindings.pyx: Repair my previous commit which reverted + part of the preceding one. Oops. Merge patch by Johan Hedberg + to fix marshalling of 16-bit integer values + on big-endian platforms. + + * test/python/test-client.py: Add some 16-bit integers to the test + values. + +2005-11-27 Carlos Garcia Campos + + * glib/dbus-gobject.c: Append a GValue instead of a basic type in + method return message for property getters + +2005-11-27 Robert McQueen + + * python/dbus_bindings.pyx: Fix a bug where doing a strict append + with type v of an instance of dbus.Variant(foo, type='x') caused + it to be boxed twice before sending over the bus. + + * python/dbus_bindings.pyx, python/service.py, + test/python/test-client.py: Update the constants for the new + request_name flags, and update comments/test cases now that queueing + is the default action. + +2005-11-22 John (J5) Palmieri + + * configure.in: + - Change version to 0.60 for impending release + - upped the sonames because of ABI and API breakage + +2005-11-22 John (J5) Palmieri + + * configure.in: Add test/name-test/Makefile to the generated + Makefile list + + * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): + New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT + (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying + not to queue an ower if it can't be the primary owner + + * bus/bus.h: Add new internal BusOwner struct + + * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) + to bus_registry_ensure and don't set the prohibit_replacement flag + since they are now set per BusOwner and not per name. + (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) + that returns the list of connections in a name's connection queue + + * bus/services.c (struct BusService): remove prohibit_replacement field + (struct BusOwner): new struct for keeping track of queued connections + and their associated flags for the queue + (struct BusRegistry): add a BusOwner memory pool + (bus_registry_new): initialize the BusOwner memory pool + (bus_registry_unref): free the BusOwner memory pool + (_bus_service_find_owner_link): new internal method for + searching the queue for a specific connection + (bus_owner_set_flags): new method for adding setting the flags on a + bus owner + (bus_owner_new): new method that creates a BusOwner object from the + pool and sets its flags + (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects + (bus_registry_ensure): Add the flags parameter + (bus_registry_acquire_service): Switch from using raw connections to + using the BusOwner struct + Add new state machine for dealing with the new set of flags + (bus_registry_set_service_context_table, struct OwnershipCancelData, + cancel_ownership, free_ownership_cancel_data, + add_cancel_ownership_to_transaction, struct OwnershipRestoreData, + restore_ownership, free_ownership_restore_data, + add_restore_ownership_to_transaction): Switch to using BusOwner + instead of raw connections + (bus_service_add_owner): Add flags parameter + Switch to using BusOwner instead of raw connections + Add state machine for dealing with the new set of flags + (bus_service_swap_owner): Swaps the first and second owners in the + queue. Used to make sure proper signals are sent when a service looses + or gains primary ownership. We never insert an owner at the top of the + queue. Instead we insert it in the second position and then swap. + (bus_service_remove_owner): Remove the owner from the queue sending + out the NameLost and NameOwnerChanged signals if the we were the + primary owner + (bus_service_get_primary_owners_connection): New method that extracts + the connection from the primary owner + (bus_service_get_primary_owner): Returns the BusOwner instead of the + connection + (bus_service_get_allow_replacement): Changed from the old + bus_service_get_prohibit_replacement method. Checks the flags of the + primary owner and returns if it can be replaced or not + (bus_service_set_prohibit_replacement): removed + (bus_service_has_owner): returns TRUE if and owner with + the specified connection exists in the queue + + * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper + method that only compiles if tests are enabled. Allows us to get the + unique name of a connection so we can check it against the queue when + doing regression tests + + * bus/activation.c (bus_activation_send_pending_auto_activate), + bus/dispatch.c (bus_dispatch), + bus/driver.c (bus_driver_handle_get_service_owner, + bus_driver_handle_get_connection_unix_user, + bus_driver_handle_get_connection_unix_process_id, + bus_driver_handle_get_connection_selinux_security_context), + bus/signals.c (connection_is_primary_owner): + use bus_service_get_primary_owners_connection instead of + bus_service_get_primary_owner + + * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, + _dbus_listen_unix_socket): Calculate the length of the socket + path and use that instead of using a fixed length which was + causing socket names to contain many trailing Nul bytes. + + * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c + (dbus_g_method_get_sender): New method for extracting the sender + from a DBusGMethodInvocation + (dbus_g_method_return_get_reply): changed name to + dbus_g_method_get_reply + (dbus_g_method_return_send_reply): changed name to + dbus_g_method_send reply + + * doc/dbus-specification.xml: New docs that describe how the new + queueing system works and talks about the changes to the how + we specify socket names + + * glib/examples/example-service.c, + glib/examples/example-signal-emitter.c, + glib/examples/statemachine/statemachine-server.c: + Changed the RequestName flags to the new system + + * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New + regression test suite for testing various states of the new + queueing system + +2005-11-15 Robert McQueen + + * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob + Taylor to add two methods, dbus_g_method_return_get_reply and + dbus_g_method_return_send_reply, to allow you to get the reply + message from a DBusGMethodInvocation, append arbitrary stuff to it, + and send it. The GLib bindings can't marshal a return value of + something like a(s) if the array is empty - ultimately they should be + made to heed the signature of the out arguments as the Python bindings + now can, but this is a workable interim solution which might have + other applications. + +2005-11-15 Robert McQueen + + * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName + method to org.freedesktop.DBus to release a bus name or give up + waiting in the queue for it. + + * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a + dbus_bus_release_name method to send the ReleaseName method calls. + Add constants for the return values to dbus/dbus-shared.h. + + * doc/dbus-specification.xml: Document the new ReleaseName method + in the specification. + + * python/dbus_bindings.pyx: Add a low-level python binding for the + release name method. + + * python/exceptions.py, python/service.py: Make freeing BusName + objects release the name. Add a NameExistsException, and fix a + bug with creating UnknownMethodException. + + * test/python/test-client.py: Add tests for freeing BusName + objects causing names to be released. + +2005-11-14 Robert McQueen + + * python/service.py: Include the traceback in the error reply when we + send an exception over the bus. _BEST_ _PATCH_ _EVER_ + +2005-11-14 David Zeuthen + + Patch from Timo Hoenig . + + * bus/bus.c: I've recently investigated why the automatic reload + of configuration files does not work as expected. + + Currently, reloading configuration files does only work when + running dbus-daemon with --nodaemon. If we are running as daemon + we're hitting a dnotify bug once we fork the process. + + We're initializing the dnotify fds before calling fork(). Once + the child process forked it does still have the fds (and they + still show up in /proc/`pidof dbus-daemon`/fd/) but we're not + getting SIGIO as changes are made to the configuration files. + + The attached patch moves the initialization of the dnotify fds to + process_config_postinit(). This is safe for all current code + paths and solves the dnotify disfunction. If we're running + dbus-daemon as daemon the fds for dnotify are now being + initialized after fork() for the child process. + + * configure.in: The current configure.in check for dnotify probes + 'x$target_os' for being 'xlinux-gnu'. I've changed the check to + match for 'xlinux', too. Additionally I have adapted the configure + option's style to match with the others. + +2005-11-14 Robert McQueen + + * python/decorators.py, python/service.py: Add a new argument to the + dbus.service.method decorator called sender_keyword, which if set, + specifies the name of an argument which will be provided the bus + name of the method caller. + + * test/python/test-client.py, test/python/test-service.py: Add a + method and test to check the sender_keyword functionality. + +2005-11-07 John (J5) Palmieri + + * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an + empty reply so blocking calls don't block forever (Patch from Sjoerd + Simons ) + + * AUTHORS: Add Robert McQueen for his work on the Python + Bindings and other parts of D-Bus + +2005-11-07 Robert McQueen + + * python/decorators.py: Change emit_signal function to use the + signature annotation of the signal when marhsalling the arguments from + the service. Fix a bug where the code checking signature length + against argument length referenced the wrong variable. + + * python/introspect_parser.py: Avoid adding the type signature of + signal arguments to any methods which occur after them in the + introspection data (!) by making the parser a little more careful + about its current state. + + * python/service.py: Remove debug prints from last commit (again :D). + + * test/python/test-client.py, test/python/test-service.py: Add test + signals with signature decorators to test the strict marshalling code + gives errors at the right time. Could do with checking the signals + actually get emitted too, given that the test does nothing with + signals at the moment... + +2005-11-07 Robert McQueen + + * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus + instances to stop madness of creating new instances representing + the same bus connection all the time, rendering any tracking of + match rules and bus names quite meaningless. Caught a bug where + the private argument to SessionBus() and friends was being passed + in as use_default_mainloop by mistake. Still some problems with + multiple dbus_binding.Connection instances representing the same + low-level connection (eg when you use both SessionBus() and + StarterBus() in same process), but it's a lot better now than it + was. + + * python/dbus_bindings.pyx: Add constants with the return values + for bus_request_name(). + + * python/service.py: Store bus name instances in a per-dbus.Bus cache + and retrieve the same instances for the same name, so deletion can be + done with refcounting. Also now throws some kind of error if you + don't actually get the name you requested, unlike previously... + + * test/python/test-client.py: Add tests for instance caching of buses + and bus name objects. + +2005-11-04 Robert McQueen + + * python/dbus_bindings.pyx, test/python/test-client.py: Fix + marshalling of boolean values. Add some booleans to the values in + the test client. + + * python/decorators.py, python/service.py: Add an 'async_callbacks' + argument to the dbus.service.method decorator, which allows you to + name arguments to take two callback functions for replying with + return values or an exception. + + * test/python/test-client.py, test/python/test-service.py: Add test + case using asynchronous method reply functions, both return values and + errors, and from within both the function itself and from a mainloop + callback. + + * python/decorators.py, python/service.py: Perform checking that the + number of method/signal arguments matches the number of types in the + signature at class loading time, not when you first introspect the + class. + + * python/service.py: Remove debug print left by the last commit. + +2005-11-03 Robert McQueen + + * python/service.py: Heavy refactoring of method invocation, with + hopefully no effect on functionality. Nuked _dispatch_dbus_method_call + in favour of a new _message_cb that uses seperate functions for + looking up the method to call, marshalling the return values, and + sending exceptions as errors, and is easier to follow as a + consequence. Fixes some corner cases about returning things that + don't match your declared out_signature, allows exceptions to define + _dbus_error_name and have it be sent over the bus as the error name, + and paves the way for cool stuff like heeding the message no reply + flag, asynchronous method implementations, informing the method of the + sender, and including backtraces in the error messages. + + * test/python/test-client.py: Catch and print exceptions thrown in the + async callback tests, rather than passing them to the low-level + bindings to be ignored in a noisy and frustrating manner. + +2005-11-03 Robert McQueen + + * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__ + functions to dbus.Bus, dbus.service.BusName and dbus.service.Object, + tweak others to be consistent. + + * test/python/test-client.py: Tweak output of testInheritance. + +2005-10-29 Robert McQueen + + * python/service.py: Major changes to allow multiple inheritance + from classes that define D-Bus interfaces: + + 1. Create a new Interface class which is the parent class of + Object, and make the ObjectType metaclass into InterfaceType. + + 2. Patch written with Rob Taylor to replace use of method_vtable + with code that walks the class's __MRO__ (method resolution order) + to behave like Python does when invoking methods and allow + overriding as you'd expect. Code is quite tricky because + we have to find two methods, the one to invoke which has the + right name and isn't decorated with the /wrong/ interface, + and the one to pick up the signatures from which is decorated + with the right interface. + + The same caveats apply as to normal multiple inheritance - + this has undefined behaviour if you try and inherit from two + classes that define a method with the same name but are + decorated with different interfaces. You should decorate + your overriding method with the interface you want. + + 3. Replace grungy introspection XML generation code in the metaclass + with dictionaries that cope correctly with multiple inheritance + and the overriding of methods. This also uses the signature + decorations to provide correct introspection data, including + the debut appearance of the types of your return values. :D + + * test/python/test-client.py, test/python/test-service.py: Add a test + case to try invoking an method that overrides one inherited from a + D-Bus interface class. + +2005-10-29 Robert McQueen + + * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert(). + Add checking for the end of struct character when marshalling a + struct in MessageIter.append_strict. + + * python/examples/example-service.py, + python/examples/gconf-proxy-service.py, + python/examples/gconf-proxy-service2.py: Update to use gobject + mainloop directly rather than appearing to depend on gtk. + + * python/test/test-client.py, python/test/test-server.py: Remove + obsolete and broken test scripts for old bindings. We have up to date + and working tests in test/python/. + +2005-10-29 Robert McQueen + + * python/decorators.py: Add optional arguments to the method and + signal decorators to allow you to specify the signature of arguments + and return values. Preserve the doc strings of signal functions in the + decorated version, for pydoc and friends. + + * python/dbus_bindings.pyx, python/proxies.py: Replace the + parse_signature_block function with an iterable dbus.Signature() + type. Fix a bug in MessageIter.append_strict where you could append + anything by claiming it was a string. + + * python/service.py: Use the out_signature decoration on methods to + marshal return values, meaning you no longer require dbus.Array() + or dbus.Dictionary() to indicate the type when returning empty + arrays or dictionaries. Fix a bug where exceptions which are defined + in __main__ are not turned into error replies. + + * test/python/test-client.py, test/python/test-service.py: Add test + for correct marshalling of return values according to out_signature. + Fix a bug in the async call test where the error_handler is missing a + self argument. + +2005-10-29 Robert McQueen + + * glib/Makefile.am, glib/examples/Makefile.am, + glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by + Daniel Stone to replace explicit calls to libtool with $(LIBTOOL). + + * test/python/.cvsignore: Add run-with-tmp-session-bus.conf. + + * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch + from Ubuntu by Daniel Silverstone to allow specifying match rules on + the command line. + +2005-10-27 Ross Burton + + * dbus/dbus-marshal-header.c: + Remove dead code. + + * glib/dbus-gobject.c: + Stop compiler warning. + +2005-10-25 Ross Burton + + * dbus/dbus-auth.c: + * dbus/dbus-server-unix.c: + * dbus/dbus-transport-unix.c: + * glib/dbus-gmain.c: + * glib/dbus-gobject.c: + Add some const keywords. + +2005-10-25 Ross Burton + + * doc/dbus-specification.xml: + Document the NoReply annotation. + + * glib/dbus-binding-tool-glib.h: + * glib/dbus-binding-tool-glib.c: + Respect the NoReply annotation. + +2005-10-24 Robert McQueen + + * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings + derive from unicode instead of str, and encode/decode UTF-8 when + marshalling/unmarshalling bus messages + + * python/introspect_parser.py: encode introspection data as UTF-8 + before passing the buffer into libxml2 + + * test/python/test-client.py: add unicode test strings + + * test/data/valid-service-files/.cvsignore, test/python/.cvsignore: + ignore generated python test files + +2005-10-17 John (J5) Palmieri + + * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble + and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT) + (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble + + * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing + DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters + when constructing struct signatures + + * python/_dbus.py (Bus): handle private connections using the + private keyword in the constructor. defaults to private=False + (Bus::close): new method to close a connection to the bus + + * python/dbus_bindings.pyx (Connection::close): renamed method + was previously called disconnect + (bus_get): now supports getting a private connection + + * python/proxies.py (ProxyMethod::__call__): check if ignore_reply + keyword is set to True. if it is, execute the method without waiting + for a reply + (ProxyObject::_introspect_execute_queue): new method for executing + all the pending methods that were waiting for the introspect to + finish. this is called when introspect either succeeds or fails + (ProxyObject::_introspect_error_handler): call queued methods + +2005-10-14 John (J5) Palmieri + + * python/dbus_bindings.pyx (MessageIter::append_strict): check for + STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct + + * python/service.py (Object::_message_cb): handle exceptions correctly + by sending them over the wire to the calling app. This makes sure + the client returns immediately instead of waiting the 15 seconds to + timeout. + + * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): + Add a test to benchmark how long it takes to introspect a service and + call a method which returns a large element (pretty fast) + + * test/python/test-service.py (TestObject::GetComplexArray): new test + method which pushes a lot of data + +2005-10-13 John (J5) Palmieri + + * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method): + reclaim memory outside of the loop and use del istead of just setting + the key to None + +2005-10-13 John (J5) Palmieri + + * python/service.py (ObjectType::_reflect_on_signal): Always close + signal tag even when there are no arguments + +2005-10-13 John (J5) Palmieri + + * configure.in: Set mono, mono-docs and Qt3 to default + to no instead of auto when building. These bindings do not + have full time maintainers and will not be supported for the + 1.0 release. + +2005-10-12 John (J5) Palmieri + + patches from Michael Krivoruchko : + + * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link, + _dbus_connection_message_sent, + _dbus_connection_send_preallocated_unlocked_no_update, + _dbus_connection_pop_message_link_unlocked): handle the case when path + is NULL when calling _dbus_verbose + + * configure.in: check for functions getpeerucred and getpeereid + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides + support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, + OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). + Patch was only tested on Solaris 10 x86 so it might be issues + with other platforms (i.e. BSDs and MacOSX) + + +2005-10-05 John (J5) Palmieri + + * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal + instead of marshal basic so we can handle recursive types in a variant + + * test/glib/test-dbus-glib.c: Add test for marshaling recurive types + in variants + + * test/glib/test-service-glib.c, test-service-glib.xml + (my_object_echo_variant [EchoVariant], + my_object_process_variant_of_array_of_ints123 + [ProcessVariantOfArrayOfInts123]): + Add two test methods + + * python/introspect_parser.py: New module for parsing introspect + data. + + * python/dbus_bindings.pyx: + (various places): when throwing errors fix to use errormsg instead + of message local variable because Pyrex can get confused with other + message variables (initial patch by Robert McQueen + ) + (MessageIter::parse_signature_block): new method for getting the next + block in a signiture. + (MessageIter::append_strict): new method for appending values strictly + using the passed in signature instead of guessing at the type + (MessageItter:: append_dict, append_struct, append_array): use + signatures to marshal children if the signature is available + + * python/exceptions.py (IntrospectionParserException): new exception + + * python/proxies.py (ProxyMethod::__call__): Marshal args with + introspected signatures if available, else we fall back to the + old way of doing things. + (ProxyObject::_introspect_reply_handler ): parse introspection data + + * python/service.py (ObjectType::_reflect_on_method): Properly + terminate if there are no args in the reflection data + + * test/python/test-client.py: add tests for talking with the GLib + test server. This gives us better coverage for introspection since + python to python will always generate arguments as variants. It also + allows us to test the robustness of the GLib bindings and interlanguage + communications. + + +2005-10-03 John (J5) Palmieri + + * bus/driver.c (bus_driver_handle_introspect): Add signals + to the introspect data. (patch from Daniel P. Berrange + ) + + * bus/dispatch.c (check_existent_ping): Add testcase for Ping + + * dbus/dbus-connection.c (_dbus_connection_peer_filter, + _dbus_connection_run_builtin_filters): Changed these to + be unlock_no_update functions and call + _dbus_connection_send_unlocked_no_update instead of + dbus_connection_send to avoid locking errors. + + * doc/TODO: Removed the make Ping test TODO + +2005-09-26 John (J5) Palmieri + + * dbus/Python.pyx: Fixed memory leaks when throwing errors. + We now copy the message from a DBusError and then free + the error object befor throwing the error + + * glib/dbus-glib-tool.c: removed extra comma at the end of the + DBusBindingOutputMode enum which was causing a warning. + #include so using time_t is explicitly defined + +2005-09-26 John (J5) Palmieri + + * Integrate patches from Lennart Poettering : + - dbus/dbus-bus.c + (internal_bus_get): new method that take over the heavy lifting + of dbus_bus_get and adds the ability to get a private connection + to the bus + (dbus_bus_get): wrapper to internal_bus_get that provides the same + interface as in previous versions + (dbus_bus_get_private): new method that is a wrapper to + internal_bus_get to get a private connection to the bus + + - dbus/dbus-bus.h + (dbus_bus_get_private): add as a public libdbus interface + + - dbus-1.pc.in: output system_bus_default_address and + sysconfdir variables so apps can use them when compiling + +2005-09-23 Harald Fernengel + * dbus/qt: New Qt bindings + +2005-09-12 Waldo Bastian + + * dbus/dbus-marshal-validate.c, + doc/dbus-specification.xml, test/Makefile.am, + test/test-names.c: allow hyphens in bus names. + +2005-09-11 Mark McLoughlin + + * test/data/auth/fallback.auth-script: we don't + retry the EXTERNAL method when we know its going + to fail anymore. + +2005-09-11 Mark McLoughlin + + * dbus/dbus-connection-internal.h: rename + (add|remove|toggle)_(watch|timeout) to unlocked() + + * dbus/dbus-connection.c: ditto. + + * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c: + Update some callers for the renaming. + +2005-09-10 Mark McLoughlin + + * dbus/dbus-auth.c: (record_mechanisms): don't + retry the first auth mechanism because we know + we're just going to get rejected again. + + * dbus/dbus-keyring.c: (_dbus_keyring_reload): + Fix thinko ... and what a nasty little bugger to + track down you were ... + + * dbus/dbus-connection.c: + (_dbus_connection_add_watch), + (_dbus_connection_remove_watch): add note about + these needing the connection to be locked. + (_dbus_connection_get_dispatch_status_unlocked): + set status to DATA_REMAINS when we queue the + disconnected message. + + * bus/dispatch.c: + (bus_dispatch): fix warning. + (check_existent_service_no_auto_start): + Expect ChildSignaled error too. + (check_existent_hello_from_self): fix another + couple of warnings. + +2005-09-08 Joe Shaw + + Patches from James Willcox + + * mono/Makefile.am: Add Int16.cs and UInt16.cs + + * mono/DBusType/Array.cs: Handle multidimensional arrays, and + support array "out" parameters. + + * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files, + for 16-bit int support. + +2005-09-06 John (J5) Palmieri + + * Released 0.50 + + * Patch from Steve Grubb: + - bus/activation.c (bus_activation_service_reload_test): clean up + some indentation + - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional + - dbus/dbus-message-factory.c (generate_special): fix a couple of + buffer overflows in the test suite. This is non critical because + it can not be exploited and this code is only run when doing a + make check. + + * Patch from Yaakov Selkowitz: Build fixes for Cygwin + - configure.in: Don't check and link against kdecore, only qt headers + - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS + - gcj/org/freedesktop/dbus/Makefile.am: + add libdbus_gcj_1_la_LDFLAGS = -no-undefined + - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS + and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD + - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS + - tools/Makefile.am: Add platform extentions to binaries + (i.e. .exe on windows) + + * configure.in: + - Make it so if no suitable version of python is found we only + disable building python instead of exiting the configure script + - Require version 2.4 of glib for glib bindings + - Up version to 0.50 + + * python/__init__.py: Sync version with libdbus to (0,50,0) + +2005-09-05 Olivier Andrieu + + * dbus/dbus-object-tree.c (find_subtree_recurse): + a couple of optimizations (bug #710): + - do a binary search in the tree + - insert a new child at the right place directly, no need for + qsort anymore + - do the "double alloc" thing when allocating children + +2005-08-31 John (J5) Palmieri + + * python/Makefile.am: Break on pyrexc errors instead of ignoring them + + * python/dbus_bindings.pyx: Memory management foo + (global): remove hacky _user_data_references global list + (GIL_safe_cunregister_function_handler): userdata now stuffed into + tuples. Unref user_data + (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples + (Connection::__del__): Remove and replace with __dealloc__ method + (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF + to keep tuple from being deallocated instead of the global var hack + (Connection::register_object_path): Stuff user_data into a tuple. + Use Py_INCREF to keep tuple from being deallocated instead of the + global var hack + (Connection::register_fallback): Stuff user_data into a tuple. + Use Py_INCREF to keep tuple from being deallocated instead of the + global var hack + (GIL_safe_pending_call_notification): Don't unref the message + because it gets unreffed when going out of scope. Py_XDECREF + the user_data + (PendingCall::__del__): Remove and replace with __dealloc__ method + (PendingCall::set_notify): ref the pending call because we will + need it to stick around for when the notify callback gets called + (Message::__del__): Remove and replace with __dealloc__ method + + * python/dbus_glib_bindings.pyx (init_gthreads): Changed to + gthreads_init to match up with the dbus call + + * python/glib.py (init_threads): Changed to threads_init to match + up with gobject.threads_init(). init_threads is kept for backwards + compat but will most likely be deprecated in the future + + * test/python/test-client.py: + - revamp to use Python's unittest functionality + - add async call tests + - setup threads in glib and dbus so we make sure locks are working + +2005-08-30 John (J5) Palmieri + + * python/dbus_bindings.pyx + (_pending_call_notification, cunregister_function_handler, + cmessage_function_handler): All callback functions have been rearranged + to workaround a bug in Pyrex when working with the GIL which is Python's + global lock when dealing with threads. They have been split into + a wrapper function (which assumes the name of the old function) and + a _GIL_safe_ function which contains the functionality + of the old function. This ensures that Pyrex does not write code + the lock is released. + + +2005-08-30 John (J5) Palmieri + + * python/dbus_bindings.pyx (_pending_call_notification): Obtain the + GIL global lock when calling back into Python + +2005-08-29 John (J5) Palmieri + + * Release 0.36.2 + + * Add Havoc's patch that never got applied to HEAD (Bug #2436): + + * bus/policy.c (bus_policy_allow_user): change default "user is + allowed" to be "user has same uid as the bus itself"; any + allow/deny rules will override. + + * bus/session.conf.in: don't allow all users, since now by default + the user that ran the bus can connect. + +2005-08-26 Colin Walters + + * tools/dbus-print-message.c (print_message): Flush stdout + after printing a message, so that redirecting to a file, then + hitting Ctrl-C works. + +2005-08-25 John (J5) Palmieri + + * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it + (EmptyMessage): new class that subclasses Message. This is a workaround + to a Pyrex bug that fails to call __del__ when the Message object goes out + of scope. For some reason subclassing Message fixes this bug + (Bus::send_with_reply_and_block): use EmptyMessage instead of Message + - s/Message(_create=0)/EmptyMessage everywhere else + + * test/python/test-{server|client}.py: add the python/.libs directory + to the lookup path so dbus_bindings and dbus_glib_bindings don't + get picked up from the system + +2005-08-25 Colin Walters + + * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks + to Ryan Lortie for the suggestion. + +2005-08-24 John (J5) Palmieri + + * test/python: Add python regression test + + * configure.in: Add test/python/Makefile + + * test/Makefile.am: Add the python directory to SUBDIRS + +2005-08-24 John (J5) Palmieri + + * Release 0.36.1 + + * python/_dbus.py: + (Interface::connect_to_signal): propigate keywords for match on args + (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface + + * python/proxies.py (ProxyObject::connect_to_signal): + propigate keywords for match on args + + * Makefile.am: point everything to pyexecdir since python borks + on multilib + +2005-08-23 John (J5) Palmieri + + * Release 0.36 + +2005-08-23 Colin Walters + + * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST. + +2005-08-23 John (J5) Palmieri + + * python/dbus_glib_bindings.pyx: reorder imports and c definitions + to fix some wranings. We now use dbus_bindings.DBusConnection instead + of defining DBusConnection ourselves. + +2005-08-18 John (J5) Palmieri + + * python/dbus.pth: New path file to fix up problems when installing + c libraries to lib64 and python files to lib. + + * python/Makefile.am: install dbus.pth in the correct spot + +2005-08-17 John (J5) Palmieri + * ChangeLog: clean up my last entry a bit + + * doc/introspect.xsl: New stylesheet for converting introspection data + into browser renderable xhtml. Contributed by Lennart Poettering. + + * doc/introspect.dtd: Fixups in the introspect format from Lennart + Poettering. + + * doc/dbus-tutorial.xml: + - Add Colin Walter to the Authors section for authoring the GLib + section + - Add descriptions of the new signature and type functionality + in the Python complex type mapping section + - Add a sidenote on the new args matching functionality in + the Python bindings + - Fixed up some of the examples to use the gobject.MainLoop + instead of gtk.main + + * python/_dbus.py: + (Bus::_create_args_dict): New. Converts a hash of arg matches + to a more useable format + (Bus::add_signal_receiver): add a **keywords parameter for catching + arg match parameters + (Bus::remove_signal_receiver): add a **keywords parameter for catching + arg match parameters + + * python/matchrules.py: + (MatchTree::exec_matches): Check for arg matches + (SignalMatchRule::add_args_match): New method + (SignalMatchRule::execute): Added args_list parameter as an optimization + so we don't have to marshal the args more than once + (SignalMatchRule::match_args_from_list): New method that checks to see + if the rule's arg matches match an argument list. Only arguments + set in the rule are checked. + (SignalMatchRule::match_args_from_rule): New method that checks to see + if the rule's arg matches match another rule's. All args have to match + in order for this method to return true. If either rule has more args + then it is not a match. + (SignalMatchRule::is_match): Add args match + (SignalMatchRule::repr): Add args to the final output if they exist + +2005-08-17 Ross Burton + + * glib/dbus-gproxy.c: + (dbus_g_proxy_call_no_reply): unref the message once sent. + (dbus_g_proxy_call): protect against NULL proxy. + +2005-08-16 John (J5) Palmieri + + * python/__init__.py: Version updated (0, 43, 0) + + * python/dbus_bindings.pyx: + - Fixed type objects to have self passed into __init__ + - Added the Variant type + - Add the ability to specify types or signatures for Array, Variant + and Dictionary + (Connection::send_with_reply_handlers): return a PendingCall object + (_pending_call_notification): handle the case when an error is returned + without an error message in the body + (MessageIter::get_boolean): return True or False instead of an integer + (MessageIter::python_value_to_dbus_sig): add direct checking of types + and add checks for objects with embeded signatures or types (Array, + Variant and Dictionary) + (MessageIter::append_byte): handle case when the value is a dbus.Byte + (MessageIter::append_dict): handle embeded types or signatures + (MessageIter::append_array): handle embeded types or signatures + (MessageIter::append_variant): new method + + * python/proxies.py: + (DeferedMethod): New. Dummy executable object used when queuing calls + blocking on introspection data + (ProxyMethod::__call__): add the timeout keyword for specifying longer + or shorter timeouts for method calls + (ProxyObject): Add first pass at an introspection state machine + (ProxyObject::__init__): Add introspect keyword for turing off an on + introspection. + (ProxyObject::_Introspect): Internal Introspect call that bypasses + the usual mechanisms for sending messages. This is to avoid a deadlock + where the Intospect call would be queued waiting for the Introspect + call to finish ;-) + (ProxyObject::_introspect_reply_handler): New. This method is called + when introspection returns with no error + (ProxyObject::_introspect_error_handler): New. This method is called + when introspection encounters an error + (ProxyObject::__getattr__): Code to handle different introspection + states. Queue async calls or block blocking calls if we are + introspecting. Pass through as normal if we are not or are done with + introspecting. + + * python/service.py: Import signal and method from decorators.py + + * python/types.py: Add Variant type + +2005-08-16 Colin Walters + + * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the + DBusError message is NULL. + +2005-08-09 Havoc Pennington + + * dbus/dbus-errors.c: apply patch from Timo Teras to make a + malloc'd copy of the name parameter + +2005-08-09 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_set_reply_serial): print + warning if the reply serial is set to 0 + +2005-08-04 Colin Walters + + * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init) + (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size) + (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach) + (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values) + (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value) + (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype) + (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take): + * glib/dbus-gvalue.h (dbus_g_value_types_init) + (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant) + (dbus_gvalue_demarshal_message, dbus_gvalue_marshal): + + Prefix name with _ to ensure they're not exported. All callers + updated. + + * glib/dbus-gvalue.c (typecode_to_gtype) + (dbus_typecode_maps_to_basic, basic_typecode_to_gtype) + (signature_iter_to_g_type_dict) + (signature_iter_to_g_type_array) + (dbus_gtype_from_signature_iter, dbus_gtype_from_signature) + (dbus_gtypes_from_arg_signature): + Move to dbus-gsignature.c. + + * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call + dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init. + (dbus_binding_tool_output_glib_client): Ditto. + + * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c + and dbus-gsignature.h + + * test/glib/test-service-glib.c (my_object_rec_arrays): Delete + unused variable. + +2005-08-03 Colin Walters + + * glib/dbus-gobject.c: Add tests on hardcoded object info; this should + catch any incompatible changes accidentally made. + +2005-08-03 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix + typo, from Julien Puydt + + * bus/connection.c (bus_connection_disconnected): we were always + doing a wait_for_memory due to a buggy loop, found by Timo Hoenig + +2005-08-01 Colin Walters + + Patch from Joe Markus Clarke: + + * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix + use-after-free. + +2005-08-01 Colin Walters + + Patch from Joe Markus Clarke: + + * tools/dbus-send.c (main): + + Don't use C99 style initializers (bug #3933). + +2005-08-01 Colin Walters + + Patch from Joe Markus Clarke: + + * glib/dbus-gvalue.c (dbus_g_value_types_init): + * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) + * glib/dbus-gobject.c (write_interface): + + Don't use C99 style initializers (bug #3933). + +2005-07-31 Havoc Pennington + + * tools/dbus-viewer.c (load_child_nodes): fix invocation of + dbus_g_proxy_call, fix from Piotr Zielinski bug #3920 + +2005-07-30 Havoc Pennington + + * fix a bunch of Doxygen warnings and mistakes + +2005-07-30 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef + DBUS_BUILD_TESTS since it's now used in production code + +2005-07-29 Havoc Pennington + + * test/glib/test-profile.c (write_junk): initialize the junk + buffer so valgrind doesn't have a breakdown + +2005-07-29 Havoc Pennington + + * bus/signals.c (bus_signals_test): add match_rule_equal() tests + (match_rule_matches): remove unused arg + (test_matching): add tests for match_rule_matches() + + * bus/signals.c (bus_match_rule_parse_arg_match): add ability to + do arg0='foo' arg5='bar' in the match rules + (match_rule_matches): don't match if the arg0='foo' doesn't match. + + * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this + +2005-07-29 Ross Burton + + * dbus/dbus-connection.c: + Don't create a DBusCondVar which is never used. + +2005-07-27 Ross Burton + + * dbus/dbus-message.c: + Reduce the size of the maximum cached message to 10K. + +2005-07-25 Ross Burton + + * glib/dbus-gproxy.c: + Remove matches when all proxies are unregistered. + +2005-07-24 Colin Walters + + * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require + typedata; recursive arrays won't have it. + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: Add recursive arrays tests. + +2005-07-20 John (J5) Palmieir + + * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py. + proxies.py, service.py: Cleanup of code after running it through the + pyflakes code checker mostly dealing with undefined names. + (Bug #3828, Patch from Anthony Baxter ) + +2005-07-17 John (J5) Palmieri + + * NEWS: Update to 0.35.2 + +2005-07-17 John (J5) Palmieri + + * python/_dbus.py: Remove import of the dbus.services + module as it no longer exists (patch from Dimitur Kirov) + + * python/service.py (Object::__init__): Fixed typo + s/name/bus_name (patch from Dimitur Kirov) + + * python/examples/example-signal-emitter.py: import dbus.glib + to get the main loop and use glib mainloop instead of gtk so + X doesn't have to be running. + + * python/examples/example-signal-recipient.py: import dbus.glib + to get the main loop and use glib mainloop instead of gtk so + X doesn't have to be running. Import the decorators module + directly. + + * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck + didn't pick up on but are needed to build + + * configure.in: upped version to 0.35.2 + + * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h: + added Colin Walters' SELinux API rename patch from head + s/unix sercurity context/selinux security context/ + +2005-07-16 John (J5) Palmieri + + * python/Makefile.am: dbus_binding.pxd.in should be included + in EXTRA_DIST not dbus_binding.pxd + fix up $(srcdir) hopefully for the last time + + * NEWS: Update to 0.35.1 + +2005-07-16 Colin Walters + + * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed + from bus_driver_handle_get_connection_unix_security_context. Update for + error usage. + (message_handlers): Update for renames. + + * bus/selinux.c (bus_selinux_allows_send): Handle OOM on + _dbus_string_init failure correctly. + (bus_selinux_append_context): Convert SID to context. Append it + as a byte array. + (bus_selinux_shutdown): Handle the case where bus_selinux_full_init + hasn't been called. + + * bus/selinux.h: Update prototype. + + * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed + from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN. + +2005-07-15 Colin Walters + + * doc/TODO: Add note about convenience wrappers. + +2005-07-15 John (J5) Palmieri + + * NEWS: Update to 0.35 + +2005-07-15 John (J5) Palmieri + + * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST + so distcheck doesn't fail + + * glib/examples/Makefile.am: Add example-service.xml and + example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail + + * glib/examples/statemachine/Makefile.am: Add statemachine.xml and + statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail + + * python/Makefile.am: Preprend $(srcdir)/ to source files so the + compiler looks in the right places during distcheck + +2005-07-15 John (J5) Palmieri + + * glib/example/Makefile.am: Fix a typo which cause make distcheck + to fail + +2005-07-15 John (J5) Palmieri + + * python/examples/example-service.py, + python/examples/example-signal-emitter.py: Fixed up examples + for API changes + +2005-07-15 John (J5) Palmieri + + * python/__init__.py: Upped to version (0,42,0) because of + the API change + +2005-07-15 John (J5) Palmieri + + * ChangeLog: fix date in last entry + + * configure.in, bus/system.conf.in: add the ability to configure + the system bus user at compiletime with the --with-dbus-user flag + (patch from Kristof Vansant) + +2005-07-15 John (J5) Palmieri + + * bus/dispatch.c, test/test-service.c: Add testcase + for sending messages to oneself (TODO item). + + * python/service.py (class Object): Swap ordering of bus_name + and object_path parameters to better support inheritance. + + * doc/dbus-tutorial.xml: change Python docs to reflect change + in parameter ordering and fix the inheritance section. + + * doc/TODO: remove sending message to oneself TODO item + +2005-07-15 Ross Burton + + * glib/dbus-gproxy.c: + Fix a leak when calling methods via the proxy. + +2005-07-15 Colin Walters + + * bus/selinux.c (bus_selinux_append_context): Wrap in + HAVE_SELINUX. + +2005-07-14 John (J5) Palmieri + + * python/_dbus.py (Bus::remove_signal_receiver): + don't add a callback to the match if none has been passed in + + * python/matchrules.py (SignalMatchTree::remove): if the rule + being matched does not have a callback treat it as a wildcard + fix matching logic + + * doc/dbus-tutorial.xml: Add Python tutorial + +2005-07-14 Colin Walters + + * bus/driver.c + (bus_driver_handle_get_connection_unix_security_context): New function. + (message_handlers): Add. + + * bus/selinux.c (bus_selinux_append_context): New function; appends + security context to message. + + * bus/selinux.h: Prototype. + + * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New. + +2005-07-14 John (J5) Palmieri + + * bus/activation.c: clean up all tabs to be 8 spaces + (bus_activation_activate_service): make sure we clean up + if activation fails + + * bus/dispatch.c: clean up all tabs to be 8 spaces + (check_shell_fail_service_auto_start): New function + tests to make sure we get fail properly when trying to auto start a service + with a faulty command line + (check_shell_service_success_auto_start): New function tests to make sure + auto started services get the arguments on the command line + + * test/test-shell-service.c: Added service for testing auto-starting with + command line arguments + + * test/data/valid-service-files/debug-shell-echo-fail.service.in, + test/data/valid-service-files/debug-shell-echo-success.service.in: + Added service files for testing auto-starting with command line arguments + + * */.cvsignore: added a bunch of generated files to various .cvsignore files + +2005-07-14 Rodrigo Moya + + * dbus/dbus-shell.[ch]: copy/pasted code from GLib. + + * dbus/Makefile.am: added new files to build. + + * bus/activation.c (bus_activation_activate_service): support + activation commands with parameters. + + * test/shell-test.c: added test program for the shell parsing + code. + +2005-07-13 David Zeuthen + + * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and + 64 bit signed and unsigned parameters + +2005-07-13 John (J5) Palmieri + + * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd + + * python/service.py (class Name): renamed BusName to make it clearer + what the object is for (a name on the bus) + + * python/examples/example-service.py, + python/examples/example-signal-emitter.py: change the Name object to + BusName + +2005-07-12 Colin Walters + + Patch from Jim Gettys . + + * tools/dbus-launch.c: Include sys/select.h. + +2005-07-12 John (J5) Palmieri + * python/dbus_bindings.pyx.in: removed + + * python/dbus_bindings.pyx: Added. + - Fixed some memleaks (patch from + Sean Meiners ) + - Broke out the #include "dbus_h_wrapper.h" and put it in its + own pxd file (Pyrex definition) + - Broke out glib dependancies into its own pyx module + + * python/dbus_bindings.pdx: Added. + - Defines C class Connection for exporting to other modules + + * python/dbus_glib_bindings.pyx: Added. + - New module to handle lowlevel dbus-glib mainloop integration + + * python/glib.py: Added. + - Registers the glib mainloop when you import this module + + * python/services.py: Removed (renamed to service.py) + + * python/service.py: Added. + - (class Server): renamed Name + + * python/__init__.py: Bump ro version (0,41,0) + -don't import the decorators or service module + by default. These now reside in the dbus.service namespace + + * python/_dbus.py (Bus::__init__): Add code run the main loop + setup function on creation + + * python/examples/example-service.py, + python/examples/example-signal-emitter.py: update examples + + * python/examples/gconf-proxy-service.py, + python/examples/gconf-proxy-service2.py: TODO fix these up + + * doc/TODO: Addition + - Added a Python Bindings 1.0 section + - added "Add match on args or match on details to match rules" + + +2005-07-12 Colin Walters + + * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) + (statemachine-glue.h): + * glib/examples/Makefile.am (example-service-glue.h) + (example-signal-emitter-glue.h): + * glib/Makefile.am (dbus-glib-error-switch.h): + Add libtool --mode=execute so we use the built library instead + of any installed one. + +2005-07-11 Colin Walters + + * glib/dbus-gvalue.c (struct _DBusGValue): Delete. + (dbus_g_value_types_init): Remove assertion. + (dbus_g_value_get_g_type, dbus_g_value_open) + (dbus_g_value_iterator_get_values, dbus_g_value_get_signature) + (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented + functions related to DBusGValue. Now we marshal/demarshal + structures as GValueArray. + (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for + structures. + (signature_iter_to_g_type_array): Don't call + signature_iter_to_g_type_struct. + (signature_iter_to_g_type_struct): Delete. + (dbus_gvalue_to_signature): Delete. + (dbus_gvalue_to_signature): New function with same name as other + one; we can convert structures to signatures. + (demarshal_valuearray): New function. + (get_type_demarshaller): Use it. + (demarshal_recurse): Delete. + (marshal_proxy): New function. + (marshal_map): Warn if we can't determine signature from type. + (marshal_collection_ptrarray): Ditto. + (marshal_collection_array): Ditto. + (get_type_marshaller): Use marshal_valuearray. + (marshal_recurse): Delete. + (_dbus_gvalue_test): Add some tests. + + * dbus/dbus-glib.h (struct _DBusGValueIterator): + (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE) + (dbus_g_value_open, dbus_g_value_iterator_get_value) + (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) + (dbus_g_value_free): Remove prototypes. + + * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle + G_TYPE_VALUE_ARRAY. + + * glib/examples/example-service.c: + * glib/examples/example-client.c: Implement GetTuple. + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: Add structure tests. + +2005-07-10 Colin Walters + + * doc/TODO: Knock off some GLib items with this patch. + + * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) + (_dbus_gvalue_signals_error): New functions. + + * glib/dbus-gvalue-utils.h: Prototype them. + + * glib/dbus-gobject.c (arg_iterate): Update to handle return vals + and change to not output const/retval flags for input args. All + callers updated. + (invoke_object_method): Refactor to handle return values. Add + some more comments in various places. Remove debug g_print. + + * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New. + + * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name): + Handle G_TYPE_NONE. + (compute_gsignature): New function; refactored from code from + compute_marshaller and compute_marshaller_name. Enhance to + handle return values and async ops more cleanly. Update for + async ops returning NONE instead of BOOLEAN. + (compute_marshaller, compute_marshaller_name): Call compute_gsignature + and output appropriate string. + (generate_glue): Handle return value annotation. Also don't dump + constness flag for input arguments. + + * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains + files shared between installed library and utilities. + (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS. + (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the + binding tool can access gtype utility functions. + + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + * test/glib/test-dbus-glib.c: Add some tests for return values. + +2005-07-09 Colin Walters + + * glib/dbus-gparser.c (parse_annotation): Add annotations to + argument if available, not method. + + * glib/dbus-gobject.c (arg_iterate): More verbose warnings. + (invoke_object_method): First, remove some redundant + GValues (object_value, error_value) in favor of working on + array directly. Second, rework constness to be less buggy. + Now we iterate directly over the argument metadata instead + of parallel iterating over output signature and metadata. + + * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error. + + * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const + annotation on input args. + +2005-07-09 Colin Walters + + * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST): + Define. + + * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const + annotation. + + * glib/dbus-gobject.c (arg_iterate): Update to parse constval too. + (method_dir_signature_from_object_info): Handle arg_iterate change. + (write_interface): Ditto. + (lookup_object_info): Don't barf if format_version is > 0. + (invoke_object_method): Handle arg constness. + + * glib/dbus-gidl.c (struct ArgInfo): Add annotations. + (arg_info_new): Create. + (arg_info_unref): Destroy. + (arg_info_get_annotations, arg_info_get_annotation) + (arg_info_add_annotation): New functions. + + * glib/dbus-gidl.h: Prototype them. + + * glib/dbus-gparser.c (parse_annotation): Allow annotations in + args, disallow them in properties. + (parse_annotation): Handle arg annotations. + + * test/glib/test-service-glib.xml: + * test/glib/test-service-glib.c: Update to make some methods + const. + +2005-07-08 Colin Walters + + * test/glib/test-service-glib.xml: + * test/glib/test-service-glib.c: + * test/glib/test-dbus-glib.c: Test a{sv}. + + * glib/examples/statemachine/statemachine.c: + * glib/examples/statemachine/statemachine-server.c: + * glib/examples/statemachine/statemachine-client.c: Fix some bugs, + add progress bar, etc. + + * glib/dbus-gvalue.c (register_array, register_dict): Delete; not + needed anymore due to generic array/map marshalling. + (dbus_g_value_types_init): Don't register basic arrays or the + string/string hash. + (dbus_gtype_from_signature_iter): Don't try to recurse into + variants. + (dbus_gtype_to_signature): Check collection/map before type + metadata. + (demarshal_garray_basic): Renamed to demarshal_collection_array. + (demarshal_ghashtable): Renamed to demarshal_map; fix to use new + generic map creation/append functions instead of hash table + specifically. + (get_type_demarshaller): Handle maps. + (demarshal_collection): Dispatch on collection type to either + demarshal_collection_ptrarray or demarshal_collection_array. + (get_type_marshaller): Handle maps. + (marshal_collection): Dispatch collection type to either + marshal_collection_ptrarray or marshal_collection_array. + (_dbus_gvalue_test): New test. + + * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function. + (hash_free_from_gtype): Use it to free GValues. + (hashtable_append): New function. + (ptrarray_append): Fix prototype. + (slist_append): Ditto. + (_dbus_gvalue_utils_test): Extend tests. + + * glib/dbus-gtype-specialized.c + (dbus_g_type_specialized_init_append): Renamed from + dbus_g_type_specialized_collection_init_append. Remove const from + value, since we steal it. + (dbus_g_type_specialized_map_append): New function. + + * glib/dbus-gtype-specialized.h: Update prototypes. + Add DBusGTypeSpecializedMapAppendFunc. + + * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run + _dbus_gvalue_test. + + * glib/dbus-gtest.h: Prototype it. + +2005-07-08 Ross Burton + + * dbus/dbus-glib.h: + Add DBysGAsyncData for the async bindings. + + * glib/dbus-binding-tool-glib.c: + Re-enable the async bindings. + + * test/glib/test-dbus-glib.c: + Add a test for the generated async bindings. + +2005-07-08 Colin Walters + + * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a + connection concept. + +2005-07-08 Colin Walters + + * tools/Makefile.am: Kill of print-introspect in favor of using + dbus-send --print-reply=literal. + + * test/glib/test-service-glib.xml: + * test/glib/test-service-glib.c (my_object_get_objs): New test + for "ao". + + * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data. + (main): Test GetObjs. + + * glib/examples/statemachine/Makefile.am: + * glib/examples/statemachine/sm-marshal.list: + * glib/examples/statemachine/statemachine-client.c: + * glib/examples/statemachine/statemachine-server.c: + * glib/examples/statemachine/statemachine-server.xml: + * glib/examples/statemachine/statemachine.c: + * glib/examples/statemachine/statemachine.h: + * glib/examples/statemachine/statemachine.xml: + + New example. + + * glib/examples/example-service.c (main): Move invocation + of dbus_g_object_type_install_info earlier, to emphasize it + should only be done once. + + * glib/examples/example-signal-emitter.c (main): Ditto. + + * glib/examples/Makefile.am (SUBDIRS): Include statemachine. + + * glib/dbus-gvalue.h (dbus_gtype_to_signature) + (dbus_gvalue_marshal): Update prototypes. + + * glib/dbus-gvalue.c: Update all marshalling functions to take + const GValue instead of GValue. + (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed + types. + (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature + change. + (dbus_gtype_to_signature): Handle generic collecitons and maps. + Return a newly-allocated string. + (demarshal_proxy, demarshal_object_path, demarshal_object) + (demarshal_strv, demarshal_ghashtable): Set error, don't assert if + we get the wrong types from message. + (get_type_demarshaller): New function, extracted from + dbus_gvalue_demarshal. + (demarshal_collection): New function, demarshals generic + collection. + (dbus_gvalue_demarshal): Just invoke result of + get_type_demarshaller. Throw error if we don't have one. + (marshal_garray_basic): Abort on OOM. + (get_type_marshaller): New function, extracted from + dbus_gvalue_marshal. + (collection_marshal_iterator, marshal_collection): New functions; + implements generic marshalling for an iteratable specialized + collection. + (dbus_gvalue_marshal): Just invoke result of get_type_marshaller. + + * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle + G_TYPE_STRING. + (ptrarray_value_from_gvalue): Ditto. + (ptrarray_append, ptrarray_free): New functions. + (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) + (slist_append, slist_end_append, slist_free): New functions. + (dbus_g_type_specialized_builtins_init): Add append fuctions + for GPtrArray and GSList. Register GSList. + (test_specialized_hash, _dbus_gvalue_utils_test): New functions. + + * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext): + New. + (dbus_g_type_specialized_collection_init_append) + (dbus_g_type_specialized_collection_append) + (dbus_g_type_specialized_collection_end_append): Prototype. + (DBusGTypeSpecializedCollectionVtable): Add append_func and + end_append_func. + + * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) + (dbus_g_type_specialized_collection_append) + (dbus_g_type_specialized_collection_end_append): New functions. + (dbus_g_type_map_value_iterate): Take const GValue. + (dbus_g_type_collection_value_iterate): Ditto. + + * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run + _dbus_gvalue_utils_test. + + * glib/dbus-gtest.h: Prototype it. + + * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid + using uninitialized owner_list. + (dbus_g_proxy_begin_call_internal): Move return_if_fail to + public API. + (dbus_g_proxy_end_call_internal): Update to use error set + from dbus_gvalue_demarshal instead of setting it here. + (dbus_g_proxy_begin_call): Move return_if_fail here. + + * glib/dbus-gobject.c (write_interface): Update for + dbus_gtype_to_signature returning new string. + + * configure.in: Add glib/examples/statemachine. + +2005-07-08 Joe Shaw + + * configure.in: Add a configure option, --with-console-auth-dir + + * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the + new setting. Patch from Kay Sievers. + +2005-07-06 Colin Walters + + * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify) + (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type) + (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete. + (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): + Delete in favor of dbus_g_proxy_begin_call and + dbus_g_proxy_cancel_call. + (DBusGProxyCall, DBusGProxyCallNotify): New. + (dbus_g_proxy_begin_call): Change prototype to take callback, user + data, and destroy function. This replaces + dbus_g_pending_call_set_notify. + (dbus_g_proxy_cancel_call): Prototype. + (DBusGAsyncData): Delete, shouldn't be needed anymore. + + * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and + pending_calls map. + (struct _DBusGProxyManager): Add bus_proxy member, which is an + internal proxy for calls to the bus. Remove + pending_nameowner_calls, now the internal proxy keeps track. + (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to + pending_nameowner_calls. + (got_name_owner_cb): Update prototype, and use + dbus_g_proxy_end_call. + (got_name_owner_cb): Remove reference to pending_nameowner_calls. + (dbus_g_proxy_manager_register): Delete directly libdbus code in + favor of using internal proxy. + (dbus_g_proxy_manager_unregister): Update to use + dbus_g_proxy_cancel_call for any pending GetNameOwner call. + (dbus_g_proxy_init): Initialize pending calls map. + (dbus_g_proxy_constructor): New. + (dbus_g_proxy_class_init): Add get/set property functions, + constructor, and add NAME, PATH, and INTERFACE properties. + (cancel_pending_call): New function. + (dbus_g_proxy_dispose): Iterate over any outstanding calls and + cancel them. + (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New. + (GPendingNotifyClosure): New structure. + (d_pending_call_notify, d_pending_call_free): Moved here from + dbus-glib.c. + (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function + ordering. + (manager_begin_bus_call): New internal function for talking to + internal bus proxy. + (dbus_g_proxy_new): Construct object using GObjet properties. + (dbus_g_proxy_begin_call_internal): Update to take user data, etc. + Create closure of same, and insert call into map of pending calls. + (dbus_g_proxy_end_call_internal): Take call id instead of pending + call. Look up pending call in current set. Remove it when we've + completed. + (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete. + (dbus_g_proxy_begin_call): Change API to take callback, user data, + and destroy function directly. + (dbus_g_proxy_end_call): Update to take DBusGProxyCall. + (dbus_g_proxy_call): Invoke with NULL callback. + (dbus_g_proxy_cancel_call): New function, replaces + dbus_g_pending_call_cancel. + + * glib/dbus-gparser.c (validate_signature): Fix call to + dbus_set_g_error. + + * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark): + New quark for attaching metadata to GType. + (info_hash): Delete. + (lookup_object_info): Look up using quark. + (dbus_g_object_type_install_info): Check that a type is classed, + not that it's an object. Also just install type data using quark + instead of using global hash. + + * glib/dbus-glib.c (dbus_g_pending_call_ref) + (dbus_g_pending_call_unref, dbus_pending_call_get_g_type) + (GPendingNotifyClosure): Delete. + (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c. + (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete. + + * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async + client method generation until we can fix it... + + * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call. + (load_from_service_thread_func): Ditto. + + * tools/dbus-names-model.c (struct NamesModel): Hold + DBusGProxyCall. + (have_names_notify): Update prototype, use + dbus_g_proxy_cancel_call. + (names_model_reload): Update for new dbus_g_proxy_begin_call API. + + * tools/dbus-monitor.c (filter_func): Update for print_message + API change. + + * test/glib/test-dbus-glib.c: Add more tests for async + invocations. Update many begin_call/end_call pairs to just use + dbus_g_proxy_call. + + * tools/dbus-send.c (main): Add --print-reply=literal mode. This + allows us to dump print-introspect.c. + + * tools/dbus-print-message.h (print_message): Add literal argument + to print_message which is intended to allow printing arguments without + metadata like "string=". + + * tools/dbus-print-message.c (print_iter): Add literal argument. + (print_message): Allow printing string messages literally. + +2005-07-05 Colin Walters + + * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): + Remove value refcount leak, original patch from Jorn Baayen + . Also remove useless extra value in favor + of prepending to value array directly. + +2005-07-02 Colin Walters + + * glib/dbus-gmain.c (_dbus_gmain_test): Fix test. + +2005-07-01 Colin Walters + + Patch from Jonathan Matthew + + * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type. + (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE, + G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32, + and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE. + +2005-06-30 Colin Walters + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: Update tests for new error + setting bits, also add async tests (patch from Ross Burton). + + * test/glib/Makefile.am (test_service_glib_LDADD): Add + DBUS_GLIB_THREADS_LIBS. + + * glib/dbus-gproxy.c (get_name_owner) + (dbus_g_pending_call_end_valist): Ditto. + + * glib/dbus-gobject.c (error_metadata): New mapping from GError + domain (GQuark) to DBusGErrorInfo. + (gerror_domaincode_to_dbus_error_name): Attempt to look up error + quark in error_metadata. Take message interface as default + error message interface. + (gerror_to_dbus_error_message): Pass message interface. + (dbus_set_g_error): Resurrected. + (dbus_g_error_info_free): New function. + (dbus_g_object_type_install_info): Use g_type_class_ref instead + of _peek to actually create the object class if it hasn't been + created yet. + (dbus_g_error_domain_register): New function. + + * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error. + + * glib/dbus-gparser.c (validate_signature): Ditto. + + * dbus/dbus-glib.h (dbus_g_error_set): Delete. + (dbus_g_error_domain_register): Prototype. + + * glib/dbus-glib.c (dbus_g_error_set): Delete. + Update tests. + +2005-06-29 Colin Walters + + * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add + DBUS_TYPE_G_OBJECT_PATH. + + * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers + for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should + be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH. + (dbus_g_object_path_get_g_type): New function. + (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH + to DBUS_TYPE_G_OBJECT_PATH by default. + (demarshal_proxy): Remove unused name variable. + (demarshal_object_path, marshal_object_path): New functions. + (demarshal_proxy_array, marshal_proxy_array): Delete. + + * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map + DBUS_TYPE_G_OBJECT_PATH to char *. + (dbus_g_type_get_lookup_function): Map builtin + DBUS_TYPE_G_OBJECT_PATH. + + * test/glib/test-dbus-glib.c + * test/glib/test-service-glib.c (my_object_objpath): + Adapt tests to new object path marshalling. + +2005-06-29 John (J5) Palmieri + + * configure.in: force check for Python >= 2.4 + +2005-06-29 Colin Walters + + Patch from Ross Burton + + * glib/dbus-gobject.c (invoke_object_method): Unset object + value in all cases, not only in async case. + +2005-06-29 Colin Walters + + * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member + name_call for keeping track of any outgoing GetNameOwner call. + Also add for_owner and associated. + (struct _DBusGProxyManager): Add owner_names, which is hash table + that maps a base name to a list of names it owns (that we're + interested in). Add pending_nameowner_calls which is a list of + all outstanding GetNameOwner; avoids us having to iterate over + every proxy. Add unassociated_proxies which keeps track of name + proxies with no associated name owner. + (dbus_g_proxy_manager_unref): Destroy owner_names. + (struct DBusGProxyNameOwnerInfo): New struct for keeping track of + name refcounts. + (find_name_in_info, name_owner_foreach) + (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo) + (dbus_g_proxy_manager_monitor_name_owner) + (dbus_g_proxy_manager_unmonitor_name_owner) + (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner): + New functions; they manipulate the owner_names mapping. + (got_name_owner_cb): New function. + (get_name_owner): New function, extracted from + dbus_g_proxy_new_for_name_owner. + (dbus_g_proxy_manager_register): For now we need to keep track of + all NameOwnerChanged. Also if the proxy is for a name, if we + don't already know the name owner, queue a new GetNameOwner + request and add it to our list of unassociated proxies. Otherwise + inc the refcount. + (dbus_g_proxy_manager_unregister): If this proxy is for a name, + cancel any pending GetNameOwner call, etc. + (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use + the owner_names mapping to look up the current names for the + signal source, and dispatch to any proxies for that name. + (dbus_g_proxy_new): Initialize new members. + (dbus_g_proxy_new_for_name): Delete unused proxy variable. + (dbus_g_proxy_new_for_name_owner): Use get_name_owner. + (dbus_g_pending_call_end_valist): New function, extracted from + dbus_g_proxy_end_call_internal. Useful when we don't have a proxy + but want to use the GLib infrastructure. Also note how many + arguments in reply were over. + (dbus_g_pending_call_end): New function, just call + dbus_g_pending_call_end_valist. + (dbus_g_proxy_end_call_internal): Just call + dbus_g_pending_call_end_valist. + + * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup + of builtin marshaller for STRING_STRING_STRING. + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + Extend tests to cover name proxies, destruction of owner proxies, + etc. + + * glib/examples/example-signal-recipient.c + (dbus_g_proxy_new_for_name_owner): Create a name proxy. + + * tools/dbus-send.c (main): Print D-BUS error name in addition + to message. + +2005-06-28 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (cunregister_function_handler, + cmessage_function_handler): Patch from + Anthony Baxter fixes threading problems + by using the Py_GILState_Ensure/Release to synchronize with the + python runtime. + +2005-06-28 Ray Strode + + * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill + babysitter helper process on last unref, bug #2813. + +2005-06-27 Colin Walters + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + Test hash table signal emitting. + + * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert + types to their fundamental basis types, since this is what + marshallers operate on. Also add an entry for VOID__BOXED. + (dbus_g_object_register_marshaller_array): Convert to fundamental. + +2005-06-26 Havoc Pennington + + * doc/dbus-tutorial.xml: fix names of interface/service/path, fix + from Don Park + +2005-06-26 Colin Walters + + * glib/dbus-glib.c (dbus_set_g_error): Delete. + (dbus_g_error_set): New public function from its ashes; used by + both service-side method implementation and GLib bindings + internals. + (dbus_g_error_has_name, dbus_g_error_get_name): New function. + (_dbus_glib_test): Add some tests. + + * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. + + * test/glib/test-service-glib.c (my_object_throw_error): Use + dbus_g_error_set. + + * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle + errors thrown by dbus_g_error_set. + + * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. + + * glib/dbus-gparser.c (validate_signature): Ditto. + + * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) + (dbus_g_proxy_end_call_internal): Ditto. + + * glib/Makefile.am: Generate dbus-glib-error-switch.h, which + converts DBUS_ERROR_x to DBUS_GERROR_x. + (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. + + * doc/TODO: Remove error TODO. + + * doc/dbus-tutorial.xml: Update with documentation about error + handling. + + * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make + sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to + GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION. + +2005-06-22 Colin Walters + + Patch from Ross Burton + + * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig. + +2005-06-20 Colin Walters + + * configure.in: Add glib/examples. + + * glib/Makefile.am: Add examples/ + + * glib/examples/.cvsignore + * glib/examples/Makefile.am + * glib/examples/example-client.c + * glib/examples/example-service.c + * glib/examples/example-service.xml + * glib/examples/example-signal-emitter.c + * glib/examples/example-signal-emitter.xml + * glib/examples/example-signal-recipient.c: + New files; GLib binding examples, ported from + python/examples. + +2005-06-20 Colin Walters + + * dbus/dbus-glib.h: + * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to + dbus_g_proxy_call. + + * glib/dbus-binding-tool-glib.c: + * doc/dbus-tutorial.xml: + * test/glib/test-dbus-glib.c: Update for rename. + +2005-06-20 Colin Walters + + Patch suggested by Ross Burton + + * glib/dbus-gobject.c (export_signals): Free signal name. + (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug + memory leak. Add a bit of documentation. + (dbus_g_method_return_error): Free context, and note we do + so. + +2005-06-18 Murray Cumming + + * dbus/dbus-glib.h: + * glib/dbus-gobject.c: + * glib/dbus-gproxy.c: + * glib/dbus-gvalue.c: Predeclare structs as + typedef struct _Something Something instead of + typedef struct Something Something, so we can + redeclare the prototypes. Other GNOME libraries + do this already. + +2005-06-17 Colin Walters + + * tools/dbus-names-model.c (have_names_notify): Fix call + to dbus_g_proxy_end_call. + +2005-06-17 Colin Walters + + * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't + spew warnings if we get malformed remote signals. + + * glib/dbus-gobject.c (propsig_iterate): New function. + (lookup_object_info): New function, extracted from + lookup_object_and_method. + (introspect_properties, introspect_signals): Delete; these + are merged into write_interface. + (write_interface): Write out signals and properties here; + dump the org.gtk.object stuff and use the interface given + in the introspection data blob. Also fix up property XML. + (lookup_values): New function. + (introspect_interfaces): Gather a mapping from interface to a + list of its methods, signals, and properties, then write out + each interface. + (lookup_object_and_method): Use lookup_object_info. + (struct DBusGSignalClosure): Add interface. + (dbus_g_signal_closure_new): Add interface. Don't dup signame; + we can just use the constant data. + (dbus_g_signal_closure_finalize): Don't free signal name. + (signal_emitter_marshaller): Use interface from signal closure. + (export_signals): Only export signals mentioned in introspection + blob. + (dbus_g_connection_register_g_object): Warn if we have no + introspection data for an object. + (funcsig_equal): Remove unused variable. + (dbus_g_object_register_marshaller): Take varargs instead of + list. + (dbus_g_object_register_marshaller_array): New function, + extracted from old dbus_g_object_register_marshaller. + + * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add + signals and property data. + (write_quoted_string): New function, extracted from generate_glue. + (generate_glue): Write signals and properties to introspection + blob. + + * dbus/dbus-glib.h (struct DBusGObjectInfo): Include + exported_signals and exported_properties. + (dbus_g_object_register_marshaller): Update prototype. + (dbus_g_object_register_marshaller_array): Prototype. + + * test/glib/test-dbus-glib.c: Extend testing to cover new signals. + + * test/glib/test-service-glib.c: Add new test signals and method + to emit them. + + * test/glib/test-service-glib.xml: Add some test signals. + + * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c + and my-object-marshal.h + (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add + my-object-marshal.c. + (my-object-marshal.c, my-object-marshal.h): Implement. + + * test/glib/.cvsignore: Update. + + * doc/TODO: Remove two GLib TODO items fixed by this + patch. + +2005-06-16 Colin Walters + + * doc/TODO: Update for GLib bindings. + +2005-06-16 Colin Walters + + * glib/dbus-binding-tool-glib.c: + * glib/dbus-gobject.c: + * glib/dbus-gproxy.c: Add Nokia copyright; Patch + from Ross Burton, for his GLib bindings work. + +2005-06-16 Colin Walters + + * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params + to iterate instead of walking to G_TYPE_INVALID. + + Patch based on a patch from Ryan Gammon. + +2005-06-16 Colin Walters + + * bus/bus.c (bus_context_new): Set parser to NULL + after we unref it (Patch from Chris Boscolo, #2174). + +2005-06-16 Colin Walters + + * python/dbus_bindings.pyx.in: Import size_t, + __int64_t, __uint64_t, and __signed. + + * dbus/dbus-sysdeps.c (write_credentials_byte): + Define cmsg struct, output it. + (_dbus_read_credentials_unix_socket): + Use cmsg struct. + + Patch from Joe Markus Clarke for FreeBSD support. + +2005-06-16 Colin Walters + + * tools/dbus-send.c (append_array): Use strtok. + (append_dict): New function. + (type_from_name): New function, extracted from main. + (main): Handle sending dicts. + + * tools/dbus-print-message.c (print_iter): Print dict + entries. + +2005-06-16 Colin Walters + + * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string + values as the empty string (#2948). + +2005-06-16 Colin Walters + + * dbus/Makefile.am: + * mono/doc/Makefile.am: + * test/glib/Makefile.am: + + Fix srcdir != builddir issues (Patch from Chris Wilson, #3477) + +2005-06-16 Colin Walters + + * dbus/dbus-marshal-header.c (_dbus_header_load): Set + header byte order from expected byte order (Patch from Chris Wilson, #3475). + + * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): + Increment pointer after swapping fixed array. Add assertion + for array length. + +2005-06-15 Colin Walters + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): + Fix call to dbus_set_error. (Patch from Michael Banck, #3461) + +2005-06-15 John (J5) Palmieri + + * NEWS: Update to 0.34 + +2005-06-15 David Zeuthen + + * configure.in (LT_CURRENT): Revert back to 1 as the library + hasn't changed and we've certainly not committed to protocol + stability yet. All this does is to break ABI. See commit note + from hp@redhat.com 2005-05-05 for details. + +2005-06-15 John (J5) Palmieri + + * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method + (_dbus_connection_run_builtin_filters): New method + (dbus_connection_dispatch): Run the builtin filters which in turn + runs the peer filter which handles Ping messages. + + * doc/TODO: + - Ping isn't handled: This patch fixes it + + - Add a test case for the Ping message: added TODO item + +2005-06-15 John (J5) Palmieri + + * dbus/dbus-message.c: + (dbus_message_has_path): New method + (dbus_message_has_interface): New method + (dbus_message_has_member): New method + + * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user): + New method + + * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that + the keyring directory is private to the user + + * doc/TODO: + - The convenience functions in dbus-bus.h should perhaps have + the signatures that they would have if they were autogenerated + stubs. e.g. the acquire service function. We should also evaluate + which of these functions to include, in light of the fact that + GLib/Qt native stubs will probably also exist.: Punted + + - add dbus_message_has_path(), maybe has_member/interface: + fixed in this patch + + - in dbus-keyring.c, enforce that the keyring dir is not + world readable/writable: Fixed in this patch + +2005-06-15 John (J5) Palmieri + + * dbus/dbus-marshal-validate.h: Added a new validation + error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for + out of memory errors when validating signitures + + * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR + in places where we previously used DBUS_VALID and a FALSE return + value to indicate OOM + + * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason): + Use a stack to track the number of elements inside containers. The + stack values are then used to validate that dict entries have only two + elements within them. + (validate_body_helper): check the reason for failure when validating + varients + + * dbus/dbus-message.c (load_message): use + DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used + DBUS_VALID and a FALSE return value to indicate OOM + + * doc/TODO: remove "- validate dict entry number of fields" as this + patch fixes it + +2005-06-14 David Zeuthen + + * bus/bus.c (process_config_every_time): Drop existing conf-dir + watches (if applicable) and add new watches + + * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY + (main): Setup SIGIO signal handler if using D_NOTIFY + + * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs + + * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list + (merge_included): Also merge conf_dirs list + (bus_config_parser_unref): Clear conf_dirs list + (include_dir): Add directory to conf_dirs list + (bus_config_parser_get_conf_dirs): New function + + * bus/dir-watch.[ch]: New files + + * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch] + + * configure.in: Add checks for D_NOTIFY on Linux + +2005-06-14 Colin Walters + + * glib/dbus-binding-tool-glib.c: + * glib/dbus-gobject.c: + * glib/dbus-gvalue.c: Fix indentation and brace style. + +2005-06-14 Ross Burton . + + * glib/dbus-glib.h: Make DBusGMethodInvocation + a private structure. Rearrange prototypes a bit. + + * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add + documentation for first_arg_type. + + * glib/dbus-gobject.c: Move DBusGMethodInvocation + here, add documentation. Move dbus_g_method_return + and dbus_g_method_return_error into public API + section. + +2005-06-14 Colin Walters + + * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): + Add missing return statements, noticed by Ross Burton. + +2005-06-13 Ross Burton . + + * glib/dbus-gobject.c: Handle errors on message + demarshalling by sending error message back. + * glib/dbus-gvalue.c: Initialize return variables. + +2005-06-13 Colin Walters + + * glib/Makefile.am: Fix thinko in last patch. + +2005-06-13 Colin Walters + + * glib/Makefile.am: Move dbus-gtype-specialized.c + and dbus-gtype-specialized.h into a _HEADERS variable, + install them. + +2005-06-12 Colin Walters + + Async signals and various bugfixes and testing by + Ross Burton . + + * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete. + (dbus_gvalue_genmarshal_name_from_type) + (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c. + (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature. + (dbus_g_value_types_init, dbus_gtype_from_signature) + (dbus_gtype_from_signature_iter, dbus_gtype_to_signature) + (dbus_gtypes_from_arg_signature): New function prototypes. + (dbus_gvalue_demarshal): Take context and error arguments. + (dbus_gvalue_demarshal_variant): New function. + (dbus_gvalue_demarshal_message): New function. + (dbus_gvalue_store): Delete. + + * glib/dbus-gvalue.c: + + File has been almost entirely rewritten; now we special-case + more types such as DBUS_TYPE_SIGNATURE, handle arrays and + hash tables correctly, etc. Full support for recursive values + is not yet complete. + + * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last + argument of signal to G_TYPE_POINTER since we now pass a + structure. + (lookup_g_marshaller): Delete in favor of + _dbus_gobject_lookup_marshaller. + (marshal_dbus_message_to_g_marshaller): Use + _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message + to handle remote signal callbacks. + (dbus_g_proxy_new_from_proxy): New function; creates a new + DBusGProxy by copying an existing one. + (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface) + (dbus_g_proxy_get_path): New functions. + (dbus_g_proxy_marshal_args_to_message): New function; + factored out of existing code. + (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments + from a varargs array. + (dbus_g_proxy_begin_call_internal): New function. + (dbus_g_proxy_end_call_internal): New function. + (dbus_g_proxy_begin_call): Take GTypes instead of DBus types + as arguments; simply invoke dbus_g_proxy_begin_call_internal + after collecting args into value array. + (dbus_g_proxy_end_call): Take GTypes instead of DBus types; + invoke dbus_g_proxy_end_call_internal. + (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and + end_call_internal. + (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus + types. + (array_free_all): New function. + (dbus_g_proxy_add_signal): Take GTypes. + + * glib/dbus-gobject.h: + (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. + (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller): + Prototype. + + * glib/dbus-gobject.c: Add a global marshal_table hash which + stores mappings from type signatures to marshallers. Change lots + of invocations of dbus_gtype_to_dbus_type to + dbus_gtype_to_signature. + (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. + (introspect_signals): Fix test for query.return_type. + (set_object_property): Update invocation of dbus_gvalue_demarshal. + (invoke_object_method): Many changes. Handle asynchronous + invocations. Convert arguments with + dbus_gvalue_demarshal_message. Handle errors. Use + DBusSignatureIter instead of strlen on args. Handle all arguments + generically. Special-case variants. + (dbus_g_method_return, dbus_g_method_return_error): New function. + (DBusGSignalClosure): New structure, closes over signal + information. + (dbus_g_signal_closure_new): New function. + (dbus_g_signal_closure_finalize): New function. + (signal_emitter_marshaller): New function; is special marshaller + which emits signals on bus. + (export_signals): New function; introspects object signals and + connects to them. + (dbus_g_object_type_install_info): Take GType instead of + GObjectClass. + (dbus_g_connection_register_g_object): Invoke export_signals. + (dbus_g_connection_lookup_g_object): New function. + (DBusGFuncSignature) New structure; used for mapping type + signatures to marshallers. + (funcsig_hash): New function; hashes DBusGFuncSignature. + (funcsig_equal): New function; compares DBusGFuncSignature. + (_dbus_gobject_lookup_marshaller): New function. + (dbus_g_object_register_marshaller): New function; used to + register a marshaller at runtime for a particular signature. + + * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests. + + * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC + which notes a server method implementation should be + asynchronous. + + * glib/dbus-binding-tool-glib.c + (dbus_binding_tool_output_glib_server): Call + dbus_g_value_types_init. + (write_formal_parameters): Use dbus_gtype_from_signature. Handle + variants specially. + (dbus_g_type_get_lookup_function): Turn GType into an invocation + of a lookup function. + (write_args_for_direction): Use dbus_g_type_get_lookup_function. + (write_untyped_out_args): New method; write output arguments. + (write_formal_declarations_for_direction): Function for + writing prototypes. + (write_formal_parameters_for_direction): Function for + writing implementations. + (write_typed_args_for_direction): Function for writing + arguments prefixed with GTypes. + (write_async_method_client): Write out async version + of method. + + * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h. + (dbus_g_type_get_marshal_name): Move mapping from GType + to marshal name into here. + (dbus_g_type_get_c_name): Move into here. + (compute_marshaller): Convert signature to type with + dbus_gtype_from_signature, use dbus_g_type_get_marshal_name. + (compute_marshaller_name): Ditto. + (compute_marshaller): Handle async signal annotations. + (gather_marshallers): Return if we don't have a known + prefix. + (generate_glue): Collect introspection blob here, and + write all of the blob at the end. This allows an object + with multiple interfaces to work. + Mark async methods in introspection blob. + + * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add + dbus-gtype-specialized.c, dbus-gtype-specialized.h, + dbus-gvalue-utils.h, dbus-gvalue-utils.c. + + * dbus/dbus-glib.h: Don't include dbus-protocol.h; this + avoids people accidentally using DBUS_TYPE_* which should + not be necessary anymore. + Do include dbus-gtype-specialized.h, which are utilities + for GLib container types. + Add various #defines for types such as + DBUS_TYPE_G_BOOLEAN_ARRAY. + (DBusGValueIterator, DBusGValue): Define, not fully used + yet. + (dbus_g_value_get_g_type): Type for recursive value. + (dbus_g_value_open, dbus_g_value_iterator_get_value) + (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) + (dbus_g_value_free): Prototypes. + (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype. + (dbus_g_proxy_set_interface): Prototype. + (dbus_g_proxy_begin_call, dbus_g_proxy_end_call) + (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus + types. + (dbus_g_proxy_get_path, dbus_g_proxy_get_interface): + Accessors. + (DBusGAsyncData, DBusGMethodInvocation): Structures for + doing async invocations. + (dbus_g_method_return, dbus_g_method_return_error): + Prototypes. + * doc/dbus-tutorial.xml: Update GLib section. + + * tools/dbus-viewer.c (load_child_nodes): Update + for new invocation type of dbus_g_proxy_end_call. + (load_from_service_thread_func): Ditto. + + * tools/print-introspect.c (main): Ditto. + + * tools/dbus-names-model.c (have_names_notify) + (names_model_reload, names_model_set_connection) + Use GTypes. + + * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION, + needed since Python bindings use GLib bindings. + + * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION. + Add --prefix argument. + + * tools/Makefile.am: Define DBUS_COMPILATION. Remove + unneeded --ignore-unsupported arg. + + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + * test/glib/test-dbus-glib.c: Add many more tests. + +2005-06-06 David Zeuthen + + * doc/TODO: Add item about need to remove deprecated functions. + + * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect + + * dbus/dbus-connection.c (dbus_connection_disconnect): New function + to repair the ABI which was broken with the last commit. + +2005-06-02 John (J5) Palmieri + + * dbus/dbus-connection.c, dbus/dbus-connection.h + (dbus_connection_disconnect): renamed to dbus_connection_close + for API symmetry with dbus_connection_open + (_dbus_connection_open_internal): + s/dbus_connection_disconnect/dbus_connection_close + + * dbus/dbus-bus.c (dbus_bus_get): + s/dbus_connection_disconnect/dbus_connection_close + + * bus/connection.c (bus_connections_unref, + bus_connections_setup_connection, bus_connections_expire_incomplete): + s/dbus_connection_disconnect/dbus_connection_close + + * bus/dispatch.c (bus_dispatch, kill_client_connection, + kill_client_connection_unchecked, check_hello_connection): + s/dbus_connection_disconnect/dbus_connection_close + + * bus/bus.c (new_connection_callback): + s/dbus_connection_disconnect/dbus_connection_close + + * tools/dbus-send.c (main): + s/dbus_connection_disconnect/dbus_connection_close + + * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func): + s/dbus_connection_disconnect/dbus_connection_close + + * test/test-service.c (path_message_func, filter_func): + s/dbus_connection_disconnect/dbus_connection_close + + * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed + +2005-05-25 Colin Walters + + * dbus/dbus-protocol.h: Move various bus service #defines such + as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to + dbus/dbus-shared.h. + * dbus/dbus-shared.h: Various defines moved here. + * dbus/dbus-marshal-header.c: Include dbus-shared.h. + +2005-05-25 John (J5) Palmieri + + * python/__init__.py: Python bindings deserve a minor version + update. Upped to (0, 40, 2) + +2005-05-24 John (J5) Palmieri + + * python/decorators.py: add explicitly_pass_message decorator + for passing in the dbus message as keyword for edge case signal + handling + + * python/matchrules.py (SignalMatchRule.__repr__): fix output + to conform with what dbus expects for match rules + (SignalMatchRule.execute): add the dbus message as a keyword + if the signal handler has requested it + + * python/examples/example/signal-recipient.py: added some more + examples on how to hook up to signals + +2005-05-23 John (J5) Palmieri + + * python/decorators.py: import dbus_bindings + + * python/matchrules.py (SignalMatchRule, SignalMatchTree, + SignalMatchNode): new classes that implement wildcard signal + callback matching using a tree lookup. Heavily modified from a + patch sent by Celso Pinto (fd.o bug #3241) + + * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): + use new match classes to handle signals. + +2005-05-19 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH + +2005-05-18 Havoc Pennington + + * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require + gettext. Not really worth requiring yet perhaps, but any + production quality 1.0 would require it so we should go ahead and + get things set up. We do have a couple token calls to + bindtextdomain in the code already. + +2005-05-16 John (J5) Palmieri + + * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock + when using recursive g_main_loops + + * python/_dbus.py (class Bus): add the ProxyObjectClass + alias for ProxyObject to make it easier for the Twisted + networking framework to integrate dbus. + + * python/proxies.py (class ProxyObject): add the ProxyMethodClass + alias for ProxyMethod to make it easier for the Twisted + networking framework to integrate dbus. + +2005-05-11 Ross Burton + + * glib/dbus-glib-tool.c: Add --prefix argument. + * glib/dbus-binding-tool-glib.h: Add prefix argument. + * glib/dbus-binding-tool-glib.c (compute_marshaller_name): + Add prefix argument. + (generate_glue): Pass prefix argument down. + (dbus_binding_tool_output_glib_server): Pass prefix to + glib-genmarshal. + +2005-05-11 Colin Walters + + * tools/dbus-send.c (append_array): New function. + (append_arg): Broken out from main. + (main): Add cheesy hack to send arrays and variants. + (usage): Update. + * tools/dbus-print-message.c (print_iter): Broken out + from main. + +2005-05-11 Colin Walters + + * dbus/dbus-signature.c (dbus_signature_iter_get_signature): + New function, returns signature string for signature iter. + * dbus/dbus-signature.h: Prototype it. + * dbus/dbus-message.c (dbus_message_iter_get_signature): + New function, returns signature string for message iter. + (dbus_message_iter_get_array_len): New function, returns + length of array. + (dbus_message_iter_get_fixed_array): Fix assertion; this + function should be used when the iter is pointing to the + contents of an array + * dbus/dbus-message.h: Prototypes. + * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length): + New function; returns length of an array. + * dbus/dbus-marshal-recursive.h: Prototype it. + +2005-05-11 Colin Walters + + * dbus/dbus-sysdeps-util.c : Fix + compilation error. + +2005-05-08 Havoc Pennington + + * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the + daemon's pid, not the parent's pid, to the file descriptor. + Reported by Taj Morton. + +2005-05-05 Havoc Pennington + + * configure.in (LT_*): add notes on how the libtool versioning + works to save thinking. Increment soname to indicate protocol + breakage (though really the library interface hasn't changed I + guess) + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + verify the GUID received from server matches what we were + expecting, if we had an expectation + + * dbus/dbus-auth.c (send_ok): send GUID along with the OK command + (_dbus_auth_get_guid_from_server): new function + (send_begin): parse the OK args + + * doc/dbus-specification.xml: add GUID to the auth protocol + +2005-05-05 John (J5) Palmieri + + * Fix my name in previous changelog ;) + + * python/proxies.py (ProxyObject.__getattr__): add further patch + from Anthony Baxter to throw an AttributeError when python + __special__ functions are called instead of marshling them over + the bus (Bug#1685 comment 3). + +2005-05-04 John (J5) Palmieri + + * python/Makefile.am: changed to use pyexecdir for the binding + shared libraries (Bug#2494) + + * python/exceptions.py: bring exceptions over from the bindings + so they can be used in applications (Bug#2036) + Make all exceptions derive from DBusException + + * python/_dbus.py, python/proxies.py: implement __repr__ in a couple + of classes so that print obj doesn't throw an exception (Bug #1685) + +2005-05-03 Ross Burton + + * glib/dbus-gobject.c (dbus_g_connection_register_g_object): + Return if we get an error during registration. Set up a + weak reference on object to unregister if object is destroyed. + (unregister_gobject): New function. + +2005-05-01 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: + - added new type classes for hinting to the marashaler what type + to send over the wire + - added int16 and uint16 marshalers + - Fixed a bug in the type constants that caused int32 to go out + as uint16 over the wire + * python/dbus.py: split up into different files and renamed _dbus.py + * python/__init__.py, python/_util.py, python/decorators.py, + python/exceptions.py, python/proxies.py, python/services.py, + python/types.py: new files split off from dbus.py + * python/Makefile.am: Add new files, remove dbus.py and + install all python files to /dbus + * python/examples/*: Added #!/usr/bin/env python to the top of + every example. Patch provided by Tatavarty Kalyan + +2005-04-25 John (J5) Palmieri + + * NEWS: Update to 0.33 + +2005-04-25 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send + method for doing async calls + (_pending_call_notification): New C function for handling pendning call + callbacks + (set_notify): New method for setting pending call notification + + * python/dbus.py: new version tuple "version" is set at (0, 40, 0) + Async capabilities added to remote method calls + (Sender): class removed + (RemoteService): class removed + (ObjectTree): class removed for now + (RemoteObject): Renamed to ProxyObject + (RemoteMethod): Renamed to ProxyMethod + (method): Decorator added for decorating python methods as dbus methods + (signal): Decorator added for decorating python methods as signal emitters + (ObjectType): Metaclass added for generating introspection data and the + method callback vtable + (Interface): Wrapper class added to wrap objects in a dbus interface + (Object): Uses ObjectType as its metaclass and exports Introspect + of the org.freedesktop.DBus.Introspectable interface + (ValidationException, UnknownMethodException): new exceptions + + * python/examples/*: Modified to fit with the new bindings + +2005-04-23 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_append_args): fix doc comment, + reported by Tony Houghton + + * test/test-service.c (main): test + dbus_connection_get_object_path_data() + + * dbus/dbus-object-tree.c (find_handler): be sure we always init + the exact_match + (_dbus_object_tree_get_user_data_unlocked): new function used by + dbus_connection_get_object_path_data() + (do_register): add assertion test for get_user_data_unlocked + (object_tree_test_iteration): more tests + + * dbus/dbus-connection.c (dbus_connection_get_object_path_data): + new function from Dan Reed to let you get the user data from + dbus_connection_register_object_path() + +2005-04-23 John (J5) Palmieri + + * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow + in numerous places that did not account for the NULL terminator + (signature_from_seed): changed the manual string copy loop to + just use strcpy instead + make check should now pass + +2005-04-19 John (J5) Palmieri + + * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert + so that it allows messages that are not signals to pass in + NULL as the interface. + +2005-04-18 David Zeuthen + + * glib/dbus-gmain.c (io_handler_destroy_source): + (timeout_handler_destroy_source, connection_setup_free): + Also unref the source to avoid memory leaks. + +2005-04-13 David Zeuthen + + * bus/config-parser.c (bus_config_parser_new): Bump this to a + more reasonable, yet still totally arbitrary, value :-). + +2005-04-13 David Zeuthen + + * doc/TODO: Added an "important for 1.0" item about selinux + allow/deny messages + +2005-04-13 David Zeuthen + + * bus/selinux.c: Add c-file-style to top of file + (log_audit_callback): Don't free the data here anymore + (bus_selinux_check): Don't take spid and tpid since appending + that to auxdata may OOM. + (bus_selinux_allows_acquire_service): Handle OOM and signal back + to the caller if we are OOM by taking an error object. + (bus_selinux_allows_send): -do- + + * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service + and bus_selinux_allows_send + + * bus/bus.c (bus_context_check_security_policy): Pass error and + pass on OOM thrown by bus_selinux_allows_send() + + * bus/services.c (bus_registry_acquire_service): Pass error and + pass on OOM thrown by bus_selinux_allows_acquire_service() + +2005-04-13 Havoc Pennington + + * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one + message at a time to avoid monopolizing the main loop, bug + #2953 from Benjamin Otte + +2005-04-09 Havoc Pennington + + * dbus/dbus-string.c (copy): change a memcpy to memmove due to + possible overlap, fix from Daniel Reed + (fixup_alignment): fix signedness warnings + (_dbus_string_append_unichar): ditto + +2005-04-09 Havoc Pennington + + * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning + + * glib/dbus-glib-tool.c (main): fix warning + + * glib/dbus-binding-tool-glib.c (generate_glue): fix warning + + * dbus/dbus-connection.c (dbus_connection_read_write_dispatch): + add a new function that can be used in simple applications that + don't have a main loop and are willing to block + +2005-04-05 David Zeuthen + + Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889 + + * glib/dbus-gmain.c: + (io_handler_destroy_source): Remove from list of IO handlers + of the ConnectionSetup object + (timeout_handler_destroy_source): -do- for timeout handlers + (io_handler_source_finalized): Don't remove from list since + we now do that in io_handler_destroy_source(). Renamed from + io_handler_source_destroyed + (timeout_handler_source_destroyed): -do- for timeout handlers + (connection_setup_free): It is now safe to iterate over all + IO and timeout handlers as the _destroy_source removes them + from the list synchronously + +2005-03-30 Havoc Pennington + + * configure.in: change check to gtk 2.4 + + * tools/dbus-viewer.c (name_combo_changed_callback): remove + gtk_combo_box_get_active_text() usage to decrement GTK requirement + to 2.4 + +2005-03-29 John (J5) Palmieri + + * News: Update 0.32 + + * HACKING: Fixed realease instructions. configure.in should be updated to + the next release by the person who made the last release. + +2005-03-29 John (J5) Palmieri + + * python/lvalue_cast_post_process.py - removed. Patch has been + submitted to Pyrex maintainers that fixes gcc4.0 errors + + * python/Makefile.am: removed refrences to lvalue_cast_post_process.py + +2005-03-24 Daniel Reed + + * tools/Makefile.am: Make print-introspect and + dbus-bus-introspect.xml building conditional on HAVE_GLIB. + +2005-03-22 John (J5) Palmieri + + * tools/Makefile.am: Patch by Colin Walters that fixes distcheck + + * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have + had in Red Hat packages for a while but for some reason never + got merged upstream + (_dbus_is_a_number): New checks if a string + can be converted to a number and does the conversion if it can + (_dbus_user_database_lookup): Add check to see if the given username + is a udi. This allows udi's to be used instead of usernames in the + config file. + (_dbus_user_database_lookup_group): Add check to see if the given groupname + is a gdi. This allows gdi's to be used instead of groupnames in the + config file. + +2005-03-21 John (J5) Palmieri + + * python/lvalue_cast_post_process.py - added post processor to fix Pyrex + code so that it compiles with gcc4.0 + + * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST + run dbus_bindings.c through lvalue_cast_post_process.py and copy the + results back to dbus_binding.c + +2005-03-20 Colin Walters + + Patch suggested by Inguva Rajasekhar . + + * configure.in: Require GTK+ 2.6. + +2005-03-20 Colin Walters + + * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test. + +2005-03-17 Tom Parker + + * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't + print DBUS_UID_UNSET; instead print passed username. Also + be sure to actually use gid looked up in cache. + + * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto + for DBUS_GID_UNSET and groupname. + +2005-03-17 Colin Walters + + * bus/print-introspect.c: Move to tools/. + * bus/run-with-tmp-session-bus.sh: Ditto. + + * glib/Makefile.am (dbus-glib-bindings.h): Move + generation to tools/Makefile.am. + + * test/glib/run-test.sh: Update to handle move + of run-with-tmp-session-bus.sh. + + * test/glib/test-service-glib.c: Update to handle + move of dbus-glib-bindings.h. + + * tools/print-introspect.c: Moved here + from bus/, and ported to GLib bindings. + + * tools/run-with-tmp-session-bus.sh: Moved here + from bus/. + + * tools/Makefile.am: Generate dbus-glib-bindings.h + and dbus-bus-introspect.xml here. + + * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore: + Update. + +2005-03-17 Colin Walters + + * bus/driver.c (write_args_for_direction): Use + _dbus_string_get_const_data to retrieve string; + _dbus_string_get_const_data_len doesn't actually return + a NULL-terminated substring. + + * test/glib/test-service-glib.c: Include dbus-glib-bindings.h. + (main): Change to use org_freedesktop_DBus_request_name + instead of using g_proxy_begin_call/end_call. + +2005-03-15 Joe Shaw + + * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when + generating the finalizer. Fixes from Ben Maurer. + +2005-03-12 Joe Shaw + + * mono/BusDriver.cs: Update method names: ListServices + becomes ListNames; GetOwner becomes GetNameOwner. + + * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0 + onto the eval stack when removing the delegate. + +2005-03-12 Joe Shaw + + * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for + LT_CURRENT. Set it to the autoconf variable. + + * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy + classes that disconnects the signal handler delegate from the + service object. Fixes a big leak of proxy objects on the + client side of things. Patch from Ben Maurer + + +2005-03-12 Colin Walters + + * bus/driver.c (write_args_for_direction): New function, + parses a type signature into arguments and outputs to + XML. + (bus_driver_handle_introspect): Use it instead of + hardcoding XML for certain signatures. + + * bus/Makefile.am (dbus-bus-introspect.xml): Add + dependency on dbus-daemon. + + * glib/dbus-glib-tool.c (main): Parse ignore_unsupported + argument, pass it to dbus_binding_tool_output_glib_client. + + * glib/dbus-binding-tool-glib.c + (generate_client_glue): Protect against multiple inclusion. + (dbus_binding_tool_output_glib_client): Add + G_BEGIN_DECLS/G_END_DECLS. + + * glib/dbus-binding-tool-glib.c (compute_client_method_name): + Change to just take iface prefix directly. + (write_formal_parameters): Clarify error message. + (check_supported_parameters): New function; checks to see type + signatures of method parameters are supported. + (generate_client_glue): Handle ignore_unsupported flag. + (dbus_binding_tool_output_glib_client): Handle ignore_unsupported + parameter. + + * glib/Makefile.am (dbus-glib-bindings.h): Pass + --ignore-unsupported by default until glib bindings + support arrays. + +2005-03-11 Colin Walters + + * glib/Makefile.am: Generate dbus-glib-bindings.h and + install it. + + * bus/print-introspect.c: New file; prints introspection + data for a given name and object path. + + * bus/run-with-tmp-session-bus.sh: New file, refactored + from test/glib/run-test.sh. Creates a temporary session + bus and runs another program. + + * test/glib/run-test.sh: Refactor to invoke + run-with-tmp-session-bus.sh. + + * bus/driver.c (bus_driver_handle_introspect): Fix to print new + introspection format. Also change to use DBUS_TYPE_x_AS_STRING + macros instead of hardcoding. + + * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update. + +2005-03-11 Joe Shaw + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove + this unref; it doesn't match up evenly in some codepaths. + (_dbus_connection_block_pending_call): Unref at every exitpoint; + this evenly matches with the ref near the top of this function. + +2005-03-09 Joe Shaw + + * dbus/dbus-object-tree.c + (_dbus_object_tree_unregister_and_unlock): If checks are enabled + and we try to unregister a path that's not registered, still go + through the process of unlocking and don't just return. + +2005-03-09 Colin Walters + + * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls + to this are generated for client-side wrappers. Invokes a + D-BUS method and returns reply values. + + * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New + function; writes signature string for argument direction. + (write_args_for_direction): Change to pass input values directly + instead of via address, and fix indentation. + (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also + make generated wrappers inlineable. + + * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add + note about using dbus_type_is_fixed. + + * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to + dbus/dbus-signature.c as dbus_type_is_fixed. + + All callers updated. + + * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here + from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed. + + * dbus/dbus-signature.h: Prototype. + + * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix + error printf code. + + * test/glib/test-dbus-glib.c (main): Be sure to clear error as + appropriate instead of just freeing it. + (main): Free returned strings using g_free. + + * test/glib/Makefile.am (test-service-glib-glue.h) + (test-service-glib-bindings.h): Add dependency on dbus-binding-tool. + + * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT; + simply maps a simple D-BUS type to GType. + (dbus_dbus_type_to_gtype): Function which maps D-BUS type to + GType. + (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and + initialize the value with it. + (dbus_gvalue_binding_type_from_type): Unused, delete. + (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for + various types instead of unmarshalling to value data directly. + Remove can_convert boolean. + (dbus_gvalue_marshal): Remove duplicate initialization; switch to + returning directly instead of using can_convert boolean. + (dbus_gvalue_store): New function; not related to D-BUS per-se. + Stores a GValue in a pointer to a value of its corresponding C + type. + + * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type, + add dbus_gvalue_store. + +2005-03-08 Joe Shaw + + Fix a bunch of lifecycle and memory management problems + in the mono bindings. + + * mono/Arguments.cs (Arguments): Implement IDisposable + + * mono/Bus.cs (Bus): Don't allow public instantiation. This is + strictly a static class. + + * mono/Connection.cs: Move the DBusObjectPathVTable and associated + delegates into this file. + (Connection): Implement IDisposable. + (Dispose): Disconnect the connection and set the raw connection + pointer to IntPtr.Zero. + (~Connection): Call Dispose(). + (RegisterObjectPath): Added. Manages the registration of object + paths so we can cleanly disconnect them at dispose/finalize time. + (UnregisterObjectPath): Ditto. + (set_RawConnection): Unregister all of the object paths when + changing the underlying DBusConnection. Add them back onto the + new connection, if any. + + * mono/Handler.cs: Don't implement IDisposable; it doesn't use any + more unmanaged resources anymore, so it's not necessary. Move all + the DBusObjectPathVTable stuff out of here. + (Handler): Save references to our delegates so that they don't get + finalized. Call Connection.RegisterObjectPath() instead of + dbus_connection_register_object_path() directly. + (Message_Called): Dispose the message after we're finished with + it. + + * mono/Message.cs (Message): Implement IDisposable. + (Dispose): Dispose the Arguments, and set the RawMessage to + IntPtr.Zero. + (SendWithReplyAndBlock): We own the ref to the reply that comes + back from dbus_connection_send_with_reply_and_block() so add a + comment about that and unref it after we've constructed a managed + MethodReturn class around it. Fixes a big, big leak. + + * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose + method. + (BuildSignalHandler): After we've sent the Signal message, dispose + of it. + (BuildMethod): Dispose of the method call and reply messages after + we've sent the message and extracted the data we want from the + reply. + + * mono/Service.cs (UnregisterObject): Don't call handler.Dispose() + anymore. + (Service_FilterCalled): Dispose of the message after we're + finished with it. + +2005-03-08 Joe Shaw + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): + After we attach our pending call to the connection, unref + it. Fixes a leak. + + * mono/Connection.cs (set_RawConnection): Disconnect our + filter and match callbacks from the old connection and + reconnect them to the new connection, if any. + + * mono/DBusType/Array.cs: "Code" is a static member, so + don't use "this" to refer to it. Fix for stricter checking + in Mono 1.1.4. + + * mono/DBusType/ObjectPath.cs (Append): Don't leak the + object path that we pass into unmanaged code. + + * mono/DBusType/String.cs (Append): Don't leak the string + that we pass into unmanged code. + +2005-03-07 John (J5) Palmieri + * NEWS: Update for 0.31 + + * configure.in: Release 0.31 + add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping + + * qt/Makefile.am: fixed build + + * dbus/Makefile.am: soname bump for libdbus + + * glib/Makefile.am: soname bump for libdbus-glib + +2005-03-05 Havoc Pennington + + * dbus/dbus-sysdeps.c: + (pseudorandom_generate_random_bytes_buffer): fix to have no return + value + (_dbus_generate_random_bytes_buffer): fix return value + + * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure + checks actually work, from Tom Parker + +2005-03-01 Colin Walters + + * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility + functions copied from dbus-glib-tool.c. + (main): Convert lots of error code to use them. + Also add some testing for introspection bits. + +2005-03-01 Colin Walters + + * doc/TODO: Remove introspection signature TODO. + +2005-02-27 Colin Walters + + * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type): + Change return value to const char * instead of int so we can do + full signatures. + (struct PropertyInfo, struct ArgInfo): Store char *. + (property_info_new, arg_info_new): Update parameters, strdup. + (property_info_unref, arg_info_unref): Free. + + * glib/dbus-gidl.h: Update prototypes. + + * glib/dbus-gparser.c (basic_type_from_string): Delete. + (validate_signature): New function, just validates signature and + sets GError. + (parse_property, parse_arg): Invoke validate_signature. Store + signature instead of just type code. + + * glib/dbus-gvalue.c (base_type_from_signature): New utility + function to return a primary type for a signature, dropping + information about types in container types. + (dbus_gvalue_genmarshal_name_from_type) + (dbus_gvalue_binding_type_from_type) + (dbus_gvalue_ctype_from_type): Update to take full signature + instead of type code. + (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c. + + * glib/dbus-gvalue.h: Update prototypes for above. + + * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to + glib/dbus-gvalue.c as dbus_gtype_to_dbus_type. + (introspect_properties, introspect_signals, write_interface): + Update to handle signatures, and remove usage of + _dbus_gutils_type_to_string. + (handle_introspect): Print out type codes instead of e.g. "string" + in hardcoded introspection XML; also use x_AS_STRING constants + instead of hardcoding in string. + + * glib/dbus-glib-tool.c (pretty_print): Handle signature change + to string. Remove usage of _dbus_gutils_type_to_string. + + * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete. + + * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for + deletion. + + * glib/dbus-binding-tool-glib.c (compute_marshaller) + (compute_marshaller_name, generate_glue): Handle signature change + to string. + (write_formal_parameters, write_args_for_direction): Ditto, and + remove FIXME. + + * tools/dbus-tree-view.c (type_to_string): Delete. + (info_set_func_text): Update to print full signatures. + + * test/glib/test-service-glib.xml: Change types to new + introspection format. + +2005-02-26 Havoc Pennington + + * doc/TODO: remove the "guid" item + + * test/glib/test-profile.c (no_bus_thread_func): use open_private + (with_bus_thread_func): use open_private + + * dbus/dbus-connection.c (dbus_connection_open_private): new + function that works like the old dbus_connection_open() + (dbus_connection_open): now returns an existing connection if + possible + + * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass + through the GUID to the transport + + * dbus/dbus-server.c (_dbus_server_init_base): keep around the + GUID in hex-encoded form. + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + pass GUID argument in to the transport + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add + guid argument + + * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument + + * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument + +2005-02-25 Havoc Pennington + + * doc/dbus-specification.xml: document the GUID thing + + * dbus/dbus-server.c (_dbus_server_init_base): initialize a + globally unique ID for the server, and put a "guid=hexencoded" + field in the address + + * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h + + * dbus/dbus-message.c: ditto + + * dbus/dbus-dataslot.c: ditto + + * dbus/dbus-list.c: ditto + + * dbus/dbus-internals.h: wait, just include + dbus-threads-internal.h here + + * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for + use in main library + + * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function + +2005-02-24 Colin Walters + + * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml + +2005-02-24 John (J5) Palmieir + + * glib/Makefile.am: added dbus-gobject.h to sources list + so distcheck doesn't fail + +2005-02-24 Havoc Pennington + + * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so + you must disconnect before unref, since locking and other things + are screwed up otherwise. Fix assorted other locking stuff. + + * dbus/dbus-signature.c (dbus_signature_iter_get_element_type): + fix compilation + + * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers + into a private header and don't export from the library + + * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff + +2005-02-24 Colin Walters + + * dbus/dbus-signature.c: New file; implements various functions + related to type signatures. Includes an interator for parsing, + validation functions. + (dbus_type_is_basic): Moved here from + dbus-marshal-basic.c:_dbus_type_is_basic. + (dbus_type_is_container): Moved here from + dbus-marshal-basic.c:_dbus_type_is_container. + + All callers of _dbus_type_is_container and _dbus_type_is_basic + updated, and include dbus-signature.h. + + * dbus/dbus-signature.h: New file; prototypes for the above. + + * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c, + dbus-signature.h. + + * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility + function factored out of _dbus_first_type_in_signature. + (_dbus_first_type_in_signature_c_str): New function; returns first + type code for a type signature character. + + * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str, + handle function moves. + + * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next. + + * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New + function; skips to next complete type in type signature. + Implemented using previous skip_one_complete_type. Now + skip_one_complete_type just delegates to + _dbus_type_signature_next. + + * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved + to dbus-signature.c + (_dbus_type_is_container): Ditto. + + * doc/dbus-specification.xml: Update introspection sample to + use real type signatures. + + * dbus/dbus-test.h: Prototype signature test. + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run + signature tests. + + * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error. + +2005-02-23 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (PendingCall::get_reply): + s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply + +2005-02-21 Colin Walters + + * dbus/dbus-test-main.c (main): Take optional specific test + argument. + + * dbus/dbus-test.c (run_test): New function, runs a test function + with no data directory. + (run_data_test): Like above, but takes data directory. + (dbus_internal_do_not_use_run_tests): Take + specific test argument. Replace lots of cut n' paste code + with run_test and run_data_test. + + * dbus/dbus-test.h: Update prototype for + dbus_internal_do_not_use_run_tests. + +2005-02-20 Havoc Pennington + + Fix bugs reported by Daniel P. Berrange + + * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function + (protected_change_watch): new function + (_dbus_server_toggle_watch, _dbus_server_remove_watch) + (_dbus_server_add_watch): change to work like the + dbus-connection.c equivalents; like those, probably kind of + busted, but should at least mostly work for now + (dbus_server_disconnect): drop the lock if we were already + disconnected, patch from Daniel P. Berrange + + * dbus/dbus-server.c (_dbus_server_toggle_timeout) + (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the + same stuff + + * doc/TODO: todo about unscrewing this mess + +2005-02-19 Colin Walters + + * glib/dbus-binding-tool-glib.c + (dbus_binding_tool_output_glib_server): Fix iochannel refcounting. + + * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well + as errno.h and sys/stat.h. + (lose): New function, prints error with + newline and exits. + (lose_gerror): Similar, but takes GError for message. + (main): Add --output argument to specify output file to write to, + instead of always printing to stdout. In this mode, determine + timestamps on source files to see whether any are newer than the + target file. If not, exit. Also convert a number of error + messages to use lose (since it's shorter), and switch to using + g_io_channel_shutdown. + +2005-02-19 Havoc Pennington + + * glib/dbus-gobject.c + (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs + + * glib/dbus-glib.c: fix doxygen warnings + + * glib/dbus-gparser.c (parse_annotation): error if an annotation + is found on an + +2005-02-17 Colin Walters + + * glib/dbus-gobject.h: Don't export + _dbus_glib_marshal_dbus_message_to_gvalue_array. + + * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename. + (invoke_object_method): Handle it. + + * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): + Handle rename. + +2005-02-17 Colin Walters + + * bus/.cvsignore, doc/.cvsignore + * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore: + Update. + +2005-02-17 Colin Walters + + * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS): + Rename to DBUS_SERVICE_DBUS. + (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS. + (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL. + Change the value from "org.freedesktop.Local" + to "org.freedesktop.DBus.Local". + (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS. + (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to + DBUS_INTERFACE_INTROSPECTABLE. + Change the value from "org.freedesktop.Introspectable" + to "org.freedesktop.DBus.Introspectable". + (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to + DBUS_INTERFACE_PROPERTIES. + Change the value from "org.freedesktop.Properties" + to "org.freedesktop.DBus.Properties". + (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to + DBUS_INTERFACE_PEER. + Change the value from "org.freedesktop.Peer" + to "org.freedesktop.DBus.Peer". + (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): + DBUS_INTERFACE_LOCAL. + Change the value from "org.freedesktop.Local" + to "org.freedesktop.DBus.Local". + + All other users of those constants have been changed. + + * bus/driver.c (bus_driver_handle_introspect): Use constants. + + * glib/dbus-gobject.c (handle_introspect): Use constants. + + * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename. + +2005-02-17 Colin Walters + + * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean. + (parse_node, parse_interface, parse_method, parse_signal) + (parse_property, parse_annotation): Lose if we're currently in an + annotation. + (parse_annotation): New function. + (parser_start_element, parser_end_element): Handle annotation. + (parse_method, parse_interface): Remove support for c_name attribute, + switch to annotations. + + * glib/dbus-gidl.h (interface_info_get_binding_names) + (method_info_get_binding_names) + (interface_info_get_binding_name, method_info_get_binding_name) + (interface_info_set_binding_name, method_info_set_binding_name): + Remove. + (interface_info_get_annotations, method_info_get_annotations) + (interface_info_get_annotation, method_info_get_annotation) + (interface_info_add_annotation, method_info_add_annotation): + Prototype. + + * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations" + for "bindings". + (struct MethodInfo): Ditto. + Straightfoward conversion of binding methods into annotation methods + as prototyped. + + * glib/dbus-glib-tool.c (pretty_print): Print annotations. + + * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define. + + * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue): + Use new annotation API. + + * doc/introspect.dtd: Fix a number of DTD syntax errors. Add + annotation element. + + * doc/dbus-specification.xml: Discuss introspection annotations, + include list of well-known annotations. + + * test/glib/test-service-glib.xml: Make validate against new DTD. + +2005-02-17 Colin Walters + + This patch is based on initial work from + Paul Kuliniewicz . + + * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move + initialization of GValue from dbus type to here. + (dbus_gvalue_genmarshal_name_from_type): New function; generates a string + for the "glib-genmarshal" program from a DBus type. + (dbus_gvalue_binding_type_from_type): New function; turns a DBus type + into the C name for it we use in the glib bindings. + (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a + glib C type (not GValue). + (dbus_gvalue_demarshal): invoke dbus_gvalue_init. + + * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here + from dbus-gobject.c. + + * glib/dbus-gutils.h: Prototype it. + + * glib/dbus-gproxy.c: Include new dbus-gobject.h. + (marshal_dbus_message_to_g_marshaller): Use new shared function + dbus_glib_marshal_dbus_message_to_gvalue_array. + + * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute. + Will be changed once we have annotations. + + * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to + GStaticRWLock. Callers updated. + (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated. + (string_table_next): New function for iterating over zero-terminated + string value array. + (string_table_lookup): New function; retrieves specific entry in + array. + (get_method_data): New function; look up method data in object data chunk. + (object_error_domain_prefix_from_object_info) + (object_error_code_from_object_info): New functions, but not implemented yet. + (method_interface_from_object_info): New function; retrieve interface name. + (method_name_from_object_info): New function; retrieve method name. + (method_arg_info_from_object_info): New function; retrieve argument data. + (arg_iterate): New function; iterates over serialized argument data. + (method_dir_signature_from_object_info): New function; returns a + GString holding type signature for arguments for just one + direction (input or output). + (method_input_signature_from_object_info) + (method_output_signature_from_object_info): New functions. + (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function; + converts dbus message arguments into a GValue array. Used for both + signal handling and method invocation. + (struct DBusGlibWriteIterfaceData): New utility structure. + (write_interface): New function; generate introspection XML for + an interface. + (introspect_interfaces): New function; gathers all interface->methods, + generates introspection XML for them. + (handle_introspect): Invoke introspect_interfaces. + (get_object_property): Be sure to zero-initalize stack-allocated GValue. + (lookup_object_and_method): New function; examines an incoming message + and attempts to match it up (via interface, method name, and argument + signature) with a known object and method. + (gerror_domaincode_to_dbus_error_name): New function; converts a + GError domain and code into a DBus error name. Needs GError data + added to object introspection to work well. + (gerror_to_dbus_error_message): Creates a DBusMessage error return from + GError. + (invoke_object_method): New function to invoke an object method + looked up via lookup_object_and_method. Parses the incoming + message, turns it into a GValue array, then invokes the marshaller + specified in the DBusGMethodInfo. Creates a new message with + either return values or error message as appropriate. + (gobject_message_function): Invoke lookup_object_and_method and + invoke_object_method. + + * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h. + (enum DBusBindingOutputMode): New enum for binding output modes. + (pretty_print): Print binding names. + (dbus_binding_tool_error_quark): GError bits. + (version): Fix typo. + (main): Create GIOChannel for output. Parse new --mode argument, + possible values are "pretty-print", "glib-server", "glib-client". + Use mode to invoke appropriate function. + + * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array. + + * glib/dbus-glib-tool.h: New header, just includes GError bits + for now. + + * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable; + maps binding style to name. + (struct MethodInfo): Ditto. + (get_hash_keys, get_hash_key): Utility function, returns keys for + a GHashTable. + (interface_info_new, method_info_new): Initialize bindings. + (interface_info_unref, method_info_unref): Destroy bindings. + (method_info_get_binding_names, method_info_get_binding_name) + (interface_info_get_binding_names, interface_info_get_binding_name): + Functions for retrieving binding names. + (method_info_set_binding_name, interface_info_set_binding_name): + Functions for setting binding names. + + * glib/dbus-binding-tool-glib.h: New file, has prototypes + for glib binding generation. + + * glib/dbus-binding-tool-glib.c: New file, implements server-side + and client-side glib glue generation. + + * glib/Makefile.am (dbus_binding_tool_SOURCES): Add + dbus-binding-tool-glib.c, dbus-binding-tool-glib.h, + dbus-glib-tool.h. + + * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor + of using GClosureMarshal directly. + (struct DBusGObjectInfo): Add n_infos member. + + * test/glib/test-service-glib.xml: New file; contains introspection data + for MyTestObject used in test-service-glib.c. + + * test/glib/test-service-glib.c (enum MyObjectError): New GError enum. + (my_object_do_nothing, my_object_increment, my_object_throw_error) + (my_object_uppercase, my_object_many_args): New test methods. + (main): Use dbus_g_object_class_install_info to include generated object + info. + + * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c, + as well as client-side bindings. + + * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h. + (main): Activate TestSuiteGLibService; test invoke a bunch of its methods + using both the dbus_gproxy stuff directly as well as the generated bindings. + +2005-02-15 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_dispatch): always + complete a pending call, don't run filters first. + + * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use + dbus_pending_call_steal_reply + + * dbus/dbus-pending-call.c (dbus_pending_call_block): just call + _dbus_connection_block_pending_call + (dbus_pending_call_get_reply): change to steal_reply and return a + ref + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): port to work in terms + of DBusPendingCall + (_dbus_connection_block_pending_call): replace block_for_reply + with this + +2005-02-14 Havoc Pennington + + * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): + properly handle looking up group information by name; fix + from j@bootlab.org + +2005-02-13 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_return_message) + (dbus_connection_borrow_message): hold dispatch lock while message + is outstanding + (_dbus_connection_block_for_reply): hold dispatch lock while we + block for the reply, so nobody steals our reply + (dbus_connection_pop_message): hold the dispatch lock while we + pluck the message + +2005-02-13 Havoc Pennington + + * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch) + (_dbus_connection_release_dispatch) + (_dbus_connection_acquire_io_path) + (_dbus_connection_release_io_path): make the mutex and condvar + control access to the "acquired" flag. Drop the connection lock + while waiting on the condvar. Hopefully these are baby steps in + roughly the right direction. + +2005-02-13 Havoc Pennington + + * dbus/dbus-connection.c: use separate mutexes for the condition + variables; this is some kind of baseline for sanity, but the + condition variables still aren't used correctly afaict + +2005-02-13 Havoc Pennington + + * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): + fix a double-unlock + + * dbus/dbus-connection.c + (_dbus_connection_detach_pending_call_unlocked): add this + + Initial semi-correct pass through to fix thread locking; there are + still some issues with the condition variable paths I'm pretty + sure + + * dbus/dbus-server.c: add a mutex on DBusServer and appropriate + lock/unlock calls + + * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked): + rename to add _unlocked + (struct DBusConnection): move "dispatch_acquired" and + "io_path_acquired" to use only one bit each. + (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS + (dbus_connection_set_watch_functions): hacky fix to reentrancy + (_dbus_connection_add_watch, _dbus_connection_remove_watch) + (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) + (_dbus_connection_remove_timeout) + (_dbus_connection_toggle_timeout): drop lock when calling out to + user functions; done in a hacky/bad way. + (_dbus_connection_send_and_unlock): add a missing unlock + (_dbus_connection_block_for_reply): add a missing unlock + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + drop lock in a hacky probably unsafe way to call out to user + function + +2005-02-12 Havoc Pennington + + * tools/dbus-tree-view.c (info_set_func_text): display more + details on args + + * bus/driver.c (bus_driver_handle_list_services): list the bus + driver + + * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied + + * glib/dbus-gidl.c (signal_info_get_n_args): new function + (method_info_get_n_args): new function + +2005-02-12 Havoc Pennington + + * bus/driver.c (bus_driver_handle_introspect): add introspection + for bus driver + +2005-02-12 Havoc Pennington + + * bus/driver.c: put the signature of each bus driver method in the + table of handlers and check it on incoming calls; this isn't + really useful, but going to add introspect support in a minute. + +2005-02-11 Joe Shaw + + * mono/Connection.cs: The unpredictability of finalizers in mono + prevents us from deterministically disconnecting the filters from + the Service class's finalizer, so move tracking of filters and + matches here. Add API for that. + + * mono/Service.cs: Remove the code, add code which calls the + methods now on the Connection class. + +2005-02-11 John (J5) Palmieri + + * python/dbus.py (class Sender): added to support dbus signals better + (Bus::add_signal_receiver): added expand_args parameter which defaults + to True. When expand args is True the signal handler will pass the + message arguments as parameters to the signal handler. If False + revert to previous behavior where the signal handler must get the + argument list from the message. This is to help port applications + like HAL that have a tendancy to send variable length argument lists. + self._match_rule_to_receivers is now a dict of dicts. + (Bus::remove_signal_receiver): pop handler off the dict intead of + removing it from a list + (Bus::_signal_func): change signal handlers so that interface, + signal_name, service, path and message are packed into a Sender + object and that is passed to the handler. If expand_args is True + extract the args list from the message and append it to the parameter + list + + * python/dbus_bindings.pyx.in (class Signature): added to support + signiature types + (MessageIter::__init__): changed iteration limit to match D-BUS + (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, + STRUCT and VARIENT type support + (MessageIter::python_value_to_dbus_sig): made recursive to support + recursive types + (MessageIter::append*): added Signature, dict, tuple + support + + * python/examples/example-client.py: added examples of getting tuples + and dicts + + * python/examples/example-service.py: added examples of sending tuples + and dicts + + * python/examples/example-signal-recipient.py: Fixed to handle new + signal callback format + +2005-02-10 Havoc Pennington + + * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail + (call dbus_g_proxy_add_signal) + + * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): + escape the hostname + (_dbus_server_new_for_domain_socket): escape the path + + * dbus/dbus-address.c (dbus_address_escape_value): new + (dbus_address_unescape_value): new + (dbus_parse_address): unescape values + + * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function + + * doc/dbus-specification.xml: explain how to escape values in + addresses + +2005-02-10 Havoc Pennington + + * dbus/dbus-message-factory.c (generate_special): modify test to + avoid using a non-basic dict key + + * dbus/dbus-marshal-validate-util.c: add test for the below + + * doc/dbus-specification.xml: require that dict keys are a basic + type + + * dbus/dbus-marshal-validate.c + (_dbus_validate_signature_with_reason): require that dict key is a + basic type + +2005-02-10 Havoc Pennington + + * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): + change to be _and_unlock instead of _unlocked + + * dbus/dbus-connection.c + (_dbus_connection_send_preallocated_unlocked_no_update): rename to + have no_update so we can find this bug quickly in future + +2005-02-10 Havoc Pennington + + * dbus/dbus-message-util.c (verify_test_message): tests for string + array + + * dbus/dbus-message.c (dbus_message_append_args_valist): add + support for arrays of string/signature/path + +2005-02-10 Joe Shaw + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message_link, + _dbus_connection_message_sent): Add the path to + the verbose output. + (_dbus_connection_send_preallocated_and_unlock): Added. Calls + _dbus_connection_send_preallocated_unlocked(), updated the + dispatch status, and unlocks. Fixes a bug where certain + situations (like a broken pipe) could cause a Disconnect message + to not be sent, tricking the bus into thinking a service was still + there when the process had quit. + (_dbus_connection_send_preallocated): Call + _dbus_connection_send_preallocated_and_unlock(). + (_dbus_connection_send_and_unlock): Added. Calls + _dbus_connection_send_preallocated_and_unlock(). + (dbus_connection_send): Call _dbus_connection_send_and_unlock(). + (dbus_connection_send_with_reply): Update the dispatch status and + unlock. + + * mono/Service.cs (~Service): Added. Removes the filter so that + we don't get unmanaged code calling back into a GCed delegate. + (RemoveFilter); Added. + +2005-02-09 John (J5) Palmieri + + * dbus/dbus-message.c (dbus_message_iter_open_container): + - Removed check for iterator type being an array because + get_arg_type does not work with writer iterators + - Pass NULL to _dbus_type_writer_recurse if signiture is NULL + +2005-02-07 Havoc Pennington + + * doc/dbus-specification.xml: some more language cleanups; add + stuff about how to deal with invalid protocol and extension + points; add _ to allowed chars in auth commands; add EXTENSION_ + auth command prefix + +2005-02-06 Havoc Pennington + + * s/expected/required/ in a couple places for clarity + +2005-02-07 Colin Walters + + * bus/selinux.c (bus_selinux_allows_send): Handle NULL for + sender or proposed_recipient. + +2005-02-06 Havoc Pennington + + * dbus/dbus-message-factory.c (generate_special): more tests + + * dbus/dbus-marshal-validate.c (validate_body_helper): detect + array length that exceeds the maximum + +2005-02-05 Havoc Pennington + + * dbus/dbus-message-factory.c (generate_special): more test cases, + increasing coverage + + * dbus/dbus-marshal-validate.c (validate_body_helper): return the + reason why a signature was invalid + + * dbus/dbus-marshal-header.c (load_and_validate_field): fix to + skip the length of the string before we look at it in validation + + * dbus/dbus-string-util.c (_dbus_string_test): add tests for + equal_substring + + * dbus/dbus-message.c (_dbus_message_loader_new): default + max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH + +2005-02-05 Havoc Pennington + + * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash + if the signature of a variant was empty + (_dbus_validate_signature_with_reason): catch "(a)" (array inside + struct with no element type) + + * dbus/dbus-message-factory.c (generate_uint32_changed): add more + mangled messages to break things + +2005-02-04 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use + g_quark_try_string() so it actually can return 0 + (dbus_g_proxy_connect_signal): ditto + +2005-02-04 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a + bogus warning + (tristring_from_message): assert cleanly on null path/interface + (should not be possible though I decided later) + (dbus_g_proxy_dispose): move proxy manager unregistration here + (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of + g_return_if_fail() checks + +2005-02-04 Havoc Pennington + + * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile + + * doc/introspect.dtd: add introspect.dtd from David A. Wheeler + (with some minor changes) + + * doc/dbus-specification.xml: add deprecated attribute to + introspection format + +2005-01-31 Havoc Pennington + + * glib/dbus-gproxy.c: rewrite how signals work again, this time I + think it's sort of right + +2005-01-30 Havoc Pennington + + * tools/dbus-viewer.c: kind of half-ass hook up the option menu. + +2005-01-30 Havoc Pennington + + * tools/dbus-names-model.c: dynamically watch NameOwnerChanged + + * autogen.sh: change to autotools 1.9 + + * glib/dbus-gproxy.c: completely change how signals work + (dbus_g_proxy_add_signal): new function to specify signature of a + signal + (dbus_g_proxy_emit_received): marshal the dbus message to GValues, + and g_warning if the incoming message has the wrong signature. + +2005-01-30 Havoc Pennington + + * tools/dbus-names-model.c (have_names_notify): fix this + + * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean + up the string array handling a bit + +2005-01-30 Havoc Pennington + + * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function + (dbus_g_pending_call_cancel): new function + + * dbus/dbus-glib.h: move GType decls for connection/message here; + * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in + here, just kind of rationalizing how we handle all that + + * tools/dbus-names-model.c: new file for a tree model listing the + services on a bus + + * tools/dbus-tree-view.c (model_new): use proper typing on the + model rows + +2005-01-30 Havoc Pennington + + * glib/dbus-gmain.c: add a custom GSource back that just checks + whether the message queue has anything in it; otherwise, there are + cases where we won't see messages in the queue since there was no + IO visible to the glib main loop + + * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE): + increase default message timeout to 25 seconds + +2005-01-30 Havoc Pennington + + * test/glib/test-profile.c (no_bus_stop_server): remove the + warning about the g_warning that I just fixed + + * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the + custom source, seems to be a lot easier to understand and work + better. + +2005-01-30 Havoc Pennington + + I think this main loop thing is conceptually broken, but here are + some band aids. I'll maybe rewrite it in a minute. + + * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the + custom GSource, so don't pass it in; confusing + (gsource_server_finalize, gsource_connection_finalize): add + finalize handlers that remove all the watches. + +2005-01-30 Havoc Pennington + + * glib/dbus-gobject.c (introspect_properties): fix the XML + generated + + * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag + which effectively detects the use of freed messages + + * glib/dbus-gobject.c (handle_introspect): modify and return the + reply message instead of the incoming message + + * dbus/dbus-object-tree.c (handle_default_introspect_unlocked): + gee, maybe it should SEND THE XML instead of just making a string + and freeing it again ;-) + + * tools/dbus-print-message.c (print_message): improve printing of + messages + + * configure.in: add debug-glib.service to the output + +2005-01-30 Havoc Pennington + + dbus-viewer introspected and displayed the bus driver + + * dbus/dbus-object-tree.c + (object_tree_test_iteration): add tests for a handler registered on "/" + + * dbus/dbus-object-tree.c + (_dbus_decompose_path): fix to handle path "/" properly + (run_decompose_tests): add tests for path decomposition + + * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/" + properly + + * glib/dbus-gobject.c (handle_introspect): fix quotes + + * test/glib/run-test.sh: support launching the bus, then running + dbus-viewer + + * test/glib/test-service-glib.c (main): put in a trivial gobject + subclass and register it on the connection + + * bus/driver.c (bus_driver_handle_introspect): implement + introspection of the bus driver service + + * dbus/dbus-protocol.h: add #defines for the XML namespace, + identifiers, doctype decl + + * bus/driver.c (bus_driver_handle_get_service_owner): handle + attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by + returning the service unchanged. + (bus_driver_handle_message): remove old check for reply_serial in + method calls, now the message type deals with that + (bus_driver_handle_message): handle NULL interface + + * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function + + * glib/dbus-gloader-expat.c (description_load_from_string): allow + -1 for len + + * tools/dbus-viewer.c: add support for introspecting a service on + a bus + + * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add + (dbus_g_pending_call_unref): add + +2005-01-29 Havoc Pennington + + * tools/dbus-tree-view.c: add support for displaying properties. + (run dbus-viewer with an introspect xml file as arg, then resize + the window so the tree elements show up, not sure what that is) + + * glib/dbus-gobject.c (handle_introspect): return + org.freedesktop.Properties and org.freedesktop.Introspectable + interfaces when we are introspected. + + * doc/dbus-specification.xml: allow empty interface name when + Get/Set a property + +2005-01-29 Havoc Pennington + + * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool; + though it uses glib, it could be extended for any binding in + principle + + * glib/dbus-gobject.c (gobject_message_function): change to the + new way properties work + + * dbus/dbus-protocol.h: add the new interfaces + + * doc/dbus-specification.xml: document the introspection format, + Introspectable interface, and add an org.freedesktop.Properties + interface. + + * glib/dbus-gparser.c: add support for a element + + * glib/dbus-gidl.c: add PropertyInfo + + * glib/dbus-gobject.c (handle_introspect): put the outermost + outside the signal and property descriptions. + (introspect_properties): export properties as rather + than as method calls + +2005-01-28 Havoc Pennington + + * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks + related to authentication protocol + +2005-01-28 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system + - BUS_ACTIVATION -> BUS_STARTER + - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER + - class MessageIter (__init__): Added recursion checking + so we throw a nice error instead of just disconnecting from the + bus. + (get): Added arg_type parameter for recursion. + Removed the nil type + Added signiture type placeholder (not implemented) + Added struct type placeholder (not implemented) + Added varient type placeholder (not implemented) + Commented out dict type for now + (get_element_type): renamed from get_array_type + (get_*): changed to use the dbus_message_iter_get_basic API + (get_*_array): removed in favor of recursive get_array method + (get_array): new recursive method which calls get to marshal + the elements of the array + (value_to_dbus_sig): New method returns the corrasponding + dbus signiture to a python value + (append): Comment out dict handling for now + Handle lists with the new recursive API + Comment out None handling for now + (append_nil): removed + (append_*): changed to use dbus_message_iter_append_basic API + (append_*_array): removed in favor of recursive append_array + method + (__str__): Make it easier to print out recursive iterators + for debugging + - class Message (__str__): moved type inspection to the + MessageIter class' __str__ method + (get_iter): Added an append parameter wich defaults to False + If True use the new API's to create an append iterator + + * python/dbus.py: Update to use new bindings API + - TYPE_ACTIVATION -> TYPE_STARTER + - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner + - class ActivationBus -> class StarterBus + - class RemoteObject (__call__): get an append iterator + - (_dispatch_dbus_method_call): get an append iterator + - class Object (emit_signal): get an append iterator + + * python/examples/: Fixed up the examples to work with the new API + +2005-01-28 Joe Shaw + + * configure.in: Bump version up to 0.30. + + * HACKING: Add a release item to bump the version number up after + a release. + +2005-01-28 Havoc Pennington + + * doc/dbus-specification.xml: update to describe 16-bit types and + dict entries + + * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken + assertion + + * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a + type + + * dbus/dbus-marshal-recursive.c: implement + +2005-01-27 Havoc Pennington + + * dbus/dbus-arch-deps.h.in: add 16/32-bit types + + * configure.in: find the right type for 16 and 32 bit ints as well + as 64 + + * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add + the 16-bit types so people don't have to stuff them in 32-bit or + byte arrays. + +2005-01-27 Havoc Pennington + + * dbus/dbus-message.c: byteswap the message if you init an + iterator to read/write from it + + * dbus/dbus-marshal-byteswap.c: new file implementing + _dbus_marshal_byteswap() + + * dbus/dbus-marshal-basic.c: add _dbus_swap_array() + +2005-01-26 Havoc Pennington + + * dbus/dbus-marshal-validate-util.c: break this out (and fix + build, apparently - nobody noticed?) + +2005-01-26 Havoc Pennington + + * dbus/dbus-marshal-recursive.h: remove todo comment + +2005-01-25 Joe Shaw + + * Land the mono binding changes to conform to the new APIs. + + * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs, + DBusType/Dict.cs, and DBusType/Nil.cs from the build. + + * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus + type code as a string. + (InitAppending): Rename dbus_message_append_iter_init() to + dbus_message_iter_init_append(). + + * mono/BusDriver.cs: Rename ServiceEventHandler to + NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner. + Rename ServiceOwnerChanged to NameOwnerChanged. + + * mono/Connection.cs: Rename BaseService to UniqueName, and the + underlying C call. + + * mono/Custom.cs: Removed. The CUSTOM type has been removed. + + * mono/Service.cs: Rename Exists to HasOwner, internally rename + dbus_bus_acquire_service() to dbus_bus_request_name(). + + * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead + of Type.UnderlyingSystemType to get the correct element type for + the array. + (ctor): Update code for new APIs: use dbus_message_iter_recurse(), + dbus_message_get_{element|arg}_type() instead of + dbus_message_iter_init_array_iterator(). + (Append): Replace dbus_message_iter_append_array() with + dbus_message_iter_open_container() and + dbus_message_iter_close_container(). + + * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These + types have been removed. + + * mono/DBusType/*.cs: Replace calls of + dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(), + but specify the type in the DllImport extern declaration. Ditto + for dbus_message_iter_append_[type]() -> + dbus_message_iter_append_basic(). + + * mono/example/BusListener.cs: Update for ServiceEventHandler -> + NameOwnerChangedHandler. + +2005-01-25 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: Rename of methods and bindings + - get_base_service -> get_unique_name + - bus_get_base_service -> bus_get_unique_name + - dbus_bus_get_base_service -> dbus_bus_get_unique_name + - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS + - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING + - bus_activate_service -> bus_start_service_by_name + - dbus_bus_activate_service -> dbus_bus_start_service_by_name + - bus_acquire_service -> bus_request_name + - dbus_bus_acquire_service -> dbus_bus_request_name + - bus_service_exists -> bus_name_has_owner + - dbus_bus_service_exists -> dbus_bus_name_has_owner + + * python/dbus.py: Rename of methods + - activate_service -> start_service_by_name + - bus_acquire_service -> bus_request_name + - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS + - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING + + +2005-01-24 Joe Shaw + + * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the + signature for the method that can't be found. + + * dbus/dbus-message.c (dbus_message_iter_init): To check to see if + the message has any arguments, we need to call + _dbus_type_reader_get_current_type(), not + _dbus_type_reader_has_next(). + +2005-01-24 Havoc Pennington + + * dbus/dbus-message-factory.c: more testing of message validation + + * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this + header + +2005-01-23 Havoc Pennington + + * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: + get this all working, not many tests in the framework yet though + +2005-01-22 Havoc Pennington + + * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update + tutorial, based on work from David Wheeler. + +2005-01-21 Havoc Pennington + + * dbus/dbus-bus.c: add more return_if_fail checks + + * dbus/dbus-message.c (load_message): have the "no validation" + mode (have to edit the code to toggle the mode for now though) + + * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that + skips all validation; I want to use this at least for benchmark + baseline, I'm not sure if it should be a publicly-available switch. + +2005-01-21 Havoc Pennington + + * glib/dbus-gmain.c: don't put the GLib bindings in the same + toplevel doxygen group as the low-level API stuff + + * dbus/dbus.h: note that libdbus is the low-level API + +2005-01-20 Havoc Pennington + + * update-dbus-docs.sh: script to update docs on the web site, only + works for me though. neener. + +2005-01-20 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile + code can reveal bugs in it + +2005-01-20 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the + select() version, patches from Tor Lillqvist + +2005-01-20 Havoc Pennington + + * doc/dbus-tutorial.xml: replace > with > + + * bus/services.c (bus_registry_acquire_service): validate the name + and return a better error if it's no good. + + * doc/dbus-specification.xml: note NO_AUTO_START change + + * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change + from AUTO_START, we're toggling the default + + * bus/dispatch.c: adapt the tests to change of auto-start default + +2005-01-18 Havoc Pennington + + * rename dbus-daemon-1 to dbus-daemon throughout + +2005-01-18 Havoc Pennington + + * Throughout, grand renaming to strip out the use of "service", + just say "name" instead (or "bus name" when ambiguous). Did not + change the internal code of the message bus itself, only the + programmer-facing API and messages. + + * doc/dbus-specification.xml: further update the message bus section + + * bus/config-parser.c (all_are_equiv): fix bug using freed string + in error case + +2005-01-17 Havoc Pennington + + * dbus/dbus-types.h: remove 16-bit types since we don't use them + ever + + * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any + "invalid name character" not only non-ASCII + + * doc/dbus-specification.xml: further update spec, message bus + parts are still out-of-date but the marshaling etc. stuff is now + accurate-ish + +2005-01-17 Havoc Pennington + + * doc/dbus-specification.xml: partially update spec + +2005-01-17 Havoc Pennington + + * Throughout, align variant bodies according to the contained + type, rather than always to 8. Should save a fair bit of space in + message headers. + + * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason): + fix handling of case where p == end + + * doc/TODO: remove the dbus_bool_t item and variant alignment items + +2005-01-17 Havoc Pennington + + * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits + + * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead + of an 8-bit type. Now dbus_bool_t is the type to use whenever you + are marshaling/unmarshaling a boolean. + +2005-01-16 Havoc Pennington + + This is about it on what can be disabled/deleted from libdbus + easily, back below 150K anyhow. Deeper cuts are more work than + just turning the code off as I've done here. + + * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the + signed int convenience funcs + + * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in + verbose mode + + * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking + things out of libdbus + + * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same + + * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it + tests-enabled-only, though it should probably be deleted) + + * dbus/dbus-message-util.c: same stuff + + * dbus/dbus-auth-util.c: same stuff + +2005-01-16 Havoc Pennington + + * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c + + * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave + way for stripping down dbus-userdb.c stuff included in libdbus. + Rename _dbus_parse_uid for consistency. + +2005-01-16 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_real_assert): print the function + name the assertion failed in + + * dbus/dbus-internals.h (_dbus_return_if_fail) + (_dbus_return_val_if_fail): assert that the name of the function + containing the check doesn't start with '_', since we only want to + use checks on public functions + + * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change + checks to assertions + + * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic): + change checks to asserts for private function + + * dbus/dbus-message.c (_dbus_message_set_serial): checks + to asserts for private function + + * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove + broken assertion that was breaking make check + (_dbus_type_reader_array_is_empty): remove this rather than fix + it, was only used in assertions + +2005-01-16 Havoc Pennington + + * test/unused-code-gc.py: hacky script to find code that's used + only by the bus (not libdbus) or used only by tests or not used at + all. It has some false alarms, but looks like we can clean up a + lot of size from libdbus. + + * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c, + dbus/Makefile.am: initially move 10K of binary size out of libdbus + +2005-01-16 Havoc Pennington + + * Add and fix docs according to Doxygen warnings throughout + source. + + * dbus/dbus-marshal-recursive.c + (_dbus_type_reader_array_is_empty): change this to just call + array_reader_get_array_len() and make it static + + * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename + from get_array_type + (dbus_message_iter_init_append): rename from append_iter_init + + * dbus/dbus-marshal-recursive.c + (_dbus_type_reader_get_element_type): rename from + _dbus_type_reader_get_array_type + +2005-01-15 Havoc Pennington + + * test/glib/test-profile.c (with_bus_server_filter): fix crash + + * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro + when DBUS_DISABLE_ASSERT + (_dbus_marshal_set_basic): be sure we align for the string length + + * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make + this look faster + + * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an + inline macro version + (_dbus_string_set_byte): provide inline macro version + +2005-01-15 Havoc Pennington + + * Land the new message args API and type system. + + This patch is huge, but the public API change is not + really large. The set of D-BUS types has changed somewhat, + and the arg "getters" are more geared toward language bindings; + they don't make a copy, etc. + + There are also some known issues. See these emails for details + on this huge patch: + http://lists.freedesktop.org/archives/dbus/2004-December/001836.html + http://lists.freedesktop.org/archives/dbus/2005-January/001922.html + + * dbus/dbus-marshal-*: all the new stuff + + * dbus/dbus-message.c: basically rewritten + + * dbus/dbus-memory.c (check_guards): with "guards" enabled, init + freed blocks to be all non-nul bytes so using freed memory is less + likely to work right + + * dbus/dbus-internals.c (_dbus_test_oom_handling): add + DBUS_FAIL_MALLOC=N environment variable, so you can do + DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or + DBUS_FAIL_MALLOC=10 to make it really, really, really slow and + thorough. + + * qt/message.cpp: port to the new message args API + (operator<<): use str.utf8() rather than str.unicode() + (pretty sure this is right from the Qt docs?) + + * glib/dbus-gvalue.c: port to the new message args API + + * bus/dispatch.c, bus/driver.c: port to the new message args API + + * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the + "locked" flag to TRUE and align_offset to 0; I guess we never + looked at these anyhow, but seems cleaner. + + * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING): + move allocation padding macro to this header; use it to implement + (_DBUS_STRING_STATIC): ability to declare a static string. + + * dbus/dbus-message.c (_dbus_message_has_type_interface_member): + change to return TRUE if the interface is not set. + + * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff + to dbus-marshal-validate.[hc] + + * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from + dbus-internals.c + + * dbus/Makefile.am: cut over from dbus-marshal.[hc] + to dbus-marshal-*.[hc] + + * dbus/dbus-object-tree.c (_dbus_decompose_path): move this + function here from dbus-marshal.c + +2005-01-12 Joe Shaw + + * NEWS: Update for 0.23. + + * configure.in: Release 0.23. + +2005-01-12 Joe Shaw + + * mono/Makefile.am, mono/example/Makefile.am: Always build the + dbus DLL with --debug. Clean up after the .mdb files this leaves + behind. + + * mono/doc/Makefile.am: Need to uninstall the docs on "make + uninstall" + + * mono/Arguments.cs (GetDBusTypeConstructor): If the type + is an enum, get the enum's underlying type. Another mono + 1.1.3 fix. + +2005-01-11 Joe Shaw + + Patch from Sjoerd Simons + + * mono/Makefile.am, mono/example/Makefile.am: Don't redefine + DESTDIR. It breaks stuff. + +2005-01-11 Joe Shaw + + Patch from Tambet Ingo + + * mono/DBusType/Array.cs (Get): Get the underlying element type by + calling type.GetElementType(). The code previously depended on + broken Mono behavior, which was fixed in Mono 1.1.3. + + * mono/DBusType/Dict.cs (constructor): Fix the parameters for + Activator.CreateInstance() so that the class's constructor is + called with the right parameters. + +2005-01-11 Joe Shaw + + Patch from Timo Teräs + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message_link): Call + _dbus_connection_remove_timeout() instead of the _locked() + variant, since it's always called from + _dbus_connection_handle_watch(), which handles the locking. + Removed the _locked() variant since it's no longer used. + +2005-01-03 Havoc Pennington + + * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can + return + +2004-12-26 Havoc Pennington + + * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert + +2005-01-03 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on + floating point + + * dbus/dbus-string.c (_dbus_string_insert_alignment): new function + +2005-01-02 Havoc Pennington + + * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro + +2005-01-01 Havoc Pennington + + * configure.in: add -Wfloat-equal + +2005-01-01 Havoc Pennington + + * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, + for a variety of reasons '==' doesn't do this. + +2004-12-31 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_equal_substrings): new function + I keep wishing I had + +2004-12-30 John (J5) Palmieri + + * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED + +2004-12-30 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED + and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in + dbus-protocol.h. Because they are defines and not enums they are not + autogenerated. + +2004-12-26 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (bus_activate_service): Bind + dbus_bus_activate_service + + * python/dbus.py (Bus.activate_service): activate a service on the + bus. + +2004-12-24 Havoc Pennington + + * test/decode-gcov.c: change to use .gcno and .gcda files, but the + file format has also changed and I haven't adapted to that yet + + * Makefile.am: load .gcno files from latest gcc + +2004-12-23 John (J5) Palmieri + * Patch from Rob Taylor + + * python/dbus_bindings.pyx.in (bus_get_unix_user): New + lowlevel binding + + * python/dbus.py (get_unix_user): Added binding to + call dbus_bindings.bus_get_unix_user + + * python/extract.py: Modified the proto_pat regex to + handle unsigned long + +2004-12-21 Olivier Andrieu + + * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for + better POSIX compliance. + +2004-12-19 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_insert_4_aligned) + (_dbus_string_insert_8_aligned): new functions + + * dbus/dbus-string.c (_dbus_string_alloc_space): new function + +2004-12-18 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII + macro + + * dbus/dbus-message.c: fix a comment, and add a still-unused + not-implemented function + + * dbus/dbus-marshal.h: fix comment + + * dbus/dbus-internals.h (_DBUS_ISASCII): new macro + +2004-12-17 Joe Shaw + + * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs, + mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs, + mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of + Type.UnderlyingSystemType to get the actual system type + underneath. This code previously depended on the broken Mono + behavior, which was fixed in 1.1.3. + +2004-11-27 Havoc Pennington + + * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts + are disabled + (_dbus_string_get_const_data): inline when asserts are disabled + + * dbus/dbus-message.c: record the _dbus_current_generation of + creation so we can complain if dbus_shutdown() is used improperly. + Do this only if checks are enabled. + + * dbus/dbus-connection.c: ditto + +2004-11-26 Havoc Pennington + + * test/glib/test-profile.c: add with_bus mode to profile echoes + that go through the bus. + + * test/glib/run-test.sh: add ability to run test-profile + + * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial + config file reload. + +2004-11-26 Havoc Pennington + + * test/glib/test-profile.c: clean up how the fake_malloc_overhead + thing was implemented + +2004-11-26 Havoc Pennington + + * test/glib/test-profile.c: tweak a bit, add support for some + made-up minimal malloc overhead with plain sockets, since in + real life some sort of buffers are unavoidable thus we could + count them in the theoretical best case + +2004-11-26 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug + where I was trying to cache one too many messages + +2004-11-26 Havoc Pennington + + * dbus/dbus-message.c: reimplement message cache as an array which + makes the cache about twice as fast and saves maybe 1.5% overall + +2004-11-26 Havoc Pennington + + * dbus/dbus-threads.c (init_global_locks): forgot to put the + message cache lock here + +2004-11-26 Havoc Pennington + + * dbus/dbus-message.c (struct DBusMessage): put the locked bit and + the "char byte_order" next to each other to save 4 bytes + (dbus_message_new_empty_header): reduce preallocation, since the + message cache should achieve a similar effect + (dbus_message_cache_or_finalize, dbus_message_get_cached): add a + message cache that keeps a few DBusMessage around in a pool, + another 8% speedup or so. + + * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function + +2004-11-25 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going + to write, without reading or blocking, try it before the poll() + and skip the poll() if nothing remains to write. This is about a + 3% speedup in the echo client/server + +2004-11-25 Havoc Pennington + + The primary change here is to always write() once before adding + the write watch, which gives us about a 10% performance increase. + + * dbus/dbus-transport-unix.c: a number of modifications to cope + with removing messages_pending + (check_write_watch): properly handle + DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of + messages_pending stuff + (check_read_watch): properly handle WAITING_FOR_MEMORY and + AUTHENTICATED cases + (unix_handle_watch): after writing, see if the write watch can be + removed + (unix_do_iteration): assert that write_watch/read_watch are + non-NULL rather than testing that they aren't, since they + aren't allowed to be NULL. check_write_watch() at the end so + we add the watch if we did not finish writing (e.g. got EAGAIN) + + * dbus/dbus-transport-protected.h: remove messages_pending call, + since it resulted in too much inefficient watch adding/removing; + instead we now require that the transport user does an iteration + after queueing outgoing messages, and after trying the first + write() we add a write watch if we got EAGAIN or exceeded our + max bytes to write per iteration setting + + * dbus/dbus-string.c (_dbus_string_validate_signature): add this + function + + * dbus/dbus-server-unix.c (unix_finalize): the socket name was + freed and then accessed, valgrind flagged this bug, fix it + + * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken + as the last valid field plus 1, where really it is equal to the + last valid field. Corrects some message corruption issues. + + * dbus/dbus-mainloop.c: verbosity changes + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM + instead of aborting in one of the test codepaths + + * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that + caused not printing the pid ever again if a verbose was missing + the newline at the end + (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE + + * dbus/dbus-connection.c: verbosity changes; + (dbus_connection_has_messages_to_send): new function + (_dbus_connection_message_sent): no longer call transport->messages_pending + (_dbus_connection_send_preallocated_unlocked): do one iteration to + try to write() immediately, so we can avoid the write watch. This + is the core purpose of this patchset + (_dbus_connection_get_dispatch_status_unlocked): if disconnected, + dump the outgoing message queue, so nobody will get confused + trying to send them or thinking stuff is pending to be sent + + * bus/test.c: verbosity changes + + * bus/driver.c: verbosity/assertion changes + + * bus/dispatch.c: a bunch of little tweaks to get it working again + because this patchset changes when/where you need to block. + +2004-11-23 Havoc Pennington + + * test/glib/test-profile.c: modify to accept a plain_sockets + argument in which case it will bench plain sockets instead of + libdbus, for comparison purposes. + +2004-11-22 Havoc Pennington + + * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple + threads for more time, so sysprof can get a grip on it. + + * dbus/dbus-string.c (_dbus_string_validate_utf8): remove + pointless variable + +2004-11-13 Havoc Pennington + + * test/glib/test-profile.c: fix this thing up a bit + + * dbus/dbus-message.c (dbus_message_new_empty_header): increase + preallocation sizes by a fair bit; not sure if this will be an + overall performance win or not, but it does reduce reallocs. + + * dbus/dbus-string.c (set_length, reallocate_for_length): ignore + the test hack that forced constant realloc if asserts are + disabled, so we can profile sanely. Sprinkle in some + _DBUS_UNLIKELY() which are probably pointless, but before I + noticed the real performance problem I put them in. + (_dbus_string_validate_utf8): micro-optimize this thing a little + bit, though callgrind says it didn't help; then special-case + ascii, which did help a lot; then be sure we detect nul bytes as + invalid, which is a bugfix. + (align_length_then_lengthen): add some more _DBUS_UNLIKELY + superstition; use memset to nul the padding instead of a manual + loop. + (_dbus_string_get_length): inline this as a + macro; it showed up in the profile because it's used for loop + tests and so forth + +2004-11-10 Colin Walters + + * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR, + for extra paranoia. + +2004-11-09 Colin Walters + + * dbus/dbus-string.c (_dbus_string_get_length): New + function, writes DBusString to C buffer. + + * dbus/dbus-string.h: Prototype it. + + * dbus/dbus-message.c (dbus_message_type_to_string): New + function, converts message type into C string. + + * dbus/dbus-message.h: Prototype it. + + * bus/selinux.c (bus_selinux_check): Take source pid, + target pid, and audit data. Pass audit data to + avc_has_perm. + (log_audit_callback): New function, appends extra + audit information. + (bus_selinux_allows_acquire_service): Also take + service name, add it to audit data. + (bus_selinux_allows_send): Also take message + type, interface, method member, error name, + and destination, and add them to audit data. + (log_cb): Initialize func_audit. + + * bus/selinux.h (bus_selinux_allows_acquire_service) + (bus_selinux_allows_send): Update prototypes + + * bus/services.c (bus_registry_acquire_service): Pass + service name to bus_selinux_allows_acquire_service. + + * bus/bus.c (bus_context_check_security_policy): Pass + additional audit data. Move assignment of dest + to its own line. + +2004-11-07 Colin Walters + + * dbus/dbus-transport-unix.c (do_authentication): Always + initialize auth_completed. + +2004-11-07 Colin Walters + + * bus/bus.c (load_config): Break into three + separate functions: process_config_first_time_only, + process_config_every_time, and process_config_postinit. + (process_config_every_time): Move call of + bus_registry_set_service_context_table into + process_config_postinit. + (process_config_postinit): New function, does + any processing that needs to happen late + in initialization (and also on reload). + (bus_context_new): Instead of calling load_config, + open config parser here and call process_config_first_time_only + and process_config_every_time directly. Later, after + we have forked but before changing UID, + invoke bus_selinux_full_init, and then call + process_config_postinit. + (bus_context_reload_config): As in bus_context_new, + load parse file inside here, and call process_config_every_time + and process_config_postinit. + + * bus/services.h, bus/services.c + (bus_registry_set_service_context_table): Rename + from bus_registry_set_sid_table. Take string hash from config + parser, and convert them here into SIDs. + + * bus/config-parser.c (struct BusConfigParser): Have + config parser only store a mapping of service->context + string. + (merge_service_context_hash): New function. + (merge_included): Merge context string hashes instead + of using bus_selinux_id_table_union. + (bus_config_parser_new): Don't use bus_selinux_id_table_new; + simply create a new string hash. + (bus_config_parser_unref): Unref it. + (start_selinux_child): Simply insert strings into hash, + don't call bus_selinux_id_table_copy_over. + + * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union) + (bus_selinux_id_table_copy_over): Delete. + +2004-11-03 Colin Walters + + * bus/selinux.c (bus_selinux_pre_init): Kill some unused + variables. + +2004-11-03 Colin Walters + + * bus/test-main.c (test_pre_hook): Fix test logic, + thanks Joerg Barfurth . + +2004-11-02 Colin Walters + + * bus/selinux.c (bus_selinux_init): Split into two functions, + bus_selinux_pre_init and bus_selinux_post_init. + (bus_selinux_pre_init): Just determine whether SELinux is + enabled. + (bus_selinux_post_init): Do everything else. + + * bus/main.c (main): Call bus_selinux_pre_init before parsing + config file, and bus_selinux_post_init after. This ensures that + we don't lose the policyreload notification thread that + bus_selinux_init created before forking previously. + + * bus/test-main.c (test_pre_hook): Update for split. + +2004-10-31 Owen Fraser-Green + + Patch from Johan Fischer + + * mono/doc/Makefile.am (install-data-local): Added directory + install for DESTDIR + +2004-10-29 Colin Walters + + * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take + parameter for fd to write pid to. + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it. + + * bus/bus.c (bus_context_new): Pass print_pid_fd + to _dbus_become_daemon (bug #1720) + +2004-10-29 Colin Walters + + Patch from Ed Catmur + + * mono/doc/Makefile.am (install-data-local): Handle + DESTDIR. + +2004-10-29 Colin Walters + + * bus/.cvsignore, qt/.cvsignore: Update. + +2004-10-29 Colin Walters + + Patch from Kristof Vansant + + * configure.in: Detect Slackware. + * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in. + * bus/rc.messagebus.in: New file. + +2004-10-29 Colin Walters + + * tools/dbus-monitor.c (filter_func): Return + DBUS_HANDLER_RESULT_HANDLED in filter function + for now. See: + http://freedesktop.org/pipermail/dbus/2004-August/001433.html + +2004-10-29 Colin Walters + + Patch from Matthew Rickard + + * bus/services.c (bus_registry_acquire_service): + Correctly retrieve service name from DBusString + for printing. + +2004-10-29 Colin Walters + + * dbus/dbus-glib.h: Update documentation to not + refer to internal APIs. + +2004-10-27 Joe Shaw + + * mono/Arguments.cs (GetDBusTypeConstructor): + type.UnderlyingSystemType will return "System.Byte" if you do it + on "byte[]", which is not what we want. So check the type.IsArray + property and use System.Array instead. + +2004-10-25 John (J5) Palmieri + + * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free + the DBusUserInfo structure since this is passed into the function. + This would cause a double free when the function that allocated + the structure would try to free it when an error occured. + + * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in): + use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services + for service activation to avoid 32bit/64bit parallel install issues + +2004-10-21 Colin Walters + + * AUTHORS: Fix my email address, the @gnu.org one + has been bouncing for some time. Also add J5. + +2004-10-21 Colin Walters + + * dbus/dbus-transport-unix.c (do_authentication): Return + authentication status to callers. + (unix_handle_watch): If we completed authentication this round, + don't do another read. Instead wait until the next iteration, + after we've read any pending data in the auth buffer. + (unix_do_iteration): Ditto. + (unix_handle_watch): Updated for new do_authentication prototype. + +2004-10-18 Colin Walters + + * bus/selinux.c (bus_selinux_enabled): Handle + --disable-selinux case. + +2004-10-18 Colin Walters + + * bus/selinux.h: Add bus_selinux_enabled. + + * bus/selinux.c (bus_selinux_enabled): Implement it. + + * bus/config-parser.c (struct include): Add + if_selinux_enabled member. + (start_busconfig_child): Parse if_selinux_enabled + attribute for include. + (bus_config_parser_content): Handle it. + + * bus/session.conf.in, bus/system.conf.in: Add + inclusion of context mapping to default config files; + conditional on SELinux being enabled. + + * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD. + + * test/data/invalid-config-files/badselinux-1.conf, + test/data/invalid-config-files/badselinux-2.conf: + Test files for bad syntax. + +2004-10-17 Colin Walters + + * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards) + (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf + format specifier mismatches. + +2004-10-07 Olivier Andrieu + + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect + format string. + + * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL + pointer (bug #1540, Leonardo Boiko). + +2004-09-28 Jon Trowbridge + + * mono/BusDriver.cs: Changed BusDriver struct to remove + the ServiceCreated and ServiceDeleted events and replace them + with the new ServiceOwnerChanged event. + + * mono/example/BusListener.cs: Added a new example program, + which listens for and reports any ServiceOwnerChanged events + on the bus driver. + + * mono/example/Makefile.am (DESTDIR): Build changes for the + new BusListener.cs example. + +2004-09-27 Olivier Andrieu + + * bus/signals.c (bus_match_rule_parse): validate the components of + match rules (bug #1439). + + * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test. + +2004-09-24 Olivier Andrieu + + * doc/dbus-specification.xml: document ServiceOwnerChanged + signal. + + * bus/driver.c, bus/driver.h, bus/services.c: Use + ServiceOwnerChanged signal instead of ServiceCreated and + ServiceDeleted. + + * bus/dispatch.c: update testcase for the new signal. + +2004-09-20 Jon Trowbridge + + Patch from Nat Friedman + + * mono/Makefile.am: A number of small build fixes to allow "make + distcheck" to succeed. + + * mono/example/Makefile.am: "make distcheck" fixes. + + * mono/AssemblyInfo.cs.in: When signing the assembly, look for the + key in @srcdir@. + + * test/Makefile.am: "make distcheck" fixes. + +2004-09-17 Olivier Andrieu + + * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM. + + * doc/busconfig.dtd: update the DTD for the at_console attribute. + + * bus/driver.c (bus_driver_handle_hello): correctly handle Hello + messages after the first one (bug #1389). + + * bus/dispatch.c (check_double_hello_message): add a test case for + the double hello message bug. + (check_existent_service_activation): fix check of spawning error. + +2004-09-16 David Zeuthen + + * python/dbus_bindings.pyx.in: Add support for int64 and uint64 + +2004-09-12 David Zeuthen + + Patch from Kay Sievers + + * bus/bus.c (bus_context_new): + * bus/bus.h: + * bus/main.c (usage) + (main): + Add commandline option --nofork to override configuration file + setting. + +2004-09-09 Olivier Andrieu + + * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C + compilers don't like it (bug #974). + +2004-09-04 Harald Fernengel + + * qt/connection.*: Applied patch by Jérôme Lodewyck + to integrate an existing + connection into the Qt eventloop + +2004-08-30 Jon Trowbridge + + * mono/BusDriver.cs: Added. This is a class for interacting with + the org.freedesktop.DBus service. + + * mono/Message.cs: Added a mechanism to expose the message that is + currently being dispatched via the static Message.Current + property. Added Message.Sender and Message.Destination + properties. + + * mono/Handler.cs: Expose the dispatched message via + Message.Current when handling method calls. + + * mono/Service.cs: Expose the dispatched message via + Message.Current when handling signal emissions. + + * mono/Connection.cs: Bind dbus_bus_get_base_service via the + Connection.BaseService property. + +2004-08-28 Havoc Pennington + + * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable + + More fixes from Steve Grubb + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak + (_dbus_listen_tcp_socket): fix fd leak + + * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for + EINTR to a bit lower in the code + +2004-08-26 Jon Trowbridge + + * bus/driver.c (bus_driver_handle_service_exists): Respond with + TRUE if we are inquiring about the existence of the built-in + org.freedesktop.DBus service. + +2004-08-25 John Palmieri + * bus/config-parser.c: + (struct PolicyType): Add POLICY_CONSOLE + (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console + (start_busconfig_child): Sets up console element when + is encountered in a policy file + (append_rule_from_element): Convert console elements to console + rules. + + * bus/policy.c: + (bus_policy_create_client_policy): Add console rules to the client + policy based on if the client is at the console + (bus_policy_append_console_rule): New function for adding a + console rule to a policy + (bus_policy_merge): Handle console rule merging + + * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant + where we check for console user files + + * dbus/dbus-sysdeps.c: + (_dbus_file_exists): New function which checks if the given + file exists + (_dbus_user_at_console): New function which does the system + specific process of checking if the user is at the console + + * dbus/dbus-userdb.c: + (_dbus_is_console_user): New function converts a UID to user name + and then calls the system specific _dbus_user_at_console to + see if the user is at the console and therefor a console user + +2004-08-25 Olivier Andrieu + + * bus/config-parser.c (set_limit): + * bus/dbus-daemon-1.1.in: + * test/data/valid-config-files/many-rules.conf: set the + max_match_rules_per_connection limt from the config file. + + * doc/busconfig.dtd: update the DTD. + + * bus/driver.c: remove some unused variables. + +2004-08-24 Mikael Hallendal + + * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since + it's been replaced by dbus_g_bus_get + +2004-08-23 Colin Walters + + Updated SELinux support from Matthew Rickard + + * bus/selinux.h: Prototype bus_selinux_get_policy_root. + + * bus/selinux.c: Create a thread for policy reload notification. + (bus_selinux_get_policy_root): Implement. + + * bus/config-parser.c (start_busconfig_child) + (bus_config_parser_content): Support SELinux-root relative + inclusion. + + * configure.in : Add -lpthread. + + * bus/test-main.c (test_pre_hook, test_post_hook): New. + (test_post_hook): Move memory checking into here. + (test_pre_hook, test_post_hook): Move SELinux checks in + here, but conditional on a DBUS_TEST_SELINUX environment + variable. Unfortunately we can't run the SELinux checks + as a normal user, since they won't have any permissions + for /selinux. So this will have to be tested manually + for now, until we have virtualization for most of + libselinux. + +2004-08-23 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to + drop supplementary groups, suggested by Steve Grubb + +2004-08-20 Colin Walters + + * bus/config-parser.c (start_busconfig_child): Remove some unused + variables. + + * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler + warning. + +2004-08-17 Joe Shaw + + * configure.in: If --enable-mono is passed in, if we can't find + mono error out. + + * mono/Makefile.am: Use /gacutil to install assemblies into the + GAC and not /root. + +2004-08-12 Havoc Pennington + + * NEWS: update for 0.22 + + * configure.in: release 0.22 + +2004-08-11 Colin Walters + + * tools/dbus-send.c (main, usage): Add --reply-timeout + argument. + +2004-08-10 Olivier Andrieu + + * bus/bus.c (process_config_first_time_only): get rid of an unused + DBusError that was causing a memoy leak (bug #989). + + * dbus/dbus-keyring.c, dbus/dbus-message.c: + fix compilation on Solaris/Forte C (bug #974) + + * bus/main.c (main): plug two minuscule memleaks. + +2004-08-10 Havoc Pennington + + * doc/dbus-tutorial.xml: add some more info on GLib bindings + +2004-08-09 Havoc Pennington + + * COPYING: switch to Academic Free License version 2.1 instead of + 2.0, to resolve complaints about patent termination clause. + +2004-07-31 John (J5) Palmieri + + * README: added documentation for the --enable-python + configure switch. + +2004-07-31 Olivier Andrieu + + * bus/config-parser.c (bus_config_parser_new): fix an invalid + _unref in the SELinux support. + + * doc/busconfig.dtd: update DTD for SELinux support. + + * bus/config-loader-libxml.c: fix error handler and parser + initialisation/cleanup. OOM test now works with libxml2 HEAD. + + * configure.in: remove the warning about libxml2. + + * dbus/dbus-bus.c: silence doxygen warning. + +2004-07-31 Colin Walters + + * configure.in: Move #error in SELinux check to its own line. + +2004-07-31 Olivier Andrieu + + * dbus/dbus-internals.h (_DBUS_SET_OOM): + * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of + dbus_error_set. + + * bus/dispatch.c (check_send_exit_to_service): fix the test case, + broken by the change in the _SET_OOM macros. + +2004-07-31 Colin Walters + + * bus/selinux.c : Include utils.h to get + BUS_SET_OOM. + +2004-07-31 Colin Walters + + * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER + to correctly detect DBUS__ACQUIRE_SVC. Also add an + AC_MSG_CHECKING. + +2004-07-24 Havoc Pennington + + SELinux support from Matthew Rickard + + * bus/selinux.c, bus/selinux.h: new file encapsulating selinux + functionality + + * configure.in: add --enable-selinux + + * bus/policy.c (bus_policy_merge): add FIXME to a comment + + * bus/main.c (main): initialize and shut down selinux + + * bus/connection.c: store SELinux ID on each connection, to avoid + repeated getting of the string context and converting it into + an ID + + * bus/bus.c (bus_context_get_policy): new accessor, though it + isn't used + (bus_context_check_security_policy): check whether the security + context of sender connection can send to the security context of + recipient connection + + * bus/config-parser.c: add parsing for and + + * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to + implement dbus_connection_get_unix_fd() + + * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new + function, used by the selinux stuff + +2004-07-29 Olivier Andrieu + + * bus/config-loader-libxml.c: complete the implementation of + libxml backend for config file loader. Doesn't work with full OOM + test yet. + + * configure.in: change error when selecting libxml into a warning. + + * test/data/invalid-config-files: add two non-well-formed XML + files. + + * glib/Makefile.am: libdbus_gtool always uses expat, not libxml. + + * dbus/dbus-transport-unix.c (unix_handle_watch): do not + disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may + be necessary to read all the buffer. (bug #894) + + * bus/activation.c (bus_activation_activate_service): fix a + potential assertion failure (bug #896). Small optimization in the + case of auto-activation messages. + + * dbus/dbus-message.c (verify_test_message, _dbus_message_test): + add test case for byte-through-vararg bug (#901). patch by Kimmo + Hämäläinen. + +2004-07-28 Anders Carlsson + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + Add dbus.init_gthreads (), allow emit_signal to pass + arguments to the signal. + +2004-07-24 Havoc Pennington + + * AUTHORS: add some people, not really comprehensively, let me + know if I missed you + +2004-07-24 Havoc Pennington + + * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by + Owen + + * test/Makefile.am (DIST_SUBDIRS): here also + +2004-07-22 Olivier Andrieu + + * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name, + breaking build on Solaris, reported by Farhad Saberi on the ML. + + * dbus/dbus-message.c (dbus_message_append_args_valist): fix the + va_arg invocation to account for integer promotion in the case of + DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901) + + * bus/services.c (bus_service_remove_owner): fix bug #902, use + _dbus_list_get_first_link, not _dbus_list_get_first. + + * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak. + + * dbus/dbus-object-tree.c (free_subtree_recurse): always null + handler functions so that the asserts in _dbus_object_subtree_unref + do not fail. + + * dbus/dbus-transport-unix.c (do_reading): + _dbus_transport_queue_messages return value is of type + dbus_bool_t, not DBusDispatchStatus. + +2004-07-19 David Zeuthen + + * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN + + * bus/dispatch.c: + (check_get_connection_unix_user): Debug says GetProperty; but the + method is called GetConnectionUnixUser + (check_get_connection_unix_process_id): New function + (bus_dispatch_test): Actually call check_get_connection_unix_user(); + also call check_get_connection_unix_process_id() + + * bus/driver.c: + (bus_driver_handle_get_connection_unix_process_id): New function, + handles GetConnectionUnixProcessID on the org.freedesktop.DBus + interface + + * dbus/dbus-auth.c: + (handle_server_data_external_mech): Set pid from the credentials + obtained from the socket + + * dbus/dbus-connection.c: + (dbus_connection_get_unix_process_id): New function + + * dbus/dbus-connection.h: + Add prototype for dbus_connection_get_unix_process_id + + * dbus/dbus-transport.c: + (_dbus_transport_get_unix_process_id): New function + + * dbus/dbus-transport.h: + Add prototype for _dbus_transport_get_unix_process_id + +2004-07-19 Olivier Andrieu + + * dbus/dbus-message.c: Message counter fix, patch by Christian + Hammond + +2004-07-18 Seth Nickell + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Add dbus.ByteArray and dbus_bindings.ByteArray + types so that byte streams can be passed back. + + Give jdahlin the heaps of credit that are so + rightfully his. + +2004-07-12 Seth Nickell + + * python/dbus.py: + + Add message argument to the default object_method_handler + function. + + * python/dbus_bindings.pyx.in: + + Automatically return NIL when passed an empty list + (we can't pass back a list since lists are typed + and we don't have any idea what type the the client + intended the list to be... :-( ) + +2004-07-10 Seth Nickell + + * python/examples/Makefile.am: + + Fix distcheck breakage caused by new examples. + +2004-07-10 Seth Nickell + + * python/dbus.py: + + Add "message" argument to service-side dbus.Object + methods. This will break existing services written + using the python bindings, but will allow extraction + of all the message information (e.g. who its from). + + Add improved "object oriented" signal handling/emission. + + * python/examples/example-service.py: + + Nix this example. + + * python/examples/example-signal-emitter.py: + * python/examples/example-signal-recipient.py: + + Two new examples that show how to emit and receive + signals using the new APIs. + + * python/examples/example-signals.py: + * python/examples/gconf-proxy-service.py: + * python/examples/gconf-proxy-service2.py: + + Add "message" argument to service methods. + +2004-06-28 Kay Sievers + + * bus/driver.c (bus_driver_handle_get_connection_unix_user) + * dbus/bus.c (dbus_bus_get_unix_user) + * doc/dbus-specification.xml: implement GetConnectionUnixUser + method of org.freedesktop.DBus interface. + + * bus/dispatch.c: test case + +2004-06-23 John (J5) Palmieri + + * python/Makefile.am: switched include directory from glib/ to dbus/ + since dbus-glib.h moved + +2004-06-22 Olivier Andrieu + + * configure.in: prevent building the gcj stuff and libxml loader + since they are broken. + +2004-06-20 Havoc Pennington + + * dbus/dbus-glib-error-enum.h: autogenerate the GError enum + codes from the dbus error names + + * glib/dbus-glib.h: move to subdir dbus/ since it's included + as dbus/dbus-glib.h and that breakage is now visible due to + including dbus/dbus-glib.h in dbus-glib-lowlevel.h + + * glib/dbus-glib.h: s/gproxy/g_proxy/ + + * dbus/dbus-shared.h: new header to hold stuff shared with + binding APIs + + * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather + than dbus-errors.h + + * glib/dbus-glib.h (dbus_set_g_error): move to + dbus-glib-lowlevel.h + + * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch + of stuff to enable this + + * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here + + * a bunch of other changes with the same basic "separate glib + bindings from dbus.h" theme + +2004-06-10 Owen Fraser-Green + + * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs. + + * python/examples/Makefile.am: Fixed typo in EXTRA_DIST. + +2004-06-09 Olivier Andrieu + + * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for + the reply value of the ServiceExists message. + +2004-06-07 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: No longer need to parse path + elements and pass them as arrays of strings. The C API now + accepts plain path strings. + (_build_parsed_path): removed + +2004-06-07 Havoc Pennington + + * doc/TODO: remove auto-activation item since it's done; sort + items by importance/milestone + +2004-06-07 Havoc Pennington + + * dbus/dbus-message-builder.c (_dbus_message_data_load): append + random signature when using REQUIRED_FIELDS (this hack won't work + in the long term) + + * dbus/dbus-message.c: change the signature to be a header field, + instead of message->signature special-case string. Incremental + step forward. Then we can fix up code to send the signature in the + message, then fix up code to validate said signature, then fix up + code to not put the typecodes inline, etc. + (load_one_message): don't make up the signature after the fact + (decode_header_data): require signature field for the known + message types + + * dbus/dbus-marshal.c (_dbus_marshal_string_len): new + + * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE + +2004-06-07 Owen Fraser-Green + + * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path + + * mono/Handler.cs: Updated to follow new path argument for + (un-)registering objects. + + * mono/example/Makefile.am: + * mono/Makefile.am: + * configure.in: Bumped required version for mono and use new -pkg + syntax for deps + +2004-06-05 Olivier Andrieu + + * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path + registration functions take the path argument as char* instead of + char**. + + * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path): + split off the path decompostion part of + _dbus_demarshal_object_path. Some misc. fixes to silence compiler + warnings. + + * glib/dbus-gobject.c, test/test-service.c: update accordingly. + +2004-06-02 Kristian Høgsberg + + * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state + machine approach. A state is implemented as a function that + handles incoming events as specified for that state. + + * doc/dbus-specification.xml: Update auth protocol state machine + specification to match implementation. Remove some leftover + base64 examples. + +2004-06-02 Kristian Høgsberg + + * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c, + dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to + quiet doxygen. + + * Doxyfile.in: remove deprecated options. + + * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h, + glib/test-thread.h, glib/test-thread-client.c, + glib/test-thread-server.c, glib/test-profile.c, + glib/test-dbus-glib.c: remove these unused files. + +2004-06-01 Olivier Andrieu + + * dbus/dbus-object-tree.c + (_dbus_object_tree_dispatch_and_unlock): fix dispatch for + non-fallback handlers (bug #684). + (_dbus_object_subtree_new): initialize invoke_as_fallback field. + (find_subtree_recurse): report wether the returned subtree is an + exact match or a "fallback" match higher up in the tree. + (object_tree_test_iteration): update test case. + +2004-06-01 Seth Nickell + + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Round off basic type support. Add dicts (yay!), and + remaining array types. + + Make MessageIter more general so it works for dicts too. + + Mark all loop variables as C integers. + +2004-05-31 Havoc Pennington + + * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with + "in" before "out" + + * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c + + * glib/dbus-glib-tool.c (main): set up to have a --self-test + option that runs the tests, and start filling in some code + including for starters just dumping the interfaces to stdout + + * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR + + * test/data/valid-introspection-files/lots-of-types.xml: test of + an example introspection file + + * glib/dbus-gparser.c (parser_check_doctype): doctype should be + "node" (I think...) + +2004-05-31 Seth Nickell + + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Test Suite: 1 + Python Bindings: 0 + + Fix string array memory trashing bug... oops... + +2004-05-30 Seth Nickell + + * python/dbus.py: + + Add a nicer-but-less-flexible alternate API for handling + calls to virtual objects in dbus.ObjectTree. + + Screw up the argument order to the dbus.Object constructor + for consistency with dbus.ObjectTree (and to make dbus_methods + optional for future extension) + + * python/examples/Makefile.am: + * python/examples/gconf-proxy-service.py: + * python/examples/gconf-proxy-service2.py: + + Alternate implementation of gconf-proxy-service using the + nicer dbus.ObjectTree API. + + * python/examples/example-service.py: + * python/tests/test-server.py + + Reverse the argument order to deal with dbus.Object constructor + changes. + +2004-05-30 Seth Nickell + + * python/examples/example-client.py: + * python/examples/example-service.py: + + Take it back. Lists seem to work but they're broken + in the test suite. Make the base examples use + lists (works fine). + +2004-05-30 Seth Nickell + + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Add some more tests and fix errors that crop up. + Unfortunately, currently it seems like marshalling + and unmarshalling of lists is completely broken :-( + +2004-05-30 Seth Nickell + + * python/dbus_bindings.pyx.in: + + Add support for ObjectPath type. + + * python/dbus.py: + + Refactor message handling code to a common function. + + * python/tests/test-client.py: + * python/tests/test-server.py: + + Add tests that check to make sure values of all types + can be echoed from a service w/o mangling. + +2004-05-29 Seth Nickell + + * python/dbus.py: + + Add ObjectTree class which allows implementation + of trees of "virtual" objects. Basically the python + wrapper for "register_fallback". + + * python/examples/Makefile.am + * python/examples/gconf-proxy-client.py: + * python/examples/gconf-proxy-service.py: + + Implement a simple GConf proxy service that supports + get/set on string and int GConf keys using the ObjectTree. + +2004-05-29 Seth Nickell + + * python/dbus.py: + * python/examples/example-client.py: + * python/examples/example-service.py: + * python/examples/list-system-services.py: + + Add SessionBus, SystemBus and ActivationBus classes + so you don't need to know the special little BUS_TYPE + flag. + +2004-05-29 Havoc Pennington + + * bus/config-parser.c (process_test_valid_subdir): temporarily + stop testing config parser OOM handling, since expat has issues + http://freedesktop.org/pipermail/dbus/2004-May/001153.html + + * bus/dbus-daemon-1.1.in: change requested_reply to + send_requested_reply/receive_requested_reply so we can send the + replies, not just receive them. + + * bus/config-parser.c: parse the new + send_requested_reply/receive_requested_reply + + * bus/policy.c (bus_client_policy_check_can_send): add + requested_reply argument and use it + + * bus/bus.c (bus_context_check_security_policy): pass through + requested_reply status to message send check + + * bus/system.conf.in: adapt to requested_reply change + +2004-05-28 Havoc Pennington + + * test/glib/test-service-glib.c (main): remove unused variable + + * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning + + * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES + from the enum, no longer in use. + + * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually + works right. + + * dbus/dbus-message.c: add various _dbus_return_val_if_fail for + whether error_name passed in is a valid error name. + +2004-05-28 John (J5) Palmieri + + * dbus/dbus-message.c (dbus_message_get_args): Added support for + OBJECT_PATH and OBJECT_PATH_ARRAY + +2004-05-28 Seth Nickell + + * python/examples/Makefile.am: + + Forget to add Makefile.am. Do not pass go. + +2004-05-28 Michael Meeks + + * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): + fix no int64 case. + + * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl. + + * dbus/dbus-message.c (_dbus_message_iter_get_basic_type), + (_dbus_message_iter_get_basic_type_array): impl. + drastically simplify ~all relevant _get methods to use these. + (_dbus_message_iter_append_basic_array), + (dbus_message_iter_append_basic): impl + drastically simplify ~all relevant _append methods to use these. + + * dbus/dbus-message-builder.c (parse_basic_type) + (parse_basic_array, lookup_basic_type): impl. + (_dbus_message_data_load): prune scads of duplicate / + cut & paste coding. + + * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) + (_dbus_demarshal_basic_type): implement, + (demarshal_and_validate_len/arg): beef up debug. + (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl. + +2004-05-27 Seth Nickell + + * configure.in: + * python/Makefile.am: + + Include the example python apps in the tarball. + + * python/examples/list-system-services.py + + Add a python new example that fetches the list of services + from the system bus. + +2004-05-27 Seth Nickell + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + + Fix failure to notify that a signal was not handled, + resulted in hung functions. + +2004-05-25 Colin Walters + + * tools/dbus-monitor.c (main): Monitor all types of messages. + +2004-05-23 Owen Fraser-Green + + * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method + which unregisters the object path and disposes the handler. + +2004-05-23 Kristian Høgsberg + + Patch from Timo Teräs (#614): + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap + operands to && so we call dbus_message_iter_next () for the last + argument also. + +2004-05-21 Olivier Andrieu + + * dbus/dbus-object-tree.c + (_dbus_object_tree_list_registered_unlock, lookup_subtree): return + children even if the requested path isn't registered. + (object_tree_test_iteration): test object_tree_list_registered. + + * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining + it to 0. + +2004-05-20 Kristian Høgsberg + + * doc/TODO: Remove resolved items. + + * bus/expirelist.h (struct BusExpireList): remove unused n_items + field. + + * bus/connection.c (bus_connections_expect_reply): Enforce the + per-connection limit on pending replies. + + Patch from Jon Trowbridge : + + * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets + up a watch that triggers a config reload when one end of the pipe + becomes readable. + (signal_handler): Instead of doing the config reload in our SIGHUP + handler, just write to the reload pipe and let the associated + watch handle the reload when control returns to the main loop. + + * bus/driver.c (bus_driver_handle_reload_config): Added. + Implements a ReloadConfig method for requesting a configuration + file reload via the bus driver. + +2004-05-19 Owen Fraser-Green + + * HACKING: Updated release instructions concerning the wiki page. + +2004-05-18 Kristian Høgsberg + + * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to + filter against auth->allowed_mechs; we only add allowed mechs in + record_mechanisms(). + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an + ALLOWED_MECHS to auth-script format so we can set the list of + allowed mechanisms. + + * data/auth/client-out-of-mechanisms.auth-script: New test to + check client disconnects when it is out of mechanisms to try. + + * dbus/dbus-auth.c (process_command): Remove check for lines + longer that 1 MB; we only buffer up maximum 16 kB. + + * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, + dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h: + Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always + assume there might be unused bytes. + + * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for + client-out-of-mechs, it is handled in process_reject(). Move check + for max failures to send_rejected(), as it's a server-only thing. + + * dbus/dbus-auth.c: Factor out protocol reply code into functions + send_auth(), send_data(), send_rejected(), send_error(), + send_ok(), send_begin() and send_cancel(). + +2004-05-17 Kristian Høgsberg + + Remove base64 encoding, replace with hex encoding. Original patch + from trow@ximian.com, added error handling. + + * dbus/dbus-string.c (_dbus_string_base64_encode) + (_dbus_string_base64_decode): Remove. + (_dbus_string_hex_decode): Add end_return argument so we can + distinguish between OOM and invalid hex encoding. + (_dbus_string_test): Remove base64 tests and add test case for + invalid hex. + + * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c: + Replace base64 with hex. + + * test/data/auth/invalid-hex-encoding.auth-script: New test case + for invalid hex encoded data in auth protocol. + +2004-05-17 Olivier Andrieu + + * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory + leak. + +2004-05-15 Owen Fraser-Green + + * mono/dbus-sharp.dll.config.in: Added for GAC + * mono/dbus-sharp.snk: Added for GAC + * mono/Assembly.cs.in: Added for GAC + * mono/Makefile.am: Changes for GAC installation + * configure.in: Added refs for dbus-sharp.dll.config.in and + Assembly.cs.in. More fixes for mono testing + * mono/example/Makefile.am: Changed var to CSC + * Makefile.am: Changed flag name to DBUS_USE_CSC + +2004-05-15 Owen Fraser-Green + + * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order + * mono/doc/*: Added documentation framework + * configure.in: Added monodoc check + * README: Added description of mono configure flags + +2004-05-11 John (J5) Palmieri : + + * doc/dbus-specification.xml: Added a "Required" column to the + header fields table and changed the "zero or more" verbage in + the above paragraph to read "The header must contain the required + named header fields and zero or more of the optional named header + fields". + * test/data/invalid-messages/*.message: Added the required PATH + named header field to the tests so that they don't fail on + 'Missing path field' + +2004-05-07 John (J5) Palmieri + + * python/dbus-bindings.pyx.in: Stopped the bindings from trashing + the stack by implicitly defining variable and parameter types and + removing the hack of defining C pointers as python objects and later + casting them. + +2004-05-02 Owen Fraser-Green + + * mono/Makefile.am: Removed test-dbus-sharp.exe from all target + +2004-05-01 Owen Fraser-Green + + * mono/DBusType/Dict.cs: Handle empty dicts + * mono/DBusType/Array.cs: Handle empty arrays + * mono/Arguments.cs: Handle empty arguments + +2004-04-30 Owen Fraser-Green + + * dbus-sharp.pc.in: Modified to include include Libs and Requires + field + +2004-04-25 Kristian Høgsberg + + * test/data/valid-messages/standard-*.message: Update message + test scripts to new header field names. + +2004-04-22 John (J5) Palmieri + + * test/break-loader.c (randomly_do_n_things): tracked down buffer + overflow to times_we_did_each_thing array which would chop off the + first character of the failure_dir string. Increased the size of + the array to 7 to reflect the number of random mutation functions + we have. + +2004-04-21 Kristian Høgsberg + + * dbus/dbus-server-unix.c (unix_finalize): Don't unref + unix_server->watch here, it is unreffed in disconnect. + (_dbus_server_new_for_tcp_socket): convert NULL host to + "localhost" here so we don't append NULL to address. + + * dbus/dbus-server.c (_dbus_server_test): Add test case for + various addresses, including tcp with no explicit host. + +2004-04-21 Olivier Andrieu + + * dbus/dbus-message.c (decode_header_data, decode_string_field): + fix incorrect setting of .name_offset in the HeaderField (it was + off by two bytes, positioned right after the name and typecode) + + * bus/bus.c (bus_context_new, bus_context_unref): test before + calling dbus_server_free_data_slot and _dbus_user_database_unref + in case of an error. + + * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed + by libdbus-gtool. + +2004-04-19 Kristian Høgsberg + + * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use + _dbus_poll() instead of select(). + +2004-04-15 Jon Trowbridge + + * bus/main.c (signal_handler): Reload the configuration files + on SIGHUP. + (main): Set up our SIGHUP handler. + + * bus/bus.c (struct BusContext): Store the config file, user and + fork flag in the BusContext. + (process_config_first_time_only): Added. Contains the code + (previously in bus_context_new) for setting up the BusContext from + the BusConfigParser that should only be run the first time the + config files are read. + (process_config_every_time): Added. Contains the code (previously + in bus_context_new) for setting up the BusContext from the + BusConfigParser that should be run every time the config files are + read. + (load_config): Added. Builds a BusConfigParser from the config + files and passes the resulting structure off to + process_config_first_time_only (assuming this is the first time) + and process_config_every_time. + (bus_context_new): All of the config-related code has been moved + to process_config_first_time_only and process_config_every_time. + Now this function just does the non-config-related initializations + and calls load_config. + (bus_context_reload_config): Added. + +2004-04-15 Olivier Andrieu + + * bus/driver.c (bus_driver_handle_get_service_owner): + implement a GetServiceOwner method. + * doc/dbus-specification.xml: document it. + * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error. + + * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner): + implement, using the bus GetServiceOwner method. + + * test/glib/test-dbus-glib.c: + use dbus_gproxy_new_for_service_owner so that we can receive the + signal. + +2004-04-15 John (J5) Palmieri + + * dbus/dbus-internals.c, dbus/dbus-message-builder.c, + dbus/dbus-message.c, dbus/dbus-protocol.h + (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION + + * dbus/dbus-internals.c, dbus/dbus-message-builder.c, + dbus/dbus-message.c, dbus/dbus-protocol.h + (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER + + * dbus/dbus-internals.c (_dbus_header_field_to_string): + DBUS_HEADER_FIELD_DESTINATION resolves to "destination" + DBUS_HEADER_FIELD_SENDER resolves to "sender" + + * doc/dbus-specification.xml (Header Fields Table): + s/SERVICE/DESTINATION + s/SENDER_SERVICE/SENDER + + +2004-04-14 Olivier Andrieu + + * test/glib/test-dbus-glib.c (timed_exit): fail the test after + a few seconds. + +2004-04-13 Michael Meeks + + * glib/dbus-gobject.c (handle_introspect): split out + (introspect_properties): this. + (handle_introspect): implement this. + + * test/glib/Makefile.am: use the absolute path so the bus + daemon's chdir ("/") doesn't kill us dead. + + * configure.in: subst ABSOLUTE_TOP_BUILDDIR + +2004-04-12 Jon Trowbridge + + * bus/config-parser.c (struct BusConfigParser): Added + included_files field. + (seen_include): Added. Checks whether or not a file has already + been included by any parent BusConfigParser. + (bus_config_parser_new): Copy the parent's included_files. + (include_file): Track which files have been included, and fail on + circular inclusions. + (process_test_valid_subdir): Changed printf to report if we are + testing valid or invalid conf files. + (all_are_equiv): Changed printf to be a bit clearer about + what we are actually doing. + (bus_config_parser_test): Test invalid configuration files. + +2004-04-09 Jon Trowbridge + + * bus/config-parser.c (bus_config_parser_new): Added a 'parent' + argument. If non-null, the newly-constructed BusConfigParser will + be initialized with the parent's BusLimits instead of the default + values. + (include_file): When including a config file, pass in + the current parser as the parent and then copy the BusLimits + from the included BusConfigParser pack to the current parser. + (process_test_valid_subdir): Renamed from process_test_subdir. + (process_test_equiv_subdir): Added. Walks through a directory, + descending into each subdirectory and loading the config files + it finds there. If any subdirectory contains two config files + that don't produce identical BusConfigParser structs, fail. + For now, the BusConfigParser's BusPolicies are not compared. + (bus_config_parser_test): Call both process_test_valid_subdir and + process_test_equiv_subdir. + + * bus/config-loader-libxml.c (bus_config_load): Take a parent + argument and pass it along to the call to bus_config_parser_new. + Also made a few small changes to allow this code to compile. + + * bus/config-loader-expat.c (bus_config_load): Take a parent + argument and pass it along to the call to bus_config_parser_new. + + * bus/bus.c (bus_context_new): Load the config file + with a NULL parent argument. + +2004-03-29 Michael Meeks + + * glib/dbus-gobject.c (introspect_properties): split + out, fix mangled 'while' flow control. + (introspect_signals): implement. + (handle_introspect): update. + +2004-03-29 Michael Meeks + + * glib/dbus-gobject.c (set_object_property): split out / + re-work, use the property type, and not the message type(!) + (get_object_property): ditto. + + * glib/dbus-gvalue.c (dbus_gvalue_demarshal), + (dbus_gvalue_marshal): make this code re-usable, needed + for signals too, also on both proxy and server side. + Re-write for more efficiency / readability. + +2004-03-29 Michael Meeks + + * dbus/dbus-message.c + (dbus_message_new_error_printf): impl. + + * dbus/dbus-connection.c + (dbus_connection_unregister_object_path): fix warning. + + * configure.in: fix no-mono-installed situation. + +2004-03-27 Havoc Pennington + + Patch from Timo Teräs: + + * tools/dbus-send.c (main): if --print-reply, assume type is + method call; support boolean type args + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a + bunch of memleak and logic bugs + +2004-03-23 Owen Fraser-Green + + * mono/Arguments.cs: + * mono/Introspector.cs: + * mono/Handler.cs: + * mono/InterfaceProxy.cs: + * mono/Message.cs + * mono/ProxyBuilder.cs: + * mono/Service.cs: + Added InterfaceProxy class to avoid building proxies for every + object. + + * dbus-message.h: + * dbus-message.c (dbus_message_append_args_valist) + (dbus_message_iter_get_object_path) + (dbus_message_iter_get_object_path_array) + (dbus_message_iter_append_object_path) + (dbus_message_iter_append_object_path_array): + Added object_path iter functions to handle OBJECT_PATH arguments + +2004-03-23 Owen Fraser-Green + + First checkin of mono bindings. + * configure.in: + * Makefile.am: + Build stuff for the bindings + * dbus-sharp.pc.in: Added for pkgconfig + +2004-03-21 Havoc Pennington + + * test/test-service.c (main): remove debug spew + +2004-03-21 Olivier Andrieu + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty + arrays + + * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init) + (dbus_message_iter_init_array_iterator) + (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to + indicate whether the iterator is empty + + * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler + warnings + +2004-03-19 Havoc Pennington + + * NEWS: 0.21 updates + + * configure.in: 0.21 + + * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED + + * python/Makefile.am: change to avoid dist of dbus_bindings.c so + you don't need pyrex to make dist + + * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to + sources; run moc + +2004-03-18 Richard Hult + + * dbus/dbus-message.c (dbus_message_get_auto_activation) + (dbus_message_set_auto_activation): Add doxygen docs. + +2004-03-16 Richard Hult + + * bus/activation.c: (bus_activation_service_created), + (bus_activation_send_pending_auto_activation_messages), + (bus_activation_activate_service): + * bus/activation.h: + * bus/dispatch.c: (bus_dispatch), + (check_nonexistent_service_auto_activation), + (check_service_auto_activated), + (check_segfault_service_auto_activation), + (check_existent_service_auto_activation), (bus_dispatch_test): + * bus/driver.c: (bus_driver_handle_activate_service): + * bus/services.c: (bus_registry_acquire_service): + * dbus/dbus-message.c: (dbus_message_set_auto_activation), + (dbus_message_get_auto_activation): + * dbus/dbus-message.h: + * dbus/dbus-protocol.h: Implement auto-activation. + + * doc/dbus-specification.xml: Add auto-activation to the spec. + +2004-03-12 Olivier Andrieu + + * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): + fix a bug with CUSTOM types. + + * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add + a unit test for this bug (used to fail). + +2004-03-12 Mikael Hallendal + + * bus/activation.c: + (babysitter_watch_callback): notify all pending activations waiting for + the same exec that the activation failed. + (bus_activation_activate_service): shortcut the activation if we + already waiting for the same executable to start up. + +2004-03-12 Mikael Hallendal + + * bus/activation.c: + - Added service file reloading. + Each service files directory is kept in an hash table in + BusActivation and each BusActivationEntry knows what .service-file it + was read from. So when you try to activate a service the bus will + check if it's been updated, removed or if new .service-files has + been installed. + - Test code at the bottom for the service file reloading. + * bus/test-main.c: (main): + * bus/test.h: + - added service reloading test. + * dbus/dbus-sysdeps.c: + * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added. + +2004-03-08 Michael Meeks + + * dbus/dbus-connection.c (_dbus_connection_block_for_reply): + bail immediately if disconnected, to avoid busy loop. + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): + cleanup cut/paste/inefficiency. + +2004-03-01 David Zeuthen + + * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a + bug where args were used twice. This bug resulted in a segfault + on a Debian/PPC system when starting the messagebus daemon. Include + dbus-sysdeps.h for DBUS_VA_COPY + + * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib + + * configure.in: Check for va_copy; define DBUS_VA_COPY to the + appropriate va_copy implementation. From GLib + +2004-02-24 Joe Shaw + + * bus/services.c (bus_registry_acquire_service): We need to pass + in the service name to dbus_set_error() to prevent a crash. + +2003-12-26 Anders Carlsson + + * AUTHORS: Reveal my True identity. + +2003-12-17 Mikael Hallendal + + * dbus/dbus-message.c: (dbus_message_append_args_valist): + - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg. + +2003-12-13 Mikael Hallendal + + * doc/TODO: Added not about better error check of configuration files. + +2003-12-02 Richard Hult + + * Update AFL version to 2.0 throughout the source files to reflect + the update that was done a while ago. + +2003-12-02 Richard Hult + + * dbus/dbus-message.c (dbus_message_iter_append_dict): Set + wrote_dict_key to FALSE on the iter that the dict is appended to, + just like when appending other types. Fixes a bug where a dict + couldn't be put inside a dict. + (dbus_message_iter_append_dict_key): Fix typo in warning message. + (message_iter_test, _dbus_message_test): Add test case for dict + inside dict. + +2003-12-01 David Zeuthen + + * python/dbus.py: Add the actual message when calling the reciever + of a signal such that parameters can be inspected. Add the method + remove_signal_receiver + +2003-11-26 Mikael Hallendal + + * bus/*.[ch]: + * dbus/*.[ch]: + * glib/*.[ch]: Made ref functions return the pointer + +2003-11-25 Zack Rusin + + * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer, + + * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer + wrappers, + + * qt/connection.h, qt/connection.cpp: Adjusting to changes in + the Integrator and to better fit with the server, + +2003-11-24 Zack Rusin + + * qt/connection.h, qt/connection.cpp: removing initDbus method since + the integrator handles it now + + * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts, + since QTimer wasn't really meant to be used the way DBusTimeout is + +2003-11-24 Zack Rusin + + * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding + Integrator class which integrates D-BUS with the Qt event loop, + + * qt/connection.h, qt/connection.cpp: Move all the code which + was dealing with D-BUS integration to the Integrator class, + and start using Integrator, + +2003-11-23 Zack Rusin + + * qt/connection.h, qt/connection.cpp: Adding the DBusConnection + wrapper + + * qt/message.h, qt/message.cpp: updating to the current D-BUS api, + switching namespaces to DBusQt, reworking the class, + + * Makefile.cvs: switching dependencies so that it matches KDE + schematics, + + * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to + the library + +2003-11-19 Havoc Pennington + + * NEWS: update + + * configure.in: bump version to 0.20 + + * configure.in (have_qt): add yet another place to look for qt + (someone hand trolltech a .pc file...) + +2003-11-01 Havoc Pennington + + * doc/dbus-specification.xml: add state machine docs on the auth + protocol; just a first draft, I'm sure it's wrong. + +2003-10-28 David Zeuthen + + * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries + return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h + +2003-10-28 Havoc Pennington + + * dbus/dbus-message.c (get_next_field): delete unused function + +2003-10-28 Havoc Pennington + + * bus/expirelist.c (do_expiration_with_current_time): detect + failure of the expire_func due to OOM + + * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM + + * bus/dispatch.c (check_send_exit_to_service): fix to handle the + NoReply error that's now created by the bus when the service exits + +2003-10-28 Havoc Pennington + + * dbus/dbus-message.c (_dbus_message_test): enable and fix the + tests for set_path, set_interface, set_member, etc. + + * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes + + * dbus/dbus-message.c (set_string_field): always just delete and + re-append the field; accept NULL for deletion + (re_align_fields_recurse): reimplement + +2003-10-26 Havoc Pennington + + * dbus/dbus-connection.c: fix docs to properly describe the + disconnected message + (_dbus_connection_notify_disconnected): remove this function; + we can't synchronously add the disconnected message, we have to + do it after we've queued any remaining real messages + (_dbus_connection_get_dispatch_status_unlocked): queue the + disconnect message only if the transport has finished queueing all + its real messages and is disconnected. + (dbus_connection_disconnect): update the dispatch status here + +2003-10-22 Havoc Pennington + + * bus/bus.c (bus_context_check_security_policy): fix up assertion + + * bus/connection.c (bus_transaction_send_from_driver): set the + destination to the connection's base service + +2003-10-20 Havoc Pennington + + hmm, make check is currently not passing. + + * doc/dbus-specification.xml: add requirement that custom type + names follow the same rules as interface names. + + * dbus/dbus-protocol.h: change some of the byte codes, to avoid + duplication and allow 'c' to be 'custom'; dict is now 'm' for + 'map' + + * doc/dbus-specification.xml: update type codes to match + dbus-protocol.h, using the ASCII byte values. Rename type NAMED to + CUSTOM. Add type OBJECT_PATH to the spec. + +2003-10-17 Havoc Pennington + + * bus/driver.c (create_unique_client_name): use "." as separator + in base service names instead of '-' + + * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul + byte at the end of the string + + * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add + optimization macros since string validation seems to be a slow + point. + + * doc/dbus-specification.xml: restrict valid + service/interface/member/error names. Add test suite code for the + name validation. + + * dbus/dbus-string.c: limit service/interface/member/error names + to [0-9][A-Z][a-z]_ + + * dbus/dbus-connection.c (dbus_connection_dispatch): add missing + format arg to verbose spew + + * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of + memory, return instead of g_error + + * test/test-service.c (path_message_func): support emitting a + signal on request + + * dbus/dbus-bus.c (init_connections_unlocked): only fill in + activation bus type if DBUS_BUS_ACTIVATION was set; default to + assuming the activation bus was the session bus so that services + started manually will still register. + (init_connections_unlocked): fix so that in OOM situation we get + the same semantics when retrying the function + + * test/test-service.c (main): change to use path registration, to + test those codepaths; register with DBUS_BUS_ACTIVATION rather + than DBUS_BUS_SESSION + +2003-10-16 Havoc Pennington + + * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS + + * Makefile.am (GCOV_DIRS): remove "test", we don't care about test + coverage of the tests + (coverage-report.txt): don't move the .da and .bbg files around + +2003-10-16 Havoc Pennington + + * bus/bus.c (struct BusContext): remove struct field I didn't mean + to put there + +2003-10-16 Havoc Pennington + + * bus/connection.c (bus_pending_reply_expired): either cancel or + execute, not both + (bus_connections_check_reply): use unlink, not remove_link, as we + don't want to free the link; fixes double free mess + + * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case + where no reply was received + + * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock): + fix a refcount leak + + * bus/signals.c (match_rule_matches): add special cases for the + bus driver, so you can match on sender/destination for it. + + * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if + DBUS_PRINT_BACKTRACE is set + + * dbus/dbus-internals.c: add pid to assertion failure messages + + * dbus/dbus-connection.c: add message type code to the debug spew + + * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want + sender=foo not service=foo + + * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the + session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use + DBUS_ACTIVATION_ADDRESS instead + + * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS, + DBUS_SYSTEM_BUS_ADDRESS if appropriate + + * bus/bus.c (bus_context_new): handle OOM copying bus type into + context struct + + * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function + (dbus_message_iter_get_object_path_array): new function (half + finished, disabled for the moment) + + * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle + DBUS_MESSAGE_TYPE_ERROR + + * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to + avoid redirecting stderr to /dev/null + (babysit): close stdin if not doing the "exit_with_session" thing + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover + debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not + stdout/stdin, so things don't get confused + + * bus/system.conf.in: fix to allow replies, I modified .conf + instead of .conf.in again. + +2003-10-14 David Zeuthen + + * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in + argtype to arg_type when raising unknown arg type exception. + Changed type list to reflect the changes in dbus-protocol.h so + the bindings actually work. + +2003-10-14 Havoc Pennington + + * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems + to have a bug keeping it from outputting the .da files sometimes + (string_get_string): don't append garbage nul bytes to the string. + +2003-10-15 Seth Nickell + + * python/Makefile.am: + + Include dbus_h_wrapper.h in the dist tarball. + +2003-10-14 Havoc Pennington + + * bus/bus.c (bus_context_check_security_policy): revamp this to + work more sanely with new policy-based requested reply setup + + * bus/connection.c (bus_transaction_send_from_driver): set bus + driver messages as no reply + + * bus/policy.c (bus_client_policy_check_can_receive): handle a + requested_reply attribute on allow/deny rules + + * bus/system.conf: add + + * bus/driver.c (bus_driver_handle_message): fix check for replies + sent to the bus driver, which was backward. How did this ever work + at all though? I think I'm missing something. + + * dbus/dbus-message.c (decode_header_data): require error and + method return messages to have a reply serial field to be valid + (_dbus_message_loader_queue_messages): break up this function; + validate that reply serial and plain serial are nonzero; + clean up the OOM/error handling. + (get_uint_field): don't return -1 from this + (dbus_message_create_header): fix signed/unsigned bug + + * bus/connection.c (bus_connections_expect_reply): save serial of + the incoming message, not reply serial + +2003-10-14 Havoc Pennington + + * bus/connection.c: implement pending reply tracking using + BusExpireList + + * bus/bus.c (bus_context_check_security_policy): verify that a + reply is pending in order to allow a reply to be sent. Deny + messages of unknown type. + + * bus/dbus-daemon-1.1.in: update to mention new resource limits + + * bus/bus.c (bus_context_get_max_replies_per_connection): new + (bus_context_get_reply_timeout): new + +2003-10-13 Seth Nickell + + * python/Makefile.am: + + Pass "make distcheck": remove a couple files from DIST_FILES + that weren't included in the final version. + +2003-10-12 Havoc Pennington + + Added test code that 1) starts an actual bus daemon and 2) uses + DBusGProxy; fixed bugs that were revealed by the test. Lots + more testing possible, but this is the basic framework. + + * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove + empty proxy lists from the proxy list hash + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a + couple of return_if_fail checks + + * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 + to allocate, so everything is cleared to NULL as it should be. + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass + source as data to dbus_connection_set_timeout_functions() as the + timeout functions expected + + * test/glib/run-test.sh: add a little script to start up a message + bus and run tests using it + + * tools/dbus-launch.1: updates + + * tools/dbus-launch.c (main): add --config-file option + + * tools/dbus-launch.c (main): remove confusing else if (runprog) + that could never be reached. + + * dbus/dbus-message.c (dbus_message_new_method_return) + (dbus_message_new_error, dbus_message_new_signal): set the + no-reply-expected flag on all these. Redundant, but may + as well be consistent. + +2003-10-11 Havoc Pennington + + * test/decode-gcov.c (function_solve_graph): make broken block + graph a nonfatal error since it seems to be broken. Need to debug + this. + + * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we + can't just check type > INVALID < LAST anymore + + * dbus/dbus-message.c (dbus_message_get_signature): new function + (dbus_message_has_signature): new function + (struct DBusMessage): add signature field (right now it isn't sent + over the wire, just generated on the fly) + (dbus_message_copy): copy the signature, and init strings to + proper length to avoid some reallocs + (dbus_message_iter_init_array_iterator): return void, since it + can't fail + (dbus_message_iter_init_dict_iterator): return void since it can't fail + (_dbus_message_loader_queue_messages): add silly temporary hack to + fill in message->signature on load + + * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII + characters, so they are relatively human-readable. + +2003-10-11 Havoc Pennington + + * dbus/dbus-message.c (_dbus_message_test): add more test + coverage, but #if 0 for now since they uncover a bug + not fixed yet; I think in re_align_field_recurse() + (re_align_field_recurse): add FIXME about broken assertion + + * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage + + * bus/connection.c: share a couple code bits with expirelist.c + + * bus/expirelist.h, bus/expirelist.c: implement a generic + expire-items-after-N-seconds facility, was going to share between + expiring connections and replies, decided not to use for expiring + connections for now. + + * COPYING: include AFL 2.0 (still need to change all the file headers) + +2003-10-09 Havoc Pennington + + * configure.in: define DBUS_HAVE_GCC33_GCOV if we have + gcc 3.3. Not that we do anything about it yet. + + * bus/signals.c (bus_match_rule_parse): impose max length on the + match rule text + + * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH + +2003-10-09 Havoc Pennington + + Make matching rules theoretically work (add parser). + + * bus/bus.c (bus_context_check_security_policy): fix up to handle + the case where destination is explicitly specified as bus driver + and someone else is eavesdropping. + + * bus/policy.c (bus_client_policy_check_can_receive): fix up + definition of eavesdropping and assertion + + * tools/dbus-send.c (main): use dbus_message_type_from_string + + * bus/signals.c (bus_match_rule_parse): implement + + * dbus/dbus-message.c (dbus_message_type_from_string): new + + * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add + +2003-10-02 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from + dbus_gproxy_oneway_call + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) + (dbus_server_setup_with_g_main): fix to allow calling them more + than once on the same args + (dbus_bus_get_with_g_main): new function + +2003-10-02 Havoc Pennington + + * doc/dbus-tutorial.xml: write some stuff + +2003-09-29 Havoc Pennington + + * configure.in: split checks for Doxygen from XML docs, check for + xmlto + + * doc/Makefile.am: XML-ify all the docs, and add a blank + dbus-tutorial.xml + +2003-09-29 Havoc Pennington + + * Merge dbus-object-names branch. To see the entire patch + do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names, + it's huuuuge though. + To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE. + +2003-09-28 Havoc Pennington + + * HACKING: update to reflect new server + +2003-09-26 Seth Nickell + + * python/dbus.py: + * python/examples/example-signals.py: + + Start implementing some notions of signals. The API + is really terrible, but they sort of work (with the + exception of being able to filter by service, and to + transmit signals *as* a particular service). Need to + figure out how to make messages come from the service + we registered :-( + + * python/dbus_bindings.pyx.in: + + Removed duplicate message_handler callbacks. + +2003-09-25 Havoc Pennington + + * bus/session.conf.in: fix my mess + +2003-09-25 Havoc Pennington + + * bus/session.conf.in: fix security policy, reported by Seth Nickell + +2003-09-25 Seth Nickell + + * python/examples/example-service.py: + + Johan notices complete wrong code in example-service, but + completely wrong in a way that works exactly the same (!). + Johan is confused, how could this possibly work? Example + code fails to serve purpose of making things clear. + Seth fixes. + +2003-09-25 Mark McLoughlin + + * doc/dbus-specification.sgml: don't require header fields + to be 4-byte aligned and specify that fields should be + distinguished from padding by the fact that zero is not + a valid field name. + + * doc/TODO: remove re-alignment item and add item to doc + the OBJECT_PATH type. + + * dbus/dbus-message.c: + (HeaderField): rename the original member to value_offset + and introduce a name_offset member to keep track of where + the field actually begins. + (adjust_field_offsets): remove. + (append_int_field), (append_uint_field), + (append_string_field): don't align the start of the header + field to a 4-byte boundary. + (get_next_field): impl finding the next marhsalled field + after a given field. + (re_align_field_recurse): impl re-aligning a number of + already marshalled fields. + (delete_field): impl deleting a field of any type and + re-aligning any following fields. + (delete_int_or_uint_field), (delete_string_field): remove. + (set_int_field), (set_uint_field): no need to re-check + that we have the correct type for the field. + (set_string_field): ditto and impl re-aligning any + following fields. + (decode_header_data): update to take into account that + the fields aren't 4-byte aligned any more and the new + way to distinguish padding from header fields. Also, + don't exit when there is too much header padding. + (process_test_subdir): print the directory. + (_dbus_message_test): add test to make sure a following + field is re-aligned correctly after field deletion. + + * dbus/dbus-string.[ch]: + (_dbus_string_insert_bytes): rename from insert_byte and + allow the insert of multiple bytes. + (_dbus_string_test): test inserting multiple bytes. + + * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add + warning note to docs about having to re-align any + marshalled values following the string. + + * dbus/dbus-message-builder.c: + (append_string_field), (_dbus_message_data_load): + don't align the header field. + + * dbus/dbus-auth.c: (process_test_subdir): print the + directory. + + * test/break-loader.c: (randomly_add_one_byte): upd. for + insert_byte change. + + * test/data/invalid-messages/bad-header-field-alignment.message: + new test case. + + * test/data/valid-messages/unknown-header-field.message: shove + a dict in the unknown field. + +2003-09-25 Seth Nickell + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + + Handle return values. + + * python/examples/example-client.py: + * python/examples/example-service.py: + + Pass back return values from the service to the client. + +2003-09-24 Seth Nickell + + * python/dbus.py: + + Connect Object methods (when you are sharing an object) up... pass + in a list of methods to be shared. Sharing all the methods just + worked out too weird. You can now create nice Services over the + DBus in Python. :-) + + * python/dbus_bindings.pyx.in: + + Keep references to user_data tuples passed into C functions so + Python doesn't garbage collect on us. + + Implement MethodReturn and Error subclasses of Message for creating + DBusMessage's of those types. + + * python/examples/example-client.py: + * python/examples/example-service.py: + + Simple example code showing both how create DBus services and objects, + and how to use them. + +2003-09-23 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement + +2003-09-23 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement + (dbus_gproxy_disconnect_signal): implement + (dbus_gproxy_manager_remove_signal_match): implement + (dbus_gproxy_manager_add_signal_match): implement + (dbus_gproxy_oneway_call): implement + +2003-09-23 Havoc Pennington + + * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject + subclass. This means dropping the transparent thread safety of the + proxy; you now need a separate proxy per-thread, or your own + locking on the proxy. Probably right anyway. + (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref + +2003-09-22 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement + +2003-09-21 Seth Nickell + + First checkin of the Python bindings. + + * python/.cvsignore: + * python/Makefile.am: + * python/dbus_bindings.pyx.in: + * python/dbus_h_wrapper.h: + + Pieces for Pyrex to operate on, building a dbus_bindings.so + python module for low-level access to the DBus APIs. + + * python/dbus.py: + + High-level Python module for accessing DBus objects. + + * configure.in: + * Makefile.am: + + Build stuff for the python bindings. + + * acinclude.m4: + + Extra macro needed for finding the Python C header files. + +2003-09-21 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start + implementing the proxy manager, didn't get very far. + + * dbus/dbus-bus.c (dbus_bus_add_match): new + (dbus_bus_remove_match): new + + * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a + path_name argument; adjust the other not-yet-implemented + gproxy constructors to be what I think they should be. + +2003-09-21 Havoc Pennington + + * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE + by default for message bus connections. + + * dbus/dbus-connection.c (dbus_connection_dispatch): exit if + exit_on_disconnect flag is set and we process the disconnected + signal. + (dbus_connection_set_exit_on_disconnect): new function + +2003-09-21 Havoc Pennington + + Get matching rules mostly working in the bus; only actually + parsing the rule text remains. However, the client side of + "signal connections" hasn't been started, this patch is only the + bus side. + + * dbus/dispatch.c: fix for the matching rules changes + + * bus/driver.c (bus_driver_handle_remove_match) + (bus_driver_handle_add_match): send an ack reply from these + method calls + + * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of + arguments, reported by Seth Nickell + + * bus/config-parser.c (append_rule_from_element): support + eavesdrop=true|false attribute on policies so match rules + can be prevented from snooping on the system bus. + + * bus/dbus-daemon-1.1.in: consistently use terminology "sender" + and "destination" in attribute names; fix some docs bugs; + add eavesdrop=true|false attribute + + * bus/driver.c (bus_driver_handle_add_match) + (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch + messages + + * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get + rid of broadcast service concept, signals are just always broadcast + + * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c: + mostly implement matching rules stuff (currently only exposed as signal + connections) + +2003-09-21 Mark McLoughlin + + * doc/dbus-specification.sgml: Change the header field name + to be an enum and update the rest of the spec to reference + the fields using the conventinal name. + + * dbus/dbus-protocol.h: update to reflect the spec. + + * doc/TODO: add item to remove the 4 byte alignment requirement. + + * dbus/dbus-message.c: Remove the code to generalise the + header/body length and serial number header fields as named + header fields so we can reference field names using the + protocol values. + (append_int_field), (append_uint_field), (append_string_field): + Append the field name as a byte rather than four chars. + (delete_int_or_uint_field), (delete_string_field): reflect the + fact that the field name and typecode now occupy 4 bytes instead + of 8. + (decode_string_field), (decode_header_data): update to reflect + protocol changes and move the field specific encoding from + decode_string_field() back into decode_header_data(). + + * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): + Add utility to aid debugging. + + * dbus/dbus-message-builder.c: + (append_string_field), (_dbus_message_data_load): Update to + reflect protocol changes; Change the FIELD_NAME directive + to HEADER_FIELD and allow it to take the field's conventional + name rather than the actual value. + + * test/data/*/*.message: Update to use HEADER_FIELD instead + of FIELD_NAME; Always align the header on an 8 byte boundary + *before* updating the header length. + +2003-09-15 Havoc Pennington + + * dbus/dbus-pending-call.c: add the get/set object data + boilerplate as for DBusConnection, etc. Use generic object data + for the notify callback. + + * glib/dbus-gparser.c (parse_node): parse child nodes + + * tools/dbus-viewer.c: more hacking on the dbus-viewer + + * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to + contain functions shared between the convenience lib and the + installed lib + + * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add + -export-symbols-regex to the GLib library + + * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock): + fix the locking in here, and add a default handler for + Introspect() that just returns sub-nodes. + +2003-09-14 Havoc Pennington + + * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo + rather than gfoo consistent + + * glib/dbus-gproxy.h: delete for now, move contents to + dbus-glib.h, because the include files don't work right since we + aren't in the dbus/ subdir. + + * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing + (dbus_gproxy_end_call): finish + (dbus_gproxy_begin_call): finish + + * glib/dbus-gmain.c (dbus_set_g_error): new + + * glib/dbus-gobject.c (handle_introspect): include information + about child nodes in the introspection + + * dbus/dbus-connection.c (dbus_connection_list_registered): new + function to help in implementation of introspection + + * dbus/dbus-object-tree.c + (_dbus_object_tree_list_registered_and_unlock): new function + +2003-09-12 Havoc Pennington + + * glib/dbus-gidl.h: add common base class for all the foo_info + types + + * tools/dbus-viewer.c: add GTK-based introspection UI thingy + similar to kdcop + + * test/Makefile.am: try test srcdir -ef . in addition to test + srcdir = ., one of them should work (yeah lame) + + * glib/Makefile.am: build the "idl" parser stuff as a convenience + library + + * glib/dbus-gparser.h: make description_load routines return + NodeInfo* not Parser* + + * Makefile.am (SUBDIRS): build test dir after all library dirs + + * configure.in: add GTK+ detection + +2003-09-07 Havoc Pennington + + * Make Doxygen contented. + +2003-09-07 Havoc Pennington + + * doc/dbus-specification.sgml: more updates + +2003-09-06 Havoc Pennington + + * doc/dbus-specification.sgml: partial updates + + * bus/dbus-daemon-1.1.in: fix the config file docs for the + zillionth time; hopefully I edited the right file this time. + + * bus/config-parser.c (append_rule_from_element): support + send_type, send_path, receive_type, receive_path + + * bus/policy.c: add message type and path to the list of things + that can be "firewalled" + +2003-09-06 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_register_fallback): add this + (dbus_connection_register_object_path): make this not handle + messages to paths below the given path + +2003-09-03 Havoc Pennington + + * test/glib/Makefile.am: add this with random glib-linked test + programs + + * glib/Makefile.am: remove the random test programs from here, + leave only the unit tests + + * glib/dbus-gobject.c (_dbus_gobject_test): add test for + uscore/javacaps conversion, and fix + (get_object_property, set_object_property): change to .NET + convention for mapping props to methods, set_FooBar/get_FooBar, + since one language has such a convention we may as well copy it. + Plus real methods in either getFooBar or get_foo_bar style won't + collide with this convention. + +2003-09-01 Havoc Pennington + + * glib/dbus-gparser.c: implement + + * glib/dbus-gobject.c: start implementing skeletons support + + * configure.in: when disabling checks/assert, also define + G_DISABLE_ASSERT and G_DISABLE_CHECKS + +2003-09-01 Havoc Pennington + + * glib/Makefile.am: rearrange a bunch of files and get "make + check" framework set up + +2003-08-31 Havoc Pennington + + * fix build with --disable-tests + +2003-08-30 Havoc Pennington + + * dbus/dbus-connection.c: purge DBusMessageHandler + + * dbus/dbus-message-handler.c: remove DBusMessageHandler, just + use callbacks everywhere + +2003-08-30 Havoc Pennington + + * test/data/valid-config-files/system.d/test.conf: change to + root for the user so warnings don't get printed + + * dbus/dbus-message.c: add dbus_message_get_path, + dbus_message_set_path + + * dbus/dbus-object-tree.c (do_test_dispatch): add test of + dispatching to a path + + * dbus/dbus-string.c (_dbus_string_validate_path): add + + * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement + (_dbus_marshal_object_path): implement + + * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field + to contain the path to the target object + (DBUS_HEADER_FIELD_SENDER_SERVICE): rename + DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service + +2003-08-30 Havoc Pennington + + * dbus/dbus-object-tree.c: write tests and fix the discovered bugs + +2003-08-29 Havoc Pennington + + * dbus/dbus-object-tree.c: modify to allow overlapping paths to be + registered + (struct DBusObjectSubtree): shrink this + a lot, since we may have a lot of them + (_dbus_object_tree_free_all_unlocked): implement + (_dbus_object_tree_dispatch_and_unlock): implement + +2003-08-29 Havoc Pennington + + * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS + +2003-08-28 Havoc Pennington + + purge DBusObjectID + + * dbus/dbus-connection.c: port to no ObjectID, create a + DBusObjectTree, rename ObjectTree to ObjectPath in public API + + * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete + everything except UnregisterFunction and MessageFunction + + * dbus/dbus-marshal.c: port away from DBusObjectID, + add DBUS_TYPE_OBJECT_PATH + + * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], + dbus/dbus-objectid.[hc]: remove these, we are moving to + path-based object IDs + +2003-08-25 Havoc Pennington + + Just noticed that dbus_message_test is hosed, I wonder when I + broke that. I thought make check was passing earlier... + + * dbus/dbus-object-tree.c: add new "object tree" to match DCOP + container tree, will replace most of dbus-object-registry + + * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99 + screwup + +2003-08-19 Havoc Pennington + + * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER + (dbus_message_is_error): fix this function + + * bus/dbus-daemon-1.1: clarify logic on when / rules + match + + * bus/policy.c (bus_client_policy_check_can_receive): fix code to + reflect clarified man page + (bus_client_policy_check_can_send): ditto + + * bus/session.conf.in: fixup + + * bus/system.conf.in: fixup + +2003-08-18 Havoc Pennington + + * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix + dumb bug created earlier (wrong order of args to + decode_header_data()) + + * tools/dbus-send.c: port + + * tools/dbus-print-message.c (print_message): port + + * test/data/*messages: port all messages over + + * dbus/dbus-message-builder.c: support including + message type + + * bus/driver.c: port over + + * bus/dispatch.c: port over to new stuff + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + rename disconnect signal to "Disconnected" + +2003-08-17 Havoc Pennington + + This doesn't compile yet, but syncing up so I can hack on it from + work. What are branches for if not broken code? ;-) + + * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add + DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER, + DBUS_HEADER_FIELD_ERROR_NAME + + * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use + for the interface+member pairs + (string_hash): change to use g_str_hash algorithm + (find_direct_function, find_string_function): refactor these to + share most code. + + * dbus/dbus-message.c: port all of this over to support + interface/member fields instead of name field + + * dbus/dbus-object-registry.c: port over + + * dbus/dbus-string.c (_dbus_string_validate_interface): rename + from _dbus_string_validate_name + + * bus/dbus-daemon-1.1: change file format for the + / stuff to match new message naming scheme + + * bus/policy.c: port over + + * bus/config-parser.c: parse new format + +2003-08-16 Havoc Pennington + + * dbus/dbus-object-registry.c (add_and_remove_objects): remove + broken assertion + + * glib/dbus-gproxy.c: some hacking + +2003-08-15 Havoc Pennington + + * dbus/dbus-pending-call.c (dbus_pending_call_block): implement + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): factor out internals; + change to convert any error replies to DBusError instead of + returning them as a message + +2003-08-15 Havoc Pennington + + * dbus/dbus-connection.c, + dbus/dbus-pending-call.c: Finish the pending call stuff + +2003-08-14 Havoc Pennington + + * dbus/dbus-pending-call.c: start on new object that will replace + DBusMessageHandler and ReplyHandlerData for tracking outstanding + replies + + * dbus/dbus-gproxy.c: start on proxy object used to communicate + with remote interfaces + + * dbus/dbus-gidl.c: do the boring boilerplate in here + +2003-08-12 Havoc Pennington + + * bus/dispatch.c (bus_dispatch): make this return proper + DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD + + * dbus/dbus-errors.c (dbus_set_error): use + _dbus_string_append_printf_valist + + * dbus/dbus-string.c (_dbus_string_append_printf_valist) + (_dbus_string_append_printf): new + + * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to + UNKNOWN_METHOD + + * dbus/dbus-connection.c (dbus_connection_dispatch): handle + DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a + message is unhandled. + +2003-08-11 Havoc Pennington + + * bus/test.c (client_disconnect_handler): change to return + HANDLED (would have been REMOVE_MESSAGE) + + * dbus/dbus-object.h (enum DBusHandlerResult): rename to + HANDLED/NOT_YET_HANDLED instead of + REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it + should be used. + +2003-08-10 Havoc Pennington + + * tools/dbus-send.c (main): add --type argument, for now + supporting only method_call and signal types. + + * tools/dbus-print-message.c: print message type + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + init connection->objects + + * doc/dbus-specification.sgml: fix sgml + + * bus/*.c: port over to object-instance API changes + + * test/test-service.c: ditto + + * dbus/dbus-message.c (dbus_message_create_header): allow #NULL + name, we will have to fix up the rest of the code to also handle + this + (dbus_message_new): generic message-creation call + (set_string_field): allow appending name field + +2003-08-06 Havoc Pennington + + * dbus/dbus-object-registry.c: implement signal connection + and dispatch + + * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new + + * dbus/dbus-internals.c (_dbus_memdup): new function + +2003-08-02 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_get_no_reply) + (dbus_message_set_no_reply): add these and remove + set_is_error/get_is_error + + * dbus/dbus-protocol.h, doc/dbus-specification.sgml: + remove the ERROR flag, since there's now an ERROR type + +2003-08-01 Havoc Pennington + + * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): + implement + + * dbus/dbus-message.c (dbus_message_get_type): new function + + * doc/dbus-specification.sgml: add "type" byte to messages + +2003-08-01 Havoc Pennington + + * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce + a message type enum to distinguish kinds of message + (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message + that need not be replied to + +2003-08-01 Havoc Pennington + + * dbus/dbus-marshal.c: adapt to DBusObjectID changes + (unpack_8_octets): fix no-64-bit-int bug + + * dbus/dbus-object-registry.c (validate_id): validate the + connection ID bits, not just the instance ID. + + * dbus/dbus-connection.c (_dbus_connection_init_id): initialize + the connection-global 33 bits of the object ID + + * dbus/dbus-object-registry.c (info_from_entry): fill in + object ID in the new way + + * dbus/dbus-objectid.h: rather than high/low bits, specifically + define server/client/instance bits. + +2003-07-30 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_register_object): fix + build + +2003-07-13 Havoc Pennington + + * dbus/dbus-object.h (struct DBusObjectVTable): add padding + fields to DBusObjectVTable and DBusObjectInfo + +2003-07-12 Havoc Pennington + + * dbus/dbus-object-registry.c: implement unit test, + fix bugs discovered in process + + * dbus/dbus-connection.c: remove handler_table and + register_handler(), add DBusObjectRegistry usage + + * dbus/dbus-objectid.c (dbus_object_id_is_null) + (dbus_object_id_set_null): new functions + +2003-07-08 Havoc Pennington + + * dbus/dbus-object.c: implement some of this + + * dbus/dbus-object-registry.c + (_dbus_object_registry_add_and_unlock): fill in the object_id out + param + (_dbus_object_registry_new): handle OOM + +2003-07-08 Havoc Pennington + + * dbus/dbus-object.h: sketch out an API for registering objects + with a connection, that allows us to use as little as 24 bytes + per object and lets application code represent an object in + any conceivable way. + + * dbus/dbus-object-registry.c: implement the hard bits of the + DBusConnection aspect of object API. Not yet wired up. + +2003-07-06 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function + (_dbus_marshal_object_id): new + (_dbus_demarshal_object_id): new + (_dbus_marshal_get_arg_end_pos): support object ID type, and + consolidate identical switch cases. Don't conditionalize handling + of DBUS_TYPE_UINT64, need to handle the type always. + (_dbus_marshal_validate_arg): consolidate identical cases, and + handle DBUS_TYPE_OBJECT_ID + + * dbus/dbus-objectid.c: new file with DBusObjectID data type. + + * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID + +2003-09-28 Havoc Pennington + + * real 0.13 release + +2003-09-28 Havoc Pennington + + * doc/Makefile.am (dbus-specification.html): testing a funky hack + to work with Debian db2html + +2003-09-28 Havoc Pennington + + * configure.in: 0.13 + + * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of + stylesheet-images for benefit of Debian + + Change back to using filesystem-linked sockets for the system + bus, so only root can create the default system bus address. + + * bus/system.conf.in: change to use + DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + + * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define + from here. + + * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + here, and AC_DEFINE DBUS_SYSTEM_PATH + +2003-08-09 Anders Carlsson + + * doc/TODO: + * doc/busconfig.dtd: + Add busconfig DTD. + +2003-08-09 Anders Carlsson + + * doc/dbus-specification.sgml: + Add activation reply values. + +2003-08-05 Havoc Pennington + + * configure.in: 0.12 + +2003-08-05 Anders Carlsson + + * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref), + (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch), + (add_watch), (remove_watch), (create_source): + Refcount fds, fixes some reentrancy issues. + +2003-07-30 Havoc Pennington + + * dbus/dbus-bus.c (init_connections_unlocked): fix default system + bus address to be abstract if we have abstract sockets + + * NEWS: update + +2003-07-28 Havoc Pennington + + * bus/messagebus.in: fix to avoid processname/servicename + confusion, from Michael Kearey + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965 + +2003-07-23 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_iter_get_named): + fix from Andy Hanton to remove broken "+1" + +2003-07-16 Havoc Pennington + + * tools/dbus-launch.c (babysit): close stdout/stderr in the + babysitter process, as suggested by Thomas Leonard, so + an "eval `dbus-launch --exit-with-session`" will actually + return + +2003-07-16 Havoc Pennington + + * configure.in: print out EXPANDED_* variables in the summary at + the end; clean up the code that computes EXPANDED_ variables and + get the ones using exec_prefix right. Should make things work + when you build without --prefix + +2003-06-29 Havoc Pennington + + * mono/Test.cs (class Test): fire up a main loop and run it + + * mono/DBus.cs (DBus): don't g_thread_init since it can only be + done once, the app has to do it + +2003-06-26 Havoc Pennington + + * mono/Connection.cs: set up connection with the glib main loop + +2003-07-01 Havoc Pennington + + * doc/dbus-specification.sgml: clarify the format of a type code, + change suggested by Jim Blandy + +2003-06-29 Miloslav Trmac + + * doc/Makefile.am: + * tools/Makefile.am: Don't assume srcdir == builddir. + + * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking + the allocated block. + (_dbus_memory_test): New function. + * dbus/dbus-test.h: Add _dbus_memory_test (). + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it. + + * dbus/dbus-message.c (decode_header_data): Use %.4s instead + of %c%c%c%c. + (dbus_message_new): Remove obsolete @todo. + + * dbus/dbus-marshal.c (_dbus_marshal_set_int64) + (_dbus_marshal_set_uint64): Fix comment. + + * dbus/dbus-message.c (append_int_field, append_uint_field): Don't + hardcode FIELD_REPLY_SERIAL. + + * dbus/dbus-mainloop.c (_dbus_loop_remove_watch) + (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p + + * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS + and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used + +2003-06-24 Havoc Pennington + + * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0) + +2003-06-23 Anders Carlsson + + * configure.in: + * gcj/.cvsignore: + * gcj/Hello.java: + * gcj/Makefile.am: + * gcj/TestMessage.java: (TestMessage), (TestMessage.main): + * gcj/org/.cvsignore: + * gcj/org/Makefile.am: + * gcj/org/freedesktop/.cvsignore: + * gcj/org/freedesktop/Makefile.am: + * gcj/org/freedesktop/dbus/.cvsignore: + * gcj/org/freedesktop/dbus/Makefile.am: + * gcj/org/freedesktop/dbus/Message.java: (Message), + (Message.Message): + * gcj/org/freedesktop/dbus/natMessage.cc: + Fix the build system. + +2003-06-22 Havoc Pennington + + * mono/Connection.cs: add more bindings + + * dbus/dbus-threads.c (dbus_threads_init): allow calling this + more than once. + +2003-06-22 Havoc Pennington + + * mono/Connection.cs, mono/DBus.cs, mono/Error.cs: + Start wrapping more stuff. + +2003-06-22 Havoc Pennington + + * mono/Message.cs: implement Message.Wrap() that ensures we only + have a single C# wrapper per DBusMessage, assuming it works which + it probably doesn't. + + * dbus/dbus-message.c (dbus_message_allocate_data_slot): new + (dbus_message_free_data_slot): new + (dbus_message_set_data): new + (dbus_message_get_data): new + +2003-06-22 Havoc Pennington + + * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref) + (_dbus_data_slot_allocator_alloc): rework these to keep a + reference count on each slot and automatically manage a global + slot ID variable passed in by address + + * bus/bus.c: convert to new dataslot API + + * dbus/dbus-bus.c: convert to new dataslot API + + * dbus/dbus-connection.c: convert to new dataslot API + + * dbus/dbus-server.c: convert to new dataslot API + + * glib/dbus-gmain.c: ditto + + * bus/test.c: ditto + + * bus/connection.c: ditto + +2003-06-22 Anders Carlsson + + * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL + after the gcj checks so that the correct configuration tags + will be added to libtool. + + * dbus-glib-1.pc.in: No need to specify any includes since + dbus-1.pc.in has those. + +2003-06-22 Havoc Pennington + + * mono/*, gcj/*, configure.in, Makefile.am: + Check in makefiles and subdirs for mono and gcj bindings. + Neither binding actually exists, just trying to get through + all the build and other boring bits. + +2003-06-21 Philip Blundell + + * tools/dbus-monitor.1: Updated. + + * tools/dbus-send.1: Likewise. + +2003-06-20 Anders Carlsson + + * dbus/dbus-transport-unix.c (unix_handle_watch): Check + for hangup and error after checking read so we won't discard + pending data if both hangup and read are set. + +2003-06-19 Philip Blundell + + * tools/dbus-print-message.c (print_message): Handle BOOLEAN. + + * tools/dbus-send.c: Accept both --system and --session. + + * tools/dbus-monitor.c: Same here. + +2003-06-19 Anders Carlsson + + * glib/dbus-glib.h: Fix so that dbus-glib.h can be used + from C++ (Patch by Miloslav Trmac). + +2003-06-15 Joe Shaw + + * configure.in: Check for socklen_t. + + * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined. + + * test/test-segfault.c: Add #include + + * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since + dbus-launch needs it. + +2003-06-09 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use + SUN_LEN, it breaks abstract socket usage + + * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at + starts of lines. + +2003-06-04 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets + using unix:abstract=/foo, and when listening in a tmpdir + i.e. unix:tmpdir=/tmp, always use abstract sockets if we can. + + * dbus/dbus-transport.c (_dbus_transport_open): support + unix:abstract=/foo + + * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): + support abstract sockets + + * dbus/dbus-transport-unix.c + (_dbus_transport_new_for_domain_socket): support abstract sockets + + * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract" + toggle as an argument, implement abstract namespace support + (_dbus_listen_unix_socket): ditto + + * configure.in: add --enable-abstract-sockets and implement + a configure check for autodetection of the right value. + +2003-06-01 Havoc Pennington + + * tools/dbus-cleanup-sockets.c: add utility to clean up sockets + in /tmp (though on Linux this will end up being useless, + when we add abstract namespace support) + + * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to + subst'ing it + +2003-05-28 Colin Walters + + * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/). + +2003-05-18 Anders Carlsson + + * dbus/dbus-message.c (dbus_message_new): Remove @todo. + +2003-05-17 Colin Walters + + * tools/dbus-send.c: Don't exit with an error code if --help was + passed. Default to using the session bus instead of the system + one. + + * tools/dbus-launch.c: Ditto. + + * tools/dbus-monitor.c: Ditto. + + * tools/dbus-send.1: Update with new arguments. + + * tools/dbus-launch.c: Emit code to export variables. New + arguments -s and -c to specify shell syntax, and a bit of code to + autodetect syntax. Also, allow specifying a program to run. + + * tools/dbus-launch.1: Update with new arguments. + + * tools/dbus-send.1: Ditto. + + * tools/dbus-monitor.1: Ditto. + +2003-05-17 Havoc Pennington + + * bus/config-parser.c (merge_included): merge in policies from + child configuration file. + + * bus/policy.c (bus_policy_merge): function to merge two policies + together + +2003-05-16 Havoc Pennington + + * dbus/dbus-connection.c: disable verbose lock spew + + * tools/dbus-send.c: add --print-reply command line option + + * tools/dbus-print-message.h (print_message): new util function + shared by dbus-send and dbus-monitor + + * tools/dbus-monitor.c (handler_func): exit on disconnect + + * dbus/dbus-transport-unix.c (do_reading): if the transport is + disconnected, don't try to use the read_watch + + * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL + so we can find this bug more easily + +2003-05-16 Havoc Pennington + + * bus/policy.c (free_rule_list_func): avoid a crash when passed + NULL as DBusHashTable is annoyingly likely to do. + +2003-05-16 Colin Walters + + * tools/dbus-monitor.c: Add --session argument and usage() + function. + + * tools/dbus-monitor.1: Update with new --session arg. + + * bus/Makefile.am (install-data-hook): Create + $(libdir)/dbus-1.0/services so that the session bus is happy. + +2003-05-15 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work + on non-x86. ifdef's are evil. + +2003-05-15 Havoc Pennington + + * configure.in: 0.11 + + * NEWS: update + + * bus/Makefile.am (initddir): apparently we are supposed to put + init scripts in /etc/rc.d/init.d not /etc/init.d + + * bus/Makefile.am: remove the "you must --enable-tests to make + check" as it broke distcheck + + * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d + +2003-05-13 James Willcox + + * configure.in: + * bus/activation.c: (bus_activation_service_created), + (bus_activation_activate_service): + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services): + * bus/session.conf.in: + * dbus/dbus-bus.c: (dbus_bus_acquire_service), + (dbus_bus_service_exists), (dbus_bus_activate_service): + * dbus/dbus-bus.h: + + Add some convenience API which lets you activate a service, and did a + bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args() + and dbus_message_get_args() + +2003-05-11 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid + calling _dbus_marshal_validate_arg() for every byte in a byte + array, etc. + + * dbus/dbus-message-handler.c: use atomic reference counting to + reduce number of locks slightly; the global lock in here sucks + + * dbus/dbus-connection.c + (_dbus_connection_update_dispatch_status_and_unlock): variant of + update_dispatch_status that can be called with lock held; then use + in a couple places to reduce locking/unlocking + (dbus_connection_send): hold the lock over the whole function + instead of acquiring it twice. + + * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM + + * bus/connection.c (bus_connections_setup_connection): fix access + to already-freed memory. + + * dbus/dbus-connection.c: keep a little cache of linked list + nodes, to avoid using the global linked list alloc lock in the + normal send-message case. Instead we just use the connection lock + that we already have to take. + + * dbus/dbus-list.c (_dbus_list_find_last): new function + + * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): + change to use a struct for the atomic type; fix docs, + they return value before increment, not after increment. + + * dbus/dbus-string.c (_dbus_string_append_4_aligned) + (_dbus_string_append_8_aligned): new functions to try to + microoptimize this operation. + (reallocate_for_length): break this out of set_length(), to + improve profile info, and also so we can consider inlining the + set_length() part. + + * dbus/dbus-message.c (dbus_message_new_empty_header): init data + strings with some preallocation, cuts down on our calls to realloc + a fair bit. Though if we can get the "move entire string to empty + string" optimization below to kick in here, it would be better. + + * dbus/dbus-string.c (_dbus_string_move): just call + _dbus_string_move_len + (_dbus_string_move_len): add a special case for moving + an entire string into an empty string; we can just + swap the string data instead of doing any reallocs. + (_dbus_string_init_preallocated): new function + +2003-05-11 Havoc Pennington + + Write a "test-profile" that does echo client-server with threads; + profile reveals lock contention, memcpy/realloc of buffers, and + UTF-8 validation as hot spots. 20% of lock contention eliminated + with dbus_atomic_inc/dec implementation on x86. Much remaining + contention is global mempool locks for GList and DBusList. + + * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add + x86 implementation + + * dbus/dbus-connection.c (struct DBusConnection): use + dbus_atomic_t for the reference count + + * dbus/dbus-message.c (struct DBusMessage): declare + dbus_atomic_t values as volatile + + * configure.in: code to detect ability to use atomic integer + operations in assembly, from GLib patch + + * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every + time, tired of it being wrong in threads and forked processes + + * glib/test-profile.c: a little program to bounce messages back + and forth between threads and eat CPU + + * dbus/dbus-connection.c: add debug spew macros for debugging + thread locks; include config.h at top; fix deadlock in + dbus_connection_flush() + +2003-05-08 Havoc Pennington + + * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov + data from getting written, and there wasn't a good reason to + use _exit really. + + * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count + dbus_verbose lines in test coverage + (main): add list of functions sorted by # of untested blocks + to the coverage report + + * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS + + * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage + + * dbus/dbus-message-handler.c (_dbus_message_handler_test): + extend test coverage + + * test/data/auth/cancel.auth-script: test canceling an + authentication + + * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they + aren't used. in CVS history if we end up needing them. + +2003-05-04 Havoc Pennington + + * dbus/dbus-message-handler.c (_dbus_message_handler_test): add + unit test + + * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this + function, which assumed length was in # of strings, not bytes + + * dbus/dbus-message.c (_dbus_message_test): add tests for some + missing coverage + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message): disable function for + now, we are only using it in test mode + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): + remove a mistaken FIXME + +2003-05-04 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_preallocate_send): + unlock mutex on successful return, patch from Anders Gustafsson + +2003-05-04 Havoc Pennington + + * dbus-glib-1.pc.in (Requires): fix dependencies, from + Anders Gustafsson + +2003-05-04 Havoc Pennington + + * tools/dbus-launch.c: implement + + * bus/main.c (main), bus/bus.c (bus_context_new): + implement --print-pid and --fork + +2003-05-03 Havoc Pennington + + * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in + the address had no value, and add to test suite. Fix and + regression test from Miloslav Trmac + +2003-05-03 Havoc Pennington + + * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a + watch is invalid when handled + + * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add + dbus-launch utility to launch the bus from a shell script. Didn't + actually implement dbus-launch yet, it's just a placeholder still. + +2003-05-03 Havoc Pennington + + * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the + daemon; also documents daemon config file, so replaces + doc/config-file.txt. Corrected some stuff from config-file.txt in + the process of moving it. + +2003-05-03 Havoc Pennington + + * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: + add some man pages + +2003-05-03 Colin Walters + + * dbus/dbus-sysdeps.c (fill_user_info): Test against + DBUS_UID_UNSET to determine whether to do a uid lookup or not. + + * Makefile.am: Update to use new .pc versioning scheme. + +2003-05-02 Havoc Pennington + + * bus/system.conf.in: allow send/receive to/from message bus + service + +2003-04-30 Havoc Pennington + + * configure.in: print a note when building with unit tests and + without assertions + +2003-04-30 Havoc Pennington + + * Makefile.am: add a check-local that complains if you didn't + configure with --enable-tests + +2003-04-29 Havoc Pennington + + * glib/dbus-gmain.c: docs cleanups + + * dbus/dbus-types.h: add docs on int64 types + + * dbus/dbus-memory.c: fix docs to avoid putting private API in + public API docs section + +2003-04-29 Havoc Pennington + + * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from + dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the + parallel install API version, not with the D-BUS package version. + + * HACKING: move some of README over here + + * README: updates, and document API/ABI policy + + * configure.in: reindentation + +2003-04-29 Havoc Pennington + + * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE + to use this library" to be sure people have the right + expectations. + +2003-04-28 Havoc Pennington + + * configure.in: add --enable-docs which by default is auto yes if + doxygen and db2html found, no otherwise; but can be forced on/off + + * doc/Makefile.am: conditionalize whether to build docs on + --enable-docs + +2003-04-28 Havoc Pennington + + * configure.in: 0.10 + + * NEWS: update + + * bus/system.conf.in: add system.d + + * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when + username was provided but not uid + + * bus/config-parser.c (struct BusConfigParser): keep track of + whether the parser is toplevel or was included; change some + of the error handling if it's included. + +2003-04-27 Havoc Pennington + + Unbreak my code... + + * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): + report correct status if we finish processing authentication + inside this function. + + * bus/activation.c (try_send_activation_failure): use + bus_transaction_send_error_reply + + * bus/connection.c (bus_connection_get_groups): return an error + explaining the problem + + * bus/bus.c (bus_context_check_security_policy): implement + restriction here that inactive connections can only send the + hello message. Also, allow bus driver to send anything to + any recipient. + + * bus/connection.c (bus_connection_complete): create the + BusClientPolicy here instead of on-demand. + (bus_connection_get_policy): don't return an error + + * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL + sender field in message being replied to + + * bus/bus.c (bus_context_check_security_policy): fix silly typo + causing it to return FALSE always + + * bus/policy.c (bus_client_policy_check_can_send): fix bug where + we checked sender rather than destination + +2003-04-25 Havoc Pennington + + test suite is slightly hosed at the moment, will fix soon + + * bus/connection.c (bus_connections_expire_incomplete): fix to + properly disable the timeout when required + (bus_connection_set_name): check whether we can remove incomplete + connections timeout after we complete each connection. + + * dbus/dbus-mainloop.c (check_timeout): fix this up a bit, + probably still broken. + + * bus/services.c (bus_registry_acquire_service): implement max + number of services owned, and honor allow/deny rules on which + services a connection can own. + + * bus/connection.c (bus_connection_get_policy): report errors here + + * bus/activation.c: implement limit on number of pending + activations + +2003-04-25 Havoc Pennington + + * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug + where we used >= 0 instead of != DBUS_UID_UNSET. + +2003-04-25 Havoc Pennington + + * glib/dbus-gmain.c (remove_watch): fix for a crash when watches + were toggled without add/remove, fix from Anders Gustafsson + +2003-04-24 Havoc Pennington + + * test/data/valid-config-files/basic.conf: add tags to + this test + + * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement + tag in configuration file. + +2003-04-24 Havoc Pennington + + * bus/dispatch.c: somehow missed some name_is + + * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) + (_dbus_timeout_set_interval): new + + * bus/connection.c (bus_connections_setup_connection): record time + when each connection is first set up, and expire them after the + auth timeout passes. + +2003-04-24 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_name_is): rename + (dbus_message_service_is): rename + (dbus_message_sender_is): rename + (dbus_message_get_service): rename + +2003-04-24 Havoc Pennington + + * configure.in: add --enable-checks + + * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments + + * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix + to use thread locks. + (_dbus_connection_handler_destroyed_locked): move some private + functions into proper docs group + + * dbus/dbus-internals.h: add _dbus_return_if_fail, + _dbus_return_val_if_fail + + Throughout: use dbus_return_if_fail + +2003-04-23 James Willcox + + * glib/dbus-glib.h: + * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source), + (dbus_connection_setup_with_g_main), + (dbus_server_setup_with_g_main): + * glib/test-dbus-glib.c: (main): + * glib/test-thread-client.c: (main): + * glib/test-thread-server.c: (new_connection_callback), (main): + * tools/dbus-monitor.c: (main): + + Added a GMainContext argument to dbus_connection_setup_with_g_main() + and dbus_server_setup_with_g_main(). + +2003-04-20 Havoc Pennington + + * doc/dbus-specification.sgml: document the restrictions on + message and service names + +2003-04-22 Havoc Pennington + + * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer + support, and do some code cleanups to share more code and + speed up array marshal/demarshal. + + * dbus-1.0.pc.in (Cflags): put libdir include file in cflags + + * configure.in: generate dbus-arch-deps.h + + * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add + 64-bit typecodes + +2003-04-22 Havoc Pennington + + * test/data/valid-messages/opposite-endian.message: fix test + to use proper type for rply field + + * test/data/invalid-messages: add tests for below validation + + * dbus/dbus-message.c (decode_header_data): validate field types, + and validate that named fields are valid names + (decode_name_field): consider messages in the + org.freedesktop.Local. namespace to be invalid. + + * dbus/dbus-string.c (_dbus_string_validate_name): new + +2003-04-19 Havoc Pennington + + * bus/driver.c (bus_driver_handle_hello): check limits and + return an error if they are exceeded. + + * bus/connection.c: maintain separate lists of active and inactive + connections, and a count of each. Maintain count of completed + connections per user. Implement code to check connection limits. + + * dbus/dbus-list.c (_dbus_list_unlink): export + + * bus/bus.c (bus_context_check_security_policy): enforce a maximum + number of bytes in the message queue for a connection + +2003-04-18 Havoc Pennington + + * dbus/dbus-auth.c (record_mechanisms): memleak fixes + + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some + memleaks + + * dbus/dbus-keyring.c (add_new_key): fix a memleak, and + on realloc be sure to update the pointer in the keyring + + * dbus/dbus-string.c (_dbus_string_zero): compensate for align + offset to avoid writing to unallocated memory + + * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to + try the next mechanism, so we properly handle OOM + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free + on OOM. + (_dbus_keyring_new): fix OOM bug + (_dbus_keyring_new_homedir): always set error; impose a maximum + number of keys we'll load from the file, mostly to speed up the + test suite and make its OOM checks more useful, but also for + general sanity. + + * dbus/dbus-auth.c (process_error_server): reject authentication + if we get an error from the client + (process_cancel): on cancel, send REJECTED, per the spec + (process_error_client): send CANCEL if we get an error from the + server. + +2003-04-18 Havoc Pennington + + * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose + debug spew + + * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM + handling problem + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine + about DBUS_TEST_HOMEDIR once + + * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in + the environment + + * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1 + config file so we test the right thing + + Throughout: assorted docs improvements + +2003-04-18 Havoc Pennington + + * glib/dbus-gmain.c: adapt to watch changes + + * bus/bus.c, bus/activation.c, etc.: adjust to watch changes + + * dbus/dbus-server.h: remove dbus_server_handle_watch + + * dbus/dbus-connection.h: remove dbus_connection_handle_watch + + * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work + like DBusTimeout, so we don't need dbus_connection_handle_watch + etc. + +2003-04-17 Havoc Pennington + + * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd + database usage so it all goes via the DBusUserDatabase cache. + +2003-04-17 Havoc Pennington + + * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if + there was an OOM watch we skipped, we always return TRUE so we + iterate again to have a look at it again. Fixes test suite hang. + Code rearrangement also lets us lose some memset and only iterate + over callbacks once. + + * bus/driver.c (bus_driver_handle_message): sense of test for + reply was backward + +2003-04-16 Havoc Pennington + + * doc/dbus-specification.sgml: make spec say serials are unsigned + + * dbus/dbus-message.h: change message serials to unsigned + + * dbus/dbus-connection.c: adapt to message serials being unsigned + +2003-04-15 Havoc Pennington + + * bus/bus.c: create and keep around a shared DBusUserDatabase + object. + + * bus/connection.c (bus_connection_get_groups): don't cache + groups for user in the connection object, since user database + object now does that. + +2003-04-16 Havoc Pennington + + * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a + list of size counters + (_dbus_message_loader_putback_message_link): put back a popped link + + * dbus/dbus-connection.c + (dbus_connection_set_max_live_messages_size): rename + max_received_size + (dbus_connection_get_outgoing_size): get size of outgoing + queue + (_dbus_connection_set_connection_counter): remove this cruft + +2003-04-14 Havoc Pennington + + * dbus/dbus-userdb.c: user database abstraction, mostly to get + caching, but at some point we might want to be able to use a + different database. + + * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses + SHA1 conf file to test the sha1 auth mechanism, since the regular + test always uses EXTERNAL when available. + + * configure.in, + test/data/valid-config-files/debug-allow-all-sha1.conf.in: + add conf file that requires use of sha1 auth + +2003-04-13 Havoc Pennington + + * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs + from Philip Blundell to send messages and monitor them. + +2003-04-13 Havoc Pennington + + * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting + callbacks + + * test/data/valid-config-files/debug-allow-all.conf.in: allow all + users + + * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): + fix to only recover unused bytes if we're already authenticated + (_dbus_transport_get_is_authenticated): fix to still mark us + authenticated if there are unused bytes. + + * bus/dispatch.c: implement security policy checking + + * bus/connection.c (bus_transaction_send_from_driver): new + + * bus/bus.c (bus_context_check_security_policy): new + + * bus/dispatch.c (send_service_nonexistent_error): delete this, + now we just set the DBusError and it gets converted to an error + reply. + + * bus/connection.c (allow_user_function): enable code using actual + data from the config file + + * bus/policy.c (list_allows_user): handle wildcard rules for + user/group connection perms + +2003-04-13 Havoc Pennington + + * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules + + * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function + + * bus/policy.c (bus_policy_append_mandatory_rule) + (bus_policy_append_default_rule, bus_policy_append_user_rule) + (bus_policy_append_group_rule): new functions + +2003-04-12 Havoc Pennington + + * bus/config-parser.c (bus_config_parser_new): fix a memleak + + * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for + the pid/gid/uid, just for paranoia. + + * test/break-loader.c (randomly_do_n_things): find a byte + containing a type code, and randomly change it to a different + type code. + +2003-04-12 Havoc Pennington + + * bus/policy.h: change BusPolicy to be the thing from the config + file, and rename old BusPolicy to BusClientPolicy + + * bus/bus.c, bus/connection.c, bus/config-parser.c: change to + match change in how policy works + + * dbus/dbus-internals.h: mark assert_not_reached as + __attribute((noreturn))__ + +2003-04-11 Havoc Pennington + + * doc/dbus-specification.sgml: fix a spot with the wrong name for + the broadcast service. Use boolean return for ServiceExists. + +2003-04-11 Havoc Pennington + + * configure.in: add another directory to look for qt in. + +2003-04-11 Havoc Pennington + + * AUTHORS: add Colin Walters + +2003-04-11 Havoc Pennington + + * NEWS: update + + * configure.in: 0.9 + +2003-04-11 Havoc Pennington + + * bus/messagebus.in: remove pid file when stopping the + message bus, since the bus won't have privileges to remove it + itself. + +2003-04-11 Havoc Pennington + + * bus/bus.c (bus_context_new): move credentials change after + creating pidfile + +2003-04-11 Havoc Pennington + + * test/decode-gcov.c: add "below average functions" to the + coverage report, and change how some of the code works. + + * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's + not in the coverage stats. + + * test/test-service.c (main): use _dbus_verbose not fprintf in a + couple places so running the test suite doesn't result in megaspam. + +2003-04-11 Havoc Pennington + + * bus/dispatch.c (check_existent_service_activation): accept a no + memory error in a place we didn't before + + * bus/test.c (bus_test_run_everything): remove hacky "do it twice + in case the first one failed," since the test suite is less + broken now. + +2003-04-10 Havoc Pennington + + * bus/dispatch.c (check_segfault_service_activation): add test + for launching an executable that just crashes. + + * test/test-segfault.c (main): try setting coredumpsize to 0 so we + don't leave a million cores. We'll see how portable this is. + +2003-04-10 Havoc Pennington + + * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all + the possible parent failures before we fork, so that we don't + fail to create a babysitter after creating the child. + + * bus/activation.c (bus_activation_activate_service): kill child + if we don't successfully complete the activation. + +2003-04-10 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_flush): don't spin on + the connection if it's disconnected + + * bus/activation.c (bus_activation_service_created): use new + transaction features to roll back removal of pending activation if + we don't successfully create the service after all. Don't remove + pending activation if the function fails. + + * dbus/dbus-list.c (_dbus_list_insert_before_link) + (_dbus_list_insert_after_link): new code to facilitate + services.c fixes + + * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): + new functionality, so we can preallocate the ability to insert + into a hash table. + + * bus/connection.c (bus_transaction_add_cancel_hook): new function + allowing us to put custom hooks in a transaction to be used for + cancelling said transaction + + * doc/dbus-specification.sgml: add some discussion of secondary + service owners, and disallow zero-length service names + + * bus/services.c (bus_registry_acquire_service): new function, + splits out part of bus_driver_handle_acquire_service() and fixes + a bug where we didn't remove the service doing the acquiring + from the secondary queue if we failed to remove the current owner + from the front of the queue. + +2003-04-10 Alexander Larsson + + * doc/dbus-specification.sgml: + s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/ + +2003-04-10 Alexander Larsson + + * bus/.cvsignore: + * glib/.cvsignore: + * test/.cvsignore: + Added files to cvsignore + + * dbus/dbus-message.h: + * dbus/dbus-message.c: (dbus_message_iter_get_named): + Make get_named() take two out argument and return a boolean. + (dbus_message_iter_get_args_valist): + Update usage of get_named(). + (dbus_message_iter_append_byte): + Fix typo + (dbus_message_iter_append_named) + Fix typo + (message_iter_test), (check_message_handling_type), (_dbus_message_test): + More tests. + +2003-04-10 Alexander Larsson + + * dbus/dbus-marshal.[ch]: + Add array_type_pos argument to _dbus_marshal_validate_arg. + Let you pass a NULL end_pos to _dbus_marshal_validate_type. + + * dbus/dbus-message.[ch]: + Multi-dimensional arrays have full type specification in the + outermost array. Iter code re-arranged to handle this. + Added some more iter tests. + + * doc/dbus-specification.sgml: + Add me to authors. + Remove old FIXME. + Update new array encoding description. + Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description. + + * test/data/invalid-messages/array-with-mixed-types.message: + * test/data/valid-messages/array-of-array-of-uint32.message: + Change to the new array format. + + * test/data/invalid-messages/too-short-dict.message: + Fix bug in test. + + * test/data/valid-messages/recursive-types.message: + Fix up and extend test. + +2003-04-10 Havoc Pennington + + * bus/dispatch.c: lots of fixes + + * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export + (_dbus_loop_iterate): remove old "quit if no callbacks" code, + that was crack, broke the test service. + + * dbus/dbus-transport.c (_dbus_transport_open): fix error + handling to avoid piling up errors if we get a failure on the + first address. + + * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include + pid in assertion failures. + + * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up + to some fixed size of file descriptor array. Don't return TRUE + anytime a timeout exists, that led to lots of busy loop silliness + in the tests. + +2003-04-09 Havoc Pennington + + * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought + I'd checked this in earlier but hadn't. + +2003-04-09 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): get a bit further through + the activation test (man this is getting old!) + +2003-04-09 Havoc Pennington + + * test/test-utils.c: use dispatch status function to fix this up + + * bus/connection.c (connection_watch_callback): don't dispatch + from here + (connection_timeout_callback): don't dispatch from here + (bus_connections_setup_connection): set the dispatch status function + (bus_connection_disconnected): unset it + + * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function + used to add a connection to be dispatched + (_dbus_loop_iterate): do the dispatching at the end of each + iteration + + * dbus/dbus-connection.c + (dbus_connection_set_dispatch_status_function): new function + allowing us to fix up main loop usage + (_dbus_connection_last_unref): free all the various function + user data + (dbus_connection_dispatch): call the DispatchStatusFunction + whenever this function returns + (dbus_connection_handle_watch): call DispatchStatusFunction + (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction + (reply_handler_timeout): call DispatchStatusFunction + (dbus_connection_flush): call DispatchStatusFunction + +2003-04-09 Havoc Pennington + + * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and + a memory leak + + * bus/dispatch.c (check_service_activated): fix bug in test + + * dbus/dbus-mainloop.c (check_timeout): fix this up + + * dbus/dbus-internals.c (_dbus_verbose_real): include PID in + verbose output so we can sort out output from different processes, + e.g. in the activation case. + +2003-04-08 Colin Walters + + * bus/bus.c (struct BusContext) [pidfile]: New member, to store + the pid file. + (bus_context_new): Set it. + (bus_context_unref): Use it to delete the pid file. + +2003-04-08 Havoc Pennington + + * test/data/invalid-messages/array-with-mixed-types.message: + regression test that fails for the moment + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder + tests for convenience + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow + array of nil, it broke things. + + * test/data/invalid-messages/array-of-nil.message: regression test + + * test/data/valid-messages/array-of-array-of-uint32.message: + happened to write this so added it to suite + +2003-04-08 Havoc Pennington + + * bus/driver.c (bus_driver_handle_acquire_service): init + retval/reply before checking name + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a + recursion depth argument + + * dbus/dbus-message.h (struct DBusMessageIter): put some padding + in the public struct for future extension + + * dbus/dbus-message-builder.c (_dbus_message_data_load): fix + typo + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose + message + + * doc/dbus-specification.sgml: fix typo + +2003-04-08 Alexander Larsson + + Implemented recursive types, named types and new-style iters + + * bus/driver.c: + * glib/test-thread-client.c: (thread_func): + * glib/test-thread-server.c: (handle_test_message): + * test/test-service.c: (handle_echo): + Update to new api + + * dbus/Makefile.am: + * dbus/dbus-dict.c: + * dbus/dbus-dict.h: + * dbus/dbus.h + Remove DBusDict + + * dbus/dbus-internals.c: (_dbus_type_to_string): + Update for new types. + + * dbus/dbus-marshal.[ch]: + Implement recursive types and the new marshalling format. + Remove hardcoded dict marshalling. + Marshal named types. + + * dbus/dbus-message-builder.c: + Add BYTE_ARRAY. + Remove references to old types + + * dbus/dbus-message.[ch]: + New non-refcounted iter API that supports recursive iters. + Use iters for appending, including support for recursive + iters. + Add byte and named type support. + Update everything to new marshalling formats. + Add tests for new API. + + * dbus/dbus-protocol.h: + Remove old array types. + Add types: BYTE, ARRAY, DICT, NAMED + + * dbus/dbus-string.c: + * dbus/dbus-sysdeps.c: + Make parse_double locale safe. + + * dbus/dbus-test-main.c: + Call setlocale. + + * dbus/dbus-test.c: + Kill dict test + + * doc/dbus-specification.sgml: + Update spec + + * test/data/incomplete-messages/missing-body.message: + * test/data/invalid-messages/bad-boolean.message: + * test/data/invalid-messages/bad-boolean-array.message: + * test/data/invalid-messages/boolean-array-length-too-long.message-raw: + * test/data/invalid-messages/boolean-has-no-value.message-raw: + * test/data/invalid-messages/too-short-dict.message: + * test/data/valid-messages/dict-simple.message: + * test/data/valid-messages/dict.message: + * test/data/valid-messages/emptiness.message: + * test/data/valid-messages/lots-of-arguments.message: + * test/data/valid-messages/no-padding.message: + * test/data/valid-messages/recursive-types.message: + Add missing NAME fields + Fix up dicts & arrays + + * test/data/invalid-messages/dict-with-nil-value.message: + Removed, this is not invalid anymore. + + * test/data/valid-messages/recursive-types.message: + Add new test for deeply recursive types. + +2003-04-07 Havoc Pennington + + * bus/driver.c (bus_driver_handle_acquire_service): return an + error if you try to acquire a service that starts with ':' + +2003-04-07 Havoc Pennington + + * doc/dbus-specification.sgml: require that base service names + start with ':' and that the base service is created/deleted + as first and last things a connection does on the bus + + * bus/dispatch.c (check_existent_service_activation): lots more + work on the activation test; it doesn't fully pass yet... + + * test/test-service.c (main): fix so we don't memleak the + connection to the message bus + (filter_func): accept a message asking us to exit + +2003-04-06 Havoc Pennington + + * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, + from Colin Walters + + * configure.in: fixes to Qt detection from Colin Walters + + * doc/Makefile.am: Only remove generated docbook dirs if they + exist, from Colin Walters + + * dbus/dbus-bus.c: change how we set well-known connections to + NULL, so that it works if a single connection is stored in + two well-known array slots. + + * test/Makefile.am: remove a lot of stuff that isn't immediately + useful, it's in CVS history if we want it. + + * test/test-service.c: use dbus-mainloop instead of that + watch.[hc] crack + +2003-04-06 Havoc Pennington + + * dbus/Makefile.am: split lists of sources into stuff that goes in + the library, util functions that go in the lib and are also used + elsewhere, and util functions that are used in tests/daemon but + don't go in the lib. + + * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] + here so it can be used in test binaries also + +2003-04-06 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile + here in the parent process, so we can return an error if it + fails. Also, move some of the code into the child so the parent + is less hosed if we fail midway through. + + * bus/bus.c (bus_context_new): move pidfile detection further up + in the function, before we start overwriting sockets and such. + + * bus/messagebus.in: adjust this a bit, not sure if it will work. + + * configure.in: add --with-system-pid-file and --with-system-socket + +2003-04-06 Colin Walters + + * configure.in (DBUS_SYSTEM_PID_FILE): New variable. + + * bus/system.conf.in: Declare a pidfile. + + * bus/bus.c (bus_context_new): Test for an existing pid file, and + create one (if appropriate). + + * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New. + (struct BusConfigParser) [pidfile]: New. + (element_type_to_name, merge_included, start_busconfig_child) + (bus_config_parser_end_element, bus_config_parser_content): Handle it. + (bus_config_parser_unref): Free it. + (bus_config_parser_get_pidfile): New function. + + * bus/config-parser.h (_dbus_write_pid_file): Prototype. + + * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error. + + * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function. + + * dbus/dbus-sysdeps.h: Prototype it. + +2003-04-06 Havoc Pennington + + * bus/bus.c (bus_context_new): print the address in here, rather + than in main(), because we need to do it before forking the daemon + + * bus/dispatch.c (send_service_nonexistent_error): set the sender + on the service nonexistent error + + * bus/driver.c (bus_driver_handle_acquire_service): set the + sender on the AcquireService reply + + * test/data/valid-config-files/debug-allow-all.conf.in: Make test + server also listen on a UNIX socket so services can connect to it. + +2003-04-06 Havoc Pennington + + * dbus/dbus-threads.c: Redo how the fake debug mutexes are done + so it detects deadlocks and also we actually init threads when + debugging. + +2003-04-06 Havoc Pennington + + * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): + save the domain socket name, and unlink it when we disconnect the + server. Means that at least when we exit normally, we won't leave + a bunch of junk in /tmp + + * dbus/dbus-transport-unix.c + (_dbus_transport_new_for_domain_socket): code cleanup (nicer + memory management). (I was making a real change here but then + didn't) + +2003-04-06 Havoc Pennington + + * bus/bus.c (bus_context_new): fix wrong handling of + server_data_slot_unref() in the error case. + + * dbus/dbus-internals.h (_dbus_assert): change so it passes + "(condition) != 0" to _dbus_real_assert so that + "_dbus_assert (pointer)" doesn't cause a warning + + * bus/main.c (main): accept --print-address option to print out + the message bus address + + * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this + + * dbus/dbus-transport.c (_dbus_transport_open): special error for + "tmpdir" option to unix: address on client side + + * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option + to unix: address + + * configure.in (TEST_SOCKET_DIR): locate a temporary directory + we can use to create sockets in the test suite. + + * bus/main.c (signal_handler): on SIGTERM, exit the daemon + cleanly. To be used for testing. + + * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler() + + * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + handle trying to call this when there's no servers active + +2003-04-05 Havoc Pennington + + * NEWS: update + + * configure.in: 0.8 + +2003-04-05 Havoc Pennington + + * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't + crash on startup. Need to get "try starting the daemon" + in the test suite I guess. ;-) + + * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that + tracked the number of open connections; it's better done in + application-specific code as you want it to span all servers etc. + +2003-04-05 Havoc Pennington + + * bus/Makefile.am (install-data-hook): add missing DESTDIR, + patch from Colin Walters + +2003-04-05 Havoc Pennington + + * doc/config-file.txt (Elements): fix docs of to reflect + reality; in fact multiple mechanisms are allowed. + + * dbus/dbus-internals.c (_dbus_real_assert) + (_dbus_real_assert_not_reached): move guts of _dbus_assert() and + _dbus_assert_not_reached() into functions, so that they don't show + up in basic block counts for test coverage, and don't use up as + much disk space. Does mean slower execution speed though, so + assumes --disable-asserts is the normal production case. + +2003-04-05 Havoc Pennington + + * test/Makefile.am (dist-hook): also dist *.in files + + * NEWS: update + + * configure.in: 0.7 + +2003-04-05 Havoc Pennington + + * dbus/dbus-string.c: docs warning + + * dbus/dbus-spawn.c: missing docs + + * dbus/dbus-memory.c (struct ShutdownClosure): missing docs + +2003-04-05 Havoc Pennington + + * bus/loop.c (bus_loop_iterate): fix the timeout code, using + magic from GLib + + * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid + to -1 once we've reaped the babysitter + (_dbus_babysitter_handle_watch): do as much work as we can, not + just one go of it + + * bus/activation.c: add code using DBusBabysitter so that we + handle it when a service fails to start up properly. + (bus_activation_service_created): don't remove the activation + entries as we go, just let them get removed when we free the pending + activation. Unref reply messages after sending them. + +2003-04-05 Havoc Pennington + + * test/decode-gcov.c (main): print per-directory stats in the report + + * Makefile.am (coverage-report.txt): don't include test/* in gcov stats + +2003-04-05 Havoc Pennington + + * Makefile.am (coverage-report.txt): add target "coverage-report.txt" + + * test/decode-gcov.c: hack up a little program to suck data + out of gcov files. Yes this is sort of silly. + + * configure.in: define something in config.h and do an + AM_CONDITIONAL when gcov is enabled + +2003-04-04 Havoc Pennington + + * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to + return a "babysitter" object that is used to monitor the status of + the spawned process and reap it when required. + + * test/test-segfault.c, test/test-exit.c, + test/test-sleep-forever.c: binaries that do various lame things, + used in the test suite. + + * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string() + +2003-04-03 Havoc Pennington + + * dbus/dbus-spawn.c: Move dbus-spawn into a separate file + in preparation for modifying it, dbus-sysdeps is getting + a bit unmanageable. + +2003-04-03 Havoc Pennington + + * bus/loop.h, bus/loop.c: make the mainloop an object so we can + have multiple ones + + * bus/*.[hc]: adapt to mainloop change + +2003-04-03 Havoc Pennington + + * bus/activation.c (load_directory): fix up memleaks + (bus_activation_entry_free): free the entry + + * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if + we get one from the message bus; fix memleaks. + + * dbus/dbus-message.c (dbus_set_error_from_message): new function + +2003-04-03 Havoc Pennington + + * bus/config-parser.c (bus_config_parser_unref): free + list of mechanisms, bug discovered by test suite enhancements + (putting system.conf and session.conf into suite) + + * test/Makefile.am, test/test-service.c: add placeholder for a + test service that we'll activate as part of test suite. Doesn't + do anything yet. + + * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by + setting NULL value, and use system malloc not dbus_malloc() + when we have unavoidable memleakage. + + * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0 + didn't work, and support DBUS_BUS_ACTIVATION. + + * bus/activation.c (child_setup): pass our well-known bus type to + the child + + * bus/config-parser.c: support to specify well-known type + + * doc/dbus-specification.sgml: document the env variables to + locate well-known buses and find service activator + +2003-04-02 Havoc Pennington + + * test/Makefile.am (all-local): add a rule to copy tests to + builddir, so we can have generated tests. Use this to remove the + silly hack for testing system.conf and session.conf. Will use this + shortly to generate .service files pointing to test binaries. + +2003-04-02 Havoc Pennington + + * dbus/dbus-string.c (set_length): fix a bug - we allocated max of + current alloc and needed new length, not max of the doubled + allocation and needed new length. Also, when building tests, + don't do the double-allocation stuff, just realloc every time. + +2003-04-02 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames + in error messages + (_dbus_string_get_dirname): new + (_dbus_sysdeps_test): new + (_dbus_directory_open): include dirnames in error messages + + * bus/config-parser.c: interpret and and + relative to config file location if the given + filename is not absolute. + + * dbus/dbus-string.c (_dbus_string_find_byte_backward): new + +2003-04-02 Havoc Pennington + + * bus/connection.c (bus_transaction_send_error_reply): set sender + service for the error, and unref the reply on success + + * bus/activation.c: convert to use BusTransaction so OOM can be + handled correctly + (bus_activation_service_created): set sender of the message + +2003-04-01 Havoc Pennington + + * bus/config-parser.c, bus/bus.c: implement and + (at least mostly) + + * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID + first, then the user ID + +2003-04-01 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new + function + + * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new + + * dbus/dbus-internals.c (_dbus_dup_string_array): new function + + * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the + socket 0777, and unlink any existing socket. + + * bus/bus.c (bus_context_new): change our UID/GID and fork if + the configuration file so specifies; set up auth mechanism + restrictions + + * bus/config-parser.c (bus_config_parser_content): add support + for option and fill in code for + + * bus/system.conf.in: add to default configuration, + and limit auth mechanisms to EXTERNAL + + * doc/config-file.txt (Elements): add + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function + (_dbus_change_identity): new function + +2003-03-31 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) + (_dbus_listen_unix_socket): fix off-by-one error in null + termination spotted by Nalin + +2003-03-31 Havoc Pennington + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting + DBUS_TEST_HOMEDIR when tests are enabled, so we can test without + having a real home directory available. + +2003-03-31 Havoc Pennington + + * bus/Makefile.am (install-data-hook): create /var/run/dbus + + * bus/messagebus.in: add init script for Red Hat /etc/init.d + + * configure.in: add support for specifying a style of init script + to install + +2003-03-31 Havoc Pennington + + Fix some annoying DBusString API and fix all affected code. + + * dbus/dbus-string.c (_dbus_string_init): get rid of annoying + max_length argument + (_dbus_string_get_data): change to return string instead of using + an out param + (_dbus_string_get_const_data): ditto + (_dbus_string_get_data_len): ditto + (_dbus_string_get_const_data_len): ditto + +2003-03-31 Havoc Pennington + + * bus/main.c (main): fix up the command line arguments to be nicer + +2003-03-31 Havoc Pennington + + * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to + define DBUS_SYSTEM_BUS_PATH as we want to compile in the same + final location that lands in the config file + + * bus/config-loader-expat.c (bus_config_load): fix type of + XML_Parser variable + + * doc/TODO: remove TODO item for dbus_bus_get() + + * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock + +2003-03-31 Havoc Pennington + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket) + (_dbus_transport_new_for_tcp_socket): these didn't need the "server" + argument since they are always client side + + * dbus/dbus-server.c (dbus_server_get_address): new function + + * bus/main.c (main): take the configuration file as an argument. + + * test/data/valid-config-files/debug-allow-all.conf: new file to + use with dispatch.c tests for example + + * bus/test-main.c (main): require test data dir + + * bus/bus.c (bus_context_new): change this to take a + configuration file name as argument + + * doc/config-file.txt (Elements): add + + * bus/system.conf, bus/session.conf: new files + + * dbus/dbus-bus.c (dbus_bus_get): look for system bus on + well-known socket if none set + + * configure.in: create system.conf and session.conf + +2003-03-30 Havoc Pennington + + * bus/config-parser.c: hacking + + * dbus/dbus-memory.c: don't use DBusList for the list of stuff + to shut down, since it could cause weirdness with the DBusList + lock + + * dbus/dbus-list.c (_dbus_list_test): add tests for the + link-oriented stack routines + (alloc_link): free the mempool if the first alloc from it fails + + * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue + + * dbus/dbus-string.c (UNICODE_VALID): sync new version of this + from GLib + (_dbus_string_skip_white): new + + * doc/config-file.txt (Elements): add + +2003-03-28 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_copy_data_len) + (_dbus_string_copy_data): new functions + +2003-03-28 Anders Carlsson + + * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get): + * dbus/dbus-bus.h: + Add dbus_bus_get. + + * dbus/dbus-memory.c: + Fix a doc comment. + +2003-03-28 Havoc Pennington + + * bus/test.c (bus_test_flush_bus): remove the sleep from here, + I think it may have just been superstition. Not sure. + + * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM + failures that were not being handled. + + * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling + + * dbus/dbus-memory.c: add ability to set number of mallocs in a + row that will fail on out-of-memory. + + * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience + function for testing out-of-memory handling. + + * bus/config-loader-expat.c (memsuite): don't wrap the dbus + allocation functions, they do map exactly to the expat ones. + +2003-03-27 Havoc Pennington + + * bus/config-loader-libxml.c (bus_config_load): add another error + check + +2003-03-26 Anders Carlsson + + * doc/TODO: + Add note about automatic service activation. + + * doc/dbus-specification.sgml: + Rename the specification and clarify a few things. + +2003-03-26 Anders Carlsson + + * Doxyfile.in: + * dbus/dbus-address.c: + * dbus/dbus-dict.c: + * dbus/dbus-marshal.c: + * dbus/dbus-server-debug-pipe.c: + * dbus/dbus-transport-unix.c: + Fix documentation warnings. + +2003-03-26 Havoc Pennington + + * bus/test-main.c, dbus/dbus-test.c (main): check memleaks + after every test so it's quick and easy to see which leaked, and + so we test multiple dbus_shutdown() calls + + * configure.in: change configure.in XML stuff to also support + expat + + * config-loader-libxml.c: some hacking + + * config-loader-expat.c: some hacking + + * config-parser.c: some hacking, plus tests + +2003-03-25 Havoc Pennington + + * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR + + * configure.in: add --with-xml option to specify XML library, + right now only libxml is supported. + + * bus/config-loader-libxml.c, config-parser.c: sync some minor + nonworking code between home and work, still just stubs + +2003-03-24 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this + file + + * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow + NULL argument for "message" if the error is a well-known one, + fill in a generic message in this case. + + * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in + favor of DBusError + + * bus/test.c (bus_test_flush_bus): add + + * bus/policy.c (bus_policy_test): test code stub + +2003-03-24 Havoc Pennington + + * bus/connection.c (bus_connections_setup_connection): set up + the "can this user connect" function, but it always returns + TRUE until we have a config file parser so we can have a config + file that allows connections. + +2003-03-23 Havoc Pennington + + * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with + DBUS_BUILD_TESTS, actually alloc/free a block of memory for + the mutex, so we can check for proper memory management + and OOM handling. + + * dbus/dbus-dataslot.c: remove the mutex from + DBusDataSlotAllocator and lock it manually when using it, + to simplify fitting it into the global slots framework. + + * dbus/dbus-threads.c (init_static_locks): rework how we're + handling global locks so they are easily shut down. + + * bus/policy.c (bus_policy_append_rule): fix + + * bus/test-main.c (main): check for memleaks + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make + test suite check for memleaks + + * dbus/dbus-memory.c: add support in test mode for tracking + number of outstanding blocks + +2003-03-23 Havoc Pennington + + * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny + policies code + + * dbus/dbus-hash.h: add ULONG hash keys + + * dbus/dbus-sysdeps.c (_dbus_get_groups): new + (_dbus_get_group_id): new function + +2003-03-20 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_set_unix_user_function): + new function + (dbus_connection_get_unix_user): new function + +2003-03-20 Havoc Pennington + + * bus/connection.c (bus_connection_send_oom_error): assert that + message has a sender + (connection_execute_transaction): ditto + (bus_connection_preallocate_oom_error): fix to set the sender, and + set recipient to the destination service, not the bus driver + + * bus/policy.c: hacking + + * dbus/dbus-message.c (dbus_message_service_is): new function + (dbus_message_sender_is): new + +2003-03-19 Havoc Pennington + + * bus/policy.c: start sketching code for policy restrictions on + what connections can do. + +2003-03-18 Havoc Pennington + + * doc/TODO: some notes on high-level todo items. Little nitpick + stuff is all in @todo, so no need to add it here. + + * doc/config-file.txt: some notes on how config file might look + +2003-03-18 Anders Carlsson + + * configure.in: 0.6 + + * NEWS: Update. + +2003-03-17 Havoc Pennington + + * dbus/dbus-internals.h: add gcc attributes so that + our printf-style functions warn on bad arguments to + format + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf + format bug + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix + printf format bug + +2003-03-17 Havoc Pennington + + * bus/test-main.c (main): make it print something as it runs + so make check doesn't look stuck + + * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove + from CVS, now obsolete + +2003-03-17 Anders Carlsson + + * bus/dispatch.c: (bus_dispatch): + Refetch the service name since it may have been reallocated + when dbus_message_set_sender was called. + + * dbus/dbus-sysdeps.c: (_dbus_accept): + Add address and address length variables and use them to stop + valgrind from complaining. + +2003-03-17 Havoc Pennington + + All tests pass, no memleaks, no valgrind complaints. + + * bus/test.c: refcount handler_slot + + * bus/connection.c (bus_connections_new): refcount + connection_data_slot + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused + bytes so that auth scripts pass. + + * bus/dispatch.c: init message_handler_slot so it gets allocated + properly + + * bus/dispatch.c (message_handler_slot_ref): fix memleak + + * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new): + dealloc server_pipe_hash when no longer used for benefit of + leak checking + + * dbus/dbus-auth.c (process_command): memleak fix + + * bus/dispatch.c (check_hello_message): memleak fix + +2003-03-16 Havoc Pennington + + * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot + +2003-03-17 Anders Carlsson + + * bus/activation.c (bus_activation_activate_service): Append + the pending activation entry to the list of pending activations. + +2003-03-16 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of + connections + + * dbus/dbus-address.c (create_entry): fix OOM handling when + failing to alloc entry->method + +2003-03-16 Havoc Pennington + + * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc + the watch + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + add some missing dbus_set_result + + * bus/dispatch.c (bus_dispatch_add_connection): handle failure to + alloc the DBusMessageHandler + + * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref + the transport here, since we call this from the finalizer; it + resulted in a double-finalize. + + * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug + where we tried to use transport->connection that was NULL, + happened when transport was disconnected early on due to OOM + + * bus/*.c: adapt to handle OOM for watches/timeouts + + * dbus/dbus-transport-unix.c: port to handle OOM during + watch handling + + * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a + reference to unused bytes instead of a copy + + * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for + out of memory + + * dbus/dbus-connection.c (dbus_connection_handle_watch): return + FALSE on OOM + + * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out + of memory + +2003-03-16 Anders Carlsson + + * doc/dbus-specification.sgml: + Document reply message for ActivateService. + +2003-03-16 Anders Carlsson + + * bus/activation.c: (bus_pending_activation_entry_free), + (bus_pending_activation_free), (bus_activation_new), + (bus_activation_unref), (bus_activation_service_created), + (bus_activation_activate_service): + * bus/activation.h: + * bus/bus.c: (bus_context_new): + * bus/desktop-file.c: (new_section): + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_handle_activate_service): + * bus/services.c: (bus_registry_new), (bus_registry_ensure): + * bus/services.h: + * dbus/dbus-connection.c: + (dbus_connection_send_with_reply_and_block): + * dbus/dbus-message.c: (dbus_message_append_args_valist): + * dbus/dbus-protocol.h: + Make activation work better. Now pending activations will be queued + and the daemon won't try to activate services that are already registered. + +2003-03-16 Havoc Pennington + + * dbus/dbus-bus.c (ensure_bus_data): handle failure to set + connection data + + * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support + DBUS_MALLOC_BACKTRACES to print trace when failing an alloc + +2003-03-16 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak + this. always run the test suite before commit... + + * bus/*: adapt to DBusConnection API changes + + * glib/dbus-gmain.c: adapt to DBusConnection API changes, + requires renaming stuff to avoid dbus_connection_dispatch name + conflict. + + * dbus/dbus-transport.c (_dbus_transport_queue_messages): new + function + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): + separate from _dbus_message_loader_return_buffer() + + * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove + this, because it's now always broken to use; the number of + messages in queue vs. the number still buffered by the message + loader is undefined/meaningless. Should use + dbus_connection_get_dispatch_state(). + (dbus_connection_dispatch): rename from + dbus_connection_dispatch_message + +2003-03-16 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real + implementation + +2003-03-16 Anders Carlsson + + * dbus/dbus-connection.c: + (dbus_connection_send_with_reply_and_block): + Decrease connection->n_incoming when removing an entry + from the list. + * dbus/dbus-dict.c: (dbus_dict_entry_free), + (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), + (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), + (dbus_dict_set_byte_array), (dbus_dict_set_string_array), + (dbus_dict_get_boolean_array), (dbus_dict_get_double_array), + (dbus_dict_get_byte_array): + Handle NULL arrays and strings. Also add support for byte arrays. + + * dbus/dbus-marshal.c: (_dbus_marshal_byte_array), + (_dbus_marshal_dict), (_dbus_demarshal_byte_array), + (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), + (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), + (_dbus_demarshal_dict), (demarshal_and_validate_len), + (_dbus_marshal_validate_arg), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add support for marshalling and demarshalling empty arrays and strings. + + * dbus/dbus-message.c: (dbus_message_append_args_valist), + (dbus_message_append_string_array), + (dbus_message_iter_get_boolean), + (dbus_message_iter_get_boolean_array), + (dbus_message_iter_get_int32_array), + (dbus_message_iter_get_uint32_array), + (dbus_message_iter_get_double_array), + (dbus_message_iter_get_byte_array), + (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict), + (check_message_handling): + Add support for getting empty arrays and dicts. + + * dbus/dbus-string.c: (_dbus_string_validate_utf8): + Don't do any validation at all for now, that's better than just checking + for ASCII. + + * test/data/valid-messages/emptiness.message: + New test message with lots of empty arrays. + +2003-03-16 Havoc Pennington + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message_link): new function that + can't fail due to OOM + + * dbus/dbus-message.c (_dbus_message_loader_pop_message_link): + new function pops a message together with a list link + containing it. + + * dbus/dbus-transport-unix.c (queue_messages): use new link-based + message queuing functions to avoid needing to alloc memory + +2003-03-16 Havoc Pennington + + Oops - test code was only testing failure of around 30 of the + mallocs in the test path, but it turns out there are 500+ + mallocs. I believe this was due to misguided linking setup such + that there was one copy of dbus_malloc etc. in the daemon and one + in the shared lib, and only daemon mallocs were tested. In any + case, the test case now tests all 500+ mallocs, and doesn't pass + yet, though there are lots of fixes in this patch. + + * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix + this so that it doesn't need to allocate memory, since it + has no way of indicating failure due to OOM (and would be + annoying if it did). + + * dbus/dbus-list.c (_dbus_list_pop_first_link): new function + + * bus/Makefile.am: rearrange to create two self-contained + libraries, to avoid having libraries with overlapping symbols. + that was resulting in weirdness, e.g. I'm pretty sure there + were two copies of global static variables. + + * dbus/dbus-internals.c: move the malloc debug stuff to + dbus-memory.c + + * dbus/dbus-list.c (free_link): free list mempool if it becomes + empty. + + * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function + + * dbus/dbus-address.c (dbus_parse_address): free list nodes + on failure. + + * bus/dispatch.c (bus_dispatch_add_connection): free + message_handler_slot when no longer using it, so + memory leak checkers are happy for the test suite. + + * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name + + * bus/bus.c (new_connection_callback): disconnect in here if + bus_connections_setup_connection fails. + + * bus/connection.c (bus_connections_unref): fix to free the + connections + (bus_connections_setup_connection): if this fails, don't + disconnect the connection, just be sure there are no side + effects. + + * dbus/dbus-string.c (undo_alignment): unbreak this + + * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were + leaking + (_dbus_auth_new): fix the order in which we free strings + on OOM failure + + * bus/connection.c (bus_connection_disconnected): fix to + not send ServiceDeleted multiple times in case of memory + allocation failure + + * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to + get the base service name + (dbus_bus_register_client): don't return base service name, + instead store it on the DBusConnection and have an accessor + function for it. + (dbus_bus_register_client): rename dbus_bus_register() + + * bus/dispatch.c (check_hello_message): verify that other + connections on the bus also got the correct results, not + just the one sending hello + +2003-03-15 Havoc Pennington + + Make it pass the Hello handling test including all OOM codepaths. + Now to do other messages... + + * bus/services.c (bus_service_remove_owner): fix crash when + removing owner from an empty list of owners + (bus_registry_ensure): don't leave service in the list of + a connection's owned services if we fail to put the service + in the hash table. + + * bus/connection.c (bus_connection_preallocate_oom_error): set + error flag on the OOM error. + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + handle _dbus_transport_set_connection failure + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify + to create watches up front and simply enable/disable them as + needed. + (unix_connection_set): this can now fail on OOM + + * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept + of enabling/disabling a watch or timeout. + + * bus/loop.c (bus_loop_iterate): don't touch disabled + watches/timeouts + + * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts + +2003-03-15 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): OK, now finally actually + write useful test code, after all that futzing around ;-) + + Test does not yet pass because we can't handle OOM in + _dbus_transport_messages_pending (basically, + dbus_connection_preallocate_send() does not prealloc the write + watch). To fix this, I think we need to add new stuff to + set_watch_functions, namely a SetEnabled function so we can alloc + the watch earlier, then enable it later. + + * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move + dbus-memory.c to the convenience lib + + * bus/test.c: rename some static functions to keep them clearly + distinct from stuff in connection.c. Handle client disconnection. + +2003-03-14 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe + transport, tests more of the real codepath. Set up clients + with bus_setup_debug_client. + + * bus/test.c (bus_setup_debug_client): function to set up debug + "clients" on the main loop + + * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe + support + + * dbus/dbus-server.c (dbus_server_listen): add debug-pipe + server type + + * dbus/dbus-server-debug.c: support a debug server based on pipes + + * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function + (_dbus_close): new function + + * configure.in: check for socketpair + +2003-03-14 Havoc Pennington + + * dbus/dbus-memory.c: add a "detect buffer overwrites on free" + cheesy hack + + * dbus/dbus-transport-debug.c: rework this a good bit to be + less complicated. hopefully still works. + + * dbus/dbus-server-debug.c (handle_new_client): remove timeout + manually + + * glib/dbus-gmain.c (timeout_handler): don't remove timeout + after running it + + * dbus/dbus-message.c (dbus_message_copy): rename from + dbus_message_new_from_message, fix it up to copy + all the message fields, add test case + + * bus/dispatch.c (bus_dispatch_test): add some more test code, + not quite passing yet + +2003-03-14 Havoc Pennington + + * bus/loop.c (bus_loop_iterate): add this so we can "run loop + until no work remains" in test code. (the large diff here + is just code movement, no actual changes) + + * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to + 1, no point waiting around for test code. + (_dbus_server_debug_accept_transport): unref the timeout + after adding it (right?) + + * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto + +2003-03-13 Havoc Pennington + + * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle + out of memory + + * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out + of memory + + * dbus/dbus-connection.h: Make AddWatchFunction and + AddTimeoutFunction return a bool so they can fail on out-of-memory + + * bus/bus.c (bus_context_new): set up timeout handlers + + * bus/connection.c (bus_connections_setup_connection): set up + timeout handlers + + * glib/dbus-gmain.c: adapt to the fact that set_functions stuff + can fail + + * bus/bus.c (bus_context_new): adapt to changes + + * bus/connection.c: adapt to changes + + * test/watch.c: adapt to DBusWatch changes + + * bus/dispatch.c (bus_dispatch_test): started adding this but + didn't finish + +2003-03-14 Anders Carlsson + + * bus/dispatch.c (send_service_nonexistent_error): Fix typo. + +2003-03-13 Havoc Pennington + + * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: + set up a test framework as for the library + +2003-03-12 Havoc Pennington + + Throughout: purge global variables, introduce BusActivation, + BusConnections, BusRegistry, etc. objects instead. + + * bus/bus.h, bus/bus.c: introduce BusContext as a global + message bus object + + * test/Makefile.am (TEST_BINARIES): disable bus-test for now, + going to redo this a bit differently I think + +2003-03-12 Havoc Pennington + + Mega-patch that gets the message bus daemon initially handling + out-of-memory. Work still needed. Also lots of random + moving stuff to DBusError instead of ResultCode. + + * dbus/dbus-list.c (_dbus_list_length_is_one): new function + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): use DBusError + + * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not + DBusResultCode + + * dbus/dbus-connection.c (dbus_connection_send): drop the result + code here, as the only failure possible is OOM. + + * bus/connection.c (bus_connection_disconnect): + rename bus_connection_disconnected as it's a notification only + + * bus/driver.c (bus_driver_handle_acquire_service): don't free + "name" on get_args failure, should be done by get_args; + don't disconnect client for bad args, just return an error. + (bus_driver_handle_service_exists): ditto + + * bus/services.c (bus_services_list): NULL-terminate returned array + + * bus/driver.c (bus_driver_send_service_lost) + (bus_driver_send_service_acquired): send messages from driver to a + specific client to the client's unique name, not to the broadcast + service. + + * dbus/dbus-message.c (decode_header_data): reject messages that + contain no name field + (_dbus_message_get_client_serial): rename to + dbus_message_get_serial and make public + (_dbus_message_set_serial): rename from set_client_serial + (_dbus_message_set_reply_serial): make public + (_dbus_message_get_reply_serial): make public + + * bus/connection.c (bus_connection_foreach): allow stopping + iteration by returning FALSE from foreach function. + + * dbus/dbus-connection.c (dbus_connection_send_preallocated) + (dbus_connection_free_preallocated_send) + (dbus_connection_preallocate_send): new API for sending a message + without possibility of malloc failure. + (dbus_connection_send_message): rename to just + dbus_connection_send (and same for whole function family) + + * dbus/dbus-errors.c (dbus_error_free): make this reinit the error + + * dbus/dbus-sysdeps.c (_dbus_exit): new function + + * bus/activation.c: handle/return errors + + * dbus/dbus-errors.h: add more DBUS_ERROR #define + + * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents) + (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode + (_dbus_result_from_errno): move to this file + +2003-03-10 Anders Carlsson + + * dbus/dbus-marshal.c: + (_dbus_marshal_set_string): + Take a length argument so we can marshal the correct string + length. + + (_dbus_marshal_dict), (_dbus_demarshal_dict), + (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add support for marshalling and demarshalling dicts. + + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + Add support for TYPE DICT. + + * dbus/dbus-message.c: (set_string_field): + Adjust header padding. + + (dbus_message_append_args_valist), (dbus_message_append_dict), + (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type), + (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer), + (check_message_handling), (check_have_valid_message): + * dbus/dbus-message.h: + Add functions for setting and getting dicts. + + * dbus/dbus-protocol.h: + Add DBUS_TYPE_DICT. + + * dbus/dbus.h: + Add dbus-dict.h + + * doc/dbus-specification.sgml: + Add information about how dicts are marshalled. + + * test/data/invalid-messages/dict-with-nil-value.message: + * test/data/invalid-messages/too-short-dict.message: + * test/data/valid-messages/dict-simple.message: + * test/data/valid-messages/dict.message: + Add sample messages containing dicts. + +2003-03-08 Anders Carlsson + + * dbus/dbus-dict.h: Add DBUS_END_DECLS. + +2003-03-07 Anders Carlsson + + * dbus/Makefile.am: + * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), + (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean), + (dbus_dict_set_int32), (dbus_dict_set_uint32), + (dbus_dict_set_double), (dbus_dict_set_string), + (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), + (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), + (dbus_dict_set_string_array), (_dbus_dict_test): + * dbus/dbus-dict.h: + Fix according to comments from Havoc. + +2003-03-06 Michael Meeks + + * configure.in: if we don't have kde-config, disable have_qt. + +2003-03-07 Anders Carlsson + + * dbus/Makefile.am: + Add dbus-dict.[ch] + + * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), + (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains), + (dbus_dict_remove), (dbus_dict_get_value_type), + (dbus_dict_get_keys), (dbus_dict_put_boolean), + (dbus_dict_put_int32), (dbus_dict_put_uint32), + (dbus_dict_put_double), (dbus_dict_put_string), + (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array), + (dbus_dict_put_uint32_array), (dbus_dict_put_double_array), + (dbus_dict_put_string_array), (dbus_dict_get_boolean), + (dbus_dict_get_int32), (dbus_dict_get_uint32), + (dbus_dict_get_double), (dbus_dict_get_string), + (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array), + (dbus_dict_get_uint32_array), (dbus_dict_get_double_array), + (dbus_dict_get_string_array), (_dbus_dict_test): + * dbus/dbus-dict.h: + Add DBusDict implementation + + * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests): + * dbus/dbus-test.h: + Add _dbus_dict_test + +2003-03-04 Havoc Pennington + + * test/data/auth/*: adapt to changes + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): add + USERID_BASE64 and change USERNAME_BASE64 to put in username not + userid + + * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent + more stuff from being in a context name, to make the protocol + simpler to deal with + + * dbus/dbus-errors.c (dbus_error_has_name): new function + (dbus_error_is_set): new function + + * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth + with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1 + + * dbus/dbus-connection.c (dbus_connection_flush): also read + messages during a flush operation + + * dbus/Makefile.am: remove dbus-md5 since it isn't currently used. + +2003-03-05 Anders Carlsson + + * configure.in: Check for gethostbyname on Solaris. + + * dbus/dbus-transport.c: (_dbus_transport_open): + Remove duplicate "tcp" entry. + + * doc/dbus-specification.sgml: + Clarify some things. + +2003-03-05 Anders Carlsson + + * dbus/dbus-auth.c: (send_rejected), (process_test_subdir): + * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir), + (_dbus_keyring_test): + * dbus/dbus-md5.c: (_dbus_md5_compute): + * dbus/dbus-sha.c: (_dbus_sha_compute): + Plug memory leaks. + +2003-03-05 Anders Carlsson + + * README: Add some things. + +2003-03-04 Anders Carlsson + + * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break; + after case DBUS_TYPE_BOOELAN. + +2003-03-02 Havoc Pennington + + * test/break-loader.c (randomly_set_extreme_ints): add test that + sets really huge and small integers + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check + that length of boolean array fits in the string, and that + string has room for boolean value in single-bool case. + + * dbus/dbus-message-builder.c (_dbus_message_data_load): add + optional value to "ALIGN" command which is what to fill the + alignment with. + + * test/data/valid-messages/no-padding.message: add regression + test for the message padding problem + +2003-03-02 Havoc Pennington + + * dbus/dbus-message.c (decode_header_data): fix to always init + message_padding, from Benjamin Dauvergne + +2003-03-02 Havoc Pennington + + * configure.in: 0.5 + + * NEWS: Update. + +2003-03-01 Joe Shaw + + * configure.in: Check for "struct cmsgcred" and try to access its + members for BSD-like unices. + + * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into + _dbus_read_credentials_unix_socket(). + (_dbus_read_credentials_unix_socket): Use recvmsg() instead of + read() for reading the credential byte off the unix socket. Use + struct cmsgcred on systems that support it. + +2003-02-27 Alexander Larsson + + * glib/Makefile.am: + * configure.in: + Make gthreads-2.0 dependency optional. Don't build thread test if + its not found. + +2003-02-27 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply_and_block): fix doh! + doh! doh! bug that resulted in never removing a reply from the + queue, no wonder we called get_reply_serial so much ;-) + + * dbus/dbus-message.c (struct DBusMessage): cache reply serial + and client serial instead of demarshaling them every time + +2003-02-27 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much + more inlined, using dbus-string-private.h, speeds things up + substantially + + * dbus/dbus-string.c (_dbus_string_free): apply align offset + when freeing the string + (_dbus_string_steal_data): fix for align offset + (undo_alignment): new function + +2003-02-26 Havoc Pennington + + All kinds of audit fixes from Owen, plus initial attempt to + handle unaligned memory returned from malloc. + + * dbus/dbus-string.c (_dbus_string_init): clamp max length to + leave room for align_offset and nul byte + (fixup_alignment): function to track an align_offset and + ensure real->str is aligned + (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, + to allow a nul byte plus align offset + (_dbus_string_lock): fix overflow issue + (_dbus_string_init_const_len): add assertions on sanity of len, + assign allocated to be ALLOCATION_PADDING larger than len + (set_length): fixup the overflow handling + (_dbus_string_get_data_len): fix overflow in assertion + (open_gap): detect overflow in size of gap to be opened + (_dbus_string_lengthen): add overflow check + (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE + (_dbus_string_append): add overflow check + (_dbus_string_append_unichar): overflow + (_dbus_string_delete): fix overflow in assertion + (_dbus_string_copy_len): overflow in assertion + (_dbus_string_replace_len): overflows in assertions + (_dbus_string_find): change to implement in terms of + _dbus_string_find_to + (_dbus_string_find_to): assorted fixage + (_dbus_string_equal_c_str): assert c_str != NULL, + fix logic so the function works + (_dbus_string_ends_with_c_str): fix overflow thingy + (_dbus_string_base64_encode): overflow fix + (_dbus_string_validate_ascii): overflow + (_dbus_string_validate_nul): overflow + +2003-02-26 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS + +2003-02-26 Alexander Larsson + + * configure.in: + Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0 + + * dbus/dbus-connection.c: + * dbus/dbus-connection.h: + Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch. + Add dbus_connection_set_wakeup_main_function and use it when queueing + incoming and outgoing messages. + + + * dbus/dbus-dataslot.c: + Threadsafe usage of DBusDataSlotAllocator + + * dbus/dbus-message.c: (dbus_message_get_args_iter): + dbus_new can fail. + + * dbus/dbus-server-unix.c: + Add todo comment + + * glib/dbus-gmain.c: + Implement the new wakeup functions for glib. + + * glib/Makefile.am: + * glib/test-thread-client.c: + * glib/test-thread-server.c: + * glib/test-thread.h: + Initial cut at some thread test code. Not really done yet. + +2003-02-26 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply_and_block): fix crash + where we ref'd the outgoing message instead of the returned reply + + * dbus/dbus-transport-unix.c (do_authentication): check read watch + at the end of this function, so if we didn't need to read for + authentication, we reinstall it for receiving messages + + * dbus/dbus-message.c (dbus_message_new_reply): allow replies to + a NULL sender for peer-to-peer case + + * dbus/dbus-transport-unix.c (check_read_watch): handle + !authenticated case correctly + + * glib/dbus-gmain.c: add support for DBusServer + + * dbus/dbus-server.c: add data slot support + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check + return values and handle errors + + * dbus/dbus-dataslot.c: factor out the data slot stuff from + DBusConnection + + * Doxyfile.in (INPUT): add glib subdir + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename + setup_with_g_main instead of hookup_with_g_main; write docs + +2003-02-24 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg): + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + * dbus/dbus-message.c: (dbus_message_append_boolean), + (dbus_message_append_boolean_array), + (dbus_message_get_args_valist), (_dbus_message_test): + * dbus/dbus-message.h: + * doc/dbus-specification.sgml: + Various fixes as pointed out by Havoc. + + * test/data/invalid-messages/bad-boolean-array.message: + * test/data/invalid-messages/bad-boolean.message: + Add invalid boolean value test cases. + +2003-02-24 Anders Carlsson + + * dbus/dbus-internals.c: (_dbus_type_to_string): + * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), + (_dbus_marshal_validate_arg): + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + * dbus/dbus-message.c: (dbus_message_append_args_valist), + (dbus_message_append_boolean), (dbus_message_append_boolean_array), + (dbus_message_get_args_valist), (dbus_message_iter_get_boolean), + (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32), + (dbus_message_iter_get_double), + (dbus_message_iter_get_boolean_array), (message_iter_test): + * dbus/dbus-message.h: + * dbus/dbus-protocol.h: + * doc/dbus-specification.sgml: + * test/data/valid-messages/lots-of-arguments.message: + Add support for boolean and boolean array types. + +2003-02-23 Havoc Pennington + + * dbus/dbus-keyring.c: finish most of this implementation and + simple unit test + + * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make + these barf if the error isn't cleared to NULL + + * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure + (_dbus_create_directory): new function + + * dbus/dbus-errors.c (dbus_set_error): fix warning + + * dbus/dbus-string.c (_dbus_string_hex_encode): new function + (_dbus_string_hex_decode): new function + (test_hex_roundtrip): test code + + * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode + + * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode + + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use + the save-to-temp/rename trick to atomically write the new file + (_dbus_string_parse_uint): new function + +2003-02-22 Havoc Pennington + + * test/Makefile.am (dist-hook): fix dist for test/data/sha-1 + +2003-02-22 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_iter_get_string_array): + (dbus_message_iter_get_byte_array): Fix up doxygen warnings + + * dbus/dbus-sha.c: add implementation of SHA-1 algorithm + + * dbus/test/data/sha-1: add US government test suite for SHA-1 + +2003-02-21 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): + Make string arrays NULL-terminated. + + * dbus/dbus-memory.c: (dbus_free_string_array): + * dbus/dbus-memory.h: + New function for freeing NULL-terminated string arrays. + + * dbus/dbus-message-builder.c: (append_quoted_string), + (_dbus_message_data_load): + Add support for array types. + + * dbus/dbus-message.c: (check_message_handling): + Add more types as test cases. + + * dbus/dbus-sysdeps.c: (_dbus_string_parse_int), + (_dbus_string_parse_double): + Add the start offset to the end offset. + + * test/data/valid-messages/lots-of-arguments.message: + New test message with lots of arguments. + +2003-02-21 Anders Carlsson + + * dbus/dbus-message.c: (dbus_message_append_nil), + (dbus_message_append_int32), (dbus_message_append_uint32), + (dbus_message_append_double), (dbus_message_append_string), + (dbus_message_append_int32_array), + (dbus_message_append_uint32_array), + (dbus_message_append_double_array), + (dbus_message_append_byte_array), + (dbus_message_append_string_array): + Fix all out-of-memory handling in these functions. + +2003-02-21 Anders Carlsson + + * dbus/dbus-message.c: (dbus_message_append_nil): + Fix a silly. + +2003-02-21 Anders Carlsson + + * dbus/dbus-message.c: (dbus_message_append_args_valist), + (dbus_message_append_nil), (dbus_message_append_int32_array), + (dbus_message_append_uint32_array), + (dbus_message_append_double_array), + (dbus_message_append_byte_array), + (dbus_message_append_string_array), (dbus_message_get_args_valist), + (dbus_message_iter_get_int32_array), + (dbus_message_iter_get_uint32_array), + (dbus_message_iter_get_double_array), + (dbus_message_iter_get_byte_array), + (dbus_message_iter_get_string_array): + + * dbus/dbus-message.h: + Add functions for appending and getting arrays. + +2003-02-21 Anders Carlsson + + * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the + element size at least 8 bytes, fixes mempool tests on + 64-bit machines. + +2003-02-20 Alexander Larsson + + * dbus/dbus-transport-unix.c (unix_do_iteration): + Unlock the connection mutex during a blocking select call. + Add todo about how we need a way to wake up the select. + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: + Add _dbus_connection_lock and _dbus_connection_unlock. + +2003-02-19 Havoc Pennington + + * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in + Doxyfile.in, not Doxyfile + + * dbus/dbus-keyring.c: do some hacking on this + + * dbus/dbus-sysdeps.c (_dbus_delete_file): new + + * dbus/dbus-errors.c (dbus_set_error_const): do not call + dbus_error_init + (dbus_set_error): remove dbus_error_init, check for message == + NULL *before* we sprintf into it, and add @todo about including + system headers in this file + + * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new + + * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add + + * dbus/dbus-sysdeps.c (get_user_info): break this function out to + get various bits of user information based on either username + or user ID + (_dbus_homedir_from_username): new function + +2003-02-19 Anders Carlsson + + * configure.in: + Add check for nonposix getpwnam_r + + * dbus/dbus-mempool.c: (_dbus_mem_pool_new): + Align the pool element size to a sizeof (void *) boundary. + + * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket), + (_dbus_listen_unix_socket), (_dbus_credentials_from_username): + General Solaris fixes. + + * test/data/valid-messages/simplest-manual.message: + Explicitly state that we want little-endian packing. + +2003-02-19 Mikael Hallendal + + * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): + Added to create a transport connecting using a tcp/ip socket. + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect + to a tcp socket at given host and port. + (_dbus_listen_tcp_socket): added to listen on tcp socket for given + hostname and port. + + * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. + + * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): + Added to create a server listening on a TCP/IP socket. + +2003-02-19 Havoc Pennington + + Throughout: mop up all the Doxygen warnings and undocumented + stuff. + + * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want + to search any paths. + + * dbus/dbus-threads.c: move global mutex initializers to + dbus-internals.h, multiple prototypes was confusing doxygen + besides being kind of ugly + + * Doxyfile (PREDEFINED): have Doxygen define + DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from + docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS + (do not abuse the feature! it's for stuff like the autogenerated + macros in dbus-md5.c, not just for things you don't feel like + documenting...) + +2003-02-18 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_zero): new function + + * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch, + wrap it in some dbus-friendly API + + * dbus/dbus-types.h: add 16-bit types + +2003-02-18 Joe Shaw + + * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get + credentials from our currently running process. + (get_word): Fix a buglet where we were copying the entire length + instead of relative to our position. + + * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the + keys on the stack... it's 640k of data. + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always + read the credentials byte off the socket, even if we don't have + SO_PEERCRED. + (_dbus_poll): Implement poll() using select() for systems which + don't have it. + + * glib/test-dbus-glib.c (main): Print out an error if no + parameters are given. + + * test/data/auth/fallback.auth-script: Added. Tests that a client + can fallback to a secondary auth mechanism if the first fails. + +2003-02-18 Havoc Pennington + + * AUTHORS: add Alex + +2003-02-17 Havoc Pennington + + * doc/dbus-specification.sgml: lots of cosmetic + cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS + env variable to DBUS_BUS_ADDRESS, s/client/application/, + s/server/bus/ (except in authentication section). Add a section + "Message Bus Message Routing" + +2003-02-17 Anders Carlsson + + Release 0.4 + + * NEWS: Update + +2003-02-17 Anders Carlsson + + * doc/dbus-specification.sgml: + Specification updates. + +2003-02-17 Anders Carlsson + + * bus/activation.c: (bus_activation_init), (child_setup), + (bus_activation_activate_service): + * bus/activation.h: + * bus/main.c: (main): + Set DBUS_ADDRESS environment variable. + + * dbus/dbus-errors.c: (dbus_set_error): + Don't use va_copy since that's a C99 feature. + + * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec), + (_dbus_spawn_async): + * dbus/dbus-sysdeps.h: + Add child_setup_func to _dbus_spawn_async. + + * doc/dbus-specification.sgml: + Update specification. + + * test/spawn-test.c: (setup_func), (main): + Fix test. + +2003-02-17 Alexander Larsson + + * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked): + Added todo. + +2003-02-17 Anders Carlsson + + * doc/.cvsignore: + * doc/Makefile.am: + * doc/dbus-test-plan.sgml: + Add test plan document. + + * test/Makefile.am: + Fix distcheck. + +2003-02-17 Anders Carlsson + + * dbus/dbus-message.c: (decode_header_data), + (_dbus_message_loader_return_buffer): + Set the header padding amount when loading a message. + +2003-02-16 Anders Carlsson + + * bus/dispatch.c: (send_one_message): + Only send broadcast messages to registered connections. + + * dbus/dbus-message.c: (dbus_message_name_is): + * dbus/dbus-message.h: + New convenience function. + + * dbus/dbus-transport-debug.c: (do_reading): + Only dispatch one message per run. + + * test/Makefile.am: + * test/bus-test.c: (new_connection_callback), (die), + (test_hello_client1_handler), (test_hello_client2_handler), + (test_hello_replies), (main): + + * test/bus-test-loop.[ch]: + Add these. + +2003-02-16 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix + backward conditional + +2003-02-16 Alexander Larsson + + * dbus/dbus-connection.c: + Implement sent_message_with_reply. (with_reply_and block is still + busted). + Made dispatch_message not lose message if OOM. + + * dbus/dbus-errors.h: + Add NoReply error (for reply timeouts). + +2003-02-16 Alexander Larsson + + * dbus/dbus-hash.c (_dbus_hash_table_unref): + Actually free keys and values when destroying hashtable. + +2003-02-16 Anders Carlsson + + * dbus/dbus-auth.c: (client_try_next_mechanism): + Plug a leak. + + * dbus/dbus-threads.c: (dbus_condvar_wait_timeout): + Return TRUE if there's no thread implementation around. + + * glib/dbus-gmain.c: (free_source), + (dbus_connection_hookup_with_g_main): + Make sure to remove the GSource when the connection is finalized. + +2003-02-16 Anders Carlsson + + * bus/dispatch.c: (bus_dispatch_message_handler): + * dbus/dbus-errors.h: + Return an error if someone tries to send a message to a service + that doesn't exist. + +2003-02-16 Anders Carlsson + + * bus/activation.c: (load_directory), (bus_activation_init), + (bus_activation_activate_service): + * bus/activation.h: + * bus/driver.c: + (bus_driver_handle_activate_service), (bus_driver_handle_message): + More work on the activation handling. + + * dbus/dbus-errors.h: + Add some error messages + + * dbus/dbus-message.c: (dbus_message_new_error_reply): + * dbus/dbus-message.h: + New function that creates an error message. + + * dbus/dbus-protocol.h: + Add ACTIVATE_SERVER message. + + * dbus/dbus-server-unix.c: (unix_handle_watch), + (_dbus_server_new_for_domain_socket): + Call _dbus_fd_set_close_on_exec. + + * dbus/dbus-sysdeps.c: (make_pipe), (do_exec), + (_dbus_spawn_async), (_dbus_disable_sigpipe), + (_dbus_fd_set_close_on_exec): + * dbus/dbus-sysdeps.h: + Add _dbus_fd_set_close_on exec function. Also add function that checks + that all open fds are set to close-on-exec and warns otherwise. + + * dbus/dbus-transport-unix.c: + (_dbus_transport_new_for_domain_socket): + Call _dbus_fd_set_close_on_exec. + +2003-02-16 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe): + allow people to avoid setting SIGPIPE to SIG_IGN + (_dbus_connection_new_for_transport): disable SIGPIPE unless + we've been asked not to + +2003-02-15 Anders Carlsson + + * dbus/dbus-list.c: (_dbus_list_append_link), + (_dbus_list_prepend_link): + * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0), + (dbus_realloc): + Warning fixes. + +2003-02-15 Anders Carlsson + + * bus/Makefile.am: + * bus/activation.c: (bus_activation_entry_free), + (add_desktop_file_entry), (load_directory), (bus_activation_init): + * bus/activation.h: + * bus/main.c: (main): + Add simple activation support, doesn't work yet though. + +2003-02-15 Zack Rusin + + * qt/dbus-qthread.cpp: small casting fix + +2003-02-15 Anders Carlsson + + * dbus/dbus-errors.c: (dbus_set_error): + * dbus/dbus-errors.h: + Add a few errors and make dbus_set_error void. + + * dbus/dbus-sysdeps.c: + (_dbus_errno_to_string), (close_and_invalidate), (make_pipe), + (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async): + * dbus/dbus-sysdeps.h: + Add _dbus_spawn_async. + + * test/spawn-test.c: (main): + Test for _dbus_spawn_async. + +2003-02-15 Anders Carlsson + + * dbus/dbus-internals.h: + Fix build without tests. + + * dbus/dbus-list.c: (alloc_link): + Fix a segfault when a malloc fails. + + * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc), + (dbus_malloc0), (dbus_realloc): + Add support for malloc debugging. + +2003-02-15 Alexander Larsson + + * dbus/dbus-threads.c: + * dbus/dbus-threads.h: + Add condvars. Remove static mutext from API. + Implement static mutexes by initializing them from threads_init. + + * glib/dbus-gthread.c: + * qt/dbus-qthread.cpp: + Update with the thread api changes. + + + * dbus/dbus-list.c: + * dbus/dbus-list.h: + Turn StaticMutex into normal mutex + init function. + Export new functions _dbus_list_alloc_link, _dbus_list_free_link, + _dbus_list_append_link, _dbus_list_prepend_link + + + * dbus/dbus-sysdeps.c: + * dbus/dbus-sysdeps.h: + New type dbus_atomic_t, and new functions _dbus_atomic_inc, + _dbus_atomic_dec. Only slow fallback implementation at the moment. + + * dbus/dbus-protocol.h: + Add DBUS_MESSAGE_LOCAL_DISCONNECT define + + * dbus/dbus-message.c: + Make ref/unref atomic. + Fix some docs. + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: + * dbus/dbus-connection.h: + Make threadsafe. + Change _peek to _borrow,_return & _steal_borrowed. + Change disconnect callback to event. + Make dbus_connection_dispatch_messages reentrant. + + * dbus/dbus-transport.c: + Don't ref the connection on calls to the transport + implementation. + + * dbus/dbus-message-handler.c: + Make threadsafe. + + * glib/dbus-gmain.c: + Don't use peek_message anymore + + * test/Makefile.am: + * test/debug-thread.c: + * test/debug-thread.h: + Simple thread implementation that asserts() on deadlocks in + single-threaded code. + + * test/bus-test.c: + (main) Call debug_threads_init. + + * test/watch.c: + Use disconnect message instead of disconnect callback. + + * bus/connection.c: + * bus/connection.h: + Don't call dbus_connection_set_disconnect_function. Instead export + bus_connection_disconnect. + + * bus/dispatch.c: + Call bus_connection_disconnect when we get a disconnected message. + +2003-02-15 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_new): fool around with the + docs + +2003-02-14 Havoc Pennington + + * dbus/dbus-mempool.c: fail if the debug functions so indicate + + * dbus/dbus-memory.c: fail if the debug functions indicate we + should + + * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter) + (_dbus_decrement_fail_alloc_counter): debug functions to + simulate memory allocation failures + +2003-02-14 Havoc Pennington + + * dbus/dbus-errors.h (struct DBusError): add a word of padding + to DBusError + +2003-02-13 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_hello): + * bus/driver.h: + * bus/services.c: (bus_service_lookup): + Reorder message sending so we get a more sane order. + + * test/bus-test.c: (message_handler): + Fix tyop. + +2003-02-13 Anders Carlsson + + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), + (bus_driver_handle_acquire_service), + (bus_driver_handle_service_exists): + * dbus/dbus-bus.c: (dbus_bus_register_client), + (dbus_bus_acquire_service), (dbus_bus_service_exists): + * dbus/dbus-errors.c: (dbus_result_to_string): + * dbus/dbus-errors.h: + * dbus/dbus-message.c: (dbus_message_append_args), + (dbus_message_append_args_valist), (dbus_message_get_args), + (dbus_message_get_args_valist), (dbus_message_get_args_iter), + (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string), + (dbus_message_iter_get_byte_array), + (dbus_message_iter_get_string_array), (message_iter_test), + (check_message_handling), (_dbus_message_test): + * dbus/dbus-message.h: + * test/bus-test.c: (main): + Change fields to arguments in messages, so that they won't be + confused with header fields. + + * glib/test-dbus-glib.c: (main): + Remove append_fields from hello message. + +2003-02-13 Anders Carlsson + + * dbus/dbus-errors.c: + * dbus/dbus-message.c: + * dbus/dbus-string.c: + Documentation fixes. + +2003-02-13 Anders Carlsson + + * glib/dbus-gmain.c: (timeout_handler), (add_timeout), + (remove_timeout): + Implement support for timeouts in dbus-glib. + +2003-02-13 Anders Carlsson + + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + * dbus/dbus-message.c: (process_test_subdir): + * test/break-loader.c: (find_breaks_based_on): + Plug some memory leaks. + +2003-02-13 Richard Hult + + * bus/main.c: Fix build. + + * dbus/dbus-errors.h: + * dbus/dbus-errors.c: Fix copyright for Anders. + +2003-02-13 Anders Carlsson + + * bus/Makefile.am: + Add utils.[ch] + + * bus/connection.c: (bus_connection_foreach): + Fix a warning. + + * bus/desktop-file.c: (grow_lines_in_section), (grow_sections), + (unescape_string), (new_section), (parse_section_start), + (parse_key_value), (report_error), (bus_desktop_file_load), + (bus_desktop_file_get_string): + * bus/desktop-file.h: + Use DBusError for error reporting. + + * bus/dispatch.c: (send_one_message), + (bus_dispatch_message_handler): + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), + (bus_driver_handle_acquire_service), + (bus_driver_handle_service_exists): + * bus/loop.c: (bus_loop_run): + * bus/main.c: + Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM. + + * bus/utils.c: (bus_wait_for_memory): + * bus/utils.h: + New files with general utility functions. + + * dbus/dbus-internals.h: + Remove _DBUS_HANDLE_OOM. + +2003-02-13 Anders Carlsson + + * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init), + (dbus_error_free), (dbus_set_error_const), (dbus_set_error): + * dbus/dbus-errors.h: + Add DBusError structure. + +2003-02-13 Anders Carlsson + + * test/data/valid-messages/standard-acquire-service.message: + * test/data/valid-messages/standard-hello.message: + * test/data/valid-messages/standard-list-services.message: + * test/data/valid-messages/standard-service-exists.message: + Add some standard messages. + +2003-02-13 Anders Carlsson + + * bus/driver.c: (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), + (bus_driver_handle_acquire_service), + (bus_driver_handle_service_exists), (bus_driver_handle_message): + Update for API changes in libdbus. + + * dbus/dbus-message.c: (dbus_message_new_reply): + * dbus/dbus-message.h: + Remove the name argument. The spec states that replies shouldn't + have a name. + +2003-02-13 Anders Carlsson + + * bus/desktop-file.c: (parse_section_start), (parse_key_value), + (report_error), (bus_desktop_file_load), (lookup_section), + (lookup_line), (bus_desktop_file_get_raw), + (bus_desktop_file_get_string): + * bus/desktop-file.h: + Some fixes, and new functions for getting a key value from a section. + +2003-02-13 Havoc Pennington + + * test/data/auth/fail-after-n-attempts.auth-script: new test + + * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we + reject the client. + +2003-02-13 Havoc Pennington + + * dbus/dbus-auth.c (handle_server_data_external_mech): args to + dbus_credentials_match were backward + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): support + NO_CREDENTIALS and ROOT_CREDENTIALS + + * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine + into here. Never process more commands after we've reached an + end state; store further data as unused bytes. + + * test/data/auth/*: add more auth tests + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT + command to match exact string and EXPECT_UNUSED to match unused + bytes + + * test/Makefile.am (dist-hook): fix to dist all the test stuff + +2003-02-12 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip + \r off of popped lines + + * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth + scripts + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a + SEND, append \r\n + +2003-02-12 Havoc Pennington + + * dbus/Makefile.am: remove break-loader from the build, since it + moved. + + * configure.in: add --enable-gcov to turn on coverage profiling + flags and disable optimization + +2003-02-10 Havoc Pennington + + * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync + initial cut at test framework for DBusAuth from laptop. + Doesn't quite work yet but it compiles and I need to get + it off the 266mhz laptop. ;-) + + * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport): + fix a memleak in error case + +2003-02-12 Anders Carlsson + + * bus/Makefile.am: + * bus/desktop-file.c: + * bus/desktop-file.h: + Add a desktop file parser. + +2003-02-11 Zack Rusin + + * qt/message.[h|cpp]: sample implementation + of the KDE wrapper for DBusMessage + +2003-02-09 Zack Rusin + + * test/bus-test.c: make_it_compile + * doc/dbus-specification.sgml: minimal semantic fix + +2003-02-06 Anders Carlsson + + Release 0.3 + + * NEWS: Update + +2003-02-06 Anders Carlsson + + * dbus/Makefile.am: + * dbus/dbus-break-loader.c: + * test/Makefile.am: + * test/break-loader.c: + Move dbus-break-loader to test/ and rename it to break-loader. + +2003-02-02 Havoc Pennington + + * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files + for code to manage cookies in your home directory + + * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function + + * dbus/dbus-auth.c (get_state): impose a maximum number of tries + to authenticate, then disconnect the client. + +2003-02-03 Alexander Larsson + + * dbus/dbus-message.c (dbus_message_append_fields): + Correct docs. + +2003-02-02 Anders Carlsson + + * doc/dbus-specification.sgml: + Update address format section. + +2003-02-02 Anders Carlsson + + * test/Makefile.am: + * test/bus-test.c: (get_time), (add_timeout), (remove_timeout), + (message_handler), (new_connection_callback), (loop_quit), + (loop_run), (main): + Add bus test. + +2003-02-02 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_service_exists): + Simplify the code a bit. + + * dbus/dbus-bus.c: (dbus_bus_service_exists): + Fix a silly. + +2003-02-02 Anders Carlsson + + * bus/Makefile.am: + Add libdbus-daemon.la and link to it. + +2003-02-01 James Willcox + + * bus/driver.c: (bus_driver_handle_own_service): + Actually include the service reply code in the message. + +2003-02-02 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_service_exists): + Don't unref the incoming message. + +2003-02-02 Anders Carlsson + + * dbus/dbus.h: Add dbus-address.h and dbus-bus.h + +2003-02-02 Anders Carlsson + + * dbus/dbus-server.c: (dbus_server_listen): + * dbus/dbus-transport.c: (_dbus_transport_open): + ifdef out the calls to the debug transport and server. + +2003-02-02 Alexander Larsson + + * dbus/dbus-watch.c (dbus_watch_get_flags): + Add note in the docs that ERROR or HANGUP won't be returned + and are assumed always on. + + * glib/dbus-gmain.c (add_watch): + Always add IO_ERR | IO_HUP + + * dbus/dbus-message.h: + Add semicolon after dbus_message_iter_get_string_array(). + Makes qt code build again + +2003-02-01 Anders Carlsson + + * bus/driver.c: (create_unique_client_name), + (bus_driver_handle_hello): + Don't take a name, just use a numeric id to identify + each client. + + * dbus/Makefile.am: + * dbus/dbus-bus.c: (dbus_bus_register_client), + (dbus_bus_acquire_service), (dbus_bus_service_exists): + * dbus/dbus-bus.h: + Add new convenience functions for communicating with the bus. + + * dbus/dbus-message.h: + + * dbus/dbus-protocol.h: + Fix a typo. + +2003-02-01 Alexander Larsson + + * dbus/dbus-message.c (dbus_message_append_fields): + Add some more doc comments. + +2003-02-01 Havoc Pennington + + * dbus/dbus-break-loader.c (randomly_modify_length): change + a 4-byte value in the message as if it were a length + + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set + execute bit on saved files + +2003-02-01 Havoc Pennington + + * dbus/dbus-break-loader.c (main): new program to find messages + that break the loader. + + * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function + + * dbus/dbus-string.c (_dbus_string_set_byte): new + +2003-01-31 Havoc Pennington + + * dbus/dbus-message.c: refactor the test code to be more general, + in preparation for writing a "randomly permute test cases to + try to break the loader" program. + +2003-01-31 Havoc Pennington + + * doc/dbus-specification.sgml: work on the specification + + * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check + the protocol version of the message. + + * dbus/dbus-protocol.h: drop special _REPLY names, the spec + no longer specifies that. + (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not + 1/2/3/4) + + * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing + "break" for DBUS_TYPE_NIL, remove @todo + +2003-01-31 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename + just set_is_error/get_is_error as this is a commonly-used + function, and write docs. + +2003-01-31 Anders Carlsson + + * dbus/dbus-address.c: (dbus_address_entry_free): + Free key and value lists. + + * dbus/dbus-internals.c: (_dbus_type_to_string): + Add the types we didn't have. + + * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), + (_dbus_marshal_validate_arg): + Add NIL types. + + * dbus/dbus-message.c: (dbus_message_set_sender): + Remove todo about being able to set sender to NULL. + + (dbus_message_set_is_error_reply), + (dbus_message_get_is_error_reply): + * dbus/dbus-message.h: + New functions. + + * dbus/dbus-protocol.h: + Add error reply flag. + + * test/data/valid-messages/opposite-endian.message: + Add NIL type to test. + +2003-01-31 Havoc Pennington + + * doc/dbus-specification.sgml: fully specify the header. Add + flags and major protocol version, and change header/body len to + unsigned. + + * dbus/dbus-message-builder.c (append_saved_length): append length + as uint32 + + * dbus/dbus-message.c (dbus_message_create_header): change header + length and body length to unsigned. Add the new fields from the + spec + (_dbus_message_loader_return_buffer): unsigned header/body len + +2003-01-30 Havoc Pennington + + * dbus/dbus-auth.c: rework to use only REJECTED, no + MECHANISMS + + * doc/dbus-sasl-profile.txt: drop MECHANISMS and just + use REJECTED, suggested by Mark McLoughlin + +2003-01-30 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_listen): @todo about how we need + a better way to report errors here. e.g. "unix address lacks + path" or something. also "no such file" when the path doesn't + exist, etc. + + * dbus/dbus-address.c (dbus_address_entries_free): add @todo about + leaking list nodes + (dbus_parse_address): add @todo about documenting address format, + and allowing , and ; to be escaped + +2003-01-30 Anders Carlsson + + * dbus/Makefile.am: + Add dbus-address.[ch] + + * dbus/dbus-address.c: (dbus_address_entry_free), + (dbus_address_entries_free), (create_entry), + (dbus_address_entry_get_method), (dbus_address_entry_get_value), + (dbus_parse_address), (_dbus_address_test): + * dbus/dbus-address.h: + New files for dealing with address parsing. + + * dbus/dbus-connection.c: + Document timeout functions. + + * dbus/dbus-message.c: + Document dbus_message_new_from_message. + + * dbus/dbus-server-debug.c: + Document. + + * dbus/dbus-server.c: (dbus_server_listen): + Parse address and use correct server implementation. + + * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test): + * dbus/dbus-string.h: + New function with test. + + * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests): + * dbus/dbus-test.h: + Add address tests. + + * dbus/dbus-transport-debug.c: + Document. + + * dbus/dbus-transport.c: (_dbus_transport_open): + Parse address and use correct transport implementation. + +2003-01-30 Havoc Pennington + + * dbus/dbus-message.c: use message->byte_order instead of + DBUS_COMPILER_BYTE_ORDER throughout. + (dbus_message_create_header): pad header to align the + start of the body of the message to 8-byte boundary + + * dbus/dbus-marshal.h: make all the demarshalers take const + DBusString arguments. + + * dbus/dbus-message.c (_dbus_message_loader_return_buffer): + validate message args here, so we don't have to do slow validation + later, and so we catch bad messages as they are incoming. Also add + better checks on header_len and body_len. Also fill in + message->byte_order + + * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not + implemented properly) + (_dbus_string_validate_nul): new function to check all-nul + + * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename + get_arg_end_pos and remove all validation + (_dbus_marshal_validate_arg): actually do validation here. + +2003-01-29 Havoc Pennington + + * dbus/dbus-message.c (check_message_handling): fix assertion + failure on set_client_serial + +2003-01-28 Havoc Pennington + + * dbus/dbus-server-debug.c: Add doc section comments + + * dbus/dbus-transport-debug.c: add doc section comments + +2003-01-28 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in + the reverse order from how I had it + (_dbus_string_base64_encode): reverse encoding order. I was + basically byteswapping everything during encoding. + +2003-01-28 Anders Carlsson + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: (_dbus_connection_add_timeout), + (_dbus_connection_remove_timeout): + Add functions for adding and removing timeouts. + + * dbus/dbus-message.c: (dbus_message_new_from_message): + Add new function that takes a message and creates an exact + copy of it, but with the refcount set to 1. + (check_message_handling): + Fix build error. + + * dbus/dbus-server-protected.h: + * dbus/dbus-server.c: (_dbus_server_init_base), + (_dbus_server_finalize_base), (_dbus_server_add_timeout), + (dbus_server_set_timeout_functions): + (_dbus_server_remove_timeout): + New functions so that a server can add and remove timeouts. + + (dbus_server_listen): + Add commented out call to dbus_server_debug_new. + + * dbus/dbus-timeout.c: (_dbus_timeout_new): + Actually set the handler, doh. + + * dbus/dbus-transport.c: (_dbus_transport_open): + Add commented out call to dbus_transport_debug_client_new. + + * dbus/Makefile.am: + Add dbus-transport-debug.[ch] and dbus-server-debug.[ch] + +2003-01-28 Havoc Pennington + + * dbus/dbus-message.c (check_message_handling): function to check + on the loaded message, iterates over it etc. + +2003-01-28 Havoc Pennington + + * test/Makefile.am (dist-hook): fix make distdir + + * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check + +2003-01-27 Havoc Pennington + + * dbus/dbus-mempool.c (time_for_size): replace printf with + _dbus_verbose + + * dbus/dbus-message-builder.c (_dbus_message_data_load): allow + empty lines; fix the SAVE_LENGTH stuff to be + START_LENGTH/END_LENGTH so it actually works; couple other + bugfixes + + * test/Makefile.am (dist-hook): add dist-hook for .message files + + * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy + can be constant or locked. + (_dbus_string_free): allow freeing a const string as + documented/intended + + * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility + + * dbus/dbus-test-main.c (main): take an argument which is the + directory containing test data + + * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir + argument to this and load all the messages in test/data/ + checking that they can be loaded or not loaded as appropriate. + +2003-01-27 Anders Carlsson + + * bus/dispatch.c: (bus_dispatch_message_handler): + Dispatch messages sent to services. + + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired): + Add helper functions for sending service related messages. + + (bus_driver_send_welcome_message): + Send HELLO_REPLY instead of WELCOME. + + (bus_driver_handle_list_services): + Send LIST_SERVICES_REPLY instead of SERVICES. + + (bus_driver_handle_own_service), + (bus_driver_handle_service_exists): + New message handlers. + + (bus_driver_handle_message): + Invoke new message handlers. + + (bus_driver_remove_connection): + Don't remove any services here since that's done automatically + by bus_service_remove_owner now. + + * bus/driver.h: + New function signatures. + + * bus/services.c: (bus_service_add_owner): + Send ServiceAcquired message if we're the only primary owner. + + (bus_service_remove_owner): + Send ServiceAcquired/ServiceLost messages. + + (bus_service_set_prohibit_replacement), + (bus_service_get_prohibit_replacement): + Functions for setting prohibit replacement. + + (bus_service_has_owner): + New function that checks if a connection is in the owner queue of + a certain service. + + * bus/services.h: + Add new function signatures. + + * dbus/dbus-list.c: (_dbus_list_test): + Add tests for _dbus_list_remove_last and traversing the list backwards. + + * dbus/dbus-list.h: + Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't + go any further, so return NULL then. + + * dbus/dbus-protocol.h: + Add new messages, service flags and service replies. + +2003-01-26 Havoc Pennington + + * dbus/dbus-message-builder.c: implement, completely untested. + + * test/data/*: add data to be used in testing. + ".message" files are our simple loadable text format. + ".message-raw" will be binary dumps of messages. + + * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new + +2003-01-26 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function + + * dbus/dbus-errors.c (dbus_result_to_string): add + file errors + + * dbus/dbus-message-builder.c: new file, will contain code to load + up messages from files. Not implemented yet. + +2003-01-26 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_set_sender): support deleting + the sender by setting to NULL + +2003-01-26 Havoc Pennington + + The unit tests pass, but otherwise untested. If it breaks, the + tests should have been better. ;-) + + * bus/driver.c (bus_driver_handle_hello): return if we disconnect + the connection. + + * dbus/dbus-message.c: redo everything so we maintain + message->header as the only copy of the various fields. + This avoids the possibility of out-of-memory in some cases, + for example dbus_message_lock() can't run out of memory anymore, + and avoids extra copying. Figured I may as well go ahead and do + this since it was busted for dbus_message_lock to not return + failure on OOM, and dbus_message_write_header was totally + unchecked for OOM. Also fixed some random other bugs. + + * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify + that strings are nul-terminated. Also, end_pos can be equal + to string length just not greater than, I think. + (_dbus_marshal_set_int32): new function + (_dbus_marshal_set_uint32): new function + (_dbus_marshal_set_string): new function + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix + a warning, init timeout_list to NULL + (dbus_connection_send_message): don't use uninitialized variable + "serial" + + * dbus/dbus-string.c (_dbus_string_replace_len): new function + +2003-01-26 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_hello), + (bus_driver_send_welcome_message): + Plug leaks + +2003-01-26 Anders Carlsson + + * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref): + * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), + (dbus_connection_unref): + * dbus/dbus-marshal.c: (_dbus_marshal_test): + * dbus/dbus-message.c: (dbus_message_unref), + Plug memory leaks. + + (dbus_message_get_fields): + Remove debugging printout. + + (_dbus_message_loader_return_buffer): + Don't store the header string. + + (_dbus_message_test): + Plug leaks. + +2003-01-26 Richard Hult + + * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of + the file descriptor list, since it can change under us. + +2003-01-25 Anders Carlsson + + * glib/dbus-gmain.c: (dbus_connection_prepare), + (dbus_connection_check), (dbus_connection_dispatch), (add_watch), + (remove_watch), (dbus_connection_hookup_with_g_main): + Rewrite the glib handling to use its own GSource instead of a + GIOChannel so we can catch messages put in the queue while waiting + for a reply. + +2003-01-25 Anders Carlsson + + * bus/Makefile.am: + * bus/connection.c: (connection_disconnect_handler), + (connection_watch_callback), (bus_connection_setup): + * bus/dispatch.c: (send_one_message), + (bus_dispatch_broadcast_message), (bus_dispatch_message_handler), + (bus_dispatch_add_connection), (bus_dispatch_remove_connection): + * bus/dispatch.h: + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), (bus_driver_remove_connection), + (bus_driver_handle_message): + * bus/driver.h: + Refactor code, put the message dispatching in its own file. Use + _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client + is disconnected. + +2003-01-25 Anders Carlsson + + * dbus/dbus-internals.h: + Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently. + + * dbus/dbus-message.c: (dbus_message_get_sender): + * dbus/dbus-message.h: + Implement dbus_message_get_sender. + + * dbus/dbus-protocol.h: + Add message and service defines. + +2003-01-25 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_client_serial), + (dbus_message_write_header): + Remove _dbus_messag_unlock and don't set the client serial on a + message if one already exists. + +2003-01-24 Havoc Pennington + + * dbus/dbus-list.c (alloc_link): put a thread lock on the global + list_pool + + * bus/driver.c (bus_driver_handle_list_services): fix a leak + on OOM + +2003-01-25 Anders Carlsson + + * dbus/dbus-list.c: (alloc_link), (free_link): + Use a memory pool for the links. + +2003-01-25 Anders Carlsson + + * bus/connection.c: (bus_connection_foreach): + * bus/connection.h: + Add new bus_connection_foreach function. + + * bus/driver.c: (send_one_message), (bus_driver_broadcast_message): + Add function that broadcasts a message to all clients. + + (bus_driver_send_service_created), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), (bus_driver_message_handler): + Implement functions that take care of listing services, and notifying + clients when new services are created. + + * bus/services.c: (bus_services_list): + * bus/services.h: + Add new function that returns an array of strings with the currently + registered services. + + * glib/dbus-glib.h: + * glib/dbus-gmain.c: + Update copyright year. + +2003-01-25 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + Unlock the message in case it was sent earlier. + + (dbus_connection_send_message_with_reply_and_block): + Remove the reply message from the list. + + * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): + Set array_len and new_pos correctly. + + (_dbus_marshal_test): + Remove debug output. + + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_reply_serial): + New function that returns the reply serial. + + (_dbus_message_unlock): + New function that unlocks a message and resets its header. + + (dbus_message_append_string_array), + (dbus_message_get_fields_valist), + (dbus_message_iter_get_field_type), + (dbus_message_iter_get_string_array), + (dbus_message_get_fields), + (dbus_message_append_fields_valist): + Handle string arrays. + + (dbus_message_set_sender): + Make this function public since the bus daemon needs it. + + (decode_header_data): + Set the reply serial to -1 initially. + + * dbus/dbus-message.h: + Add dbus_message_set_sender. + +2003-01-24 Havoc Pennington + + * doc/dbus-specification.sgml: add some stuff + +2003-01-22 Havoc Pennington + + * doc/dbus-specification.sgml: Start to document the protocol. + +2003-01-22 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply_and_block): add some @todo + + * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak + +2003-01-21 Havoc Pennington + + (patch untested because can't compile) + + * bus/driver.c (create_unique_client_name): make this function + never recycle client names. Also, caller should initialize + the DBusString. + + * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function + +2003-01-21 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_double), + (_dbus_marshal_int32), (_dbus_marshal_uint32), + (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array), + (_dbus_marshal_double_array), (_dbus_marshal_string_array), + (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), + (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), + (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-protocol.h: + Add support for marshalling and demarshalling integer, double + and string arrays. + +2003-01-21 Anders Carlsson + + * bus/Makefile.am: + Add driver.[ch] + + * bus/connection.c: (connection_disconnect_handler): + Remove the connection from the bus driver's list. + + (connection_watch_callback): Dispatch messages. + + (free_connection_data): Free connection name. + + (bus_connection_setup): Add connection to the bus driver's list. + (bus_connection_remove_owned_service): + (bus_connection_set_name), (bus_connection_get_name): + Add functions for setting and getting the connection's name. + + * bus/connection.h: + Add function headers. + + * bus/driver.c: (create_unique_client_name), + (bus_driver_handle_hello_message), + (bus_driver_send_welcome_message), (bus_driver_message_handler), + (bus_driver_add_connection), (bus_driver_remove_connection): + * bus/driver.h: + * bus/main.c: + * bus/services.c: (bus_service_free): + * bus/services.h: + New file that handles communication and registreation with the bus + itself. + +2003-01-21 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + Add a new client_serial parameter. + + (dbus_connection_send_message_with_reply): + Remove a @todo since we've implemented the blocking function. + + (dbus_connection_send_message_with_reply_and_block): + New function that sends a message and waits for a reply and + then returns the reply. + + * dbus/dbus-connection.h: + Add new functions. + + * dbus/dbus-errors.c: (dbus_result_to_string): + * dbus/dbus-errors.h: + Add new DBUS_RESULT. + + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_reply_serial), + (_dbus_message_set_sender), (dbus_message_write_header), + (dbus_message_new_reply), (decode_header_data), + (_dbus_message_loader_return_buffer), (_dbus_message_test): + * dbus/dbus-message.h: + Add new functions that set the reply serial and sender. + Also marshal and demarshal them correctly and add test. + + * dbus/dbus-protocol.h: + Add new DBUS_MESSAGE_TYPE_SENDER. + + * glib/dbus-glib.h: + * glib/dbus-gmain.c: (watch_callback), (free_callback_data), + (add_watch), (remove_watch), (add_timeout), (remove_timeout), + (dbus_connection_hookup_with_g_main): + * glib/test-dbus-glib.c: (main): + Rewrite to use GIOChannel and remove the GSource crack. + + * test/echo-client.c: (main): + * test/watch.c: (check_messages): + Update for changed APIs + +2003-01-19 Anders Carlsson + + * dbus/Makefile.am: Add dbus-timeout.[cħ] + + * dbus/dbus-connection.c: (_dbus_connection_new_for_transport): + Create a DBusTimeoutList. + (dbus_connection_set_timeout_functions): Add new function to + set timeout callbacks + + * dbus/dbus-connection.h: Add public DBusTimeout API. + + * dbus/dbus-message.c: (dbus_message_get_service): + * dbus/dbus-message.h: New function. + + * dbus/dbus-server.c: Fix small doc typo. + + * dbus/dbus-timeout.[ch]: New files for mainloop timeouts. + +2003-01-19 Anders Carlsson + + * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all + of the string, just as long as specified. + +2003-01-19 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_get_is_authenticated): + new function + + * dbus/dbus-server.c (dbus_server_set_max_connections) + (dbus_server_get_max_connections, dbus_server_get_n_connections): + keep track of current number of connections, and add API for + setting a max (but haven't implemented enforcing the max yet) + +2003-01-18 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): only do the + reading/writing if read_watch != NULL or write_watch != NULL. + + * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix + the message loader code to actually load message->header and + message->body into the newly-created message. + + * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak + in OOM case + + * dbus/dbus-connection.c (dbus_connection_set_max_message_size) + (dbus_connection_get_max_message_size) + (dbus_connection_set_max_live_messages_size) + (dbus_connection_get_max_live_messages_size): implement some + resource limitation functions + + * dbus/dbus-resources.c: new file implementing some of the + resource limits stuff + + * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add + missing docs, add @todo to handle OOM etc. + + * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing + docs + +2003-01-18 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_unref): disconnect the + connection if it hasn't been already. + + * dbus/dbus-connection.h: kill off the idea of an ErrorFunction, + replace with DisconnectFunction. + +2003-01-18 Havoc Pennington + + Building --disable-verbose-mode --disable-asserts --disable-tests + cuts the library from 112K to 45K or so + + * configure.in: check for varargs macro support, + add --enable-verbose-mode, --enable-asserts. + + * dbus/dbus-internals.h (_dbus_assert): support + DBUS_DISABLE_ASSERT + (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE + +2003-01-18 Havoc Pennington + + * dbus/dbus-test.c: include config.h so that tests actually run + + * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned, + so the failure mode when that assumption fails will be plenty + obvious. + +2003-01-18 Havoc Pennington + + * configure.in: default --enable-tests to $USE_MAINTAINER_MODE + + * dbus/Makefile.am: fix it up so dubs-test-main.c is included in + the distribution + + * test/Makefile.am: don't use special variable "TESTS" for echo-* + since we don't want to use those in make check + +2003-01-15 Havoc Pennington + + Release 0.2 + + * NEWS: update + +2003-01-15 Havoc Pennington + + * test/Makefile.am: fix so that test source code ends up in the + distribution on make distcheck + +2003-01-15 Havoc Pennington + + Release 0.1. + + * NEWS: update + +2003-01-15 Havoc Pennington + + * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests): + fix build when --disable-tests + + * Makefile.am (EXTRA_DIST): put HACKING in here + + * HACKING: document procedure for making a tarball release. + +2003-01-14 Anders Carlsson + + * bus/connection.c: (connection_error_handler), + (bus_connection_setup): + * bus/main.c: (main): + Make sure that the DBusConnectionData struct is NULLed + out to prevent a segfault. + + * dbus/dbus-errors.c: (dbus_result_to_string): + * dbus/dbus-errors.h: + * dbus/dbus-message.c: (dbus_message_get_fields), + (dbus_message_get_fields_valist), (_dbus_message_test): + * dbus/dbus-message.h: + Make dbus_message_get_fields return a result code so we can + track invalid fields as well as oom. + +2003-01-11 Havoc Pennington + + * configure.in: change --enable-test/--enable-ansi action-if-given + to enable_foo=$enableval instead of enable_foo=yes + +2003-01-08 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_align_length): new function + + * dbus/dbus-test-main.c: move main() for test app here + * dbus/dbus-test.c + (dbus_internal_symbol_do_not_use_run_tests): we have to export a + symbol to run tests, because dbus-test isn't in the main + library + + Code review nitpicks. + + * dbus/dbus-message.c (dbus_message_write_header): add newlines + for people with narrow emacs ;-). Assert client_serial was filled + in. Assert message->name != NULL. + (dbus_message_append_fields): have "first_field_type" arg separate + from va list, needed for C++ binding that also uses varargs IIRC + and helps with type safety + (dbus_message_new): add @todo about using DBusString to store + service/name internally + (dbus_message_new): don't leak ->service and ->name on OOM later + in the function + (dbus_message_unref): free the service name + (dbus_message_get_fields): same change to varargs + i.e. first_field_type + (_dbus_message_loader_return_buffer): assert that the message data + is aligned (if not it's a bug in our code). Put in verbose griping + about why we set corrupted = TRUE. + (decode_header_data): add FIXME that char* is evil. Was going to + add FIXME about evil locale-specific string.h strncmp, but just + switched to wacky string-as-uint32 optimization. Move check for + "no room for field name" above get_const_data_len() to avoid + assertion failure in get_const_data_len if we have trailing 2 + bytes or the like. Check for service and name fields being + provided twice. Don't leak service/name on error. Require field + names to be aligned to 4 bytes. + + * dbus/dbus-marshal.c: move byte swap stuff to header + (_dbus_pack_int32): uscore-prefix + (_dbus_unpack_int32): uscore-prefix + (_dbus_unpack_uint32): export + (_dbus_demarshal_string): add @todo complaining about use of + memcpy() + (_dbus_marshal_get_field_end_pos): add @todo about bad error + handling allowing corrupt data to go unchecked + +2003-01-08 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write + to the select() as needed for authentication. (should be using + _dbus_poll() not select, but for another day) + + * dbus/dbus.h: include dbus/dbus-protocol.h + +2003-01-08 Anders Carlsson + + * dbus/Makefile.am (dbusinclude_HEADERS): Install + dbus-connection.h + +2003-01-08 Anders Carlsson + + * dbus/dbus-internals.c: (_dbus_type_to_string): + New function that returns a string describing a type. + + * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array): + * dbus/dbus-marshal.h: + * dbus/dbus-message.c: (dbus_message_get_fields_valist), + (dbus_message_iter_get_field_type), (dbus_message_iter_get_double), + (dbus_message_iter_get_byte_array): + * dbus/dbus-message.h: + Add new convenience functions for appending and getting message fields. + Also add demarshalling routines for byte arrays. + +2003-01-07 Anders Carlsson + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), + (_dbus_connection_get_next_client_serial), + (dbus_connection_send_message): + * dbus/dbus-internals.h: + * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32), + (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32), + (_dbus_marshal_uint32), (_dbus_demarshal_double), + (_dbus_demarshal_int32), (_dbus_demarshal_uint32), + (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos), + (_dbus_verbose_bytes), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_set_client_serial), + (dbus_message_write_header), (_dbus_message_lock), + (dbus_message_new), (dbus_message_ref), (dbus_message_unref), + (dbus_message_get_name), (dbus_message_append_int32), + (dbus_message_append_uint32), (dbus_message_append_double), + (dbus_message_append_string), (dbus_message_append_byte_array), + (dbus_message_get_fields_iter), (dbus_message_iter_ref), + (dbus_message_iter_unref), (dbus_message_iter_has_next), + (dbus_message_iter_next), (dbus_message_iter_get_field_type), + (dbus_message_iter_get_string), (dbus_message_iter_get_int32), + (dbus_message_iter_get_uint32), (dbus_message_iter_get_double), + (decode_header_data), (_dbus_message_loader_return_buffer), + (message_iter_test), (_dbus_message_test): + * dbus/dbus-message.h: + * dbus/dbus-protocol.h: + * dbus/dbus-test.c: (main): + * dbus/dbus-test.h: + * glib/test-dbus-glib.c: (message_handler), (main): + * test/echo-client.c: (main): + * test/watch.c: (check_messages): + Make messages sendable and receivable for real. + +2003-01-07 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_double), + (_dbus_marshal_string), (_dbus_marshal_byte_array): + * dbus/dbus-message.c: (dbus_message_append_int32), + (dbus_message_append_uint32), (dbus_message_append_double), + (dbus_message_append_string), (dbus_message_append_byte_array): + Handle OOM restoration. + +2003-01-07 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_string), + (_dbus_demarshal_string), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-message.c: (dbus_message_get_name), + Document these functions. + + (dbus_message_append_int32), (dbus_message_append_uint32), + (dbus_message_append_double), (dbus_message_append_string), + (dbus_message_append_byte_array): + * dbus/dbus-message.h: + Add functions for adding message fields of different types. + + * dbus/dbus-protocol.h: + Add the different types. + +2003-01-05 Havoc Pennington + + * bus/connection.c: implement routines for handling connections, + first thing is keeping a list of owned services on each connection + and setting up watches etc. + + * bus/services.c: implement a mapping from service names to lists + of connections + + * dbus/dbus-hash.c: add DBUS_HASH_POINTER + + * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions + to use static mutexes for global data + + * dbus/dbus-connection.c (dbus_connection_set_data): add new + collection of functions to set/get application-specific data + on the DBusConnection. + +2003-01-04 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function + (_dbus_poll): new function + + * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro + copied from GLib + + * bus/loop.c: initial code for the daemon main loop + +2003-01-04 Havoc Pennington + + * test/watch.c (error_handler): make it safe if the error handler + is called multiple times (if we s/error handler/disconnect + handler/ we should just guarantee it's called only once) + + * dbus/dbus-transport.c (_dbus_transport_disconnect): call the + error handler on disconnect (it's quite possible we should + just change the error handler to a "disconnect handler," I'm + not sure we have any other meaningful errors) + + * configure.in: check for getpwnam_r + + * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, + dbus/dbus-auth.c: add credentials support, add EXTERNAL auth + mechanism as in SASL spec, using socket credentials + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function + (_dbus_send_credentials_unix_socket): new function + + * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just + dbus_accept() + (_dbus_write): only check errno if <0 returned + (_dbus_write_two): ditto + +2003-01-02 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), + (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add _dbus_marshal_byte_array and rename _dbus_marshal_string + to _dbus_marshal_utf8_string. Also fix some tests. + +2002-12-28 Harri Porten + + * configure.in: added check for C++ compiler and a very cheesy + check for the Qt integration + + * Makefile.am (SUBDIRS): compile qt subdir if support is enabled + + * qt/Makefile.am: added + + * qt/.cvsignore: added + + * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to + latter, added #ifdef QT_THREAD_SUPPORT guard. + + * dbus/Makefile.am: added missing headers for make dist + +2002-12-28 Kristian Rietveld + + * dbus/Makefile.am: fixup export-symbols-regex. + +2002-12-27 Anders Carlsson + + * acinclude.m4: Add this file and put the + PKG_CHECK_MODULE macro in it. + +2002-12-27 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_string), + (_dbus_demarshal_double), (_dbus_demarshal_int32), + (_dbus_demarshal_uint32), (_dbus_demarshal_string), + (_dbus_marshal_test): + Make the demarshalling routines align the pos argument. + Add string marshalling tests and fix the obvious bugs + discovered. + +2002-12-26 Havoc Pennington + + * dbus/dbus-auth.c: fixes fixes fixes + + * dbus/dbus-transport-unix.c: wire up support for + encoding/decoding data on the wire + + * dbus/dbus-auth.c (_dbus_auth_encode_data) + (_dbus_auth_decode_data): append to target string + instead of nuking it. + +2002-12-26 Havoc Pennington + + * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef + WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN, + doh + + * dbus/dbus-marshal.c: Add macros to do int swapping in-place and + avoid swap_bytes() overhead (ignoring possible assembly stuff for + now). Main point is because I wanted unpack_uint32 to implement + _dbus_verbose_bytes + (_dbus_verbose_bytes): new function + + * dbus/dbus-string.c (_dbus_string_validate_ascii): new function + + * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add + mechanism to handle a corrupt message stream + (_dbus_message_loader_new): fix preallocation to only prealloc, + not prelengthen + + * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function + (_dbus_string_test): enhance tests for copy/move and fix the + functions + + * dbus/dbus-transport-unix.c: Hold references in more places to + avoid reentrancy problems + + * dbus/dbus-transport.c: ditto + + * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't + leak reference count in no-message case + + * test/watch.c (do_mainloop): handle adding/removing watches + during iteration over the watches. Also, ref the connection/server + stored on a watch, so we don't try to mangle a destroyed one. + + * dbus/dbus-transport-unix.c (do_authentication): perform + authentication + + * dbus/dbus-auth.c (get_state): add a state + AUTHENTICATED_WITH_UNUSED_BYTES and return it if required + (_dbus_auth_get_unused_bytes): append the unused bytes + to the passed in string, rather than prepend + + * dbus/dbus-transport.c (_dbus_transport_init_base): create + the auth conversation DBusAuth + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd) + (_dbus_transport_new_for_domain_socket): when creating a + transport, pass in whether it's a client-side or server-side + transport so we know which DBusAuth to create + +2002-12-03 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_finalize): finalize base + _after_ finalizing the derived members + (unix_connection_set): unref watch if we fail to add it + + * dbus/dbus-connection.c (dbus_connection_unref): delete the + transport first, so that the connection owned by the + transport will be valid as the transport finalizes. + + * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch + if necessary, and remove watches from the connection. + + * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment + +2002-12-26 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_string), + (_dbus_demarshal_double), (_dbus_demarshal_int32), + (_dbus_demarshal_uint32), (_dbus_demarshal_string), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add string marshal functions and have the demarshal functions + return the new position. + +2002-12-25 Havoc Pennington + + * doc/dbus-sasl-profile.txt: docs on the authentication protocol, + it is a simple protocol that just maps directly to SASL. + + * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol + initial implementation, not actually used yet. + + * dbus/dbus-string.c (_dbus_string_find): new function + (_dbus_string_equal): new function + (_dbus_string_base64_encode): new function + (_dbus_string_base64_decode): new function + +2002-12-25 Anders Carlsson + + * dbus/Makefile.am: + * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double), + (_dbus_marshal_int32), (_dbus_marshal_uint32), + (_dbus_demarshal_double), (_dbus_demarshal_int32), + (_dbus_demarshal_uint32), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-protocol.h: + * dbus/dbus-test.c: (main): + * dbus/dbus-test.h: + Add un-optimized marshalling/demarshalling routines. + +2002-12-25 Harri Porten + + * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions + +2002-12-24 Zack Rusin + + * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus + * qt/dbus-qt.h: skeleton with two sample implemenatation of the + main loop stuff + +2002-12-24 Havoc Pennington + + * glib/dbus-gthread.c: fix include + + * glib/dbus-glib.h: rename DBusMessageHandler for now. + I think glib API needs to change, though, as you don't + want to use DBusMessageFunction, you want to use the + DBusMessageHandler object. Probably + dbus_connection_open_with_g_main_loop() + and dbus_connection_setup_g_main_loop() or something like that + (but think of better names...) that just create a connection + that has watch/timeout functions etc. already set up. + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply): new function just to + show how the message handler helps us deal with replies. + + * dbus/dbus-list.c (_dbus_list_remove_last): new function + + * dbus/dbus-string.c (_dbus_string_test): free a string that + wasn't + + * dbus/dbus-hash.c: use memory pools for the hash entries + (rebuild_table): be more paranoid about overflow, and + shrink table when we can + (_dbus_hash_test): reduce number of sprintfs and write + valid C89. Add tests for case where we grow and then + shrink the hash table. + + * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools + + * dbus/dbus-connection.c (dbus_connection_register_handler) + (dbus_connection_unregister_handler): new functions + + * dbus/dbus-message.c (dbus_message_get_name): new + + * dbus/dbus-list.c: fix docs typo + + * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c: + an object representing a handler for messages. + +2002-12-16 Anders Carlsson + + * glib/dbus-glib.h: + * glib/dbus-gthread.c: (dbus_gthread_init): + Don't use the gdbus prefix for public functions. + +2002-12-16 Anders Carlsson + + * Makefile.am: + * configure.in: + Add GLib checks and fixup .pc files + + * glib/Makefile.am: + * glib/dbus-glib.h: + * glib/dbus-gmain.c: (gdbus_connection_prepare), + (gdbus_connection_check), (gdbus_connection_dispatch), + (gdbus_add_connection_watch), (gdbus_remove_connection_watch), + (dbus_connection_gsource_new): + * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free), + (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init): + * glib/test-dbus-glib.c: (message_handler), (main): + Add GLib support. + +2002-12-15 Harri Porten + + * autogen.sh: check for libtoolize before attempting to use it + + * dbus/dbus-transport-unix.c: include for timeval + struct. + + * .cvsignore: ignore more stamp files + + * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error + + * test/Makefile.am: added -I$(top_srcdir) to be able to compile + without make install. + +2002-12-15 Havoc Pennington + + * dbus/dbus-threads.c: add thread stubs that a higher library + layer can fill in. e.g. the GLib wrapper might fill them in with + GThread stuff. We still need to use this thread API to + thread-safe-ize the library. + +2002-12-12 Havoc Pennington + + * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the + below new interfaces and include fewer system headers. + + * dbus/dbus-sysdeps.c (_dbus_read): new function + (_dbus_write): new function + (_dbus_write_two): new function + (_dbus_connect_unix_socket): new function + (_dbus_listen_unix_socket): new function + + * dbus/dbus-message-internal.h: change interfaces to use + DBusString + +2002-12-11 Havoc Pennington + + * dbus/dbus-types.h: add dbus_unichar + + * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv + + * dbus/dbus-connection.c (dbus_connection_send_message): return + TRUE on success + + * dbus/dbus-transport.c: include dbus-watch.h + + * dbus/dbus-connection.c: include dbus-message-internal.h + + * HACKING: add file with coding guidelines stuff. + + * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string + handling here, for security purposes (as in vsftpd). Not actually + using this class yet. + + * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all + system/libc usage here, as in vsftpd, for ease of auditing (and + should also simplify portability). Haven't actually moved all the + system/libc usage into here yet. + +2002-11-25 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_verbose): fix to not + always print the first verbose message. + +2002-11-24 Havoc Pennington + + * test/echo-client.c, test/echo-server.c: cheesy test + clients. + + * configure.in (AC_CHECK_FUNCS): check for writev + + * dbus/dbus-message.c (_dbus_message_get_network_data): new + function + + * dbus/dbus-list.c (_dbus_list_foreach): new function + + * dbus/dbus-internals.c (_dbus_verbose): new function + + * dbus/dbus-server.c, dbus/dbus-server.h: public object + representing a server that listens for connections. + + * dbus/.cvsignore: create + + * dbus/dbus-errors.h, dbus/dbus-errors.c: + public API for reporting errors + + * dbus/dbus-connection.h, dbus/dbus-connection.c: + public object representing a connection that + sends/receives messages. (Same object used for + both client and server.) + + * dbus/dbus-transport.h, dbus/dbus-transport.c: + Basic abstraction for different kinds of stream + that we might read/write messages from. + +2002-11-23 Havoc Pennington + + * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN + _DBUS_INT_MAX + + * dbus/dbus-test.c (main): add list test, and include + dbus-test.h as intended + + * dbus/dbus-hash.c (_dbus_hash_table_remove_string) + (_dbus_hash_table_remove_int): return value indicates + whether the entry existed to remove + + * dbus/dbus-list.c: add linked list utility class, + with docs and tests + + * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket + array sometimes. + +2002-11-23 Havoc Pennington + + * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/ + DBUS_END_DECLS to nothing, that should fix this once and for all + + * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES + + * dbus/dbus-message.c, dbus/dbus-hash.c: + add some missing @brief + +2002-11-23 Havoc Pennington + + * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS + to avoid confusing Doxygen + + * dbus/dbus-hash.c: @} not }@ + + * dbus/dbus-message.c (struct DBusMessage): split out + internals docs + +2002-11-23 Havoc Pennington + + * configure.in: pile on more warning flags if using gcc + + * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have + to document static functions + + * configure.in: add summary to end of configure so it + looks nice and attractive + + * dbus/dbus-hash.c: finish implementation and write unit + tests and docs + + * configure.in: add --enable-tests to enable unit tests + + * dbus/dbus-test.c: test program to run unit tests + for all files in dbus/*, initially runs a test for + dbus-hash.c + + * dbus/dbus-internals.h: file to hold some internal utility stuff + +2002-11-22 Havoc Pennington + + * dbus/dbus-hash.c: copy in Tcl hash table, not yet + "ported" away from Tcl + + * dbus/dbus-types.h: header for types such as dbus_bool_t + +2002-11-22 Havoc Pennington + + * dbus/dbus.h: fixups for doc warnings + + * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up + macros + (QUIET): make it quiet so we can see warnings + + * dbus/dbus-memory.c: teach D-BUS to allocate and free memory + +2002-11-22 Havoc Pennington + + * Makefile.am: include "Doxyfile" target in all-local + + * configure.in: generate the Doxyfile + + * Doxyfile.in: move Doxyfile here, so we can use + configure to generate a Doxyfile with the right + version number etc. + +2002-11-22 Havoc Pennington + + * dbus/dbus-message.c: move inline docs into .c file + + * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api + so all docs are under doc/ + (MAN_EXTENSION): generate man pages. Use extension + ".3dbus" which matches ".3qt" on my system, + I guess this is OK, I don't know really. + (FILE_PATTERNS): look for .c files not .h, makes sense + for plain C I think + +2002-11-22 Havoc Pennington + + * Makefile.am (SUBDIRS): rename subdir "server" to "bus" + because any app can be a server, and any app can be a client, + the bus is a special kind of server. + +Thu Nov 21 23:35:31 2002 Zack Rusin + + * Doxyfile : adding. Still needs Makefile rules to be generated + automatically (just run "doxygen" in the toplevel dir for now to + generate docs) + + * dbus/dbus-message.h : Adding sample docs (javadoc since + resembles gtk-doc a little more) + + * dbus/dbus.h : Adding sample docs + +2002-11-21 Havoc Pennington + + * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION + so we can allow ourselves to include files directly, + instead of having to use dbus.h + + * dbus/dbus.h: fill in + + * dbus/dbus-message.h: sketch out a sample header file. + Include griping if you include it directly instead of + via dbus.h + + * dbus/dbus-macros.h: new file with macros for extern "C", + TRUE/FALSE, NULL, etc. + + * doc/file-boilerplate.c: put include guards in here + +2002-11-21 Havoc Pennington + + * doc/file-boilerplate.c: include both AFL and GPL boilerplate. + + * COPYING: include the GPL as well, and license code + under both AFL and GPL. + +2002-11-21 Havoc Pennington + + * acconfig.h: get rid of this + + * autogen.sh (run_configure): add --no-configure option + + * configure.in: remove AC_ARG_PROGRAM to make + autoconf complain less. add AC_PREREQ. + add AC_DEFINE third arg. + +2002-11-21 Anders Carlsson + + * doc/Makefile.am: + Fix references so we can distcheck. + +2002-11-21 Havoc Pennington + + * Initial module creation + diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2 new file mode 100644 index 0000000..b220448 --- /dev/null +++ b/ChangeLog.pre-1-2 @@ -0,0 +1,2027 @@ +2008-04-04 John (J5) Palmieri + + * Released 1.2.1 + +2008-04-03 John (J5) Palmieri + + Patch from Sumit , comments added + + * dbus/dbus-transport.c(_dbus_transport_open): fix mem leak + +2008-04-03 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_send): add documentation + to describe when to call dbus_connection_flush and + dbus_connection_unref after a call to dbus_connection_send is made + Initial wording by Stanislav Brabec + (fd.o bug#13558) + +2008-04-03 John (J5) Palmieri + + Patch from Kimmo Hämäläinen + + * bus/expirelist.c + (do_expiration_with_current_time): calculate correct min wait time + and next interval + (bus_expire_list_add, bus_expire_list_add_link): if the timeout is + disabled when we add an item to the expire list, enable the timeout + (do_expiration_with_current_time): only set timeout if there are + items to expire + +2008-04-01 Timo Hoenig + + Patch from Frederic Crozat + + * bus/dir-watch-inotify.c (bus_watch_directory): Only monitor + IN_CLOSE_WRITE, IN_DELETE, IN_MOVE_TO and IN_MOVE_FROM events. This + way, only atomic changes to configuration file are monitored. + * bus/dir-watch-inotify.c (_handle_inotify_watch): Fix typo in + _dbus_verbose function call + * bus/dir-watch-inotify.c (bus_drop_all_directory_watches): Use + _dbus_strerror instead of perror + +2008-03-04 Havoc Pennington + + * bus/connection.c, bus/expirelist.c: Make the BusExpireList + struct opaque, adding accessors for manipulating the list. In this + commit there should be no change in functionality or behavior. The + purpose of this change is to improve encapsulation prior to fixing + some bugs Kimmo Hämäläinen found where the timeout is not properly + updated, since we need to e.g. take some action whenever adding + and removing stuff from the expire list. + +2008-03-31 Colin Walters + + Patch from Owen Taylor + + * tools/dbus-launch-x11.c: Check for X11 events before + selecting (FDO bug #15293) + +2008-03-31 Colin Walters + + Patch from Owen Taylor + + * tools/dbus-launch-x11.c: Make sure we call XFlush() + on all code paths (FDO bug #15293) + +2008-03-27 Havoc Pennington + + * tools/dbus-send.c (append_dict): Do not provide a signature to + dbus_message_iter_open_container() when opening a dict entry. + +2008-03-26 Colin Walters + + Patch from Scott James Remnant + + * dbus/dbus-bus.c: Set default exit_on_disconnect after registration with + the bus, not before. This ensures that programs which wish to set + exit_on_disconnect to FALSE will not be terminated if the bus exits + during registration. (FDO Bug #15112) + +2008-03-04 John (J5) Palmieri + + * fix broken poll on Mac OSX - build patch by Benjamin Reed + * configure.in: check for OSX's deadlocking poll + * dbus/dbus-sysdeps-unix.c (_dbus_poll): if we have a broken poll + don't use poll + +2008-03-04 John (J5) Palmieri + + * check if the linker supports a flag instead of just checking for GNU + ld + * configure.in: move AM_PROG_LIBTOOL to the top + (ld_supports_flag): new function for checking if the linker supports + a given flag + +2008-03-04 John (J5) Palmieri + + * add a changelog for Benjamin Reed's git patch RANT: Change Logs are + handled by git and having an external changelog just screws up + merging. We should write down rules for doing git commit messages + and leave it at that. + * configure.in: Platform build fixes for Mac OS X + the Darwin linker does not understand the -z option; wrap it in + a check for $with_gnu_ld. + environ is only available at runtime, so you need to make a + reference to _NSGetEnviron instead for symbols to resolve properly. + +2008-03-04 John (J5) Palmieri + + * configure.in: add $THREAD_LIBS to DBUS_LAUNCHER_LIBS so we link + correctly + +2008-03-04 John (J5) Palmieri + + * tools/dbus-launch.c: wrap X'ism in #ifdef so we can compile + without X + +2008-02-28 John (J5) Palmieri + + * dbus/dbus-sysdeps-unix.c: define _AI_ADDRCONFIG as 0 if not + defined so that we can compile with an older glibc + +2008-02-26 John (J5) Palmieri + + * Released 1.1.20 + +2008-02-26 John (J5) Palmieri + + * CVE-2008-0595 - security policy of the type work as an implicit allow for + messages sent without an interface bypassing the default deny rules + and potentially allowing restricted methods exported on the bus to be + executed by unauthorized users. This patch fixes the issue. + * bus/policy.c (bus_client_policy_check_can_send, + bus_client_policy_check_can_receive): skip messages without an + interface when evaluating an allow rule, and thus pass it to the + default deny rules + +2008-02-26 John (J5) Palmieri + + * correctly unref connections without guids during shutdown + * dbus/dbus-connection.c (close_connection_on_shutdown): new method + split out from shared_connections_shutdown + (shared_connections_shutdown): shutdown all shared connections + without guids + (_dbus_connection_ref_unlocked): handle OOM when prepending no guid + connections to the shared_connections_no_guid list + * Patch by Kimmo Hämäläinen + +2008-02-21 John (J5) Palmieri + + * fix build against the latest gcc/glibc + * dbus/dbus-sysdeps-unix.c: define _GNU_SOURCE + * bus/selinux.c: include limits.h + * Patch by Matthias Clasen + +2008-02-21 John (J5) Palmieri + + * fixes dbus-launch so the bus goes away when X does + (Red Hat Bug #430412) + * tools/dbus-launch.c (main): set xdisplay = NULL + * Patch by Matthias Clasen + +2008-01-17 John (J5) Palmieri + + * Released 1.1.4 + +2008-01-17 Timo Hoenig + * fix inotify support + * bus/dir-watch-inotify.c (_handle_inotify_watch): fix reading of the + inotify events. Also, use ssize_t not size_t for 'ret'. + * bus/dir-watch-inotify.c (bus_watch_directory): watch not only for + IN_MODIFY but also for IN_CREATE and IN_DELETE + * bus/dir-watch-inotify.c (bus_drop_all_directory_watches): drop the + inotify watches more elegantly by closing inotify:_fd, set inotify_fd to + -1 after dropping the watches + +2008-01-15 John (J5) Palmieri + + * configure.in: post-release version bump + +2008-01-15 John (J5) Palmieri + + * Released 1.1.3 (1.2.0RC1) + +2008-01-15 John (J5) Palmieri + + * fix hacking to say git instead of cvs + +2008-01-15 John (J5) Palmieri + + * patch by Sébastien Couret <10function at gmail dot com> + + * dbus/dbus-marshal-recursive.c (all_reader_classes[]): wrap in + #ifndef DBUS_DISABLE_ASSERT since it is only used in asserts which + are noop + +2008-01-15 John (J5) Palmieri + + * patch by Magnus Henoch + + * dbus/dbus-auth.c (handle_server_data_external_mech): handle SASL + EXTERNAL's inital empty responce (FDO Bug #9945) + +2008-01-15 John (J5) Palmieri + + * bus/messagebus.in: add lsb headers (FDO Bug #11491) + +2008-01-15 John (J5) Palmieri + + * patch by Peter O'Gorman + + * dbus/dbus-spawn.c (babysit_signal_handler): check write return value + so we don't hang (FDO Bug #11665) + +2008-01-15 John (J5) Palmieri + + * patch by Peter O'Gorman + + * dbus/dbus-sysdeps.h: support for AIX poll implementation (FDO Bug + #11666) + +2008-01-15 John (J5) Palmieri + + * tests/name-test/run-test.sh: make more portable (FDO Bug #11667) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-connection.c (_dbus_connection_get_next_client_serial): + don't check for < 0 on an unsigned variable (FDO Bug #12924) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * bus/bus.c (setup_server): check failed allocation (FDO Bug #12920) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): the API + contract says sitter_p can be NULL, so let's check it (FDO Bug #12919) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-spawn.c (read_ints, read_pid): use correct ssize_t type + instead of size_t (FDO Bug #12862) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-errors.c (dbus_set_error): make sure to call va_end if we + hit an OOM error inside va_start (FDO Bug #12846) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): + fix possible crash if pending_return is NULL (FDO Bug #12673) + +2008-01-15 John (J5) Palmieri + + * portions of patch submitted by Tim Mooney + + + * configure.in: never auto-select libxml (FDO Bug #12479) + +2008-01-15 John (J5) Palmieri + + * patches by Kimmo Hämäläinen + + * dbus/dbus-sysdeps-unix (_dbus_get_autolaunch_address): handle OOM + (FDO Bug #12945) + + * dbus/dbus-uuidgen.c (return_uuid): handle OOM (FDO Bug #12928) + + * dbus/dbus-misc.c (dbus_get_local_machine_id): handle OOM, fix return + value to return NULL not FALSE (FDO Bug #12946) + +2008-01-15 John (J5) Palmieri + + * bus/bus.c (bus_context_check_security_policy): rewrite selinux error + handling to not abort due to a NULL read and to set the error only if + it is not already set (Based off of FDO Bug #12430) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-internals.c (_dbus_read_uuid_file_without_creating, + _dbus_create_uuid_file_exclusively): add OOM handling (FDO Bug #12952) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-spawn.c (babysit, babysitter_iteration): add error + handling when polling (FDO Bug #12954) + +2008-01-15 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * bus/config-parser.c (locate_attributes): remove dead code which + always evaluated to TRUE + + * dbus/dbus-shell.c (_dbus_shell_quote): remove unused code + +2008-01-14 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * bus/connection.c (bus_connection_complete): plug a possible + BusClientPolicy leak (FDO Bug #13242) + +2008-01-14 John (J5) Palmieri + + * patch by Frederic Crozat (FDO Bz# + 13268) + + * add inotify support + + * bus/Makefile.am: add inotify module to the build + + * bus/dir-watch-inotify.c: inotify module based off the dnotify and + kqueue modules + + * configure.in: add checks and switch for inotify + also add a printout at the end of configure if inotify and kqueue + support is being built in (dnotify already had this) + +2008-01-14 John (J5) Palmieri + + * patch by Frederic Crozat + + * bus/dir-watch-dnotify.c (bus_watch_directory): watch for file + creates also + +2008-01-14 John (J5) Palmieri + + * patch by Kimmo Hämäläinen + + * dbus/dbus-transport-socket.c(do_reading): return message + loader buffer in case of OOM (FDO Bug#12666) + +2008-01-14 John (J5) Palmieri + + * configure.in: add warning to output when libxml is selected since + we don't have a libxml maintainer and expat works perfectly fine + for what we need an xml parser for + +2008-01-14 John (J5) Palmieri + + * Patch by Andrea Luzzardi : creates a + _dbus_geteuid function to fix EXTERNAL authentication in setuid + applications + + * dbus/dbus-sysdeps-unix.c (_dbus_geteuid): used to get the effective + uid of the running program + (_dbus_credentials_add_from_current_process): use geteuid instead of + getuid + (_dbus_append_user_from_current_process): use geteuid instead of + getuid + + * dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user): use + geteuid instead of getuid + (_dbus_unix_user_is_at_console): use geteuid instead of getuid + + * dbus/dbus-sysdeps-win.c (_dbus_geteuid): add a windows equivilant + that returns DBUS_UID_UNSET + +2007-12-18 Havoc Pennington + + * dbus/dbus-connection.c (_dbus_connection_block_pending_call): + fix location of curly braces + +2007-11-23 Sjoerd Simons + + * tools/dbus-launch.c: let both a normal dbus-launch and an + autolaunched bus save their parameters in X11 if possible. This makes + the autolaunch and non-autolaunch behaviour more similar. With the + exception that on a normal launch there will always be a new session + bus and not being able to save parameters is not fatal. This also + enables to launch programs directly with autolaunch (not very usefull + though). + +2007-10-31 Havoc Pennington + + * bus/selinux.c (log_audit_callback): rewrite to use + _dbus_string_copy_to_buffer_with_nul() + + * dbus/dbus-string.c (_dbus_string_copy_to_buffer): change to NOT + nul-terminate the buffer; fail an assertion if there is not enough + space in the target buffer. This fixes two bugs where + copy_to_buffer was used to copy the binary bytes in a UUID, where + nul termination did not make sense. Bug reported by David Castelow. + (_dbus_string_copy_to_buffer_with_nul): new function that always + nul-terminates the buffer, and fails an assertion if there is not + enough space in the buffer. + +2007-10-23 Havoc Pennington + + * bus/bus.c (bus_context_new): use the new name here + + * bus/selinux.c (bus_selinux_audit_init): rename from audit_init() + to avoid possible libc conflict, and declare it in .h file to + avoid a warning + +2007-10-19 Havoc Pennington + + * bus/bus.c (bus_context_new): put audit_init() in HAVE_SELINUX + +2007-10-19 Havoc Pennington + + * bus/bus.c (bus_context_new): put the audit_init() in here + instead, which I believe ends up being the same as where it was + before, though I'm not sure I understand why it goes here. + + * dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user): + remove audit_init() from here, this file can't depend on code in + bus/ directory + +2007-10-16 Simon McVittie + + * configure.in: *Actually* fix detection of i486 atomic ops - + my previous attempt at a fix would always enable them due to wrong + quoting. Patch from Colin Walters + +2007-10-11 Simon McVittie + + * configure.in: enable Autoconf's AC_C_INLINE to avoid compilation + failure with gcc -ansi + * dbus/dbus-macros.h, dbus/dbus-arch-deps.h.in: Use new macro + _DBUS_GNUC_EXTENSION (the same as G_GNUC_EXTENSION) to avoid -ansi + warnings about use of "long long". + * dbus/dbus-server-socket.c: remove unused variable when assertions + are disabled + * dbus/dbus-marshal-validate.c: avoid empty statements by removing + stray semicolons + * tools/dbus-launch.c: convert C++-style comment to C-style, add {} + for clarity + * .gitignore: ignore vi swapfiles + * dbus/dbus-errors.h, dbus/dbus-errors.c: Add DBUS_ERROR_INIT macro, + equivalent to calling dbus_error_init() on an uninitialized DBusError + * dbus/dbus-address.c, dbus/dbus-auth-script.c, dbus/dbus-auth-util.c, + dbus/dbus-connection.c, dbus/dbus-internals.c, dbus/dbus-keyring.c, + dbus/dbus-message-util.c, dbus/dbus-server.c, dbus/dbus-sha.c, + dbus/dbus-spawn-win.c, dbus/dbus-spawn.c, + dbus/dbus-sysdeps-util-win.c, dbus/dbus-transport-socket.c, + dbus/dbus-transport.c, dbus/dbus-userdb.c: use that macro instead of + calling dbus_error_init() where it's clearly equivalent + * configure.in, dbus/dbus-sysdeps.h, dbus/dbus-sysdeps-unix.c: Fix + detection of i486 atomic ops. Previously, the attempts to determine + support at compile-time on Darwin were causing the i486 atomic ops to + be used on *all* i386 or x86-64 GCC builds (AH_VERBATIM can't be + conditionalized like we were trying to). + +2007-10-10 Simon McVittie + + * dbus/dbus-errors.c, dbus/dbus-protocol.h: Add new error + org.freedesktop.DBus.Error.ObjectPathInUse + * dbus/dbus-object-tree.h, dbus/dbus-object-tree.c, + dbus/dbus-connection.c, dbus/dbus-connection.h: add new functions + dbus_connection_try_register_object_path and + dbus_connection_try_register_fallback, which raise ObjectPathInUse + rather than asserting, to make object path registration less painful + for bindings + * .gitignore: add various things that weren't in .cvsignore because + CVS implicitly ignored them; generally bring up to date + +2007-10-09 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: Fix env exports for better + portability (#9280) + * tools/dbus-send.1: Document syntax for container types in dbus-send + man file (#9553) - patch from Jack Spaar + + [Both OK for MIT/X11 relicensing -smcv] + +2007-10-09 Simon McVittie + + * doc/dbus-specification.xml: Specifically forbid empty structs (#7969) + * doc/dbus-specification.xml: Patches from Kristoffer Lundén to clarify + description of DBUS_COOKIE_SHA1 (#10184) and allowable contents of a + variant (#10185, amended as per Havoc's comments) + + [All of the above are OK for MIT/X11 licensing] + +2007-10-03 John (J5) Palmieri + + * dbus/dbus-internals.h: fd.o bug #11678 Don't error out if compiler + does not support vararg macros. _dbus_verbose is the only function + that does this so make it a noop if vararg macros are not supported + * bus/selinux.c, dbus/dbus-sysdeps-util-unix.c: fd.o bug #12429 + Reverse check to setpcap and only init audit if we were root + (patch by Dan Walsh , + https://bugs.freedesktop.org/show_bug.cgi?id=12429). Reverse + we_were_root check to setpcap if we were root. Also only init audit + if we were root. So error dbus message will not show up when policy + reload happens. dbus -session will no longer try to send audit + message, only system will. + * configure.in: fd.o bug #11872 improve linker test for --gc-sections. + Patch by Tim Mooney + * configure.in, dbus/dbus-sysdeps.c: fd.o bug #11872 fix clearenv for + systems that do not have it. Patch from Brian Cameron + * tools/dbus-launch.c: fd.o bug #12547 remove superfluous if. + Also convert tabs to spaces + * configure.in, bus/Makefile.am, dbus/Makefile.am: Correctly implement + -fPIC and -fPIE. For security reasons we want possition independent + code for libraries and possition independent executable for + executables. Before we were just enabling -fPIC. Now we correctly + enable -fPIC and -PIE for libdbus and the bus respectively. Proper + LD_FLAGS are set for each also. + +2007-09-20 Ryan Lortie + + Add argument path matching support. Bug #11066. + + * dbus/signals.c (struct DBusMatchRule, bus_match_rule_new, + bus_match_rule_set_arg, bus_match_rule_parse_arg_match, + match_rule_matches): Add support for parsing and matching on + arg0path='/some/path' type rules. + + * dbus/signals.h (bus_match_rule_set_arg): change to take const + DBusString instead of const char * for the string to match against. + + * dbus/dbus-bus.c: add a quick note to dbus_bus_add_match + documentation about the path matching. + + * doc/dbus-specification.xml: add a more detailed description of the + changes here. + +2007-09-19 Ryan Lortie + + Add support for compacting DBusStrings to release wasted memory. + + * dbus/dbus-string.[ch] (compact, _dbus_string_compact, + _dbus_string_lock): new compact function to free up allocated memory + that is no longer used. + + * dbus/dbus-message.c (load_message): call _dbus_string_compact on the + message loader buffer. + + * dbus/dbus-transport-socket.c (do_reading, do_writing): call + _dbus_string_compact on the incoming/outgoing "encoded" buffers. + + * dbus/dbus-string-util.c (_dbus_string_test): add a few tests for + string compacting. + +2007-09-13 Ryan Lortie + + * HACKING: add more explicit git branch/tag instructions + +2007-09-13 Ryan Lortie + + migrate from cvs to git (cvs2svn -> git-svnimport). + + * HACKING: update release/branch/tag instructions + * */.cvsignore: rename to .gitignore + + also, clean up tags and branch names to conform to HACKING + +2007-08-17 William Jon McCann + + * update-dbus-docs.sh: upload DTD to server + +2007-08-17 Havoc Pennington + + * tools/dbus-launch-x11.c (set_address_in_x11): fix from Michael + Lorenz to use long not int with XChangeProperty format 32 + + * dbus/dbus-sysdeps-util-unix.c + (_dbus_write_pid_to_file_and_pipe): factor this out, and use the + same code in _dbus_become_daemon (where the parent writes the pid + file and to the pid pipe) and in bus_context_new (where the daemon + writes its own pid file and to its own pid pipe) + + * bus/bus.c (bus_context_new): close the pid pipe after we print + to it. Also, don't write the pid to the pipe twice when we fork, + someone reported this bug a long time ago. + +2007-08-03 Havoc Pennington + + * configure.in: add major/minor/micro version number AC_SUBST + + * dbus/dbus-arch-deps.h.in (DBUS_MAJOR_VERSION, + DBUS_MINOR_VERSION, DBUS_MICRO_VERSION, DBUS_VERSION_STRING, + DBUS_VERSION): collection of macros to get version of library we + are compiled against. + + * dbus/dbus-misc.c (dbus_get_version): new function, to get + version of library we are linked against at runtime. + +2007-07-30 Havoc Pennington + + * bus/activation-helper.c (check_bus_name): don't use + _dbus_check_valid_bus_name() which is only around with + --enable-checks, instead use _dbus_validate_bus_name(). + Bug #11766 from Diego + +2007-07-27 Havoc Pennington + + * configure.in: post-release version bump + +2007-07-27 Havoc Pennington + + * release 1.1.2 + +2007-07-26 Havoc Pennington + + * bus/config-parser-trivial.c (check_return_values): disable a + test that hardcoded the bus user's name + + * bus/dispatch.c (bus_dispatch_test_conf): remove the "if + (!use_launcher)" around the tests, they were only failing because + we didn't pass through all the expected errors from the helper. + + * bus/activation-exit-codes.h + (BUS_SPAWN_EXIT_CODE_CHILD_SIGNALED): add a code for child segfaulting + (BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE): make "1" be a generic + failure code, so if a third party launch helper were written it + could just always return 1 on failure. + +2007-07-24 Daniel P. Berrange + + * bus/dbus-daemon.1: Add docs on new syntax options for the bus + address strings + + * dbus/dbus-address.c: Allow * in addresses (for binding to all + addresses). + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps-unix.c: Re-write to use getaddrinfo instead + of gethostbyname to enable protocol independant name lookup, + making IPv6 work + + * dbus/dbus-server-socket.h: + * dbus/dbus-server-socket.c: Add support for 'family' in the + address string to specify ipv4 vs ipv6. Use a port string to + allow for service resolution. Allow for binding to multiple + sockets at once in case of dual IPv4 & IPv6 stacks. + + * dbus/dbus-server-unix.c: Pass in an array of file descriptors + instead of a single one. + + * dbus/dbus-transport-socket.h: + * dbus/dbus-transport-socket.c: Add support for 'family' in the + address string to specify ipv4 vs ipv6. Use a port string to + allow for service resolution. + +2007-07-24 Havoc Pennington + + * configure.in: add AM_PROG_CC_C_O to allow per-target CPPFLAGS + + * bus/dispatch.c (bus_dispatch_test_conf): Fix up setting + TEST_LAUNCH_HELPER_CONFIG to include the full path, and enable + test shell_fail_service_auto_start when use_launcher==TRUE + + * bus/activation-helper-bin.c (convert_error_to_exit_code): pass + through the INVALID_ARGS error so the test suite works + + * bus/activation.c (handle_activation_exit_error): return + DBUS_ERROR_NO_MEMORY if we get BUS_SPAWN_EXIT_CODE_NO_MEMORY + + * dbus/dbus-spawn.c (_dbus_babysitter_get_child_exit_status): + return only the exit code of the child, not the entire thingy from + waitpid(), and make the return value indicate whether the child + exited normally (with a status code) + + * bus/bus.c (process_config_first_time_only): _dbus_strdup works + on NULL so no need to check + (process_config_every_time): move servicehelper init here, so we + reload it on HUP or config file change + + * bus/Makefile.am (install-data-hook): remove comment because + Emacs make mode seems to be grumpy about it + +2007-07-24 Richard Hughes + + * bus/Makefile.am: + * bus/test-system.c: (die), (check_memleaks), (test_pre_hook), + (test_post_hook), (main): + Add back the test-system.c file - not sure now this got ignored in the + diff. I blame git. + +2007-07-24 Richard Hughes + + * configure.in: + Use ustar to generate the tarball; this fixes the make distcheck + problem when the data files do not fit in the archive: + tar: dbus-1.1.2/test/data/valid-service-files/org.freedesktop.DBus. + TestSuiteShellEchoServiceFail.service.in: file name is too + long (max 99); not dumped + + We have to have the 'long' names as the service helper matches by + filename rather than by the name in the service file. + +2007-07-24 Richard Hughes + + * configure.in: + * test/Makefile.am: + * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS + uiteNoExec.service.in: + * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS + uiteNoService.service.in: + * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS + uiteNoUser.service.in: + * test/data/valid-config-files-system/debug-allow-all-fail.conf.in: + * test/data/valid-config-files-system/debug-allow-all-pass.conf.in: + * test/data/valid-config-files/debug-allow-all-sha1.conf.in: + * test/data/valid-config-files/debug-allow-all.conf.in: + * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui + teEchoService.service.in: + * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui + teSegfaultService.service.in: + * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui + teShellEchoServiceFail.service.in: + * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui + teShellEchoServiceSuccess.service.in: + * test/data/valid-service-files/debug-echo.service.in: + * test/data/valid-service-files/debug-segfault.service.in: + * test/data/valid-service-files/debug-shell-echo-fail.service.in: + * test/data/valid-service-files/debug-shell-echo-success.service.in: + * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoS + ervice.service.in: + * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfa + ultService.service.in: + * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell + EchoServiceFail.service.in: + * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell + EchoServiceSuccess.service.in: + Add the data files needed by the system activation unit checks. + +2007-07-24 Richard Hughes + + * bus/dispatch.c: (check_segfault_service_no_auto_start), + (check_launch_service_file_missing), + (check_launch_service_user_missing), + (check_launch_service_exec_missing), + (check_launch_service_service_missing), (bus_dispatch_test_conf), + (bus_dispatch_test_conf_fail), (bus_dispatch_test): + Add unit tests for system activation. Most are copied from the + session activation tests, but some didn't apply when using a laucher. + +2007-07-24 Richard Hughes + + * bus/activation.c: (bus_activation_activate_service): + If the bus uses a service-laucher, then use the setuid laucher. + +2007-07-24 Richard Hughes + + * configure.in: + Add the needed library exports for the new laucher. + +2007-07-24 Richard Hughes + + * configure.in: + Check for -Wl,--gc-sections so we can really reduce the size of the + setuid binary. + +2007-07-24 Richard Hughes + + * bus/activation.c: (handle_activation_exit_error), + (babysitter_watch_callback): + Map the child exit status integer to a proper dbus error. + +2007-07-24 Richard Hughes + + * bus/bus.c: (process_config_first_time_only), + (process_config_every_time), (bus_context_unref), + (bus_context_get_servicehelper): + * bus/bus.h: + Add the concept of a service-helper and allow it's value to be read. + +2007-07-24 Richard Hughes + + * bus/activation.c: (bus_activation_entry_unref), + (update_desktop_file_entry): + Add the concept of, and read the value of user from the desktop file. + The user string is not required unless we are using system activation. + +2007-07-24 Richard Hughes + + * bus/activation.c: + * bus/desktop-file.h: + Move the defines into the header file, as we use these in the lauch + helper as well as the desktop file parsing. + +2007-07-24 Richard Hughes + + * bus/.cvsignore: + Add the autogenerated binary files. + +2007-07-24 Richard Hughes + + * bus/Makefile.am: + * bus/test.h: + Add the build glue for the lauch helper, and also add the launch-helper + OOM checks into make check. I've probably broken the build, give me 2. + +2007-07-24 Richard Hughes + + * bus/test-launch-helper.c: (die), (check_memleaks), + (test_post_hook), (bus_activation_helper_oom_test), (main): + Add a test wrapper to allow OOM checks on the launch helper. + +2007-07-24 Richard Hughes + + * bus/activation-helper-bin.c: (convert_error_to_exit_code), + (main): + * bus/activation-helper.c: (desktop_file_for_name), + (clear_environment), (check_permissions), (check_service_name), + (get_parameters_for_service), (switch_user), + (exec_for_correct_user), (check_bus_name), (get_correct_parser), + (launch_bus_name), (check_dbus_user), (run_launch_helper): + * bus/activation-helper.h: + Add the initial launch-helper. This is split into a main section and a + binary loader that allows us to lauch the main section in another test + harness to do stuff like OOM testing. No build glue yet. + +2007-07-24 Richard Hughes + + * bus/Makefile.am: + * bus/config-parser.c: (bus_config_parser_unref), + (start_busconfig_child), (bus_config_parser_end_element), + (servicehelper_path), (bus_config_parser_content), + (bus_config_parser_finished), + (bus_config_parser_get_servicehelper), + (test_default_session_servicedirs), + (test_default_system_servicedirs), (bus_config_parser_test): + * bus/config-parser.h: + Make the config-parser code use the common config code. + Also add the session and systemdirs stuff, and make the config parser + aware of the servicehelper field. + +2007-07-24 Richard Hughes + + * bus/system.conf.in: + Add new servicehelper fields to the default system.conf file. + +2007-07-24 Richard Hughes + + * bus/config-parser-trivial.c: (service_dirs_find_dir), + (service_dirs_append_link_unique_or_free), (bus_config_parser_new), + (bus_config_parser_unref), (bus_config_parser_start_element), + (bus_config_parser_end_element), (bus_config_parser_content), + (bus_config_parser_finished), (bus_config_parser_get_user), + (bus_config_parser_get_type), (bus_config_parser_get_service_dirs), + (check_return_values), (do_load), (check_loader_oom_func), + (process_test_valid_subdir), (make_full_path), (check_file_valid), + (bus_config_parser_trivial_test): + * bus/config-parser-trivial.h: + Add a security sensitive stripped down config parser for the setuid + launcher. This file only reads what it needs, and doesn't try to do + anything remotely clever like including external files. + It is not intended to validate the config file; it is expected that + config-parser will do that before the setuid program tries to read it. + +2007-07-24 Richard Hughes + + * bus/config-parser-common.c: + (bus_config_parser_element_name_to_type), + (bus_config_parser_element_type_to_name): + * bus/config-parser-common.h: + We don't want to run the whole config parser with all it's deps in the + setuid program. We need to implement a stripped down config parser just + for the launcher, and to do so I need some common functions and + defines; add them here. + +2007-07-24 Richard Hughes + + * dbus/dbus-sysdeps-unix.c: + (_dbus_get_standard_system_servicedirs): + * dbus/dbus-sysdeps-win.c: + Provide a way to get the standard system servicedirs, just like we do + for the session service dirs. These should be seporate, as there may + be a security issue starting up some session stuff as root. + The use-case for the same binary starting up per-system _and_ + per-session is also not valid. + +2007-07-24 Richard Hughes + + * bus/dbus-daemon.1.in: + Add standard_system_servicedirs and servicehelper into the man file + and explain what each does. + +2007-07-24 Richard Hughes + + * doc/busconfig.dtd: + Add servicehelper into the dtd, it will soon be a valid part of the + config file. + +2007-07-24 Richard Hughes + + * dbus/dbus-spawn.c: (read_data), + (_dbus_babysitter_get_child_exit_status): + * dbus/dbus-spawn.h: + Add a function so we can get access to the exit status of the launch + helper. + By providing the return code and not the error we can leave the + 'what does this mean?' to the bus launch code and not include it in the + dbus directory. + +2007-07-24 Richard Hughes + + * bus/activation-exit-codes.h: + Add defines which specify the output codes of the launch helper. + We have to use exit codes as this is the only way we can return failure + type without going grotty things like redirecting possibly-nonsecure + stderr into the error. + +2007-07-24 Richard Hughes + + * dbus/dbus-protocol.h: + Add new error names needed for the launch helper. + +2007-07-24 Richard Hughes + + * dbus/dbus-sysdeps.c: (_dbus_clearenv): + * dbus/dbus-sysdeps.h: + Add a wrapper for clearenv. + +2007-07-24 Richard Hughes + + * doc/system-activation.txt: + Add design document for the system activation parts. I'll shortly be + committing many patches that add system activation using a setuid + launcher into CVS, so expect things to be broken for a few hours. + +2007-07-19 Ralf Habacker + + * cmake/modules/FindKDEWIN.cmake: fixed comment + * cmake/modules/FindKDEWIN32.cmake: removed obsolate cmake module + +2007-07-18 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_get_cached) + (dbus_message_cache_or_finalize): don't mess with message from + message cache outside of the cache lock. Bug #9164 from Jonathan + Matthew. + +2007-07-13 Havoc Pennington + + * Add indent-tabs-mode: nil to all file headers. + +2007-07-12 Havoc Pennington + + * dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): invert the test + for parsing hex as double to be sure it fails to work + + * dbus/dbus-sysdeps.c (_dbus_string_parse_double): don't allow hex numbers. + +2007-07-10 Havoc Pennington + + * dbus/dbus-connection.c (struct DBusConnection): Fix from Olivier + Hochreutiner to avoid trying to protect individual bits in a word + with different locks (make dispatch_acquired and io_path_acquired + dbus_bool_t rather than bitfields) + +2007-07-09 Ralf Habacker + + * dbus/dbus-sysdeps-win.c,dbus-sysdeps-win.h,dbus-sysdeps-win-util.c, + dbus-sysdeps-spawn-win.c: synced with windbus sources + +2007-07-07 Ralf Habacker + + * dbus/dbus-sysdeps-win.c + (_dbus_getsid): remove unused jump label + (_dbus_read_credentials_socket): _dbus_string_init could fail, + check initialisation + (_dbus_get_working_dir, _dbus_init_working_dir): remove unused + functions + +2007-07-04 Ralf Habacker + + * cmake/modules/FindKDEWIN.cmake: search in \win32libs + for windows supplementary packages too + +2007-06-30 Ralf Habacker + + * cmake/dbus/CMakeLists.txt: handle userdb as unix file + +2007-06-30 Ralf Habacker + + * dbus/dbus-sysdeps-win.c,dbus/dbus-sysdeps-win.h: removed obsolate + DBusUserInfo code + +2007-06-30 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (_dbus_daemon_init): reduced compiler warnings + +2007-06-23 Ralf Habacker + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): added UNIX_ONLY and + WIN_ONLY commands for auth scripts + * test/data/auth/external-root.auth-script: limit execution to unix + +2007-06-21 Havoc Pennington + + * dbus/dbus-tranport.c (auth_via_default_rules): made the verbose spam + cross-platform + +2007-06-21 Havoc Pennington + + * dbus/dbus-watch.c (dbus_watch_get_fd): 1) its behavior should + not be the same as before, the ABI has never been declared stable + on Windows and 2) do not commit to cross-platform files without + posting the exact patch to the mailing list + + * dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): as I have pointed + out before, either 0xff needs to work on both platforms, or none + of the dbus code can rely on it working. That means the options + are 1) audit the code for anywhere that relies on 0xff working, if + none found ideally add a test that it *doesn't* work and make unix + reject it explicitly, but in any case this test would go away or + 2) make it work on Windows also, then we don't have to figure out + whether we rely on it. + + And in either case, post the exact patch to the mailing list and + don't just commit. + +2007-06-21 Ralf Habacker + + * cmake/CMakeLists.txt: added VERSION_PATCH to be able to + distinguish win32 binary release from dbus versioning + +2007-06-21 Ralf Habacker + + * dbus/dbus-sysdeps-win.c: deleted local DBusCredentials structure + (_dbus_getsid): new function + (_dbus_read_credentials_socket): used correct function + (_dbus_append_user_from_current_process, + _dbus_credentials_add_from_current_process): added real + sid reading + (_dbus_credentials_parse_and_add_desired,_dbus_parse_uid): + deleted + +2007-06-21 Ralf Habacker + + * dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): don't check + 0xff as floating point, this isn't supported on win32 math + implementation + +2007-06-21 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (_dbus_homedir_from_username, + _dbus_homedir_from_current_process, _dbus_append_desired_identity): + removed obsolate functions + +2007-06-21 Ralf Habacker + + * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-util-win.c, + dbus/dbus-sysdeps-win.h: disabled uid/sid conversation stuff + implementation by Peter Kuemmel + +2007-06-21 Ralf Habacker + + * dbus/dbus-watch.c (dbus_watch_get_fd): this function is + deprecated and its behavior should be as before until all + client code is migrated. + +2007-06-19 Ralf Habacker + + * dbus/dbus-sysdeps-util-win.c, tools/dbus-launch-win.c: + msvc7.1 fixes by Jaroslaw Staniek tested with mingw + +2007-06-19 Ralf Habacker + + * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-spawn-win.c, + dbus/dbus-sysdeps-win.h: disabled DBusSocket implementation + by Peter Kuemmel + +2007-06-18 Ralf Habacker + + * dbus-win.patch: removed obsolate patches + +2007-06-18 Havoc Pennington + + * configure.in: bump version to 1.1.2 so CVS is higher than last + release (this is not the 1.1.2 release) + +2007-06-18 Havoc Pennington + + * Release 1.1.1 + +2007-06-18 Havoc Pennington + + * doc/dbus-specification.xml: document org.freedesktop.DBus.GetId() + + * bus/driver.c (bus_driver_handle_get_id): implement org.freedesktop.DBus.GetId() + + * bus/bus.c (bus_context_new): generate a unique ID for each bus context + + * dbus/dbus-connection.c (dbus_connection_get_server_id): new function + + * dbus/dbus-bus.c (dbus_bus_get_id): new function + + * dbus/dbus-server.c (dbus_server_get_id): new function + +2007-06-18 Havoc Pennington + + * dbus/dbus-sysdeps-unix.c (_dbus_read_credentials_socket): clean + this up a little bit, to try and understand why telnet'ing to a + server and sending a non-nul byte didn't disconnect immediately; + now it seems that it does disconnect immediately as it should, + though I don't understand what has changed. + +2007-06-18 Havoc Pennington + + * dbus/dbus-watch.c (dbus_watch_get_socket) + (dbus_watch_get_unix_fd): new API to match DBusConnection + (dbus_watch_get_fd): deprecate this + + Throughout: just s/dbus_watch_get_fd/dbus_watch_get_socket/g for + now since all the transports use sockets anyway + +2007-06-16 Ralf Habacker + + * dbus/dbus-macros.h, dbus/dbus-message.c, + dbus/dbus-message.h: renamed DBUS_GNUC_DEPRECATED + to DBUS_DEPRECATED and extended to msvc compiler + +2007-06-15 Ralf Habacker + + * cmake/CMakeLists.txt: use local include header first + + * dbus/dbus-sysdeps-win.c: mingw fix of DBusCredential struct + +2007-06-15 Ralf Habacker + + * cmake/ConfigureChecks.cmake,cmake/config.h.cmake: + added check for HAVE_ERRNO_H + + * cmake/dbus/CMakeLists.txt: added missing files + + * dbus/dbus-transport-win.c/.h: new files + + * dbus/dbus-sysdeps-win.c,.h: added required _unix functions + to make dbus compilable on win32 + + * dbus/dbus-sysdeps-win-utils.c,.h: moved some functions to + dbus-sysdeps-win.c + + * dbus-win.patch: removed applied or obsolate patches + + Note: dbus-win32 is now compilable, no guarantee that it runs + without any problems + +2007-06-15 Havoc Pennington + + * dbus/dbus-sysdeps-unix.c (_dbus_append_session_config_file) + (_dbus_append_system_config_file): new functions + + * bus/main.c (main): use _dbus_append_system_config_file() and + _dbus_append_session_config_file() + + * dbus/Makefile.am (INCLUDES): move DBUS_SYSTEM_CONFIG_FILE and + DBUS_SESSION_CONFIG_FILE into this makefile + +2007-06-15 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_set_errno_to_zero) + (_dbus_get_is_errno_nonzero, _dbus_get_is_errno_eintr) + (_dbus_strerror_from_errno): family of functions to abstract + errno, though these are somewhat bogus (really we should make our + socket wrappers not use errno probably - the issue is that any + usage of errno that isn't socket-related probably is not + cross-platform, so should either be in a unix-only file that can + use errno directly, or is a bug - these general errno wrappers + hide issues of this nature in non-socket code, while + socket-specific API changes would not since sockets are allowed + cross-platform) + +2007-06-14 Havoc Pennington + + * bus/dispatch.c (check_get_connection_unix_process_id): mop up + getpid() (noticed by Peter Kümmel) and adapt the test to + expect a "pid unknown" error when running on Windows. + +2007-06-14 Havoc Pennington + + * dbus/dbus-sysdeps-unix.c (_dbus_credentials_parse_and_add_user): + delete this function since it was effectively the same as + _dbus_credentials_add_from_username() + +2007-06-14 Havoc Pennington + + * dbus/dbus-auth.c: adapt to keyring changes + + * dbus/dbus-keyring.c: change to avoid using user ID and home + directory directly; instead use a + keyring-location-from-credentials function in dbus-sysdeps + + * fix to use _dbus_append_user_from_current_process() instead of + _dbus_username_from_current_process() or _dbus_append_desired_identity(). + +2007-06-14 Ralf Habacker + + * reverted global rename of function _dbus_username_from_current_process. + It needs too much tests to verify that the change does not break anything. + I had overseen that the signatures are different and requires non + trivial changes. + This is one *major* disadvantage of emulating oop functionality with c. + You are responsible for cleaning every object on every function return point + which could be a nightmare if you are not working with dbus all the days. + +2007-06-14 Ralf Habacker + + * dbus/dbus-auth.c (handle_client_initial_response_cookie_sha1_mech): + fixed usage of _dbus_append_desired_identity() + + * dbus/dbus-sysdeps.h (_dbus_username_from_current_process): removed prototype + +2007-06-14 Ralf Habacker + + * dbus/dbus-sysdeps.c: moved global lock system_users from dbus-userdb.c + +2007-06-14 Ralf Habacker + + * global rename of function _dbus_username_from_current_process + to _dbus_append_desired_identity. + Approved by Havoc Pennington + +2007-06-14 Ralf Habacker + + * dbus/dbus-sysdeps-win.c: disabled DBusUserInfo related code + (_dbus_append_desired_identity, _dbus_windows_user_is_process_owner): + new win32 functions as counterpart of unix related + (_dbus_send_credentials_socket,_dbus_read_credentials_socket): + renamed from ..._unix_socket + (_dbus_send_credentials_unix_socket): removed obsolate function + + * dbus/dbus-sysdeps-win-util.c: disabled DBusGroupInfo related code + (_dbus_verify_daemon_user,_dbus_change_to_daemon_user): + new win32 functions as counterpart of unix related + +2007-06-14 Simon McVittie + + * doc/dbus-specification.xml: say the protocol version is 1 instead of + 0 (patch from Kristoffer Lundén, fd.o#10033) and remove the FIXME + about removing protocol version from messages (as per Havoc's comment + on that bug) + +2007-06-14 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (_dbus_pid_for_log,_dbus_flush_caches): + new win32 functions as counterpart of unix related + +2007-06-14 Ralf Habacker + + * cmake/modules/FindKDEWIN.cmake, + cmake/modules/FindKDEWIN_Packager.cmake, + cmake/modules/Win32Macros.cmake: new files from the + kdewin32 project + * cmake/CMakeLists.txt: cleaned support for kdewin installer and + win32 explorer wrapper + +2007-06-13 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_iter_open_container): Fix + broken return_if_fail (kind of scary that test suite does not + cover this) + +2007-06-13 Havoc Pennington + + * dbus/dbus-server-socket.c (_dbus_server_listen_socket): support + all_interfaces=true|false for tcp servers + + * dbus/dbus-sysdeps-unix.c (_dbus_listen_tcp_socket): support + inaddr_any flag + + * bus/selinux.c: fix some missing includes + + * dbus/dbus-server-socket.c (_dbus_server_listen_socket): allow + port to simply be omitted in addition to specifying 0 + +2007-06-13 Havoc Pennington + + * configure.ac, bus/selinux.c, dbus/dbus-sysdeps-unix-util.c: add + libaudit support, no clue what this means really but now we have + it. Patches from Fedora package. + + * bus/bus.c (bus_context_new): move selinux initialization after + changing to daemon user, patch from Fedora package + + * dbus/dbus-transport.c (auth_via_unix_user_function): fix a typo + +2007-06-12 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_iter_open_container): improve + the checks/warnings for contained_signature a bit + +2007-06-12 Havoc Pennington + + * dbus/dbus-marshal-recursive.c (write_or_verify_typecode): + improve the warning a bit if you write extra data into a message + +2007-06-12 Havoc Pennington + + * dbus/dbus-auth.c (sha1_handle_second_client_response) + (handle_server_data_anonymous_mech): add the process ID from + socket credentials, if available, even if not using EXTERNAL + + * dbus/dbus-transport.c (auth_via_default_rules): support + allow_anonymous flag + + * dbus/dbus-connection.c (dbus_connection_get_is_anonymous) + (dbus_connection_set_allow_anonymous): new API for controlling + anonymous access + +2007-06-09 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_pop_line): fix this not to + think an empty line is the end of the file. + Also, fix some whitespace. + + * dbus/dbus-string-util.c: add more tests for + _dbus_string_pop_line() revealing that it thinks an empty line is + the end of the file, which broke dbus-auth-script.c so + it didn't really run the scripts + + * dbus/dbus-auth.c: add ANONYMOUS mechanism + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): fix to detect + an empty/no-op auth script; add commands to check that we have or + don't have the expected credentials + +2007-06-09 Havoc Pennington + + * bus/policy.c (bus_policy_create_client_policy): gracefully + continue if the connection has no unix user - just don't apply + any unix user dependent rules. + + * bus/config-parser.c: remove dbus-userdb.h usage + + * bus/bus.c: remove dbus-userdb.h usage + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + support Windows user function; also, fix the logic for checking + auth as root in the default auth code (broken in the previous + commit) + + * dbus/dbus-connection.c + (dbus_connection_set_windows_user_function): new function + (dbus_connection_get_windows_user): new function + +2007-06-09 Havoc Pennington + + * bus/dispatch.c (check_get_connection_unix_process_id): adapt + since sysdeps-unix.h stuff isn't included anymore + + * bus/bus.c (bus_context_new): use more abstract functions to + change user, so they can be no-ops on Windows + + * dbus/dbus-credentials.c, dbus/dbus-credentials.h, + dbus/dbus-credentials-util.c: new files containing a fully opaque + DBusCredentials data type to replace the old not opaque one. + + * configure.in (DBUS_UNIX): define DBUS_UNIX to match DBUS_WIN on + windows + + * dbus/dbus-userdb.h: prohibit on Windows, next step is to clean + up the uses of it in bus/*.c and factor out the parts of + cookie auth that depend on it + +2007-06-07 Havoc Pennington + + * dbus/dbus-message.c: improve some docs related to reading values + from a message iter + +2007-06-02 Ralf Habacker + + * cmake: added cygwin compile support + +2007-06-01 Ralf Habacker + + * tools/dbus-launch-win.c: new file, replaces script wrapper on win32. + + * cmake/dbus-launch.bat.cmake: removed obsolate file + +2007-05-31 Ralf Habacker + + * bus/main.c (main): uses _dbus_get_config_file_name() to detect + session.conf location on win32. + + * dbus-sysdeps-win.h (_dbus_get_config_file_name,_dbus_file_exists): + new prototyp, undefined interface after including windows.h because + it makes trouble when a paramater is named interface. + + * dbus-sysdeps-win.c (_dbus_get_install_root, + _dbus_get_config_file_name,_dbus_file_exists): new functions. + +2007-05-27 Ralf Habacker + + * bus/policy.c,dbus/dbus-internals.c: fixed inconsistant line endings + as reported by Peter Kümmel. + +2007-05-25 John (J5) Palmieri + + * Released 1.1.0 + +2007-05-25 John (J5) Palmieri + + * Split NEWS and ChangeLog into a .pre-1-0 file as per HACKING + We forgot to do this during the 1.0 release and it makes sense + now as we get ready to release the first 1.1.0 development tarball + +2007-05-25 John (J5) Palmieri + + * create directory test/data/valid-config-files/session.d so that + make check passes + +2007-05-25 John (J5) Palmieri + + * INSTALL: remove dependancies for bindings since they no longer + are a part of core + +2007-05-25 Ralf Habacker + + * dbus/dbus-server-win.c,dbus/dbus-server-win.h: new file + with empty function _dbus_server_listen_platform_specific(). + + * dbus/dbus-server.c (listen_funcs): uses + _dbus_server_listen_platform_specific on any platform. + +2007-05-25 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not getting + user info from a domain controller isn't an error, the computer + may run in a non domain context. + +2007-05-25 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (_dbus_full_duplex_pipe): fixed assertation. + +2007-05-24 Simon McVittie + + * bus/config-parser.c (test_service_dir_matches): fixed ordering for unix. + + * bus/config-parser.c (test_default_session_servicedirs): made allocation + of _progs platform independent. + +2007-05-23 Havoc Pennington + + * bus/Makefile.am (install-data-hook): create session.d + + * bus/session.conf.in: add session.d for the session bus, so + security policy can be extended + +2007-05-22 Ralf.Habacker + + * cmake/CMakeLists.txt: fixed creating of TEST_..._BINARY to make + bus-test able to find the binaries. + +2007-05-21 Simon McVittie + + * acinclude.m4, configure.in: In recent autotools, ${datadir} is + defined in terms of ${datarootdir}, so EXPANDED_DATADIR needs to be + expanded recursively. Rather than fixing configure.in to do this, I + grabbed the AS_AC_EXPAND macro from autostars.sf.net, which seems to be + commonly used. + +2007-05-21 Simon McVittie + + * update-dbus-docs.sh: Assorted improvements: + - Default user if $FDUSER is not set is the ssh default + (set in ~/.ssh/config or based on the local username), not a + hard-coded "johnp" + - Temporary checkout directory is created securely (preventing symlink + attacks), if mktemp(1) is available + - Use make -C rather than cd && make && cd .. + +2007-05-21 Simon McVittie + + * HACKING: Point to correct mailing list + +2007-05-21 Simon McVittie + + * doc/dbus-specification.xml: explicitly specify that STRING cannot + contain embedded NULs. + +2007-05-20 Ralf.Habacker + + * dbus/dbus-internal.c: fix inline problem on win32. + +2007-05-20 Ralf.Habacker + + * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching + domain controller isn't an error, converted error message to verbose + message. + +2007-05-19 Ralf.Habacker + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled + tests not running on wince. + +2007-05-19 Ralf.Habacker + + * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' + to unset a environment variable. + +2007-05-19 Ralf.Habacker + + * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' + to unset a environment variable. + +2007-05-19 Ralf.Habacker + + * bus/policy.c (bus_policy_create_client_policy): + win32 temporary fix until the userdb stuff is ported completly. + +2007-05-19 Ralf.Habacker + + * dbus/dbus-server.c (listen_funcs): + _dbus_server_listen_platform_specific is empty on win32, + limited to unix only. + + * dbus/dbus-server.c (valid_addresses): limit unix + only addresses to unix. + +2007-05-18 Havoc Pennington + + * doc/dbus-specification.xml: add a GetAll to the Properties + interface. + +2007-05-17 Ralf.Habacker + + * bus\config-parser.c (test_default_session_servicedirs): + win32 fix. + +2007-05-17 Ralf.Habacker + + * configure.in: define constant DBUS_UNIX. + +2007-05-14 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound): + compile fix for MS Platform SDK 6 + patch from Michael Luschas + +2007-05-10 John (J5) Palmieri + + * dbus-1.pc.in: add daemondir to pc file + patch from Brian Cameron + +2007-05-04 Simon McVittie + + * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local + interface and the corresponding /o/fd/DBus/Local object path; + describe them as reserved and forbid using them in a sent message, + mentioning that in the reference implementation this will cause the + connection to be dropped. Patch approved by Havoc. + +2007-04-28 Ralf Habacker + + * cmake/: don't install test applications and service files, + moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt + +2007-04-27 Havoc Pennington + + * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from + Tobias Nygren, checking pointer to fd vs. 0 rather than checking + the fd itself + +2007-04-26 Ralf Habacker + + * cmake/: added debug postfixes to debug exe's for + easier debugging. + * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): + print error code in case no string message is available. + +2007-04-06 Simon McVittie + + * dbus/dbus-message-util.c, dbus/dbus-message.c, + dbus/dbus-message.h: Add API to convert a DBusMessage to/from a + byte array. Patch from Dafydd Harries , + approved by Havoc Pennington. + +2007-04-03 Timo Hoenig + + * dbus/dbus-address.c (dbus_parse_address): Do not accept zero- + length address. + * dbus/dbus-address.c (_dbus_address_test): Add test for zero- + length address. + +2007-03-25 Ralf.Habacker + + * cmake/dbus/CMakeLists.txt: debug postfix also for mingw. + +2007-03-16 Ralf.Habacker + + * cmake/modules/FindExpat.cmake: fix package detection on win32. + + * README.win: update install instructions. + +2007-03-16 Ralf.Habacker + + * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append): + new prototyp + (_DBUS_PATH_SEPARATOR): new macro. + + * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged + from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. + +2007-03-15 Ralf.Habacker + + * bus/config-parser.c, bus/policy.c, + bus/policy.h, bus/dbus-daemon.1.in, + bus/session.conf.in: added eavesdrop support + for replies - patch by olli.salli at collabora.co.uk + approved by Havoc Pennington. + +2007-03-15 Ralf.Habacker + + * dbus\dbus-sysdeps-win-thread.c: renamed to + dbus-sysdeps-thread-win.c, it is a platform depending file + similar to dbus-sysdeps-pthread.c. + +2007-03-15 Ralf.Habacker + + * cmake\doc\CMakeLists.txt: added prelimary xml doc + support, needs cmake Find script. + +2007-03-14 Ralf.Habacker + + * cmake: add doxygen support + +2007-03-14 Ralf.Habacker + + * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX. + +2007-03-13 Ralf.Habacker + + * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): + win32 compile fix. + +2007-03-13 Ralf.Habacker + + * dbus-win.patch: removed obsolate patches. + +2007-03-13 Ralf.Habacker + + * dbus/dbus-sysdeps-win.c: added zero byte sending + and receiving after connection start up + +2007-03-11 Havoc Pennington + + * tools/dbus-launch.c (do_close_stderr): fix C89 problem and + formatting problem + + * Mostly fix the DBusPipe mess. + - put line break after function return types + - put space before parens + - do not pass structs around by value + - don't use dbus_strerror after calling supposedly cross-platform + api + - don't name pipe variables "fd" + - abstract special fd numbers like -1 and 1 + +2007-03-12 Ralf Habacker + + * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, + dbus/dbus-sysdeps-util-win.c: renamed functions + _dbus_xxx_file() to _dbus_file_xxx() to reflect + struct name DBusFile. + +2007-03-12 Ralf Habacker + + * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon): + fix _dbus_pid_fd check. + +2007-03-10 Ralf Habacker + + * tools/dbus-print-message.c (print_message): + added printing of the reply serial to method returns and + errors, so you can actually figure out the message/reply + pairs - patch by olli.salli at collabora.co.uk. + +2007-03-10 Ralf Habacker + + * dbus-win.patch: removed committed patches. + +2007-03-10 Ralf Habacker + + * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c, + dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c, + dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c, + dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx, + completed _dbus_pipe support. + +2007-03-10 Ralf Habacker + + * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket): + changed type or port to pointer, because the port is given back. + + * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket): + implemented returning tcp port. Skipping port parameter + and non integer port values in config statement + needs more effort. + + * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c + (_dbus_listen_tcp_socket): return the real used tcp port. + + * bus/dbus-daemon.1.in: added tcp examples + +2007-03-09 Ralf Habacker + + * cmake/config.h.cmake: win32 msvc bug fix + +2007-03-09 Ralf Habacker + + * cmake/config.h.cmake: fixed DBUS_WINxx defines, + using _WINCE does not work. + +2007-03-08 Ralf Habacker + + * dbus-win.patch: removed _dbus_write_pipe() patch, it is now + committed. + +2007-03-08 Ralf Habacker + + * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h: + rename pipe related write() function calls to _dbus_write_pipe(). + +2007-03-08 Ralf Habacker + + * dbus-win.patch: added bus/config-loader-libexpat.c patch, + uses DBUS_WIN for alls win32 related #ifdefs, + some minor cleanups + +2007-03-08 Ralf Habacker + + * dbus-win.patch: updated patch for bus/dispatch.c. + +2007-03-08 Ralf Habacker + + * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user, + dbus_connection_get_unix_process_id): Let return them valid user id's, + otherwise bus-test fails. How to replace on win32 ?. + + * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): + fix memory leak. + +2007-03-08 Ralf Habacker + + * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): + use dbus friendly error name. + (fill_win_user_info_homedir): print user name in error case too. + +2007-03-08 Ralf Habacker + + * cmake/ConfigureChecks.cmake: fixed socketpair check + +2007-03-08 Ralf Habacker + + * bus/dispatch.c: disabled segfault test on win32 for now + +2007-03-08 Ralf Habacker + + * configure.in, cmake/ConfigureChecks.cmake: added check + for setrlimit. + * test/test-segfault.c: only include setrlimit stuff only + when available. + +2007-03-07 Ralf Habacker + + * test/test-segfault.c: unix compile fix. + * dbus-win.patch: removed obsolate patches. + +2007-03-07 Ralf Habacker + + * bus/activation.c: removed obsolate include header. + * test/test-segfault.c: win32 compile fix, rlimit + isn't available on win32. + * dbus-win.patch: removed some more patches, they + are applied or obsolate + +2007-03-06 Ralf Habacker + + * bus-win.patch: fixes unix listen problems, dbus-test + now runs. + +2007-03-06 Ralf Habacker + + * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt, + cmake/CMakeLists.txt: win32 compile fix + +2007-03-04 Ralf Habacker + + * dbus-win.patch, README.win: added available win32 + patches from windbus project (http://sf.net/projects/windbus) + +2007-03-04 Ralf Habacker + + * bus/activation.c: (bus_activation_activate_service): + fixed call to _dbus_spawn_async_with_babysitter(). + +2007-03-04 Ralf Habacker + + * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter): + added environment pointer as function parameter, used on win32. + + * test/spawn-test.c: fixed call to above mentioned function. + +2007-03-04 Ralf Habacker + + * configure.in,test/test-sleep-forever.c,test/test-names.c: + added configure check for unistd.h. + +2007-03-04 Ralf Habacker + + * test/Makefile.am: fixed test data copy problem in + out of source build, when sources came from svn or cvs. + +2007-03-03 Ralf Habacker + + * dbus/*-win.*,bus/*-win.*: added win32 platform related + files. These files are only added to the cmake build system. + The missing dbus-win.patch file will be added later. + +2007-03-03 Ralf Habacker + + * cmake: new directory, contains cmake build support. + See http://www.cmake.org for more informations. + Currently only unix will be buildable because some + win32 required files are still missing. + +2007-03-03 Thiago Macieira + + * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr + output and add it to the DBusError message we return. + + * tools/dbus-launch.1: + * tools/dbus-launch.c: Add option --close-stderr to, well, + close stderr before starting dbus-daemon. + +2007-01-31 Havoc Pennington + + * bus/dbus-daemon.1.in: write a section in the man page on running + a test daemon for debugging purposes + +2007-01-26 Havoc Pennington + + * bus/session.conf.in: override all the default limits with much + higher limits on the session bus, there is no reason the session + bus should have low limits + + * bus/config-parser.c (bus_config_parser_new): increase default + limits so they are less likely to be hit; in particular the max + replies per connection was way too low + +2006-01-25 Simon McVittie + + * doc/dbus-tutorial.xml: Replace Python section of tutorial with + a pointer to the tutorial maintained as part of dbus-python + +2006-12-31 Ralf Habacker + + * dbus/dbus-sysdeps-unix.c: unix compile fix, moved + atomic_exchange_and_add() from dbus/dbus-sysdeps.c + to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec(). + +2006-12-31 Ralf Habacker + + * tools/dbus-monitor.c: gettimeofday() is not available + on windows so we have to provide our own. It's taken from + lgpl'd kdewin32 package. - Patches from Christian Ehrlicher + +2006-12-31 Ralf Habacker + + * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() + from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() + is in dbus-sysdeps-win.c (not in this patch). + + * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit + with InterlockedInc/Decrement. + - Patches from Christian Ehrlicher + +2006-12-31 Ralf Habacker + + * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix. + +2006-12-31 Ralf Habacker + + * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass): + fix mispaced const statement. - Patch from Peter Kümmel + +2006-12-19 Ray Strode + + * bus/bus.c (process_config_every_time): + don't overwrite existing bus context activation object + until after we've checked that the new activation is + valid. + + * bus/main.c + (signal_handler), (handle_reload_watch): + don't call exit() on failure, instead make do and keep + going. + (close_reload_pipe): new function to turn off + hangup-causes-config-reload behavior if an unexpected + error occurs + +2006-12-13 Ralf Habacker + + * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32): + correctness fix. - Patch from Christian Ehrlicher + +2006-12-13 Ralf Habacker + + * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, + we should also use it. - Patch from Christian Ehrlicher + +2006-12-13 Ralf Habacker + + * dbus-sysdeps-util.c: added win32 related tests + +2006-12-12 Ralf Habacker + + * dbus/dbus-string.c (_dbus_string_pop_line), + bus/desktop-file.c (parse_section_start, + parse_comment_or_blank,parse_key_value,): uses + _dbus_string_find_eol() to support platform independent eol style. + +2006-12-12 Ralf Habacker + + * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. + * dbus/dbus-string-util.c (_dbus_string_test): added testcases for + _dbus_string_find_eol(). + Approved by: Havoc Pennington. + +2006-12-12 Tim Dijkstra + + * configure.in: Added switch to disable user_database caching. + + * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to + be able disable user_dabase caching. + +2006-12-12 Tim Dijkstra + + * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext + struct. It is unnecessary we have a global one already. Also remove + bus_context_get_user_database function, it is no longer needed. + Flush the global database on reload. + + * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups + with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase. + + * dbus/dbus-userdb.c, dbus/dbus-userdb.h: + Add _dbus_user_database_flush_system. + Make more functions DBUS_USERDB_INCLUDES_PRIVATE. + Small unrelated change in _dbus_is_a_number: change + _dbus_string_parse_int to _dbus_string_parse_uint. + + * bus/connection.c: Change call to _dbus_user_database_get_groups to + _dbus_groups_from_uid. + + * bus/policy.c, bus/policy.h: Change call to + _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove + DBusUserDatabase from bus_policy_allow_user prototype, it no longer + needs it. + +2006-12-12 John (J5) Palmieri + + * bus/signal.c: Fix match_rule_equal errata + (CVE-2006-6107 - Patch from Kimmo Hämäläinen + ) + +2006-11-19 Thiago Macieira + + * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock, + _dbus_pthread_condvar_wait, + _dbus_pthread_condvar_wait_timeout): set pmutex->holder to + pthread_self() after coming back from a conditional variable + wait as well as in one codepath where it was forgotten. + Approved by: Havoc Pennington. + +2006-11-17 Havoc Pennington + + * update-dbus-docs.sh: allow setting fd.org username via env + variable. Make it run autogen with --enable-xml-docs=yes + --enable-doxygen-docs=yes so configure will fail if the required + tools are missing. + +2006-11-17 Havoc Pennington + + * doc/dbus-faq.xml: minor FAQ tweaks + +2006-11-14 Havoc Pennington + + * dbus/dbus-misc.c, dbus/dbus-misc.h: Move + dbus_get_local_machine_id() to its own file, no substantive + changes. There are a couple other things we might want to add that + are "misc" so moving out of dbus-connection.[hc] which is big + enough already. + +2006-11-14 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the + UUID had the timestamp last, but the implementation had it first; + move it to last since I think it's a tiny bit nicer (easier to + compare at a glance, faster to sort, less code), and will not + cause any practical compatibility problems. Also, always convert + the timestamp to big endian. + + * doc/dbus-specification.xml: Clean up the docs on the UUID. + + * tools/dbus-uuidgen.1: more prominently say it is not suitable + as a replacement for regular uuidgen/RFC4122. + +2006-11-14 John (J5) Palmieri + + * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have + the correct value so we don't assert when initalizing recursive threads + + * test/name-test/test-thread-init.c: call dbus_threads_init_default + instead of _dbus_threads_init_debug since it is more of a real world + test + diff --git a/Doxyfile.in b/Doxyfile.in new file mode 100644 index 0000000..afac639 --- /dev/null +++ b/Doxyfile.in @@ -0,0 +1,181 @@ +# Doxyfile 0.1 + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = D-Bus +PROJECT_NUMBER = @VERSION@ +OUTPUT_DIRECTORY = doc/api +OUTPUT_LANGUAGE = English +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ALWAYS_DETAILED_SEC = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +INTERNAL_DOCS = NO +STRIP_CODE_COMMENTS = YES +CASE_SENSE_NAMES = YES +SHORT_NAMES = NO +HIDE_SCOPE_NAMES = NO +VERBATIM_HEADERS = YES +SHOW_INCLUDE_FILES = YES +JAVADOC_AUTOBRIEF = YES +INHERIT_DOCS = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 8 +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +ALIASES = +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +OPTIMIZE_OUTPUT_FOR_C = YES +SHOW_USED_FILES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_FORMAT = +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = @top_srcdir@/dbus +FILE_PATTERNS = *.c *.h +RECURSIVE = YES +#EXCLUDE = test + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = Makefile.* ChangeLog CHANGES CHANGES.* README \ + README.* *.png AUTHORS DESIGN DESIGN.* *.desktop \ + DESKTOP* COMMENTS HOWTO magic NOTES TODO THANKS + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3dbus +MAN_LINKS = YES +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = YES +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = "DBUS_BEGIN_DECLS=" \ + "DBUS_END_DECLS=" \ + "DOXYGEN_SHOULD_SKIP_THIS" \ + "DBUS_GNUC_DEPRECATED=" \ + "_DBUS_DEFINE_GLOBAL_LOCK(name)=" \ + "_DBUS_GNUC_PRINTF(from,to)=" +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +PERL_PATH = +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +TEMPLATE_RELATIONS = YES +HIDE_UNDOC_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 640 +MAX_DOT_GRAPH_HEIGHT = 1024 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/HACKING b/HACKING new file mode 100644 index 0000000..805fd2e --- /dev/null +++ b/HACKING @@ -0,0 +1,351 @@ +The guidelines in this file are the ideals; it's better to send a +not-fully-following-guidelines patch than no patch at all, though. We +can always polish it up. + +Mailing list +=== + +The D-Bus mailing list is dbus@lists.freedesktop.org; discussion +of patches, etc. should go there. + +Security +=== + +Most of D-Bus is security sensitive. Guidelines related to that: + + - avoid memcpy(), sprintf(), strlen(), snprintf, strlcat(), + strstr(), strtok(), or any of this stuff. Use DBusString. + If DBusString doesn't have the feature you need, add it + to DBusString. + + There are some exceptions, for example + if your strings are just used to index a hash table + and you don't do any parsing/modification of them, perhaps + DBusString is wasteful and wouldn't help much. But definitely + if you're doing any parsing, reallocation, etc. use DBusString. + + - do not include system headers outside of dbus-memory.c, + dbus-sysdeps.c, and other places where they are already + included. This gives us one place to audit all external + dependencies on features in libc, etc. + + - do not use libc features that are "complicated" + and may contain security holes. For example, you probably shouldn't + try to use regcomp() to compile an untrusted regular expression. + Regular expressions are just too complicated, and there are many + different libc's out there. + + - we need to design the message bus daemon (and any similar features) + to use limited privileges, run in a chroot jail, and so on. + +http://vsftpd.beasts.org/ has other good security suggestions. + +Coding Style +=== + + - The C library uses GNU coding conventions, with GLib-like + extensions (e.g. lining up function arguments). The + Qt wrapper uses KDE coding conventions. + + - Write docs for all non-static functions and structs and so on. try + "doxygen Doxyfile" prior to commit and be sure there are no + warnings printed. + + - All external interfaces (network protocols, file formats, etc.) + should have documented specifications sufficient to allow an + alternative implementation to be written. Our implementation should + be strict about specification compliance (should not for example + heuristically parse a file and accept not-well-formed + data). Avoiding heuristics is also important for security reasons; + if it looks funny, ignore it (or exit, or disconnect). + +Development +=== + +D-Bus uses Git as its version control system. The main repository is +hosted at git.freedesktop.org/dbus/dbus. To clone D-Bus, execute the +following command: + + git clone git://git.freedesktop.org/dbus/dbus +OR + git clone git.freedesktop.org:dbus/dbus + +The latter form is the one that allows pushing, but it also requires +an SSH account on the server. The former form allows anonymous +checkouts. + +D-Bus development happens in two branches in parallel: the current +stable branch, with an even minor number (like 1.0, 1.2 and 1.4), and +the next development branch, with the next odd number. + +The stable branch is named after the version number itself (dbus-1.2, +dbus-1.4), whereas the development branch is simply known as "master". + +When making a change to D-Bus, do the following: + + - check out the earliest branch of D-Bus that makes sense to have + your change in. If it's a bugfix, it's normally the current stable + branch; if it's a feature, it's normally the "master" branch. If + you have an important security fix, you may want to apply to older + branches too. + + - for large changes: + if you're developing a new, large feature, it's recommended + to create a new branch and do your development there. Publish + your branch at a suitable place and ask others to help you + develop and test it. Once your feature is considered finalised, + you may merge it into the "master" branch. + +- for small changes: + . make your change to the source code + . execute tests to guarantee that you're not introducing a + regression. For that, execute: make check + (if possible, add a new test to check the fix you're + introducing) + . commit your change using "git commit" + in the commit message, write a short sentence describing what + you did in the first line. Then write a longer description in + the next paragraph(s). + . repeat the previous steps if necessary to have multiple commits + + - extract your patches and send to the D-Bus mailing list for + review or post them to the D-Bus Bugzilla, attaching them to a bug + report. To extract the patches, execute: + git format-patch origin/master + + - once your code has been reviewed, you may push it to the Git + server: + git push origin my-branch:remote + OR + git push origin dbus-X.Y + OR + git push origin master + (consult the Git manual to know which command applies) + + - (Optional) if you've not worked on "master", merge your changes to + that branch. If you've worked on an earlier branch than the current + stable, merge your changes upwards towards the stable branch, then + from there into "master". + + . execute: git checkout master + . ensure that you have the latest "master" from the server, update + if you don't + . execute: git merge dbus-X.Y + . if you have any conflicts, resolve them, git add the conflicted + files and then git commit + . push the "master" branch to the server as well + + Executing this merge is recommended, but not necessary for all + changes. You should do this step if your bugfix is critical for the + development in "master", or if you suspect that conflicts will arise + (you're usually the best person to resolve conflicts introduced by + your own code), or if it has been too long since the last merge. + + +Making a release +=== + +To make a release of D-Bus, do the following: + + - check out a fresh copy from Git + + - verify that the libtool versioning/library soname is + changed if it needs to be, or not changed if not + + - update the file NEWS based on the git history + + - verify that the version number of dbus-specification.xml is + changed if it needs to be; if changes have been made, update the + release date in that file + + - update the AUTHORS file with "make update-authors" if necessary + + - the version number should have major.minor.micro, even + if micro is 0, i.e. "1.0.0" and "1.2.0" not "1.0"/"1.2"; the micro + version should be even for releases, and odd for intermediate snapshots + + - "make distcheck" (DO NOT just "make dist" - pass the check!) + + - if make distcheck fails, fix it. + + - once distcheck succeeds, "git commit -a". This is the version + of the tree that corresponds exactly to the released tarball. + + - tag the tree with "git tag -s -m 'Released X.Y.Z' dbus-X.Y.Z" + where X.Y.Z is the version of the release. If you can't sign + then simply created an unsigned annotated tag: + "git tag -a -m 'Released X.Y.Z' dbus-X.Y.Z". + + - bump the version number up in configure.ac (so the micro version is odd), + and commit it. Make sure you do this *after* tagging the previous + release! The idea is that git has a newer version number + than anything released. Similarly, bump the version number of + dbus-specification.xml and set the release date to "(not finalized)". + + - merge the branch you've released to the chronologically-later + branch (usually "master"). You'll probably have to fix a merge + conflict in configure.ac (the version number). + + - push your changes and the tag to the central repository with + git push origin master dbus-X.Y dbus-X.Y.Z + + - scp your tarball to freedesktop.org server and copy it to + dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/releases/dbus/dbus-X.Y.Z.tar.gz. + This should be possible if you're in group "dbus" + + - Update the online documentation with `make -C doc maintainer-upload-docs`. + + - update the wiki page http://www.freedesktop.org/Software/dbus by + adding the new release under the Download heading. Then, cut the + link and changelog for the previous that was there. + + - update the wiki page + http://www.freedesktop.org/Software/DbusReleaseArchive pasting the + previous release. Note that bullet points for each of the changelog + items must be indented three more spaces to conform to the + formatting of the other releases there. + + - post to dbus@lists.freedesktop.org announcing the release. + + +Making a ".0" stable release +=== + +We create a branch for each stable release. The branch name should be +dbus-X.Y which is a branch that has releases versioned X.Y.Z; +changes on a stable branch should be limited to significant bug fixes. + +Because we won't make minor changes like keeping up with the latest +deprecations on a stable branch, stable branches should turn off the +gcc warning for deprecated declarations (e.g. see commit 4ebb275ab7). + +Be extra-careful not to merge master (or any branch based on master) into a +stable branch. + +To branch: + git branch dbus-X.Y +and upload the branch tag to the server: + git push origin dbus-X.Y + +To develop in this branch: + git checkout dbus-X.Y + +Environment variables +=== + +These are the environment variables that are used by the D-Bus client library + +DBUS_VERBOSE=1 +Turns on printing verbose messages. This only works if D-Bus has been +compiled with --enable-verbose-mode + +DBUS_MALLOC_FAIL_NTH=n +Can be set to a number, causing every nth call to dbus_alloc or +dbus_realloc to fail. This only works if D-Bus has been compiled with +--enable-tests. + +DBUS_MALLOC_FAIL_GREATER_THAN=n +Can be set to a number, causing every call to dbus_alloc or +dbus_realloc to fail if the number of bytes to be allocated is greater +than the specified number. This only works if D-Bus has been compiled with +--enable-tests. + +DBUS_TEST_MALLOC_FAILURES=n +Many of the D-Bus tests will run over and over, once for each malloc +involved in the test. Each run will fail a different malloc, plus some +number of mallocs following that malloc (because a fair number of bugs +only happen if two or more mallocs fail in a row, e.g. error recovery +that itself involves malloc). This env variable sets the number of +mallocs to fail. +Here's why you care: If set to 0, then the malloc checking is skipped, +which makes the test suite a heck of a lot faster. Just run with this +env variable unset before you commit. + +Tests +=== + +These are the test programs that are built if dbus is compiled using +--enable-tests. + +dbus/dbus-test +This is the main unit test program that tests all aspects of the D-Bus +client library. + +dbus/bus-test +This it the unit test program for the message bus. + +test/break-loader +A test that tries to break the message loader by passing it randomly +created invalid messages. + +test/name-test/* +This is a suite of programs which are run with a temporary session bus. +If your test involves multiple processes communicating, your best bet +is to add a test in here. + +"make check" runs all the deterministic test programs (i.e. not break-loader). + +"make lcov-check" is available if you configure with --enable-compiler-coverage +and gives a complete report on test suite coverage. + +Patches +=== + +Please file them at http://bugzilla.freedesktop.org under component +dbus, and also post to the mailing list for discussion. The commit +rules are: + + - for fixes that don't affect API or protocol, they can be committed + if any one qualified reviewer other than patch author + reviews and approves + + - for fixes that do affect API or protocol, two people + in the reviewer group have to review and approve the commit, and + posting to the list is definitely mandatory + + - if there's a live unresolved controversy about a change, + don't commit it while the argument is still raging. + + - at their discretion, members of the reviewer group may also commit + branches/patches under these conditions: + + - the branch does not add or change API, ABI or wire-protocol + + - the branch solves a known problem and is covered by the regression tests + + - there are no objections from the rest of the review group within + a week of the patches being attached to Bugzilla + + - the committer gets a positive review on Bugzilla from someone they + consider qualified to review the change (e.g. a colleague with D-Bus + experience; not necessarily a member of the reviewer group) + + - regardless of reviews, to commit a patch: + - make check must pass + - the test suite must be extended to cover the new code + as much as reasonably feasible (see Tests above) + - the patch has to follow the portability, security, and + style guidelines + - the patch should as much as reasonable do one thing, + not many unrelated changes + No reviewer should approve a patch without these attributes, and + failure on these points is grounds for reverting the patch. + +The reviewer group that can approve patches: + +Havoc Pennington +Michael Meeks +Alexander Larsson +Zack Rusin +Joe Shaw +Mikael Hallendal +Richard Hult +Owen Fraser-Green +Olivier Andrieu +Colin Walters +Thiago Macieira +John Palmieri +Scott James Remnant +Will Thompson +Simon McVittie +David Zeuthen diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..e182f98 --- /dev/null +++ b/INSTALL @@ -0,0 +1,252 @@ + DBus Installation + ================= + +Quick start +=========== + +DBus could be build with GNU AutoTools or with cmake for its build system, +thus the basic install procedure can be summarized as: + +with autotools: + + ./configure --prefix=/usr + make + su make install + +The configure script will automatically determine whether to try and +build bindings for GLib, Qt, Qt3, Python and Mono based on what tools +are installed on the host system. The default build behaviour can be +overridden using the --enable-XXX/--disable-XXX arguments to configure. +A typical scenario in which it is desirable to override automatic +detection, is during packaging of binary builds, where a predictable +dependancy chain is required. For more details on GNU AutoTools +installation, consult the generic instructions later in this document + +with cmake: + mkdir dbus-build-dir + cd dbus-build-dir + cmake -G [-D