home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / share / doc / packages / dbus-1 / ChangeLog < prev    next >
Text File  |  2006-11-29  |  522KB  |  15,147 lines

  1. 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
  2.  
  3.     * Released 1.0.0
  4.  
  5. 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
  6.  
  7.     * AUTHORS: added Peter and Tor of windows porting fame
  8.  
  9. 2006-11-08  Havoc Pennington  <hp@redhat.com>
  10.  
  11.     * doc/dbus-specification.xml: add a note about protocol stability
  12.  
  13.     * doc/TODO: Remove "important for 1.0" section, replace with
  14.     "important for 1.2" section
  15.     
  16. 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
  17.  
  18.     * README: remove some of the out of date flags
  19.  
  20.     * doc/TODO: Remove todo items which are done
  21.  
  22. 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
  23.  
  24.     * tools/dbus-monitor.c: Handle sigint so we flush stdout
  25.     (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
  26.  
  27. 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
  28.  
  29.     * tools/dbus-monitor.1: update the manpage for dbus-monitor
  30.     (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
  31.  
  32. 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
  33.  
  34.     * AUTHORS: Update with all people listed in the ChangeLog
  35.  
  36. 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
  37.  
  38.     * tools/dbus-monitor.c: add profiling tools to dbus-monitor
  39.     (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
  40.  
  41. 2006-11-07  Havoc Pennington  <hp@redhat.com>
  42.  
  43.     * HACKING: Update release instructions to include stuff about
  44.     stable releases, branching, etc. May not be totally correct,
  45.     please fix if needed, but keep instructions up-to-date so we do
  46.     each stable release consistently in the future.
  47.  
  48. 2006-11-07  Havoc Pennington  <hp@redhat.com>
  49.  
  50.     * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
  51.     documentation updates. Bump faq/spec versions (not to 1.0; I don't
  52.     think the spec will be "finished"/1.0 when we ship the 1.0 library).
  53.  
  54. 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
  55.  
  56.     * bus/bus.c: Missed patch - pass in the context to the directory watch
  57.  
  58. 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
  59.  
  60.     * Released D-Bus 1.0 RC 3(0.95)
  61.  
  62. 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
  63.  
  64.     * bus/activation.c (bus_activation_new): don't fail if we can not read
  65.     the directory as it may not exist
  66.  
  67. 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
  68.  
  69.     * bus/config-parser.c (service_dirs_find_dir): use 
  70.     _dbus_list_get_next_link so we don't get stuck in an infinite loop
  71.     (start_busconfig_child): move processing of standard_session_servicedirs
  72.     tags here because they have no content
  73.     (bus_config_parser_content): check we don't have content in 
  74.     standard_session_servicedirs tag
  75.  
  76. 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
  77.  
  78.     * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
  79.     Packagers need to own this directory
  80.  
  81. 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
  82.  
  83.     * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
  84.     <standard_session_servicedirs> tag with a <sevicedir> tag that
  85.     points to the test service directory
  86.  
  87. 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
  88.  
  89.     * configure.in: Add a check for DIR *dirp->dd_fd
  90.  
  91.     * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
  92.     DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
  93.     of both Solaris and Irix
  94.  
  95. 2006-11-01  Havoc Pennington  <hp@redhat.com>
  96.  
  97.     * bus/dbus-daemon.1.in: document standard_session_servicedirs
  98.  
  99. 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
  100.  
  101.     * configure.in: expose DBUS_DATADIR
  102.     
  103.     * bus/config-parser.c: add the standard_session_servicedirs element
  104.     to the parser
  105.     (bus_config_parser_content): process the standard_session_servicedirs
  106.     element by getting the standard directories from sysdeps and merging
  107.     them into the service directory list
  108.     (test_default_session_servicedirs): make sure we get what we expect
  109.  
  110.     * bus/session.conf.in: replace the servicedir tag with the 
  111.     standard_session_servicedirs tag
  112.  
  113.     * dbus/dbus-list.h: remove the typedef of DBusList and place it in
  114.     dbus-sysdeps.h to avoid circular header dependencies
  115.  
  116.     * dbus/dbus-sysdeps.h: add the typedef of DBusList
  117.  
  118.     * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
  119.     which takes a string of directories delimited by colons, parses them 
  120.     out, appends a suffix and puts them in a list ignoring empty elements
  121.     (_dbus_get_standard_session_servicedirs): returns the standard 
  122.     directories for a session bus to look for service activation files
  123.     on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
  124.     DBUS_DATADIR directories
  125.  
  126.     * test/data/valid-config-files/many-rules.conf: add the 
  127.     standard_session_servicedirs tag to the valid config file tests
  128.  
  129. 2006-10-30  Havoc Pennington  <hp@redhat.com>
  130.  
  131.     * tools/dbus-launch.1, doc/TODO: capture intent to change the
  132.     command line options of dbus-launch a bit post 1.0
  133.  
  134. 2006-10-27  Havoc Pennington  <hp@redhat.com>
  135.     
  136.     * dbus/dbus-connection.c (dbus_connection_open_private): document
  137.     how to choose shared vs. private connections
  138.  
  139. 2006-10-27  Havoc Pennington  <hp@redhat.com>
  140.  
  141.     * dbus/dbus-test.c: enclose more of the file in the
  142.     DBUS_BUILD_TESTS check.
  143.  
  144.     * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
  145.     DBUS_DISABLE_ASSERT case.
  146.  
  147.     * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
  148.     that it only works on the server side
  149.  
  150.     * dbus/dbus-bus.c: add a global lock covering the BusData we
  151.     attach to each connection
  152.     (internal_bus_get): lock our access to the BusData
  153.     (dbus_bus_register): lock the entire registration process
  154.     with _DBUS_LOCK(bus_datas). If we get the lock and 
  155.     registration is already complete, silently return (vs. previous
  156.     behavior of aborting).
  157.     (dbus_bus_set_unique_name): lock the BusData
  158.     (dbus_bus_get_unique_name): lock the BusData
  159.  
  160. 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
  161.  
  162.     * bus/config-parser.c (service_dirs_find_dir, 
  163.     service_dirs_append_unique_or_free, 
  164.     service_dirs_append_link_unique_or_free): New static methods
  165.     for only appending unique service directory names into
  166.     the service directory list
  167.     (merge_included, bus_config_parser_content): Only add unique
  168.     service directory names into the list
  169.  
  170. 2006-10-27  Havoc Pennington  <hp@redhat.com>
  171.  
  172.     * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
  173.     variables volatile, suggested by Thiago. Document struct fields.
  174.     (PTHREAD_CHECK): remove pthread error checking if assertions are
  175.     disabled, should reduce the no-assertions case to the bare
  176.     minimum code.
  177.  
  178. 2006-10-26  Havoc Pennington  <hp@redhat.com>
  179.     
  180.     * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
  181.     to be recursive
  182.     (_dbus_pthread_mutex_unlock): make it recursive
  183.     (_dbus_pthread_condvar_wait): save/restore the recursion count
  184.     (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
  185.  
  186. 2006-10-26  Havoc Pennington  <hp@redhat.com>
  187.  
  188.     * doc/dbus-specification.xml: clarify the UUID text slightly
  189.  
  190.     * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
  191.     pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
  192.     in preparation for being able to extend them for e.g. recursive
  193.     mutexes.
  194.  
  195. 2006-10-26  Havoc Pennington  <hp@redhat.com>
  196.  
  197.         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
  198.     condition variables relate to recursive mutexes.
  199.     
  200.         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
  201.     dbus/dbus-threads.c: Split the platforms-specific thread 
  202.     implementations into their own files.
  203.     
  204.     * dbus/dbus-sysdeps-pthread.c
  205.     (_dbus_pthread_condvar_wait_timeout): invert the return value, it
  206.     was backward. Not that anything uses it.
  207.  
  208. 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
  209.  
  210.     * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
  211.     LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
  212.     needs to be cleaned up more.
  213.  
  214.     * doc/TODO: Add a todo that *BSD hackers should look at cleaning
  215.     up the CREDS issue.
  216.  
  217. 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
  218.  
  219.     * configure.in, dbus-1.pc.in: Check to see if thread methods 
  220.     are in glibc or libpthread and add -lpthread to the link stage 
  221.     if it is the latter
  222.  
  223. 2006-10-26  Thiago Macieira  <thiago@kde.org>
  224.  
  225.     * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
  226.         bug 8780: the connection lock is only required while recording
  227.         the shared connection, so protect only that code
  228.         section. Don't require connection_lookup_shared to return a
  229.         locked connection.
  230.  
  231. 2006-10-26  Thiago Macieira  <thiago@kde.org>
  232.  
  233.     * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
  234.         check if get_machine_uuid() returns NULL before proceeding any
  235.         further: we can't init the X atoms or create a session file
  236.         name if there is no machine ID.
  237.     This solves a crash reported by some users if
  238.         --exit-with-session was used without --autolaunch=<machine-id>
  239.  
  240. 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
  241.  
  242.     * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
  243.     if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
  244.  
  245.     * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
  246.     before we run dbus-launch
  247.  
  248.     * configure.in: define TEST_BUS_BINARY to be the full path to 
  249.     dbus-daemon in the build root 
  250.  
  251. 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
  252.  
  253.     * dbus/Makefile.am:
  254.     * tools/Makefile.am:
  255.     * toos/dbus-uuidgen.1:
  256.         Move the machine-id file to /var/lib/dbus 
  257.  
  258. 2006-10-24  David Zeuthen  <davidz@redhat.com>
  259.  
  260.     * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
  261.     _dbus_assert (thread_init_generation != _dbus_current_generation)
  262.     not _dbus_assert (thread_init_generation == _dbus_current_generation)
  263.  
  264. 2006-10-24  Thiago Macieira  <thiago@kde.org>
  265.  
  266.     * dbus/dbus-sysdeps.h:
  267.     * dbus/dbus-sysdeps-unix.c: Add function
  268.     _dbus_make_file_world_readable that chmods a file to 0644.
  269.  
  270.     * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
  271.         Avoid writing to the static "argv" array, thereby avoiding a
  272.         COW on the child process.
  273.  
  274.     * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
  275.         call _dbus_make_file_world_readable on the created file.
  276.  
  277. 2006-10-23  David Zeuthen  <davidz@redhat.com>
  278.  
  279.     * dbus/dbus-memory.c: Use atomic variable to protect
  280.     n_blocks_outstanding otherwise OOM will be reported using SMP on
  281.     some arches
  282.     
  283.     * bus/dispatch.c: Add missing end of line characters
  284.  
  285.     * bus/desktop-file.c (parse_section_start, parse_key_value) 
  286.     (bus_desktop_file_load): Propertly handle OOM
  287.  
  288.     * dbus/dbus-threads.c (init_uninitialized_locks): Check that
  289.     thread_init_generation equals _dbus_current_generation, not 0
  290.  
  291. 2006-10-22  Havoc Pennington  <hp@redhat.com>
  292.  
  293.     * dbus/dbus-connection-internal.h: move prototype of
  294.     _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
  295.     it isn't in a public header and doesn't end up in the DBusBus
  296.     group in Doxygen
  297.  
  298. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  299.  
  300.     * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
  301.     the tarball if packagers want to run it
  302.  
  303.     * cleanup-man-pages.sh: Add a script which munges all the internal
  304.     API man pages out of the Doxygen output. This reduces the size of
  305.     the installed man pages from 7 to 2 megs, and avoids
  306.     namespace-polluting pages. Right now (like Doxygen) this script
  307.     isn't in the build, it's something packagers can do manually.
  308.  
  309. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  310.  
  311.     * dbus/dbus-connection.h: don't include the watch/timeout
  312.     functions in connection section
  313.  
  314. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  315.  
  316.     * Documentation! Whee! Doxygen now 100% silent. If you make it
  317.     angry again, you will be punished.
  318.     
  319. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  320.  
  321.     * More documentation - all public API now documented according to
  322.     Doxygen
  323.  
  324. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  325.  
  326.     * Document a bunch of undocumented stuff
  327.     
  328. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  329.  
  330.     * Clean up Doxygen group markers for public API so Doxygen finds
  331.     everything (not comprehensively fixed for private API).
  332.     Means all remaining Doxygen warnings are just about missing docs
  333.     and thus pretty simple to resolve.
  334.     
  335. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  336.     
  337.     * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
  338.  
  339.     * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
  340.     as DBUS_GNUC_DEPRECATED
  341.  
  342. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  343.  
  344.         * Move all private API into the private Doxygen group sections of
  345.     the files, so they don't show up in the public API docs
  346.     
  347. 2006-10-21  Havoc Pennington  <hp@redhat.com>
  348.  
  349.     * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
  350.     dbus_message_iter_get_array_len().
  351.  
  352.     * throughout: documentation improvements.
  353.  
  354. 2006-10-20  Havoc Pennington  <hp@redhat.com>
  355.  
  356.     * doc/TODO: remove the int64 thing from 1.0 since it doesn't
  357.     matter, and the message-loader-breaker thing since nobody is going
  358.     to do it.  Add an item to 1.0 about supporting recursive locks
  359.     in dbus_threads_init_default() though, since it should be easy.
  360.  
  361.     * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
  362.     Fix this in the !dispatch case to avoid busy-looping after
  363.     disconnection
  364.  
  365.         * More misc docs improvements
  366.  
  367. 2006-10-19  Havoc Pennington  <hp@redhat.com>
  368.  
  369.     * more Doxygen-related fixes (lots of moving things from the
  370.     public to internal section in dbus-connection.c)
  371.  
  372. 2006-10-19  Havoc Pennington  <hp@redhat.com>
  373.  
  374.     * Fix a pile of Doxygen warnings and missing docs
  375.  
  376. 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
  377.  
  378.     * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
  379.     bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
  380.     instead of a void *.  kqueue uses this to get the context's loop
  381.     while the other modules ignore the parameter.  This allows us to
  382.     avoid platform conditionals
  383.  
  384.     * bus/bus.c (process_config_postinit): Pass in the context to the 
  385.     watch
  386.  
  387. 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
  388.  
  389.     * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
  390.     when starting the system bus
  391.  
  392. 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
  393.  
  394.     * configure.in: More fixups for cross compile (Patch from 
  395.     Marco Pracucci <development at pracucci dot com>)
  396.  
  397. 2006-10-17  Havoc Pennington  <hp@redhat.com>
  398.  
  399.     * tools/dbus-send.c (main): don't close shared connection, fix
  400.     from Timo Hoenig
  401.  
  402. 2006-10-17  Havoc Pennington  <hp@redhat.com>
  403.  
  404.     * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
  405.  
  406.     * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
  407.     since realistically it doesn't look like we'll be changing it
  408.     anymore.
  409.  
  410. 2006-10-17  Havoc Pennington  <hp@redhat.com>
  411.  
  412.     * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
  413.     be used for return_if_fail type warnings; prefixes the pid, and
  414.     fatal by default.
  415.  
  416. 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
  417.  
  418.     * configure.in: Released 1.0 RC 2(0.94)
  419.     Add check for -fPIC and enable it if available
  420.  
  421. 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
  422.  
  423.     * doc/TODO: Remove the check TODO item
  424.  
  425. 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
  426.  
  427.     * dbus-transport-socket.c (exchange_credentials):
  428.     Print out more detailed errors if reading or sending
  429.     credentials fail (Patch from Julio M. Merino Vidal 
  430.     <jmmv at NetBSD dot org>)
  431.  
  432. 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
  433.  
  434.     * configure.in: when checking for posix getpwnam_r assume true
  435.     for cross compiles
  436.  
  437. 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
  438.  
  439.     * configure.in: Check for gethostbyname first before we check for it
  440.     in libnsl.  On gnu systems it is implemeneted 
  441.  
  442. 2006-10-13  Havoc Pennington  <hp@redhat.com>
  443.  
  444.     * dbus/dbus-connection.c
  445.     (dbus_connection_send_with_reply_and_block): fix to handle closed
  446.     connections, from Tambet Ingo bug #8631
  447.  
  448. 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
  449.  
  450.     * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
  451.  
  452. 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
  453.  
  454.     * test/name-test/Makefile.am: don't link against both libdbus and
  455.     libdbus-convenience
  456.  
  457. 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
  458.  
  459.     * configure.in: check for dirfd even if it is a macro
  460.     (Patch from Timothy Redaelli <drizzt at gufi dot org>)
  461.  
  462. 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
  463.  
  464.     * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
  465.     avoid using dirfd on systems that don't have dirfd 
  466.     (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
  467.  
  468. 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
  469.  
  470.     * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
  471.     #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
  472.  
  473.     * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
  474.     #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
  475.     macro because _dbus_abort calls it
  476.  
  477.     * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
  478.     works
  479.  
  480. 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
  481.  
  482.     * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
  483.     MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
  484.  
  485. 2006-10-02  Thiago Macieira  <thiago@kde.org>
  486.  
  487.     * tools/dbus-launch.c (main): make it complain and abort
  488.     execution in case an unknown option is given. Also, process
  489.     the '--' argument as the end of arguments.
  490.  
  491. 2006-10-01  Havoc Pennington  <hp@redhat.com>
  492.  
  493.     * tools/dbus-launch.c (print_variables): if no syntax is given,
  494.     don't print something that's sort-of-half-sh-syntax, just print
  495.     a plain key-value pairs thing.
  496.  
  497.     * tools/dbus-launch-x11.c: use machine ID rather than hostname for
  498.     the local machine representation (but still have the hostname in
  499.     the display). Remove the hostname from the display if it is
  500.     localhost. Change session files to be named
  501.     ~/.dbus/session-bus/machine-display. Change X atoms to be
  502.     underscore-prefixed so nobody whines about ICCCM compliance.
  503.     Otherwise name them the same as the env variables.
  504.     Change session file format to include key-value pairs and an
  505.     explanatory comment. Keys are the same as the env variables.
  506.     (set_address_in_x11): X property format can't depend on
  507.     sizeof(pid_t) on a particular machine, fix to always be 32 bits
  508.  
  509.     * tools/dbus-launch.c: make --autolaunch take a machine id
  510.     argument. If --autolaunch is used with a program to run, complain
  511.     for now (but add a FIXME). Also, don't look for existing bus if 
  512.     there's a program to run (but add a FIXME).
  513.  
  514.     * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
  515.     machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
  516.     just to get this, and avoids duplicating uuid-reading code).
  517.  
  518.     * tools/dbus-launch.1: clarify various things
  519.     
  520. 2006-10-01  Havoc Pennington  <hp@redhat.com>
  521.  
  522.     * test/test-service.c (path_message_func): remove broken extra
  523.     unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
  524.  
  525.     * test/test-shell-service.c (path_message_func): same fix
  526.     
  527.     * dbus/dbus-connection.c
  528.     (_dbus_connection_get_dispatch_status_unlocked): break up the
  529.     function a little for clarity and fix the notification of
  530.     dbus-bus.c to not require dispatch to be complete
  531.  
  532.     * dbus/dbus-connection.c (dbus_connection_unref): improve the
  533.     warning when you try to finalize an open connection.
  534.     
  535. 2006-10-01  Havoc Pennington  <hp@redhat.com>
  536.  
  537.     * dbus/dbus-bus.c
  538.     (internal_bus_get): only weak ref the connection; this means 
  539.     _dbus_bus_notify_shared_connection_disconnected_unlocked can be
  540.     called safely in any context
  541.     (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
  542.     unref
  543.  
  544.     * dbus/dbus-connection.c
  545.     (_dbus_connection_get_dispatch_status_unlocked): move
  546.     _dbus_bus_notify_shared_connection_disconnected_unlocked here
  547.     when queuing Disconnected instead of when the Disconnected message
  548.     arrives, so dbus_bus_get() won't return closed connections.
  549.     
  550. 2006-10-01  Havoc Pennington  <hp@redhat.com>
  551.  
  552.     * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
  553.     Add a hack to make DBusNewConnectionFunction work right.
  554.  
  555.     * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
  556.     the hack here. Also, fix the todo about refcount leak.
  557.     
  558.     * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
  559.     and use the hack here
  560.     
  561.         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
  562.     "shareable" flag; this was completely broken, since it meant 
  563.     dbus_connection_open() returned a connection of unknown
  564.     shared-ness. Now, we always hold a ref on anything opened 
  565.     as shareable.
  566.  
  567.     Move the call to notify dbus-bus.c into
  568.     connection_forget_shared_unlocked, so libdbus consistently forgets
  569.     all its knowledge of a connection at once. This exposed numerous
  570.     places where things were totally broken if we dropped a ref inside
  571.     get_dispatch_status_unlocked where
  572.     connection_forget_shared_unlocked was previously, so move
  573.     connection_forget_shared_unlocked into
  574.     _dbus_connection_update_dispatch_status_and_unlock. Also move the
  575.     exit_on_disconnect here.
  576.  
  577.     (shared_connections_shutdown): this assumed weak refs to the
  578.     shared connections; since we have strong refs now, the assertion 
  579.     was failing and stuff was left in the hash. Fix it to close
  580.     still-open shared connections.
  581.     
  582.     * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
  583.     debug pipe connections
  584.     
  585.     * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
  586.     dbus-bus.c if the closed connection is in fact shared
  587.     (_dbus_connection_close_possibly_shared): rename from 
  588.     _dbus_connection_close_internal
  589.     (dbus_connection_close, dbus_connection_open,
  590.     dbus_connection_open_private): Improve docs to explain the deal
  591.     with when you should close or unref or both
  592.  
  593.     * dbus/dbus-bus.c
  594.     (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
  595.     from _dbus_bus_check_connection_and_unref_unlocked and modify to
  596.     loop over all connections
  597.  
  598.     * test/test-utils.c (test_connection_shutdown): don't try to close
  599.     shared connections.
  600.  
  601.     * test/name-test/test-threads-init.c (main): fix warnings in here
  602.  
  603.     * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
  604.     env variable to cause blocking waiting for gdb; drop
  605.     DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
  606.     unconditionally.
  607.  
  608.     * configure.in: add -export-dynamic to libtool flags if assertions enabled
  609.     so _dbus_print_backtrace works.
  610.  
  611.     * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
  612.     instead of _dbus_verbose to print the backtrace, and diagnose lack 
  613.     of -rdynamic/-export-dynamic
  614.     
  615. 2006-09-30  Havoc Pennington  <hp@redhat.com>
  616.  
  617.     * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
  618.     (internal_bus_get): fix screwy code formatting. whoever committed
  619.     that was not paying attention!
  620.  
  621. 2006-09-30  Havoc Pennington  <hp@redhat.com>
  622.  
  623.     * configure.in (LT_CURRENT, LT_AGE): increment current and age to
  624.     reflect addition of interfaces.
  625.  
  626.     * doc/dbus-specification.xml: describe a new
  627.     org.freedesktop.DBus.Peer.GetMachineId method
  628.  
  629.     * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
  630.     (_dbus_string_skip_white, _dbus_string_skip_blank): use new
  631.     DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
  632.     at end of skip_white
  633.     (_dbus_string_chop_white): new function
  634.  
  635.     * bus/connection.c (bus_connections_setup_connection): call
  636.     dbus_connection_set_route_peer_messages.
  637.  
  638.     * dbus/dbus-connection.c
  639.     (_dbus_connection_peer_filter_unlocked_no_update): modify to
  640.     support a GetMachineId method.
  641.  
  642.     Also, support a new flag to let the bus pass peer methods through
  643.     to apps on the bus, which can be set with
  644.     dbus_connection_set_route_peer_messages.
  645.  
  646.     Finally, handle and return an error for anything unknown on the
  647.     Peer interface, which will allow us to extend the Peer interface
  648.     in the future without fear that we're now intercepting something
  649.     apps were wanting to see.
  650.     
  651.     * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
  652.     dbus/dbus-uuidgen.c
  653.  
  654.     * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
  655.     binary here, since most of the code is already in libdbus
  656.  
  657.     * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
  658.     uuid from the system config file
  659.  
  660.     * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
  661.     (_dbus_read_uuid_file_without_creating) 
  662.     (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
  663.     uuid-related functions, partly factored out from dbus-server.c
  664.  
  665.     * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
  666.     DBUS_ERROR_FILE_EXISTS instead of EEXIST
  667.  
  668.     * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
  669.  
  670.     * tools/dbus-cleanup-sockets.1: explain what the point of this
  671.     thing is a bit more
  672.  
  673.     * autogen.sh (run_configure): add --config-cache to default
  674.     configure args
  675.  
  676.     * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
  677.     error set/clear assertions when DBUS_DISABLE_CHECKS is defined
  678.  
  679.     * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
  680.     don't try to save address, fixes crash in make check
  681.     
  682. 2006-09-30  Thiago Macieira  <thiago@kde.org>
  683.  
  684.     * configure.in: add DBUS_BINDIR as a #define to C source code.
  685.  
  686.     * tools/dbus-launch.c
  687.     * tools/dbus-launch.h
  688.     * tools/dbus-launch-x11.c:
  689.     * tools/dbus-launch.1: Add the --autolaunch option to
  690.     dbus-launch, which makes it scan for an existing session
  691.     started with --autolaunch. With that option, it also creates
  692.     an X11 window and saves the bus address and PID to it.
  693.  
  694.     * dbus/dbus-sysdeps.h:
  695.     * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
  696.     a function that runs "dbus-launch --autolaunch" to retrieve
  697.     the running D-Bus session address (or start one if none was running)
  698.  
  699.     * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
  700.         address protocol, which tries to get the running session from
  701.         dbus-launch.
  702.  
  703.     * dbus/dbus-bus.c:
  704.     * dbus/dbus-internals.h: Make "autolaunch:" be the default
  705.     D-Bus session bus address.
  706.  
  707.     * dbus/dbus-connection.c: Fix horrible typo in error message.
  708.  
  709. 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
  710.  
  711.     * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
  712.  
  713. 2006-09-17  Havoc Pennington  <hp@redhat.com>
  714.  
  715.     * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
  716.     fix so that if unix_user_function is set on windows, we still
  717.     do the default check that the auth identity matches the bus identity
  718.  
  719. 2006-09-16  Havoc Pennington  <hp@redhat.com>
  720.  
  721.     * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
  722.     to _dbus_transport_open_platform_specific,
  723.     _dbus_transport_open_socket,
  724.     and _dbus_transport_open_debug_pipe
  725.  
  726.     * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
  727.  
  728. 2006-09-16  Havoc Pennington  <hp@redhat.com>
  729.  
  730.         Attempt auditing public API to remove all cases where a Unix
  731.     function returns weird emulated goo to Windows. This probably 
  732.     breaks the bus daemon on Windows, to fix it again we may 
  733.     need to stop processing unix-specific config options on Windows,
  734.     and may need to add Windows-specific public API or config options.
  735.     
  736.     * configure.in (LT_CURRENT, LT_AGE): increment current and age,
  737.     to reflect added interfaces; should not break soname.
  738.     
  739.     * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
  740.     not invoke unix user function on Windows. Kind of a hacky fix, but 
  741.     we don't want a "unix uid" leaking out on Windows.
  742.  
  743.     * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
  744.     to get the socket fd on Windows or UNIX
  745.     (dbus_connection_get_unix_fd): make this always fail on Windows
  746.  
  747. 2006-09-16  Havoc Pennington  <hp@redhat.com>
  748.  
  749.     * dbus/dbus-server.c (dbus_server_listen): change how this works
  750.     to be able to delegate to a set of handlers that can succeed,
  751.     fail, or choose not to handle. Allows us to have 
  752.     dbus_server_listen_platform_specific.
  753.  
  754.     * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
  755.     factor out the tcp socket stuff to be used on windows, leaving
  756.     unix domain socket only in dbus-socket-unix.c
  757.  
  758.     * dbus/dbus-transport-socket.c
  759.     (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
  760.     stuff to be used on windows, leaving unix domain socket only 
  761.     in dbus-transport-unix.c
  762.  
  763.     * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
  764.     temporary hack to be sure this fails on windows
  765.     (dbus_connection_get_unix_process_id): ditto
  766.  
  767. 2006-09-16  Havoc Pennington  <hp@redhat.com>
  768.  
  769.     * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
  770.     (_dbus_open_unix_socket, _dbus_open_socket): change API for 
  771.     _dbus_open_socket so the domain/type/protocol from system headers
  772.     are not required. This is kind of pointless though unless we move
  773.     part of _dbus_connect_tcp_socket into sysdeps.c instead of
  774.     sysdeps-unix.c, which would mean adding a wrapper around
  775.     bind/listen/etc.
  776.     Also, add DBusError to the socket-opening functions so they 
  777.     don't require use of errno.
  778.  
  779. 2006-09-16  Havoc Pennington  <hp@redhat.com>
  780.  
  781.     * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
  782.     dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
  783.  
  784.     * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
  785.     K├╝mmel bug #8249 to make the sysdeps.h read/write/open/close
  786.     functions specifically for sockets only, and move generic 
  787.     read/write/open/close into unix-specific code.
  788.  
  789. 2006-09-14  Havoc Pennington  <hp@redhat.com>
  790.  
  791.     * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
  792.     complaint about accessing revents when poll returns 0, from Julian Seward.
  793.  
  794. 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
  795.  
  796.     * Released 1.0 RC 1 (0.93) 
  797.  
  798. 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
  799.  
  800.     * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
  801.     use _dbus_close instead of close
  802.  
  803. 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
  804.  
  805.     * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
  806.     credentials.  Fixes "external" authentication under e.g. NetBSD
  807.     which does not support any other socket credentials mechanism.
  808.     (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
  809.  
  810. 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
  811.  
  812.     * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
  813.     dbus_threads_init and be used by the dbus mutex functions to
  814.     avoid deadlocks.
  815.  
  816.     * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
  817.  
  818. 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
  819.  
  820.     * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
  821.     use threadsafe readdir_r instead of readdir
  822.  
  823. 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
  824.  
  825.     * dbus-threads.c (dbus_threads_init_default): New method for
  826.     initializing the internal thread implementation (Patch from
  827.     Alexander Larsson <alexl at redhat dot com>)
  828.  
  829. 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
  830.  
  831.     * remove a bunch of todo items from the 1.0 list
  832.  
  833. 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
  834.  
  835.     * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
  836.     key not found
  837.  
  838. 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
  839.  
  840.     * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
  841.     complex debugging code
  842.  
  843.     * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
  844.     between the test suite ifdefs
  845.     (_dbus_verbose_bytes): return if verbosity is not enabled 
  846.  
  847. 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
  848.  
  849.     * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
  850.     remove DBusMark
  851.  
  852. 2006-09-10  Havoc Pennington  <hp@redhat.com>
  853.  
  854.        patch mostly by Peter K├╝mmel, bug #8211
  855.     
  856.     * dbus/dbus-sysdeps-unix.c: new file, which splits out
  857.     unix-specific stuff in dbus-sysdeps.c
  858.  
  859.     * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
  860.     and move unix-specific stuff to dbus-sysdeps-unix.c
  861.  
  862.     * configure.in: check HAVE_ERRNO_H
  863.     
  864. 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
  865.  
  866.     * bus/test-main.c (main): Initialize threading during tests
  867.  
  868.     * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
  869.     Unlock connection on error
  870.     (generate_local_error_message): static method for generating
  871.     an error message when we don't have a message to reply to
  872.     (_dbus_connection_block_pending_call): Send a disconnect error
  873.     instead of just a timeout (NULL) when the bus gets disconnected
  874.     while blocking for a reply.
  875.     
  876. 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
  877.  
  878.     * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
  879.     filters (Patch from Kimmo H├ñm├ñl├ñinen 
  880.     <kimmo dot hamalainen at nokia dot com>)
  881.  
  882. 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
  883.  
  884.     * dbus/dbus-connection-internal.h: Add prototype for 
  885.     _dbus_connection_test_get_locks to remove warning
  886.  
  887. 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
  888.  
  889.     * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
  890.     close child_err_report_pipe[WRITE_END] on exec (Patch from 
  891.     Kimmo H├ñm├ñl├ñinen <kimmo dot hamalainen at nokia dot com>)
  892.  
  893. 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
  894.  
  895.     * Clean up close calls to use _dbus_close (Patch from 
  896.     Kimmo H├ñm├ñl├ñinen <kimmo dot hamalainen at nokia dot com>)
  897.  
  898. 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
  899.  
  900.     * doc/TODO:
  901.     - Remove pending call locking todo item
  902.     - dbus_connection_open now holds hard ref.  Remove todo item
  903.     - do proper locking on _dbus_bus_check_connection_and_unref
  904.       and handle DBUS_BUS_STARTER. Remove todo item
  905.     - Warn on closing of a shared connection.  Remove todo item
  906.  
  907.     * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
  908.     dbus/dbus-connection.c: Use the dbus_connection_close_internal
  909.     so we don't get the warning when closing shared connections
  910.  
  911.     * test/test-service.c, test/test-shell-service.c: Applications
  912.     don't close shared connections themselves so we unref instead of
  913.     close
  914.  
  915.     * test/test-utils.c (test_connection_shutdown): Close the connection
  916.  
  917.     * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
  918.     _dbus_bus_check_connection_and_unref_unlocked since we only call this
  919.     method on a locked connection.  
  920.     Make sure we call _dbus_connection_unref_unlocked instead of 
  921.     dbus_connection_unref also.
  922.     Handle DBUS_BUS_STARTER correctly
  923.  
  924.     * dbus/dbus-connection.c (connection_record_shared_unlocked):
  925.     Mark as shared and hard ref the connection
  926.     (connection_forget_shared_unlocked): Remove the hard ref from the 
  927.     connection
  928.     (_dbus_connection_close_internal_and_unlock):  New internal function
  929.     which takes a locked connection and unlocks it after closing it
  930.     (_dbus_connection_close_internal): New internal function which acts
  931.     like the origonal dbus_connection_close method by grabbing a connection
  932.     lock and calling _dbus_connection_close_internal_and_unlock
  933.     (dbus_connection_close): Public close method, warns when the app
  934.     trys to close a shared connection
  935.  
  936. 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
  937.  
  938.     * bus/driver.c:
  939.     (bus_driver_generate_introspect_string): New method for populating
  940.     a DBusString with the introspect data
  941.     (bus_driver_handle_introspect): Move introspect generation code to 
  942.     bus_driver_generate_introspect_string
  943.  
  944.     * bus/main.c:
  945.     (introspect): New function which prints out the intropect data and
  946.     exits
  947.     (main): Add a --introspect switch
  948.  
  949. 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
  950.  
  951.     * doc/TODO: Removed dtd publishing item.  
  952.     It seems the dtd has already been added at
  953.     http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
  954.  
  955. 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
  956.  
  957.     * doc/TODO, various source files: Audited todo's and FIXME's and
  958.     prepended the ones we should be looking at with 1.0.  Those
  959.     prepended with 1.0? need clerification or might not be needed
  960.     for 1.0
  961.  
  962. 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
  963.  
  964.     * dbus/dbus-pending-call.c: Add some checks so we don't crash on
  965.     NULL in the public API (Patch from Kimmo H├ñm├ñl├ñinen 
  966.     <kimmo dot hamalainen at nokia dot com>)
  967.  
  968. 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
  969.  
  970.     * configure.in: Fix for OS-X compile time endian issues (patch from
  971.     Benjamin Reed <ranger at befunk dot com>)
  972.  
  973. 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
  974.  
  975.     * configure.in: Check for no-common compiler flag (OS-X fix from
  976.     Benjamin Reed <ranger at befunk dot com>)
  977.  
  978. 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
  979.  
  980.     * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
  981.     <fcrozat at mandriva dot com>)
  982.  
  983. 2006-08-29  Havoc Pennington  <hp@redhat.com>
  984.  
  985.     * test/test-service.c (path_message_func): fix lack of return value
  986.  
  987.     * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
  988.     formatting, remove #ifdef, and fix docs. #ifdef doesn't make
  989.     any more sense than on anything else in this file.
  990.     (_dbus_get_tmpdir): add const to return value, and keep the
  991.     results of the various getenv around in a static variable.
  992.  
  993. 2006-08-29  Havoc Pennington  <hp@redhat.com>
  994.  
  995.     * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
  996.     from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
  997.  
  998. 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
  999.  
  1000.     * test/Makefile.am: change find to use syntax that works with non
  1001.     gnu versions of find
  1002.  
  1003. 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
  1004.  
  1005.     * dbus/dbus-transport.c: fix invalid deref when checking if
  1006.     a vtable method exists (Patch from Christian Ehrlicher 
  1007.     <ch dot ehrlicher at gmx dot de>)
  1008.  
  1009. 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
  1010.  
  1011.     * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
  1012.     test/name-test/Makefile.am: Fixed some issues with getting get dbus 
  1013.     to build with builddir != srcdir (Taken from a patch by Bernard Leak
  1014.     <bernard at brenda-arkle dot demon dot co dot uk>)
  1015.  
  1016. 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
  1017.  
  1018.     * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
  1019.     default case
  1020.  
  1021. 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
  1022.  
  1023.     * configure.ac, bus/Makefile.am: Generalize kqueue support so that
  1024.     it works on any system providing this interface, not only FreeBSD.
  1025.     For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
  1026.  
  1027. 2006-08-20  Havoc Pennington  <hp@redhat.com>
  1028.  
  1029.     * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
  1030.     the docs
  1031.  
  1032. 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
  1033.  
  1034.     * Released 0.92 
  1035.  
  1036. 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
  1037.  
  1038.     * dbus/dbus-threads.c (dbus_threads_init): change the documentation
  1039.     to reflect the init late change
  1040.  
  1041.     * bus/bus.c (bus_context_new): Check user before we fork so we can
  1042.     print out an error message a user will be able to see
  1043.  
  1044. 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
  1045.  
  1046.     Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
  1047.  
  1048.     * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
  1049.     Add two more global locks for use on windows platforms.  These are
  1050.     unused on non-windows platforms but are not ifdefed out to avoid
  1051.     potential bugs (i.e. the few bytes lost does not warrent the extra
  1052.     maintanence and complexity that having seperate sets of locks would
  1053.     cause)
  1054.  
  1055. 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
  1056.  
  1057.     * bus/services.c (bus_registry_acquire_service): Return an error
  1058.     when an application tries to register the org.freedesktop.DBus Bus Name
  1059.  
  1060.     * bus/services.c (bus_registry_release_service): Return an error
  1061.     when an application tries to release the org.freedesktop.DBus Bus Name
  1062.  
  1063. 2006-08-17  Alp Toker  <alp@atoker.com>
  1064.  
  1065.     * doc/dbus-specification.xml: Fix some minor typos.
  1066.  
  1067. 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
  1068.  
  1069.     * configure.in: use $with_init_scripts instead of $operating_system
  1070.     to determine where to store the pid since the init scripts manipulate 
  1071.     the pid file (patch from Marcelo Ricardo Leitner 
  1072.     <marcelo dot leitner at terra dot com dot br>.  
  1073.  
  1074. 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
  1075.  
  1076.     * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
  1077.     static DBusList *uninitialized_condvar_list to support new late 
  1078.     initialization threading model.  In this model threads can be initialized
  1079.     even after the D-Bus API has been used but still needs to be initialized 
  1080.     before the second thread has been started.  Mutexes and condvar addresses
  1081.     are stored in the two static lists and are replaced with actuall locks
  1082.     when threads are initalized.
  1083.     (_dbus_mutex_new_at_location): New method for creating a mutex and placing
  1084.     the location into the static list
  1085.     (_dbus_mutex_free_at_location): New method for removing a mutex location 
  1086.     from the static list and freeing the mutex
  1087.     (_dbus_condvar_new_at_location): New method for creating a conditional 
  1088.     variable and placing the location into the static list
  1089.     (_dbus_condvar_free_at_location): New method for removing a conditional
  1090.     variable location from the static list and freeing the conditional variable 
  1091.     (init_uninitialized_locks): Atomic method which goes through the static 
  1092.     lists of mutex and condvar location and updates them with actuall locks
  1093.     (init_global_locks): changed to init_locks
  1094.     
  1095.     * dbus/dbus-connection.c:
  1096.     (_dbus_connection_test_get_locks): New method for tests to check connections
  1097.     (_dbus_connection_new_for_transport): Use the new at_location mutex and
  1098.     condvar API
  1099.     (dbus_connection_allocate_data_slot): Pass in the global lock address
  1100.     to _dbus_data_slot_allocator_alloc
  1101.  
  1102.     * dbus/dbus-dataslot.c:
  1103.     (_dbus_data_slot_allocator_alloc): Use the address of the mutex
  1104.     instead of the mutex itself
  1105.  
  1106.     * dbus/dbus-message.c:
  1107.     (dbus_message_allocate_data_slot): Pass in the global lock address
  1108.     to _dbus_data_slot_allocator_alloc
  1109.  
  1110.     * dbus/dbus-pending-call.c:
  1111.     (dbus_pending_call_allocate_data_slot): Pass in the global lock address
  1112.     to _dbus_data_slot_allocator_alloc
  1113.  
  1114.     * dbus/dbus-server.c:
  1115.     (_dbus_server_init_base): Use the new at_location mutex API
  1116.     (dbus_server_allocate_data_slot): Pass in the global lock address
  1117.     to _dbus_data_slot_allocator_alloc
  1118.  
  1119.     * test/name-test/test-threads-init.c: New test case for late thread
  1120.     initialization
  1121.  
  1122. 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
  1123.  
  1124.     * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
  1125.     Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
  1126.     causes compile problems when asserts are turned off
  1127.     Keeping _dbus_warn for printing out the message so even if
  1128.     asserts are turned off the user gets the messages that something is 
  1129.     wrong 
  1130.  
  1131. 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
  1132.  
  1133.     Patches by Kjartan Maraas <kmaraas at gnome dot org>
  1134.  
  1135.     * bus/services.c (bus_service_list_queued_owners):
  1136.     Add a pointer cast to fix compiler warning
  1137.  
  1138.     * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
  1139.     return a NULL instead of FALSE since the return type
  1140.     is not expecting a boolean
  1141.  
  1142.     * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
  1143.     Remove unused variable
  1144.  
  1145.     * dbus/dbus-marshal-recursive-util.c (node_new):
  1146.     return a NULL instead of FALSE since the return type
  1147.     is not expecting a boolean
  1148.  
  1149.     * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
  1150.     Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
  1151.     because we are expecting a pointer not a boolean
  1152.  
  1153.     * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
  1154.     add void as the parameter so some compilers
  1155.     don't complain
  1156.  
  1157.     * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
  1158.       _dbus_transport_new_for_tcp_socket):
  1159.     Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
  1160.     because we are expecting a pointer not a boolean
  1161.  
  1162.     * test/shell-test.c (test_command_line):
  1163.     cast the second argument to _dbus_list_append to avoid compiler
  1164.     warnings
  1165.  
  1166.     * test/test-names.c (main): remove unused variable
  1167.  
  1168.     * test/test-service.c (check_hello_from_self_reply):
  1169.     Initialize echo_message and echo_reply to NULL
  1170.     
  1171.     * test/test-shell-service.c (handle_echo):
  1172.     Remove unused variable and cast the third parameter passed to
  1173.     dbus_connection_get_object_path_data to avoid compiler warrnings
  1174.  
  1175.     * test/name-test/test-names.c (clear_message_queue):
  1176.     Remove unused function
  1177.  
  1178.     * test/name-test/test-pending-call-dispatch.c:
  1179.     Fix format string in printf
  1180.  
  1181.  
  1182. 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
  1183.  
  1184.     * dbus/dbus-bus.c:
  1185.     * test/name-test/test-names.c:
  1186.     Remove test method dbus_bus_connection_get_unique_name because 
  1187.     we already have public method dbus_bus_get_unique_name that 
  1188.     does the exact same thing
  1189.  
  1190. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1191.  
  1192.     * dbus/dbus-signature.c:
  1193.     fix typos in Julio's previous patch which cause make check to fail
  1194.  
  1195. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1196.  
  1197.     * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
  1198.     In any case it was wrong since this is a test checking to see if
  1199.     address parsing is correct.  There was no need to get the true
  1200.     tmp directory.  
  1201.  
  1202. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1203.  
  1204.     * dbus/dbus-macros.h: Revert the addition of stddef.h
  1205.     as we should not be adding it to library headers 
  1206.  
  1207. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1208.  
  1209.     * dbus/dbus-signature.c:
  1210.     Fix the unit tests so that they work if assertions are not enabled.
  1211.     (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
  1212.  
  1213. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1214.  
  1215.     * tools/run-with-tmp-session-bus.sh:
  1216.     * test/name-test/run-test.sh:
  1217.     Remove bashisms (patch from Julio M. Merino Vidal
  1218.     <jmmv at NetBSD dot org>)
  1219.  
  1220. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1221.  
  1222.     * configure.in: add a version (>= 2.6.0) check for libxml2
  1223.  
  1224. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1225.  
  1226.     * configure.in: make sure the compiler supports -Wfloat-equal
  1227.     
  1228.     * bus/dir-watch-dnotify.c: move functional code after 
  1229.     variable declerations (C99 fix)  (patches from Jens Granseuer
  1230.     <jensgr at gmx dot net>
  1231.  
  1232. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1233.  
  1234.     * dbus/dbus-macros.h:
  1235.     add #include <stddef.h> so that Sun compilers don't complain about
  1236.     the defining NULL
  1237.  
  1238. 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
  1239.  
  1240.     * dbus/dbus-sysdeps.c:
  1241.     * dbus/dbus-address.c:
  1242.     * bus/activation.c:
  1243.     * test/shell-test.c:
  1244.     don't hardcode tmp directory (patch from Dave Meikle 
  1245.     <dmk at davemeikle dot co dot uk>)
  1246.  
  1247. 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
  1248.  
  1249.     * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
  1250.     Change an assert to a detailed warning and abort.  
  1251.     When allocator->lock != mutex it indicates that the user has failed
  1252.     to initalize threads before using the D-Bus library.  This warning
  1253.     helps the user identify the issue and fix their app.
  1254.  
  1255. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1256.  
  1257.     These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
  1258.     with cleanups of bugs found from Coverity reports:
  1259.  
  1260.     * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
  1261.     close the file on error to avoid a leak
  1262.  
  1263.     * bus/expirelist.c (bus_expire_list_test):
  1264.     Check for NULL on dbus_new0
  1265.  
  1266.     * bus/activation.c (update_directory):
  1267.     remove dead code
  1268.  
  1269.     * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
  1270.     Fix some leaks
  1271.  
  1272.     * bus/bus.c (process_config_every_time):
  1273.     Fixed a leak
  1274.  
  1275.     * bus/desktop-file.c (parse_key_value):
  1276.     Fixed leak
  1277.  
  1278.     * bus/selinux.c (bus_selinux_id_table_insert):
  1279.     Fixed leak
  1280.  
  1281. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1282.  
  1283.     * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
  1284.     remove dead code
  1285.  
  1286. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1287.  
  1288.     * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
  1289.     #!/bin/bash
  1290.  
  1291. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1292.  
  1293.     * Doxyfile.in: fix the INPUT line so we can generate docs 
  1294.     when sourcedir != builddir (patch from Cygwin Ports maintainer
  1295.     <yselkowitz at users dot sourceforge dot net>
  1296.  
  1297. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1298.  
  1299.     * dbus/dbus-sysdeps.h:
  1300.     * dbus/dbus-sysdeps.c: 
  1301.     * dbus/dbus-string.c: 
  1302.     s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
  1303.     GLib's function which does the same thing
  1304.  
  1305.     * configure.in:
  1306.     * bus/Makefile.am:
  1307.     * bus/dir-watch-default.c:
  1308.     * bus/dir-watch-dnotify.c:
  1309.     * bus/dir-watch-kqueue.c:
  1310.     Add kqueue directory watching for freebsd and split the directory
  1311.     watching code into seperate files per method/arch
  1312.     (patches from Timothy Redaelli <drizzt at gufi dotorg>)
  1313.  
  1314. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1315.  
  1316.     * configure.in:
  1317.     * tools/Makefile.am:
  1318.     * tools/dbus-launch.c:
  1319.     * bus/Makefile.am:
  1320.     allow --with-dbus-daemondir switch to be used to make the
  1321.     daemon install to a seperate bindir like /usr/libexec
  1322.     (patch from Brian Cameron <brian dot cameron at sun dot com)
  1323.  
  1324. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1325.  
  1326.     * bus/Makefile.am (install-data-hook): removed the slash after 
  1327.     $(DESTDIR) so we don't get the double slash which does not work
  1328.     in windows (patch from Andras Porjesz 
  1329.     <andras dot porjesz at siemens dot com>)
  1330.  
  1331. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1332.  
  1333.     * dbus/dbus-sysdeps.h:
  1334.     * dbus/dbus-sysdeps.c: 
  1335.       add _dbus_printf_length (patch from Peter K├╝mmel 
  1336.       <syntheticpp at gmx dot net>)
  1337.  
  1338. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1339.  
  1340.     * dbus/dbus-internals.c: unistd.h is not used 
  1341.     (_dbus_verbose_real): only enable verbose printing 
  1342.     if DBUS_VERBOSE environment var is set to '1'
  1343.     (patch from Peter K├╝mmel <syntheticpp at gmx dot net>)
  1344.  
  1345. 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
  1346.  
  1347.     * configure.in: add a GCC flag check for -Wdeclaration-after-statement
  1348.     so we still compile on older gcc (patch from Frederic Peters 
  1349.     <fpeters at 0d dot be>
  1350.  
  1351. 2006-08-04  Havoc Pennington  <hp@redhat.com>
  1352.  
  1353.     * configure.in: add -Wdeclaration-after-statement
  1354.  
  1355.     * dbus/dbus-connection.c: change all the pending call stuff to
  1356.     reflect the fact that pending call operations use the connection
  1357.     lock
  1358.  
  1359.     * dbus/dbus-pending-call.c: add locking here
  1360.  
  1361.     * dbus/dbus-errors.c (struct DBusRealError): don't make the name
  1362.     field const consistent with how message field is done
  1363.  
  1364. 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
  1365.  
  1366.     * s/D-BUS/D-Bus/g
  1367.  
  1368. 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
  1369.  
  1370.     * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
  1371.     <in7y118 at public.uni-hamburg dot de> - fix invalid
  1372.     read/write reported by valgrind
  1373.  
  1374. 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
  1375.  
  1376.     * Released 0.91
  1377.  
  1378. 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
  1379.  
  1380.     * dbus/dbus-connection.c:
  1381.     (_dbus_connection_attach_pending_call_unlocked):
  1382.     (connection_timeout_and_complete_all_pending_calls_unlocked):
  1383.     Make sure we set timeout_added on pending calls to FALSE when
  1384.     we remove the timeout from the connection
  1385.  
  1386. 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
  1387.  
  1388.     * Removed some extra bindings stuff lingering around (thanks timo)
  1389.     * dbus-pendingcall.c (_dbus_pending_call_new): 
  1390.     s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
  1391.     when we tried to take a lock on an already locked connection
  1392.  
  1393. 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
  1394.  
  1395.     * Released 0.90
  1396.  
  1397. 2006-07-17  Havoc Pennington  <hp@redhat.com>
  1398.  
  1399.     * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
  1400.     ints, reported by Owen Taylor
  1401.  
  1402. 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
  1403.  
  1404.     * doc/TODO:
  1405.     * dbus/dbus-bus.c:
  1406.     * dbus-errors.c:
  1407.     * dbus/dbus-marshal-validate.c:
  1408.       Removed TODO items which were fixed or are no longer relevent
  1409.  
  1410. 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
  1411.  
  1412.     * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
  1413.     Remove stray files from the stripped bindings
  1414.  
  1415. 2006-07-16  Havoc Pennington  <hp@redhat.com>
  1416.  
  1417.     * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
  1418.     Improve the error message on reply timeout
  1419.  
  1420. 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
  1421.  
  1422.     * Remove all bindings
  1423.  
  1424. 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
  1425.  
  1426.     * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
  1427.     and set pending_reply out arg to NULL is connection is disconnected
  1428.     (connection_timeout_and_complete_all_pending_calls_unlocked): New
  1429.     static method for cleaning up pending calls on disconnect
  1430.     (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
  1431.     calls queued timeouts on disconnect 
  1432.  
  1433.      * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
  1434.     Remove 
  1435.  
  1436. 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
  1437.  
  1438.     * bus/activation.[ch] (bus_activation_list_services): new function to 
  1439.     get the list of services that can be activated
  1440.  
  1441.     * bus/dispatch.c: test coverage for the new bus method
  1442.     ListActivatableNames
  1443.  
  1444.     * bus/driver.c: new bus method ListActivatableNames to get the list of
  1445.     services that can be activated
  1446.  
  1447.     * doc/dbus-specification.xml: ListActivatableNames method documentation
  1448.  
  1449. 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
  1450.     * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
  1451.     source files
  1452.  
  1453. 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
  1454.     * dbus/dbus-message-factory.c:
  1455.     Fix index into an array (patch by Peter K├╝mmel <syntheticpp at gmx.net>)
  1456.  
  1457. 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
  1458.     * dbus/dbus-connection-internal.h:
  1459.     * dbus/dbus-connection.c:
  1460.     * file dbus/dbus-pending-call.c:
  1461.     * dbus/dbus-pending-call.h:
  1462.     Make DBusPendingCall an opaque type even to D-Bus internals
  1463.  
  1464. 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
  1465.  
  1466.     * dbus/dbus-connection.h: remove connection_disconnect and replace with
  1467.     connection_close
  1468.  
  1469.     * dbus/dbus-connection.c: include dbus-bus.h
  1470.     (_dbus_connection_read_write_dispatch): make static
  1471.  
  1472. 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
  1473.  
  1474.     * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
  1475.     function
  1476.     (dbus_connection_dispatch): On disconnect unref any shared connections
  1477.  
  1478.     * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
  1479.     for cleaning up shared connections on disconnect
  1480.     (internal_bus_get): get a hard refrence to shared connections when
  1481.     they are created
  1482.     
  1483.     * doc/TODO: Remove items which are no longer relevent or have been fixed
  1484.     Split 1.0 todo items with a 0.90 freeze todo list
  1485.  
  1486. 2006-06-14  Ross Burton  <ross@openedhand.com>
  1487.  
  1488.     * glib/dbus-gobject.c:
  1489.     Free a leaking GArray (surely not!) in dbus_g_method_return.
  1490.  
  1491. 2006-06-14  Ross Burton  <ross@openedhand.com>
  1492.  
  1493.     * tools/Makefile.am:
  1494.     * tools/dbus-monitor.c:
  1495.     Don't use the GLib bindings in dbus-monitor (patch from Ralf
  1496.     Habacker).
  1497.     
  1498. 2006-06-14  Ross Burton  <ross@openedhand.com>
  1499.  
  1500.     * tools/dbus-print-message.c:
  1501.     Also print the object path when outputting signals or method calls.
  1502.  
  1503. 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
  1504.  
  1505.     * qt/src/Makefile.am: install the qdbus.h header.
  1506.     This allows people to actually use the installed code.
  1507.  
  1508. 2006-06-12  Ross Burton  <ross@openedhand.com>
  1509.  
  1510.     * glib/dbus-gproxy.c:
  1511.     Don't leak a GArray when firing signals (thank Rob Taylor for review).
  1512.  
  1513. 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
  1514.  
  1515.     * Released 0.62
  1516.  
  1517. 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
  1518.  
  1519.     * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
  1520.         break pedantic builds. Closes bug 6043 (patch approved by
  1521.         Havoc back in February).
  1522.  
  1523. 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
  1524.  
  1525.     * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
  1526.         that took a QDBusMessage parameter.
  1527.     * qt/src/qdbusbus.h: Add a default flag for RequestName.
  1528.     * qt/tools/dbus.cpp: Don't use automatic call because we might
  1529.         be calling an async method: request a reply.
  1530.  
  1531. 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
  1532.  
  1533.     * test/qt/*: Update the testcases, including testing the new
  1534.         functionality of sending null QByteArray and QString over the
  1535.         bus. Add new headertest test and restore the old
  1536.         qdbusxmlparser test.
  1537.  
  1538. 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
  1539.  
  1540.     * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
  1541.     * qt/tools/dbusidl2cpp.cpp: Add missing newline.
  1542.  
  1543.     * qt/examples/Makefile.am:
  1544.     * qt/examples/chat.h: Use UI-generated files with the ui_*.h
  1545.     form.
  1546.  
  1547.     * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
  1548.     QByteArray() (nulls) over the bus.
  1549.     * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
  1550.     the one that has the signature suffix stripped.
  1551.     * qt/src/qdbusreply.h: Make some methods const.
  1552.  
  1553. 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
  1554.  
  1555.     Patch from Timo Hoenig <thoenig@suse.de>.
  1556.  
  1557.     * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
  1558.     required during build to EXTRA_DIST.
  1559.     * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
  1560.     * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
  1561.     * configure.in: Fix "make dist", take care that the Makefile for
  1562.     qt/dbus is being generated.
  1563.  
  1564. 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
  1565.  
  1566.     * bus/bus.c: Fix eavesdropping on method calls
  1567.  
  1568. 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
  1569.  
  1570.     * configure.in:
  1571.     * dbus/dbus-userdb-util.c:
  1572.     Add Solaris console owner patch from Artem Kachitchkine
  1573.  
  1574. 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
  1575.  
  1576.     * qt/Makfile.am:
  1577.     * qt/src/Makefile.am: Fix the EXTRA_DIST after the
  1578.     reorganisation. Thanks to Timo Hoenig for pointing this out.
  1579.  
  1580. 2006-06-06  Robert McQueen  <robot101@debian.org>
  1581.  
  1582.     * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
  1583.       call to dbus_g_type_get_struct.
  1584.  
  1585. 2006-06-06  Robert McQueen  <robot101@debian.org>
  1586.  
  1587.     * glib/dbus-gvalue-utils.c: Fix the failing test where static string
  1588.       pointers were put into a GPtrArray-based specialised collection, and
  1589.       then freed along with the array. GValues which you add into
  1590.       collections or maps which have the NOCOPY flag set are assumed to not
  1591.       belong to the caller, so rather than the existing pointer-stealing
  1592.       semantics, they are copied instead. Given that the main consumers of
  1593.       this abstraction are the bindings themselves, I don't think this is
  1594.       too bad, but others should watch their choice of take vs set_static.
  1595.  
  1596. 2006-06-06  Robert McQueen  <robot101@debian.org>
  1597.  
  1598.     * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
  1599.       of g_slist_prepend not being used. Fixed copying of slist-based
  1600.       specialised collections, then wrote a test case and found that it was
  1601.       all broken. Went on to fix iterating and appending too. Good thing
  1602.       nobody uses this code yet.
  1603.  
  1604. 2006-06-06  Robert McQueen  <robot101@debian.org>
  1605.  
  1606.     * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
  1607.       the iterators use gvalue_take_ptrarray_value (the GValues themselves
  1608.       are discarded without unsetting, so it makes no difference whether
  1609.       we take or set_static). Remove cases for G_TYPE_POINTER because
  1610.       there really is nothing useful we can do with them in our
  1611.       specialised types - we *need* boxed copy/free functions at the very
  1612.       least.
  1613.  
  1614. 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
  1615.  
  1616.     * qt/dbus: Add directory. I had forgotten to add this
  1617.     yesterday after the move...
  1618.  
  1619.     * qt/examples/Makefile.am:
  1620.     * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
  1621.  
  1622.     * qt/tools/Makefile.am:
  1623.     * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
  1624.     Added feature to get and set properties.
  1625.     Added validation of service, object path and interface names.
  1626.  
  1627.     * qt/tools/dbusidl2cpp.cpp: Two new features:
  1628.     1) Allow specifying both the header and the source file names,
  1629.     by separating them with a colon.
  1630.     2) Don't write an interface output if the -p switch wasn't
  1631.     given, but the -a was.
  1632.  
  1633.     * qt/src/*: Fix usage of Iterators and ConstIterators.
  1634.     Fix shadowing of variables by other variables (-Wshadow).
  1635.     Fix keyword-cleanliness in headers.
  1636.     Fix ASCII-cast (QLatin1String, QLatin1Char).
  1637.     Fix validation of member names.
  1638.     Add extra checking of introspection data during XML parsing.
  1639.     Various bug fixes.
  1640.  
  1641. 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
  1642.  
  1643.     * dbus/Makefile.am:
  1644.     * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
  1645.         qt/dbus/qdbus.h now.
  1646.  
  1647. 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
  1648.  
  1649.     * configure.in: Make --disable-qt actually do
  1650.           something. Patch inspired by Zack Rusin.
  1651.  
  1652. 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
  1653.  
  1654.     * qt/: Update to Subversion r548032.
  1655.     This includes a big reorganisation of the files inside the
  1656.     subdir.
  1657.  
  1658. 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
  1659.  
  1660.     * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
  1661.     clear:  
  1662.     "Failed to connect to socket <host>:<port> <error>" instead of
  1663.     "Failed to connect to socket <host>: <error>:<port>"
  1664.  
  1665.     * dbus/dbus-transport-unix.c: Fix crash when no host option is given
  1666.     for a tcp transport. 
  1667.  
  1668. 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
  1669.  
  1670.     * qt/*: Update the QtDBus bindings up to revision 546310 in
  1671.         Subversion.
  1672.     This adds the dbuscpp2xml tool, that parses a C++ header and
  1673.         outputs a D-BUS Introspection XML.
  1674.  
  1675. 2006-05-21  Havoc Pennington  <hp@redhat.com>
  1676.  
  1677.     * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
  1678.     is not NULL when it shouldn't be. Also a couple of possible fixes
  1679.     for #4637 though I don't understand why the bug happens, to be
  1680.     honest... also the object constructor has an assert name != NULL
  1681.     and the name is only currently NULL for peer-to-peer proxies that 
  1682.     I don't think anyone uses? So it should be asserting.
  1683.     Anyway, for now at least see if we get an earlier assertion failure.
  1684.  
  1685.     * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
  1686.     apparently broken code to be sure the tests fail and someone 
  1687.     will fix them...
  1688.  
  1689. 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
  1690.  
  1691.     * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
  1692.         and arrays when they had a single element: has_next returns
  1693.         false, even before you read the element. So, instead, check
  1694.         the array length.
  1695.  
  1696. 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
  1697.  
  1698.     * qt/qdbusmessage.cpp:
  1699.     * qt/qdbustypehelper_p.h:
  1700.     * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
  1701.     the list is a const-reference
  1702.  
  1703. 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
  1704.  
  1705.     * Adding old doc patch that never got applied
  1706.     
  1707.     * dbus/bus.c (dbus_bus_add_match): Add documentation
  1708.  
  1709.     * doc/dbus-specification.xml: Add documentation for the match rules
  1710.       and the AddMatch and RemoveMatch methods
  1711.  
  1712. 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
  1713.  
  1714.     * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
  1715.         call (r535506)
  1716.  
  1717.     * qt/dbusidl2cpp.cpp:
  1718.     * qt/qdbusabstractadaptor.cpp:
  1719.     * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
  1720.         sibling of the QDBusAbstractAdaptor objects instead of the
  1721.         parent. (r535848)
  1722.  
  1723.     * qt/dbusidl2cpp.cpp:
  1724.     * qt/qdbusabstractinterface.cpp:
  1725.     * qt/qdbusabstractinterface.h:
  1726.     * qt/qdbusabstractinterface_p.h:
  1727.     * qt/qdbusinterface.cpp: Make properties in interfaces
  1728.         actually work. The code that was generated would not compile,
  1729.         due to moc calls to functions that did not exist. They now
  1730.         shall. (r536571)
  1731.  
  1732. 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
  1733.  
  1734.     * Makefile.am:
  1735.     * configure.in:
  1736.     * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
  1737.     Thanks to Brad Hards for providing the patch
  1738.  
  1739. 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
  1740.  
  1741.     * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
  1742.         call. (r535506)
  1743.  
  1744. 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
  1745.  
  1746.     * qt/examples/dbus.cpp: Enhance error messages and use
  1747.         QDBusInterfacePtr.
  1748.  
  1749. 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
  1750.  
  1751.     * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
  1752.         and disable the copy operators. (r533772, r534746)
  1753.  
  1754.     * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
  1755.  
  1756.     * qt/qdbusabstractinterface.cpp:
  1757.     * qt/qdbusabstractinterface.h: Change the default call mode to
  1758.         not use the event loop. Add convenience call() methods that
  1759.         take a CallMode parameter. (r534042)
  1760.  
  1761.     * qt/qdbusconnection.h: Change the default call mode to not
  1762.         use the event loop. (r534042)
  1763.  
  1764.     * qt/qdbusinterface.cpp:
  1765.     * qt/qdbusinterface.h: Add a method to tell us if the
  1766.     interface is valid (since we don't return a null pointer
  1767.     anymore) (r534099)
  1768.  
  1769.     * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
  1770.         (r534101)
  1771.  
  1772.     * qt/qdbusinternalfilters.cpp: Decouple the introspection
  1773.         function in two so taht we get the chance to introspect
  1774.         without having a QDBusMessage (r534102)
  1775.  
  1776.     * qt/qdbusbus.h:
  1777.     * qt/qdbusconnection.cpp:
  1778.     * qt/qdbusconnection_p.h:
  1779.     * qt/qdbusintegrator.cpp: Keep a list of our own names to
  1780.         avoid a round-trip to the server when attempting to introspect
  1781.         one of our own objects. Also make sure the filter functions
  1782.         match the empty interface as well. (r534108)
  1783.     Don't keep the connection names. Instead, trust the unique
  1784.         connection name (r534111)
  1785.     Remove event loop usage (r534112)
  1786.  
  1787. 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
  1788.  
  1789.     * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
  1790.     Brad Hards.
  1791.  
  1792. 2006-04-28  Robert McQueen  <robot101@debian.org>
  1793.  
  1794.     * glib/dbus-gproxy.c: Fix properties so that they can be given in
  1795.     any order, making it easier for people who inherit from this
  1796.     object.
  1797.  
  1798. 2006-04-28  Robert McQueen  <robot101@debian.org>
  1799.  
  1800.     * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
  1801.     of memory from within pointer arrays and lists. Fixes bug #6300.
  1802.  
  1803. 2006-04-28  Robert McQueen  <robot101@debian.org>
  1804.  
  1805.     * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
  1806.     generating struct signatures. Fixes bug #6083.
  1807.  
  1808. 2006-04-28  Robert McQueen  <robot101@debian.org>
  1809.  
  1810.     * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
  1811.     to qdbusconnection_p.moc.
  1812.  
  1813. 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
  1814.  
  1815.     * README, INSTALL: Doc fixes
  1816.     Patch from Brad Hards <bradh at frogmouth.net>
  1817.  
  1818. 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
  1819.  
  1820.     * qt/examples/dbus.cpp: Use the new merged-interface mode for
  1821.     the dynamic meta object. No need to guess which interface to
  1822.     call.
  1823.  
  1824. 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
  1825.  
  1826.     * qt/qdbusconnection_p.h:
  1827.     * qt/qdbusmetaobject.cpp:
  1828.     * qt/qdbusmetaobject_p.h:
  1829.     * qt/qdbusintegrator.cpp: Use the new merged-interface mode
  1830.     for the dynamic meta object. No need to guess which
  1831.     interface to call.
  1832.     * qt/qdbusabstractinterface_p.h:
  1833.     * qt/qdbusconnection.cpp:
  1834.     * qt/qdbusintegrator.cpp:
  1835.     * qt/qdbusinterface.cpp:
  1836.     * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
  1837.     Add a QDBusRef that looks and behaves like DCOPRef.
  1838.  
  1839. 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
  1840.  
  1841.     * dbus/dbus-connection.c: Interfaces are optional in method
  1842.         calls, so don't give up if the interface parameter is NULL.
  1843.     Patch reviewed by Havoc Pennington.
  1844.  
  1845. 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
  1846.  
  1847.     * qt/qdbusreply.h: Add default constructor and operator=
  1848.           (r532625)
  1849.     * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
  1850.           in public headers (r532952)
  1851.     * qt/qdbusabstractinterface.cpp:
  1852.     * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
  1853.           make it the default (r532951)
  1854.  
  1855. 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
  1856.  
  1857.     * dbus/dbus-connection.c: Fix asserts
  1858.     Patch from Tim Moloney <t.moloney at verizon.net>
  1859.  
  1860. 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
  1861.  
  1862.     * mono/Connection.cs, mono/Message.cs: Check Target type
  1863.     Patch from Aaron Bockover (abockover at novell.com)
  1864.  
  1865. 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
  1866.  
  1867.     * INSTALL: fine-tune the requirements for the Qt4 binding.
  1868.  
  1869. 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
  1870.  
  1871.     * tools/dbus-print-message.c: Added support for printing of all 
  1872.       remaining data types. Fixed logic for indentation of compound
  1873.       data types.
  1874.     
  1875. 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
  1876.  
  1877.     * INSTALL: fill out content of file providing DBus specific
  1878.       build installations, followed by generic Auto* INSTALL file
  1879.       content
  1880.     
  1881. 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
  1882.  
  1883.     * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
  1884.       Patch by Stefan Eilers. (r529537)
  1885.  
  1886. 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
  1887.  
  1888.     * qt/qdbusinternalfilters.cpp: Don't show the parent's
  1889.         contents (r528208)
  1890.  
  1891. 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
  1892.  
  1893.     * qt/Makefile.am: fix the dependency for
  1894.           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
  1895.       not in qdbusconnection.cpp.
  1896.       Thanks to Jakub Stachowski <stachowski@hypair.net> for
  1897.           spotting this.
  1898.  
  1899. 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
  1900.  
  1901.     * qt/examples/listnames.cpp:
  1902.     * qt/examples/Makefile.am: Three ways to list the names on the
  1903.       bus.
  1904.  
  1905. 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
  1906.  
  1907.     * test/qt/tst_hal.cpp: Remove the waiting, since it's not
  1908.           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
  1909.  
  1910. 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
  1911.  
  1912.     Merge from Subversion:
  1913.     * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
  1914.       something that exists (r526315)
  1915.     * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
  1916.       slots/signals (r526316)
  1917.     * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
  1918.       also return an unknown-method error if the parameters don't
  1919.       match for org.freedesktop.DBus.Properties. (r526842)
  1920.     * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
  1921.     * qt/qdbusintegrator.cpp: Restore the proper order of
  1922.       delivery: don't make method returns be delivered on priority
  1923.       (r528150)
  1924.  
  1925. 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
  1926.  
  1927.     * configure.in qt/Makefile.am: add qt/examples
  1928.     * qt/examples: Add QtDBus example programs:
  1929.       - hello: Hello, World
  1930.       - ping: Simple method-calling program
  1931.       - pong: Simple object-exporting program (not using adaptors)
  1932.       - complexping: Interactive method-calling program 
  1933.         (also gets and sets properties).
  1934.       - complexpong: Sample program exporting methods, signals and
  1935.         properties, using adaptors.
  1936.       - dbus: Simple implementation of a generic method-calling
  1937.         program, similar to 'dbus-send', but with semantics
  1938.         similar to 'dcop'.
  1939.       - chat: Simplistic chat program, implemented using signals
  1940.         and the system bus. Looks like IRC.
  1941.  
  1942. 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
  1943.  
  1944.     * configure.in: Detect QtGui (necessary for one of the
  1945.           example programs). Note: this increases the minimum required
  1946.           version of Qt to 4.1.3.
  1947.  
  1948. 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
  1949.  
  1950.     * test/qt/*: Sync with KDE Subversion revision 523647.
  1951.         Update the testcases to the new API. Remove testcases for
  1952.         classes that are no longer public or have been removed.
  1953.  
  1954. 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
  1955.  
  1956.     * qt/*: 
  1957.     * dbus/qdbus.h: Sync with KDE Subversion revision
  1958.     523647. Hopefully, this will be the last of the
  1959.     source-incompatible changes. Documentation has been improved;
  1960.     support for QList<basic-types> has been added; QDBusObject is
  1961.     gone; QDBus(Abstract)Interface is now a QObject with
  1962.     auto-generated meta-object; QDBusIntrospection is marked
  1963.     private, since QMetaObject can be used now; lots of bugfixes.
  1964.  
  1965. 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
  1966.  
  1967.     Patch from Milosz Derezynski <internalerror at gmail.com>
  1968.     
  1969.     * configure.in:
  1970.     Output the service directory in the configure summary
  1971.  
  1972.     * dbus-1.pc.in:
  1973.     Add session_bus_services_dir
  1974.  
  1975. 2006-03-10  Ross Burton  <ross@openedhand.com>
  1976.  
  1977.     * tools/dbus-print-message.c:
  1978.     Add support for object paths and signatures.
  1979.  
  1980. 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
  1981.  
  1982.     * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
  1983.     config reload.
  1984.     * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
  1985.     information caches
  1986.     * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
  1987.     * dbus/dbus-hash.h: Add function to remove all entries from a hash table
  1988.     * dbus/dbus-userdb.c: (_dbus_user_database_flush):
  1989.     * dbus/dbus-userdb.h: Add function to flush all user/group information
  1990.     caches.
  1991.  
  1992. 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
  1993.  
  1994.     * qt/dbusidl2cpp.cpp:
  1995.     * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
  1996.     for dcopidl2cpp, found in the KDE installations (or the more
  1997.     modern kalyptus): generate Qt4 C++ code for the input XML
  1998.     introspection. Currently no IDL parsing.
  1999.  
  2000. 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
  2001.  
  2002.     * test/qt/*: Update the self-tests.
  2003.  
  2004. 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
  2005.  
  2006.     * qt/*: 
  2007.     * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
  2008.     represents the first feature-complete version of the Qt4
  2009.     bindings since I took ove maintainership.
  2010.  
  2011. 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
  2012.  
  2013.     * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
  2014.         dir. This is C++, so we can't use the DBus ones.
  2015.  
  2016. 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
  2017.  
  2018.     * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
  2019.     (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
  2020.  
  2021. 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
  2022.  
  2023.     * dbus/dbus-connection.c: 
  2024.     (_dbus_connection_block_pending_call):
  2025.     Check to see if our data has already been read off the connection
  2026.     by another blocking pending call before we block in poll.
  2027.     (check_for_reply_and_update_dispatch_unlocked):
  2028.     Code taken from _dbus_connection_block_pending_call - checks for
  2029.     an already read reply and updates the dispatch if there is one.
  2030.  
  2031.     * test/name-test/test-pending-call-dispatch.c:
  2032.     New test for making sure we don't get stuck polling a 
  2033.     dbus connection which has no data on the socket when
  2034.     blocking out of order on two or more pending calls.
  2035.  
  2036. 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
  2037.  
  2038.     * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
  2039.         make/automake don't detect that we're talking about the same
  2040.         .lo file if I specify the full path to the source files.
  2041.  
  2042. 2006-02-26  Havoc Pennington  <hp@redhat.com>
  2043.  
  2044.     * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
  2045.  
  2046.     * dbus/dbus-bus.c (internal_bus_get): in the error message if the
  2047.     session bus variable is unset, suggest "man dbus-launch" and "man
  2048.     dbus-daemon" to figure out how to fix the problem
  2049.  
  2050. 2006-02-25  Havoc Pennington  <hp@redhat.com>
  2051.  
  2052.     * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
  2053.     should make this thing use the new glib options parser
  2054.  
  2055. 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
  2056.  
  2057.     * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
  2058.         .lo files taking moc sources.
  2059.  
  2060. 2006-02-25  Havoc Pennington  <hp@redhat.com>
  2061.  
  2062.     * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
  2063.     and install it as a public header
  2064.  
  2065. 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
  2066.  
  2067.     * Released 0.61
  2068.  
  2069. 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
  2070.     
  2071.     * proxies.py: Fix the callchain
  2072.  
  2073. 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
  2074.     
  2075.     * patch from Sjoerd Simons <sjoerd at debian.org>:    
  2076.  
  2077.     * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
  2078.     dbus/dbus-sysdeps.c
  2079.  
  2080.     * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
  2081.     call _dbus_group_info_free_allocated which causes infinite loop,
  2082.     correctly call _dbus_group_info_free
  2083.  
  2084. 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
  2085.  
  2086.     * qt/qdbusinterface_p.h:
  2087.     * qt/qdbusinterface.cpp: Use the standard
  2088.     org.freedesktop.DBus.Method.NoReply annotation for the "async"
  2089.     calls instead of creating one for us.
  2090.  
  2091.     * qt/qdbusconnection_p.h:
  2092.     * qt/qdbusintegrator.cpp: Remove debugging code.
  2093.  
  2094.     * qt/qdbusintegrator.cpp:
  2095.     * qt/qdbusmessage.cpp:
  2096.     * qt/qdbusmessage_p.h:
  2097.     * qt/qdbusmessage.h: Change the behaviour of automatic
  2098.     reply-sending: now a reply is always sent, unless the caller
  2099.     didn't request one or if the user slot has already sent one.
  2100.  
  2101. 2006-02-16  Robert McQueen  <robot101@debian.org>
  2102.  
  2103.     * configure.in: Patch from Debian packages by Sjoerd Simons
  2104.     <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
  2105.     arguments so it's possible to build both bindings in the
  2106.     same tree.
  2107.  
  2108.     * qt/Makefile.am: Fix truncated value so that make dist works.
  2109.  
  2110. 2006-02-16  Robert McQueen  <robot101@debian.org>
  2111.  
  2112.     * acinclude.m4, configure.in: Patch from Brad Hards
  2113.     <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
  2114.     improving quoting, re-ordering a few checks, and a few other
  2115.     aesthetic tidy-ups.
  2116.  
  2117. 2006-02-16  Robert McQueen  <robot101@debian.org>
  2118.  
  2119.     * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
  2120.     Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
  2121.     assertion that the next element to read from the iter is fixed in
  2122.     size. This is not the case when you are at the end of the iter,
  2123.     because the next element type is INVALID.
  2124.  
  2125.     * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
  2126.     a bogus assert which means that you may not initialise a 0-length
  2127.     string unless you provide a non-NULL pointer. This prevented
  2128.     you from marshalling messages containing zero-length arrays in
  2129.     some cases.
  2130.  
  2131.     * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
  2132.     from Rob to correct bogus asserts when trying to demarshal an
  2133.     array and get_fixed_array got you 0 elements. Append nothing to
  2134.     the GArray in this case.
  2135.  
  2136.     * test/glib/test-dbus-glib.c: Add a test case for round-tripping
  2137.     an empty array via the glib bindings. Without all of the above
  2138.     patches, this new test fails.
  2139.  
  2140. 2006-02-16  Robert McQueen  <robot101@debian.org>
  2141.  
  2142.     * glib/dbus-gmain.c: Make the previous commit compile.
  2143.  
  2144.     * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
  2145.     Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
  2146.     specify sender_keyword="foo", path_keyword="bar" when adding
  2147.     a signal listener, so that you can bind to signals generically
  2148.     but still do something useful in your callback.
  2149.  
  2150.     * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
  2151.     chars so that they're not cast to chars and made negative. Thanks
  2152.     to Jakub Stachowski for reporting this and testing the fix.
  2153.  
  2154. 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
  2155.  
  2156.     * dbus/dbus-glib.h:
  2157.     * glib/dbus-gmain.h:
  2158.     (dbus_g_connection_open): new method for openning
  2159.     a connection to an arbitrary address in the glib bindings
  2160.  
  2161.     * ChangeLog: checkin last entry which doesn't seem to be commited
  2162.  
  2163. 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
  2164.  
  2165.     * tools/dbus-launch.c: Fixed sh syntax output
  2166.  
  2167. 2006-02-13  Robert McQueen  <robot101@debian.org>
  2168.  
  2169.     * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
  2170.     glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
  2171.     glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
  2172.     glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
  2173.     Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
  2174.     missing piece of the glib bindings jigsaw puzzle. This modifies
  2175.     the existing specialised types to have N type parameters (rather
  2176.     than the current 1 or 2 for arrays and dictionaries respectively).
  2177.     You can then use this to get a glib type to represent any arbitrary
  2178.     D-Bus struct type using dbus_g_type_get_struct. The only
  2179.     implementation of these types is with GValueArrays as before,
  2180.     but it's now possible to store these in arrays, emit them in
  2181.     signals, etc.
  2182.  
  2183. 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
  2184.  
  2185.     * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
  2186.     deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
  2187.     <thiago.macieira at trolltech.com>
  2188.  
  2189. 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
  2190.  
  2191.     * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
  2192.     (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
  2193.  
  2194. 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
  2195.  
  2196.     * bus/connection.c (bus_connections_expect_reply): Make
  2197.     pending reply limit not common to all connections (Bug #5416)
  2198.     Patch from Kimmo H├ñm├ñl├ñinen <kimmo.hamalainen at nokia.com>
  2199.  
  2200. 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
  2201.  
  2202.     * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
  2203.  
  2204. 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
  2205.  
  2206.     * gcj/Makefile.am: point to correct jar command (Bug #4529)
  2207.     patch from Doug Goldstein <cardoe at gentoo.org>
  2208.  
  2209. 2006-02-09  Joe Shaw  <joeshaw@novell.com>
  2210.  
  2211.     * mono/Arguments.cs: Fix a magic number in the mono bindings
  2212.     that doesn't work on 64 bit arches.  Patch from Peter Johanson.
  2213.  
  2214. 2006-01-27  Robert McQueen  <robot101@debian.org>
  2215.  
  2216.     * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
  2217.     patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
  2218.     when generating the client-side methods, instead of overloading
  2219.     CSymbol which broke everything horribly. My apologies.
  2220.  
  2221. 2006-01-27  Robert McQueen  <robot101@debian.org>
  2222.  
  2223.     * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
  2224.     by me and Rob Taylor to add a simple_free function to D-Bus map
  2225.     and collection types, which allows those types which can be freed
  2226.     with a GDestroyNotify (such as GHashTables and GArrays, but not
  2227.     GPtrArrays) to be stored as the values in hashtables.
  2228.  
  2229.     * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
  2230.     Patch by Rob Taylor to add nested dicts to the glib tests to check
  2231.     the above code works, and appears not to leak when called repeatedly.
  2232.  
  2233. 2006-01-27  Robert McQueen  <robot101@debian.org>
  2234.  
  2235.     * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
  2236.     to free a D-Bus allocated string with dbus_free () instead of
  2237.     g_free ().
  2238.  
  2239. 2006-01-27  Iain Holmes  <iain@openedhand.com>
  2240.  
  2241.     * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
  2242.     method from being called multiple times.
  2243.  
  2244. 2006-01-19  Robert McQueen  <robot101@debian.org>
  2245.  
  2246.     * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
  2247.     <rob.taylor@collabora.co.uk> to add support for generating bindings
  2248.     to arrays that are represented as GPtrArrays rather than GArrays (ie
  2249.     size-variable things, such as strings, objects, structs, etc).
  2250.  
  2251. 2006-01-05  Robert McQueen  <robot101@debian.org>
  2252.  
  2253.     * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
  2254.     <ricardo.kekki@movial.fi> to make it possible to inherit from
  2255.     DBusGProxy, by splitting the DBusGProxy struct into a public part and
  2256.     a private part, and moving the setting of the DBusGProxyManager into a
  2257.     connection property, allowing proper GObject construction.
  2258.  
  2259. 2006-01-05  Robert McQueen  <robot101@debian.org>
  2260.  
  2261.     * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
  2262.     <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
  2263.     annotations when generating glib client bindings.
  2264.  
  2265. 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
  2266.  
  2267.     * dbus/dbus-shared.h: Call it shared constants instead of shared macros
  2268.  
  2269.     * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
  2270.  
  2271. 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
  2272.  
  2273.     * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
  2274.  
  2275. 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
  2276.  
  2277.     * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
  2278.  
  2279. 2005-12-19  Ross Burton  <ross@openedhand.com>
  2280.  
  2281.     * doc/dbus-tutorial.xml:
  2282.     Document the Glib client-side bindings, and list all possible annotations.
  2283.  
  2284. 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
  2285.  
  2286.     * dbus/bus.c (dbus_bus_release_name): Add documentation
  2287.  
  2288. 2005-12-06  Robert McQueen  <robot101@debian.org>
  2289.  
  2290.     * python/service.py: s/sucessful/successful/ so we're allocating to
  2291.     and reading from the same variable. Oops.
  2292.  
  2293. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2294.  
  2295.     * Released 0.60
  2296.  
  2297. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2298.  
  2299.     * test/qt/Makefile.am: build from srcdir
  2300.  
  2301.     * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
  2302.     Note - this code is wrong and needs to be fixed by the Qt binding
  2303.     developers.  The flags should be treated as bitfields and not enums.
  2304.  
  2305.     * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
  2306.  
  2307. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2308.  
  2309.     * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
  2310.       link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
  2311.       in production code
  2312.  
  2313. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2314.  
  2315.     * dbus/dbus-connection.c (dbus_connection_read_write): Add new
  2316.     method for getting messages off the bus in the absence of a
  2317.     mainloop.  This method is much like 
  2318.     dbus_connection_read_write_dispatch except it does not dispatch
  2319.     the messages to a registered filter function.  Instead it
  2320.     allows a developer to process messages by directly popping
  2321.     them off the bus.
  2322.  
  2323. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2324.  
  2325.     * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
  2326.     the parser to continue instead of returning error
  2327.     (bus_desktop_file_load): Do not free parser data when
  2328.     parse_section_start or parse_key_value fails because it was 
  2329.     already freed by parser_free (patch from Carlos Garcia Campos  
  2330.     <carlosgc at gnome.org>)
  2331.  
  2332. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2333.  
  2334.     * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
  2335.     dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
  2336.     glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
  2337.     test/test-segfault.c, test/test-utils.c,
  2338.     test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
  2339.     tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
  2340.     Various cleanup of dead code and compiler warnings (patch from
  2341.     Kjartan Maraas <kmaraas at gnome.org>) 
  2342.  
  2343. 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
  2344.  
  2345.     * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
  2346.     (patch from Carlos Garnacho Parro <carlosg at gnome.org>
  2347.  
  2348. 2005-11-27  Robert McQueen  <robot101@debian.org>
  2349.  
  2350.     * python/dbus_bindings.pyx: Repair my previous commit which reverted
  2351.     part of the preceding one. Oops. Merge patch by Johan Hedberg
  2352.     <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
  2353.     on big-endian platforms.
  2354.  
  2355.     * test/python/test-client.py: Add some 16-bit integers to the test
  2356.     values.
  2357.  
  2358. 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
  2359.  
  2360.     * glib/dbus-gobject.c: Append a GValue instead of a basic type in
  2361.     method return message for property getters
  2362.  
  2363. 2005-11-27  Robert McQueen  <robot101@debian.org>
  2364.  
  2365.     * python/dbus_bindings.pyx: Fix a bug where doing a strict append
  2366.     with type v of an instance of dbus.Variant(foo, type='x') caused
  2367.     it to be boxed twice before sending over the bus.
  2368.  
  2369.     * python/dbus_bindings.pyx, python/service.py,
  2370.     test/python/test-client.py: Update the constants for the new
  2371.     request_name flags, and update comments/test cases now that queueing
  2372.     is the default action.
  2373.  
  2374. 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
  2375.  
  2376.     * configure.in:
  2377.     - Change version to 0.60 for impending release
  2378.     - upped the sonames because of ABI and API breakage
  2379.  
  2380. 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
  2381.  
  2382.     * configure.in: Add test/name-test/Makefile to the generated
  2383.     Makefile list
  2384.  
  2385.     * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
  2386.     New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
  2387.     (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
  2388.     not to queue an ower if it can't be the primary owner
  2389.  
  2390.     * bus/bus.h: Add new internal BusOwner struct
  2391.  
  2392.     * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
  2393.     to bus_registry_ensure and don't set the prohibit_replacement flag
  2394.     since they are now set per BusOwner and not per name.
  2395.     (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
  2396.     that returns the list of connections in a name's connection queue
  2397.     
  2398.     * bus/services.c (struct BusService): remove prohibit_replacement field
  2399.     (struct BusOwner): new struct for keeping track of queued connections
  2400.     and their associated flags for the queue
  2401.     (struct BusRegistry): add a BusOwner memory pool
  2402.     (bus_registry_new): initialize the BusOwner memory pool
  2403.     (bus_registry_unref): free the BusOwner memory pool
  2404.     (_bus_service_find_owner_link): new internal method for
  2405.     searching the queue for a specific connection
  2406.     (bus_owner_set_flags): new method for adding setting the flags on a
  2407.     bus owner
  2408.     (bus_owner_new): new method that creates a BusOwner object from the
  2409.     pool and sets its flags
  2410.     (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
  2411.     (bus_registry_ensure): Add the flags parameter
  2412.     (bus_registry_acquire_service): Switch from using raw connections to
  2413.     using the BusOwner struct
  2414.     Add new state machine for dealing with the new set of flags
  2415.     (bus_registry_set_service_context_table, struct OwnershipCancelData, 
  2416.     cancel_ownership, free_ownership_cancel_data, 
  2417.     add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
  2418.     restore_ownership, free_ownership_restore_data, 
  2419.     add_restore_ownership_to_transaction): Switch to using BusOwner 
  2420.     instead of raw connections
  2421.     (bus_service_add_owner): Add flags parameter
  2422.     Switch to using BusOwner instead of raw connections
  2423.     Add state machine for dealing with the new set of flags
  2424.     (bus_service_swap_owner): Swaps the first and second owners in the
  2425.     queue.  Used to make sure proper signals are sent when a service looses 
  2426.     or gains primary ownership.  We never insert an owner at the top of the
  2427.     queue.  Instead we insert it in the second position and then swap.
  2428.     (bus_service_remove_owner): Remove the owner from the queue sending
  2429.     out the NameLost and NameOwnerChanged signals if the we were the 
  2430.     primary owner
  2431.     (bus_service_get_primary_owners_connection): New method that extracts
  2432.     the connection from the primary owner
  2433.     (bus_service_get_primary_owner): Returns the BusOwner instead of the 
  2434.     connection
  2435.     (bus_service_get_allow_replacement): Changed from the old 
  2436.     bus_service_get_prohibit_replacement method.  Checks the flags of the 
  2437.     primary owner and returns if it can be replaced or not
  2438.     (bus_service_set_prohibit_replacement): removed
  2439.     (bus_service_has_owner): returns TRUE if and owner with
  2440.     the specified connection exists in the queue
  2441.     
  2442.     * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
  2443.     method that only compiles if tests are enabled.  Allows us to get the 
  2444.     unique name of a connection so we can check it against the queue when
  2445.     doing regression tests
  2446.  
  2447.     * bus/activation.c (bus_activation_send_pending_auto_activate),
  2448.     bus/dispatch.c (bus_dispatch),  
  2449.     bus/driver.c (bus_driver_handle_get_service_owner, 
  2450.     bus_driver_handle_get_connection_unix_user, 
  2451.     bus_driver_handle_get_connection_unix_process_id,
  2452.     bus_driver_handle_get_connection_selinux_security_context),
  2453.     bus/signals.c (connection_is_primary_owner): 
  2454.     use bus_service_get_primary_owners_connection instead of
  2455.     bus_service_get_primary_owner
  2456.  
  2457.     * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
  2458.     _dbus_listen_unix_socket): Calculate the length of the socket
  2459.     path and use that instead of using a fixed length which was
  2460.     causing socket names to contain many trailing Nul bytes.
  2461.  
  2462.     * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
  2463.     (dbus_g_method_get_sender): New method for extracting the sender 
  2464.     from a DBusGMethodInvocation
  2465.     (dbus_g_method_return_get_reply): changed name to 
  2466.     dbus_g_method_get_reply
  2467.     (dbus_g_method_return_send_reply): changed name to
  2468.     dbus_g_method_send reply
  2469.  
  2470.     * doc/dbus-specification.xml: New docs that describe how the new
  2471.     queueing system works and talks about the changes to the how
  2472.     we specify socket names
  2473.  
  2474.     * glib/examples/example-service.c, 
  2475.     glib/examples/example-signal-emitter.c,
  2476.     glib/examples/statemachine/statemachine-server.c:
  2477.     Changed the RequestName flags to the new system
  2478.  
  2479.     * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
  2480.     regression test suite for testing various states of the new
  2481.     queueing system
  2482.     
  2483. 2005-11-15  Robert McQueen  <robot101@debian.org>
  2484.  
  2485.     * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
  2486.     Taylor to add two methods, dbus_g_method_return_get_reply and
  2487.     dbus_g_method_return_send_reply, to allow you to get the reply
  2488.     message from a DBusGMethodInvocation, append arbitrary stuff to it,
  2489.     and send it. The GLib bindings can't marshal a return value of
  2490.     something like a(s) if the array is empty - ultimately they should be
  2491.     made to heed the signature of the out arguments as the Python bindings
  2492.     now can, but this is a workable interim solution which might have
  2493.     other applications.
  2494.  
  2495. 2005-11-15  Robert McQueen  <robot101@debian.org>
  2496.  
  2497.     * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
  2498.     method to org.freedesktop.DBus to release a bus name or give up
  2499.     waiting in the queue for it.
  2500.  
  2501.     * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
  2502.     dbus_bus_release_name method to send the ReleaseName method calls.
  2503.     Add constants for the return values to dbus/dbus-shared.h.
  2504.  
  2505.     * doc/dbus-specification.xml: Document the new ReleaseName method
  2506.     in the specification.
  2507.  
  2508.     * python/dbus_bindings.pyx: Add a low-level python binding for the
  2509.     release name method.
  2510.  
  2511.     * python/exceptions.py, python/service.py: Make freeing BusName
  2512.     objects release the name. Add a NameExistsException, and fix a
  2513.     bug with creating UnknownMethodException.
  2514.  
  2515.     * test/python/test-client.py: Add tests for freeing BusName
  2516.     objects causing names to be released.
  2517.  
  2518. 2005-11-14  Robert McQueen  <robot101@debian.org>
  2519.  
  2520.     * python/service.py: Include the traceback in the error reply when we
  2521.     send an exception over the bus. _BEST_ _PATCH_ _EVER_
  2522.  
  2523. 2005-11-14  David Zeuthen  <davidz@redhat.com>
  2524.  
  2525.     Patch from Timo Hoenig <thoenig@suse.de>.
  2526.  
  2527.     * bus/bus.c: I've recently investigated why the automatic reload
  2528.     of configuration files does not work as expected.
  2529.  
  2530.     Currently, reloading configuration files does only work when
  2531.     running dbus-daemon with --nodaemon.  If we are running as daemon
  2532.     we're hitting a dnotify bug once we fork the process.
  2533.  
  2534.     We're initializing the dnotify fds before calling fork().  Once
  2535.     the child process forked it does still have the fds (and they
  2536.     still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
  2537.     getting SIGIO as changes are made to the configuration files.
  2538.  
  2539.     The attached patch moves the initialization of the dnotify fds to
  2540.     process_config_postinit().  This is safe for all current code
  2541.     paths and solves the dnotify disfunction.  If we're running
  2542.     dbus-daemon as daemon the fds for dnotify are now being
  2543.     initialized after fork() for the child process.
  2544.  
  2545.     * configure.in: The current configure.in check for dnotify probes
  2546.     'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
  2547.     match for 'xlinux', too. Additionally I have adapted the configure
  2548.     option's style to match with the others.
  2549.  
  2550. 2005-11-14  Robert McQueen  <robot101@debian.org>
  2551.  
  2552.     * python/decorators.py, python/service.py: Add a new argument to the
  2553.     dbus.service.method decorator called sender_keyword, which if set,
  2554.     specifies the name of an argument which will be provided the bus
  2555.     name of the method caller.
  2556.  
  2557.     * test/python/test-client.py, test/python/test-service.py: Add a
  2558.     method and test to check the sender_keyword functionality.
  2559.  
  2560. 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
  2561.  
  2562.     * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
  2563.     empty reply so blocking calls don't block forever (Patch from Sjoerd 
  2564.     Simons <sjoerd at luon.net>)
  2565.  
  2566.     * AUTHORS: Add Robert McQueen for his work on the Python
  2567.     Bindings and other parts of D-Bus
  2568.  
  2569. 2005-11-07  Robert McQueen  <robot101@debian.org>
  2570.  
  2571.     * python/decorators.py: Change emit_signal function to use the
  2572.     signature annotation of the signal when marhsalling the arguments from
  2573.     the service. Fix a bug where the code checking signature length
  2574.     against argument length referenced the wrong variable.
  2575.  
  2576.     * python/introspect_parser.py: Avoid adding the type signature of
  2577.     signal arguments to any methods which occur after them in the
  2578.     introspection data (!) by making the parser a little more careful
  2579.     about its current state.
  2580.  
  2581.     * python/service.py: Remove debug prints from last commit (again :D).
  2582.  
  2583.     * test/python/test-client.py, test/python/test-service.py: Add test
  2584.     signals with signature decorators to test the strict marshalling code
  2585.     gives errors at the right time. Could do with checking the signals
  2586.     actually get emitted too, given that the test does nothing with
  2587.     signals at the moment...
  2588.  
  2589. 2005-11-07  Robert McQueen  <robot101@debian.org>
  2590.  
  2591.     * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
  2592.     instances to stop madness of creating new instances representing
  2593.     the same bus connection all the time, rendering any tracking of
  2594.     match rules and bus names quite meaningless. Caught a bug where
  2595.     the private argument to SessionBus() and friends was being passed
  2596.     in as use_default_mainloop by mistake. Still some problems with
  2597.     multiple dbus_binding.Connection instances representing the same
  2598.     low-level connection (eg when you use both SessionBus() and
  2599.     StarterBus() in same process), but it's a lot better now than it
  2600.     was.
  2601.  
  2602.     * python/dbus_bindings.pyx: Add constants with the return values
  2603.     for bus_request_name().
  2604.  
  2605.     * python/service.py: Store bus name instances in a per-dbus.Bus cache
  2606.     and retrieve the same instances for the same name, so deletion can be
  2607.     done with refcounting. Also now throws some kind of error if you
  2608.     don't actually get the name you requested, unlike previously...
  2609.  
  2610.     * test/python/test-client.py: Add tests for instance caching of buses
  2611.     and bus name objects.
  2612.  
  2613. 2005-11-04  Robert McQueen  <robot101@debian.org>
  2614.  
  2615.     * python/dbus_bindings.pyx, test/python/test-client.py: Fix
  2616.     marshalling of boolean values. Add some booleans to the values in
  2617.     the test client.
  2618.  
  2619.     * python/decorators.py, python/service.py: Add an 'async_callbacks'
  2620.     argument to the dbus.service.method decorator, which allows you to
  2621.     name arguments to take two callback functions for replying with
  2622.     return values or an exception.
  2623.  
  2624.     * test/python/test-client.py, test/python/test-service.py: Add test
  2625.     case using asynchronous method reply functions, both return values and
  2626.     errors, and from within both the function itself and from a mainloop
  2627.     callback.
  2628.  
  2629.     * python/decorators.py, python/service.py: Perform checking that the
  2630.     number of method/signal arguments matches the number of types in the
  2631.     signature at class loading time, not when you first introspect the
  2632.     class.
  2633.  
  2634.     * python/service.py: Remove debug print left by the last commit.
  2635.  
  2636. 2005-11-03  Robert McQueen  <robot101@debian.org>
  2637.  
  2638.     * python/service.py: Heavy refactoring of method invocation, with
  2639.     hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
  2640.     in favour of a new _message_cb that uses seperate functions for
  2641.     looking up the method to call, marshalling the return values, and
  2642.     sending exceptions as errors, and is easier to follow as a
  2643.     consequence.  Fixes some corner cases about returning things that
  2644.     don't match your declared out_signature, allows exceptions to define
  2645.     _dbus_error_name and have it be sent over the bus as the error name,
  2646.     and paves the way for cool stuff like heeding the message no reply
  2647.     flag, asynchronous method implementations, informing the method of the
  2648.     sender, and including backtraces in the error messages.
  2649.  
  2650.     * test/python/test-client.py: Catch and print exceptions thrown in the
  2651.     async callback tests, rather than passing them to the low-level
  2652.     bindings to be ignored in a noisy and frustrating manner.
  2653.  
  2654. 2005-11-03  Robert McQueen  <robot101@debian.org>
  2655.  
  2656.     * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
  2657.     functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
  2658.     tweak others to be consistent.
  2659.  
  2660.     * test/python/test-client.py: Tweak output of testInheritance.
  2661.  
  2662. 2005-10-29  Robert McQueen  <robot101@debian.org>
  2663.  
  2664.     * python/service.py: Major changes to allow multiple inheritance
  2665.     from classes that define D-Bus interfaces:
  2666.     
  2667.      1. Create a new Interface class which is the parent class of
  2668.         Object, and make the ObjectType metaclass into InterfaceType.
  2669.     
  2670.      2. Patch written with Rob Taylor to replace use of method_vtable
  2671.         with code that walks the class's __MRO__ (method resolution order)
  2672.         to behave like Python does when invoking methods and allow
  2673.         overriding as you'd expect. Code is quite tricky because
  2674.         we have to find two methods, the one to invoke which has the
  2675.         right name and isn't decorated with the /wrong/ interface,
  2676.         and the one to pick up the signatures from which is decorated
  2677.         with the right interface.
  2678.     
  2679.         The same caveats apply as to normal multiple inheritance -
  2680.         this has undefined behaviour if you try and inherit from two
  2681.         classes that define a method with the same name but are
  2682.         decorated with different interfaces. You should decorate
  2683.         your overriding method with the interface you want.
  2684.     
  2685.      3. Replace grungy introspection XML generation code in the metaclass
  2686.         with dictionaries that cope correctly with multiple inheritance
  2687.         and the overriding of methods. This also uses the signature
  2688.         decorations to provide correct introspection data, including
  2689.         the debut appearance of the types of your return values. :D
  2690.  
  2691.     * test/python/test-client.py, test/python/test-service.py: Add a test
  2692.     case to try invoking an method that overrides one inherited from a
  2693.     D-Bus interface class.
  2694.  
  2695. 2005-10-29  Robert McQueen  <robot101@debian.org>
  2696.  
  2697.     * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
  2698.     Add checking for the end of struct character when marshalling a
  2699.     struct in MessageIter.append_strict.
  2700.  
  2701.     * python/examples/example-service.py,
  2702.     python/examples/gconf-proxy-service.py,
  2703.     python/examples/gconf-proxy-service2.py: Update to use gobject
  2704.     mainloop directly rather than appearing to depend on gtk.
  2705.  
  2706.     * python/test/test-client.py, python/test/test-server.py: Remove
  2707.     obsolete and broken test scripts for old bindings. We have up to date
  2708.     and working tests in test/python/.
  2709.  
  2710. 2005-10-29  Robert McQueen  <robot101@debian.org>
  2711.  
  2712.     * python/decorators.py: Add optional arguments to the method and
  2713.     signal decorators to allow you to specify the signature of arguments
  2714.     and return values. Preserve the doc strings of signal functions in the
  2715.     decorated version, for pydoc and friends.
  2716.  
  2717.     * python/dbus_bindings.pyx, python/proxies.py: Replace the
  2718.     parse_signature_block function with an iterable dbus.Signature()
  2719.     type. Fix a bug in MessageIter.append_strict where you could append
  2720.     anything by claiming it was a string.
  2721.  
  2722.     * python/service.py: Use the out_signature decoration on methods to
  2723.     marshal return values, meaning you no longer require dbus.Array()
  2724.     or dbus.Dictionary() to indicate the type when returning empty
  2725.     arrays or dictionaries. Fix a bug where exceptions which are defined
  2726.     in __main__ are not turned into error replies.
  2727.  
  2728.     * test/python/test-client.py, test/python/test-service.py: Add test
  2729.     for correct marshalling of return values according to out_signature.
  2730.     Fix a bug in the async call test where the error_handler is missing a
  2731.     self argument.
  2732.  
  2733. 2005-10-29  Robert McQueen  <robot101@debian.org>
  2734.  
  2735.     * glib/Makefile.am, glib/examples/Makefile.am,
  2736.     glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
  2737.     Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
  2738.  
  2739.     * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
  2740.  
  2741.     * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
  2742.     from Ubuntu by Daniel Silverstone to allow specifying match rules on
  2743.     the command line.
  2744.  
  2745. 2005-10-27  Ross Burton  <ross@openedhand.com>
  2746.  
  2747.     * dbus/dbus-marshal-header.c:
  2748.     Remove dead code.
  2749.  
  2750.     * glib/dbus-gobject.c:
  2751.     Stop compiler warning.
  2752.  
  2753. 2005-10-25  Ross Burton  <ross@openedhand.com>
  2754.  
  2755.     * dbus/dbus-auth.c:
  2756.     * dbus/dbus-server-unix.c:
  2757.     * dbus/dbus-transport-unix.c:
  2758.     * glib/dbus-gmain.c:
  2759.     * glib/dbus-gobject.c:
  2760.     Add some const keywords.
  2761.  
  2762. 2005-10-25  Ross Burton  <ross@openedhand.com>
  2763.  
  2764.     * doc/dbus-specification.xml:
  2765.     Document the NoReply annotation.
  2766.  
  2767.     * glib/dbus-binding-tool-glib.h:
  2768.     * glib/dbus-binding-tool-glib.c:
  2769.     Respect the NoReply annotation.
  2770.  
  2771. 2005-10-24  Robert McQueen <robot101@debian.org>
  2772.  
  2773.     * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
  2774.     derive from unicode instead of str, and encode/decode UTF-8 when
  2775.     marshalling/unmarshalling bus messages
  2776.  
  2777.     * python/introspect_parser.py: encode introspection data as UTF-8
  2778.     before passing the buffer into libxml2
  2779.  
  2780.     * test/python/test-client.py: add unicode test strings
  2781.  
  2782.     * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
  2783.     ignore generated python test files
  2784.  
  2785. 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
  2786.  
  2787.     * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
  2788.     and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
  2789.     (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
  2790.  
  2791.     * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
  2792.     DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
  2793.     when constructing struct signatures
  2794.  
  2795.     * python/_dbus.py (Bus): handle private connections using the
  2796.     private keyword in the constructor. defaults to private=False
  2797.     (Bus::close): new method to close a connection to the bus
  2798.  
  2799.     * python/dbus_bindings.pyx (Connection::close): renamed method
  2800.     was previously called disconnect
  2801.     (bus_get): now supports getting a private connection
  2802.  
  2803.     * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
  2804.     keyword is set to True.  if it is, execute the method without waiting
  2805.     for a reply
  2806.     (ProxyObject::_introspect_execute_queue): new method for executing
  2807.     all the pending methods that were waiting for the introspect to
  2808.     finish.  this is called when introspect either succeeds or fails
  2809.     (ProxyObject::_introspect_error_handler): call queued methods
  2810.  
  2811. 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
  2812.  
  2813.     * python/dbus_bindings.pyx (MessageIter::append_strict): check for
  2814.     STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
  2815.  
  2816.     * python/service.py (Object::_message_cb): handle exceptions correctly
  2817.     by sending them over the wire to the calling app.  This makes sure
  2818.     the client returns immediately instead of waiting the 15 seconds to
  2819.     timeout.
  2820.  
  2821.     * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
  2822.     Add a test to benchmark how long it takes to introspect a service and 
  2823.     call a method which returns a large element (pretty fast)
  2824.  
  2825.     * test/python/test-service.py (TestObject::GetComplexArray): new test 
  2826.     method which pushes a lot of data
  2827.  
  2828. 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
  2829.  
  2830.     * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):     
  2831.     reclaim memory outside of the loop and use del istead of just setting
  2832.     the key to None
  2833.  
  2834. 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
  2835.  
  2836.     * python/service.py (ObjectType::_reflect_on_signal): Always close
  2837.     signal tag even when there are no arguments
  2838.  
  2839. 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
  2840.  
  2841.     * configure.in: Set mono, mono-docs and Qt3 to default
  2842.     to no instead of auto when building.  These bindings do not
  2843.     have full time maintainers and will not be supported for the
  2844.     1.0 release.
  2845.  
  2846. 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
  2847.  
  2848.     patches from Michael Krivoruchko <misha at sun.com>: 
  2849.     
  2850.     * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
  2851.     _dbus_connection_message_sent, 
  2852.     _dbus_connection_send_preallocated_unlocked_no_update, 
  2853.     _dbus_connection_pop_message_link_unlocked): handle the case when path 
  2854.     is NULL when calling _dbus_verbose
  2855.  
  2856.     * configure.in: check for functions getpeerucred and getpeereid
  2857.  
  2858.     * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
  2859.     support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
  2860.     OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
  2861.     Patch was only tested on Solaris 10 x86 so it might be issues
  2862.     with other platforms (i.e. BSDs and MacOSX)
  2863.     
  2864.  
  2865. 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
  2866.  
  2867.     * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
  2868.     instead of marshal basic so we can handle recursive types in a variant
  2869.  
  2870.     * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
  2871.     in variants
  2872.  
  2873.     * test/glib/test-service-glib.c, test-service-glib.xml
  2874.     (my_object_echo_variant [EchoVariant], 
  2875.     my_object_process_variant_of_array_of_ints123
  2876.     [ProcessVariantOfArrayOfInts123]): 
  2877.     Add two test methods
  2878.  
  2879.     * python/introspect_parser.py: New module for parsing introspect
  2880.     data.
  2881.  
  2882.     * python/dbus_bindings.pyx:
  2883.     (various places): when throwing errors fix to use errormsg instead 
  2884.     of message local variable because Pyrex can get confused with other 
  2885.     message variables (initial patch by Robert McQueen 
  2886.     <robert.mcqueen at collabora.co.uk>)
  2887.     (MessageIter::parse_signature_block): new method for getting the next
  2888.     block in a signiture.
  2889.     (MessageIter::append_strict): new method for appending values strictly
  2890.     using the passed in signature instead of guessing at the type
  2891.     (MessageItter:: append_dict, append_struct, append_array): use 
  2892.     signatures to marshal children if the signature is available
  2893.     
  2894.     * python/exceptions.py (IntrospectionParserException): new exception
  2895.  
  2896.     * python/proxies.py (ProxyMethod::__call__): Marshal args with 
  2897.     introspected signatures if available, else we fall back to the
  2898.     old way of doing things.
  2899.     (ProxyObject::_introspect_reply_handler ): parse introspection data
  2900.     
  2901.     * python/service.py (ObjectType::_reflect_on_method): Properly
  2902.     terminate <method> if there are no args in the reflection data
  2903.  
  2904.     * test/python/test-client.py: add tests for talking with the GLib
  2905.     test server.  This gives us better coverage for introspection since
  2906.     python to python will always generate arguments as variants.  It also
  2907.     allows us to test the robustness of the GLib bindings and interlanguage
  2908.     communications.
  2909.  
  2910.     
  2911. 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
  2912.  
  2913.     * bus/driver.c (bus_driver_handle_introspect): Add signals
  2914.     to the introspect data. (patch from Daniel P. Berrange 
  2915.     <dan at berrange.com>)
  2916.  
  2917.     * bus/dispatch.c (check_existent_ping): Add testcase for Ping
  2918.     
  2919.     * dbus/dbus-connection.c (_dbus_connection_peer_filter,
  2920.     _dbus_connection_run_builtin_filters): Changed these to
  2921.     be unlock_no_update functions and call 
  2922.     _dbus_connection_send_unlocked_no_update instead of
  2923.     dbus_connection_send to avoid locking errors.
  2924.     
  2925.     * doc/TODO: Removed the make Ping test TODO
  2926.     
  2927. 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
  2928.  
  2929.     * dbus/Python.pyx: Fixed memory leaks when throwing errors.
  2930.     We now copy the message from a DBusError and then free 
  2931.     the error object befor throwing the error
  2932.  
  2933.     * glib/dbus-glib-tool.c: removed extra comma at the end of the
  2934.     DBusBindingOutputMode enum which was causing a warning.
  2935.     #include <time.h> so using time_t is explicitly defined
  2936.  
  2937. 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
  2938.  
  2939.     * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
  2940.     - dbus/dbus-bus.c
  2941.     (internal_bus_get): new method that take over the heavy lifting
  2942.     of dbus_bus_get and adds the ability to get a private connection
  2943.     to the bus
  2944.     (dbus_bus_get): wrapper to internal_bus_get that provides the same
  2945.     interface as in previous versions
  2946.     (dbus_bus_get_private): new method that is a wrapper to 
  2947.     internal_bus_get to get a private connection to the bus
  2948.  
  2949.     - dbus/dbus-bus.h
  2950.     (dbus_bus_get_private): add as a public libdbus interface
  2951.  
  2952.     - dbus-1.pc.in: output system_bus_default_address and 
  2953.     sysconfdir variables so apps can use them when compiling
  2954.  
  2955. 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
  2956.     * dbus/qt: New Qt bindings
  2957.  
  2958. 2005-09-12  Waldo Bastian  <bastian@kde.org>
  2959.  
  2960.     * dbus/dbus-marshal-validate.c,
  2961.     doc/dbus-specification.xml, test/Makefile.am,
  2962.     test/test-names.c: allow hyphens in bus names.
  2963.  
  2964. 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
  2965.  
  2966.     * test/data/auth/fallback.auth-script: we don't
  2967.     retry the EXTERNAL method when we know its going
  2968.     to fail anymore.
  2969.  
  2970. 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
  2971.  
  2972.     * dbus/dbus-connection-internal.h: rename
  2973.     (add|remove|toggle)_(watch|timeout) to unlocked()
  2974.     
  2975.     * dbus/dbus-connection.c: ditto.
  2976.     
  2977.     * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
  2978.     Update some callers for the renaming.
  2979.  
  2980. 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
  2981.  
  2982.     * dbus/dbus-auth.c: (record_mechanisms): don't
  2983.     retry the first auth mechanism because we know
  2984.     we're just going to get rejected again.
  2985.     
  2986.     * dbus/dbus-keyring.c: (_dbus_keyring_reload):
  2987.     Fix thinko ... and what a nasty little bugger to
  2988.     track down you were ...
  2989.  
  2990.     * dbus/dbus-connection.c:
  2991.     (_dbus_connection_add_watch),
  2992.     (_dbus_connection_remove_watch): add note about
  2993.     these needing the connection to be locked.
  2994.     (_dbus_connection_get_dispatch_status_unlocked):
  2995.     set status to DATA_REMAINS when we queue the
  2996.     disconnected message.
  2997.     
  2998.     * bus/dispatch.c:
  2999.     (bus_dispatch): fix warning.
  3000.     (check_existent_service_no_auto_start):
  3001.     Expect ChildSignaled error too.
  3002.     (check_existent_hello_from_self): fix another
  3003.     couple of warnings.
  3004.     
  3005. 2005-09-08  Joe Shaw  <joeshaw@novell.com>
  3006.  
  3007.     Patches from James Willcox <snorp@snorp.net>
  3008.  
  3009.     * mono/Makefile.am: Add Int16.cs and UInt16.cs
  3010.  
  3011.     * mono/DBusType/Array.cs: Handle multidimensional arrays, and
  3012.     support array "out" parameters.
  3013.  
  3014.     * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
  3015.     for 16-bit int support.
  3016.  
  3017. 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
  3018.  
  3019.     * Released 0.50
  3020.  
  3021.     * Patch from Steve Grubb:
  3022.     - bus/activation.c (bus_activation_service_reload_test): clean up
  3023.     some indentation
  3024.     - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
  3025.     - dbus/dbus-message-factory.c (generate_special): fix a couple of
  3026.     buffer overflows in the test suite.  This is non critical because
  3027.     it can not be exploited and this code is only run when doing a 
  3028.     make check.
  3029.  
  3030.     * Patch from Yaakov Selkowitz: Build fixes for Cygwin
  3031.     - configure.in: Don't check and link against kdecore, only qt headers
  3032.     - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
  3033.     - gcj/org/freedesktop/dbus/Makefile.am:
  3034.     add libdbus_gcj_1_la_LDFLAGS = -no-undefined
  3035.     - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
  3036.     and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
  3037.     - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
  3038.     - tools/Makefile.am: Add platform extentions to binaries 
  3039.     (i.e. .exe on windows)
  3040.  
  3041.     * configure.in: 
  3042.     - Make it so if no suitable version of python is found we only 
  3043.     disable building python instead of exiting the configure script
  3044.     - Require version 2.4 of glib for glib bindings
  3045.     - Up version to 0.50
  3046.  
  3047.     * python/__init__.py: Sync version with libdbus to (0,50,0)
  3048.     
  3049. 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  3050.  
  3051.     * dbus/dbus-object-tree.c (find_subtree_recurse):
  3052.     a couple of optimizations (bug #710):
  3053.     - do a binary search in the tree
  3054.     - insert a new child at the right place directly, no need for
  3055.       qsort anymore
  3056.     - do the "double alloc" thing when allocating children
  3057.  
  3058. 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
  3059.  
  3060.     * python/Makefile.am: Break on pyrexc errors instead of ignoring them
  3061.  
  3062.     * python/dbus_bindings.pyx: Memory management foo
  3063.     (global): remove hacky _user_data_references global list
  3064.     (GIL_safe_cunregister_function_handler): userdata now stuffed into
  3065.     tuples. Unref user_data
  3066.     (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
  3067.     (Connection::__del__): Remove and replace with __dealloc__ method
  3068.     (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
  3069.     to keep tuple from being deallocated instead of the global var hack
  3070.     (Connection::register_object_path): Stuff user_data into a tuple.
  3071.     Use Py_INCREF to keep tuple from being deallocated instead of the 
  3072.     global var hack
  3073.     (Connection::register_fallback): Stuff user_data into a tuple.
  3074.     Use Py_INCREF to keep tuple from being deallocated instead of the 
  3075.     global var hack
  3076.     (GIL_safe_pending_call_notification): Don't unref the message
  3077.     because it gets unreffed when going out of scope.  Py_XDECREF
  3078.     the user_data
  3079.     (PendingCall::__del__): Remove and replace with __dealloc__ method
  3080.     (PendingCall::set_notify): ref the pending call because we will
  3081.     need it to stick around for when the notify callback gets called
  3082.     (Message::__del__): Remove and replace with __dealloc__ method
  3083.  
  3084.     * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
  3085.     gthreads_init to match up with the dbus call
  3086.  
  3087.     * python/glib.py (init_threads): Changed to threads_init to match
  3088.     up with gobject.threads_init().  init_threads is kept for backwards
  3089.     compat but will most likely be deprecated in the future
  3090.  
  3091.     * test/python/test-client.py: 
  3092.     - revamp to use Python's unittest functionality
  3093.     - add async call tests
  3094.     - setup threads in glib and dbus so we make sure locks are working
  3095.     
  3096. 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
  3097.  
  3098.     * python/dbus_bindings.pyx 
  3099.     (_pending_call_notification, cunregister_function_handler, 
  3100.     cmessage_function_handler): All callback functions have been rearranged 
  3101.     to workaround a bug in Pyrex when working with the GIL which is Python's 
  3102.     global lock when dealing with threads.  They have been split into
  3103.     a wrapper function (which assumes the name of the old function) and
  3104.     a _GIL_safe_<function name> function which contains the functionality
  3105.     of the old function.  This ensures that Pyrex does not write code
  3106.     the lock is released.
  3107.     
  3108.  
  3109. 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
  3110.  
  3111.     * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
  3112.     GIL global lock when calling back into Python
  3113.  
  3114. 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
  3115.  
  3116.     * Release 0.36.2
  3117.  
  3118.     * Add Havoc's patch that never got applied to HEAD (Bug #2436):
  3119.  
  3120.     * bus/policy.c (bus_policy_allow_user): change default "user is
  3121.     allowed" to be "user has same uid as the bus itself"; any
  3122.     allow/deny rules will override.
  3123.  
  3124.     * bus/session.conf.in: don't allow all users, since now by default
  3125.     the user that ran the bus can connect.
  3126.  
  3127. 2005-08-26  Colin Walters  <walters@verbum.org>
  3128.  
  3129.     * tools/dbus-print-message.c (print_message): Flush stdout
  3130.     after printing a message, so that redirecting to a file, then
  3131.     hitting Ctrl-C works.
  3132.  
  3133. 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
  3134.  
  3135.     * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
  3136.     (EmptyMessage): new class that subclasses Message.  This is a workaround
  3137.     to a Pyrex bug that fails to call __del__ when the Message object goes out
  3138.     of scope.  For some reason subclassing Message fixes this bug
  3139.     (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
  3140.     - s/Message(_create=0)/EmptyMessage everywhere else
  3141.     
  3142.     * test/python/test-{server|client}.py: add the python/.libs directory
  3143.     to the lookup path so dbus_bindings and dbus_glib_bindings don't
  3144.     get picked up from the system
  3145.  
  3146. 2005-08-25  Colin Walters  <walters@verbum.org>
  3147.  
  3148.     * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
  3149.     to Ryan Lortie for the suggestion.
  3150.  
  3151. 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
  3152.  
  3153.     * test/python: Add python regression test
  3154.  
  3155.     * configure.in: Add test/python/Makefile
  3156.  
  3157.     * test/Makefile.am: Add the python directory to SUBDIRS
  3158.  
  3159. 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
  3160.  
  3161.     * Release 0.36.1
  3162.  
  3163.     * python/_dbus.py: 
  3164.     (Interface::connect_to_signal): propigate keywords for match on args
  3165.     (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
  3166.  
  3167.     * python/proxies.py (ProxyObject::connect_to_signal):
  3168.     propigate keywords for match on args
  3169.  
  3170.     * Makefile.am: point everything to pyexecdir since python borks
  3171.     on multilib
  3172.  
  3173. 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
  3174.  
  3175.     * Release 0.36
  3176.  
  3177. 2005-08-23  Colin Walters  <walters@verbum.org>
  3178.  
  3179.     * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
  3180.  
  3181. 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
  3182.  
  3183.     * python/dbus_glib_bindings.pyx: reorder imports and c definitions
  3184.     to fix some wranings. We now use dbus_bindings.DBusConnection instead
  3185.     of defining DBusConnection ourselves.
  3186.  
  3187. 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
  3188.  
  3189.     * python/dbus.pth: New path file to fix up problems when installing
  3190.     c libraries to lib64 and python files to lib.
  3191.  
  3192.     * python/Makefile.am: install dbus.pth in the correct spot
  3193.  
  3194. 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
  3195.     * ChangeLog: clean up my last entry a bit
  3196.  
  3197.     * doc/introspect.xsl: New stylesheet for converting introspection data
  3198.     into browser renderable xhtml. Contributed by Lennart Poettering.
  3199.  
  3200.     * doc/introspect.dtd: Fixups in the introspect format from Lennart
  3201.     Poettering.
  3202.  
  3203.     * doc/dbus-tutorial.xml: 
  3204.     - Add Colin Walter to the Authors section for authoring the GLib
  3205.     section
  3206.     - Add descriptions of the new signature and type functionality
  3207.     in the Python complex type mapping section
  3208.     - Add a sidenote on the new args matching functionality in 
  3209.     the Python bindings
  3210.     - Fixed up some of the examples to use the gobject.MainLoop
  3211.     instead of gtk.main
  3212.     
  3213.     * python/_dbus.py:
  3214.     (Bus::_create_args_dict): New. Converts a hash of arg matches
  3215.     to a more useable format
  3216.     (Bus::add_signal_receiver): add a **keywords parameter for catching
  3217.     arg match parameters
  3218.     (Bus::remove_signal_receiver): add a **keywords parameter for catching
  3219.     arg match parameters
  3220.     
  3221.     * python/matchrules.py:
  3222.     (MatchTree::exec_matches): Check for arg matches
  3223.     (SignalMatchRule::add_args_match): New method
  3224.     (SignalMatchRule::execute): Added args_list parameter as an optimization
  3225.     so we don't have to marshal the args more than once
  3226.     (SignalMatchRule::match_args_from_list): New method that checks to see
  3227.     if the rule's arg matches match an argument list.  Only arguments
  3228.     set in the rule are checked.
  3229.     (SignalMatchRule::match_args_from_rule): New method that checks to see
  3230.     if the rule's arg matches match another rule's.  All args have to match
  3231.     in order for this method to return true.  If either rule has more args
  3232.     then it is not a match.
  3233.     (SignalMatchRule::is_match): Add args match
  3234.     (SignalMatchRule::repr): Add args to the final output if they exist
  3235.  
  3236. 2005-08-17  Ross Burton  <ross@burtonini.com>
  3237.  
  3238.     * glib/dbus-gproxy.c:
  3239.     (dbus_g_proxy_call_no_reply): unref the message once sent.
  3240.     (dbus_g_proxy_call): protect against NULL proxy.
  3241.  
  3242. 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
  3243.  
  3244.     * python/__init__.py: Version updated (0, 43, 0)
  3245.     
  3246.     * python/dbus_bindings.pyx: 
  3247.     - Fixed type objects to have self passed into __init__
  3248.     - Added the Variant type
  3249.     - Add the ability to specify types or signatures for Array, Variant 
  3250.     and Dictionary
  3251.     (Connection::send_with_reply_handlers): return a PendingCall object
  3252.     (_pending_call_notification): handle the case when an error is returned 
  3253.     without an error message in the body
  3254.     (MessageIter::get_boolean): return True or False instead of an integer
  3255.     (MessageIter::python_value_to_dbus_sig): add direct checking of types 
  3256.     and add checks for objects with embeded signatures or types (Array, 
  3257.     Variant and Dictionary)
  3258.     (MessageIter::append_byte): handle case when the value is a dbus.Byte
  3259.     (MessageIter::append_dict): handle embeded types or signatures
  3260.     (MessageIter::append_array): handle embeded types or signatures
  3261.     (MessageIter::append_variant): new method
  3262.     
  3263.     * python/proxies.py:
  3264.     (DeferedMethod): New. Dummy executable object used when queuing calls 
  3265.     blocking on introspection data
  3266.     (ProxyMethod::__call__): add the timeout keyword for specifying longer 
  3267.     or shorter timeouts for method calls
  3268.     (ProxyObject): Add first pass at an introspection state machine
  3269.     (ProxyObject::__init__): Add introspect keyword for turing off an on 
  3270.     introspection. 
  3271.     (ProxyObject::_Introspect): Internal Introspect call that bypasses 
  3272.     the usual mechanisms for sending messages.  This is to avoid a deadlock
  3273.     where the Intospect call would be queued waiting for the Introspect 
  3274.     call to finish ;-)
  3275.     (ProxyObject::_introspect_reply_handler): New.  This method is called 
  3276.     when introspection returns with no error
  3277.     (ProxyObject::_introspect_error_handler): New.  This method is called 
  3278.     when introspection encounters an error
  3279.     (ProxyObject::__getattr__): Code to handle different introspection 
  3280.     states.  Queue async calls or block blocking calls if we are 
  3281.     introspecting.  Pass through as normal if we are not or are done with 
  3282.     introspecting.
  3283.     
  3284.     * python/service.py: Import signal and method from decorators.py
  3285.  
  3286.     * python/types.py: Add Variant type
  3287.  
  3288. 2005-08-16  Colin Walters  <walters@verbum.org>
  3289.  
  3290.     * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
  3291.     DBusError message is NULL.
  3292.  
  3293. 2005-08-09  Havoc Pennington  <hp@redhat.com>
  3294.  
  3295.     * dbus/dbus-errors.c: apply patch from Timo Teras to make a
  3296.     malloc'd copy of the name parameter
  3297.  
  3298. 2005-08-09  Havoc Pennington  <hp@redhat.com>
  3299.  
  3300.     * dbus/dbus-message.c (dbus_message_set_reply_serial): print
  3301.     warning if the reply serial is set to 0
  3302.  
  3303. 2005-08-04  Colin Walters  <walters@verbum.org>
  3304.  
  3305.     * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
  3306.     (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
  3307.     (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
  3308.     (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
  3309.     (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
  3310.     (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
  3311.     (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
  3312.     * glib/dbus-gvalue.h (dbus_g_value_types_init)
  3313.     (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
  3314.     (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
  3315.     
  3316.     Prefix name with _ to ensure they're not exported.  All callers
  3317.     updated.
  3318.  
  3319.     * glib/dbus-gvalue.c (typecode_to_gtype)
  3320.     (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
  3321.     (signature_iter_to_g_type_dict)
  3322.     (signature_iter_to_g_type_array)
  3323.     (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
  3324.     (dbus_gtypes_from_arg_signature):
  3325.     Move to dbus-gsignature.c.
  3326.  
  3327.     * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
  3328.     dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
  3329.     (dbus_binding_tool_output_glib_client): Ditto.
  3330.  
  3331.     * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
  3332.     and dbus-gsignature.h
  3333.  
  3334.     * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
  3335.     unused variable.
  3336.  
  3337. 2005-08-03  Colin Walters  <walters@verbum.org>
  3338.  
  3339.     * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
  3340.     catch any incompatible changes accidentally made.
  3341.  
  3342. 2005-08-03  Havoc Pennington  <hp@redhat.com>
  3343.  
  3344.     * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
  3345.     typo, from Julien Puydt
  3346.  
  3347.     * bus/connection.c (bus_connection_disconnected): we were always
  3348.     doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
  3349.  
  3350. 2005-08-01  Colin Walters  <walters@verbum.org>
  3351.  
  3352.     Patch from Joe Markus Clarke:    
  3353.     
  3354.     * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
  3355.     use-after-free.
  3356.  
  3357. 2005-08-01  Colin Walters  <walters@verbum.org>
  3358.     
  3359.     Patch from Joe Markus Clarke:    
  3360.     
  3361.     * tools/dbus-send.c (main): 
  3362.     
  3363.     Don't use C99 style initializers (bug #3933).
  3364.     
  3365. 2005-08-01  Colin Walters  <walters@verbum.org>
  3366.  
  3367.     Patch from Joe Markus Clarke:    
  3368.  
  3369.     * glib/dbus-gvalue.c (dbus_g_value_types_init): 
  3370.     * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
  3371.     * glib/dbus-gobject.c (write_interface):
  3372.  
  3373.     Don't use C99 style initializers (bug #3933).
  3374.  
  3375. 2005-07-31  Havoc Pennington  <hp@redhat.com>
  3376.  
  3377.     * tools/dbus-viewer.c (load_child_nodes): fix invocation of
  3378.     dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
  3379.  
  3380. 2005-07-30  Havoc Pennington  <hp@redhat.com>
  3381.  
  3382.     * fix a bunch of Doxygen warnings and mistakes
  3383.  
  3384. 2005-07-30  Havoc Pennington  <hp@redhat.com>
  3385.  
  3386.     * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
  3387.     DBUS_BUILD_TESTS since it's now used in production code
  3388.  
  3389. 2005-07-29  Havoc Pennington  <hp@redhat.com>
  3390.  
  3391.     * test/glib/test-profile.c (write_junk): initialize the junk
  3392.     buffer so valgrind doesn't have a breakdown
  3393.  
  3394. 2005-07-29  Havoc Pennington  <hp@redhat.com>
  3395.  
  3396.     * bus/signals.c (bus_signals_test): add match_rule_equal() tests
  3397.     (match_rule_matches): remove unused arg
  3398.     (test_matching): add tests for match_rule_matches()
  3399.  
  3400.     * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
  3401.     do arg0='foo' arg5='bar' in the match rules
  3402.     (match_rule_matches): don't match if the arg0='foo' doesn't match.
  3403.  
  3404.     * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
  3405.  
  3406. 2005-07-29  Ross Burton  <ross@openedhand.com>
  3407.  
  3408.     * dbus/dbus-connection.c:
  3409.     Don't create a DBusCondVar which is never used.
  3410.  
  3411. 2005-07-27  Ross Burton  <ross@openedhand.com>
  3412.  
  3413.     * dbus/dbus-message.c:
  3414.     Reduce the size of the maximum cached message to 10K.
  3415.  
  3416. 2005-07-25  Ross Burton  <ross@openedhand.com>
  3417.  
  3418.     * glib/dbus-gproxy.c:
  3419.     Remove matches when all proxies are unregistered.
  3420.  
  3421. 2005-07-24  Colin Walters  <walters@verbum.org>
  3422.  
  3423.     * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
  3424.     typedata; recursive arrays won't have it.
  3425.  
  3426.     * test/glib/test-dbus-glib.c:
  3427.     * test/glib/test-service-glib.c:
  3428.     * test/glib/test-service-glib.xml: Add recursive arrays tests.
  3429.     
  3430. 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
  3431.  
  3432.     * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
  3433.     proxies.py, service.py: Cleanup of code after running it through the
  3434.     pyflakes code checker mostly dealing with undefined names.  
  3435.     (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
  3436.  
  3437. 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
  3438.  
  3439.     * NEWS: Update to 0.35.2
  3440.  
  3441. 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
  3442.  
  3443.     * python/_dbus.py: Remove import of the dbus.services
  3444.     module as it no longer exists (patch from Dimitur Kirov)
  3445.  
  3446.     * python/service.py (Object::__init__): Fixed typo
  3447.     s/name/bus_name (patch from Dimitur Kirov)
  3448.  
  3449.     * python/examples/example-signal-emitter.py: import dbus.glib
  3450.     to get the main loop and use glib mainloop instead of gtk so
  3451.     X doesn't have to be running.
  3452.  
  3453.     * python/examples/example-signal-recipient.py: import dbus.glib
  3454.     to get the main loop and use glib mainloop instead of gtk so
  3455.     X doesn't have to be running. Import the decorators module
  3456.     directly.
  3457.  
  3458.     * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
  3459.     didn't pick up on but are needed to build
  3460.  
  3461.     * configure.in: upped version to 0.35.2
  3462.  
  3463.     * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
  3464.     added Colin Walters' SELinux API rename patch from head 
  3465.     s/unix sercurity context/selinux security context/
  3466.  
  3467. 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
  3468.  
  3469.     * python/Makefile.am: dbus_binding.pxd.in should be included 
  3470.     in EXTRA_DIST not dbus_binding.pxd
  3471.     fix up $(srcdir) hopefully for the last time
  3472.  
  3473.     * NEWS: Update to 0.35.1
  3474.  
  3475. 2005-07-16  Colin Walters  <walters@verbum.org>
  3476.  
  3477.     * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
  3478.     from bus_driver_handle_get_connection_unix_security_context.  Update for
  3479.     error usage.
  3480.     (message_handlers): Update for renames.
  3481.  
  3482.     * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
  3483.     _dbus_string_init failure correctly.
  3484.     (bus_selinux_append_context): Convert SID to context.  Append it
  3485.     as a byte array.
  3486.     (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
  3487.     hasn't been called.
  3488.  
  3489.     * bus/selinux.h: Update prototype.
  3490.  
  3491.     * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
  3492.     from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
  3493.  
  3494. 2005-07-15  Colin Walters  <walters@verbum.org>
  3495.  
  3496.     * doc/TODO: Add note about convenience wrappers.
  3497.  
  3498. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3499.  
  3500.     * NEWS: Update to 0.35
  3501.  
  3502. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3503.  
  3504.     * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
  3505.     so distcheck doesn't fail
  3506.  
  3507.     * glib/examples/Makefile.am: Add example-service.xml and 
  3508.     example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
  3509.  
  3510.     * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
  3511.     statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
  3512.  
  3513.     * python/Makefile.am: Preprend $(srcdir)/ to source files so the
  3514.     compiler looks in the right places during distcheck
  3515.  
  3516. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3517.  
  3518.     * glib/example/Makefile.am: Fix a typo which cause make distcheck
  3519.     to fail
  3520.  
  3521. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3522.  
  3523.     * python/examples/example-service.py,
  3524.     python/examples/example-signal-emitter.py: Fixed up examples
  3525.     for API changes
  3526.  
  3527. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3528.  
  3529.     * python/__init__.py: Upped to version (0,42,0) because of
  3530.     the API change
  3531.  
  3532. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3533.  
  3534.     * ChangeLog: fix date in last entry
  3535.  
  3536.     * configure.in, bus/system.conf.in: add the ability to configure 
  3537.     the system bus user at compiletime with the --with-dbus-user flag
  3538.     (patch from Kristof Vansant)
  3539.  
  3540. 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
  3541.  
  3542.     * bus/dispatch.c, test/test-service.c: Add testcase
  3543.     for sending messages to oneself (TODO item).
  3544.  
  3545.     * python/service.py (class Object): Swap ordering of bus_name 
  3546.     and object_path parameters to better support inheritance.
  3547.  
  3548.     * doc/dbus-tutorial.xml: change Python docs to reflect change
  3549.     in parameter ordering and fix the inheritance section.
  3550.  
  3551.     * doc/TODO: remove sending message to oneself TODO item
  3552.  
  3553. 2005-07-15  Ross Burton  <ross@openedhand.com>
  3554.  
  3555.     * glib/dbus-gproxy.c:
  3556.     Fix a leak when calling methods via the proxy.
  3557.  
  3558. 2005-07-15  Colin Walters  <walters@verbum.org>
  3559.  
  3560.     * bus/selinux.c (bus_selinux_append_context): Wrap in
  3561.     HAVE_SELINUX.
  3562.  
  3563. 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
  3564.  
  3565.     * python/_dbus.py (Bus::remove_signal_receiver):
  3566.     don't add a callback to the match if none has been passed in
  3567.     
  3568.     * python/matchrules.py (SignalMatchTree::remove): if the rule
  3569.     being matched does not have a callback treat it as a wildcard
  3570.     fix matching logic
  3571.  
  3572.     * doc/dbus-tutorial.xml: Add Python tutorial
  3573.  
  3574. 2005-07-14  Colin Walters  <walters@verbum.org>
  3575.  
  3576.     * bus/driver.c
  3577.     (bus_driver_handle_get_connection_unix_security_context): New function.
  3578.     (message_handlers): Add.
  3579.  
  3580.     * bus/selinux.c (bus_selinux_append_context): New function; appends
  3581.     security context to message.
  3582.  
  3583.     * bus/selinux.h: Prototype.
  3584.  
  3585.     * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
  3586.  
  3587. 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
  3588.  
  3589.     * bus/activation.c: clean up all tabs to be 8 spaces 
  3590.     (bus_activation_activate_service): make sure we clean up
  3591.     if activation fails
  3592.  
  3593.     * bus/dispatch.c: clean up all tabs to be 8 spaces 
  3594.     (check_shell_fail_service_auto_start): New function
  3595.     tests to make sure we get fail properly when trying to auto start a service
  3596.     with a faulty command line
  3597.     (check_shell_service_success_auto_start): New function tests to make sure
  3598.     auto started services get the arguments on the command line
  3599.  
  3600.     * test/test-shell-service.c: Added service for testing auto-starting with 
  3601.     command line arguments
  3602.  
  3603.     * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
  3604.     test/data/valid-service-files/debug-shell-echo-success.service.in:
  3605.     Added service files for testing auto-starting with command line arguments
  3606.  
  3607.     * */.cvsignore: added a bunch of generated files to various .cvsignore files
  3608.  
  3609. 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
  3610.  
  3611.     * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
  3612.     
  3613.     * dbus/Makefile.am: added new files to build.
  3614.  
  3615.     * bus/activation.c (bus_activation_activate_service): support
  3616.     activation commands with parameters.
  3617.  
  3618.     * test/shell-test.c: added test program for the shell parsing
  3619.     code.
  3620.  
  3621. 2005-07-13  David Zeuthen  <davidz@redhat.com>
  3622.  
  3623.     * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
  3624.     64 bit signed and unsigned parameters
  3625.  
  3626. 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
  3627.  
  3628.     * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
  3629.  
  3630.     * python/service.py (class Name): renamed BusName to make it clearer
  3631.     what the object is for (a name on the bus)
  3632.  
  3633.     * python/examples/example-service.py,
  3634.     python/examples/example-signal-emitter.py: change the Name object to
  3635.     BusName
  3636.  
  3637. 2005-07-12  Colin Walters  <walters@verbum.org>
  3638.  
  3639.     Patch from Jim Gettys <Jim.Gettys@hp.com>.
  3640.  
  3641.     * tools/dbus-launch.c: Include sys/select.h.
  3642.  
  3643. 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
  3644.     * python/dbus_bindings.pyx.in: removed
  3645.  
  3646.     * python/dbus_bindings.pyx: Added.
  3647.     - Fixed some memleaks (patch from 
  3648.     Sean Meiners <sean.meiners@linspireinc.com>)
  3649.     - Broke out the #include "dbus_h_wrapper.h" and put it in its
  3650.     own pxd file (Pyrex definition)
  3651.     - Broke out glib dependancies into its own pyx module
  3652.     
  3653.     * python/dbus_bindings.pdx: Added.
  3654.     - Defines C class Connection for exporting to other modules
  3655.  
  3656.     * python/dbus_glib_bindings.pyx: Added.
  3657.     - New module to handle lowlevel dbus-glib mainloop integration
  3658.  
  3659.     * python/glib.py: Added.
  3660.     - Registers the glib mainloop when you import this module
  3661.  
  3662.     * python/services.py: Removed (renamed to service.py)
  3663.     
  3664.     * python/service.py: Added.
  3665.     - (class Server): renamed Name
  3666.  
  3667.     * python/__init__.py: Bump ro version (0,41,0)
  3668.     -don't import the decorators or service module
  3669.     by default.  These now reside in the dbus.service namespace
  3670.  
  3671.     * python/_dbus.py (Bus::__init__): Add code run the main loop 
  3672.     setup function on creation 
  3673.  
  3674.     * python/examples/example-service.py,
  3675.     python/examples/example-signal-emitter.py: update examples
  3676.  
  3677.     * python/examples/gconf-proxy-service.py,
  3678.     python/examples/gconf-proxy-service2.py: TODO fix these up
  3679.  
  3680.     * doc/TODO: Addition
  3681.     - Added a Python Bindings 1.0 section
  3682.     - added "Add match on args or match on details to match rules"
  3683.  
  3684.  
  3685. 2005-07-12  Colin Walters  <walters@verbum.org>
  3686.  
  3687.     * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
  3688.     (statemachine-glue.h): 
  3689.     * glib/examples/Makefile.am (example-service-glue.h) 
  3690.     (example-signal-emitter-glue.h): 
  3691.     * glib/Makefile.am (dbus-glib-error-switch.h): 
  3692.     Add libtool --mode=execute so we use the built library instead
  3693.     of any installed one.
  3694.  
  3695. 2005-07-11  Colin Walters  <walters@verbum.org>
  3696.  
  3697.     * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
  3698.     (dbus_g_value_types_init): Remove assertion.
  3699.     (dbus_g_value_get_g_type, dbus_g_value_open)
  3700.     (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
  3701.     (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
  3702.     functions related to DBusGValue.  Now we marshal/demarshal
  3703.     structures as GValueArray.
  3704.     (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
  3705.     structures.
  3706.     (signature_iter_to_g_type_array): Don't call
  3707.     signature_iter_to_g_type_struct.
  3708.     (signature_iter_to_g_type_struct): Delete.
  3709.     (dbus_gvalue_to_signature): Delete.
  3710.     (dbus_gvalue_to_signature): New function with same name as other
  3711.     one; we can convert structures to signatures.
  3712.     (demarshal_valuearray): New function.
  3713.     (get_type_demarshaller): Use it.
  3714.     (demarshal_recurse): Delete.
  3715.     (marshal_proxy): New function.
  3716.     (marshal_map): Warn if we can't determine signature from type.
  3717.     (marshal_collection_ptrarray): Ditto.
  3718.     (marshal_collection_array): Ditto.
  3719.     (get_type_marshaller): Use marshal_valuearray.
  3720.     (marshal_recurse): Delete.
  3721.     (_dbus_gvalue_test): Add some tests.
  3722.  
  3723.     * dbus/dbus-glib.h (struct _DBusGValueIterator): 
  3724.     (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
  3725.     (dbus_g_value_open, dbus_g_value_iterator_get_value)
  3726.     (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
  3727.     (dbus_g_value_free): Remove prototypes.
  3728.  
  3729.     * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
  3730.     G_TYPE_VALUE_ARRAY.
  3731.  
  3732.     * glib/examples/example-service.c:
  3733.     * glib/examples/example-client.c: Implement GetTuple.
  3734.  
  3735.     * test/glib/test-dbus-glib.c:
  3736.     * test/glib/test-service-glib.c:
  3737.     * test/glib/test-service-glib.xml: Add structure tests.
  3738.  
  3739. 2005-07-10  Colin Walters  <walters@verbum.org>
  3740.  
  3741.     * doc/TODO: Knock off some GLib items with this patch.
  3742.  
  3743.     * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
  3744.     (_dbus_gvalue_signals_error): New functions.
  3745.  
  3746.     * glib/dbus-gvalue-utils.h: Prototype them.
  3747.  
  3748.     * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
  3749.     and change to not output const/retval flags for input args.  All
  3750.     callers updated.
  3751.     (invoke_object_method): Refactor to handle return values.  Add
  3752.     some more comments in various places.  Remove debug g_print.
  3753.  
  3754.     * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
  3755.  
  3756.     * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
  3757.     Handle G_TYPE_NONE.
  3758.     (compute_gsignature): New function; refactored from code from
  3759.     compute_marshaller and compute_marshaller_name.  Enhance to
  3760.     handle return values and async ops more cleanly.  Update for
  3761.     async ops returning NONE instead of BOOLEAN.
  3762.     (compute_marshaller, compute_marshaller_name): Call compute_gsignature
  3763.     and output appropriate string.
  3764.     (generate_glue): Handle return value annotation.  Also don't dump
  3765.     constness flag for input arguments.
  3766.  
  3767.     * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
  3768.     files shared between installed library and utilities.
  3769.     (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
  3770.     (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
  3771.     binding tool can access gtype utility functions.
  3772.  
  3773.     * test/glib/test-service-glib.c: 
  3774.     * test/glib/test-service-glib.xml: 
  3775.     * test/glib/test-dbus-glib.c: Add some tests for return values.
  3776.  
  3777. 2005-07-09  Colin Walters  <walters@verbum.org>
  3778.  
  3779.     * glib/dbus-gparser.c (parse_annotation): Add annotations to
  3780.     argument if available, not method.
  3781.  
  3782.     * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
  3783.     (invoke_object_method): First, remove some redundant
  3784.     GValues (object_value, error_value) in favor of working on
  3785.     array directly.  Second, rework constness to be less buggy.
  3786.     Now we iterate directly over the argument metadata instead
  3787.     of parallel iterating over output signature and metadata.
  3788.  
  3789.     * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
  3790.  
  3791.     * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
  3792.     annotation on input args.
  3793.     
  3794. 2005-07-09  Colin Walters  <walters@verbum.org>
  3795.  
  3796.     * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
  3797.     Define.
  3798.  
  3799.     * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
  3800.     annotation.
  3801.  
  3802.     * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
  3803.     (method_dir_signature_from_object_info): Handle arg_iterate change.
  3804.     (write_interface): Ditto.
  3805.     (lookup_object_info): Don't barf if format_version is > 0.
  3806.     (invoke_object_method): Handle arg constness.
  3807.  
  3808.     * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
  3809.     (arg_info_new): Create.
  3810.     (arg_info_unref): Destroy.
  3811.     (arg_info_get_annotations, arg_info_get_annotation) 
  3812.     (arg_info_add_annotation): New functions.
  3813.  
  3814.     * glib/dbus-gidl.h: Prototype them.
  3815.  
  3816.     * glib/dbus-gparser.c (parse_annotation): Allow annotations in
  3817.     args, disallow them in properties.
  3818.     (parse_annotation): Handle arg annotations.
  3819.  
  3820.     * test/glib/test-service-glib.xml: 
  3821.     * test/glib/test-service-glib.c: Update to make some methods
  3822.     const.
  3823.  
  3824. 2005-07-08  Colin Walters  <walters@verbum.org>
  3825.  
  3826.     * test/glib/test-service-glib.xml: 
  3827.     * test/glib/test-service-glib.c:
  3828.     * test/glib/test-dbus-glib.c: Test a{sv}.
  3829.  
  3830.     * glib/examples/statemachine/statemachine.c:
  3831.     * glib/examples/statemachine/statemachine-server.c:
  3832.     * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
  3833.     add progress bar, etc.
  3834.  
  3835.     * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
  3836.     needed anymore due to generic array/map marshalling.
  3837.     (dbus_g_value_types_init): Don't register basic arrays or the
  3838.     string/string hash.
  3839.     (dbus_gtype_from_signature_iter): Don't try to recurse into
  3840.     variants.
  3841.     (dbus_gtype_to_signature): Check collection/map before type
  3842.     metadata.
  3843.     (demarshal_garray_basic): Renamed to demarshal_collection_array.
  3844.     (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
  3845.     generic map creation/append functions instead of hash table
  3846.     specifically.
  3847.     (get_type_demarshaller): Handle maps.
  3848.     (demarshal_collection): Dispatch on collection type to either
  3849.     demarshal_collection_ptrarray or demarshal_collection_array.
  3850.     (get_type_marshaller): Handle maps.
  3851.     (marshal_collection): Dispatch collection type to either
  3852.     marshal_collection_ptrarray or marshal_collection_array.
  3853.     (_dbus_gvalue_test): New test.
  3854.  
  3855.     * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
  3856.     (hash_free_from_gtype): Use it to free GValues.
  3857.     (hashtable_append): New function.
  3858.     (ptrarray_append): Fix prototype.
  3859.     (slist_append): Ditto.
  3860.     (_dbus_gvalue_utils_test): Extend tests.
  3861.  
  3862.     * glib/dbus-gtype-specialized.c
  3863.     (dbus_g_type_specialized_init_append): Renamed from
  3864.     dbus_g_type_specialized_collection_init_append.  Remove const from
  3865.     value, since we steal it.
  3866.     (dbus_g_type_specialized_map_append): New function.
  3867.  
  3868.     * glib/dbus-gtype-specialized.h: Update prototypes.
  3869.     Add DBusGTypeSpecializedMapAppendFunc.
  3870.  
  3871.     * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
  3872.     _dbus_gvalue_test.
  3873.     
  3874.     * glib/dbus-gtest.h: Prototype it.
  3875.  
  3876. 2005-07-08  Ross Burton  <ross@openedhand.com>
  3877.  
  3878.     * dbus/dbus-glib.h:
  3879.     Add DBysGAsyncData for the async bindings.
  3880.  
  3881.     * glib/dbus-binding-tool-glib.c:
  3882.     Re-enable the async bindings.
  3883.  
  3884.     * test/glib/test-dbus-glib.c:
  3885.     Add a test for the generated async bindings.
  3886.  
  3887. 2005-07-08  Colin Walters  <walters@verbum.org>
  3888.  
  3889.     * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
  3890.     connection concept.
  3891.     
  3892. 2005-07-08  Colin Walters  <walters@verbum.org>
  3893.     
  3894.     * tools/Makefile.am: Kill of print-introspect in favor of using
  3895.     dbus-send --print-reply=literal.
  3896.  
  3897.     * test/glib/test-service-glib.xml: 
  3898.     * test/glib/test-service-glib.c (my_object_get_objs): New test
  3899.     for "ao".
  3900.  
  3901.     * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
  3902.     (main): Test GetObjs.
  3903.  
  3904.     * glib/examples/statemachine/Makefile.am:
  3905.     * glib/examples/statemachine/sm-marshal.list:
  3906.     * glib/examples/statemachine/statemachine-client.c:
  3907.     * glib/examples/statemachine/statemachine-server.c:
  3908.     * glib/examples/statemachine/statemachine-server.xml:
  3909.     * glib/examples/statemachine/statemachine.c:
  3910.     * glib/examples/statemachine/statemachine.h:
  3911.     * glib/examples/statemachine/statemachine.xml:
  3912.  
  3913.     New example.
  3914.  
  3915.     * glib/examples/example-service.c (main): Move invocation
  3916.     of dbus_g_object_type_install_info earlier, to emphasize it
  3917.     should only be done once.
  3918.  
  3919.     * glib/examples/example-signal-emitter.c (main): Ditto.
  3920.  
  3921.     * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
  3922.  
  3923.     * glib/dbus-gvalue.h (dbus_gtype_to_signature)
  3924.     (dbus_gvalue_marshal): Update prototypes.
  3925.  
  3926.     * glib/dbus-gvalue.c: Update all marshalling functions to take
  3927.     const GValue instead of GValue.
  3928.     (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
  3929.     types.
  3930.     (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
  3931.     change.
  3932.     (dbus_gtype_to_signature): Handle generic collecitons and maps.
  3933.     Return a newly-allocated string.
  3934.     (demarshal_proxy, demarshal_object_path, demarshal_object)
  3935.     (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
  3936.     we get the wrong types from message.
  3937.     (get_type_demarshaller): New function, extracted from
  3938.     dbus_gvalue_demarshal.
  3939.     (demarshal_collection): New function, demarshals generic
  3940.     collection.
  3941.     (dbus_gvalue_demarshal): Just invoke result of
  3942.     get_type_demarshaller.  Throw error if we don't have one.
  3943.     (marshal_garray_basic): Abort on OOM.
  3944.     (get_type_marshaller): New function, extracted from
  3945.     dbus_gvalue_marshal.
  3946.     (collection_marshal_iterator, marshal_collection): New functions;
  3947.     implements generic marshalling for an iteratable specialized
  3948.     collection.
  3949.     (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
  3950.  
  3951.     * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
  3952.     G_TYPE_STRING.
  3953.     (ptrarray_value_from_gvalue): Ditto.
  3954.     (ptrarray_append, ptrarray_free): New functions.
  3955.     (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
  3956.     (slist_append, slist_end_append, slist_free): New functions.
  3957.     (dbus_g_type_specialized_builtins_init): Add append fuctions
  3958.     for GPtrArray and GSList.  Register GSList.
  3959.     (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
  3960.  
  3961.     * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
  3962.     New.
  3963.     (dbus_g_type_specialized_collection_init_append)
  3964.     (dbus_g_type_specialized_collection_append)
  3965.     (dbus_g_type_specialized_collection_end_append): Prototype.
  3966.     (DBusGTypeSpecializedCollectionVtable): Add append_func and
  3967.     end_append_func.
  3968.  
  3969.     * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
  3970.     (dbus_g_type_specialized_collection_append) 
  3971.     (dbus_g_type_specialized_collection_end_append): New functions.
  3972.     (dbus_g_type_map_value_iterate): Take const GValue.
  3973.     (dbus_g_type_collection_value_iterate): Ditto.
  3974.  
  3975.     * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
  3976.     _dbus_gvalue_utils_test.
  3977.     
  3978.     * glib/dbus-gtest.h: Prototype it.
  3979.  
  3980.     * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
  3981.     using uninitialized owner_list.
  3982.     (dbus_g_proxy_begin_call_internal): Move return_if_fail to
  3983.     public API.
  3984.     (dbus_g_proxy_end_call_internal): Update to use error set
  3985.     from dbus_gvalue_demarshal instead of setting it here.
  3986.     (dbus_g_proxy_begin_call): Move return_if_fail here.
  3987.  
  3988.     * glib/dbus-gobject.c (write_interface): Update for
  3989.     dbus_gtype_to_signature returning new string.
  3990.  
  3991.     * configure.in: Add glib/examples/statemachine.
  3992.  
  3993. 2005-07-08  Joe Shaw  <joeshaw@novell.com>
  3994.  
  3995.     * configure.in: Add a configure option, --with-console-auth-dir
  3996.     
  3997.     * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
  3998.     new setting.  Patch from Kay Sievers.
  3999.  
  4000. 2005-07-06  Colin Walters  <walters@verbum.org>
  4001.  
  4002.     * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
  4003.     (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
  4004.     (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
  4005.     (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
  4006.     Delete in favor of dbus_g_proxy_begin_call and
  4007.     dbus_g_proxy_cancel_call.
  4008.     (DBusGProxyCall, DBusGProxyCallNotify): New.
  4009.     (dbus_g_proxy_begin_call): Change prototype to take callback, user
  4010.     data, and destroy function.  This replaces
  4011.     dbus_g_pending_call_set_notify.
  4012.     (dbus_g_proxy_cancel_call): Prototype.
  4013.     (DBusGAsyncData): Delete, shouldn't be needed anymore.
  4014.  
  4015.     * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
  4016.     pending_calls map.
  4017.     (struct _DBusGProxyManager): Add bus_proxy member, which is an
  4018.     internal proxy for calls to the bus. Remove
  4019.     pending_nameowner_calls, now the internal proxy keeps track.
  4020.     (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
  4021.     pending_nameowner_calls.
  4022.     (got_name_owner_cb): Update prototype, and use
  4023.     dbus_g_proxy_end_call.
  4024.     (got_name_owner_cb): Remove reference to pending_nameowner_calls.
  4025.     (dbus_g_proxy_manager_register): Delete directly libdbus code in
  4026.     favor of using internal proxy.
  4027.     (dbus_g_proxy_manager_unregister): Update to use
  4028.     dbus_g_proxy_cancel_call for any pending GetNameOwner call.
  4029.     (dbus_g_proxy_init): Initialize pending calls map.
  4030.     (dbus_g_proxy_constructor): New.
  4031.     (dbus_g_proxy_class_init): Add get/set property functions,
  4032.     constructor, and add NAME, PATH, and INTERFACE properties.
  4033.     (cancel_pending_call): New function.
  4034.     (dbus_g_proxy_dispose): Iterate over any outstanding calls and
  4035.     cancel them.
  4036.     (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
  4037.     (GPendingNotifyClosure): New structure.
  4038.     (d_pending_call_notify, d_pending_call_free): Moved here from
  4039.     dbus-glib.c.
  4040.     (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
  4041.     ordering.
  4042.     (manager_begin_bus_call): New internal function for talking to
  4043.     internal bus proxy.
  4044.     (dbus_g_proxy_new): Construct object using GObjet properties.
  4045.     (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
  4046.     Create closure of same, and insert call into map of pending calls.
  4047.     (dbus_g_proxy_end_call_internal): Take call id instead of pending
  4048.     call.  Look up pending call in current set.  Remove it when we've
  4049.     completed.
  4050.     (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
  4051.     (dbus_g_proxy_begin_call): Change API to take callback, user data,
  4052.     and destroy function directly.
  4053.     (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
  4054.     (dbus_g_proxy_call): Invoke with NULL callback.
  4055.     (dbus_g_proxy_cancel_call): New function, replaces
  4056.     dbus_g_pending_call_cancel.
  4057.  
  4058.     * glib/dbus-gparser.c (validate_signature): Fix call to
  4059.     dbus_set_g_error.
  4060.  
  4061.     * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
  4062.     New quark for attaching metadata to GType.
  4063.     (info_hash): Delete.
  4064.     (lookup_object_info): Look up using quark.
  4065.     (dbus_g_object_type_install_info): Check that a type is classed,
  4066.     not that it's an object.  Also just install type data using quark
  4067.     instead of using global hash.
  4068.  
  4069.     * glib/dbus-glib.c (dbus_g_pending_call_ref) 
  4070.     (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
  4071.     (GPendingNotifyClosure): Delete.
  4072.     (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
  4073.     (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
  4074.  
  4075.     * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
  4076.     client method generation until we can fix it...
  4077.     
  4078.     * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
  4079.     (load_from_service_thread_func): Ditto.
  4080.  
  4081.     * tools/dbus-names-model.c (struct NamesModel): Hold
  4082.     DBusGProxyCall.
  4083.     (have_names_notify): Update prototype, use
  4084.     dbus_g_proxy_cancel_call.
  4085.     (names_model_reload): Update for new dbus_g_proxy_begin_call API.
  4086.  
  4087.     * tools/dbus-monitor.c (filter_func): Update for print_message
  4088.     API change.
  4089.  
  4090.     * test/glib/test-dbus-glib.c: Add more tests for async
  4091.     invocations.  Update many begin_call/end_call pairs to just use
  4092.     dbus_g_proxy_call.
  4093.  
  4094.     * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
  4095.     allows us to dump print-introspect.c.
  4096.  
  4097.     * tools/dbus-print-message.h (print_message): Add literal argument
  4098.     to print_message which is intended to allow printing arguments without
  4099.     metadata like "string=".
  4100.  
  4101.     * tools/dbus-print-message.c (print_iter): Add literal argument.
  4102.     (print_message): Allow printing string messages literally.
  4103.  
  4104. 2005-07-05  Colin Walters  <walters@verbum.org>
  4105.  
  4106.     * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
  4107.     Remove value refcount leak, original patch from Jorn Baayen
  4108.     <jorn@openedhand.com>.  Also remove useless extra value in favor
  4109.     of prepending to value array directly.
  4110.  
  4111. 2005-07-02  Colin Walters  <walters@verbum.org>
  4112.  
  4113.     * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
  4114.  
  4115. 2005-07-01  Colin Walters  <walters@verbum.org>
  4116.  
  4117.     Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
  4118.     
  4119.     * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
  4120.     (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
  4121.     G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
  4122.     and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
  4123.  
  4124. 2005-06-30  Colin Walters  <walters@verbum.org>
  4125.  
  4126.     * test/glib/test-dbus-glib.c:
  4127.     * test/glib/test-service-glib.c:
  4128.     * test/glib/test-service-glib.xml: Update tests for new error
  4129.     setting bits, also add async tests (patch from Ross Burton).
  4130.  
  4131.     * test/glib/Makefile.am (test_service_glib_LDADD): Add
  4132.     DBUS_GLIB_THREADS_LIBS.
  4133.  
  4134.     * glib/dbus-gproxy.c (get_name_owner)
  4135.     (dbus_g_pending_call_end_valist): Ditto.
  4136.  
  4137.     * glib/dbus-gobject.c (error_metadata): New mapping from GError
  4138.     domain (GQuark) to DBusGErrorInfo.  
  4139.     (gerror_domaincode_to_dbus_error_name): Attempt to look up error
  4140.     quark in error_metadata.  Take message interface as default
  4141.     error message interface.
  4142.     (gerror_to_dbus_error_message): Pass message interface.
  4143.     (dbus_set_g_error): Resurrected.
  4144.     (dbus_g_error_info_free): New function.
  4145.     (dbus_g_object_type_install_info): Use g_type_class_ref instead
  4146.     of _peek to actually create the object class if it hasn't been
  4147.     created yet.
  4148.     (dbus_g_error_domain_register): New function.
  4149.  
  4150.     * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
  4151.  
  4152.     * glib/dbus-gparser.c (validate_signature): Ditto.
  4153.  
  4154.     * dbus/dbus-glib.h (dbus_g_error_set): Delete.
  4155.     (dbus_g_error_domain_register): Prototype.
  4156.  
  4157.     * glib/dbus-glib.c (dbus_g_error_set): Delete.
  4158.     Update tests.
  4159.  
  4160. 2005-06-29  Colin Walters  <walters@verbum.org>
  4161.  
  4162.     * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
  4163.     DBUS_TYPE_G_OBJECT_PATH.
  4164.  
  4165.     * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
  4166.     for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
  4167.     be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
  4168.     (dbus_g_object_path_get_g_type): New function.
  4169.     (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
  4170.     to DBUS_TYPE_G_OBJECT_PATH by default.
  4171.     (demarshal_proxy): Remove unused name variable.
  4172.     (demarshal_object_path, marshal_object_path): New functions.
  4173.     (demarshal_proxy_array, marshal_proxy_array): Delete.
  4174.     
  4175.     * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
  4176.     DBUS_TYPE_G_OBJECT_PATH to char *.
  4177.     (dbus_g_type_get_lookup_function): Map builtin
  4178.     DBUS_TYPE_G_OBJECT_PATH.
  4179.  
  4180.     * test/glib/test-dbus-glib.c
  4181.     * test/glib/test-service-glib.c (my_object_objpath): 
  4182.     Adapt tests to new object path marshalling.
  4183.  
  4184. 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
  4185.  
  4186.     * configure.in: force check for Python >= 2.4
  4187.  
  4188. 2005-06-29  Colin Walters  <walters@verbum.org>
  4189.     
  4190.     Patch from Ross Burton <ross@openedhand.com>
  4191.     
  4192.     * glib/dbus-gobject.c (invoke_object_method): Unset object
  4193.     value in all cases, not only in async case.
  4194.  
  4195. 2005-06-29  Colin Walters  <walters@verbum.org>
  4196.  
  4197.     * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
  4198.     name_call for keeping track of any outgoing GetNameOwner call.
  4199.     Also add for_owner and associated.
  4200.     (struct _DBusGProxyManager): Add owner_names, which is hash table
  4201.     that maps a base name to a list of names it owns (that we're
  4202.     interested in).  Add pending_nameowner_calls which is a list of
  4203.     all outstanding GetNameOwner; avoids us having to iterate over
  4204.     every proxy.  Add unassociated_proxies which keeps track of name
  4205.     proxies with no associated name owner.
  4206.     (dbus_g_proxy_manager_unref): Destroy owner_names.
  4207.     (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
  4208.     name refcounts.
  4209.     (find_name_in_info, name_owner_foreach)
  4210.     (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
  4211.     (dbus_g_proxy_manager_monitor_name_owner)
  4212.     (dbus_g_proxy_manager_unmonitor_name_owner)
  4213.     (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
  4214.     New functions; they manipulate the owner_names mapping.
  4215.     (got_name_owner_cb): New function.
  4216.     (get_name_owner): New function, extracted from
  4217.     dbus_g_proxy_new_for_name_owner.
  4218.     (dbus_g_proxy_manager_register): For now we need to keep track of
  4219.     all NameOwnerChanged.  Also if the proxy is for a name, if we
  4220.     don't already know the name owner, queue a new GetNameOwner
  4221.     request and add it to our list of unassociated proxies.  Otherwise
  4222.     inc the refcount.
  4223.     (dbus_g_proxy_manager_unregister): If this proxy is for a name,
  4224.     cancel any pending GetNameOwner call, etc.
  4225.     (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
  4226.     the owner_names mapping to look up the current names for the
  4227.     signal source, and dispatch to any proxies for that name.
  4228.     (dbus_g_proxy_new): Initialize new members.
  4229.     (dbus_g_proxy_new_for_name): Delete unused proxy variable.
  4230.     (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
  4231.     (dbus_g_pending_call_end_valist): New function, extracted from
  4232.     dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
  4233.     but want to use the GLib infrastructure.  Also note how many
  4234.     arguments in reply were over.
  4235.     (dbus_g_pending_call_end): New function, just call
  4236.     dbus_g_pending_call_end_valist.
  4237.     (dbus_g_proxy_end_call_internal): Just call
  4238.     dbus_g_pending_call_end_valist.
  4239.  
  4240.     * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
  4241.     of builtin marshaller for STRING_STRING_STRING.
  4242.  
  4243.     * test/glib/test-dbus-glib.c: 
  4244.     * test/glib/test-service-glib.c:
  4245.     * test/glib/test-service-glib.xml:
  4246.     Extend tests to cover name proxies, destruction of owner proxies,
  4247.     etc.
  4248.     
  4249.     * glib/examples/example-signal-recipient.c
  4250.     (dbus_g_proxy_new_for_name_owner): Create a name proxy.
  4251.     
  4252.     * tools/dbus-send.c (main): Print D-BUS error name in addition
  4253.     to message.
  4254.  
  4255. 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
  4256.  
  4257.     * python/dbus_bindings.pyx.in (cunregister_function_handler,
  4258.     cmessage_function_handler): Patch from 
  4259.     Anthony Baxter <anthony@interlink.com.au> fixes threading problems
  4260.     by using the Py_GILState_Ensure/Release to synchronize with the
  4261.     python runtime.
  4262.     
  4263. 2005-06-28  Ray Strode  <rstrode@redhat.com>
  4264.  
  4265.     *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
  4266.     babysitter helper process on last unref, bug #2813.
  4267.  
  4268. 2005-06-27  Colin Walters  <walters@verbum.org>
  4269.  
  4270.     * test/glib/test-dbus-glib.c: 
  4271.     * test/glib/test-service-glib.c:
  4272.     * test/glib/test-service-glib.xml:
  4273.     Test hash table signal emitting.
  4274.  
  4275.     * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
  4276.     types to their fundamental basis types, since this is what
  4277.     marshallers operate on.  Also add an entry for VOID__BOXED.
  4278.     (dbus_g_object_register_marshaller_array): Convert to fundamental.
  4279.  
  4280. 2005-06-26  Havoc Pennington  <hp@redhat.com>
  4281.  
  4282.     * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
  4283.     from Don Park
  4284.  
  4285. 2005-06-26  Colin Walters  <walters@verbum.org>
  4286.  
  4287.     * glib/dbus-glib.c (dbus_set_g_error): Delete.
  4288.     (dbus_g_error_set): New public function from its ashes; used by
  4289.     both service-side method implementation and GLib bindings
  4290.     internals.
  4291.     (dbus_g_error_has_name, dbus_g_error_get_name): New function.
  4292.     (_dbus_glib_test): Add some tests.
  4293.  
  4294.     * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
  4295.  
  4296.     * test/glib/test-service-glib.c (my_object_throw_error): Use
  4297.     dbus_g_error_set.
  4298.  
  4299.     * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
  4300.     errors thrown by dbus_g_error_set.
  4301.  
  4302.     * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
  4303.  
  4304.     * glib/dbus-gparser.c (validate_signature): Ditto.
  4305.  
  4306.     * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
  4307.     (dbus_g_proxy_end_call_internal): Ditto.
  4308.  
  4309.     * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
  4310.     converts DBUS_ERROR_x to DBUS_GERROR_x.
  4311.     (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
  4312.  
  4313.     * doc/TODO: Remove error TODO.
  4314.  
  4315.     * doc/dbus-tutorial.xml: Update with documentation about error
  4316.     handling.
  4317.  
  4318.     * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
  4319.     sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
  4320.     GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
  4321.  
  4322. 2005-06-22  Colin Walters  <walters@verbum.org>
  4323.     
  4324.     Patch from Ross Burton <ross@openedhand.com>
  4325.  
  4326.     * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
  4327.  
  4328. 2005-06-20  Colin Walters  <walters@verbum.org>
  4329.  
  4330.     * configure.in: Add glib/examples.
  4331.  
  4332.     * glib/Makefile.am: Add examples/
  4333.  
  4334.     * glib/examples/.cvsignore
  4335.     * glib/examples/Makefile.am
  4336.     * glib/examples/example-client.c
  4337.     * glib/examples/example-service.c
  4338.     * glib/examples/example-service.xml
  4339.     * glib/examples/example-signal-emitter.c
  4340.     * glib/examples/example-signal-emitter.xml
  4341.     * glib/examples/example-signal-recipient.c:
  4342.     New files; GLib binding examples, ported from
  4343.     python/examples.
  4344.  
  4345. 2005-06-20  Colin Walters  <walters@verbum.org>
  4346.  
  4347.     * dbus/dbus-glib.h: 
  4348.     * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
  4349.     dbus_g_proxy_call.
  4350.  
  4351.     * glib/dbus-binding-tool-glib.c: 
  4352.     * doc/dbus-tutorial.xml: 
  4353.     * test/glib/test-dbus-glib.c: Update for rename.
  4354.     
  4355. 2005-06-20  Colin Walters  <walters@verbum.org>
  4356.  
  4357.     Patch suggested by Ross Burton <ross@openedhand.com>
  4358.  
  4359.     * glib/dbus-gobject.c (export_signals): Free signal name.
  4360.     (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
  4361.     memory leak.  Add a bit of documentation.
  4362.     (dbus_g_method_return_error): Free context, and note we do
  4363.     so.
  4364.  
  4365. 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
  4366.  
  4367.     * dbus/dbus-glib.h:
  4368.     * glib/dbus-gobject.c:
  4369.     * glib/dbus-gproxy.c:
  4370.     * glib/dbus-gvalue.c: Predeclare structs as 
  4371.     typedef struct _Something Something instead of 
  4372.       typedef struct Something Something, so we can 
  4373.     redeclare the prototypes. Other GNOME libraries 
  4374.     do this already.
  4375.  
  4376. 2005-06-17  Colin Walters  <walters@verbum.org>
  4377.  
  4378.     * tools/dbus-names-model.c (have_names_notify): Fix call
  4379.     to dbus_g_proxy_end_call.
  4380.     
  4381. 2005-06-17  Colin Walters  <walters@verbum.org>
  4382.  
  4383.     * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
  4384.     spew warnings if we get malformed remote signals.
  4385.  
  4386.     * glib/dbus-gobject.c (propsig_iterate): New function.
  4387.     (lookup_object_info): New function, extracted from
  4388.     lookup_object_and_method.
  4389.     (introspect_properties, introspect_signals): Delete; these
  4390.     are merged into write_interface.
  4391.     (write_interface): Write out signals and properties here;
  4392.     dump the org.gtk.object stuff and use the interface given
  4393.     in the introspection data blob.  Also fix up property XML.
  4394.     (lookup_values): New function.
  4395.     (introspect_interfaces): Gather a mapping from interface to a
  4396.     list of its methods, signals, and properties, then write out
  4397.     each interface.
  4398.     (lookup_object_and_method): Use lookup_object_info.
  4399.     (struct DBusGSignalClosure): Add interface.
  4400.     (dbus_g_signal_closure_new): Add interface. Don't dup signame;
  4401.     we can just use the constant data.
  4402.     (dbus_g_signal_closure_finalize): Don't free signal name.
  4403.     (signal_emitter_marshaller): Use interface from signal closure.
  4404.     (export_signals): Only export signals mentioned in introspection
  4405.     blob.
  4406.     (dbus_g_connection_register_g_object): Warn if we have no
  4407.     introspection data for an object.
  4408.     (funcsig_equal): Remove unused variable.
  4409.     (dbus_g_object_register_marshaller): Take varargs instead of
  4410.     list.
  4411.     (dbus_g_object_register_marshaller_array): New function,
  4412.     extracted from old dbus_g_object_register_marshaller.
  4413.  
  4414.     * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
  4415.     signals and property data.
  4416.     (write_quoted_string): New function, extracted from generate_glue.
  4417.     (generate_glue): Write signals and properties to introspection
  4418.     blob.
  4419.  
  4420.     * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
  4421.     exported_signals and exported_properties.
  4422.     (dbus_g_object_register_marshaller): Update prototype.
  4423.     (dbus_g_object_register_marshaller_array): Prototype.
  4424.     
  4425.     * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
  4426.  
  4427.     * test/glib/test-service-glib.c: Add new test signals and method
  4428.     to emit them.
  4429.  
  4430.     * test/glib/test-service-glib.xml: Add some test signals.
  4431.  
  4432.     * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
  4433.     and my-object-marshal.h
  4434.     (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
  4435.     my-object-marshal.c.
  4436.     (my-object-marshal.c, my-object-marshal.h): Implement.
  4437.  
  4438.     * test/glib/.cvsignore: Update.
  4439.  
  4440.     * doc/TODO: Remove two GLib TODO items fixed by this
  4441.     patch.
  4442.  
  4443. 2005-06-16  Colin Walters  <walters@verbum.org>
  4444.  
  4445.     * doc/TODO: Update for GLib bindings.
  4446.     
  4447. 2005-06-16  Colin Walters  <walters@verbum.org>
  4448.  
  4449.     * glib/dbus-binding-tool-glib.c:
  4450.     * glib/dbus-gobject.c:
  4451.     * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
  4452.     from Ross Burton, for his GLib bindings work.
  4453.  
  4454. 2005-06-16  Colin Walters  <walters@verbum.org>
  4455.  
  4456.     * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
  4457.     to iterate instead of walking to G_TYPE_INVALID.
  4458.  
  4459.     Patch based on a patch from Ryan Gammon.
  4460.  
  4461. 2005-06-16  Colin Walters  <walters@verbum.org>
  4462.  
  4463.     * bus/bus.c (bus_context_new): Set parser to NULL
  4464.     after we unref it (Patch from Chris Boscolo, #2174).
  4465.     
  4466. 2005-06-16  Colin Walters  <walters@verbum.org>
  4467.  
  4468.     * python/dbus_bindings.pyx.in: Import size_t,
  4469.     __int64_t, __uint64_t, and __signed.
  4470.  
  4471.     * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
  4472.     Define cmsg struct, output it.
  4473.     (_dbus_read_credentials_unix_socket):
  4474.     Use cmsg struct.
  4475.     
  4476.     Patch from Joe Markus Clarke for FreeBSD support.
  4477.     
  4478. 2005-06-16  Colin Walters  <walters@verbum.org>
  4479.  
  4480.     * tools/dbus-send.c (append_array): Use strtok.
  4481.     (append_dict): New function.
  4482.     (type_from_name): New function, extracted from main.
  4483.     (main): Handle sending dicts.
  4484.  
  4485.     * tools/dbus-print-message.c (print_iter): Print dict
  4486.     entries.
  4487.     
  4488. 2005-06-16  Colin Walters  <walters@verbum.org>
  4489.  
  4490.     * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
  4491.     values as the empty string (#2948).
  4492.     
  4493. 2005-06-16  Colin Walters  <walters@verbum.org>
  4494.  
  4495.     * dbus/Makefile.am:
  4496.     * mono/doc/Makefile.am:
  4497.     * test/glib/Makefile.am:
  4498.  
  4499.     Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
  4500.  
  4501. 2005-06-16  Colin Walters  <walters@verbum.org>
  4502.  
  4503.     * dbus/dbus-marshal-header.c (_dbus_header_load): Set
  4504.     header byte order from expected byte order (Patch from Chris Wilson, #3475).
  4505.  
  4506.     * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
  4507.     Increment pointer after swapping fixed array.  Add assertion
  4508.     for array length.
  4509.         
  4510. 2005-06-15  Colin Walters  <walters@verbum.org>
  4511.  
  4512.     * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
  4513.     Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
  4514.     
  4515. 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
  4516.  
  4517.     * NEWS: Update to 0.34
  4518.  
  4519. 2005-06-15  David Zeuthen  <davidz@redhat.com>
  4520.  
  4521.     * configure.in (LT_CURRENT): Revert back to 1 as the library
  4522.     hasn't changed and we've certainly not committed to protocol
  4523.     stability yet.  All this does is to break ABI. See commit note
  4524.     from hp@redhat.com 2005-05-05 for details.
  4525.     
  4526. 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
  4527.  
  4528.     * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
  4529.     (_dbus_connection_run_builtin_filters): New method
  4530.     (dbus_connection_dispatch): Run the builtin filters which in turn
  4531.     runs the peer filter which handles Ping messages.
  4532.  
  4533.     * doc/TODO: 
  4534.      - Ping isn't handled: This patch fixes it
  4535.      
  4536.      - Add a test case for the Ping message: added TODO item
  4537.  
  4538. 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
  4539.  
  4540.     * dbus/dbus-message.c:
  4541.     (dbus_message_has_path): New method
  4542.     (dbus_message_has_interface): New method
  4543.     (dbus_message_has_member): New method
  4544.  
  4545.     * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
  4546.     New method
  4547.  
  4548.     * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
  4549.     the keyring directory is private to the user
  4550.  
  4551.     * doc/TODO:
  4552.      - The convenience functions in dbus-bus.h should perhaps have
  4553.      the signatures that they would have if they were autogenerated
  4554.      stubs. e.g. the acquire service function. We should also evaluate
  4555.      which of these functions to include, in light of the fact that
  4556.      GLib/Qt native stubs will probably also exist.: Punted
  4557.  
  4558.      - add dbus_message_has_path(), maybe has_member/interface:
  4559.      fixed in this patch
  4560.  
  4561.      - in dbus-keyring.c, enforce that the keyring dir is not
  4562.      world readable/writable: Fixed in this patch
  4563.  
  4564. 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
  4565.  
  4566.     * dbus/dbus-marshal-validate.h: Added a new validation
  4567.     error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
  4568.     out of memory errors when validating signitures
  4569.  
  4570.     * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
  4571.     in places where we previously used DBUS_VALID and a FALSE return 
  4572.     value to indicate OOM
  4573.     
  4574.     * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
  4575.     Use a stack to track the number of elements inside containers.  The 
  4576.     stack values are then used to validate that dict entries have only two
  4577.     elements within them.
  4578.     (validate_body_helper): check the reason for failure when validating
  4579.     varients
  4580.     
  4581.     * dbus/dbus-message.c (load_message): use 
  4582.     DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
  4583.     DBUS_VALID and a FALSE return value to indicate OOM
  4584.  
  4585.     * doc/TODO: remove "- validate dict entry number of fields" as this
  4586.     patch fixes it
  4587.  
  4588. 2005-06-14  David Zeuthen  <davidz@redhat.com>
  4589.  
  4590.     * bus/bus.c (process_config_every_time): Drop existing conf-dir
  4591.     watches (if applicable) and add new watches
  4592.  
  4593.     * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
  4594.     (main): Setup SIGIO signal handler if using D_NOTIFY
  4595.  
  4596.     * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
  4597.  
  4598.     * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
  4599.     (merge_included): Also merge conf_dirs list
  4600.     (bus_config_parser_unref): Clear conf_dirs list
  4601.     (include_dir): Add directory to conf_dirs list
  4602.     (bus_config_parser_get_conf_dirs): New function
  4603.  
  4604.     * bus/dir-watch.[ch]: New files
  4605.  
  4606.     * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
  4607.  
  4608.     * configure.in: Add checks for D_NOTIFY on Linux
  4609.  
  4610. 2005-06-14  Colin Walters  <walters@verbum.org>
  4611.  
  4612.     * glib/dbus-binding-tool-glib.c:
  4613.     * glib/dbus-gobject.c:
  4614.     * glib/dbus-gvalue.c: Fix indentation and brace style.
  4615.     
  4616. 2005-06-14  Ross Burton <ross@openedhand.com>.
  4617.  
  4618.     * glib/dbus-glib.h: Make DBusGMethodInvocation
  4619.     a private structure.  Rearrange prototypes a bit.
  4620.     
  4621.     * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
  4622.     documentation for first_arg_type.
  4623.     
  4624.     * glib/dbus-gobject.c: Move DBusGMethodInvocation
  4625.     here, add documentation.  Move dbus_g_method_return
  4626.     and dbus_g_method_return_error into public API
  4627.     section.
  4628.  
  4629. 2005-06-14  Colin Walters  <walters@verbum.org>
  4630.  
  4631.     * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
  4632.     Add missing return statements, noticed by Ross Burton.
  4633.     
  4634. 2005-06-13  Ross Burton <ross@openedhand.com>.
  4635.  
  4636.     * glib/dbus-gobject.c: Handle errors on message
  4637.     demarshalling by sending error message back.
  4638.     * glib/dbus-gvalue.c: Initialize return variables.
  4639.  
  4640. 2005-06-13  Colin Walters  <walters@verbum.org>
  4641.  
  4642.     * glib/Makefile.am: Fix thinko in last patch.
  4643.  
  4644. 2005-06-13  Colin Walters  <walters@verbum.org>
  4645.  
  4646.     * glib/Makefile.am: Move dbus-gtype-specialized.c
  4647.     and dbus-gtype-specialized.h into a _HEADERS variable,
  4648.     install them.
  4649.  
  4650. 2005-06-12  Colin Walters  <walters@verbum.org>
  4651.  
  4652.     Async signals and various bugfixes and testing by
  4653.     Ross Burton <ross@openedhand.com>.
  4654.  
  4655.     * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
  4656.     (dbus_gvalue_genmarshal_name_from_type)
  4657.     (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
  4658.     (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
  4659.     (dbus_g_value_types_init, dbus_gtype_from_signature)
  4660.     (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
  4661.     (dbus_gtypes_from_arg_signature): New function prototypes.
  4662.     (dbus_gvalue_demarshal): Take context and error arguments.
  4663.     (dbus_gvalue_demarshal_variant): New function.
  4664.     (dbus_gvalue_demarshal_message): New function.
  4665.     (dbus_gvalue_store): Delete.
  4666.  
  4667.     * glib/dbus-gvalue.c:
  4668.  
  4669.     File has been almost entirely rewritten; now we special-case
  4670.     more types such as DBUS_TYPE_SIGNATURE, handle arrays and
  4671.     hash tables correctly, etc.  Full support for recursive values
  4672.     is not yet complete.
  4673.  
  4674.     * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
  4675.     argument of signal to G_TYPE_POINTER since we now pass a
  4676.     structure.
  4677.     (lookup_g_marshaller): Delete in favor of
  4678.     _dbus_gobject_lookup_marshaller.
  4679.     (marshal_dbus_message_to_g_marshaller): Use
  4680.     _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
  4681.     to handle remote signal callbacks.
  4682.     (dbus_g_proxy_new_from_proxy): New function; creates a new
  4683.     DBusGProxy by copying an existing one.
  4684.     (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
  4685.     (dbus_g_proxy_get_path): New functions.
  4686.     (dbus_g_proxy_marshal_args_to_message): New function;
  4687.     factored out of existing code.
  4688.     (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
  4689.     from a varargs array.
  4690.     (dbus_g_proxy_begin_call_internal): New function.
  4691.     (dbus_g_proxy_end_call_internal): New function.
  4692.     (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
  4693.     as arguments; simply invoke dbus_g_proxy_begin_call_internal
  4694.     after collecting args into value array.
  4695.     (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
  4696.     invoke dbus_g_proxy_end_call_internal.
  4697.     (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
  4698.     end_call_internal.
  4699.     (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
  4700.     types.
  4701.     (array_free_all): New function.
  4702.     (dbus_g_proxy_add_signal): Take GTypes.
  4703.  
  4704.     * glib/dbus-gobject.h:
  4705.     (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
  4706.     (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
  4707.     Prototype.
  4708.  
  4709.     * glib/dbus-gobject.c: Add a global marshal_table hash which
  4710.     stores mappings from type signatures to marshallers.  Change lots
  4711.     of invocations of dbus_gtype_to_dbus_type to
  4712.     dbus_gtype_to_signature.
  4713.     (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
  4714.     (introspect_signals): Fix test for query.return_type.
  4715.     (set_object_property): Update invocation of dbus_gvalue_demarshal.
  4716.     (invoke_object_method): Many changes.  Handle asynchronous
  4717.     invocations.  Convert arguments with
  4718.     dbus_gvalue_demarshal_message.  Handle errors.  Use
  4719.     DBusSignatureIter instead of strlen on args. Handle all arguments
  4720.     generically.  Special-case variants.
  4721.     (dbus_g_method_return, dbus_g_method_return_error): New function.
  4722.     (DBusGSignalClosure): New structure, closes over signal
  4723.     information.
  4724.     (dbus_g_signal_closure_new): New function.
  4725.     (dbus_g_signal_closure_finalize): New function.
  4726.     (signal_emitter_marshaller): New function; is special marshaller
  4727.     which emits signals on bus.
  4728.     (export_signals): New function; introspects object signals and
  4729.     connects to them.
  4730.     (dbus_g_object_type_install_info): Take GType instead of
  4731.     GObjectClass.
  4732.     (dbus_g_connection_register_g_object): Invoke export_signals.
  4733.     (dbus_g_connection_lookup_g_object): New function.
  4734.     (DBusGFuncSignature) New structure; used for mapping type
  4735.     signatures to marshallers.
  4736.     (funcsig_hash): New function; hashes DBusGFuncSignature.
  4737.     (funcsig_equal): New function; compares DBusGFuncSignature.
  4738.     (_dbus_gobject_lookup_marshaller): New function.
  4739.     (dbus_g_object_register_marshaller): New function; used to
  4740.     register a marshaller at runtime for a particular signature.
  4741.  
  4742.     * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
  4743.  
  4744.     * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
  4745.     which notes a server method implementation should be
  4746.     asynchronous.
  4747.  
  4748.     * glib/dbus-binding-tool-glib.c
  4749.     (dbus_binding_tool_output_glib_server): Call
  4750.     dbus_g_value_types_init.
  4751.     (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
  4752.     variants specially.
  4753.     (dbus_g_type_get_lookup_function): Turn GType into an invocation
  4754.     of a lookup function.
  4755.     (write_args_for_direction): Use dbus_g_type_get_lookup_function.
  4756.     (write_untyped_out_args): New method; write output arguments.
  4757.     (write_formal_declarations_for_direction): Function for
  4758.     writing prototypes.
  4759.     (write_formal_parameters_for_direction): Function for
  4760.     writing implementations.
  4761.     (write_typed_args_for_direction): Function for writing
  4762.     arguments prefixed with GTypes.
  4763.     (write_async_method_client): Write out async version
  4764.     of method.
  4765.  
  4766.     * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
  4767.     (dbus_g_type_get_marshal_name): Move mapping from GType
  4768.     to marshal name into here.
  4769.     (dbus_g_type_get_c_name): Move into here.
  4770.     (compute_marshaller): Convert signature to type with
  4771.     dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
  4772.     (compute_marshaller_name): Ditto.
  4773.     (compute_marshaller): Handle async signal annotations.
  4774.     (gather_marshallers): Return if we don't have a known
  4775.     prefix.
  4776.     (generate_glue): Collect introspection blob here, and
  4777.     write all of the blob at the end.  This allows an object
  4778.     with multiple interfaces to work.
  4779.     Mark async methods in introspection blob.
  4780.  
  4781.     * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
  4782.     dbus-gtype-specialized.c, dbus-gtype-specialized.h,
  4783.     dbus-gvalue-utils.h, dbus-gvalue-utils.c.
  4784.  
  4785.     * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
  4786.     avoids people accidentally using DBUS_TYPE_* which should
  4787.     not be necessary anymore.
  4788.     Do include dbus-gtype-specialized.h, which are utilities
  4789.     for GLib container types.
  4790.     Add various #defines for types such as
  4791.     DBUS_TYPE_G_BOOLEAN_ARRAY.
  4792.     (DBusGValueIterator, DBusGValue): Define, not fully used
  4793.     yet.
  4794.     (dbus_g_value_get_g_type): Type for recursive value.
  4795.     (dbus_g_value_open, dbus_g_value_iterator_get_value)
  4796.     (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
  4797.     (dbus_g_value_free): Prototypes.
  4798.     (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
  4799.     (dbus_g_proxy_set_interface): Prototype.
  4800.     (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
  4801.     (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
  4802.     types.
  4803.     (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
  4804.     Accessors.
  4805.     (DBusGAsyncData, DBusGMethodInvocation): Structures for
  4806.     doing async invocations.
  4807.     (dbus_g_method_return, dbus_g_method_return_error):
  4808.     Prototypes.
  4809.     * doc/dbus-tutorial.xml: Update GLib section.
  4810.     
  4811.     * tools/dbus-viewer.c (load_child_nodes): Update
  4812.     for new invocation type of dbus_g_proxy_end_call.
  4813.     (load_from_service_thread_func): Ditto.
  4814.  
  4815.     * tools/print-introspect.c (main): Ditto.
  4816.  
  4817.     * tools/dbus-names-model.c (have_names_notify)
  4818.     (names_model_reload, names_model_set_connection)
  4819.     Use GTypes.
  4820.  
  4821.     * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
  4822.     needed since Python bindings use GLib bindings.
  4823.  
  4824.     * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
  4825.     Add --prefix argument.
  4826.  
  4827.     * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
  4828.     unneeded --ignore-unsupported arg.
  4829.     
  4830.     * test/glib/test-service-glib.c: 
  4831.     * test/glib/test-service-glib.xml:
  4832.     * test/glib/test-dbus-glib.c: Add many more tests.
  4833.  
  4834. 2005-06-06  David Zeuthen  <davidz@redhat.com>
  4835.  
  4836.     * doc/TODO: Add item about need to remove deprecated functions.
  4837.  
  4838.     * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
  4839.  
  4840.     * dbus/dbus-connection.c (dbus_connection_disconnect): New function
  4841.     to repair the ABI which was broken with the last commit.
  4842.  
  4843. 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
  4844.  
  4845.     *  dbus/dbus-connection.c, dbus/dbus-connection.h 
  4846.     (dbus_connection_disconnect): renamed to dbus_connection_close 
  4847.     for API symmetry with dbus_connection_open
  4848.     (_dbus_connection_open_internal): 
  4849.     s/dbus_connection_disconnect/dbus_connection_close
  4850.  
  4851.     * dbus/dbus-bus.c (dbus_bus_get):
  4852.     s/dbus_connection_disconnect/dbus_connection_close
  4853.  
  4854.     * bus/connection.c (bus_connections_unref, 
  4855.     bus_connections_setup_connection, bus_connections_expire_incomplete):
  4856.     s/dbus_connection_disconnect/dbus_connection_close
  4857.  
  4858.     * bus/dispatch.c (bus_dispatch, kill_client_connection, 
  4859.     kill_client_connection_unchecked, check_hello_connection):
  4860.     s/dbus_connection_disconnect/dbus_connection_close
  4861.  
  4862.     * bus/bus.c (new_connection_callback):
  4863.     s/dbus_connection_disconnect/dbus_connection_close
  4864.  
  4865.     * tools/dbus-send.c (main):
  4866.     s/dbus_connection_disconnect/dbus_connection_close
  4867.  
  4868.     * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
  4869.     s/dbus_connection_disconnect/dbus_connection_close
  4870.     
  4871.     * test/test-service.c (path_message_func, filter_func):
  4872.     s/dbus_connection_disconnect/dbus_connection_close
  4873.     
  4874.     * doc/TODO: remove connection_open/connection_disconnect lacks symmetry     item that was just fixed
  4875.     
  4876. 2005-05-25  Colin Walters  <walters@verbum.org>
  4877.  
  4878.     * dbus/dbus-protocol.h: Move various bus service #defines such
  4879.       as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
  4880.       dbus/dbus-shared.h.
  4881.     * dbus/dbus-shared.h: Various defines moved here.
  4882.     * dbus/dbus-marshal-header.c: Include dbus-shared.h.
  4883.  
  4884. 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
  4885.  
  4886.     * python/__init__.py: Python bindings deserve a minor version
  4887.     update.  Upped to (0, 40, 2)
  4888.  
  4889. 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
  4890.  
  4891.     * python/decorators.py: add explicitly_pass_message decorator
  4892.     for passing in the dbus message as keyword for edge case signal
  4893.     handling
  4894.  
  4895.     * python/matchrules.py (SignalMatchRule.__repr__): fix output
  4896.     to conform with what dbus expects for match rules
  4897.     (SignalMatchRule.execute): add the dbus message as a keyword
  4898.     if the signal handler has requested it
  4899.  
  4900.     * python/examples/example/signal-recipient.py: added some more
  4901.     examples on how to hook up to signals
  4902.  
  4903. 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
  4904.  
  4905.     * python/decorators.py: import dbus_bindings
  4906.  
  4907.     * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
  4908.     SignalMatchNode): new classes that implement wildcard signal
  4909.     callback matching using a tree lookup. Heavily modified from a
  4910.     patch sent by Celso Pinto (fd.o bug #3241)
  4911.  
  4912.     * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
  4913.     use new match classes to handle signals.
  4914.  
  4915. 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
  4916.     
  4917.     * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
  4918.  
  4919. 2005-05-18  Havoc Pennington  <hp@redhat.com>
  4920.  
  4921.     * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
  4922.     gettext. Not really worth requiring yet perhaps, but any
  4923.     production quality 1.0 would require it so we should go ahead and
  4924.     get things set up. We do have a couple token calls to
  4925.     bindtextdomain in the code already.
  4926.  
  4927. 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
  4928.  
  4929.     * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
  4930.     when using recursive g_main_loops
  4931.  
  4932.     * python/_dbus.py (class Bus): add the ProxyObjectClass
  4933.     alias for ProxyObject to make it easier for the Twisted 
  4934.     networking framework to integrate dbus.
  4935.  
  4936.     * python/proxies.py (class ProxyObject): add the ProxyMethodClass
  4937.     alias for ProxyMethod to make it easier for the Twisted 
  4938.     networking framework to integrate dbus. 
  4939.  
  4940. 2005-05-11  Ross Burton  <ross@openedhand.com>
  4941.  
  4942.     * glib/dbus-glib-tool.c: Add --prefix argument.
  4943.     * glib/dbus-binding-tool-glib.h: Add prefix argument.
  4944.     * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
  4945.     Add prefix argument.
  4946.     (generate_glue): Pass prefix argument down.
  4947.     (dbus_binding_tool_output_glib_server): Pass prefix to
  4948.     glib-genmarshal.
  4949.     
  4950. 2005-05-11  Colin Walters  <walters@verbum.org>
  4951.  
  4952.     * tools/dbus-send.c (append_array): New function.
  4953.     (append_arg): Broken out from main.
  4954.     (main): Add cheesy hack to send arrays and variants.
  4955.     (usage): Update.
  4956.     * tools/dbus-print-message.c (print_iter): Broken out
  4957.     from main.
  4958.  
  4959. 2005-05-11  Colin Walters  <walters@verbum.org>
  4960.  
  4961.     * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
  4962.     New function, returns signature string for signature iter.
  4963.     * dbus/dbus-signature.h: Prototype it.
  4964.     * dbus/dbus-message.c (dbus_message_iter_get_signature):
  4965.     New function, returns signature string for message iter.
  4966.     (dbus_message_iter_get_array_len): New function, returns
  4967.     length of array.
  4968.     (dbus_message_iter_get_fixed_array): Fix assertion; this
  4969.     function should be used when the iter is pointing to the
  4970.     contents of an array
  4971.     * dbus/dbus-message.h: Prototypes.
  4972.     * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
  4973.     New function; returns length of an array.
  4974.     * dbus/dbus-marshal-recursive.h: Prototype it.
  4975.     
  4976. 2005-05-11  Colin Walters  <walters@verbum.org>
  4977.  
  4978.     * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
  4979.     compilation error.
  4980.     
  4981. 2005-05-08  Havoc Pennington  <hp@redhat.com>
  4982.  
  4983.     * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
  4984.     daemon's pid, not the parent's pid, to the file descriptor.
  4985.     Reported by Taj Morton.
  4986.  
  4987. 2005-05-05  Havoc Pennington  <hp@redhat.com>
  4988.  
  4989.     * configure.in (LT_*): add notes on how the libtool versioning
  4990.     works to save thinking. Increment soname to indicate protocol
  4991.     breakage (though really the library interface hasn't changed I
  4992.     guess)
  4993.  
  4994.     * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
  4995.     verify the GUID received from server matches what we were
  4996.     expecting, if we had an expectation
  4997.  
  4998.     * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
  4999.     (_dbus_auth_get_guid_from_server): new function
  5000.     (send_begin): parse the OK args
  5001.  
  5002.     * doc/dbus-specification.xml: add GUID to the auth protocol
  5003.  
  5004. 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
  5005.  
  5006.     * Fix my name in previous changelog ;)
  5007.  
  5008.     * python/proxies.py (ProxyObject.__getattr__): add further patch
  5009.     from Anthony Baxter to throw an AttributeError when python 
  5010.     __special__ functions are called instead of marshling them over 
  5011.     the bus (Bug#1685 comment 3).
  5012.  
  5013. 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
  5014.  
  5015.     * python/Makefile.am: changed to use pyexecdir for the binding
  5016.     shared libraries (Bug#2494)
  5017.  
  5018.     * python/exceptions.py: bring exceptions over from the bindings
  5019.     so they can be used in applications (Bug#2036)
  5020.     Make all exceptions derive from DBusException
  5021.  
  5022.     * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
  5023.     of classes so that print obj doesn't throw an exception (Bug #1685)
  5024.  
  5025. 2005-05-03  Ross Burton  <ross@openedhand.com>
  5026.  
  5027.     * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
  5028.     Return if we get an error during registration.  Set up a
  5029.     weak reference on object to unregister if object is destroyed.
  5030.     (unregister_gobject): New function.
  5031.     
  5032. 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
  5033.  
  5034.     * python/dbus_bindings.pyx.in: 
  5035.     - added new type classes for hinting to the marashaler what type 
  5036.     to send over the wire
  5037.     - added int16 and uint16 marshalers
  5038.     - Fixed a bug in the type constants that caused int32 to go out
  5039.     as uint16 over the wire
  5040.     * python/dbus.py: split up into different files and renamed _dbus.py
  5041.     * python/__init__.py, python/_util.py, python/decorators.py, 
  5042.     python/exceptions.py, python/proxies.py, python/services.py,
  5043.     python/types.py: new files split off from dbus.py
  5044.     * python/Makefile.am: Add new files, remove dbus.py and 
  5045.     install all python files to <python module dir>/dbus
  5046.     * python/examples/*: Added #!/usr/bin/env python to the top of
  5047.     every example.  Patch provided by Tatavarty Kalyan
  5048.  
  5049. 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
  5050.  
  5051.     * NEWS: Update to 0.33
  5052.  
  5053. 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
  5054.  
  5055.     * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
  5056.     method for doing async calls
  5057.     (_pending_call_notification): New C function for handling pendning call
  5058.     callbacks
  5059.     (set_notify): New method for setting pending call notification
  5060.     
  5061.     * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
  5062.     Async capabilities added to remote method calls
  5063.     (Sender): class removed
  5064.     (RemoteService): class removed
  5065.     (ObjectTree): class removed for now
  5066.     (RemoteObject): Renamed to ProxyObject
  5067.     (RemoteMethod): Renamed to ProxyMethod
  5068.     (method): Decorator added for decorating python methods as dbus methods
  5069.     (signal): Decorator added for decorating python methods as signal emitters
  5070.     (ObjectType): Metaclass added for generating introspection data and the
  5071.     method callback vtable
  5072.     (Interface): Wrapper class added to wrap objects in a dbus interface
  5073.     (Object): Uses ObjectType as its metaclass and exports Introspect
  5074.     of the org.freedesktop.DBus.Introspectable interface
  5075.     (ValidationException, UnknownMethodException): new exceptions
  5076.  
  5077.     * python/examples/*: Modified to fit with the new bindings
  5078.  
  5079. 2005-04-23  Havoc Pennington  <hp@redhat.com>
  5080.  
  5081.     * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
  5082.     reported by Tony Houghton
  5083.  
  5084.     * test/test-service.c (main): test
  5085.     dbus_connection_get_object_path_data()
  5086.  
  5087.     * dbus/dbus-object-tree.c (find_handler): be sure we always init
  5088.     the exact_match
  5089.     (_dbus_object_tree_get_user_data_unlocked): new function used by
  5090.     dbus_connection_get_object_path_data()
  5091.     (do_register): add assertion test for get_user_data_unlocked
  5092.     (object_tree_test_iteration): more tests
  5093.  
  5094.     * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
  5095.     new function from Dan Reed to let you get the user data from 
  5096.     dbus_connection_register_object_path()
  5097.  
  5098. 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
  5099.  
  5100.     * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
  5101.     in numerous places that did not account for the NULL terminator
  5102.     (signature_from_seed): changed the manual string copy loop to 
  5103.     just use strcpy instead
  5104.     make check should now pass
  5105.  
  5106. 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
  5107.  
  5108.     * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
  5109.     so that it allows messages that are not signals to pass in 
  5110.     NULL as the interface.
  5111.  
  5112. 2005-04-18  David Zeuthen  <davidz@redhat.com>
  5113.  
  5114.     * glib/dbus-gmain.c (io_handler_destroy_source): 
  5115.     (timeout_handler_destroy_source, connection_setup_free): 
  5116.     Also unref the source to avoid memory leaks.
  5117.  
  5118. 2005-04-13  David Zeuthen  <davidz@redhat.com>
  5119.  
  5120.     * bus/config-parser.c (bus_config_parser_new): Bump this to a
  5121.     more reasonable, yet still totally arbitrary, value :-). 
  5122.  
  5123. 2005-04-13  David Zeuthen  <davidz@redhat.com>
  5124.  
  5125.     * doc/TODO: Added an "important for 1.0" item about selinux
  5126.     allow/deny messages
  5127.  
  5128. 2005-04-13  David Zeuthen  <davidz@redhat.com>
  5129.  
  5130.     * bus/selinux.c: Add c-file-style to top of file
  5131.     (log_audit_callback): Don't free the data here anymore
  5132.     (bus_selinux_check): Don't take spid and tpid since appending
  5133.     that to auxdata may OOM.
  5134.     (bus_selinux_allows_acquire_service): Handle OOM and signal back
  5135.     to the caller if we are OOM by taking an error object.
  5136.     (bus_selinux_allows_send): -do-
  5137.  
  5138.     * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
  5139.     and bus_selinux_allows_send
  5140.  
  5141.     * bus/bus.c (bus_context_check_security_policy): Pass error and
  5142.     pass on OOM thrown by bus_selinux_allows_send()
  5143.  
  5144.     * bus/services.c (bus_registry_acquire_service): Pass error and
  5145.     pass on OOM thrown by bus_selinux_allows_acquire_service()
  5146.  
  5147. 2005-04-13  Havoc Pennington  <hp@redhat.com>
  5148.  
  5149.     * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
  5150.     message at a time to avoid monopolizing the main loop, bug 
  5151.     #2953 from Benjamin Otte
  5152.  
  5153. 2005-04-09  Havoc Pennington  <hp@redhat.com>
  5154.  
  5155.     * dbus/dbus-string.c (copy): change a memcpy to memmove due to
  5156.     possible overlap, fix from Daniel Reed
  5157.     (fixup_alignment): fix signedness warnings
  5158.     (_dbus_string_append_unichar): ditto
  5159.  
  5160. 2005-04-09  Havoc Pennington  <hp@redhat.com>
  5161.  
  5162.     * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
  5163.  
  5164.     * glib/dbus-glib-tool.c (main): fix warning
  5165.  
  5166.     * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
  5167.  
  5168.     * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
  5169.     add a new function that can be used in simple applications that
  5170.     don't have a main loop and are willing to block
  5171.  
  5172. 2005-04-05  David Zeuthen  <davidz@redhat.com>
  5173.  
  5174.     Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
  5175.  
  5176.     * glib/dbus-gmain.c:
  5177.     (io_handler_destroy_source): Remove from list of IO handlers
  5178.     of the ConnectionSetup object
  5179.     (timeout_handler_destroy_source): -do- for timeout handlers
  5180.     (io_handler_source_finalized): Don't remove from list since
  5181.     we now do that in io_handler_destroy_source(). Renamed from
  5182.     io_handler_source_destroyed
  5183.     (timeout_handler_source_destroyed): -do- for timeout handlers
  5184.     (connection_setup_free): It is now safe to iterate over all
  5185.     IO and timeout handlers as the _destroy_source removes them
  5186.     from the list synchronously
  5187.  
  5188. 2005-03-30  Havoc Pennington  <hp@redhat.com>
  5189.  
  5190.     * configure.in: change check to gtk 2.4
  5191.  
  5192.     * tools/dbus-viewer.c (name_combo_changed_callback): remove
  5193.     gtk_combo_box_get_active_text() usage to decrement GTK requirement
  5194.     to 2.4
  5195.  
  5196. 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
  5197.  
  5198.     * News: Update 0.32
  5199.  
  5200.     * HACKING: Fixed realease instructions.  configure.in should be updated to
  5201.       the next release by the person who made the last release.
  5202.  
  5203. 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
  5204.  
  5205.     * python/lvalue_cast_post_process.py - removed.  Patch has been
  5206.       submitted to Pyrex maintainers that fixes gcc4.0 errors
  5207.  
  5208.     * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
  5209.  
  5210. 2005-03-24  Daniel Reed  <n@ml.org>
  5211.  
  5212.     * tools/Makefile.am: Make print-introspect and
  5213.     dbus-bus-introspect.xml building conditional on HAVE_GLIB.
  5214.  
  5215. 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
  5216.  
  5217.     * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
  5218.  
  5219.     * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
  5220.       had in Red Hat packages for a while but for some reason never 
  5221.       got merged upstream
  5222.       (_dbus_is_a_number): New checks if a string
  5223.       can be converted to a number and does the conversion if it can
  5224.       (_dbus_user_database_lookup): Add check to see if the given username
  5225.       is a udi.  This allows udi's to be used instead of usernames in the
  5226.       config file.
  5227.       (_dbus_user_database_lookup_group): Add check to see if the given groupname
  5228.       is a gdi.  This allows gdi's to be used instead of groupnames in the
  5229.       config file.
  5230.  
  5231. 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
  5232.  
  5233.     * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
  5234.       code so that it compiles with gcc4.0
  5235.  
  5236.     * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
  5237.       run dbus_bindings.c through lvalue_cast_post_process.py and copy the
  5238.       results back to dbus_binding.c
  5239.  
  5240. 2005-03-20  Colin Walters  <walters@verbum.org>
  5241.  
  5242.     Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
  5243.  
  5244.     * configure.in: Require GTK+ 2.6.
  5245.     
  5246. 2005-03-20  Colin Walters  <walters@verbum.org>
  5247.  
  5248.     * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
  5249.  
  5250. 2005-03-17  Tom Parker  <palfrey@tevp.net>
  5251.  
  5252.     * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
  5253.     print DBUS_UID_UNSET; instead print passed username.  Also
  5254.     be sure to actually use gid looked up in cache.
  5255.     
  5256.     * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
  5257.     for DBUS_GID_UNSET and groupname.
  5258.  
  5259. 2005-03-17  Colin Walters  <walters@verbum.org>
  5260.  
  5261.     * bus/print-introspect.c: Move to tools/.
  5262.     * bus/run-with-tmp-session-bus.sh: Ditto.
  5263.     
  5264.     * glib/Makefile.am (dbus-glib-bindings.h): Move
  5265.     generation to tools/Makefile.am.
  5266.  
  5267.     * test/glib/run-test.sh: Update to handle move
  5268.     of run-with-tmp-session-bus.sh.
  5269.  
  5270.     * test/glib/test-service-glib.c: Update to handle
  5271.     move of dbus-glib-bindings.h.
  5272.  
  5273.     * tools/print-introspect.c: Moved here
  5274.     from bus/, and ported to GLib bindings.
  5275.  
  5276.     * tools/run-with-tmp-session-bus.sh: Moved here
  5277.     from bus/.
  5278.  
  5279.     * tools/Makefile.am: Generate dbus-glib-bindings.h
  5280.     and dbus-bus-introspect.xml here.
  5281.  
  5282.     * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
  5283.     Update.
  5284.  
  5285. 2005-03-17  Colin Walters  <walters@verbum.org>
  5286.  
  5287.     * bus/driver.c (write_args_for_direction): Use
  5288.     _dbus_string_get_const_data to retrieve string;
  5289.     _dbus_string_get_const_data_len doesn't actually return
  5290.     a NULL-terminated substring.
  5291.  
  5292.     * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
  5293.     (main): Change to use org_freedesktop_DBus_request_name
  5294.     instead of using g_proxy_begin_call/end_call.
  5295.  
  5296. 2005-03-15  Joe Shaw  <joeshaw@novell.com>
  5297.  
  5298.     * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
  5299.     generating the finalizer.  Fixes from Ben Maurer.
  5300.  
  5301. 2005-03-12  Joe Shaw  <joeshaw@novell.com>
  5302.  
  5303.     * mono/BusDriver.cs: Update method names: ListServices
  5304.     becomes ListNames; GetOwner becomes GetNameOwner.
  5305.  
  5306.     * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
  5307.     onto the eval stack when removing the delegate.
  5308.  
  5309. 2005-03-12  Joe Shaw  <joeshaw@novell.com>
  5310.  
  5311.     * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
  5312.     LT_CURRENT.  Set it to the autoconf variable.
  5313.                                                                                 
  5314.     * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
  5315.     classes that disconnects the signal handler delegate from the
  5316.     service object.  Fixes a big leak of proxy objects on the
  5317.     client side of things.  Patch from Ben Maurer
  5318.     <bmaurer@ximian.com>
  5319.  
  5320. 2005-03-12  Colin Walters  <walters@verbum.org>
  5321.  
  5322.     * bus/driver.c (write_args_for_direction): New function,
  5323.     parses a type signature into arguments and outputs to
  5324.     XML.
  5325.     (bus_driver_handle_introspect): Use it instead of
  5326.     hardcoding XML for certain signatures.
  5327.     
  5328.     * bus/Makefile.am (dbus-bus-introspect.xml): Add
  5329.     dependency on dbus-daemon.
  5330.  
  5331.     * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
  5332.     argument, pass it to dbus_binding_tool_output_glib_client.
  5333.  
  5334.     * glib/dbus-binding-tool-glib.c
  5335.     (generate_client_glue): Protect against multiple inclusion.
  5336.     (dbus_binding_tool_output_glib_client): Add
  5337.     G_BEGIN_DECLS/G_END_DECLS.
  5338.  
  5339.     * glib/dbus-binding-tool-glib.c (compute_client_method_name):
  5340.     Change to just take iface prefix directly.
  5341.     (write_formal_parameters): Clarify error message.
  5342.     (check_supported_parameters): New function; checks to see type
  5343.     signatures of method parameters are supported.
  5344.     (generate_client_glue): Handle ignore_unsupported flag.
  5345.     (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
  5346.     parameter.
  5347.  
  5348.     * glib/Makefile.am (dbus-glib-bindings.h): Pass
  5349.     --ignore-unsupported by default until glib bindings
  5350.     support arrays.
  5351.  
  5352. 2005-03-11  Colin Walters  <walters@verbum.org>
  5353.  
  5354.     * glib/Makefile.am: Generate dbus-glib-bindings.h and
  5355.     install it.
  5356.  
  5357.     * bus/print-introspect.c: New file; prints introspection
  5358.     data for a given name and object path.
  5359.  
  5360.     * bus/run-with-tmp-session-bus.sh: New file, refactored
  5361.     from test/glib/run-test.sh.  Creates a temporary session
  5362.     bus and runs another program.
  5363.  
  5364.     * test/glib/run-test.sh: Refactor to invoke
  5365.     run-with-tmp-session-bus.sh.
  5366.  
  5367.     * bus/driver.c (bus_driver_handle_introspect): Fix to print new
  5368.     introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
  5369.     macros instead of hardcoding.
  5370.  
  5371.     * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
  5372.  
  5373. 2005-03-11  Joe Shaw  <joeshaw@novell.com>
  5374.  
  5375.     * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
  5376.     this unref; it doesn't match up evenly in some codepaths.
  5377.     (_dbus_connection_block_pending_call): Unref at every exitpoint;
  5378.     this evenly matches with the ref near the top of this function.
  5379.  
  5380. 2005-03-09  Joe Shaw  <joeshaw@novell.com>
  5381.  
  5382.     * dbus/dbus-object-tree.c
  5383.     (_dbus_object_tree_unregister_and_unlock): If checks are enabled
  5384.     and we try to unregister a path that's not registered, still go
  5385.     through the process of unlocking and don't just return.
  5386.  
  5387. 2005-03-09  Colin Walters  <walters@verbum.org>
  5388.  
  5389.     * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
  5390.     to this are generated for client-side wrappers.  Invokes a
  5391.     D-BUS method and returns reply values.  
  5392.  
  5393.     * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
  5394.     function; writes signature string for argument direction.
  5395.     (write_args_for_direction): Change to pass input values directly
  5396.     instead of via address, and fix indentation.
  5397.     (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
  5398.     make generated wrappers inlineable.
  5399.  
  5400.     * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
  5401.     note about using dbus_type_is_fixed.
  5402.  
  5403.     * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
  5404.     dbus/dbus-signature.c as dbus_type_is_fixed.
  5405.  
  5406.     All callers updated.
  5407.  
  5408.     * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
  5409.     from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
  5410.  
  5411.     * dbus/dbus-signature.h: Prototype.
  5412.  
  5413.     * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
  5414.     error printf code.
  5415.  
  5416.     * test/glib/test-dbus-glib.c (main): Be sure to clear error as
  5417.     appropriate instead of just freeing it.
  5418.     (main): Free returned strings using g_free.
  5419.  
  5420.     * test/glib/Makefile.am (test-service-glib-glue.h)
  5421.     (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
  5422.  
  5423.     * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
  5424.     simply maps a simple D-BUS type to GType.
  5425.     (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
  5426.     GType.
  5427.     (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
  5428.     initialize the value with it.
  5429.     (dbus_gvalue_binding_type_from_type): Unused, delete.
  5430.     (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
  5431.     various types instead of unmarshalling to value data directly.
  5432.     Remove can_convert boolean.
  5433.     (dbus_gvalue_marshal): Remove duplicate initialization; switch to
  5434.     returning directly instead of using can_convert boolean.
  5435.     (dbus_gvalue_store): New function; not related to D-BUS per-se.
  5436.     Stores a GValue in a pointer to a value of its corresponding C
  5437.     type.
  5438.  
  5439.     * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
  5440.     add dbus_gvalue_store.
  5441.  
  5442. 2005-03-08  Joe Shaw  <joeshaw@novell.com>
  5443.  
  5444.     Fix a bunch of lifecycle and memory management problems
  5445.     in the mono bindings.
  5446.  
  5447.     * mono/Arguments.cs (Arguments): Implement IDisposable
  5448.  
  5449.     * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
  5450.     strictly a static class.
  5451.  
  5452.     * mono/Connection.cs: Move the DBusObjectPathVTable and associated
  5453.     delegates into this file.
  5454.     (Connection): Implement IDisposable.
  5455.     (Dispose): Disconnect the connection and set the raw connection
  5456.     pointer to IntPtr.Zero.
  5457.     (~Connection): Call Dispose().
  5458.     (RegisterObjectPath): Added.  Manages the registration of object
  5459.     paths so we can cleanly disconnect them at dispose/finalize time.
  5460.     (UnregisterObjectPath): Ditto.
  5461.     (set_RawConnection): Unregister all of the object paths when
  5462.     changing the underlying DBusConnection.  Add them back onto the
  5463.     new connection, if any.
  5464.  
  5465.     * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
  5466.     more unmanaged resources anymore, so it's not necessary.  Move all
  5467.     the DBusObjectPathVTable stuff out of here.
  5468.     (Handler): Save references to our delegates so that they don't get
  5469.     finalized.  Call Connection.RegisterObjectPath() instead of
  5470.     dbus_connection_register_object_path() directly.
  5471.     (Message_Called): Dispose the message after we're finished with
  5472.     it.
  5473.  
  5474.     * mono/Message.cs (Message): Implement IDisposable.
  5475.     (Dispose): Dispose the Arguments, and set the RawMessage to
  5476.     IntPtr.Zero.
  5477.     (SendWithReplyAndBlock): We own the ref to the reply that comes
  5478.     back from dbus_connection_send_with_reply_and_block() so add a
  5479.     comment about that and unref it after we've constructed a managed
  5480.     MethodReturn class around it.  Fixes a big, big leak.
  5481.  
  5482.     * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
  5483.     method.
  5484.     (BuildSignalHandler): After we've sent the Signal message, dispose
  5485.     of it.
  5486.     (BuildMethod): Dispose of the method call and reply messages after
  5487.     we've sent the message and extracted the data we want from the
  5488.     reply.
  5489.  
  5490.     * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
  5491.     anymore.
  5492.     (Service_FilterCalled): Dispose of the message after we're
  5493.     finished with it.
  5494.  
  5495. 2005-03-08  Joe Shaw  <joeshaw@novell.com>
  5496.  
  5497.         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
  5498.         After we attach our pending call to the connection, unref
  5499.         it.  Fixes a leak.
  5500.  
  5501.         * mono/Connection.cs (set_RawConnection): Disconnect our
  5502.         filter and match callbacks from the old connection and
  5503.         reconnect them to the new connection, if any.
  5504.  
  5505.     * mono/DBusType/Array.cs: "Code" is a static member, so
  5506.     don't use "this" to refer to it.  Fix for stricter checking
  5507.     in Mono 1.1.4.
  5508.  
  5509.         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
  5510.     object path that we pass into unmanaged code.
  5511.  
  5512.         * mono/DBusType/String.cs (Append): Don't leak the string
  5513.     that we pass into unmanged code.
  5514.  
  5515. 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
  5516.     * NEWS: Update for 0.31
  5517.  
  5518.     * configure.in: Release 0.31
  5519.     add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
  5520.  
  5521.     * qt/Makefile.am: fixed build
  5522.  
  5523.     * dbus/Makefile.am: soname bump for libdbus
  5524.  
  5525.     * glib/Makefile.am: soname bump for libdbus-glib
  5526.  
  5527. 2005-03-05  Havoc Pennington  <hp@redhat.com>
  5528.  
  5529.     * dbus/dbus-sysdeps.c:
  5530.     (pseudorandom_generate_random_bytes_buffer): fix to have no return
  5531.     value
  5532.     (_dbus_generate_random_bytes_buffer): fix return value
  5533.  
  5534.     * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
  5535.     checks actually work, from Tom Parker <fdo@tevp.net>
  5536.  
  5537. 2005-03-01  Colin Walters  <walters@verbum.org>
  5538.  
  5539.     * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
  5540.     functions copied from dbus-glib-tool.c.
  5541.     (main): Convert lots of error code to use them.
  5542.     Also add some testing for introspection bits.
  5543.  
  5544. 2005-03-01  Colin Walters  <walters@verbum.org>
  5545.     
  5546.     * doc/TODO: Remove introspection signature TODO.
  5547.  
  5548. 2005-02-27  Colin Walters  <walters@verbum.org>
  5549.  
  5550.     * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
  5551.     Change return value to const char * instead of int so we can do
  5552.     full signatures.
  5553.     (struct PropertyInfo, struct ArgInfo): Store char *.
  5554.     (property_info_new, arg_info_new): Update parameters, strdup.
  5555.     (property_info_unref, arg_info_unref): Free.
  5556.  
  5557.     * glib/dbus-gidl.h: Update prototypes.
  5558.  
  5559.     * glib/dbus-gparser.c (basic_type_from_string): Delete.
  5560.     (validate_signature): New function, just validates signature and
  5561.     sets GError.
  5562.     (parse_property, parse_arg): Invoke validate_signature.  Store
  5563.     signature instead of just type code.
  5564.  
  5565.     * glib/dbus-gvalue.c (base_type_from_signature): New utility
  5566.     function to return a primary type for a signature, dropping
  5567.     information about types in container types.
  5568.     (dbus_gvalue_genmarshal_name_from_type)
  5569.     (dbus_gvalue_binding_type_from_type)
  5570.     (dbus_gvalue_ctype_from_type): Update to take full signature
  5571.      instead of type code.
  5572.     (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
  5573.  
  5574.     * glib/dbus-gvalue.h: Update prototypes for above.
  5575.  
  5576.     * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
  5577.     glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
  5578.     (introspect_properties, introspect_signals, write_interface):
  5579.     Update to handle signatures, and remove usage of
  5580.     _dbus_gutils_type_to_string.
  5581.     (handle_introspect): Print out type codes instead of e.g. "string"
  5582.     in hardcoded introspection XML; also use x_AS_STRING constants
  5583.     instead of hardcoding in string.
  5584.  
  5585.     * glib/dbus-glib-tool.c (pretty_print): Handle signature change
  5586.     to string.  Remove usage of _dbus_gutils_type_to_string.
  5587.  
  5588.     * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
  5589.  
  5590.     * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
  5591.     deletion.
  5592.     
  5593.     * glib/dbus-binding-tool-glib.c (compute_marshaller)
  5594.     (compute_marshaller_name, generate_glue): Handle signature change
  5595.     to string.
  5596.     (write_formal_parameters, write_args_for_direction): Ditto, and
  5597.     remove FIXME.
  5598.  
  5599.     * tools/dbus-tree-view.c (type_to_string): Delete.
  5600.     (info_set_func_text): Update to print full signatures.
  5601.  
  5602.     * test/glib/test-service-glib.xml: Change types to new
  5603.     introspection format.
  5604.  
  5605. 2005-02-26  Havoc Pennington  <hp@redhat.com>
  5606.  
  5607.     * doc/TODO: remove the "guid" item
  5608.  
  5609.     * test/glib/test-profile.c (no_bus_thread_func): use open_private
  5610.     (with_bus_thread_func): use open_private
  5611.  
  5612.     * dbus/dbus-connection.c (dbus_connection_open_private): new
  5613.     function that works like the old dbus_connection_open()
  5614.     (dbus_connection_open): now returns an existing connection if
  5615.     possible
  5616.  
  5617.     * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
  5618.     through the GUID to the transport
  5619.  
  5620.     * dbus/dbus-server.c (_dbus_server_init_base): keep around the
  5621.     GUID in hex-encoded form.
  5622.  
  5623.     * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
  5624.     pass GUID argument in to the transport
  5625.  
  5626.     * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
  5627.     guid argument
  5628.  
  5629.     * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
  5630.  
  5631.     * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
  5632.  
  5633. 2005-02-25  Havoc Pennington  <hp@redhat.com>
  5634.  
  5635.     * doc/dbus-specification.xml: document the GUID thing
  5636.  
  5637.     * dbus/dbus-server.c (_dbus_server_init_base): initialize a
  5638.     globally unique ID for the server, and put a "guid=hexencoded"
  5639.     field in the address
  5640.  
  5641.     * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
  5642.  
  5643.     * dbus/dbus-message.c: ditto
  5644.  
  5645.     * dbus/dbus-dataslot.c: ditto
  5646.  
  5647.     * dbus/dbus-list.c: ditto
  5648.  
  5649.     * dbus/dbus-internals.h: wait, just include
  5650.     dbus-threads-internal.h here
  5651.     
  5652.     * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
  5653.     use in main library
  5654.  
  5655.     * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
  5656.  
  5657. 2005-02-24  Colin Walters  <walters@verbum.org>
  5658.  
  5659.     * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
  5660.  
  5661. 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
  5662.  
  5663.     * glib/Makefile.am: added dbus-gobject.h to sources list
  5664.     so distcheck doesn't fail
  5665.     
  5666. 2005-02-24  Havoc Pennington  <hp@redhat.com>
  5667.  
  5668.     * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
  5669.     you must disconnect before unref, since locking and other things
  5670.     are screwed up otherwise. Fix assorted other locking stuff.
  5671.  
  5672.     * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
  5673.     fix compilation
  5674.  
  5675.     * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
  5676.     into a private header and don't export from the library
  5677.  
  5678.     * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
  5679.  
  5680. 2005-02-24  Colin Walters  <walters@verbum.org>
  5681.     
  5682.     * dbus/dbus-signature.c: New file; implements various functions
  5683.     related to type signatures.  Includes an interator for parsing,
  5684.     validation functions.
  5685.     (dbus_type_is_basic): Moved here from
  5686.     dbus-marshal-basic.c:_dbus_type_is_basic.
  5687.     (dbus_type_is_container): Moved here from
  5688.     dbus-marshal-basic.c:_dbus_type_is_container.
  5689.  
  5690.     All callers of _dbus_type_is_container and _dbus_type_is_basic
  5691.     updated, and include dbus-signature.h.
  5692.  
  5693.     * dbus/dbus-signature.h: New file; prototypes for the above.
  5694.  
  5695.     * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
  5696.     dbus-signature.h.
  5697.  
  5698.     * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
  5699.     function factored out of _dbus_first_type_in_signature.
  5700.     (_dbus_first_type_in_signature_c_str): New function; returns first
  5701.     type code for a type signature character.
  5702.  
  5703.     * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
  5704.     handle function moves.
  5705.  
  5706.     * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
  5707.  
  5708.     * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
  5709.     function; skips to next complete type in type signature.
  5710.     Implemented using previous skip_one_complete_type.  Now
  5711.     skip_one_complete_type just delegates to
  5712.     _dbus_type_signature_next.
  5713.  
  5714.     * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
  5715.     to dbus-signature.c
  5716.     (_dbus_type_is_container): Ditto.
  5717.  
  5718.     * doc/dbus-specification.xml: Update introspection sample to
  5719.     use real type signatures.
  5720.  
  5721.     * dbus/dbus-test.h: Prototype signature test.
  5722.  
  5723.     * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
  5724.     signature tests.
  5725.  
  5726.     * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
  5727.  
  5728. 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
  5729.  
  5730.     * python/dbus_bindings.pyx.in (PendingCall::get_reply):
  5731.     s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
  5732.  
  5733. 2005-02-21  Colin Walters  <walters@verbum.org>
  5734.  
  5735.     * dbus/dbus-test-main.c (main): Take optional specific test
  5736.     argument.
  5737.  
  5738.     * dbus/dbus-test.c (run_test): New function, runs a test function
  5739.     with no data directory.
  5740.     (run_data_test): Like above, but takes data directory.
  5741.     (dbus_internal_do_not_use_run_tests): Take
  5742.     specific test argument.  Replace lots of cut n' paste code
  5743.     with run_test and run_data_test.
  5744.  
  5745.     * dbus/dbus-test.h: Update prototype for
  5746.     dbus_internal_do_not_use_run_tests.
  5747.  
  5748. 2005-02-20  Havoc Pennington  <hp@redhat.com>
  5749.  
  5750.         Fix bugs reported by Daniel P. Berrange
  5751.     
  5752.     * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
  5753.     (protected_change_watch): new function
  5754.     (_dbus_server_toggle_watch, _dbus_server_remove_watch)
  5755.     (_dbus_server_add_watch): change to work like the
  5756.     dbus-connection.c equivalents; like those, probably kind of
  5757.     busted, but should at least mostly work for now
  5758.     (dbus_server_disconnect): drop the lock if we were already
  5759.     disconnected, patch from Daniel P. Berrange
  5760.  
  5761.     * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
  5762.     (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
  5763.     same stuff
  5764.  
  5765.     * doc/TODO: todo about unscrewing this mess
  5766.  
  5767. 2005-02-19  Colin Walters  <walters@verbum.org>
  5768.  
  5769.     * glib/dbus-binding-tool-glib.c
  5770.     (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
  5771.  
  5772.     * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
  5773.     as errno.h and sys/stat.h.
  5774.     (lose): New function, prints error with
  5775.     newline and exits.
  5776.     (lose_gerror): Similar, but takes GError for message.
  5777.     (main): Add --output argument to specify output file to write to,
  5778.     instead of always printing to stdout.  In this mode, determine
  5779.     timestamps on source files to see whether any are newer than the
  5780.     target file.  If not, exit.  Also convert a number of error
  5781.     messages to use lose (since it's shorter), and switch to using
  5782.     g_io_channel_shutdown.
  5783.  
  5784. 2005-02-19  Havoc Pennington  <hp@redhat.com>
  5785.  
  5786.     * glib/dbus-gobject.c
  5787.     (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
  5788.  
  5789.     * glib/dbus-glib.c: fix doxygen warnings
  5790.  
  5791.     * glib/dbus-gparser.c (parse_annotation): error if an annotation
  5792.     is found on an <arg>
  5793.  
  5794. 2005-02-17  Colin Walters  <walters@verbum.org>
  5795.  
  5796.     * glib/dbus-gobject.h: Don't export
  5797.     _dbus_glib_marshal_dbus_message_to_gvalue_array.
  5798.     
  5799.     * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
  5800.     (invoke_object_method): Handle it.
  5801.  
  5802.     * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
  5803.     Handle rename.
  5804.     
  5805. 2005-02-17  Colin Walters  <walters@verbum.org>
  5806.  
  5807.     * bus/.cvsignore, doc/.cvsignore
  5808.     * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
  5809.     Update.
  5810.  
  5811. 2005-02-17  Colin Walters  <walters@verbum.org>
  5812.     
  5813.     * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
  5814.     Rename to DBUS_SERVICE_DBUS.
  5815.     (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
  5816.     (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
  5817.     Change the value from "org.freedesktop.Local"
  5818.     to "org.freedesktop.DBus.Local".
  5819.     (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
  5820.     (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
  5821.     DBUS_INTERFACE_INTROSPECTABLE.
  5822.     Change the value from "org.freedesktop.Introspectable"
  5823.     to "org.freedesktop.DBus.Introspectable".
  5824.     (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
  5825.     DBUS_INTERFACE_PROPERTIES.
  5826.     Change the value from "org.freedesktop.Properties"
  5827.     to "org.freedesktop.DBus.Properties".
  5828.     (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
  5829.     DBUS_INTERFACE_PEER.
  5830.     Change the value from "org.freedesktop.Peer"
  5831.     to "org.freedesktop.DBus.Peer".
  5832.     (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
  5833.     DBUS_INTERFACE_LOCAL.
  5834.     Change the value from "org.freedesktop.Local"
  5835.     to "org.freedesktop.DBus.Local".
  5836.  
  5837.     All other users of those constants have been changed.
  5838.  
  5839.     * bus/driver.c (bus_driver_handle_introspect): Use constants.
  5840.  
  5841.     * glib/dbus-gobject.c (handle_introspect): Use constants.
  5842.  
  5843.     * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
  5844.  
  5845. 2005-02-17  Colin Walters  <walters@verbum.org>
  5846.  
  5847.     * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
  5848.     (parse_node, parse_interface, parse_method, parse_signal)
  5849.     (parse_property, parse_annotation): Lose if we're currently in an
  5850.     annotation.
  5851.     (parse_annotation): New function.
  5852.     (parser_start_element, parser_end_element): Handle annotation.
  5853.     (parse_method, parse_interface): Remove support for c_name attribute,
  5854.     switch to annotations.
  5855.  
  5856.     * glib/dbus-gidl.h (interface_info_get_binding_names)
  5857.     (method_info_get_binding_names)
  5858.     (interface_info_get_binding_name, method_info_get_binding_name)
  5859.     (interface_info_set_binding_name, method_info_set_binding_name):
  5860.     Remove.
  5861.     (interface_info_get_annotations, method_info_get_annotations)
  5862.     (interface_info_get_annotation, method_info_get_annotation)
  5863.     (interface_info_add_annotation, method_info_add_annotation):
  5864.     Prototype.
  5865.  
  5866.     * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
  5867.     for "bindings".
  5868.     (struct MethodInfo): Ditto.
  5869.     Straightfoward conversion of binding methods into annotation methods
  5870.     as prototyped.
  5871.  
  5872.     * glib/dbus-glib-tool.c (pretty_print): Print annotations.
  5873.  
  5874.     * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
  5875.  
  5876.     * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
  5877.     Use new annotation API.
  5878.  
  5879.     * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
  5880.     annotation element.
  5881.     
  5882.     * doc/dbus-specification.xml: Discuss introspection annotations,
  5883.     include list of well-known annotations.
  5884.  
  5885.     * test/glib/test-service-glib.xml: Make validate against new DTD.
  5886.  
  5887. 2005-02-17  Colin Walters  <walters@verbum.org>
  5888.  
  5889.     This patch is based on initial work from
  5890.     Paul Kuliniewicz <kuliniew@purdue.edu>.
  5891.  
  5892.     * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
  5893.     initialization of GValue from dbus type to here.
  5894.     (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
  5895.     for the "glib-genmarshal" program from a DBus type.
  5896.     (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
  5897.     into the C name for it we use in the glib bindings.
  5898.     (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
  5899.     glib C type (not GValue).
  5900.     (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
  5901.  
  5902.     * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
  5903.     from dbus-gobject.c.
  5904.  
  5905.     * glib/dbus-gutils.h: Prototype it.
  5906.  
  5907.     * glib/dbus-gproxy.c: Include new dbus-gobject.h.
  5908.     (marshal_dbus_message_to_g_marshaller): Use new shared function
  5909.     dbus_glib_marshal_dbus_message_to_gvalue_array.
  5910.  
  5911.     * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
  5912.     Will be changed once we have annotations.
  5913.  
  5914.     * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
  5915.     GStaticRWLock.  Callers updated.
  5916.     (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
  5917.     (string_table_next): New function for iterating over zero-terminated
  5918.     string value array.
  5919.     (string_table_lookup): New function; retrieves specific entry in
  5920.     array.
  5921.     (get_method_data): New function; look up method data in object data chunk.
  5922.     (object_error_domain_prefix_from_object_info)
  5923.     (object_error_code_from_object_info): New functions, but not implemented yet.
  5924.     (method_interface_from_object_info): New function; retrieve interface name.
  5925.     (method_name_from_object_info): New function; retrieve method name.
  5926.     (method_arg_info_from_object_info): New function; retrieve argument data.
  5927.     (arg_iterate): New function; iterates over serialized argument data.
  5928.     (method_dir_signature_from_object_info): New function; returns a
  5929.     GString holding type signature for arguments for just one
  5930.     direction (input or output).
  5931.     (method_input_signature_from_object_info)
  5932.     (method_output_signature_from_object_info): New functions.
  5933.     (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
  5934.     converts dbus message arguments into a GValue array.  Used for both
  5935.     signal handling and method invocation.
  5936.     (struct DBusGlibWriteIterfaceData): New utility structure.
  5937.     (write_interface): New function; generate introspection XML for
  5938.     an interface.
  5939.     (introspect_interfaces): New function; gathers all interface->methods,
  5940.     generates introspection XML for them.
  5941.     (handle_introspect): Invoke introspect_interfaces.
  5942.     (get_object_property): Be sure to zero-initalize stack-allocated GValue.
  5943.     (lookup_object_and_method): New function; examines an incoming message
  5944.     and attempts to match it up (via interface, method name, and argument
  5945.     signature) with a known object and method.
  5946.     (gerror_domaincode_to_dbus_error_name): New function; converts a
  5947.     GError domain and code into a DBus error name.  Needs GError data
  5948.     added to object introspection to work well.
  5949.     (gerror_to_dbus_error_message): Creates a DBusMessage error return from
  5950.     GError.
  5951.     (invoke_object_method): New function to invoke an object method
  5952.     looked up via lookup_object_and_method.  Parses the incoming
  5953.     message, turns it into a GValue array, then invokes the marshaller
  5954.     specified in the DBusGMethodInfo.  Creates a new message with
  5955.     either return values or error message as appropriate.
  5956.     (gobject_message_function): Invoke lookup_object_and_method and
  5957.     invoke_object_method.
  5958.  
  5959.     * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
  5960.     (enum DBusBindingOutputMode): New enum for binding output modes.
  5961.     (pretty_print): Print binding names.
  5962.     (dbus_binding_tool_error_quark): GError bits.
  5963.     (version): Fix typo.
  5964.     (main): Create GIOChannel for output.  Parse new --mode argument,
  5965.     possible values are "pretty-print", "glib-server", "glib-client".
  5966.     Use mode to invoke appropriate function.
  5967.     
  5968.     * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
  5969.  
  5970.     * glib/dbus-glib-tool.h: New header, just includes GError bits
  5971.     for now.
  5972.  
  5973.     * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
  5974.     maps binding style to name.
  5975.     (struct MethodInfo): Ditto.
  5976.     (get_hash_keys, get_hash_key): Utility function, returns keys for
  5977.     a GHashTable.
  5978.     (interface_info_new, method_info_new): Initialize bindings.
  5979.     (interface_info_unref, method_info_unref): Destroy bindings.
  5980.     (method_info_get_binding_names, method_info_get_binding_name)
  5981.     (interface_info_get_binding_names, interface_info_get_binding_name):
  5982.     Functions for retrieving binding names.
  5983.     (method_info_set_binding_name, interface_info_set_binding_name):
  5984.     Functions for setting binding names.
  5985.  
  5986.     * glib/dbus-binding-tool-glib.h: New file, has prototypes
  5987.     for glib binding generation.
  5988.  
  5989.     * glib/dbus-binding-tool-glib.c: New file, implements server-side
  5990.     and client-side glib glue generation.
  5991.  
  5992.     * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
  5993.     dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
  5994.     dbus-glib-tool.h.
  5995.  
  5996.     * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
  5997.     of using GClosureMarshal directly.
  5998.     (struct DBusGObjectInfo): Add n_infos member.
  5999.  
  6000.     * test/glib/test-service-glib.xml: New file; contains introspection data
  6001.     for MyTestObject used in test-service-glib.c.
  6002.  
  6003.     * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
  6004.     (my_object_do_nothing, my_object_increment, my_object_throw_error)
  6005.     (my_object_uppercase, my_object_many_args): New test methods.
  6006.     (main): Use dbus_g_object_class_install_info to include generated object
  6007.     info.
  6008.  
  6009.     * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
  6010.     as well as client-side bindings.
  6011.  
  6012.     * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
  6013.     (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
  6014.     using both the dbus_gproxy stuff directly as well as the generated bindings.
  6015.  
  6016. 2005-02-15  Havoc Pennington  <hp@redhat.com>
  6017.  
  6018.     * dbus/dbus-connection.c (dbus_connection_dispatch): always
  6019.     complete a pending call, don't run filters first.
  6020.  
  6021.     * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
  6022.     dbus_pending_call_steal_reply
  6023.  
  6024.     * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
  6025.     _dbus_connection_block_pending_call
  6026.     (dbus_pending_call_get_reply): change to steal_reply and return a
  6027.     ref
  6028.  
  6029.     * dbus/dbus-connection.c
  6030.     (dbus_connection_send_with_reply_and_block): port to work in terms
  6031.     of DBusPendingCall
  6032.     (_dbus_connection_block_pending_call): replace block_for_reply
  6033.     with this
  6034.  
  6035. 2005-02-14  Havoc Pennington  <hp@redhat.com>
  6036.  
  6037.     * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
  6038.     properly handle looking up group information by name; fix 
  6039.     from j@bootlab.org
  6040.  
  6041. 2005-02-13  Havoc Pennington  <hp@redhat.com>
  6042.  
  6043.     * dbus/dbus-connection.c (dbus_connection_return_message) 
  6044.     (dbus_connection_borrow_message): hold dispatch lock while message
  6045.     is outstanding
  6046.     (_dbus_connection_block_for_reply): hold dispatch lock while we
  6047.     block for the reply, so nobody steals our reply
  6048.     (dbus_connection_pop_message): hold the dispatch lock while we
  6049.     pluck the message
  6050.  
  6051. 2005-02-13  Havoc Pennington  <hp@redhat.com>
  6052.  
  6053.     * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
  6054.     (_dbus_connection_release_dispatch)
  6055.     (_dbus_connection_acquire_io_path)
  6056.     (_dbus_connection_release_io_path): make the mutex and condvar
  6057.     control access to the "acquired" flag. Drop the connection lock
  6058.     while waiting on the condvar. Hopefully these are baby steps in
  6059.     roughly the right direction.
  6060.  
  6061. 2005-02-13  Havoc Pennington  <hp@redhat.com>
  6062.  
  6063.     * dbus/dbus-connection.c: use separate mutexes for the condition
  6064.     variables; this is some kind of baseline for sanity, but the
  6065.     condition variables still aren't used correctly afaict
  6066.  
  6067. 2005-02-13  Havoc Pennington  <hp@redhat.com>
  6068.  
  6069.     * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
  6070.     fix a double-unlock
  6071.  
  6072.     * dbus/dbus-connection.c
  6073.     (_dbus_connection_detach_pending_call_unlocked): add this
  6074.  
  6075.         Initial semi-correct pass through to fix thread locking; there are
  6076.     still some issues with the condition variable paths I'm pretty
  6077.     sure
  6078.     
  6079.     * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
  6080.     lock/unlock calls
  6081.  
  6082.     * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
  6083.     rename to add _unlocked
  6084.     (struct DBusConnection): move "dispatch_acquired" and
  6085.     "io_path_acquired" to use only one bit each.
  6086.     (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
  6087.     (dbus_connection_set_watch_functions): hacky fix to reentrancy
  6088.     (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
  6089.     (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
  6090.     (_dbus_connection_remove_timeout) 
  6091.     (_dbus_connection_toggle_timeout): drop lock when calling out to
  6092.     user functions; done in a hacky/bad way.
  6093.     (_dbus_connection_send_and_unlock): add a missing unlock
  6094.     (_dbus_connection_block_for_reply): add a missing unlock
  6095.  
  6096.     * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
  6097.     drop lock in a hacky probably unsafe way to call out to user
  6098.     function
  6099.  
  6100. 2005-02-12  Havoc Pennington  <hp@redhat.com>
  6101.  
  6102.     * tools/dbus-tree-view.c (info_set_func_text): display more
  6103.     details on args
  6104.  
  6105.     * bus/driver.c (bus_driver_handle_list_services): list the bus
  6106.     driver
  6107.  
  6108.     * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
  6109.  
  6110.     * glib/dbus-gidl.c (signal_info_get_n_args): new function
  6111.     (method_info_get_n_args): new function
  6112.  
  6113. 2005-02-12  Havoc Pennington  <hp@redhat.com>
  6114.  
  6115.     * bus/driver.c (bus_driver_handle_introspect): add introspection
  6116.     for bus driver
  6117.  
  6118. 2005-02-12  Havoc Pennington  <hp@redhat.com>
  6119.  
  6120.     * bus/driver.c: put the signature of each bus driver method in the
  6121.     table of handlers and check it on incoming calls; this isn't
  6122.     really useful, but going to add introspect support in a minute.
  6123.  
  6124. 2005-02-11  Joe Shaw  <joeshaw@novell.com>
  6125.  
  6126.     * mono/Connection.cs: The unpredictability of finalizers in mono
  6127.     prevents us from deterministically disconnecting the filters from
  6128.     the Service class's finalizer, so move tracking of filters and
  6129.     matches here.  Add API for that.
  6130.  
  6131.     * mono/Service.cs: Remove the code, add code which calls the
  6132.     methods now on the Connection class.
  6133.  
  6134. 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
  6135.  
  6136.     * python/dbus.py (class Sender): added to support dbus signals better
  6137.     (Bus::add_signal_receiver): added expand_args parameter which defaults
  6138.     to True.  When expand args is True the signal handler will pass the 
  6139.     message arguments as parameters to the signal handler.  If False
  6140.     revert to previous behavior where the signal handler must get the
  6141.     argument list from the message.  This is to help port applications
  6142.     like HAL that have a tendancy to send variable length argument lists.
  6143.     self._match_rule_to_receivers is now a dict of dicts.
  6144.     (Bus::remove_signal_receiver): pop handler off the dict intead of 
  6145.     removing it from a list
  6146.     (Bus::_signal_func): change signal handlers so that interface,
  6147.     signal_name, service, path and message are packed into a Sender
  6148.     object and that is passed to the handler.  If expand_args is True
  6149.     extract the args list from the message and append it to the parameter
  6150.     list
  6151.     
  6152.     * python/dbus_bindings.pyx.in (class Signature): added to support 
  6153.     signiature types
  6154.     (MessageIter::__init__): changed iteration limit to match D-BUS
  6155.     (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
  6156.     STRUCT and VARIENT type support
  6157.     (MessageIter::python_value_to_dbus_sig): made recursive to support
  6158.     recursive types
  6159.     (MessageIter::append*): added Signature, dict, tuple 
  6160.     support
  6161.  
  6162.     * python/examples/example-client.py: added examples of getting tuples
  6163.     and dicts
  6164.  
  6165.     * python/examples/example-service.py: added examples of sending tuples
  6166.     and dicts
  6167.  
  6168.     * python/examples/example-signal-recipient.py: Fixed to handle new
  6169.     signal callback format
  6170.  
  6171. 2005-02-10  Havoc Pennington  <hp@redhat.com>
  6172.  
  6173.     * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
  6174.     (call dbus_g_proxy_add_signal)
  6175.  
  6176.     * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
  6177.     escape the hostname
  6178.     (_dbus_server_new_for_domain_socket): escape the path
  6179.  
  6180.     * dbus/dbus-address.c (dbus_address_escape_value): new
  6181.     (dbus_address_unescape_value): new
  6182.     (dbus_parse_address): unescape values
  6183.  
  6184.     * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
  6185.  
  6186.     * doc/dbus-specification.xml: explain how to escape values in
  6187.     addresses
  6188.  
  6189. 2005-02-10  Havoc Pennington  <hp@redhat.com>
  6190.  
  6191.     * dbus/dbus-message-factory.c (generate_special): modify test to
  6192.     avoid using a non-basic dict key
  6193.  
  6194.     * dbus/dbus-marshal-validate-util.c: add test for the below
  6195.  
  6196.     * doc/dbus-specification.xml: require that dict keys are a basic
  6197.     type
  6198.  
  6199.     * dbus/dbus-marshal-validate.c
  6200.     (_dbus_validate_signature_with_reason): require that dict key is a
  6201.     basic type
  6202.  
  6203. 2005-02-10  Havoc Pennington  <hp@redhat.com>
  6204.  
  6205.     * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
  6206.     change to be _and_unlock instead of _unlocked
  6207.  
  6208.     * dbus/dbus-connection.c
  6209.     (_dbus_connection_send_preallocated_unlocked_no_update): rename to
  6210.     have no_update so we can find this bug quickly in future
  6211.  
  6212. 2005-02-10  Havoc Pennington  <hp@redhat.com>
  6213.  
  6214.     * dbus/dbus-message-util.c (verify_test_message): tests for string
  6215.     array
  6216.  
  6217.     * dbus/dbus-message.c (dbus_message_append_args_valist): add
  6218.     support for arrays of string/signature/path
  6219.  
  6220. 2005-02-10  Joe Shaw  <joeshaw@novell.com>
  6221.  
  6222.     * dbus/dbus-connection.c
  6223.     (_dbus_connection_queue_received_message_link,
  6224.     _dbus_connection_message_sent): Add the path to
  6225.     the verbose output.
  6226.     (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
  6227.     _dbus_connection_send_preallocated_unlocked(), updated the
  6228.     dispatch status, and unlocks.  Fixes a bug where certain
  6229.     situations (like a broken pipe) could cause a Disconnect message
  6230.     to not be sent, tricking the bus into thinking a service was still
  6231.     there when the process had quit.
  6232.     (_dbus_connection_send_preallocated): Call
  6233.     _dbus_connection_send_preallocated_and_unlock().
  6234.     (_dbus_connection_send_and_unlock): Added.  Calls
  6235.     _dbus_connection_send_preallocated_and_unlock().
  6236.     (dbus_connection_send): Call _dbus_connection_send_and_unlock().
  6237.     (dbus_connection_send_with_reply): Update the dispatch status and
  6238.     unlock.
  6239.  
  6240.     * mono/Service.cs (~Service): Added.  Removes the filter so that
  6241.     we don't get unmanaged code calling back into a GCed delegate.
  6242.     (RemoveFilter); Added.
  6243.  
  6244. 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
  6245.  
  6246.     * dbus/dbus-message.c (dbus_message_iter_open_container):
  6247.     - Removed check for iterator type being an array because
  6248.     get_arg_type does not work with writer iterators
  6249.     - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
  6250.  
  6251. 2005-02-07  Havoc Pennington  <hp@redhat.com>
  6252.  
  6253.     * doc/dbus-specification.xml: some more language cleanups; add
  6254.     stuff about how to deal with invalid protocol and extension
  6255.     points; add _ to allowed chars in auth commands; add EXTENSION_
  6256.     auth command prefix
  6257.  
  6258. 2005-02-06  Havoc Pennington  <hp@redhat.com>
  6259.  
  6260.     * s/expected/required/ in a couple places for clarity
  6261.  
  6262. 2005-02-07  Colin Walters  <walters@verbum.org>
  6263.  
  6264.     * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
  6265.     sender or proposed_recipient.
  6266.  
  6267. 2005-02-06  Havoc Pennington  <hp@redhat.com>
  6268.  
  6269.     * dbus/dbus-message-factory.c (generate_special): more tests
  6270.  
  6271.     * dbus/dbus-marshal-validate.c (validate_body_helper): detect
  6272.     array length that exceeds the maximum
  6273.  
  6274. 2005-02-05  Havoc Pennington  <hp@redhat.com>
  6275.  
  6276.     * dbus/dbus-message-factory.c (generate_special): more test cases,
  6277.     increasing coverage
  6278.  
  6279.     * dbus/dbus-marshal-validate.c (validate_body_helper): return the
  6280.     reason why a signature was invalid
  6281.  
  6282.     * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
  6283.     skip the length of the string before we look at it in validation
  6284.  
  6285.     * dbus/dbus-string-util.c (_dbus_string_test): add tests for
  6286.     equal_substring
  6287.  
  6288.     * dbus/dbus-message.c (_dbus_message_loader_new): default
  6289.     max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
  6290.  
  6291. 2005-02-05  Havoc Pennington  <hp@redhat.com>
  6292.  
  6293.     * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
  6294.     if the signature of a variant was empty
  6295.     (_dbus_validate_signature_with_reason): catch "(a)" (array inside
  6296.     struct with no element type)
  6297.  
  6298.     * dbus/dbus-message-factory.c (generate_uint32_changed): add more
  6299.     mangled messages to break things
  6300.  
  6301. 2005-02-04  Havoc Pennington  <hp@redhat.com>
  6302.  
  6303.     * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
  6304.     g_quark_try_string() so it actually can return 0
  6305.     (dbus_g_proxy_connect_signal): ditto
  6306.  
  6307. 2005-02-04  Havoc Pennington  <hp@redhat.com>
  6308.  
  6309.     * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
  6310.     bogus warning
  6311.     (tristring_from_message): assert cleanly on null path/interface
  6312.     (should not be possible though I decided later)
  6313.     (dbus_g_proxy_dispose): move proxy manager unregistration here
  6314.     (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
  6315.     g_return_if_fail() checks
  6316.  
  6317. 2005-02-04  Havoc Pennington  <hp@redhat.com>
  6318.  
  6319.     * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
  6320.  
  6321.     * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
  6322.     (with some minor changes)
  6323.  
  6324.     * doc/dbus-specification.xml: add deprecated attribute to
  6325.     introspection format
  6326.  
  6327. 2005-01-31  Havoc Pennington  <hp@redhat.com>
  6328.  
  6329.     * glib/dbus-gproxy.c: rewrite how signals work again, this time I
  6330.     think it's sort of right
  6331.  
  6332. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6333.  
  6334.     * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
  6335.  
  6336. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6337.  
  6338.     * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
  6339.  
  6340.     * autogen.sh: change to autotools 1.9
  6341.  
  6342.     * glib/dbus-gproxy.c: completely change how signals work
  6343.     (dbus_g_proxy_add_signal): new function to specify signature of a
  6344.     signal
  6345.     (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
  6346.     and g_warning if the incoming message has the wrong signature.
  6347.  
  6348. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6349.  
  6350.     * tools/dbus-names-model.c (have_names_notify): fix this
  6351.  
  6352.     * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
  6353.     up the string array handling a bit 
  6354.  
  6355. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6356.  
  6357.     * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
  6358.     (dbus_g_pending_call_cancel): new function
  6359.  
  6360.     * dbus/dbus-glib.h: move GType decls for connection/message here;
  6361.     * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
  6362.     here, just kind of rationalizing how we handle all that
  6363.  
  6364.     * tools/dbus-names-model.c: new file for a tree model listing the
  6365.     services on a bus
  6366.  
  6367.     * tools/dbus-tree-view.c (model_new): use proper typing on the
  6368.     model rows
  6369.  
  6370. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6371.  
  6372.     * glib/dbus-gmain.c: add a custom GSource back that just checks
  6373.     whether the message queue has anything in it; otherwise, there are 
  6374.     cases where we won't see messages in the queue since there was no 
  6375.     IO visible to the glib main loop
  6376.  
  6377.     * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
  6378.     increase default message timeout to 25 seconds
  6379.  
  6380. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6381.  
  6382.     * test/glib/test-profile.c (no_bus_stop_server): remove the
  6383.     warning about the g_warning that I just fixed
  6384.  
  6385.     * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
  6386.     custom source, seems to be a lot easier to understand and work
  6387.     better.
  6388.  
  6389. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6390.  
  6391.         I think this main loop thing is conceptually broken, but here are 
  6392.     some band aids. I'll maybe rewrite it in a minute.
  6393.     
  6394.     * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
  6395.     custom GSource, so don't pass it in; confusing
  6396.     (gsource_server_finalize, gsource_connection_finalize): add
  6397.     finalize handlers that remove all the watches.    
  6398.  
  6399. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6400.  
  6401.     * glib/dbus-gobject.c (introspect_properties): fix the XML
  6402.     generated
  6403.  
  6404.     * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
  6405.     which effectively detects the use of freed messages
  6406.  
  6407.     * glib/dbus-gobject.c (handle_introspect): modify and return the
  6408.     reply message instead of the incoming message
  6409.  
  6410.     * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
  6411.     gee, maybe it should SEND THE XML instead of just making a string
  6412.     and freeing it again ;-)
  6413.  
  6414.     * tools/dbus-print-message.c (print_message): improve printing of
  6415.     messages
  6416.  
  6417.     * configure.in: add debug-glib.service to the output
  6418.  
  6419. 2005-01-30  Havoc Pennington  <hp@redhat.com>
  6420.  
  6421.         dbus-viewer introspected and displayed the bus driver
  6422.     
  6423.     * dbus/dbus-object-tree.c 
  6424.     (object_tree_test_iteration): add tests for a handler registered on "/"
  6425.  
  6426.     * dbus/dbus-object-tree.c
  6427.     (_dbus_decompose_path): fix to handle path "/" properly
  6428.     (run_decompose_tests): add tests for path decomposition
  6429.     
  6430.     * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
  6431.     properly
  6432.  
  6433.     * glib/dbus-gobject.c (handle_introspect): fix quotes
  6434.  
  6435.     * test/glib/run-test.sh: support launching the bus, then running
  6436.     dbus-viewer
  6437.  
  6438.     * test/glib/test-service-glib.c (main): put in a trivial gobject
  6439.     subclass and register it on the connection
  6440.  
  6441.     * bus/driver.c (bus_driver_handle_introspect): implement
  6442.     introspection of the bus driver service
  6443.  
  6444.     * dbus/dbus-protocol.h: add #defines for the XML namespace,
  6445.     identifiers, doctype decl
  6446.  
  6447.     * bus/driver.c (bus_driver_handle_get_service_owner): handle
  6448.     attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
  6449.     returning the service unchanged.
  6450.     (bus_driver_handle_message): remove old check for reply_serial in
  6451.     method calls, now the message type deals with that
  6452.     (bus_driver_handle_message): handle NULL interface
  6453.  
  6454.     * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
  6455.  
  6456.     * glib/dbus-gloader-expat.c (description_load_from_string): allow
  6457.     -1 for len
  6458.  
  6459.     * tools/dbus-viewer.c: add support for introspecting a service on
  6460.     a bus
  6461.  
  6462.     * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
  6463.     (dbus_g_pending_call_unref): add
  6464.  
  6465. 2005-01-29  Havoc Pennington  <hp@redhat.com>
  6466.  
  6467.     * tools/dbus-tree-view.c: add support for displaying properties.
  6468.     (run dbus-viewer with an introspect xml file as arg, then resize
  6469.     the window so the tree elements show up, not sure what that is)
  6470.  
  6471.     * glib/dbus-gobject.c (handle_introspect): return
  6472.     org.freedesktop.Properties and org.freedesktop.Introspectable
  6473.     interfaces when we are introspected.
  6474.  
  6475.     * doc/dbus-specification.xml: allow empty interface name when 
  6476.     Get/Set a property
  6477.  
  6478. 2005-01-29  Havoc Pennington  <hp@redhat.com>
  6479.  
  6480.     * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
  6481.     though it uses glib, it could be extended for any binding in
  6482.     principle
  6483.  
  6484.     * glib/dbus-gobject.c (gobject_message_function): change to the
  6485.     new way properties work
  6486.  
  6487.     * dbus/dbus-protocol.h: add the new interfaces
  6488.  
  6489.     * doc/dbus-specification.xml: document the introspection format,
  6490.     Introspectable interface, and add an org.freedesktop.Properties
  6491.     interface.
  6492.  
  6493.     * glib/dbus-gparser.c: add support for a <property> element
  6494.  
  6495.     * glib/dbus-gidl.c: add PropertyInfo
  6496.  
  6497.     * glib/dbus-gobject.c (handle_introspect): put the outermost
  6498.     <node> outside the signal and property descriptions.
  6499.     (introspect_properties): export properties as <property> rather
  6500.     than as method calls
  6501.  
  6502. 2005-01-28  Havoc Pennington  <hp@redhat.com>
  6503.  
  6504.     * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
  6505.     related to authentication protocol
  6506.  
  6507. 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
  6508.  
  6509.     * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
  6510.         - BUS_ACTIVATION -> BUS_STARTER
  6511.         - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
  6512.         - class MessageIter (__init__): Added recursion checking 
  6513.         so we throw a nice error instead of just disconnecting from the
  6514.         bus.
  6515.         (get): Added arg_type parameter for recursion.
  6516.         Removed the nil type
  6517.         Added signiture type placeholder (not implemented)
  6518.         Added struct type placeholder (not implemented)
  6519.         Added varient type placeholder (not implemented)
  6520.         Commented out dict type for now        
  6521.         (get_element_type): renamed from get_array_type
  6522.         (get_*): changed to use the dbus_message_iter_get_basic API
  6523.         (get_*_array): removed in favor of recursive get_array method
  6524.         (get_array): new recursive method which calls get to marshal
  6525.             the elements of the array
  6526.         (value_to_dbus_sig): New method returns the corrasponding
  6527.         dbus signiture to a python value
  6528.         (append): Comment out dict handling for now
  6529.         Handle lists with the new recursive API
  6530.         Comment out None handling for now
  6531.         (append_nil): removed
  6532.         (append_*): changed to use dbus_message_iter_append_basic API
  6533.         (append_*_array): removed in favor of recursive append_array 
  6534.         method
  6535.         (__str__): Make it easier to print out recursive iterators
  6536.         for debugging
  6537.         - class Message (__str__): moved type inspection to the
  6538.         MessageIter class' __str__ method
  6539.         (get_iter): Added an append parameter wich defaults to False
  6540.         If True use the new API's to create an append iterator
  6541.  
  6542.     * python/dbus.py: Update to use new bindings API
  6543.         - TYPE_ACTIVATION -> TYPE_STARTER
  6544.         - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
  6545.         - class ActivationBus -> class StarterBus
  6546.         - class RemoteObject (__call__): get an append iterator
  6547.         - (_dispatch_dbus_method_call): get an append iterator
  6548.         - class Object (emit_signal): get an append iterator
  6549.  
  6550.     * python/examples/: Fixed up the examples to work with the new API
  6551.         
  6552. 2005-01-28  Joe Shaw  <joeshaw@novell.com>
  6553.  
  6554.     * configure.in: Bump version up to 0.30.
  6555.  
  6556.     * HACKING: Add a release item to bump the version number up after 
  6557.     a release.
  6558.  
  6559. 2005-01-28  Havoc Pennington  <hp@redhat.com>
  6560.  
  6561.     * doc/dbus-specification.xml: update to describe 16-bit types and
  6562.     dict entries
  6563.  
  6564.     * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
  6565.     assertion
  6566.  
  6567.     * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
  6568.     type
  6569.  
  6570.     * dbus/dbus-marshal-recursive.c: implement
  6571.  
  6572. 2005-01-27  Havoc Pennington  <hp@redhat.com>
  6573.  
  6574.     * dbus/dbus-arch-deps.h.in: add 16/32-bit types
  6575.  
  6576.     * configure.in: find the right type for 16 and 32 bit ints as well
  6577.     as 64
  6578.  
  6579.     * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
  6580.     the 16-bit types so people don't have to stuff them in 32-bit or
  6581.     byte arrays.
  6582.  
  6583. 2005-01-27  Havoc Pennington  <hp@redhat.com>
  6584.  
  6585.         * dbus/dbus-message.c: byteswap the message if you init an
  6586.     iterator to read/write from it
  6587.     
  6588.     * dbus/dbus-marshal-byteswap.c: new file implementing 
  6589.     _dbus_marshal_byteswap()
  6590.  
  6591.     * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
  6592.  
  6593. 2005-01-26  Havoc Pennington  <hp@redhat.com>
  6594.     
  6595.     * dbus/dbus-marshal-validate-util.c: break this out (and fix
  6596.     build, apparently - nobody noticed?)
  6597.     
  6598. 2005-01-26  Havoc Pennington  <hp@redhat.com>
  6599.  
  6600.     * dbus/dbus-marshal-recursive.h: remove todo comment
  6601.  
  6602. 2005-01-25  Joe Shaw  <joeshaw@novell.com>
  6603.  
  6604.     * Land the mono binding changes to conform to the new APIs.
  6605.  
  6606.     * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
  6607.     DBusType/Dict.cs, and DBusType/Nil.cs from the build.
  6608.  
  6609.     * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
  6610.     type code as a string.
  6611.     (InitAppending): Rename dbus_message_append_iter_init() to
  6612.     dbus_message_iter_init_append().
  6613.  
  6614.     * mono/BusDriver.cs: Rename ServiceEventHandler to
  6615.     NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
  6616.     Rename ServiceOwnerChanged to NameOwnerChanged.
  6617.  
  6618.     * mono/Connection.cs: Rename BaseService to UniqueName, and the
  6619.     underlying C call.
  6620.  
  6621.     * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
  6622.  
  6623.     * mono/Service.cs: Rename Exists to HasOwner, internally rename
  6624.     dbus_bus_acquire_service() to dbus_bus_request_name().
  6625.  
  6626.     * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
  6627.     of Type.UnderlyingSystemType to get the correct element type for
  6628.     the array.
  6629.     (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
  6630.     dbus_message_get_{element|arg}_type() instead of
  6631.     dbus_message_iter_init_array_iterator().
  6632.     (Append): Replace dbus_message_iter_append_array() with
  6633.     dbus_message_iter_open_container() and
  6634.     dbus_message_iter_close_container().
  6635.  
  6636.     * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
  6637.     types have been removed.
  6638.     
  6639.     * mono/DBusType/*.cs: Replace calls of
  6640.     dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
  6641.     but specify the type in the DllImport extern declaration.  Ditto
  6642.     for dbus_message_iter_append_[type]() ->
  6643.     dbus_message_iter_append_basic().
  6644.  
  6645.     * mono/example/BusListener.cs: Update for ServiceEventHandler ->
  6646.     NameOwnerChangedHandler.
  6647.  
  6648. 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
  6649.  
  6650.     * python/dbus_bindings.pyx.in: Rename of methods and bindings
  6651.         - get_base_service -> get_unique_name
  6652.         - bus_get_base_service -> bus_get_unique_name
  6653.         - dbus_bus_get_base_service -> dbus_bus_get_unique_name
  6654.         - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
  6655.         - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
  6656.         - bus_activate_service -> bus_start_service_by_name
  6657.         - dbus_bus_activate_service -> dbus_bus_start_service_by_name
  6658.         - bus_acquire_service -> bus_request_name
  6659.         - dbus_bus_acquire_service -> dbus_bus_request_name
  6660.         - bus_service_exists -> bus_name_has_owner
  6661.         - dbus_bus_service_exists -> dbus_bus_name_has_owner
  6662.  
  6663.     * python/dbus.py: Rename of methods
  6664.         - activate_service -> start_service_by_name
  6665.         - bus_acquire_service -> bus_request_name
  6666.         - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
  6667.         - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
  6668.  
  6669.     
  6670. 2005-01-24  Joe Shaw  <joeshaw@novell.com>
  6671.  
  6672.     * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
  6673.     signature for the method that can't be found.
  6674.  
  6675.     * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
  6676.     the message has any arguments, we need to call
  6677.     _dbus_type_reader_get_current_type(), not
  6678.     _dbus_type_reader_has_next().
  6679.  
  6680. 2005-01-24  Havoc Pennington  <hp@redhat.com>
  6681.  
  6682.     * dbus/dbus-message-factory.c: more testing of message validation
  6683.  
  6684.     * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
  6685.     header
  6686.  
  6687. 2005-01-23  Havoc Pennington  <hp@redhat.com>
  6688.  
  6689.     * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
  6690.     get this all working, not many tests in the framework yet though
  6691.  
  6692. 2005-01-22  Havoc Pennington  <hp@redhat.com>
  6693.  
  6694.     * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
  6695.     tutorial, based on work from David Wheeler.
  6696.  
  6697. 2005-01-21  Havoc Pennington  <hp@redhat.com>
  6698.  
  6699.     * dbus/dbus-bus.c: add more return_if_fail checks
  6700.  
  6701.     * dbus/dbus-message.c (load_message): have the "no validation"
  6702.     mode (have to edit the code to toggle the mode for now though)
  6703.  
  6704.     * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
  6705.     skips all validation; I want to use this at least for benchmark
  6706.     baseline, I'm not sure if it should be a publicly-available switch.
  6707.  
  6708. 2005-01-21  Havoc Pennington  <hp@redhat.com>
  6709.  
  6710.     * glib/dbus-gmain.c: don't put the GLib bindings in the same
  6711.     toplevel doxygen group as the low-level API stuff
  6712.  
  6713.     * dbus/dbus.h: note that libdbus is the low-level API
  6714.  
  6715. 2005-01-20  Havoc Pennington  <hp@redhat.com>
  6716.  
  6717.     * update-dbus-docs.sh: script to update docs on the web site, only
  6718.     works for me though. neener.
  6719.  
  6720. 2005-01-20  Havoc Pennington  <hp@redhat.com>
  6721.  
  6722.     * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
  6723.     code can reveal bugs in it
  6724.  
  6725. 2005-01-20  Havoc Pennington  <hp@redhat.com>
  6726.  
  6727.     * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
  6728.     select() version, patches from Tor Lillqvist
  6729.  
  6730. 2005-01-20  Havoc Pennington  <hp@redhat.com>
  6731.  
  6732.     * doc/dbus-tutorial.xml: replace > with >
  6733.  
  6734.     * bus/services.c (bus_registry_acquire_service): validate the name
  6735.     and return a better error if it's no good.
  6736.  
  6737.     * doc/dbus-specification.xml: note NO_AUTO_START change
  6738.  
  6739.     * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
  6740.     from AUTO_START, we're toggling the default
  6741.  
  6742.     * bus/dispatch.c: adapt the tests to change of auto-start default
  6743.  
  6744. 2005-01-18  Havoc Pennington  <hp@redhat.com>
  6745.  
  6746.     * rename dbus-daemon-1 to dbus-daemon throughout
  6747.  
  6748. 2005-01-18  Havoc Pennington  <hp@redhat.com>
  6749.  
  6750.         * Throughout, grand renaming to strip out the use of "service",
  6751.     just say "name" instead (or "bus name" when ambiguous).  Did not
  6752.     change the internal code of the message bus itself, only the
  6753.     programmer-facing API and messages.
  6754.     
  6755.     * doc/dbus-specification.xml: further update the message bus section
  6756.     
  6757.     * bus/config-parser.c (all_are_equiv): fix bug using freed string
  6758.     in error case
  6759.  
  6760. 2005-01-17  Havoc Pennington  <hp@redhat.com>
  6761.  
  6762.     * dbus/dbus-types.h: remove 16-bit types since we don't use them
  6763.     ever
  6764.  
  6765.     * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
  6766.     "invalid name character" not only non-ASCII
  6767.  
  6768.     * doc/dbus-specification.xml: further update spec, message bus 
  6769.     parts are still out-of-date but the marshaling etc. stuff is now
  6770.     accurate-ish
  6771.  
  6772. 2005-01-17  Havoc Pennington  <hp@redhat.com>
  6773.  
  6774.     * doc/dbus-specification.xml: partially update spec
  6775.  
  6776. 2005-01-17  Havoc Pennington  <hp@redhat.com>
  6777.  
  6778.         * Throughout, align variant bodies according to the contained
  6779.     type, rather than always to 8. Should save a fair bit of space in
  6780.     message headers.
  6781.     
  6782.     * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
  6783.     fix handling of case where p == end
  6784.  
  6785.     * doc/TODO: remove the dbus_bool_t item and variant alignment items
  6786.  
  6787. 2005-01-17  Havoc Pennington  <hp@redhat.com>
  6788.  
  6789.     * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
  6790.  
  6791.     * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
  6792.     of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
  6793.     are marshaling/unmarshaling a boolean.
  6794.  
  6795. 2005-01-16  Havoc Pennington  <hp@redhat.com>
  6796.  
  6797.         This is about it on what can be disabled/deleted from libdbus
  6798.     easily, back below 150K anyhow. Deeper cuts are more work than 
  6799.     just turning the code off as I've done here.
  6800.     
  6801.     * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
  6802.     signed int convenience funcs
  6803.  
  6804.     * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
  6805.     verbose mode
  6806.  
  6807.     * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
  6808.     things out of libdbus
  6809.  
  6810.     * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
  6811.     
  6812.     * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
  6813.     tests-enabled-only, though it should probably be deleted)
  6814.  
  6815.     * dbus/dbus-message-util.c: same stuff
  6816.  
  6817.     * dbus/dbus-auth-util.c: same stuff
  6818.  
  6819. 2005-01-16  Havoc Pennington  <hp@redhat.com>
  6820.  
  6821.     * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
  6822.  
  6823.     * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
  6824.     way for stripping down dbus-userdb.c stuff included in libdbus.
  6825.     Rename _dbus_parse_uid for consistency.
  6826.  
  6827. 2005-01-16  Havoc Pennington  <hp@redhat.com>
  6828.  
  6829.     * dbus/dbus-internals.c (_dbus_real_assert): print the function
  6830.     name the assertion failed in
  6831.  
  6832.     * dbus/dbus-internals.h (_dbus_return_if_fail) 
  6833.     (_dbus_return_val_if_fail): assert that the name of the function
  6834.     containing the check doesn't start with '_', since we only want to 
  6835.     use checks on public functions
  6836.     
  6837.     * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
  6838.     checks to assertions
  6839.  
  6840.     * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
  6841.     change checks to asserts for private function
  6842.  
  6843.     * dbus/dbus-message.c (_dbus_message_set_serial): checks
  6844.     to asserts for private function
  6845.  
  6846.     * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
  6847.     broken assertion that was breaking make check
  6848.     (_dbus_type_reader_array_is_empty): remove this rather than fix
  6849.     it, was only used in assertions
  6850.  
  6851. 2005-01-16  Havoc Pennington  <hp@redhat.com>
  6852.  
  6853.     * test/unused-code-gc.py: hacky script to find code that's used
  6854.     only by the bus (not libdbus) or used only by tests or not used at
  6855.     all. It has some false alarms, but looks like we can clean up a
  6856.     lot of size from libdbus.
  6857.  
  6858.     * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
  6859.     dbus/Makefile.am: initially move 10K of binary size out of libdbus
  6860.     
  6861. 2005-01-16  Havoc Pennington  <hp@redhat.com>
  6862.  
  6863.         * Add and fix docs according to Doxygen warnings throughout
  6864.     source.
  6865.     
  6866.     * dbus/dbus-marshal-recursive.c
  6867.     (_dbus_type_reader_array_is_empty): change this to just call
  6868.     array_reader_get_array_len() and make it static
  6869.  
  6870.     * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
  6871.     from get_array_type
  6872.     (dbus_message_iter_init_append): rename from append_iter_init
  6873.  
  6874.     * dbus/dbus-marshal-recursive.c
  6875.     (_dbus_type_reader_get_element_type): rename from
  6876.     _dbus_type_reader_get_array_type
  6877.  
  6878. 2005-01-15  Havoc Pennington  <hp@redhat.com>
  6879.  
  6880.     * test/glib/test-profile.c (with_bus_server_filter): fix crash
  6881.  
  6882.     * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
  6883.     when DBUS_DISABLE_ASSERT
  6884.     (_dbus_marshal_set_basic): be sure we align for the string length
  6885.  
  6886.     * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
  6887.     this look faster
  6888.  
  6889.     * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
  6890.     inline macro version
  6891.     (_dbus_string_set_byte): provide inline macro version
  6892.  
  6893. 2005-01-15  Havoc Pennington  <hp@redhat.com>
  6894.  
  6895.     * Land the new message args API and type system.
  6896.  
  6897.     This patch is huge, but the public API change is not 
  6898.     really large. The set of D-BUS types has changed somewhat, 
  6899.     and the arg "getters" are more geared toward language bindings;
  6900.     they don't make a copy, etc.
  6901.  
  6902.     There are also some known issues. See these emails for details
  6903.     on this huge patch:
  6904.     http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
  6905.         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
  6906.     
  6907.     * dbus/dbus-marshal-*: all the new stuff
  6908.  
  6909.     * dbus/dbus-message.c: basically rewritten
  6910.  
  6911.     * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
  6912.     freed blocks to be all non-nul bytes so using freed memory is less
  6913.     likely to work right
  6914.  
  6915.     * dbus/dbus-internals.c (_dbus_test_oom_handling): add
  6916.     DBUS_FAIL_MALLOC=N environment variable, so you can do
  6917.     DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
  6918.     DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
  6919.     thorough.
  6920.  
  6921.     * qt/message.cpp: port to the new message args API
  6922.     (operator<<): use str.utf8() rather than str.unicode()
  6923.     (pretty sure this is right from the Qt docs?)
  6924.  
  6925.     * glib/dbus-gvalue.c: port to the new message args API
  6926.  
  6927.     * bus/dispatch.c, bus/driver.c: port to the new message args API
  6928.  
  6929.     * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
  6930.     "locked" flag to TRUE and align_offset to 0; I guess we never
  6931.     looked at these anyhow, but seems cleaner.
  6932.  
  6933.     * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
  6934.     move allocation padding macro to this header; use it to implement
  6935.     (_DBUS_STRING_STATIC): ability to declare a static string.
  6936.  
  6937.     * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
  6938.     change to return TRUE if the interface is not set.
  6939.  
  6940.     * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
  6941.     to dbus-marshal-validate.[hc]
  6942.  
  6943.     * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
  6944.     dbus-internals.c
  6945.  
  6946.     * dbus/Makefile.am: cut over from dbus-marshal.[hc]
  6947.     to dbus-marshal-*.[hc]
  6948.  
  6949.     * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
  6950.     function here from dbus-marshal.c
  6951.  
  6952. 2005-01-12  Joe Shaw  <joeshaw@novell.com>
  6953.  
  6954.     * NEWS: Update for 0.23.
  6955.  
  6956.     * configure.in: Release 0.23.
  6957.  
  6958. 2005-01-12  Joe Shaw  <joeshaw@novell.com>
  6959.  
  6960.     * mono/Makefile.am, mono/example/Makefile.am: Always build the 
  6961.     dbus DLL with --debug.  Clean up after the .mdb files this leaves
  6962.     behind.
  6963.  
  6964.     * mono/doc/Makefile.am: Need to uninstall the docs on "make
  6965.     uninstall"
  6966.  
  6967.     * mono/Arguments.cs (GetDBusTypeConstructor): If the type
  6968.     is an enum, get the enum's underlying type.  Another mono
  6969.     1.1.3 fix.
  6970.  
  6971. 2005-01-11  Joe Shaw  <joeshaw@novell.com>
  6972.  
  6973.     Patch from Sjoerd Simons <sjoerd@luon.net>
  6974.  
  6975.     * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
  6976.     DESTDIR.  It breaks stuff.
  6977.  
  6978. 2005-01-11  Joe Shaw  <joeshaw@novell.com>
  6979.  
  6980.     Patch from Tambet Ingo <tambet@ximian.com>
  6981.  
  6982.     * mono/DBusType/Array.cs (Get): Get the underlying element type by
  6983.     calling type.GetElementType().  The code previously depended on
  6984.     broken Mono behavior, which was fixed in Mono 1.1.3.
  6985.  
  6986.     * mono/DBusType/Dict.cs (constructor): Fix the parameters for
  6987.     Activator.CreateInstance() so that the class's constructor is
  6988.     called with the right parameters.
  6989.  
  6990. 2005-01-11  Joe Shaw  <joeshaw@novell.com>
  6991.  
  6992.     Patch from Timo Ter├ñs <ext-timo.teras@nokia.com>
  6993.  
  6994.     * dbus/dbus-connection.c
  6995.     (_dbus_connection_queue_received_message_link): Call
  6996.     _dbus_connection_remove_timeout() instead of the _locked()
  6997.     variant, since it's always called from
  6998.     _dbus_connection_handle_watch(), which handles the locking.
  6999.     Removed the _locked() variant since it's no longer used.
  7000.  
  7001. 2005-01-03  Havoc Pennington  <hp@redhat.com>
  7002.  
  7003.     * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
  7004.     return
  7005.     
  7006. 2004-12-26  Havoc Pennington  <hp@redhat.com>
  7007.  
  7008.     * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
  7009.  
  7010. 2005-01-03  Havoc Pennington  <hp@redhat.com>
  7011.  
  7012.     * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
  7013.     floating point
  7014.  
  7015.     * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
  7016.  
  7017. 2005-01-02  Havoc Pennington  <hp@redhat.com>
  7018.  
  7019.     * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
  7020.  
  7021. 2005-01-01  Havoc Pennington  <hp@redhat.com>
  7022.  
  7023.     * configure.in: add -Wfloat-equal
  7024.  
  7025. 2005-01-01  Havoc Pennington  <hp@redhat.com>
  7026.  
  7027.     * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
  7028.     for a variety of reasons '==' doesn't do this.
  7029.  
  7030. 2004-12-31  Havoc Pennington  <hp@redhat.com>
  7031.  
  7032.     * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
  7033.     I keep wishing I had
  7034.  
  7035. 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
  7036.  
  7037.     * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
  7038.  
  7039. 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
  7040.  
  7041.     * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
  7042.     and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
  7043.     dbus-protocol.h.  Because they are defines and not enums they are not
  7044.     autogenerated.
  7045.  
  7046. 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
  7047.  
  7048.     * python/dbus_bindings.pyx.in (bus_activate_service): Bind
  7049.     dbus_bus_activate_service
  7050.  
  7051.     * python/dbus.py (Bus.activate_service): activate a service on the
  7052.     bus.
  7053.  
  7054. 2004-12-24  Havoc Pennington  <hp@redhat.com>
  7055.  
  7056.     * test/decode-gcov.c: change to use .gcno and .gcda files, but the
  7057.     file format has also changed and I haven't adapted to that yet
  7058.     
  7059.     * Makefile.am: load .gcno files from latest gcc
  7060.  
  7061. 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
  7062.     * Patch from Rob Taylor <robtaylor@fastmail.fm>
  7063.  
  7064.     * python/dbus_bindings.pyx.in (bus_get_unix_user): New
  7065.     lowlevel binding
  7066.  
  7067.     * python/dbus.py (get_unix_user): Added binding to 
  7068.     call dbus_bindings.bus_get_unix_user
  7069.  
  7070.     * python/extract.py: Modified the proto_pat regex to
  7071.     handle unsigned long
  7072.  
  7073. 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7074.  
  7075.     * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
  7076.     better POSIX compliance.
  7077.  
  7078. 2004-12-19  Havoc Pennington  <hp@redhat.com>
  7079.  
  7080.     * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
  7081.     (_dbus_string_insert_8_aligned): new functions
  7082.  
  7083.     * dbus/dbus-string.c (_dbus_string_alloc_space): new function
  7084.  
  7085. 2004-12-18  Havoc Pennington  <hp@redhat.com>
  7086.  
  7087.     * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
  7088.     macro
  7089.  
  7090.     * dbus/dbus-message.c: fix a comment, and add a still-unused
  7091.     not-implemented function
  7092.  
  7093.     * dbus/dbus-marshal.h: fix comment
  7094.  
  7095.     * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
  7096.  
  7097. 2004-12-17  Joe Shaw  <joeshaw@novell.com>
  7098.  
  7099.     * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
  7100.     mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
  7101.     mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
  7102.     Type.UnderlyingSystemType to get the actual system type
  7103.     underneath.  This code previously depended on the broken Mono
  7104.     behavior, which was fixed in 1.1.3.
  7105.  
  7106. 2004-11-27  Havoc Pennington  <hp@redhat.com>
  7107.  
  7108.     * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
  7109.     are disabled
  7110.     (_dbus_string_get_const_data): inline when asserts are disabled
  7111.  
  7112.     * dbus/dbus-message.c: record the _dbus_current_generation of
  7113.     creation so we can complain if dbus_shutdown() is used improperly.
  7114.     Do this only if checks are enabled.
  7115.  
  7116.     * dbus/dbus-connection.c: ditto
  7117.     
  7118. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7119.  
  7120.     * test/glib/test-profile.c: add with_bus mode to profile echoes
  7121.     that go through the bus.
  7122.  
  7123.     * test/glib/run-test.sh: add ability to run test-profile
  7124.  
  7125.     * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
  7126.     config file reload.
  7127.  
  7128. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7129.  
  7130.     * test/glib/test-profile.c: clean up how the fake_malloc_overhead
  7131.     thing was implemented
  7132.  
  7133. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7134.  
  7135.     * test/glib/test-profile.c: tweak a bit, add support for some
  7136.     made-up minimal malloc overhead with plain sockets, since in 
  7137.     real life some sort of buffers are unavoidable thus we could 
  7138.     count them in the theoretical best case
  7139.  
  7140. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7141.  
  7142.     * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
  7143.     where I was trying to cache one too many messages
  7144.  
  7145. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7146.  
  7147.     * dbus/dbus-message.c: reimplement message cache as an array which 
  7148.     makes the cache about twice as fast and saves maybe 1.5% overall
  7149.  
  7150. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7151.  
  7152.     * dbus/dbus-threads.c (init_global_locks): forgot to put the
  7153.     message cache lock here
  7154.  
  7155. 2004-11-26  Havoc Pennington  <hp@redhat.com>
  7156.  
  7157.     * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
  7158.     the "char byte_order" next to each other to save 4 bytes
  7159.     (dbus_message_new_empty_header): reduce preallocation, since the
  7160.     message cache should achieve a similar effect
  7161.     (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
  7162.     message cache that keeps a few DBusMessage around in a pool,
  7163.     another 8% speedup or so.
  7164.  
  7165.     * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
  7166.  
  7167. 2004-11-25  Havoc Pennington  <hp@redhat.com>
  7168.  
  7169.     * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
  7170.     to write, without reading or blocking, try it before the poll()
  7171.     and skip the poll() if nothing remains to write. This is about a
  7172.     3% speedup in the echo client/server
  7173.  
  7174. 2004-11-25  Havoc Pennington  <hp@redhat.com>
  7175.  
  7176.         The primary change here is to always write() once before adding
  7177.     the write watch, which gives us about a 10% performance increase.
  7178.     
  7179.     * dbus/dbus-transport-unix.c: a number of modifications to cope
  7180.     with removing messages_pending
  7181.     (check_write_watch): properly handle
  7182.     DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
  7183.     messages_pending stuff
  7184.     (check_read_watch): properly handle WAITING_FOR_MEMORY and
  7185.     AUTHENTICATED cases
  7186.     (unix_handle_watch): after writing, see if the write watch can be
  7187.     removed
  7188.     (unix_do_iteration): assert that write_watch/read_watch are
  7189.     non-NULL rather than testing that they aren't, since they 
  7190.     aren't allowed to be NULL. check_write_watch() at the end so 
  7191.     we add the watch if we did not finish writing (e.g. got EAGAIN)
  7192.  
  7193.     * dbus/dbus-transport-protected.h: remove messages_pending call,
  7194.     since it resulted in too much inefficient watch adding/removing; 
  7195.     instead we now require that the transport user does an iteration 
  7196.     after queueing outgoing messages, and after trying the first
  7197.     write() we add a write watch if we got EAGAIN or exceeded our 
  7198.     max bytes to write per iteration setting
  7199.  
  7200.     * dbus/dbus-string.c (_dbus_string_validate_signature): add this
  7201.     function
  7202.  
  7203.     * dbus/dbus-server-unix.c (unix_finalize): the socket name was
  7204.     freed and then accessed, valgrind flagged this bug, fix it
  7205.  
  7206.     * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
  7207.     as the last valid field plus 1, where really it is equal to the
  7208.     last valid field. Corrects some message corruption issues.
  7209.  
  7210.     * dbus/dbus-mainloop.c: verbosity changes
  7211.  
  7212.     * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
  7213.     instead of aborting in one of the test codepaths
  7214.  
  7215.     * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
  7216.     caused not printing the pid ever again if a verbose was missing
  7217.     the newline at the end
  7218.     (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
  7219.  
  7220.     * dbus/dbus-connection.c: verbosity changes; 
  7221.     (dbus_connection_has_messages_to_send): new function
  7222.     (_dbus_connection_message_sent): no longer call transport->messages_pending
  7223.     (_dbus_connection_send_preallocated_unlocked): do one iteration to
  7224.     try to write() immediately, so we can avoid the write watch. This
  7225.     is the core purpose of this patchset
  7226.     (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
  7227.     dump the outgoing message queue, so nobody will get confused
  7228.     trying to send them or thinking stuff is pending to be sent
  7229.  
  7230.     * bus/test.c: verbosity changes
  7231.  
  7232.     * bus/driver.c: verbosity/assertion changes
  7233.  
  7234.     * bus/dispatch.c: a bunch of little tweaks to get it working again
  7235.     because this patchset changes when/where you need to block.
  7236.  
  7237. 2004-11-23  Havoc Pennington  <hp@redhat.com>
  7238.  
  7239.     * test/glib/test-profile.c: modify to accept a plain_sockets
  7240.     argument in which case it will bench plain sockets instead of
  7241.     libdbus, for comparison purposes.
  7242.  
  7243. 2004-11-22  Havoc Pennington  <hp@redhat.com>
  7244.  
  7245.     * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
  7246.     threads for more time, so sysprof can get a grip on it.
  7247.  
  7248.     * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
  7249.     pointless variable
  7250.  
  7251. 2004-11-13  Havoc Pennington  <hp@redhat.com>
  7252.  
  7253.     * test/glib/test-profile.c: fix this thing up a bit
  7254.  
  7255.     * dbus/dbus-message.c (dbus_message_new_empty_header): increase
  7256.     preallocation sizes by a fair bit; not sure if this will be an
  7257.     overall performance win or not, but it does reduce reallocs.
  7258.  
  7259.     * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
  7260.     the test hack that forced constant realloc if asserts are
  7261.     disabled, so we can profile sanely. Sprinkle in some
  7262.     _DBUS_UNLIKELY() which are probably pointless, but before I
  7263.     noticed the real performance problem I put them in.
  7264.     (_dbus_string_validate_utf8): micro-optimize this thing a little
  7265.     bit, though callgrind says it didn't help; then special-case
  7266.     ascii, which did help a lot; then be sure we detect nul bytes as
  7267.     invalid, which is a bugfix.
  7268.     (align_length_then_lengthen): add some more _DBUS_UNLIKELY
  7269.     superstition; use memset to nul the padding instead of a manual
  7270.     loop.
  7271.     (_dbus_string_get_length): inline this as a
  7272.     macro; it showed up in the profile because it's used for loop
  7273.     tests and so forth
  7274.  
  7275. 2004-11-10  Colin Walters  <walters@verbum.org>
  7276.  
  7277.     * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
  7278.     for extra paranoia.
  7279.  
  7280. 2004-11-09  Colin Walters  <walters@verbum.org>
  7281.  
  7282.     * dbus/dbus-string.c (_dbus_string_get_length): New
  7283.     function, writes DBusString to C buffer.
  7284.  
  7285.     * dbus/dbus-string.h: Prototype it.
  7286.  
  7287.     * dbus/dbus-message.c (dbus_message_type_to_string): New
  7288.     function, converts message type into C string.
  7289.  
  7290.     * dbus/dbus-message.h: Prototype it.
  7291.  
  7292.     * bus/selinux.c (bus_selinux_check): Take source pid,
  7293.     target pid, and audit data.  Pass audit data to
  7294.     avc_has_perm.
  7295.     (log_audit_callback): New function, appends extra
  7296.     audit information.
  7297.     (bus_selinux_allows_acquire_service): Also take
  7298.     service name, add it to audit data.
  7299.     (bus_selinux_allows_send): Also take message
  7300.     type, interface, method member, error name,
  7301.     and destination, and add them to audit data.
  7302.     (log_cb): Initialize func_audit.
  7303.     
  7304.     * bus/selinux.h (bus_selinux_allows_acquire_service)
  7305.     (bus_selinux_allows_send): Update prototypes 
  7306.  
  7307.     * bus/services.c (bus_registry_acquire_service): Pass
  7308.     service name to bus_selinux_allows_acquire_service.
  7309.  
  7310.     * bus/bus.c (bus_context_check_security_policy): Pass
  7311.     additional audit data.  Move assignment of dest
  7312.     to its own line.
  7313.  
  7314. 2004-11-07  Colin Walters  <walters@verbum.org>
  7315.  
  7316.     * dbus/dbus-transport-unix.c (do_authentication): Always
  7317.     initialize auth_completed.
  7318.     
  7319. 2004-11-07  Colin Walters  <walters@verbum.org>
  7320.  
  7321.     * bus/bus.c (load_config): Break into three
  7322.     separate functions: process_config_first_time_only,
  7323.     process_config_every_time, and process_config_postinit.
  7324.     (process_config_every_time): Move call of
  7325.     bus_registry_set_service_context_table into
  7326.     process_config_postinit.
  7327.     (process_config_postinit): New function, does
  7328.     any processing that needs to happen late
  7329.     in initialization (and also on reload).
  7330.     (bus_context_new): Instead of calling load_config,
  7331.     open config parser here and call process_config_first_time_only
  7332.     and process_config_every_time directly.  Later, after
  7333.     we have forked but before changing UID,
  7334.     invoke bus_selinux_full_init, and then call
  7335.     process_config_postinit.
  7336.     (bus_context_reload_config): As in bus_context_new,
  7337.     load parse file inside here, and call process_config_every_time
  7338.     and process_config_postinit.
  7339.  
  7340.     * bus/services.h, bus/services.c
  7341.     (bus_registry_set_service_context_table): Rename
  7342.     from bus_registry_set_sid_table.  Take string hash from config
  7343.     parser, and convert them here into SIDs.
  7344.  
  7345.     * bus/config-parser.c (struct BusConfigParser): Have
  7346.     config parser only store a mapping of service->context
  7347.     string.
  7348.     (merge_service_context_hash): New function.
  7349.     (merge_included): Merge context string hashes instead
  7350.     of using bus_selinux_id_table_union.
  7351.     (bus_config_parser_new): Don't use bus_selinux_id_table_new;
  7352.     simply create a new string hash.
  7353.     (bus_config_parser_unref): Unref it.
  7354.     (start_selinux_child): Simply insert strings into hash,
  7355.     don't call bus_selinux_id_table_copy_over.
  7356.  
  7357.     * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
  7358.     (bus_selinux_id_table_copy_over): Delete.
  7359.  
  7360. 2004-11-03  Colin Walters  <walters@verbum.org>
  7361.  
  7362.     * bus/selinux.c (bus_selinux_pre_init): Kill some unused
  7363.     variables.
  7364.     
  7365. 2004-11-03  Colin Walters  <walters@verbum.org>
  7366.  
  7367.     * bus/test-main.c (test_pre_hook): Fix test logic,
  7368.     thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
  7369.  
  7370. 2004-11-02  Colin Walters  <walters@redhat.com>
  7371.  
  7372.     * bus/selinux.c (bus_selinux_init): Split into two functions,
  7373.     bus_selinux_pre_init and bus_selinux_post_init.
  7374.     (bus_selinux_pre_init): Just determine whether SELinux is
  7375.     enabled.
  7376.     (bus_selinux_post_init): Do everything else.
  7377.  
  7378.     * bus/main.c (main): Call bus_selinux_pre_init before parsing
  7379.     config file, and bus_selinux_post_init after.  This ensures that
  7380.     we don't lose the policyreload notification thread that
  7381.     bus_selinux_init created before forking previously.
  7382.     
  7383.     * bus/test-main.c (test_pre_hook): Update for split.
  7384.  
  7385. 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
  7386.  
  7387.     Patch from Johan Fischer <linux@fischaz.com>
  7388.     
  7389.     * mono/doc/Makefile.am (install-data-local): Added directory
  7390.     install for DESTDIR
  7391.  
  7392. 2004-10-29  Colin Walters  <walters@redhat.com>
  7393.  
  7394.     * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
  7395.     parameter for fd to write pid to.    
  7396.  
  7397.     * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
  7398.     
  7399.     * bus/bus.c (bus_context_new): Pass print_pid_fd
  7400.     to _dbus_become_daemon (bug #1720)
  7401.  
  7402. 2004-10-29  Colin Walters  <walters@redhat.com>
  7403.  
  7404.     Patch from Ed Catmur <ed@catmur.co.uk>
  7405.  
  7406.     * mono/doc/Makefile.am (install-data-local): Handle
  7407.     DESTDIR.
  7408.  
  7409. 2004-10-29  Colin Walters  <walters@redhat.com>
  7410.  
  7411.     * bus/.cvsignore, qt/.cvsignore: Update.
  7412.  
  7413. 2004-10-29  Colin Walters  <walters@redhat.com>
  7414.  
  7415.     Patch from Kristof Vansant <de_lupus@pandora.be>
  7416.  
  7417.     * configure.in: Detect Slackware.
  7418.     * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
  7419.     * bus/rc.messagebus.in: New file.
  7420.  
  7421. 2004-10-29  Colin Walters  <walters@redhat.com>
  7422.  
  7423.     * tools/dbus-monitor.c (filter_func): Return
  7424.     DBUS_HANDLER_RESULT_HANDLED in filter function
  7425.     for now.  See:
  7426.     http://freedesktop.org/pipermail/dbus/2004-August/001433.html
  7427.  
  7428. 2004-10-29  Colin Walters  <walters@redhat.com>
  7429.  
  7430.     Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
  7431.  
  7432.     * bus/services.c (bus_registry_acquire_service): 
  7433.     Correctly retrieve service name from DBusString
  7434.     for printing.
  7435.  
  7436. 2004-10-29  Colin Walters  <walters@redhat.com>
  7437.  
  7438.     * dbus/dbus-glib.h: Update documentation to not
  7439.     refer to internal APIs.
  7440.  
  7441. 2004-10-27  Joe Shaw  <joeshaw@novell.com>
  7442.  
  7443.     * mono/Arguments.cs (GetDBusTypeConstructor):
  7444.     type.UnderlyingSystemType will return "System.Byte" if you do it
  7445.     on "byte[]", which is not what we want.  So check the type.IsArray
  7446.     property and use System.Array instead.
  7447.  
  7448. 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
  7449.  
  7450.     * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
  7451.     the DBusUserInfo structure since this is passed into the function.
  7452.     This would cause a double free when the function that allocated
  7453.     the structure would try to free it when an error occured.
  7454.  
  7455.     * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
  7456.     use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
  7457.     for service activation to avoid 32bit/64bit parallel install issues
  7458.  
  7459. 2004-10-21  Colin Walters  <walters@verbum.org>
  7460.  
  7461.     * AUTHORS: Fix my email address, the @gnu.org one
  7462.     has been bouncing for some time.  Also add J5.
  7463.     
  7464. 2004-10-21  Colin Walters  <walters@verbum.org>
  7465.  
  7466.     * dbus/dbus-transport-unix.c (do_authentication): Return
  7467.     authentication status to callers.
  7468.     (unix_handle_watch): If we completed authentication this round,
  7469.     don't do another read.  Instead wait until the next iteration,
  7470.     after we've read any pending data in the auth buffer.
  7471.     (unix_do_iteration): Ditto.
  7472.     (unix_handle_watch): Updated for new do_authentication prototype.
  7473.  
  7474. 2004-10-18  Colin Walters  <walters@verbum.org>
  7475.  
  7476.     * bus/selinux.c (bus_selinux_enabled): Handle
  7477.     --disable-selinux case.
  7478.     
  7479. 2004-10-18  Colin Walters  <walters@verbum.org>
  7480.  
  7481.     * bus/selinux.h: Add bus_selinux_enabled.
  7482.     
  7483.     * bus/selinux.c (bus_selinux_enabled): Implement it.
  7484.     
  7485.     * bus/config-parser.c (struct include): Add
  7486.     if_selinux_enabled member.
  7487.     (start_busconfig_child): Parse if_selinux_enabled
  7488.     attribute for include.
  7489.     (bus_config_parser_content): Handle it.
  7490.  
  7491.     * bus/session.conf.in, bus/system.conf.in: Add
  7492.     inclusion of context mapping to default config files;
  7493.     conditional on SELinux being enabled.
  7494.     
  7495.     * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
  7496.     
  7497.     * test/data/invalid-config-files/badselinux-1.conf, 
  7498.     test/data/invalid-config-files/badselinux-2.conf:
  7499.     Test files for bad syntax.
  7500.     
  7501. 2004-10-17  Colin Walters  <walters@verbum.org>
  7502.  
  7503.     * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
  7504.     (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
  7505.     format specifier mismatches.
  7506.  
  7507. 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7508.  
  7509.     * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
  7510.     format string.
  7511.  
  7512.     * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
  7513.     pointer (bug #1540, Leonardo Boiko).
  7514.  
  7515. 2004-09-28  Jon Trowbridge  <trow@ximian.com>
  7516.  
  7517.     * mono/BusDriver.cs: Changed BusDriver struct to remove
  7518.     the ServiceCreated and ServiceDeleted events and replace them
  7519.     with the new ServiceOwnerChanged event.
  7520.  
  7521.     * mono/example/BusListener.cs: Added a new example program,
  7522.     which listens for and reports any ServiceOwnerChanged events
  7523.     on the bus driver.
  7524.  
  7525.     * mono/example/Makefile.am (DESTDIR): Build changes for the
  7526.     new BusListener.cs example.
  7527.  
  7528. 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7529.  
  7530.     * bus/signals.c (bus_match_rule_parse): validate the components of
  7531.     match rules (bug #1439).
  7532.  
  7533.     * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
  7534.  
  7535. 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7536.  
  7537.     * doc/dbus-specification.xml: document ServiceOwnerChanged
  7538.     signal.
  7539.     
  7540.     * bus/driver.c, bus/driver.h, bus/services.c: Use
  7541.     ServiceOwnerChanged signal instead of ServiceCreated and
  7542.     ServiceDeleted.
  7543.     
  7544.     * bus/dispatch.c: update testcase for the new signal.
  7545.  
  7546. 2004-09-20  Jon Trowbridge  <trow@ximian.com>
  7547.  
  7548.     Patch from Nat Friedman <nat@novell.com>
  7549.  
  7550.     * mono/Makefile.am: A number of small build fixes to allow "make
  7551.     distcheck" to succeed.
  7552.  
  7553.     * mono/example/Makefile.am: "make distcheck" fixes.
  7554.  
  7555.     * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
  7556.     key in @srcdir@.
  7557.  
  7558.     * test/Makefile.am: "make distcheck" fixes.
  7559.  
  7560. 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7561.  
  7562.     * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
  7563.  
  7564.     * doc/busconfig.dtd: update the DTD for the at_console attribute.
  7565.  
  7566.     * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
  7567.     messages after the first one (bug #1389).
  7568.     
  7569.     * bus/dispatch.c (check_double_hello_message): add a test case for
  7570.     the double hello message bug.
  7571.     (check_existent_service_activation): fix check of spawning error.
  7572.     
  7573. 2004-09-16  David Zeuthen  <david@fubar.dk>
  7574.  
  7575.     * python/dbus_bindings.pyx.in: Add support for int64 and uint64
  7576.  
  7577. 2004-09-12  David Zeuthen  <david@fubar.dk>
  7578.  
  7579.     Patch from Kay Sievers <kay.sievers@vrfy.org>
  7580.  
  7581.     * bus/bus.c (bus_context_new):
  7582.     * bus/bus.h:
  7583.     * bus/main.c (usage)
  7584.     (main):
  7585.     Add commandline option --nofork to override configuration file
  7586.     setting.
  7587.  
  7588. 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7589.  
  7590.     * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
  7591.     compilers don't like it (bug #974).
  7592.  
  7593. 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
  7594.  
  7595.     * qt/connection.*: Applied patch by J├⌐r├┤me Lodewyck
  7596.     <lodewyck@clipper.ens.fr> to integrate an existing
  7597.     connection into the Qt eventloop
  7598.  
  7599. 2004-08-30  Jon Trowbridge  <trow@ximian.com>
  7600.  
  7601.     * mono/BusDriver.cs: Added.  This is a class for interacting with
  7602.     the org.freedesktop.DBus service.
  7603.  
  7604.     * mono/Message.cs: Added a mechanism to expose the message that is
  7605.     currently being dispatched via the static Message.Current
  7606.     property.  Added Message.Sender and Message.Destination
  7607.     properties.
  7608.  
  7609.     * mono/Handler.cs: Expose the dispatched message via
  7610.     Message.Current when handling method calls.
  7611.  
  7612.     * mono/Service.cs: Expose the dispatched message via
  7613.     Message.Current when handling signal emissions.
  7614.     
  7615.     * mono/Connection.cs: Bind dbus_bus_get_base_service via the
  7616.     Connection.BaseService property.
  7617.  
  7618. 2004-08-28  Havoc Pennington  <hp@redhat.com>
  7619.  
  7620.     * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
  7621.  
  7622.         More fixes from Steve Grubb
  7623.     
  7624.     * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
  7625.     (_dbus_listen_tcp_socket): fix fd leak
  7626.  
  7627.     * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
  7628.     EINTR to a bit lower in the code
  7629.  
  7630. 2004-08-26  Jon Trowbridge  <trow@ximian.com>
  7631.  
  7632.     * bus/driver.c (bus_driver_handle_service_exists): Respond with
  7633.     TRUE if we are inquiring about the existence of the built-in
  7634.     org.freedesktop.DBus service.
  7635.  
  7636. 2004-08-25  John Palmieri  <johnp@redhat.com>
  7637.     * bus/config-parser.c:
  7638.     (struct PolicyType): Add POLICY_CONSOLE
  7639.     (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
  7640.     (start_busconfig_child): Sets up console element when
  7641.     <policy at_console=""> is encountered in a policy file
  7642.     (append_rule_from_element): Convert console elements to console
  7643.     rules.
  7644.  
  7645.     * bus/policy.c: 
  7646.     (bus_policy_create_client_policy): Add console rules to the client
  7647.     policy based on if the client is at the console
  7648.     (bus_policy_append_console_rule): New function for adding a
  7649.     console rule to a policy
  7650.     (bus_policy_merge): Handle console rule merging
  7651.  
  7652.     * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
  7653.     where we check for console user files
  7654.     
  7655.     * dbus/dbus-sysdeps.c:
  7656.     (_dbus_file_exists): New function which checks if the given
  7657.     file exists
  7658.     (_dbus_user_at_console): New function which does the system
  7659.     specific process of checking if the user is at the console
  7660.  
  7661.     * dbus/dbus-userdb.c:
  7662.     (_dbus_is_console_user): New function converts a UID to user name
  7663.     and then calls the system specific _dbus_user_at_console to 
  7664.     see if the user is at the console and therefor a console user
  7665.  
  7666. 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7667.  
  7668.     * bus/config-parser.c (set_limit):
  7669.     * bus/dbus-daemon-1.1.in:
  7670.     * test/data/valid-config-files/many-rules.conf: set the
  7671.     max_match_rules_per_connection limt from the config file. 
  7672.  
  7673.     * doc/busconfig.dtd: update the DTD.
  7674.  
  7675.     * bus/driver.c: remove some unused variables.
  7676.  
  7677. 2004-08-24  Mikael Hallendal  <micke@imendio.com>
  7678.  
  7679.     * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
  7680.     it's been replaced by dbus_g_bus_get
  7681.  
  7682. 2004-08-23  Colin Walters  <walters@redhat.com>
  7683.  
  7684.     Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
  7685.  
  7686.     * bus/selinux.h: Prototype bus_selinux_get_policy_root.
  7687.  
  7688.     * bus/selinux.c: Create a thread for policy reload notification.
  7689.     (bus_selinux_get_policy_root): Implement.
  7690.  
  7691.     * bus/config-parser.c (start_busconfig_child)
  7692.     (bus_config_parser_content): Support SELinux-root relative
  7693.     inclusion.
  7694.  
  7695.     * configure.in <HAVE_SELINUX>: Add -lpthread.
  7696.     
  7697.     * bus/test-main.c (test_pre_hook, test_post_hook): New.
  7698.     (test_post_hook): Move memory checking into here.
  7699.     (test_pre_hook, test_post_hook): Move SELinux checks in
  7700.     here, but conditional on a DBUS_TEST_SELINUX environment
  7701.     variable.  Unfortunately we can't run the SELinux checks
  7702.     as a normal user, since they won't have any permissions
  7703.     for /selinux.  So this will have to be tested manually
  7704.     for now, until we have virtualization for most of
  7705.     libselinux.
  7706.     
  7707. 2004-08-23  Havoc Pennington  <hp@redhat.com>
  7708.  
  7709.     * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
  7710.     drop supplementary groups, suggested by Steve Grubb
  7711.  
  7712. 2004-08-20  Colin Walters  <walters@redhat.com>
  7713.  
  7714.     * bus/config-parser.c (start_busconfig_child): Remove some unused
  7715.     variables.
  7716.     
  7717.     * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
  7718.     warning.
  7719.  
  7720. 2004-08-17  Joe Shaw  <joeshaw@novell.com>
  7721.  
  7722.     * configure.in: If --enable-mono is passed in, if we can't find
  7723.     mono error out.
  7724.  
  7725.     * mono/Makefile.am: Use /gacutil to install assemblies into the
  7726.     GAC and not /root.
  7727.  
  7728. 2004-08-12  Havoc Pennington  <hp@redhat.com>
  7729.  
  7730.     * NEWS: update for 0.22
  7731.  
  7732.     * configure.in: release 0.22
  7733.  
  7734. 2004-08-11  Colin Walters  <walters@redhat.com>
  7735.  
  7736.     * tools/dbus-send.c (main, usage): Add --reply-timeout
  7737.     argument.
  7738.  
  7739. 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7740.  
  7741.     * bus/bus.c (process_config_first_time_only): get rid of an unused
  7742.     DBusError that was causing a memoy leak (bug #989).
  7743.  
  7744.     * dbus/dbus-keyring.c, dbus/dbus-message.c:
  7745.     fix compilation on Solaris/Forte C (bug #974)
  7746.  
  7747.     * bus/main.c (main): plug two minuscule memleaks.
  7748.  
  7749. 2004-08-10  Havoc Pennington  <hp@redhat.com>
  7750.  
  7751.     * doc/dbus-tutorial.xml: add some more info on GLib bindings
  7752.  
  7753. 2004-08-09  Havoc Pennington  <hp@redhat.com>
  7754.  
  7755.     * COPYING: switch to Academic Free License version 2.1 instead of
  7756.     2.0, to resolve complaints about patent termination clause.
  7757.  
  7758. 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
  7759.  
  7760.     * README: added documentation for the --enable-python 
  7761.     configure switch.
  7762.  
  7763. 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7764.  
  7765.     * bus/config-parser.c (bus_config_parser_new): fix an invalid
  7766.     _unref in the SELinux support.
  7767.  
  7768.     * doc/busconfig.dtd: update DTD for SELinux support.
  7769.  
  7770.     * bus/config-loader-libxml.c: fix error handler and parser
  7771.     initialisation/cleanup. OOM test now works with libxml2 HEAD.
  7772.  
  7773.     * configure.in: remove the warning about libxml2.
  7774.  
  7775.     * dbus/dbus-bus.c: silence doxygen warning.
  7776.  
  7777. 2004-07-31  Colin Walters  <walters@redhat.com>
  7778.  
  7779.     * configure.in: Move #error in SELinux check to its own line.
  7780.  
  7781. 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7782.  
  7783.     * dbus/dbus-internals.h (_DBUS_SET_OOM):
  7784.     * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
  7785.     dbus_error_set.
  7786.  
  7787.     * bus/dispatch.c (check_send_exit_to_service): fix the test case,
  7788.     broken by the change in the _SET_OOM macros.
  7789.  
  7790. 2004-07-31  Colin Walters  <walters@redhat.com>
  7791.  
  7792.     * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
  7793.     BUS_SET_OOM.
  7794.  
  7795. 2004-07-31  Colin Walters  <walters@redhat.com>
  7796.  
  7797.     * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
  7798.     to correctly detect DBUS__ACQUIRE_SVC.  Also add an
  7799.     AC_MSG_CHECKING.
  7800.  
  7801. 2004-07-24  Havoc Pennington  <hp@redhat.com>
  7802.  
  7803.     SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
  7804.  
  7805.     * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
  7806.     functionality
  7807.  
  7808.     * configure.in: add --enable-selinux
  7809.     
  7810.     * bus/policy.c (bus_policy_merge): add FIXME to a comment
  7811.  
  7812.     * bus/main.c (main): initialize and shut down selinux
  7813.  
  7814.     * bus/connection.c: store SELinux ID on each connection, to avoid 
  7815.     repeated getting of the string context and converting it into 
  7816.     an ID
  7817.  
  7818.     * bus/bus.c (bus_context_get_policy): new accessor, though it
  7819.     isn't used
  7820.     (bus_context_check_security_policy): check whether the security
  7821.     context of sender connection can send to the security context of
  7822.     recipient connection
  7823.  
  7824.     * bus/config-parser.c: add parsing for <selinux> and <associate>
  7825.     
  7826.     * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
  7827.     implement dbus_connection_get_unix_fd()
  7828.  
  7829.     * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
  7830.     function, used by the selinux stuff
  7831.     
  7832. 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7833.  
  7834.     * bus/config-loader-libxml.c: complete the implementation of
  7835.     libxml backend for config file loader. Doesn't work with full OOM
  7836.     test yet. 
  7837.     
  7838.     * configure.in: change error when selecting libxml into a warning.
  7839.     
  7840.     * test/data/invalid-config-files: add two non-well-formed XML
  7841.     files. 
  7842.     
  7843.     * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
  7844.     
  7845.     * dbus/dbus-transport-unix.c (unix_handle_watch): do not
  7846.     disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
  7847.     be necessary to read all the buffer. (bug #894)
  7848.  
  7849.     * bus/activation.c (bus_activation_activate_service): fix a
  7850.     potential assertion failure (bug #896). Small optimization in the
  7851.     case of auto-activation messages.
  7852.  
  7853.     * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
  7854.     add test case for byte-through-vararg bug (#901). patch by Kimmo
  7855.     H├ñm├ñl├ñinen. 
  7856.  
  7857. 2004-07-28  Anders Carlsson  <andersca@gnome.org>
  7858.  
  7859.     * python/dbus.py:
  7860.     * python/dbus_bindings.pyx.in:
  7861.     Add dbus.init_gthreads (), allow emit_signal to pass
  7862.     arguments to the signal.
  7863.     
  7864. 2004-07-24  Havoc Pennington  <hp@redhat.com>
  7865.  
  7866.     * AUTHORS: add some people, not really comprehensively, let me
  7867.     know if I missed you
  7868.  
  7869. 2004-07-24  Havoc Pennington  <hp@redhat.com>
  7870.  
  7871.     * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
  7872.     Owen
  7873.  
  7874.     * test/Makefile.am (DIST_SUBDIRS): here also
  7875.  
  7876. 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7877.  
  7878.     * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
  7879.     breaking build on Solaris, reported by Farhad Saberi on the ML.
  7880.  
  7881.     * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
  7882.     va_arg invocation to account for integer promotion in the case of
  7883.     DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
  7884.  
  7885.     * bus/services.c (bus_service_remove_owner): fix bug #902, use
  7886.     _dbus_list_get_first_link, not _dbus_list_get_first.
  7887.  
  7888.     * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
  7889.  
  7890.     * dbus/dbus-object-tree.c (free_subtree_recurse): always null
  7891.     handler functions so that the asserts in _dbus_object_subtree_unref
  7892.     do not fail.
  7893.  
  7894.     * dbus/dbus-transport-unix.c (do_reading):
  7895.     _dbus_transport_queue_messages return value is of type
  7896.     dbus_bool_t, not DBusDispatchStatus.
  7897.     
  7898. 2004-07-19  David Zeuthen  <david@fubar.dk>
  7899.  
  7900.     * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
  7901.  
  7902.     * bus/dispatch.c:
  7903.     (check_get_connection_unix_user): Debug says GetProperty; but the
  7904.     method is called GetConnectionUnixUser
  7905.     (check_get_connection_unix_process_id): New function
  7906.     (bus_dispatch_test): Actually call check_get_connection_unix_user();
  7907.     also call check_get_connection_unix_process_id()
  7908.     
  7909.     * bus/driver.c:
  7910.     (bus_driver_handle_get_connection_unix_process_id): New function,
  7911.     handles GetConnectionUnixProcessID on the org.freedesktop.DBus
  7912.     interface
  7913.     
  7914.     * dbus/dbus-auth.c:
  7915.     (handle_server_data_external_mech): Set pid from the credentials
  7916.     obtained from the socket
  7917.     
  7918.     * dbus/dbus-connection.c:
  7919.     (dbus_connection_get_unix_process_id): New function
  7920.     
  7921.     * dbus/dbus-connection.h: 
  7922.     Add prototype for dbus_connection_get_unix_process_id
  7923.     
  7924.     * dbus/dbus-transport.c:
  7925.     (_dbus_transport_get_unix_process_id): New function
  7926.     
  7927.     * dbus/dbus-transport.h:
  7928.     Add prototype for _dbus_transport_get_unix_process_id
  7929.     
  7930. 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  7931.  
  7932.     * dbus/dbus-message.c: Message counter fix, patch by Christian
  7933.     Hammond <chipx86@gnupdate.org>
  7934.  
  7935. 2004-07-18  Seth Nickell  <seth@gnome.org>
  7936.  
  7937.     * python/dbus.py:
  7938.     * python/dbus_bindings.pyx.in:
  7939.     * python/tests/test-client.py:
  7940.  
  7941.     Add dbus.ByteArray and dbus_bindings.ByteArray
  7942.     types so that byte streams can be passed back.
  7943.  
  7944.     Give jdahlin the heaps of credit that are so
  7945.     rightfully his.
  7946.     
  7947. 2004-07-12  Seth Nickell  <seth@gnome.org>
  7948.  
  7949.     * python/dbus.py:
  7950.  
  7951.     Add message argument to the default object_method_handler
  7952.     function.
  7953.     
  7954.     * python/dbus_bindings.pyx.in:
  7955.  
  7956.     Automatically return NIL when passed an empty list
  7957.     (we can't pass back a list since lists are typed
  7958.     and we don't have any idea what type the the client
  7959.     intended the list to be... :-( )
  7960.     
  7961. 2004-07-10  Seth Nickell  <seth@gnome.org>
  7962.  
  7963.     * python/examples/Makefile.am:
  7964.  
  7965.     Fix distcheck breakage caused by new examples.
  7966.  
  7967. 2004-07-10  Seth Nickell  <seth@gnome.org>
  7968.  
  7969.     * python/dbus.py:
  7970.  
  7971.     Add "message" argument to service-side dbus.Object
  7972.     methods. This will break existing services written
  7973.     using the python bindings, but will allow extraction
  7974.     of all the message information (e.g. who its from).
  7975.  
  7976.     Add improved "object oriented" signal handling/emission.
  7977.     
  7978.     * python/examples/example-service.py:
  7979.  
  7980.     Nix this example.
  7981.     
  7982.     * python/examples/example-signal-emitter.py:
  7983.     * python/examples/example-signal-recipient.py:
  7984.  
  7985.     Two new examples that show how to emit and receive
  7986.     signals using the new APIs.
  7987.     
  7988.     * python/examples/example-signals.py:
  7989.     * python/examples/gconf-proxy-service.py:
  7990.     * python/examples/gconf-proxy-service2.py:
  7991.  
  7992.     Add "message" argument to service methods.
  7993.  
  7994. 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
  7995.  
  7996.     * bus/driver.c (bus_driver_handle_get_connection_unix_user)
  7997.     * dbus/bus.c (dbus_bus_get_unix_user)
  7998.     * doc/dbus-specification.xml: implement GetConnectionUnixUser
  7999.     method of org.freedesktop.DBus interface.
  8000.  
  8001.     * bus/dispatch.c: test case
  8002.  
  8003. 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
  8004.  
  8005.     * python/Makefile.am: switched include directory from glib/ to dbus/
  8006.     since dbus-glib.h moved
  8007.  
  8008. 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8009.  
  8010.     * configure.in: prevent building the gcj stuff and libxml loader
  8011.     since they are broken.
  8012.  
  8013. 2004-06-20  Havoc Pennington  <hp@redhat.com>
  8014.  
  8015.         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
  8016.     codes from the dbus error names
  8017.     
  8018.         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
  8019.     as dbus/dbus-glib.h and that breakage is now visible due to 
  8020.     including dbus/dbus-glib.h in dbus-glib-lowlevel.h
  8021.     
  8022.     * glib/dbus-glib.h: s/gproxy/g_proxy/
  8023.  
  8024.     * dbus/dbus-shared.h: new header to hold stuff shared with
  8025.     binding APIs
  8026.     
  8027.     * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
  8028.     than dbus-errors.h
  8029.  
  8030.     * glib/dbus-glib.h (dbus_set_g_error): move to
  8031.     dbus-glib-lowlevel.h
  8032.  
  8033.     * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
  8034.     of stuff to enable this
  8035.  
  8036.     * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
  8037.  
  8038.     * a bunch of other changes with the same basic "separate glib 
  8039.     bindings from dbus.h" theme
  8040.     
  8041. 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
  8042.  
  8043.     * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
  8044.  
  8045.     * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
  8046.  
  8047. 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8048.  
  8049.     * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
  8050.     the reply value of the ServiceExists message.
  8051.  
  8052. 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
  8053.  
  8054.     * python/dbus_bindings.pyx.in: No longer need to parse path
  8055.     elements and pass them as arrays of strings.  The C API now
  8056.     accepts plain path strings.
  8057.     (_build_parsed_path): removed 
  8058.  
  8059. 2004-06-07  Havoc Pennington  <hp@redhat.com>
  8060.  
  8061.     * doc/TODO: remove auto-activation item since it's done; sort
  8062.     items by importance/milestone
  8063.  
  8064. 2004-06-07  Havoc Pennington  <hp@redhat.com>
  8065.  
  8066.     * dbus/dbus-message-builder.c (_dbus_message_data_load): append
  8067.     random signature when using REQUIRED_FIELDS (this hack won't work
  8068.     in the long term)
  8069.  
  8070.     * dbus/dbus-message.c: change the signature to be a header field,
  8071.     instead of message->signature special-case string. Incremental
  8072.     step forward. Then we can fix up code to send the signature in the
  8073.     message, then fix up code to validate said signature, then fix up
  8074.     code to not put the typecodes inline, etc.
  8075.     (load_one_message): don't make up the signature after the fact
  8076.     (decode_header_data): require signature field for the known
  8077.     message types
  8078.  
  8079.     * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
  8080.  
  8081.     * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
  8082.  
  8083. 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
  8084.  
  8085.     * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
  8086.  
  8087.     * mono/Handler.cs: Updated to follow new path argument for
  8088.     (un-)registering objects.
  8089.  
  8090.     * mono/example/Makefile.am:
  8091.     * mono/Makefile.am:
  8092.     * configure.in: Bumped required version for mono and use new -pkg
  8093.     syntax for deps
  8094.  
  8095. 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8096.  
  8097.     * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
  8098.     registration functions take the path argument as char* instead of
  8099.     char**.
  8100.  
  8101.     * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
  8102.     split off the path decompostion part of
  8103.     _dbus_demarshal_object_path. Some misc. fixes to silence compiler
  8104.     warnings. 
  8105.  
  8106.     * glib/dbus-gobject.c, test/test-service.c: update accordingly.
  8107.     
  8108. 2004-06-02  Kristian H├╕gsberg  <krh@redhat.com>
  8109.  
  8110.     * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
  8111.     machine approach.  A state is implemented as a function that
  8112.     handles incoming events as specified for that state.
  8113.     
  8114.     * doc/dbus-specification.xml: Update auth protocol state machine
  8115.     specification to match implementation.  Remove some leftover
  8116.     base64 examples.
  8117.  
  8118. 2004-06-02  Kristian H├╕gsberg  <krh@redhat.com>
  8119.  
  8120.     * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
  8121.     dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
  8122.     quiet doxygen.
  8123.  
  8124.     * Doxyfile.in: remove deprecated options.
  8125.  
  8126.     * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
  8127.     glib/test-thread.h, glib/test-thread-client.c,
  8128.     glib/test-thread-server.c, glib/test-profile.c,
  8129.     glib/test-dbus-glib.c: remove these unused files.
  8130.  
  8131. 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8132.  
  8133.     * dbus/dbus-object-tree.c
  8134.     (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
  8135.     non-fallback handlers (bug #684).
  8136.     (_dbus_object_subtree_new): initialize invoke_as_fallback field.
  8137.     (find_subtree_recurse): report wether the returned subtree is an
  8138.     exact match or a "fallback" match higher up in the tree.
  8139.     (object_tree_test_iteration): update test case.
  8140.  
  8141. 2004-06-01  Seth Nickell  <seth@gnome.org>
  8142.  
  8143.     * python/dbus_bindings.pyx.in:
  8144.     * python/tests/test-client.py:
  8145.  
  8146.     Round off basic type support. Add dicts (yay!), and 
  8147.     remaining array types.
  8148.  
  8149.     Make MessageIter more general so it works for dicts too.
  8150.  
  8151.     Mark all loop variables as C integers.
  8152.     
  8153. 2004-05-31  Havoc Pennington  <hp@redhat.com>
  8154.  
  8155.     * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
  8156.     "in" before "out"
  8157.  
  8158.     * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
  8159.  
  8160.     * glib/dbus-glib-tool.c (main): set up to have a --self-test
  8161.     option that runs the tests, and start filling in some code
  8162.     including for starters just dumping the interfaces to stdout
  8163.  
  8164.     * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
  8165.  
  8166.     * test/data/valid-introspection-files/lots-of-types.xml: test of
  8167.     an example introspection file
  8168.  
  8169.     * glib/dbus-gparser.c (parser_check_doctype): doctype should be
  8170.     "node" (I think...)
  8171.  
  8172. 2004-05-31  Seth Nickell  <seth@gnome.org>
  8173.  
  8174.     * python/dbus_bindings.pyx.in:
  8175.     * python/tests/test-client.py:
  8176.  
  8177.     Test Suite: 1
  8178.     Python Bindings: 0
  8179.  
  8180.     Fix string array memory trashing bug... oops...
  8181.  
  8182. 2004-05-30  Seth Nickell  <seth@gnome.org>
  8183.  
  8184.     * python/dbus.py:
  8185.  
  8186.     Add a nicer-but-less-flexible alternate API for handling 
  8187.     calls to virtual objects in dbus.ObjectTree.
  8188.  
  8189.     Screw up the argument order to the dbus.Object constructor
  8190.     for consistency with dbus.ObjectTree (and to make dbus_methods
  8191.     optional for future extension)
  8192.     
  8193.     * python/examples/Makefile.am:
  8194.     * python/examples/gconf-proxy-service.py:
  8195.     * python/examples/gconf-proxy-service2.py:
  8196.  
  8197.     Alternate implementation of gconf-proxy-service using the
  8198.     nicer dbus.ObjectTree API.
  8199.     
  8200.     * python/examples/example-service.py:
  8201.     * python/tests/test-server.py
  8202.  
  8203.     Reverse the argument order to deal with dbus.Object constructor
  8204.     changes.
  8205.     
  8206. 2004-05-30  Seth Nickell  <seth@gnome.org>
  8207.  
  8208.     * python/examples/example-client.py:
  8209.     * python/examples/example-service.py:
  8210.  
  8211.     Take it back. Lists seem to work but they're broken
  8212.     in the test suite. Make the base examples use
  8213.     lists (works fine).
  8214.  
  8215. 2004-05-30  Seth Nickell  <seth@gnome.org>
  8216.  
  8217.     * python/dbus_bindings.pyx.in:
  8218.     * python/tests/test-client.py:
  8219.  
  8220.     Add some more tests and fix errors that crop up.
  8221.     Unfortunately, currently it seems like marshalling
  8222.     and unmarshalling of lists is completely broken :-(
  8223.  
  8224. 2004-05-30  Seth Nickell  <seth@gnome.org>
  8225.  
  8226.     * python/dbus_bindings.pyx.in:
  8227.  
  8228.     Add support for ObjectPath type.
  8229.  
  8230.     * python/dbus.py:
  8231.  
  8232.     Refactor message handling code to a common function.
  8233.     
  8234.     * python/tests/test-client.py:
  8235.     * python/tests/test-server.py:
  8236.  
  8237.     Add tests that check to make sure values of all types
  8238.     can be echoed from a service w/o mangling.
  8239.     
  8240. 2004-05-29  Seth Nickell  <seth@gnome.org>
  8241.  
  8242.     * python/dbus.py:
  8243.  
  8244.     Add ObjectTree class which allows implementation
  8245.     of trees of "virtual" objects. Basically the python
  8246.     wrapper for "register_fallback".
  8247.     
  8248.     * python/examples/Makefile.am
  8249.     * python/examples/gconf-proxy-client.py:
  8250.     * python/examples/gconf-proxy-service.py:
  8251.  
  8252.     Implement a simple GConf proxy service that supports
  8253.     get/set on string and int GConf keys using the ObjectTree.
  8254.     
  8255. 2004-05-29  Seth Nickell  <seth@gnome.org>
  8256.  
  8257.     * python/dbus.py:
  8258.     * python/examples/example-client.py:
  8259.     * python/examples/example-service.py:
  8260.     * python/examples/list-system-services.py:
  8261.  
  8262.     Add SessionBus, SystemBus and ActivationBus classes
  8263.     so you don't need to know the special little BUS_TYPE
  8264.     flag.
  8265.     
  8266. 2004-05-29  Havoc Pennington  <hp@redhat.com>
  8267.  
  8268.     * bus/config-parser.c (process_test_valid_subdir): temporarily
  8269.     stop testing config parser OOM handling, since expat has issues
  8270.     http://freedesktop.org/pipermail/dbus/2004-May/001153.html
  8271.  
  8272.     * bus/dbus-daemon-1.1.in: change requested_reply to
  8273.     send_requested_reply/receive_requested_reply so we can send the
  8274.     replies, not just receive them.
  8275.  
  8276.     * bus/config-parser.c: parse the new
  8277.     send_requested_reply/receive_requested_reply
  8278.  
  8279.     * bus/policy.c (bus_client_policy_check_can_send): add
  8280.     requested_reply argument and use it
  8281.  
  8282.     * bus/bus.c (bus_context_check_security_policy): pass through
  8283.     requested_reply status to message send check
  8284.  
  8285.     * bus/system.conf.in: adapt to requested_reply change
  8286.     
  8287. 2004-05-28  Havoc Pennington  <hp@redhat.com>
  8288.  
  8289.     * test/glib/test-service-glib.c (main): remove unused variable
  8290.  
  8291.     * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
  8292.  
  8293.     * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
  8294.     from the enum, no longer in use.
  8295.  
  8296.     * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
  8297.     works right.
  8298.  
  8299.     * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
  8300.     whether error_name passed in is a valid error name.
  8301.  
  8302. 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
  8303.  
  8304.     * dbus/dbus-message.c (dbus_message_get_args): Added support for
  8305.     OBJECT_PATH and OBJECT_PATH_ARRAY
  8306.  
  8307. 2004-05-28  Seth Nickell  <seth@gnome.org>
  8308.  
  8309.     * python/examples/Makefile.am:
  8310.  
  8311.     Forget to add Makefile.am. Do not pass go.
  8312.  
  8313. 2004-05-28  Michael Meeks  <michael@ximian.com>
  8314.  
  8315.     * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
  8316.     fix no int64 case.
  8317.  
  8318.     * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
  8319.  
  8320.     * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
  8321.     (_dbus_message_iter_get_basic_type_array): impl.
  8322.     drastically simplify ~all relevant _get methods to use these.
  8323.     (_dbus_message_iter_append_basic_array),
  8324.     (dbus_message_iter_append_basic): impl
  8325.     drastically simplify ~all relevant _append methods to use these.
  8326.  
  8327.     * dbus/dbus-message-builder.c (parse_basic_type) 
  8328.     (parse_basic_array, lookup_basic_type): impl.
  8329.     (_dbus_message_data_load): prune scads of duplicate /
  8330.     cut & paste coding.
  8331.  
  8332.     * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
  8333.     (_dbus_demarshal_basic_type): implement,
  8334.     (demarshal_and_validate_len/arg): beef up debug.
  8335.     (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
  8336.  
  8337. 2004-05-27  Seth Nickell  <seth@gnome.org>
  8338.  
  8339.     * configure.in:
  8340.     * python/Makefile.am:
  8341.  
  8342.     Include the example python apps in the tarball.
  8343.     
  8344.     * python/examples/list-system-services.py
  8345.  
  8346.     Add a python new example that fetches the list of services
  8347.     from the system bus.
  8348.     
  8349. 2004-05-27  Seth Nickell  <seth@gnome.org>
  8350.  
  8351.     * python/dbus.py:
  8352.     * python/dbus_bindings.pyx.in:
  8353.  
  8354.     Fix failure to notify that a signal was not handled,
  8355.     resulted in hung functions.
  8356.     
  8357. 2004-05-25  Colin Walters  <walters@redhat.com>
  8358.  
  8359.     * tools/dbus-monitor.c (main): Monitor all types of messages.
  8360.  
  8361. 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
  8362.  
  8363.     * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
  8364.     which unregisters the object path and disposes the handler.
  8365.  
  8366. 2004-05-23  Kristian H├╕gsberg  <krh@redhat.com>
  8367.  
  8368.         Patch from Timo Ter├ñs <ext-timo.teras@nokia.com> (#614):
  8369.          
  8370.     * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
  8371.         operands to && so we call dbus_message_iter_next () for the last
  8372.         argument also.
  8373.  
  8374. 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8375.  
  8376.     * dbus/dbus-object-tree.c
  8377.     (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
  8378.     children even if the requested path isn't registered.
  8379.     (object_tree_test_iteration): test object_tree_list_registered.
  8380.  
  8381.     * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
  8382.     it to 0.
  8383.     
  8384. 2004-05-20  Kristian H├╕gsberg  <krh@redhat.com>
  8385.  
  8386.     * doc/TODO: Remove resolved items.
  8387.  
  8388.     * bus/expirelist.h (struct BusExpireList): remove unused n_items
  8389.     field.
  8390.     
  8391.     * bus/connection.c (bus_connections_expect_reply): Enforce the
  8392.     per-connection limit on pending replies.
  8393.     
  8394.     Patch from Jon Trowbridge <trow@ximian.com>:
  8395.  
  8396.      * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
  8397.      up a watch that triggers a config reload when one end of the pipe
  8398.      becomes readable.
  8399.      (signal_handler): Instead of doing the config reload in our SIGHUP
  8400.      handler, just write to the reload pipe and let the associated
  8401.      watch handle the reload when control returns to the main loop.
  8402.  
  8403.      * bus/driver.c (bus_driver_handle_reload_config): Added.
  8404.      Implements a ReloadConfig method for requesting a configuration
  8405.      file reload via the bus driver.
  8406.  
  8407. 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
  8408.  
  8409.     * HACKING: Updated release instructions concerning the wiki page.
  8410.  
  8411. 2004-05-18  Kristian H├╕gsberg  <krh@redhat.com>
  8412.  
  8413.      * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
  8414.     filter against auth->allowed_mechs; we only add allowed mechs in
  8415.     record_mechanisms().
  8416.  
  8417.      * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
  8418.     ALLOWED_MECHS to auth-script format so we can set the list of
  8419.     allowed mechanisms.
  8420.  
  8421.      * data/auth/client-out-of-mechanisms.auth-script: New test to
  8422.     check client disconnects when it is out of mechanisms to try.
  8423.  
  8424.      * dbus/dbus-auth.c (process_command): Remove check for lines
  8425.     longer that 1 MB; we only buffer up maximum 16 kB.
  8426.  
  8427.      * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
  8428.     dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
  8429.     Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
  8430.     assume there might be unused bytes.
  8431.  
  8432.      * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
  8433.     client-out-of-mechs, it is handled in process_reject(). Move check
  8434.     for max failures to send_rejected(), as it's a server-only thing.
  8435.  
  8436.     * dbus/dbus-auth.c: Factor out protocol reply code into functions
  8437.     send_auth(), send_data(), send_rejected(), send_error(),
  8438.     send_ok(), send_begin() and send_cancel().
  8439.  
  8440. 2004-05-17  Kristian H├╕gsberg  <krh@redhat.com>
  8441.  
  8442.     Remove base64 encoding, replace with hex encoding. Original patch
  8443.     from trow@ximian.com, added error handling.
  8444.  
  8445.     * dbus/dbus-string.c (_dbus_string_base64_encode)
  8446.     (_dbus_string_base64_decode): Remove.
  8447.     (_dbus_string_hex_decode): Add end_return argument so we can
  8448.     distinguish between OOM and invalid hex encoding.
  8449.     (_dbus_string_test): Remove base64 tests and add test case for
  8450.     invalid hex.
  8451.  
  8452.     * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
  8453.     Replace base64 with hex.
  8454.  
  8455.     * test/data/auth/invalid-hex-encoding.auth-script: New test case
  8456.     for invalid hex encoded data in auth protocol.
  8457.  
  8458. 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8459.  
  8460.     * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
  8461.     leak.
  8462.  
  8463. 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
  8464.  
  8465.     * mono/dbus-sharp.dll.config.in: Added for GAC
  8466.     * mono/dbus-sharp.snk: Added for GAC
  8467.     * mono/Assembly.cs.in: Added for GAC
  8468.     * mono/Makefile.am: Changes for GAC installation    
  8469.     * configure.in: Added refs for dbus-sharp.dll.config.in and
  8470.     Assembly.cs.in. More fixes for mono testing
  8471.     * mono/example/Makefile.am: Changed var to CSC
  8472.     * Makefile.am: Changed flag name to DBUS_USE_CSC
  8473.  
  8474. 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
  8475.  
  8476.     * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
  8477.     * mono/doc/*: Added documentation framework
  8478.     * configure.in: Added monodoc check
  8479.     * README: Added description of mono configure flags
  8480.  
  8481. 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
  8482.  
  8483.     * doc/dbus-specification.xml: Added a "Required" column to the 
  8484.     header fields table and changed the "zero or more" verbage in
  8485.     the above paragraph to read "The header must contain the required 
  8486.     named header fields and zero or more of the optional named header 
  8487.     fields".
  8488.     * test/data/invalid-messages/*.message: Added the required PATH 
  8489.     named header field to the tests so that they don't fail on 
  8490.     'Missing path field'
  8491.  
  8492. 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
  8493.  
  8494.     * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
  8495.     the stack by implicitly defining variable and parameter types and
  8496.     removing the hack of defining C pointers as python objects and later
  8497.     casting them.
  8498.  
  8499. 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
  8500.  
  8501.     * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
  8502.  
  8503. 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
  8504.  
  8505.     * mono/DBusType/Dict.cs: Handle empty dicts
  8506.     * mono/DBusType/Array.cs: Handle empty arrays
  8507.     * mono/Arguments.cs: Handle empty arguments
  8508.  
  8509. 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
  8510.  
  8511.     * dbus-sharp.pc.in: Modified to include include Libs and Requires
  8512.     field
  8513.  
  8514. 2004-04-25  Kristian H├╕gsberg  <krh@redhat.com>
  8515.  
  8516.     * test/data/valid-messages/standard-*.message: Update message
  8517.     test scripts to new header field names.
  8518.  
  8519. 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
  8520.  
  8521.     * test/break-loader.c (randomly_do_n_things): tracked down buffer
  8522.     overflow to times_we_did_each_thing array which would chop off the
  8523.     first character of the failure_dir string. Increased the size of
  8524.     the array to 7 to reflect the number of random mutation functions
  8525.     we have.
  8526.  
  8527. 2004-04-21  Kristian H├╕gsberg  <krh@redhat.com>
  8528.  
  8529.     * dbus/dbus-server-unix.c (unix_finalize): Don't unref
  8530.     unix_server->watch here, it is unreffed in disconnect.
  8531.     (_dbus_server_new_for_tcp_socket): convert NULL host to
  8532.     "localhost" here so we don't append NULL to address.
  8533.     
  8534.     * dbus/dbus-server.c (_dbus_server_test): Add test case for
  8535.     various addresses, including tcp with no explicit host.
  8536.  
  8537. 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8538.  
  8539.     * dbus/dbus-message.c (decode_header_data, decode_string_field):
  8540.     fix incorrect setting of .name_offset in the HeaderField (it was
  8541.     off by two bytes, positioned right after the name and typecode)
  8542.  
  8543.     * bus/bus.c (bus_context_new, bus_context_unref): test before
  8544.     calling dbus_server_free_data_slot and _dbus_user_database_unref
  8545.     in case of an error.
  8546.  
  8547.     * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
  8548.     by libdbus-gtool.
  8549.  
  8550. 2004-04-19  Kristian H├╕gsberg  <krh@redhat.com>
  8551.  
  8552.     * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
  8553.     _dbus_poll() instead of select().
  8554.  
  8555. 2004-04-15  Jon Trowbridge  <trow@ximian.com>
  8556.  
  8557.     * bus/main.c (signal_handler): Reload the configuration files
  8558.     on SIGHUP.
  8559.     (main): Set up our SIGHUP handler.
  8560.  
  8561.     * bus/bus.c (struct BusContext): Store the config file, user and
  8562.     fork flag in the BusContext.
  8563.     (process_config_first_time_only): Added.  Contains the code
  8564.     (previously in bus_context_new) for setting up the BusContext from
  8565.     the BusConfigParser that should only be run the first time the
  8566.     config files are read.
  8567.     (process_config_every_time): Added.  Contains the code (previously
  8568.     in bus_context_new) for setting up the BusContext from the
  8569.     BusConfigParser that should be run every time the config files are
  8570.     read.
  8571.     (load_config): Added.  Builds a BusConfigParser from the config
  8572.     files and passes the resulting structure off to
  8573.     process_config_first_time_only (assuming this is the first time)
  8574.     and process_config_every_time.
  8575.     (bus_context_new): All of the config-related code has been moved
  8576.     to process_config_first_time_only and process_config_every_time.
  8577.     Now this function just does the non-config-related initializations
  8578.     and calls load_config.
  8579.     (bus_context_reload_config): Added.
  8580.  
  8581. 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8582.  
  8583.     * bus/driver.c (bus_driver_handle_get_service_owner):
  8584.     implement a GetServiceOwner method.
  8585.     * doc/dbus-specification.xml: document it.
  8586.     * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
  8587.     
  8588.     * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
  8589.     implement, using the bus GetServiceOwner method.
  8590.  
  8591.     * test/glib/test-dbus-glib.c:
  8592.     use dbus_gproxy_new_for_service_owner so that we can receive the
  8593.     signal. 
  8594.  
  8595. 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
  8596.  
  8597.     * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
  8598.     dbus/dbus-message.c, dbus/dbus-protocol.h
  8599.     (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
  8600.  
  8601.     * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
  8602.     dbus/dbus-message.c, dbus/dbus-protocol.h
  8603.     (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
  8604.  
  8605.     * dbus/dbus-internals.c (_dbus_header_field_to_string):
  8606.     DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
  8607.     DBUS_HEADER_FIELD_SENDER resolves to "sender"
  8608.  
  8609.     * doc/dbus-specification.xml (Header Fields Table):
  8610.     s/SERVICE/DESTINATION
  8611.     s/SENDER_SERVICE/SENDER
  8612.  
  8613.  
  8614. 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8615.  
  8616.     * test/glib/test-dbus-glib.c (timed_exit): fail the test after
  8617.     a few seconds.
  8618.  
  8619. 2004-04-13  Michael Meeks  <michael@ximian.com>
  8620.  
  8621.     * glib/dbus-gobject.c (handle_introspect): split out
  8622.     (introspect_properties): this.
  8623.     (handle_introspect): implement this.
  8624.  
  8625.     * test/glib/Makefile.am: use the absolute path so the bus
  8626.     daemon's chdir ("/") doesn't kill us dead.
  8627.  
  8628.     * configure.in: subst ABSOLUTE_TOP_BUILDDIR
  8629.  
  8630. 2004-04-12  Jon Trowbridge  <trow@ximian.com>
  8631.  
  8632.     * bus/config-parser.c (struct BusConfigParser): Added
  8633.     included_files field.
  8634.     (seen_include): Added.  Checks whether or not a file has already
  8635.     been included by any parent BusConfigParser.
  8636.     (bus_config_parser_new): Copy the parent's included_files.
  8637.     (include_file): Track which files have been included, and fail on
  8638.     circular inclusions.
  8639.     (process_test_valid_subdir): Changed printf to report if we are
  8640.     testing valid or invalid conf files.
  8641.     (all_are_equiv): Changed printf to be a bit clearer about
  8642.     what we are actually doing.
  8643.     (bus_config_parser_test): Test invalid configuration files.
  8644.  
  8645. 2004-04-09  Jon Trowbridge  <trow@ximian.com>
  8646.  
  8647.     * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
  8648.     argument.  If non-null, the newly-constructed BusConfigParser will
  8649.     be initialized with the parent's BusLimits instead of the default
  8650.     values.
  8651.     (include_file): When including a config file, pass in
  8652.     the current parser as the parent and then copy the BusLimits
  8653.     from the included BusConfigParser pack to the current parser.
  8654.     (process_test_valid_subdir): Renamed from process_test_subdir.
  8655.     (process_test_equiv_subdir): Added.  Walks through a directory,
  8656.     descending into each subdirectory and loading the config files
  8657.     it finds there.  If any subdirectory contains two config files
  8658.     that don't produce identical BusConfigParser structs, fail.
  8659.     For now, the BusConfigParser's BusPolicies are not compared.
  8660.     (bus_config_parser_test): Call both process_test_valid_subdir and
  8661.     process_test_equiv_subdir.
  8662.  
  8663.     * bus/config-loader-libxml.c (bus_config_load): Take a parent
  8664.     argument and pass it along to the call to bus_config_parser_new.
  8665.     Also made a few small changes to allow this code to compile.
  8666.  
  8667.     * bus/config-loader-expat.c (bus_config_load): Take a parent
  8668.     argument and pass it along to the call to bus_config_parser_new.
  8669.  
  8670.     * bus/bus.c (bus_context_new): Load the config file
  8671.     with a NULL parent argument.
  8672.  
  8673. 2004-03-29  Michael Meeks  <michael@ximian.com>
  8674.  
  8675.     * glib/dbus-gobject.c (introspect_properties): split
  8676.     out, fix mangled 'while' flow control.
  8677.     (introspect_signals): implement.
  8678.     (handle_introspect): update.
  8679.  
  8680. 2004-03-29  Michael Meeks  <michael@ximian.com>
  8681.  
  8682.     * glib/dbus-gobject.c (set_object_property): split out / 
  8683.     re-work, use the property type, and not the message type(!)
  8684.     (get_object_property): ditto.
  8685.  
  8686.         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
  8687.     (dbus_gvalue_marshal): make this code re-usable, needed
  8688.     for signals too, also on both proxy and server side.
  8689.     Re-write for more efficiency / readability.
  8690.  
  8691. 2004-03-29  Michael Meeks  <michael@ximian.com>
  8692.  
  8693.     * dbus/dbus-message.c
  8694.     (dbus_message_new_error_printf): impl.
  8695.  
  8696.     * dbus/dbus-connection.c
  8697.     (dbus_connection_unregister_object_path): fix warning.
  8698.  
  8699.     * configure.in: fix no-mono-installed situation.
  8700.  
  8701. 2004-03-27  Havoc Pennington  <hp@redhat.com>
  8702.  
  8703.     Patch from Timo Ter├ñs:
  8704.     
  8705.     * tools/dbus-send.c (main): if --print-reply, assume type is
  8706.     method call; support boolean type args
  8707.     
  8708.     * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
  8709.     bunch of memleak and logic bugs
  8710.     
  8711. 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
  8712.  
  8713.         * mono/Arguments.cs:
  8714.     * mono/Introspector.cs:
  8715.     * mono/Handler.cs:
  8716.     * mono/InterfaceProxy.cs:
  8717.     * mono/Message.cs
  8718.     * mono/ProxyBuilder.cs:
  8719.     * mono/Service.cs:
  8720.     Added InterfaceProxy class to avoid building proxies for every
  8721.     object.
  8722.  
  8723.     * dbus-message.h:
  8724.     * dbus-message.c (dbus_message_append_args_valist)
  8725.     (dbus_message_iter_get_object_path)
  8726.     (dbus_message_iter_get_object_path_array)
  8727.     (dbus_message_iter_append_object_path)
  8728.     (dbus_message_iter_append_object_path_array):
  8729.     Added object_path iter functions to handle OBJECT_PATH arguments
  8730.     
  8731. 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
  8732.  
  8733.     First checkin of mono bindings.
  8734.     * configure.in:
  8735.     * Makefile.am:
  8736.     Build stuff for the bindings
  8737.     * dbus-sharp.pc.in: Added for pkgconfig
  8738.     
  8739. 2004-03-21  Havoc Pennington  <hp@redhat.com>
  8740.  
  8741.     * test/test-service.c (main): remove debug spew
  8742.  
  8743. 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8744.  
  8745.     * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
  8746.     arrays
  8747.  
  8748.     * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
  8749.     (dbus_message_iter_init_array_iterator)
  8750.     (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
  8751.     indicate whether the iterator is empty
  8752.  
  8753.     * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
  8754.     warnings
  8755.  
  8756. 2004-03-19  Havoc Pennington  <hp@redhat.com>
  8757.  
  8758.     * NEWS: 0.21 updates
  8759.  
  8760.     * configure.in: 0.21
  8761.  
  8762.     * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
  8763.     
  8764.     * python/Makefile.am: change to avoid dist of dbus_bindings.c so
  8765.     you don't need pyrex to make dist
  8766.  
  8767.     * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
  8768.     sources; run moc
  8769.     
  8770. 2004-03-18  Richard Hult  <richard@imendio.com>
  8771.  
  8772.     * dbus/dbus-message.c (dbus_message_get_auto_activation) 
  8773.     (dbus_message_set_auto_activation): Add doxygen docs.
  8774.  
  8775. 2004-03-16  Richard Hult  <richard@imendio.com>
  8776.  
  8777.     * bus/activation.c: (bus_activation_service_created),
  8778.     (bus_activation_send_pending_auto_activation_messages),
  8779.     (bus_activation_activate_service):
  8780.     * bus/activation.h:
  8781.     * bus/dispatch.c: (bus_dispatch),
  8782.     (check_nonexistent_service_auto_activation),
  8783.     (check_service_auto_activated),
  8784.     (check_segfault_service_auto_activation),
  8785.     (check_existent_service_auto_activation), (bus_dispatch_test):
  8786.     * bus/driver.c: (bus_driver_handle_activate_service):
  8787.     * bus/services.c: (bus_registry_acquire_service):
  8788.     * dbus/dbus-message.c: (dbus_message_set_auto_activation),
  8789.     (dbus_message_get_auto_activation):
  8790.     * dbus/dbus-message.h:
  8791.     * dbus/dbus-protocol.h: Implement auto-activation.
  8792.     
  8793.     * doc/dbus-specification.xml: Add auto-activation to the spec.
  8794.  
  8795. 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
  8796.  
  8797.     * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
  8798.     fix a bug with CUSTOM types.
  8799.  
  8800.     * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
  8801.     a unit test for this bug (used to fail).
  8802.  
  8803. 2004-03-12  Mikael Hallendal  <micke@imendio.com>
  8804.  
  8805.     * bus/activation.c:
  8806.     (babysitter_watch_callback): notify all pending activations waiting for
  8807.       the same exec that the activation failed.
  8808.     (bus_activation_activate_service): shortcut the activation if we 
  8809.       already waiting for the same executable to start up.
  8810.  
  8811. 2004-03-12  Mikael Hallendal  <micke@imendio.com>
  8812.  
  8813.     * bus/activation.c: 
  8814.     - Added service file reloading. 
  8815.       Each service files directory is kept in an hash table in 
  8816.       BusActivation and each BusActivationEntry knows what .service-file it
  8817.       was read from. So when you try to activate a service the bus will 
  8818.       check if it's been updated, removed or if new .service-files has 
  8819.       been installed.
  8820.     - Test code at the bottom for the service file reloading.
  8821.     * bus/test-main.c: (main):
  8822.     * bus/test.h:
  8823.     - added service reloading test.
  8824.     * dbus/dbus-sysdeps.c: 
  8825.     * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
  8826.  
  8827. 2004-03-08  Michael Meeks  <michael@ximian.com>
  8828.  
  8829.     * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
  8830.     bail immediately if disconnected, to avoid busy loop.
  8831.  
  8832.     * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
  8833.     cleanup cut/paste/inefficiency.
  8834.  
  8835. 2004-03-01  David Zeuthen  <david@fubar.dk>
  8836.  
  8837.     * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
  8838.     bug where args were used twice. This bug resulted in a segfault
  8839.     on a Debian/PPC system when starting the messagebus daemon. Include
  8840.     dbus-sysdeps.h for DBUS_VA_COPY
  8841.  
  8842.     * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
  8843.  
  8844.     * configure.in: Check for va_copy; define DBUS_VA_COPY to the
  8845.     appropriate va_copy implementation. From GLib
  8846.      
  8847. 2004-02-24  Joe Shaw  <joe@ximian.com>
  8848.  
  8849.     * bus/services.c (bus_registry_acquire_service): We need to pass
  8850.     in the service name to dbus_set_error() to prevent a crash.
  8851.  
  8852. 2003-12-26  Anders Carlsson  <andersca@gnome.org>
  8853.  
  8854.     * AUTHORS: Reveal my True identity.
  8855.  
  8856. 2003-12-17  Mikael Hallendal  <micke@imendio.com>
  8857.  
  8858.     * dbus/dbus-message.c: (dbus_message_append_args_valist): 
  8859.     - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
  8860.  
  8861. 2003-12-13  Mikael Hallendal  <micke@imendio.com>
  8862.  
  8863.     * doc/TODO: Added not about better error check of configuration files.
  8864.  
  8865. 2003-12-02  Richard Hult  <richard@imendio.com>
  8866.  
  8867.     * Update AFL version to 2.0 throughout the source files to reflect
  8868.     the update that was done a while ago.
  8869.  
  8870. 2003-12-02  Richard Hult  <richard@imendio.com>
  8871.  
  8872.     * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
  8873.     wrote_dict_key to FALSE on the iter that the dict is appended to,
  8874.     just like when appending other types. Fixes a bug where a dict
  8875.     couldn't be put inside a dict.
  8876.     (dbus_message_iter_append_dict_key): Fix typo in warning message.
  8877.     (message_iter_test, _dbus_message_test): Add test case for dict
  8878.     inside dict.
  8879.  
  8880. 2003-12-01  David Zeuthen  <david@fubar.dk>
  8881.  
  8882.     * python/dbus.py: Add the actual message when calling the reciever
  8883.     of a signal such that parameters can be inspected. Add the method
  8884.     remove_signal_receiver
  8885.     
  8886. 2003-11-26  Mikael Hallendal  <micke@imendio.com>
  8887.  
  8888.     * bus/*.[ch]:
  8889.     * dbus/*.[ch]:
  8890.     * glib/*.[ch]: Made ref functions return the pointer
  8891.  
  8892. 2003-11-25  Zack Rusin  <zack@kde.org>
  8893.  
  8894.     * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
  8895.  
  8896.     * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
  8897.     wrappers,
  8898.  
  8899.     * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
  8900.     the Integrator and to better fit with the server,
  8901.  
  8902. 2003-11-24  Zack Rusin  <zack@kde.org>
  8903.  
  8904.     * qt/connection.h, qt/connection.cpp: removing initDbus method since
  8905.     the integrator handles it now
  8906.  
  8907.     * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
  8908.     since QTimer wasn't really meant to be used the way DBusTimeout is
  8909.  
  8910. 2003-11-24  Zack Rusin  <zack@kde.org>
  8911.  
  8912.     * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
  8913.     Integrator class which integrates D-BUS with the Qt event loop,
  8914.  
  8915.     * qt/connection.h, qt/connection.cpp: Move all the code which
  8916.     was dealing with D-BUS integration to the Integrator class,
  8917.     and start using Integrator,
  8918.  
  8919. 2003-11-23  Zack Rusin  <zack@kde.org>
  8920.  
  8921.     * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
  8922.     wrapper
  8923.  
  8924.     * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
  8925.     switching namespaces to DBusQt, reworking the class,
  8926.  
  8927.     * Makefile.cvs: switching dependencies so that it matches KDE 
  8928.     schematics,
  8929.     
  8930.     * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
  8931.     the library
  8932.  
  8933. 2003-11-19  Havoc Pennington  <hp@redhat.com>
  8934.  
  8935.     * NEWS: update
  8936.  
  8937.         * configure.in: bump version to 0.20
  8938.  
  8939.     * configure.in (have_qt): add yet another place to look for qt
  8940.     (someone hand trolltech a .pc file...)
  8941.  
  8942. 2003-11-01  Havoc Pennington  <hp@redhat.com>
  8943.  
  8944.     * doc/dbus-specification.xml: add state machine docs on the auth
  8945.     protocol; just a first draft, I'm sure it's wrong.    
  8946.  
  8947. 2003-10-28  David Zeuthen  <david@fubar.dk>
  8948.  
  8949.     * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
  8950.     return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
  8951.     
  8952. 2003-10-28  Havoc Pennington  <hp@redhat.com>
  8953.  
  8954.     * dbus/dbus-message.c (get_next_field): delete unused function
  8955.  
  8956. 2003-10-28  Havoc Pennington  <hp@redhat.com>
  8957.  
  8958.     * bus/expirelist.c (do_expiration_with_current_time): detect
  8959.     failure of the expire_func due to OOM
  8960.  
  8961.     * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
  8962.  
  8963.     * bus/dispatch.c (check_send_exit_to_service): fix to handle the
  8964.     NoReply error that's now created by the bus when the service exits
  8965.  
  8966. 2003-10-28  Havoc Pennington  <hp@redhat.com>
  8967.  
  8968.     * dbus/dbus-message.c (_dbus_message_test): enable and fix the
  8969.     tests for set_path, set_interface, set_member, etc.
  8970.  
  8971.     * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
  8972.  
  8973.     * dbus/dbus-message.c (set_string_field): always just delete and
  8974.     re-append the field; accept NULL for deletion
  8975.     (re_align_fields_recurse): reimplement
  8976.     
  8977. 2003-10-26  Havoc Pennington  <hp@redhat.com>
  8978.  
  8979.     * dbus/dbus-connection.c: fix docs to properly describe the
  8980.     disconnected message
  8981.     (_dbus_connection_notify_disconnected): remove this function; 
  8982.     we can't synchronously add the disconnected message, we have to 
  8983.     do it after we've queued any remaining real messages
  8984.     (_dbus_connection_get_dispatch_status_unlocked): queue the
  8985.     disconnect message only if the transport has finished queueing all
  8986.     its real messages and is disconnected.
  8987.     (dbus_connection_disconnect): update the dispatch status here
  8988.  
  8989. 2003-10-22  Havoc Pennington  <hp@redhat.com>
  8990.  
  8991.     * bus/bus.c (bus_context_check_security_policy): fix up assertion
  8992.  
  8993.     * bus/connection.c (bus_transaction_send_from_driver): set the
  8994.     destination to the connection's base service
  8995.  
  8996. 2003-10-20  Havoc Pennington  <hp@redhat.com>
  8997.  
  8998.         hmm, make check is currently not passing.
  8999.     
  9000.     * doc/dbus-specification.xml: add requirement that custom type
  9001.     names follow the same rules as interface names.
  9002.  
  9003.     * dbus/dbus-protocol.h: change some of the byte codes, to avoid
  9004.     duplication and allow 'c' to be 'custom'; dict is now 'm' for
  9005.     'map'
  9006.  
  9007.     * doc/dbus-specification.xml: update type codes to match
  9008.     dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
  9009.     CUSTOM. Add type OBJECT_PATH to the spec.
  9010.  
  9011. 2003-10-17  Havoc Pennington  <hp@redhat.com>
  9012.  
  9013.     * bus/driver.c (create_unique_client_name): use "." as separator
  9014.     in base service names instead of '-'
  9015.  
  9016.     * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
  9017.     byte at the end of the string
  9018.  
  9019.     * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
  9020.     optimization macros since string validation seems to be a slow
  9021.     point.
  9022.     
  9023.     * doc/dbus-specification.xml: restrict valid
  9024.     service/interface/member/error names. Add test suite code for the
  9025.     name validation.
  9026.  
  9027.     * dbus/dbus-string.c: limit service/interface/member/error names 
  9028.     to [0-9][A-Z][a-z]_
  9029.  
  9030.     * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
  9031.     format arg to verbose spew
  9032.  
  9033.     * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
  9034.     memory, return instead of g_error
  9035.  
  9036.     * test/test-service.c (path_message_func): support emitting a
  9037.     signal on request
  9038.  
  9039.     * dbus/dbus-bus.c (init_connections_unlocked): only fill in
  9040.     activation bus type if DBUS_BUS_ACTIVATION was set; default to
  9041.     assuming the activation bus was the session bus so that services
  9042.     started manually will still register.
  9043.     (init_connections_unlocked): fix so that in OOM situation we get
  9044.     the same semantics when retrying the function
  9045.     
  9046.     * test/test-service.c (main): change to use path registration, to
  9047.     test those codepaths; register with DBUS_BUS_ACTIVATION rather
  9048.     than DBUS_BUS_SESSION
  9049.  
  9050. 2003-10-16  Havoc Pennington  <hp@redhat.com>
  9051.  
  9052.     * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
  9053.  
  9054.     * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
  9055.     coverage of the tests
  9056.     (coverage-report.txt): don't move the .da and .bbg files around
  9057.  
  9058. 2003-10-16  Havoc Pennington  <hp@redhat.com>
  9059.  
  9060.     * bus/bus.c (struct BusContext): remove struct field I didn't mean
  9061.     to put there
  9062.  
  9063. 2003-10-16  Havoc Pennington  <hp@redhat.com>
  9064.  
  9065.     * bus/connection.c (bus_pending_reply_expired): either cancel or
  9066.     execute, not both
  9067.     (bus_connections_check_reply): use unlink, not remove_link, as we
  9068.     don't want to free the link; fixes double free mess
  9069.  
  9070.     * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
  9071.     where no reply was received
  9072.  
  9073.     * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
  9074.     fix a refcount leak
  9075.  
  9076.     * bus/signals.c (match_rule_matches): add special cases for the
  9077.     bus driver, so you can match on sender/destination for it.
  9078.  
  9079.     * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
  9080.     DBUS_PRINT_BACKTRACE is set
  9081.  
  9082.     * dbus/dbus-internals.c: add pid to assertion failure messages
  9083.  
  9084.     * dbus/dbus-connection.c: add message type code to the debug spew
  9085.  
  9086.     * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
  9087.     sender=foo not service=foo
  9088.  
  9089.     * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
  9090.     session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
  9091.     DBUS_ACTIVATION_ADDRESS instead
  9092.  
  9093.     * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
  9094.     DBUS_SYSTEM_BUS_ADDRESS if appropriate
  9095.  
  9096.     * bus/bus.c (bus_context_new): handle OOM copying bus type into
  9097.     context struct
  9098.  
  9099.     * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
  9100.     (dbus_message_iter_get_object_path_array): new function (half
  9101.     finished, disabled for the moment)
  9102.     
  9103.     * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
  9104.     DBUS_MESSAGE_TYPE_ERROR
  9105.  
  9106.     * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
  9107.     avoid redirecting stderr to /dev/null
  9108.     (babysit): close stdin if not doing the "exit_with_session" thing
  9109.  
  9110.     * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
  9111.     debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
  9112.     stdout/stdin, so things don't get confused
  9113.     
  9114.     * bus/system.conf.in: fix to allow replies, I modified .conf
  9115.     instead of .conf.in again.
  9116.  
  9117. 2003-10-14  David Zeuthen  <david@fubar.dk>
  9118.  
  9119.     * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
  9120.     argtype to arg_type when raising unknown arg type exception.
  9121.     Changed type list to reflect the changes in dbus-protocol.h so 
  9122.     the bindings actually work.
  9123.  
  9124. 2003-10-14  Havoc Pennington  <hp@redhat.com>
  9125.  
  9126.     * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
  9127.     to have a bug keeping it from outputting the .da files sometimes
  9128.     (string_get_string): don't append garbage nul bytes to the string.
  9129.  
  9130. 2003-10-15  Seth Nickell  <seth@gnome.org>
  9131.  
  9132.     * python/Makefile.am:
  9133.  
  9134.     Include dbus_h_wrapper.h in the dist tarball.
  9135.  
  9136. 2003-10-14  Havoc Pennington  <hp@redhat.com>
  9137.  
  9138.     * bus/bus.c (bus_context_check_security_policy): revamp this to
  9139.     work more sanely with new policy-based requested reply setup
  9140.  
  9141.     * bus/connection.c (bus_transaction_send_from_driver): set bus
  9142.     driver messages as no reply
  9143.  
  9144.     * bus/policy.c (bus_client_policy_check_can_receive): handle a
  9145.     requested_reply attribute on allow/deny rules
  9146.  
  9147.     * bus/system.conf: add <allow requested_reply="true"/>
  9148.  
  9149.     * bus/driver.c (bus_driver_handle_message): fix check for replies
  9150.     sent to the bus driver, which was backward. How did this ever work
  9151.     at all though? I think I'm missing something.
  9152.  
  9153.     * dbus/dbus-message.c (decode_header_data): require error and
  9154.     method return messages to have a reply serial field to be valid
  9155.     (_dbus_message_loader_queue_messages): break up this function;
  9156.     validate that reply serial and plain serial are nonzero; 
  9157.     clean up the OOM/error handling.
  9158.     (get_uint_field): don't return -1 from this
  9159.     (dbus_message_create_header): fix signed/unsigned bug
  9160.  
  9161.     * bus/connection.c (bus_connections_expect_reply): save serial of
  9162.     the incoming message, not reply serial
  9163.  
  9164. 2003-10-14  Havoc Pennington  <hp@redhat.com>
  9165.  
  9166.     * bus/connection.c: implement pending reply tracking using
  9167.     BusExpireList
  9168.  
  9169.     * bus/bus.c (bus_context_check_security_policy): verify that a
  9170.     reply is pending in order to allow a reply to be sent. Deny 
  9171.     messages of unknown type.
  9172.  
  9173.     * bus/dbus-daemon-1.1.in: update to mention new resource limits
  9174.  
  9175.     * bus/bus.c (bus_context_get_max_replies_per_connection): new
  9176.     (bus_context_get_reply_timeout): new
  9177.  
  9178. 2003-10-13  Seth Nickell  <seth@gnome.org>
  9179.  
  9180.     * python/Makefile.am:
  9181.  
  9182.     Pass "make distcheck": remove a couple files from DIST_FILES
  9183.     that weren't included in the final version.
  9184.  
  9185. 2003-10-12  Havoc Pennington  <hp@pobox.com>
  9186.  
  9187.         Added test code that 1) starts an actual bus daemon and 2) uses
  9188.     DBusGProxy; fixed bugs that were revealed by the test. Lots 
  9189.     more testing possible, but this is the basic framework.
  9190.     
  9191.     * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
  9192.     empty proxy lists from the proxy list hash
  9193.  
  9194.     * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
  9195.     couple of return_if_fail checks
  9196.  
  9197.     * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
  9198.     to allocate, so everything is cleared to NULL as it should be.
  9199.  
  9200.     * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
  9201.     source as data to dbus_connection_set_timeout_functions() as the 
  9202.     timeout functions expected
  9203.  
  9204.     * test/glib/run-test.sh: add a little script to start up a message
  9205.     bus and run tests using it
  9206.  
  9207.     * tools/dbus-launch.1: updates
  9208.  
  9209.     * tools/dbus-launch.c (main): add --config-file option
  9210.  
  9211.     * tools/dbus-launch.c (main): remove confusing else if (runprog)
  9212.     that could never be reached.
  9213.  
  9214.     * dbus/dbus-message.c (dbus_message_new_method_return) 
  9215.     (dbus_message_new_error, dbus_message_new_signal): set the
  9216.     no-reply-expected flag on all these. Redundant, but may
  9217.     as well be consistent.
  9218.  
  9219. 2003-10-11  Havoc Pennington  <hp@pobox.com>
  9220.  
  9221.     * test/decode-gcov.c (function_solve_graph): make broken block
  9222.     graph a nonfatal error since it seems to be broken. Need to debug
  9223.     this.
  9224.  
  9225.     * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
  9226.     can't just check type > INVALID < LAST anymore
  9227.  
  9228.     * dbus/dbus-message.c (dbus_message_get_signature): new function
  9229.     (dbus_message_has_signature): new function
  9230.     (struct DBusMessage): add signature field (right now it isn't sent
  9231.     over the wire, just generated on the fly)
  9232.     (dbus_message_copy): copy the signature, and init strings to
  9233.     proper length to avoid some reallocs
  9234.     (dbus_message_iter_init_array_iterator): return void, since it
  9235.     can't fail
  9236.     (dbus_message_iter_init_dict_iterator): return void since it can't fail
  9237.     (_dbus_message_loader_queue_messages): add silly temporary hack to
  9238.     fill in message->signature on load
  9239.  
  9240.     * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
  9241.     characters, so they are relatively human-readable.
  9242.  
  9243. 2003-10-11  Havoc Pennington  <hp@pobox.com>
  9244.  
  9245.     * dbus/dbus-message.c (_dbus_message_test): add more test
  9246.     coverage, but #if 0 for now since they uncover a bug 
  9247.     not fixed yet; I think in re_align_field_recurse()
  9248.     (re_align_field_recurse): add FIXME about broken assertion
  9249.  
  9250.     * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
  9251.  
  9252.     * bus/connection.c: share a couple code bits with expirelist.c
  9253.  
  9254.     * bus/expirelist.h, bus/expirelist.c: implement a generic
  9255.     expire-items-after-N-seconds facility, was going to share between
  9256.     expiring connections and replies, decided not to use for expiring
  9257.     connections for now.
  9258.  
  9259.     * COPYING: include AFL 2.0 (still need to change all the file headers)
  9260.  
  9261. 2003-10-09  Havoc Pennington  <hp@redhat.com>
  9262.  
  9263.     * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
  9264.     gcc 3.3. Not that we do anything about it yet.
  9265.  
  9266.     * bus/signals.c (bus_match_rule_parse): impose max length on the
  9267.     match rule text
  9268.  
  9269.     * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
  9270.  
  9271. 2003-10-09  Havoc Pennington  <hp@redhat.com>
  9272.  
  9273.         Make matching rules theoretically work (add parser).
  9274.     
  9275.     * bus/bus.c (bus_context_check_security_policy): fix up to handle
  9276.     the case where destination is explicitly specified as bus driver
  9277.     and someone else is eavesdropping.
  9278.     
  9279.     * bus/policy.c (bus_client_policy_check_can_receive): fix up
  9280.     definition of eavesdropping and assertion
  9281.  
  9282.     * tools/dbus-send.c (main): use dbus_message_type_from_string
  9283.  
  9284.     * bus/signals.c (bus_match_rule_parse): implement
  9285.  
  9286.     * dbus/dbus-message.c (dbus_message_type_from_string): new
  9287.  
  9288.     * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
  9289.  
  9290. 2003-10-02  Havoc Pennington  <hp@pobox.com>
  9291.  
  9292.     * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
  9293.     dbus_gproxy_oneway_call
  9294.  
  9295.     * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
  9296.     (dbus_server_setup_with_g_main): fix to allow calling them more
  9297.     than once on the same args
  9298.     (dbus_bus_get_with_g_main): new function
  9299.  
  9300. 2003-10-02  Havoc Pennington  <hp@redhat.com>
  9301.  
  9302.     * doc/dbus-tutorial.xml: write some stuff
  9303.  
  9304. 2003-09-29  Havoc Pennington  <hp@pobox.com>
  9305.  
  9306.     * configure.in: split checks for Doxygen from XML docs, check for
  9307.     xmlto
  9308.  
  9309.     * doc/Makefile.am: XML-ify all the docs, and add a blank
  9310.     dbus-tutorial.xml
  9311.  
  9312. 2003-09-29  Havoc Pennington  <hp@pobox.com>
  9313.  
  9314.     * Merge dbus-object-names branch. To see the entire patch 
  9315.     do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
  9316.     it's huuuuge though.
  9317.     To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
  9318.     
  9319. 2003-09-28  Havoc Pennington  <hp@pobox.com>
  9320.  
  9321.     * HACKING: update to reflect new server
  9322.  
  9323. 2003-09-26  Seth Nickell  <seth@gnome.org>
  9324.  
  9325.     * python/dbus.py:
  9326.     * python/examples/example-signals.py:
  9327.  
  9328.     Start implementing some notions of signals. The API
  9329.     is really terrible, but they sort of work (with the
  9330.     exception of being able to filter by service, and to
  9331.     transmit signals *as* a particular service). Need to
  9332.     figure out how to make messages come from the service
  9333.     we registered :-(
  9334.     
  9335.     * python/dbus_bindings.pyx.in:
  9336.  
  9337.     Removed duplicate message_handler callbacks.
  9338.     
  9339. 2003-09-25  Havoc Pennington  <hp@redhat.com>
  9340.  
  9341.     * bus/session.conf.in: fix my mess
  9342.  
  9343. 2003-09-25  Havoc Pennington  <hp@pobox.com>
  9344.  
  9345.     * bus/session.conf.in: fix security policy, reported by Seth Nickell
  9346.  
  9347. 2003-09-25  Seth Nickell  <seth@gnome.org>
  9348.  
  9349.     * python/examples/example-service.py:
  9350.  
  9351.     Johan notices complete wrong code in example-service, but
  9352.     completely wrong in a way that works exactly the same (!).
  9353.     Johan is confused, how could this possibly work? Example
  9354.     code fails to serve purpose of making things clear.
  9355.     Seth fixes.
  9356.  
  9357. 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
  9358.  
  9359.     * doc/dbus-specification.sgml: don't require header fields
  9360.     to be 4-byte aligned and specify that fields should be
  9361.     distinguished from padding by the fact that zero is not
  9362.     a valid field name.
  9363.     
  9364.     * doc/TODO: remove re-alignment item and add item to doc
  9365.     the OBJECT_PATH type.
  9366.     
  9367.     * dbus/dbus-message.c:
  9368.     (HeaderField): rename the original member to value_offset
  9369.     and introduce a name_offset member to keep track of where
  9370.     the field actually begins.
  9371.     (adjust_field_offsets): remove.
  9372.     (append_int_field), (append_uint_field),
  9373.     (append_string_field): don't align the start of the header
  9374.     field to a 4-byte boundary.
  9375.     (get_next_field): impl finding the next marhsalled field
  9376.     after a given field.
  9377.     (re_align_field_recurse): impl re-aligning a number of
  9378.     already marshalled fields.
  9379.     (delete_field): impl deleting a field of any type and
  9380.     re-aligning any following fields.
  9381.     (delete_int_or_uint_field), (delete_string_field): remove.
  9382.     (set_int_field), (set_uint_field): no need to re-check
  9383.     that we have the correct type for the field.
  9384.     (set_string_field): ditto and impl re-aligning any
  9385.     following fields.
  9386.     (decode_header_data): update to take into account that
  9387.     the fields aren't 4-byte aligned any more and the new
  9388.     way to distinguish padding from header fields. Also,
  9389.     don't exit when there is too much header padding.
  9390.     (process_test_subdir): print the directory.
  9391.     (_dbus_message_test): add test to make sure a following
  9392.     field is re-aligned correctly after field deletion.
  9393.     
  9394.     * dbus/dbus-string.[ch]:
  9395.     (_dbus_string_insert_bytes): rename from insert_byte and
  9396.     allow the insert of multiple bytes.
  9397.     (_dbus_string_test): test inserting multiple bytes.
  9398.  
  9399.     * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
  9400.     warning note to docs about having to re-align any
  9401.     marshalled values following the string.
  9402.     
  9403.     * dbus/dbus-message-builder.c:
  9404.     (append_string_field), (_dbus_message_data_load):
  9405.     don't align the header field.
  9406.     
  9407.     * dbus/dbus-auth.c: (process_test_subdir): print the
  9408.     directory.
  9409.     
  9410.     * test/break-loader.c: (randomly_add_one_byte): upd. for
  9411.     insert_byte change.
  9412.     
  9413.     * test/data/invalid-messages/bad-header-field-alignment.message:
  9414.     new test case.
  9415.     
  9416.     * test/data/valid-messages/unknown-header-field.message: shove
  9417.     a dict in the unknown field.
  9418.  
  9419. 2003-09-25  Seth Nickell  <seth@gnome.org>
  9420.  
  9421.     * python/dbus.py:
  9422.     * python/dbus_bindings.pyx.in:
  9423.  
  9424.     Handle return values.
  9425.     
  9426.     * python/examples/example-client.py:
  9427.     * python/examples/example-service.py:
  9428.  
  9429.     Pass back return values from the service to the client.
  9430.     
  9431. 2003-09-24  Seth Nickell  <seth@gnome.org>
  9432.  
  9433.     * python/dbus.py:
  9434.  
  9435.     Connect Object methods (when you are sharing an object) up... pass
  9436.     in a list of methods to be shared. Sharing all the methods just
  9437.     worked out too weird. You can now create nice Services over the
  9438.     DBus in Python. :-)
  9439.     
  9440.     * python/dbus_bindings.pyx.in:
  9441.  
  9442.     Keep references to user_data tuples passed into C functions so 
  9443.     Python doesn't garbage collect on us.
  9444.  
  9445.     Implement MethodReturn and Error subclasses of Message for creating
  9446.     DBusMessage's of those types.
  9447.     
  9448.     * python/examples/example-client.py:
  9449.     * python/examples/example-service.py:
  9450.  
  9451.     Simple example code showing both how create DBus services and objects,
  9452.     and how to use them.
  9453.  
  9454. 2003-09-23  Havoc Pennington  <hp@pobox.com>
  9455.  
  9456.     * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
  9457.  
  9458. 2003-09-23  Havoc Pennington  <hp@redhat.com>
  9459.  
  9460.     * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
  9461.     (dbus_gproxy_disconnect_signal): implement
  9462.     (dbus_gproxy_manager_remove_signal_match): implement
  9463.     (dbus_gproxy_manager_add_signal_match): implement
  9464.     (dbus_gproxy_oneway_call): implement
  9465.  
  9466. 2003-09-23  Havoc Pennington  <hp@pobox.com>
  9467.  
  9468.     * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
  9469.     subclass. This means dropping the transparent thread safety of the
  9470.     proxy; you now need a separate proxy per-thread, or your own
  9471.     locking on the proxy. Probably right anyway.
  9472.     (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
  9473.  
  9474. 2003-09-22  Havoc Pennington  <hp@redhat.com>
  9475.  
  9476.     * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
  9477.  
  9478. 2003-09-21  Seth Nickell  <seth@gnome.org>
  9479.  
  9480.         First checkin of the Python bindings.
  9481.     
  9482.     * python/.cvsignore:
  9483.     * python/Makefile.am:
  9484.     * python/dbus_bindings.pyx.in:
  9485.     * python/dbus_h_wrapper.h:
  9486.  
  9487.     Pieces for Pyrex to operate on, building a dbus_bindings.so
  9488.     python module for low-level access to the DBus APIs.
  9489.     
  9490.     * python/dbus.py:
  9491.  
  9492.     High-level Python module for accessing DBus objects.
  9493.  
  9494.     * configure.in:
  9495.     * Makefile.am:
  9496.  
  9497.     Build stuff for the python bindings.
  9498.  
  9499.     * acinclude.m4:
  9500.  
  9501.     Extra macro needed for finding the Python C header files.
  9502.  
  9503. 2003-09-21  Havoc Pennington  <hp@pobox.com>
  9504.  
  9505.     * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
  9506.     implementing the proxy manager, didn't get very far.
  9507.  
  9508.     * dbus/dbus-bus.c (dbus_bus_add_match): new
  9509.     (dbus_bus_remove_match): new
  9510.  
  9511.     * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
  9512.     path_name argument; adjust the other not-yet-implemented 
  9513.     gproxy constructors to be what I think they should be.
  9514.  
  9515. 2003-09-21  Havoc Pennington  <hp@pobox.com>
  9516.  
  9517.     * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
  9518.     by default for message bus connections.
  9519.  
  9520.     * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
  9521.     exit_on_disconnect flag is set and we process the disconnected
  9522.     signal.
  9523.     (dbus_connection_set_exit_on_disconnect): new function
  9524.  
  9525. 2003-09-21  Havoc Pennington  <hp@pobox.com>
  9526.  
  9527.     Get matching rules mostly working in the bus; only actually
  9528.     parsing the rule text remains. However, the client side of
  9529.     "signal connections" hasn't been started, this patch is only the
  9530.     bus side.
  9531.     
  9532.     * dbus/dispatch.c: fix for the matching rules changes
  9533.     
  9534.     * bus/driver.c (bus_driver_handle_remove_match)
  9535.     (bus_driver_handle_add_match): send an ack reply from these
  9536.     method calls
  9537.  
  9538.     * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
  9539.     arguments, reported by Seth Nickell
  9540.  
  9541.     * bus/config-parser.c (append_rule_from_element): support
  9542.     eavesdrop=true|false attribute on policies so match rules 
  9543.     can be prevented from snooping on the system bus.
  9544.  
  9545.     * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
  9546.     and "destination" in attribute names; fix some docs bugs; 
  9547.     add eavesdrop=true|false attribute
  9548.  
  9549.     * bus/driver.c (bus_driver_handle_add_match)
  9550.     (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
  9551.     messages
  9552.  
  9553.     * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
  9554.     rid of broadcast service concept, signals are just always broadcast
  9555.  
  9556.     * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
  9557.     mostly implement matching rules stuff (currently only exposed as signal
  9558.     connections)
  9559.  
  9560. 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
  9561.  
  9562.     * doc/dbus-specification.sgml: Change the header field name
  9563.     to be an enum and update the rest of the spec to reference
  9564.     the fields using the conventinal name.
  9565.  
  9566.     * dbus/dbus-protocol.h: update to reflect the spec.
  9567.  
  9568.     * doc/TODO: add item to remove the 4 byte alignment requirement.
  9569.     
  9570.     * dbus/dbus-message.c: Remove the code to generalise the
  9571.     header/body length and serial number header fields as named
  9572.     header fields so we can reference field names using the 
  9573.     protocol values.
  9574.     (append_int_field), (append_uint_field), (append_string_field):
  9575.     Append the field name as a byte rather than four chars.
  9576.     (delete_int_or_uint_field), (delete_string_field): reflect the
  9577.     fact that the field name and typecode now occupy 4 bytes instead
  9578.     of 8.
  9579.     (decode_string_field), (decode_header_data): update to reflect
  9580.     protocol changes and move the field specific encoding from
  9581.     decode_string_field() back into decode_header_data().
  9582.     
  9583.     * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
  9584.     Add utility to aid debugging.
  9585.     
  9586.     * dbus/dbus-message-builder.c:
  9587.     (append_string_field), (_dbus_message_data_load): Update to
  9588.     reflect protocol changes; Change the FIELD_NAME directive
  9589.     to HEADER_FIELD and allow it to take the field's conventional
  9590.     name rather than the actual value.
  9591.     
  9592.     * test/data/*/*.message: Update to use HEADER_FIELD instead
  9593.     of FIELD_NAME; Always align the header on an 8 byte boundary
  9594.     *before* updating the header length.
  9595.  
  9596. 2003-09-15  Havoc Pennington  <hp@pobox.com>
  9597.  
  9598.     * dbus/dbus-pending-call.c: add the get/set object data
  9599.     boilerplate as for DBusConnection, etc. Use generic object data
  9600.     for the notify callback.
  9601.  
  9602.     * glib/dbus-gparser.c (parse_node): parse child nodes
  9603.  
  9604.     * tools/dbus-viewer.c: more hacking on the dbus-viewer
  9605.     
  9606.     * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
  9607.     contain functions shared between the convenience lib and the
  9608.     installed lib
  9609.  
  9610.     * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
  9611.     -export-symbols-regex to the GLib library
  9612.  
  9613.     * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
  9614.     fix the locking in here, and add a default handler for
  9615.     Introspect() that just returns sub-nodes.
  9616.  
  9617. 2003-09-14  Havoc Pennington  <hp@pobox.com>
  9618.  
  9619.     * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
  9620.     rather than gfoo consistent
  9621.  
  9622.     * glib/dbus-gproxy.h: delete for now, move contents to
  9623.     dbus-glib.h, because the include files don't work right since we
  9624.     aren't in the dbus/ subdir.
  9625.     
  9626.     * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
  9627.     (dbus_gproxy_end_call): finish
  9628.     (dbus_gproxy_begin_call): finish
  9629.  
  9630.     * glib/dbus-gmain.c (dbus_set_g_error): new
  9631.  
  9632.     * glib/dbus-gobject.c (handle_introspect): include information
  9633.     about child nodes in the introspection
  9634.  
  9635.     * dbus/dbus-connection.c (dbus_connection_list_registered): new
  9636.     function to help in implementation of introspection
  9637.  
  9638.     * dbus/dbus-object-tree.c
  9639.     (_dbus_object_tree_list_registered_and_unlock): new function
  9640.  
  9641. 2003-09-12  Havoc Pennington  <hp@pobox.com>
  9642.  
  9643.     * glib/dbus-gidl.h: add common base class for all the foo_info
  9644.     types
  9645.  
  9646.         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
  9647.     similar to kdcop
  9648.  
  9649.     * test/Makefile.am: try test srcdir -ef . in addition to test
  9650.     srcdir = ., one of them should work (yeah lame)
  9651.     
  9652.         * glib/Makefile.am: build the "idl" parser stuff as a convenience
  9653.     library
  9654.     
  9655.     * glib/dbus-gparser.h: make description_load routines return
  9656.     NodeInfo* not Parser*
  9657.  
  9658.     * Makefile.am (SUBDIRS): build test dir after all library dirs
  9659.  
  9660.     * configure.in: add GTK+ detection
  9661.  
  9662. 2003-09-07  Havoc Pennington  <hp@pobox.com>
  9663.  
  9664.     * Make Doxygen contented.
  9665.  
  9666. 2003-09-07  Havoc Pennington  <hp@pobox.com>
  9667.  
  9668.     * doc/dbus-specification.sgml: more updates
  9669.  
  9670. 2003-09-06  Havoc Pennington  <hp@pobox.com>
  9671.  
  9672.     * doc/dbus-specification.sgml: partial updates
  9673.  
  9674.     * bus/dbus-daemon-1.1.in: fix the config file docs for the
  9675.     zillionth time; hopefully I edited the right file this time.
  9676.  
  9677.     * bus/config-parser.c (append_rule_from_element): support
  9678.     send_type, send_path, receive_type, receive_path
  9679.  
  9680.     * bus/policy.c: add message type and path to the list of things
  9681.     that can be "firewalled"
  9682.  
  9683. 2003-09-06  Havoc Pennington  <hp@pobox.com>
  9684.  
  9685.     * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
  9686.     (dbus_connection_register_object_path): make this not handle
  9687.     messages to paths below the given path
  9688.  
  9689. 2003-09-03  Havoc Pennington  <hp@pobox.com>
  9690.  
  9691.     * test/glib/Makefile.am: add this with random glib-linked test
  9692.     programs
  9693.  
  9694.     * glib/Makefile.am: remove the random test programs from here,
  9695.     leave only the unit tests
  9696.  
  9697.     * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
  9698.     uscore/javacaps conversion, and fix    
  9699.     (get_object_property, set_object_property): change to .NET
  9700.     convention for mapping props to methods, set_FooBar/get_FooBar, 
  9701.     since one language has such a convention we may as well copy it. 
  9702.     Plus real methods in either getFooBar or get_foo_bar style won't 
  9703.     collide with this convention.
  9704.  
  9705. 2003-09-01  Havoc Pennington  <hp@pobox.com>
  9706.  
  9707.     * glib/dbus-gparser.c: implement
  9708.  
  9709.     * glib/dbus-gobject.c: start implementing skeletons support
  9710.  
  9711.     * configure.in: when disabling checks/assert, also define
  9712.     G_DISABLE_ASSERT and G_DISABLE_CHECKS
  9713.  
  9714. 2003-09-01  Havoc Pennington  <hp@pobox.com>
  9715.  
  9716.     * glib/Makefile.am: rearrange a bunch of files and get "make
  9717.     check" framework set up
  9718.  
  9719. 2003-08-31  Havoc Pennington  <hp@pobox.com>
  9720.  
  9721.     * fix build with --disable-tests
  9722.  
  9723. 2003-08-30  Havoc Pennington  <hp@pobox.com>
  9724.  
  9725.     * dbus/dbus-connection.c: purge DBusMessageHandler
  9726.  
  9727.     * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
  9728.     use callbacks everywhere
  9729.  
  9730. 2003-08-30  Havoc Pennington  <hp@pobox.com>
  9731.  
  9732.     * test/data/valid-config-files/system.d/test.conf: change to 
  9733.     root for the user so warnings don't get printed
  9734.  
  9735.     * dbus/dbus-message.c: add dbus_message_get_path,
  9736.     dbus_message_set_path
  9737.     
  9738.     * dbus/dbus-object-tree.c (do_test_dispatch): add test of
  9739.     dispatching to a path
  9740.  
  9741.     * dbus/dbus-string.c (_dbus_string_validate_path): add
  9742.  
  9743.     * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
  9744.     (_dbus_marshal_object_path): implement
  9745.  
  9746.     * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
  9747.     to contain the path to the target object
  9748.     (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
  9749.     DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
  9750.  
  9751. 2003-08-30  Havoc Pennington  <hp@pobox.com>
  9752.  
  9753.     * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
  9754.  
  9755. 2003-08-29  Havoc Pennington  <hp@pobox.com>
  9756.  
  9757.     * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
  9758.     registered
  9759.     (struct DBusObjectSubtree): shrink this
  9760.     a lot, since we may have a lot of them
  9761.     (_dbus_object_tree_free_all_unlocked): implement
  9762.     (_dbus_object_tree_dispatch_and_unlock): implement
  9763.  
  9764. 2003-08-29  Havoc Pennington  <hp@pobox.com>
  9765.  
  9766.     * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
  9767.  
  9768. 2003-08-28  Havoc Pennington  <hp@pobox.com>
  9769.  
  9770.     purge DBusObjectID
  9771.     
  9772.     * dbus/dbus-connection.c: port to no ObjectID, create a
  9773.     DBusObjectTree, rename ObjectTree to ObjectPath in public API
  9774.  
  9775.     * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
  9776.     everything except UnregisterFunction and MessageFunction
  9777.     
  9778.     * dbus/dbus-marshal.c: port away from DBusObjectID, 
  9779.     add DBUS_TYPE_OBJECT_PATH
  9780.     
  9781.     * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
  9782.     dbus/dbus-objectid.[hc]: remove these, we are moving to 
  9783.     path-based object IDs
  9784.  
  9785. 2003-08-25  Havoc Pennington  <hp@pobox.com>
  9786.  
  9787.         Just noticed that dbus_message_test is hosed, I wonder when I
  9788.     broke that. I thought make check was passing earlier...
  9789.     
  9790.     * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
  9791.     container tree, will replace most of dbus-object-registry
  9792.  
  9793.     * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
  9794.     screwup
  9795.  
  9796. 2003-08-19  Havoc Pennington  <hp@pobox.com>
  9797.  
  9798.     * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
  9799.     (dbus_message_is_error): fix this function
  9800.  
  9801.     * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
  9802.     match
  9803.  
  9804.     * bus/policy.c (bus_client_policy_check_can_receive): fix code to
  9805.     reflect clarified man page
  9806.     (bus_client_policy_check_can_send): ditto
  9807.     
  9808.     * bus/session.conf.in: fixup
  9809.  
  9810.     * bus/system.conf.in: fixup
  9811.  
  9812. 2003-08-18  Havoc Pennington  <hp@redhat.com>
  9813.  
  9814.     * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
  9815.  
  9816.     * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
  9817.     dumb bug created earlier (wrong order of args to
  9818.     decode_header_data())
  9819.     
  9820.     * tools/dbus-send.c: port
  9821.  
  9822.     * tools/dbus-print-message.c (print_message): port
  9823.  
  9824.         * test/data/*messages: port all messages over
  9825.     
  9826.         * dbus/dbus-message-builder.c: support including 
  9827.     message type
  9828.     
  9829.         * bus/driver.c: port over
  9830.     
  9831.     * bus/dispatch.c: port over to new stuff
  9832.  
  9833.     * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
  9834.     rename disconnect signal to "Disconnected"
  9835.  
  9836. 2003-08-17  Havoc Pennington  <hp@pobox.com>
  9837.  
  9838.     This doesn't compile yet, but syncing up so I can hack on it from
  9839.     work. What are branches for if not broken code? ;-)
  9840.     
  9841.     * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
  9842.     DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
  9843.     DBUS_HEADER_FIELD_ERROR_NAME
  9844.     
  9845.     * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
  9846.     for the interface+member pairs
  9847.     (string_hash): change to use g_str_hash algorithm
  9848.     (find_direct_function, find_string_function): refactor these to
  9849.     share most code.
  9850.     
  9851.     * dbus/dbus-message.c: port all of this over to support 
  9852.     interface/member fields instead of name field
  9853.  
  9854.     * dbus/dbus-object-registry.c: port over
  9855.     
  9856.     * dbus/dbus-string.c (_dbus_string_validate_interface): rename
  9857.     from _dbus_string_validate_name
  9858.  
  9859.     * bus/dbus-daemon-1.1: change file format for the 
  9860.     <deny>/<allow> stuff to match new message naming scheme
  9861.  
  9862.     * bus/policy.c: port over
  9863.  
  9864.     * bus/config-parser.c: parse new format
  9865.     
  9866. 2003-08-16  Havoc Pennington  <hp@pobox.com>
  9867.  
  9868.     * dbus/dbus-object-registry.c (add_and_remove_objects): remove
  9869.     broken assertion
  9870.  
  9871.     * glib/dbus-gproxy.c: some hacking
  9872.  
  9873. 2003-08-15  Havoc Pennington  <hp@redhat.com>
  9874.  
  9875.     * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
  9876.  
  9877.     * dbus/dbus-connection.c
  9878.     (dbus_connection_send_with_reply_and_block): factor out internals;
  9879.     change to convert any error replies to DBusError instead of 
  9880.     returning them as a message
  9881.  
  9882. 2003-08-15  Havoc Pennington  <hp@pobox.com>
  9883.  
  9884.     * dbus/dbus-connection.c, 
  9885.     dbus/dbus-pending-call.c: Finish the pending call stuff
  9886.  
  9887. 2003-08-14  Havoc Pennington  <hp@redhat.com>
  9888.  
  9889.     * dbus/dbus-pending-call.c: start on new object that will replace
  9890.     DBusMessageHandler and ReplyHandlerData for tracking outstanding
  9891.     replies
  9892.  
  9893.     * dbus/dbus-gproxy.c: start on proxy object used to communicate
  9894.     with remote interfaces
  9895.  
  9896.     * dbus/dbus-gidl.c: do the boring boilerplate in here
  9897.     
  9898. 2003-08-12  Havoc Pennington  <hp@pobox.com>
  9899.  
  9900.     * bus/dispatch.c (bus_dispatch): make this return proper 
  9901.     DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
  9902.  
  9903.     * dbus/dbus-errors.c (dbus_set_error): use
  9904.     _dbus_string_append_printf_valist
  9905.  
  9906.     * dbus/dbus-string.c (_dbus_string_append_printf_valist)
  9907.     (_dbus_string_append_printf): new
  9908.  
  9909.     * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
  9910.     UNKNOWN_METHOD
  9911.  
  9912.     * dbus/dbus-connection.c (dbus_connection_dispatch): handle
  9913.     DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
  9914.     message is unhandled.
  9915.  
  9916. 2003-08-11  Havoc Pennington  <hp@pobox.com>
  9917.  
  9918.     * bus/test.c (client_disconnect_handler): change to return
  9919.     HANDLED (would have been REMOVE_MESSAGE)
  9920.  
  9921.     * dbus/dbus-object.h (enum DBusHandlerResult): rename to
  9922.     HANDLED/NOT_YET_HANDLED instead of
  9923.     REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
  9924.     should be used.
  9925.  
  9926. 2003-08-10  Havoc Pennington  <hp@pobox.com>
  9927.  
  9928.     * tools/dbus-send.c (main): add --type argument, for now
  9929.     supporting only method_call and signal types.
  9930.  
  9931.     * tools/dbus-print-message.c: print message type
  9932.  
  9933.     * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
  9934.     init connection->objects
  9935.  
  9936.     * doc/dbus-specification.sgml: fix sgml
  9937.  
  9938.     * bus/*.c: port over to object-instance API changes
  9939.  
  9940.     * test/test-service.c: ditto
  9941.     
  9942.     * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
  9943.     name, we will have to fix up the rest of the code to also handle
  9944.     this
  9945.     (dbus_message_new): generic message-creation call
  9946.     (set_string_field): allow appending name field
  9947.  
  9948. 2003-08-06  Havoc Pennington  <hp@pobox.com>
  9949.  
  9950.     * dbus/dbus-object-registry.c: implement signal connection 
  9951.     and dispatch
  9952.  
  9953.     * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
  9954.  
  9955.     * dbus/dbus-internals.c (_dbus_memdup): new function
  9956.  
  9957. 2003-08-02  Havoc Pennington  <hp@pobox.com>
  9958.  
  9959.     * dbus/dbus-message.c (dbus_message_get_no_reply)
  9960.     (dbus_message_set_no_reply): add these and remove
  9961.     set_is_error/get_is_error
  9962.  
  9963.     * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
  9964.     remove the ERROR flag, since there's now an ERROR type
  9965.  
  9966. 2003-08-01  Havoc Pennington  <hp@pobox.com>
  9967.  
  9968.     * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
  9969.     implement
  9970.  
  9971.     * dbus/dbus-message.c (dbus_message_get_type): new function
  9972.  
  9973.     * doc/dbus-specification.sgml: add "type" byte to messages
  9974.  
  9975. 2003-08-01  Havoc Pennington  <hp@pobox.com>
  9976.  
  9977.     * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
  9978.     a message type enum to distinguish kinds of message
  9979.     (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
  9980.     that need not be replied to
  9981.  
  9982. 2003-08-01  Havoc Pennington  <hp@pobox.com>
  9983.  
  9984.     * dbus/dbus-marshal.c: adapt to DBusObjectID changes
  9985.     (unpack_8_octets): fix no-64-bit-int bug
  9986.  
  9987.     * dbus/dbus-object-registry.c (validate_id): validate the 
  9988.     connection ID bits, not just the instance ID.
  9989.  
  9990.     * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
  9991.     the connection-global 33 bits of the object ID
  9992.  
  9993.     * dbus/dbus-object-registry.c (info_from_entry): fill in 
  9994.     object ID in the new way
  9995.  
  9996.     * dbus/dbus-objectid.h: rather than high/low bits, specifically 
  9997.     define server/client/instance bits.
  9998.  
  9999. 2003-07-30  Havoc Pennington  <hp@pobox.com>
  10000.  
  10001.     * dbus/dbus-connection.c (dbus_connection_register_object): fix
  10002.     build
  10003.  
  10004. 2003-07-13  Havoc Pennington  <hp@pobox.com>
  10005.  
  10006.     * dbus/dbus-object.h (struct DBusObjectVTable): add padding
  10007.     fields to DBusObjectVTable and DBusObjectInfo
  10008.  
  10009. 2003-07-12  Havoc Pennington  <hp@pobox.com>
  10010.  
  10011.     * dbus/dbus-object-registry.c: implement unit test,
  10012.     fix bugs discovered in process
  10013.  
  10014.     * dbus/dbus-connection.c: remove handler_table and
  10015.     register_handler(), add DBusObjectRegistry usage
  10016.  
  10017.     * dbus/dbus-objectid.c (dbus_object_id_is_null)
  10018.     (dbus_object_id_set_null): new functions
  10019.  
  10020. 2003-07-08  Havoc Pennington  <hp@pobox.com>
  10021.  
  10022.     * dbus/dbus-object.c: implement some of this
  10023.  
  10024.     * dbus/dbus-object-registry.c
  10025.     (_dbus_object_registry_add_and_unlock): fill in the object_id out
  10026.     param
  10027.     (_dbus_object_registry_new): handle OOM
  10028.  
  10029. 2003-07-08  Havoc Pennington  <hp@pobox.com>
  10030.  
  10031.     * dbus/dbus-object.h: sketch out an API for registering objects
  10032.     with a connection, that allows us to use as little as 24 bytes
  10033.     per object and lets application code represent an object in 
  10034.     any conceivable way.
  10035.  
  10036.     * dbus/dbus-object-registry.c: implement the hard bits of the
  10037.     DBusConnection aspect of object API. Not yet wired up.
  10038.     
  10039. 2003-07-06  Havoc Pennington  <hp@pobox.com>
  10040.  
  10041.     * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
  10042.     (_dbus_marshal_object_id): new
  10043.     (_dbus_demarshal_object_id): new
  10044.     (_dbus_marshal_get_arg_end_pos): support object ID type, and
  10045.     consolidate identical switch cases. Don't conditionalize handling
  10046.     of DBUS_TYPE_UINT64, need to handle the type always.
  10047.     (_dbus_marshal_validate_arg): consolidate identical cases, and
  10048.     handle DBUS_TYPE_OBJECT_ID
  10049.  
  10050.     * dbus/dbus-objectid.c: new file with DBusObjectID data type.
  10051.  
  10052.     * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
  10053.  
  10054. 2003-09-28  Havoc Pennington  <hp@pobox.com>
  10055.  
  10056.     * real 0.13 release
  10057.  
  10058. 2003-09-28  Havoc Pennington  <hp@pobox.com>
  10059.  
  10060.     * doc/Makefile.am (dbus-specification.html): testing a funky hack
  10061.     to work with Debian db2html
  10062.  
  10063. 2003-09-28  Havoc Pennington  <hp@pobox.com>
  10064.  
  10065.     * configure.in: 0.13
  10066.  
  10067.     * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
  10068.     stylesheet-images for benefit of Debian
  10069.     
  10070.     Change back to using filesystem-linked sockets for the system
  10071.     bus, so only root can create the default system bus address.
  10072.     
  10073.     * bus/system.conf.in: change to use
  10074.     DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
  10075.  
  10076.     * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
  10077.     from here.
  10078.  
  10079.     * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
  10080.     here, and AC_DEFINE DBUS_SYSTEM_PATH
  10081.  
  10082. 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
  10083.  
  10084.     * doc/TODO:
  10085.     * doc/busconfig.dtd:
  10086.     Add busconfig DTD.
  10087.     
  10088. 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
  10089.  
  10090.     * doc/dbus-specification.sgml:
  10091.     Add activation reply values.
  10092.     
  10093. 2003-08-05  Havoc Pennington  <hp@redhat.com>
  10094.  
  10095.     * configure.in: 0.12
  10096.  
  10097. 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
  10098.  
  10099.     * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
  10100.     (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
  10101.     (add_watch), (remove_watch), (create_source):
  10102.     Refcount fds, fixes some reentrancy issues.
  10103.     
  10104. 2003-07-30  Havoc Pennington  <hp@redhat.com>
  10105.  
  10106.     * dbus/dbus-bus.c (init_connections_unlocked): fix default system
  10107.     bus address to be abstract if we have abstract sockets
  10108.  
  10109.     * NEWS: update
  10110.  
  10111. 2003-07-28  Havoc Pennington  <hp@redhat.com>
  10112.  
  10113.     * bus/messagebus.in: fix to avoid processname/servicename 
  10114.     confusion, from Michael Kearey
  10115.     https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
  10116.     
  10117. 2003-07-23  Havoc Pennington  <hp@pobox.com>
  10118.  
  10119.     * dbus/dbus-message.c (dbus_message_iter_get_named): 
  10120.     fix from Andy Hanton to remove broken "+1"
  10121.  
  10122. 2003-07-16  Havoc Pennington  <hp@pobox.com>
  10123.  
  10124.     * tools/dbus-launch.c (babysit): close stdout/stderr in the
  10125.     babysitter process, as suggested by Thomas Leonard, so 
  10126.     an "eval `dbus-launch --exit-with-session`" will actually 
  10127.     return
  10128.  
  10129. 2003-07-16  Havoc Pennington  <hp@pobox.com>
  10130.  
  10131.     * configure.in: print out EXPANDED_* variables in the summary at
  10132.     the end; clean up the code that computes EXPANDED_ variables and
  10133.     get the ones using exec_prefix right. Should make things work
  10134.     when you build without --prefix
  10135.  
  10136. 2003-06-29  Havoc Pennington  <hp@pobox.com>
  10137.  
  10138.     * mono/Test.cs (class Test): fire up a main loop and run it
  10139.  
  10140.     * mono/DBus.cs (DBus): don't g_thread_init since it can only be
  10141.     done once, the app has to do it
  10142.  
  10143. 2003-06-26  Havoc Pennington  <hp@pobox.com>
  10144.  
  10145.     * mono/Connection.cs: set up connection with the glib main loop
  10146.  
  10147. 2003-07-01  Havoc Pennington  <hp@redhat.com>
  10148.  
  10149.     * doc/dbus-specification.sgml: clarify the format of a type code,
  10150.     change suggested by Jim Blandy
  10151.  
  10152. 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
  10153.  
  10154.     * doc/Makefile.am:
  10155.     * tools/Makefile.am: Don't assume srcdir == builddir.
  10156.  
  10157.     * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
  10158.     the allocated block.
  10159.     (_dbus_memory_test): New function.
  10160.     * dbus/dbus-test.h: Add _dbus_memory_test ().
  10161.     * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
  10162.  
  10163.     * dbus/dbus-message.c (decode_header_data): Use %.4s instead
  10164.     of %c%c%c%c.
  10165.     (dbus_message_new): Remove obsolete @todo.
  10166.  
  10167.     * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
  10168.     (_dbus_marshal_set_uint64): Fix comment.
  10169.  
  10170.     * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
  10171.     hardcode FIELD_REPLY_SERIAL.
  10172.  
  10173.     * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
  10174.     (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
  10175.  
  10176.     * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
  10177.     and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
  10178.  
  10179. 2003-06-24  Havoc Pennington  <hp@pobox.com>
  10180.  
  10181.     * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
  10182.  
  10183. 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
  10184.  
  10185.     * configure.in:
  10186.     * gcj/.cvsignore:
  10187.     * gcj/Hello.java:
  10188.     * gcj/Makefile.am:
  10189.     * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
  10190.     * gcj/org/.cvsignore:
  10191.     * gcj/org/Makefile.am:
  10192.     * gcj/org/freedesktop/.cvsignore:
  10193.     * gcj/org/freedesktop/Makefile.am:
  10194.     * gcj/org/freedesktop/dbus/.cvsignore:
  10195.     * gcj/org/freedesktop/dbus/Makefile.am:
  10196.     * gcj/org/freedesktop/dbus/Message.java: (Message),
  10197.     (Message.Message):
  10198.     * gcj/org/freedesktop/dbus/natMessage.cc:
  10199.     Fix the build system.
  10200.  
  10201. 2003-06-22  Havoc Pennington  <hp@pobox.com>
  10202.  
  10203.     * mono/Connection.cs: add more bindings
  10204.  
  10205.     * dbus/dbus-threads.c (dbus_threads_init): allow calling this
  10206.     more than once.
  10207.  
  10208. 2003-06-22  Havoc Pennington  <hp@pobox.com>
  10209.  
  10210.     * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
  10211.     Start wrapping more stuff.
  10212.  
  10213. 2003-06-22  Havoc Pennington  <hp@pobox.com>
  10214.  
  10215.     * mono/Message.cs: implement Message.Wrap() that ensures we only
  10216.     have a single C# wrapper per DBusMessage, assuming it works which
  10217.     it probably doesn't.
  10218.  
  10219.     * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
  10220.     (dbus_message_free_data_slot): new
  10221.     (dbus_message_set_data): new
  10222.     (dbus_message_get_data): new
  10223.  
  10224. 2003-06-22  Havoc Pennington  <hp@pobox.com>
  10225.  
  10226.     * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
  10227.     (_dbus_data_slot_allocator_alloc): rework these to keep a
  10228.     reference count on each slot and automatically manage a global
  10229.     slot ID variable passed in by address
  10230.  
  10231.     * bus/bus.c: convert to new dataslot API
  10232.  
  10233.     * dbus/dbus-bus.c: convert to new dataslot API
  10234.  
  10235.     * dbus/dbus-connection.c: convert to new dataslot API
  10236.  
  10237.     * dbus/dbus-server.c: convert to new dataslot API
  10238.  
  10239.     * glib/dbus-gmain.c: ditto
  10240.  
  10241.     * bus/test.c: ditto
  10242.  
  10243.     * bus/connection.c: ditto
  10244.  
  10245. 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
  10246.  
  10247.     * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
  10248.     after the gcj checks so that the correct configuration tags
  10249.     will be added to libtool.
  10250.  
  10251.     * dbus-glib-1.pc.in: No need to specify any includes since
  10252.     dbus-1.pc.in has those.
  10253.  
  10254. 2003-06-22  Havoc Pennington  <hp@pobox.com>
  10255.  
  10256.     * mono/*, gcj/*, configure.in, Makefile.am:
  10257.     Check in makefiles and subdirs for mono and gcj bindings.
  10258.     Neither binding actually exists, just trying to get through
  10259.     all the build and other boring bits.
  10260.  
  10261. 2003-06-21  Philip Blundell  <philb@gnu.org>
  10262.  
  10263.     * tools/dbus-monitor.1: Updated.
  10264.  
  10265.     * tools/dbus-send.1: Likewise.
  10266.  
  10267. 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
  10268.  
  10269.     * dbus/dbus-transport-unix.c (unix_handle_watch): Check
  10270.     for hangup and error after checking read so we won't discard
  10271.     pending data if both hangup and read are set.
  10272.  
  10273. 2003-06-19  Philip Blundell  <philb@gnu.org>
  10274.  
  10275.     * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
  10276.  
  10277.     * tools/dbus-send.c: Accept both --system and --session.
  10278.  
  10279.     * tools/dbus-monitor.c: Same here.
  10280.  
  10281. 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
  10282.  
  10283.     * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
  10284.     from C++ (Patch by Miloslav Trmac).
  10285.  
  10286. 2003-06-15  Joe Shaw  <joe@assbarn.com>
  10287.  
  10288.     * configure.in: Check for socklen_t.
  10289.  
  10290.     * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
  10291.  
  10292.     * test/test-segfault.c: Add #include <sys/time.h>
  10293.  
  10294.     * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
  10295.     dbus-launch needs it.
  10296.  
  10297. 2003-06-09  Havoc Pennington  <hp@redhat.com>
  10298.  
  10299.     * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
  10300.     SUN_LEN, it breaks abstract socket usage
  10301.  
  10302.     * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
  10303.     starts of lines.
  10304.  
  10305. 2003-06-04  Havoc Pennington  <hp@pobox.com>
  10306.  
  10307.     * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
  10308.     using unix:abstract=/foo, and when listening in a tmpdir
  10309.     i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
  10310.  
  10311.     * dbus/dbus-transport.c (_dbus_transport_open): support
  10312.     unix:abstract=/foo
  10313.  
  10314.     * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
  10315.     support abstract sockets
  10316.  
  10317.     * dbus/dbus-transport-unix.c
  10318.     (_dbus_transport_new_for_domain_socket): support abstract sockets
  10319.  
  10320.     * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
  10321.     toggle as an argument, implement abstract namespace support
  10322.     (_dbus_listen_unix_socket): ditto
  10323.  
  10324.     * configure.in: add --enable-abstract-sockets and implement
  10325.     a configure check for autodetection of the right value.
  10326.  
  10327. 2003-06-01  Havoc Pennington  <hp@pobox.com>
  10328.  
  10329.     * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
  10330.     in /tmp (though on Linux this will end up being useless,
  10331.     when we add abstract namespace support)
  10332.  
  10333.     * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
  10334.     subst'ing it
  10335.  
  10336. 2003-05-28  Colin Walters  <walters@verbum.org>
  10337.  
  10338.     * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
  10339.  
  10340. 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
  10341.  
  10342.     * dbus/dbus-message.c (dbus_message_new): Remove @todo.
  10343.  
  10344. 2003-05-17  Colin Walters  <walters@gnu.org>
  10345.  
  10346.     * tools/dbus-send.c: Don't exit with an error code if --help was
  10347.     passed.  Default to using the session bus instead of the system
  10348.     one.
  10349.  
  10350.     * tools/dbus-launch.c: Ditto.
  10351.  
  10352.     * tools/dbus-monitor.c: Ditto.
  10353.  
  10354.     * tools/dbus-send.1: Update with new arguments.
  10355.  
  10356.     * tools/dbus-launch.c: Emit code to export variables.  New
  10357.     arguments -s and -c to specify shell syntax, and a bit of code to
  10358.     autodetect syntax.  Also, allow specifying a program to run.
  10359.  
  10360.     * tools/dbus-launch.1: Update with new arguments.
  10361.  
  10362.     * tools/dbus-send.1: Ditto.
  10363.  
  10364.     * tools/dbus-monitor.1: Ditto.
  10365.  
  10366. 2003-05-17  Havoc Pennington  <hp@pobox.com>
  10367.  
  10368.     * bus/config-parser.c (merge_included): merge in policies from
  10369.     child configuration file.
  10370.  
  10371.     * bus/policy.c (bus_policy_merge): function to merge two policies
  10372.     together
  10373.  
  10374. 2003-05-16  Havoc Pennington  <hp@redhat.com>
  10375.  
  10376.     * dbus/dbus-connection.c: disable verbose lock spew
  10377.  
  10378.     * tools/dbus-send.c: add --print-reply command line option
  10379.  
  10380.     * tools/dbus-print-message.h (print_message): new util function
  10381.     shared by dbus-send and dbus-monitor
  10382.  
  10383.     * tools/dbus-monitor.c (handler_func): exit on disconnect
  10384.  
  10385.     * dbus/dbus-transport-unix.c (do_reading): if the transport is
  10386.     disconnected, don't try to use the read_watch
  10387.  
  10388.     * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
  10389.     so we can find this bug more easily
  10390.  
  10391. 2003-05-16  Havoc Pennington  <hp@redhat.com>
  10392.  
  10393.     * bus/policy.c (free_rule_list_func): avoid a crash when passed
  10394.     NULL as DBusHashTable is annoyingly likely to do.
  10395.  
  10396. 2003-05-16  Colin Walters  <walters@verbum.org>
  10397.  
  10398.     * tools/dbus-monitor.c: Add --session argument and usage()
  10399.     function.
  10400.  
  10401.     * tools/dbus-monitor.1: Update with new --session arg.
  10402.  
  10403.     * bus/Makefile.am (install-data-hook): Create
  10404.     $(libdir)/dbus-1.0/services so that the session bus is happy.
  10405.  
  10406. 2003-05-15  Havoc Pennington  <hp@redhat.com>
  10407.  
  10408.     * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
  10409.     on non-x86. ifdef's are evil.
  10410.  
  10411. 2003-05-15  Havoc Pennington  <hp@redhat.com>
  10412.  
  10413.     * configure.in: 0.11
  10414.  
  10415.     * NEWS: update
  10416.  
  10417.     * bus/Makefile.am (initddir): apparently we are supposed to put
  10418.     init scripts in /etc/rc.d/init.d not /etc/init.d
  10419.  
  10420.     * bus/Makefile.am: remove the "you must --enable-tests to make
  10421.     check" as it broke distcheck
  10422.  
  10423.     * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
  10424.  
  10425. 2003-05-13  James Willcox  <jwillcox@gnome.org>
  10426.  
  10427.     * configure.in:
  10428.     * bus/activation.c: (bus_activation_service_created),
  10429.     (bus_activation_activate_service):
  10430.     * bus/driver.c: (bus_driver_send_service_deleted),
  10431.     (bus_driver_send_service_created), (bus_driver_send_service_lost),
  10432.     (bus_driver_send_service_acquired),
  10433.     (bus_driver_send_welcome_message),
  10434.     (bus_driver_handle_list_services):
  10435.     * bus/session.conf.in:
  10436.     * dbus/dbus-bus.c: (dbus_bus_acquire_service),
  10437.     (dbus_bus_service_exists), (dbus_bus_activate_service):
  10438.     * dbus/dbus-bus.h:
  10439.  
  10440.     Add some convenience API which lets you activate a service, and did a
  10441.     bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
  10442.     and dbus_message_get_args()
  10443.  
  10444. 2003-05-11  Havoc Pennington  <hp@pobox.com>
  10445.  
  10446.     * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
  10447.     calling _dbus_marshal_validate_arg() for every byte in a byte
  10448.     array, etc.
  10449.  
  10450.     * dbus/dbus-message-handler.c: use atomic reference counting to
  10451.     reduce number of locks slightly; the global lock in here sucks
  10452.  
  10453.     * dbus/dbus-connection.c
  10454.     (_dbus_connection_update_dispatch_status_and_unlock): variant of
  10455.     update_dispatch_status that can be called with lock held; then use
  10456.     in a couple places to reduce locking/unlocking
  10457.     (dbus_connection_send): hold the lock over the whole function
  10458.     instead of acquiring it twice.
  10459.  
  10460.     * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
  10461.  
  10462.     * bus/connection.c (bus_connections_setup_connection): fix access
  10463.     to already-freed memory.
  10464.  
  10465.     * dbus/dbus-connection.c: keep a little cache of linked list
  10466.     nodes, to avoid using the global linked list alloc lock in the
  10467.     normal send-message case. Instead we just use the connection lock
  10468.     that we already have to take.
  10469.  
  10470.     * dbus/dbus-list.c (_dbus_list_find_last): new function
  10471.  
  10472.     * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
  10473.     change to use a struct for the atomic type; fix docs,
  10474.     they return value before increment, not after increment.
  10475.  
  10476.     * dbus/dbus-string.c (_dbus_string_append_4_aligned)
  10477.     (_dbus_string_append_8_aligned): new functions to try to
  10478.     microoptimize this operation.
  10479.     (reallocate_for_length): break this out of set_length(), to
  10480.     improve profile info, and also so we can consider inlining the
  10481.     set_length() part.
  10482.  
  10483.     * dbus/dbus-message.c (dbus_message_new_empty_header): init data
  10484.     strings with some preallocation, cuts down on our calls to realloc
  10485.     a fair bit. Though if we can get the "move entire string to empty
  10486.     string" optimization below to kick in here, it would be better.
  10487.  
  10488.     * dbus/dbus-string.c (_dbus_string_move): just call
  10489.     _dbus_string_move_len
  10490.     (_dbus_string_move_len): add a special case for moving
  10491.     an entire string into an empty string; we can just
  10492.     swap the string data instead of doing any reallocs.
  10493.     (_dbus_string_init_preallocated): new function
  10494.  
  10495. 2003-05-11  Havoc Pennington  <hp@pobox.com>
  10496.  
  10497.     Write a "test-profile" that does echo client-server with threads;
  10498.     profile reveals lock contention, memcpy/realloc of buffers, and
  10499.     UTF-8 validation as hot spots. 20% of lock contention eliminated
  10500.     with dbus_atomic_inc/dec implementation on x86.  Much remaining
  10501.     contention is global mempool locks for GList and DBusList.
  10502.  
  10503.     * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
  10504.     x86 implementation
  10505.  
  10506.     * dbus/dbus-connection.c (struct DBusConnection): use
  10507.     dbus_atomic_t for the reference count
  10508.  
  10509.     * dbus/dbus-message.c (struct DBusMessage): declare
  10510.     dbus_atomic_t values as volatile
  10511.  
  10512.     * configure.in: code to detect ability to use atomic integer
  10513.     operations in assembly, from GLib patch
  10514.  
  10515.     * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
  10516.     time, tired of it being wrong in threads and forked processes
  10517.  
  10518.     * glib/test-profile.c: a little program to bounce messages back
  10519.     and forth between threads and eat CPU
  10520.  
  10521.     * dbus/dbus-connection.c: add debug spew macros for debugging
  10522.     thread locks; include config.h at top; fix deadlock in
  10523.     dbus_connection_flush()
  10524.  
  10525. 2003-05-08  Havoc Pennington  <hp@pobox.com>
  10526.  
  10527.     * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
  10528.     data from getting written, and there wasn't a good reason to
  10529.     use _exit really.
  10530.  
  10531.     * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
  10532.     dbus_verbose lines in test coverage
  10533.     (main): add list of functions sorted by # of untested blocks
  10534.     to the coverage report
  10535.  
  10536.     * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
  10537.  
  10538.     * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
  10539.  
  10540.     * dbus/dbus-message-handler.c (_dbus_message_handler_test):
  10541.     extend test coverage
  10542.  
  10543.     * test/data/auth/cancel.auth-script: test canceling an
  10544.     authentication
  10545.  
  10546.     * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
  10547.     aren't used. in CVS history if we end up needing them.
  10548.  
  10549. 2003-05-04  Havoc Pennington  <hp@pobox.com>
  10550.  
  10551.     * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
  10552.     unit test
  10553.  
  10554.     * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
  10555.     function, which assumed length was in # of strings, not bytes
  10556.  
  10557.     * dbus/dbus-message.c (_dbus_message_test): add tests for some
  10558.     missing coverage
  10559.  
  10560.     * dbus/dbus-connection.c
  10561.     (_dbus_connection_queue_received_message): disable function for
  10562.     now, we are only using it in test mode
  10563.  
  10564.     * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
  10565.     remove a mistaken FIXME
  10566.  
  10567. 2003-05-04  Havoc Pennington  <hp@pobox.com>
  10568.  
  10569.     * dbus/dbus-connection.c (dbus_connection_preallocate_send):
  10570.     unlock mutex on successful return, patch from Anders Gustafsson
  10571.  
  10572. 2003-05-04  Havoc Pennington  <hp@pobox.com>
  10573.  
  10574.     * dbus-glib-1.pc.in (Requires): fix dependencies, from
  10575.     Anders Gustafsson
  10576.  
  10577. 2003-05-04  Havoc Pennington  <hp@pobox.com>
  10578.  
  10579.     * tools/dbus-launch.c: implement
  10580.  
  10581.     * bus/main.c (main), bus/bus.c (bus_context_new):
  10582.     implement --print-pid and --fork
  10583.  
  10584. 2003-05-03  Havoc Pennington  <hp@redhat.com>
  10585.  
  10586.     * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
  10587.     the address had no value, and add to test suite. Fix and
  10588.     regression test from Miloslav Trmac
  10589.  
  10590. 2003-05-03  Havoc Pennington  <hp@pobox.com>
  10591.  
  10592.     * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
  10593.     watch is invalid when handled
  10594.  
  10595.     * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
  10596.     dbus-launch utility to launch the bus from a shell script.  Didn't
  10597.     actually implement dbus-launch yet, it's just a placeholder still.
  10598.  
  10599. 2003-05-03  Havoc Pennington  <hp@pobox.com>
  10600.  
  10601.     * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
  10602.     daemon; also documents daemon config file, so replaces
  10603.     doc/config-file.txt. Corrected some stuff from config-file.txt in
  10604.     the process of moving it.
  10605.  
  10606. 2003-05-03  Havoc Pennington  <hp@pobox.com>
  10607.  
  10608.     * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
  10609.     add some man pages
  10610.  
  10611. 2003-05-03  Colin Walters  <walters@verbum.org>
  10612.  
  10613.     * dbus/dbus-sysdeps.c (fill_user_info): Test against
  10614.     DBUS_UID_UNSET to determine whether to do a uid lookup or not.
  10615.  
  10616.     * Makefile.am: Update to use new .pc versioning scheme.
  10617.  
  10618. 2003-05-02  Havoc Pennington  <hp@redhat.com>
  10619.  
  10620.     * bus/system.conf.in: allow send/receive to/from message bus
  10621.     service
  10622.  
  10623. 2003-04-30  Havoc Pennington  <hp@redhat.com>
  10624.  
  10625.     * configure.in: print a note when building with unit tests and
  10626.     without assertions
  10627.  
  10628. 2003-04-30  Havoc Pennington  <hp@redhat.com>
  10629.  
  10630.     * Makefile.am: add a check-local that complains if you didn't
  10631.     configure with --enable-tests
  10632.  
  10633. 2003-04-29  Havoc Pennington  <hp@redhat.com>
  10634.  
  10635.     * glib/dbus-gmain.c: docs cleanups
  10636.  
  10637.     * dbus/dbus-types.h: add docs on int64 types
  10638.  
  10639.     * dbus/dbus-memory.c: fix docs to avoid putting private API in
  10640.     public API docs section
  10641.  
  10642. 2003-04-29  Havoc Pennington  <hp@redhat.com>
  10643.  
  10644.     * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
  10645.     dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
  10646.     parallel install API version, not with the D-BUS package version.
  10647.  
  10648.     * HACKING: move some of README over here
  10649.  
  10650.     * README: updates, and document API/ABI policy
  10651.  
  10652.     * configure.in: reindentation
  10653.  
  10654. 2003-04-29  Havoc Pennington  <hp@redhat.com>
  10655.  
  10656.     * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
  10657.     to use this library" to be sure people have the right
  10658.     expectations.
  10659.  
  10660. 2003-04-28  Havoc Pennington  <hp@redhat.com>
  10661.  
  10662.     * configure.in: add --enable-docs which by default is auto yes if
  10663.     doxygen and db2html found, no otherwise; but can be forced on/off
  10664.  
  10665.     * doc/Makefile.am: conditionalize whether to build docs on
  10666.     --enable-docs
  10667.  
  10668. 2003-04-28  Havoc Pennington  <hp@redhat.com>
  10669.  
  10670.     * configure.in: 0.10
  10671.  
  10672.     * NEWS: update
  10673.  
  10674.     * bus/system.conf.in: add <includedir>system.d</includedir>
  10675.  
  10676.     * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
  10677.     username was provided but not uid
  10678.  
  10679.     * bus/config-parser.c (struct BusConfigParser): keep track of
  10680.     whether the parser is toplevel or was included; change some
  10681.     of the error handling if it's included.
  10682.  
  10683. 2003-04-27  Havoc Pennington  <hp@pobox.com>
  10684.  
  10685.     Unbreak my code...
  10686.  
  10687.     * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
  10688.     report correct status if we finish processing authentication
  10689.     inside this function.
  10690.  
  10691.     * bus/activation.c (try_send_activation_failure): use
  10692.     bus_transaction_send_error_reply
  10693.  
  10694.     * bus/connection.c (bus_connection_get_groups): return an error
  10695.     explaining the problem
  10696.  
  10697.     * bus/bus.c (bus_context_check_security_policy): implement
  10698.     restriction here that inactive connections can only send the
  10699.     hello message. Also, allow bus driver to send anything to
  10700.     any recipient.
  10701.  
  10702.     * bus/connection.c (bus_connection_complete): create the
  10703.     BusClientPolicy here instead of on-demand.
  10704.     (bus_connection_get_policy): don't return an error
  10705.  
  10706.     * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
  10707.     sender field in message being replied to
  10708.  
  10709.     * bus/bus.c (bus_context_check_security_policy): fix silly typo
  10710.     causing it to return FALSE always
  10711.  
  10712.     * bus/policy.c (bus_client_policy_check_can_send): fix bug where
  10713.     we checked sender rather than destination
  10714.  
  10715. 2003-04-25  Havoc Pennington  <hp@redhat.com>
  10716.  
  10717.         test suite is slightly hosed at the moment, will fix soon
  10718.  
  10719.     * bus/connection.c (bus_connections_expire_incomplete): fix to
  10720.     properly disable the timeout when required
  10721.     (bus_connection_set_name): check whether we can remove incomplete
  10722.     connections timeout after we complete each connection.
  10723.  
  10724.     * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
  10725.     probably still broken.
  10726.  
  10727.     * bus/services.c (bus_registry_acquire_service): implement max
  10728.     number of services owned, and honor allow/deny rules on which
  10729.     services a connection can own.
  10730.  
  10731.     * bus/connection.c (bus_connection_get_policy): report errors here
  10732.  
  10733.     * bus/activation.c: implement limit on number of pending
  10734.     activations
  10735.  
  10736. 2003-04-25  Havoc Pennington  <hp@redhat.com>
  10737.  
  10738.     * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
  10739.     where we used >= 0 instead of != DBUS_UID_UNSET.
  10740.  
  10741. 2003-04-25  Havoc Pennington  <hp@redhat.com>
  10742.  
  10743.     * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
  10744.     were toggled without add/remove, fix from Anders Gustafsson
  10745.  
  10746. 2003-04-24  Havoc Pennington  <hp@redhat.com>
  10747.  
  10748.     * test/data/valid-config-files/basic.conf: add <limit> tags to
  10749.     this test
  10750.  
  10751.     * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
  10752.     <limit> tag in configuration file.
  10753.  
  10754. 2003-04-24  Havoc Pennington  <hp@redhat.com>
  10755.  
  10756.     * bus/dispatch.c: somehow missed some name_is
  10757.  
  10758.     * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
  10759.     (_dbus_timeout_set_interval): new
  10760.  
  10761.     * bus/connection.c (bus_connections_setup_connection): record time
  10762.     when each connection is first set up, and expire them after the
  10763.     auth timeout passes.
  10764.  
  10765. 2003-04-24  Havoc Pennington  <hp@redhat.com>
  10766.  
  10767.     * dbus/dbus-message.c (dbus_message_name_is): rename
  10768.     (dbus_message_service_is): rename
  10769.     (dbus_message_sender_is): rename
  10770.     (dbus_message_get_service): rename
  10771.  
  10772. 2003-04-24  Havoc Pennington  <hp@redhat.com>
  10773.  
  10774.     * configure.in: add --enable-checks
  10775.  
  10776.     * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
  10777.  
  10778.     * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
  10779.     to use thread locks.
  10780.     (_dbus_connection_handler_destroyed_locked): move some private
  10781.     functions into proper docs group
  10782.  
  10783.     * dbus/dbus-internals.h: add _dbus_return_if_fail,
  10784.     _dbus_return_val_if_fail
  10785.  
  10786.     Throughout: use dbus_return_if_fail
  10787.  
  10788. 2003-04-23  James Willcox  <jwillcox@gnome.org>
  10789.  
  10790.     * glib/dbus-glib.h:
  10791.     * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
  10792.     (dbus_connection_setup_with_g_main),
  10793.     (dbus_server_setup_with_g_main):
  10794.     * glib/test-dbus-glib.c: (main):
  10795.     * glib/test-thread-client.c: (main):
  10796.     * glib/test-thread-server.c: (new_connection_callback), (main):
  10797.     * tools/dbus-monitor.c: (main):
  10798.  
  10799.     Added a GMainContext argument to dbus_connection_setup_with_g_main()
  10800.     and dbus_server_setup_with_g_main().
  10801.  
  10802. 2003-04-20  Havoc Pennington  <hp@pobox.com>
  10803.  
  10804.     * doc/dbus-specification.sgml: document the restrictions on
  10805.     message and service names
  10806.  
  10807. 2003-04-22  Havoc Pennington  <hp@redhat.com>
  10808.  
  10809.     * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
  10810.     support, and do some code cleanups to share more code and
  10811.     speed up array marshal/demarshal.
  10812.  
  10813.     * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
  10814.  
  10815.     * configure.in: generate dbus-arch-deps.h
  10816.  
  10817.     * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
  10818.     64-bit typecodes
  10819.  
  10820. 2003-04-22  Havoc Pennington  <hp@redhat.com>
  10821.  
  10822.     * test/data/valid-messages/opposite-endian.message: fix test
  10823.     to use proper type for rply field
  10824.  
  10825.         * test/data/invalid-messages: add tests for below validation
  10826.  
  10827.     * dbus/dbus-message.c (decode_header_data): validate field types,
  10828.     and validate that named fields are valid names
  10829.     (decode_name_field): consider messages in the
  10830.     org.freedesktop.Local. namespace to be invalid.
  10831.  
  10832.     * dbus/dbus-string.c (_dbus_string_validate_name): new
  10833.  
  10834. 2003-04-19  Havoc Pennington  <hp@pobox.com>
  10835.  
  10836.     * bus/driver.c (bus_driver_handle_hello): check limits and
  10837.     return an error if they are exceeded.
  10838.  
  10839.     * bus/connection.c: maintain separate lists of active and inactive
  10840.     connections, and a count of each. Maintain count of completed
  10841.     connections per user. Implement code to check connection limits.
  10842.  
  10843.     * dbus/dbus-list.c (_dbus_list_unlink): export
  10844.  
  10845.     * bus/bus.c (bus_context_check_security_policy): enforce a maximum
  10846.     number of bytes in the message queue for a connection
  10847.  
  10848. 2003-04-18  Havoc Pennington  <hp@pobox.com>
  10849.  
  10850.     * dbus/dbus-auth.c (record_mechanisms): memleak fixes
  10851.  
  10852.     * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
  10853.     memleaks
  10854.  
  10855.     * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
  10856.     on realloc be sure to update the pointer in the keyring
  10857.  
  10858.     * dbus/dbus-string.c (_dbus_string_zero): compensate for align
  10859.     offset to avoid writing to unallocated memory
  10860.  
  10861.     * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
  10862.     try the next mechanism, so we properly handle OOM
  10863.  
  10864.     * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
  10865.     on OOM.
  10866.     (_dbus_keyring_new): fix OOM bug
  10867.     (_dbus_keyring_new_homedir): always set error; impose a maximum
  10868.     number of keys we'll load from the file, mostly to speed up the
  10869.     test suite and make its OOM checks more useful, but also for
  10870.     general sanity.
  10871.  
  10872.     * dbus/dbus-auth.c (process_error_server): reject authentication
  10873.     if we get an error from the client
  10874.     (process_cancel): on cancel, send REJECTED, per the spec
  10875.     (process_error_client): send CANCEL if we get an error from the
  10876.     server.
  10877.  
  10878. 2003-04-18  Havoc Pennington  <hp@pobox.com>
  10879.  
  10880.     * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
  10881.     debug spew
  10882.  
  10883.     * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
  10884.     handling problem
  10885.  
  10886.     * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
  10887.     about DBUS_TEST_HOMEDIR once
  10888.  
  10889.     * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
  10890.     the environment
  10891.  
  10892.     * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
  10893.     config file so we test the right thing
  10894.  
  10895.     Throughout: assorted docs improvements
  10896.  
  10897. 2003-04-18  Havoc Pennington  <hp@pobox.com>
  10898.  
  10899.     * glib/dbus-gmain.c: adapt to watch changes
  10900.  
  10901.     * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
  10902.  
  10903.     * dbus/dbus-server.h: remove dbus_server_handle_watch
  10904.  
  10905.     * dbus/dbus-connection.h: remove dbus_connection_handle_watch
  10906.  
  10907.     * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
  10908.     like DBusTimeout, so we don't need dbus_connection_handle_watch
  10909.     etc.
  10910.  
  10911. 2003-04-17  Havoc Pennington  <hp@redhat.com>
  10912.  
  10913.     * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
  10914.     database usage so it all goes via the DBusUserDatabase cache.
  10915.  
  10916. 2003-04-17  Havoc Pennington  <hp@redhat.com>
  10917.  
  10918.     * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
  10919.     there was an OOM watch we skipped, we always return TRUE so we
  10920.     iterate again to have a look at it again. Fixes test suite hang.
  10921.     Code rearrangement also lets us lose some memset and only iterate
  10922.     over callbacks once.
  10923.  
  10924.     * bus/driver.c (bus_driver_handle_message): sense of test for
  10925.     reply was backward
  10926.  
  10927. 2003-04-16  Havoc Pennington  <hp@pobox.com>
  10928.  
  10929.     * doc/dbus-specification.sgml: make spec say serials are unsigned
  10930.  
  10931.     * dbus/dbus-message.h: change message serials to unsigned
  10932.  
  10933.     * dbus/dbus-connection.c: adapt to message serials being unsigned
  10934.  
  10935. 2003-04-15  Havoc Pennington  <hp@pobox.com>
  10936.  
  10937.     * bus/bus.c: create and keep around a shared DBusUserDatabase
  10938.     object.
  10939.  
  10940.     * bus/connection.c (bus_connection_get_groups): don't cache
  10941.     groups for user in the connection object, since user database
  10942.     object now does that.
  10943.  
  10944. 2003-04-16  Havoc Pennington  <hp@redhat.com>
  10945.  
  10946.     * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
  10947.     list of size counters
  10948.     (_dbus_message_loader_putback_message_link): put back a popped link
  10949.  
  10950.     * dbus/dbus-connection.c
  10951.     (dbus_connection_set_max_live_messages_size): rename
  10952.     max_received_size
  10953.     (dbus_connection_get_outgoing_size): get size of outgoing
  10954.     queue
  10955.     (_dbus_connection_set_connection_counter): remove this cruft
  10956.  
  10957. 2003-04-14  Havoc Pennington  <hp@redhat.com>
  10958.  
  10959.     * dbus/dbus-userdb.c: user database abstraction, mostly to get
  10960.     caching, but at some point we might want to be able to use a
  10961.     different database.
  10962.  
  10963.     * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
  10964.     SHA1 conf file to test the sha1 auth mechanism, since the regular
  10965.     test always uses EXTERNAL when available.
  10966.  
  10967.     * configure.in,
  10968.     test/data/valid-config-files/debug-allow-all-sha1.conf.in:
  10969.     add conf file that requires use of sha1 auth
  10970.  
  10971. 2003-04-13  Havoc Pennington  <hp@pobox.com>
  10972.  
  10973.         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
  10974.     from Philip Blundell to send messages and monitor them.
  10975.  
  10976. 2003-04-13  Havoc Pennington  <hp@pobox.com>
  10977.  
  10978.     * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
  10979.     callbacks
  10980.  
  10981.     * test/data/valid-config-files/debug-allow-all.conf.in: allow all
  10982.     users
  10983.  
  10984.     * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
  10985.     fix to only recover unused bytes if we're already authenticated
  10986.     (_dbus_transport_get_is_authenticated): fix to still mark us
  10987.     authenticated if there are unused bytes.
  10988.  
  10989.     * bus/dispatch.c: implement security policy checking
  10990.  
  10991.     * bus/connection.c (bus_transaction_send_from_driver): new
  10992.  
  10993.     * bus/bus.c (bus_context_check_security_policy): new
  10994.  
  10995.     * bus/dispatch.c (send_service_nonexistent_error): delete this,
  10996.     now we just set the DBusError and it gets converted to an error
  10997.     reply.
  10998.  
  10999.     * bus/connection.c (allow_user_function): enable code using actual
  11000.     data from the config file
  11001.  
  11002.     * bus/policy.c (list_allows_user): handle wildcard rules for
  11003.     user/group connection perms
  11004.  
  11005. 2003-04-13  Havoc Pennington  <hp@pobox.com>
  11006.  
  11007.     * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
  11008.  
  11009.     * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
  11010.  
  11011.     * bus/policy.c (bus_policy_append_mandatory_rule)
  11012.     (bus_policy_append_default_rule, bus_policy_append_user_rule)
  11013.     (bus_policy_append_group_rule): new functions
  11014.  
  11015. 2003-04-12  Havoc Pennington  <hp@pobox.com>
  11016.  
  11017.     * bus/config-parser.c (bus_config_parser_new): fix a memleak
  11018.  
  11019.     * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
  11020.     the pid/gid/uid, just for paranoia.
  11021.  
  11022.     * test/break-loader.c (randomly_do_n_things): find a byte
  11023.     containing a type code, and randomly change it to a different
  11024.     type code.
  11025.  
  11026. 2003-04-12  Havoc Pennington  <hp@pobox.com>
  11027.  
  11028.     * bus/policy.h: change BusPolicy to be the thing from the config
  11029.     file, and rename old BusPolicy to BusClientPolicy
  11030.  
  11031.     * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
  11032.     match change in how policy works
  11033.  
  11034.     * dbus/dbus-internals.h: mark assert_not_reached as
  11035.     __attribute((noreturn))__
  11036.  
  11037. 2003-04-11  Havoc Pennington  <hp@redhat.com>
  11038.  
  11039.     * doc/dbus-specification.sgml: fix a spot with the wrong name for
  11040.     the broadcast service. Use boolean return for ServiceExists.
  11041.  
  11042. 2003-04-11  Havoc Pennington  <hp@redhat.com>
  11043.  
  11044.     * configure.in: add another directory to look for qt in.
  11045.  
  11046. 2003-04-11  Havoc Pennington  <hp@redhat.com>
  11047.  
  11048.     * AUTHORS: add Colin Walters
  11049.  
  11050. 2003-04-11  Havoc Pennington  <hp@redhat.com>
  11051.  
  11052.     * NEWS: update
  11053.  
  11054.     * configure.in: 0.9
  11055.  
  11056. 2003-04-11  Havoc Pennington  <hp@redhat.com>
  11057.  
  11058.     * bus/messagebus.in: remove pid file when stopping the
  11059.     message bus, since the bus won't have privileges to remove it
  11060.     itself.
  11061.  
  11062. 2003-04-11  Havoc Pennington  <hp@redhat.com>
  11063.  
  11064.     * bus/bus.c (bus_context_new): move credentials change after
  11065.     creating pidfile
  11066.  
  11067. 2003-04-11  Havoc Pennington  <hp@pobox.com>
  11068.  
  11069.     * test/decode-gcov.c: add "below average functions" to the
  11070.     coverage report, and change how some of the code works.
  11071.  
  11072.     * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
  11073.     not in the coverage stats.
  11074.  
  11075.     * test/test-service.c (main): use _dbus_verbose not fprintf in a
  11076.     couple places so running the test suite doesn't result in megaspam.
  11077.  
  11078. 2003-04-11  Havoc Pennington  <hp@pobox.com>
  11079.  
  11080.     * bus/dispatch.c (check_existent_service_activation): accept a no
  11081.     memory error in a place we didn't before
  11082.  
  11083.     * bus/test.c (bus_test_run_everything): remove hacky "do it twice
  11084.     in case the first one failed," since the test suite is less
  11085.     broken now.
  11086.  
  11087. 2003-04-10  Havoc Pennington  <hp@pobox.com>
  11088.  
  11089.     * bus/dispatch.c (check_segfault_service_activation): add test
  11090.     for launching an executable that just crashes.
  11091.  
  11092.     * test/test-segfault.c (main): try setting coredumpsize to 0 so we
  11093.     don't leave a million cores. We'll see how portable this is.
  11094.  
  11095. 2003-04-10  Havoc Pennington  <hp@pobox.com>
  11096.  
  11097.     * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
  11098.     the possible parent failures before we fork, so that we don't
  11099.     fail to create a babysitter after creating the child.
  11100.  
  11101.     * bus/activation.c (bus_activation_activate_service): kill child
  11102.     if we don't successfully complete the activation.
  11103.  
  11104. 2003-04-10  Havoc Pennington  <hp@redhat.com>
  11105.  
  11106.     * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
  11107.     the connection if it's disconnected
  11108.  
  11109.     * bus/activation.c (bus_activation_service_created): use new
  11110.     transaction features to roll back removal of pending activation if
  11111.     we don't successfully create the service after all. Don't remove
  11112.     pending activation if the function fails.
  11113.  
  11114.     * dbus/dbus-list.c (_dbus_list_insert_before_link)
  11115.     (_dbus_list_insert_after_link): new code to facilitate
  11116.     services.c fixes
  11117.  
  11118.     * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
  11119.     new functionality, so we can preallocate the ability to insert
  11120.     into a hash table.
  11121.  
  11122.     * bus/connection.c (bus_transaction_add_cancel_hook): new function
  11123.     allowing us to put custom hooks in a transaction to be used for
  11124.     cancelling said transaction
  11125.  
  11126.     * doc/dbus-specification.sgml: add some discussion of secondary
  11127.     service owners, and disallow zero-length service names
  11128.  
  11129.     * bus/services.c (bus_registry_acquire_service): new function,
  11130.     splits out part of bus_driver_handle_acquire_service() and fixes
  11131.     a bug where we didn't remove the service doing the acquiring
  11132.     from the secondary queue if we failed to remove the current owner
  11133.     from the front of the queue.
  11134.  
  11135. 2003-04-10  Alexander Larsson  <alexl@redhat.com>
  11136.  
  11137.     * doc/dbus-specification.sgml:
  11138.     s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
  11139.  
  11140. 2003-04-10  Alexander Larsson  <alexl@redhat.com>
  11141.  
  11142.     * bus/.cvsignore:
  11143.     * glib/.cvsignore:
  11144.     * test/.cvsignore:
  11145.     Added files to cvsignore
  11146.  
  11147.     * dbus/dbus-message.h:
  11148.     * dbus/dbus-message.c: (dbus_message_iter_get_named):
  11149.     Make get_named() take two out argument and return a boolean.
  11150.     (dbus_message_iter_get_args_valist):
  11151.     Update usage of get_named().
  11152.     (dbus_message_iter_append_byte):
  11153.     Fix typo
  11154.     (dbus_message_iter_append_named)
  11155.     Fix typo
  11156.     (message_iter_test), (check_message_handling_type), (_dbus_message_test):
  11157.     More tests.
  11158.  
  11159. 2003-04-10  Alexander Larsson  <alexl@redhat.com>
  11160.  
  11161.     * dbus/dbus-marshal.[ch]:
  11162.     Add array_type_pos argument to _dbus_marshal_validate_arg.
  11163.     Let you pass a NULL end_pos to _dbus_marshal_validate_type.
  11164.  
  11165.     * dbus/dbus-message.[ch]:
  11166.     Multi-dimensional arrays have full type specification in the
  11167.     outermost array. Iter code re-arranged to handle this.
  11168.     Added some more iter tests.
  11169.  
  11170.     * doc/dbus-specification.sgml:
  11171.     Add me to authors.
  11172.     Remove old FIXME.
  11173.     Update new array encoding description.
  11174.     Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
  11175.  
  11176.     * test/data/invalid-messages/array-with-mixed-types.message:
  11177.     * test/data/valid-messages/array-of-array-of-uint32.message:
  11178.     Change to the new array format.
  11179.  
  11180.     * test/data/invalid-messages/too-short-dict.message:
  11181.     Fix bug in test.
  11182.  
  11183.     * test/data/valid-messages/recursive-types.message:
  11184.     Fix up and extend test.
  11185.  
  11186. 2003-04-10  Havoc Pennington  <hp@pobox.com>
  11187.  
  11188.     * bus/dispatch.c: lots of fixes
  11189.  
  11190.     * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
  11191.     (_dbus_loop_iterate): remove old "quit if no callbacks" code,
  11192.     that was crack, broke the test service.
  11193.  
  11194.     * dbus/dbus-transport.c (_dbus_transport_open): fix error
  11195.     handling to avoid piling up errors if we get a failure on the
  11196.     first address.
  11197.  
  11198.     * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
  11199.     pid in assertion failures.
  11200.  
  11201.     * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
  11202.     to some fixed size of file descriptor array. Don't return TRUE
  11203.     anytime a timeout exists, that led to lots of busy loop silliness
  11204.     in the tests.
  11205.  
  11206. 2003-04-09  Havoc Pennington  <hp@redhat.com>
  11207.  
  11208.     * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
  11209.     I'd checked this in earlier but hadn't.
  11210.  
  11211. 2003-04-09  Havoc Pennington  <hp@redhat.com>
  11212.  
  11213.     * bus/dispatch.c (bus_dispatch_test): get a bit further through
  11214.     the activation test (man this is getting old!)
  11215.  
  11216. 2003-04-09  Havoc Pennington  <hp@redhat.com>
  11217.  
  11218.     * test/test-utils.c: use dispatch status function to fix this up
  11219.  
  11220.     * bus/connection.c (connection_watch_callback): don't dispatch
  11221.     from here
  11222.     (connection_timeout_callback): don't dispatch from here
  11223.     (bus_connections_setup_connection): set the dispatch status function
  11224.     (bus_connection_disconnected): unset it
  11225.  
  11226.     * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
  11227.     used to add a connection to be dispatched
  11228.     (_dbus_loop_iterate): do the dispatching at the end of each
  11229.     iteration
  11230.  
  11231.     * dbus/dbus-connection.c
  11232.     (dbus_connection_set_dispatch_status_function): new function
  11233.     allowing us to fix up main loop usage
  11234.     (_dbus_connection_last_unref): free all the various function
  11235.     user data
  11236.     (dbus_connection_dispatch): call the DispatchStatusFunction
  11237.     whenever this function returns
  11238.     (dbus_connection_handle_watch): call DispatchStatusFunction
  11239.     (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
  11240.     (reply_handler_timeout): call DispatchStatusFunction
  11241.     (dbus_connection_flush): call DispatchStatusFunction
  11242.  
  11243. 2003-04-09  Havoc Pennington  <hp@redhat.com>
  11244.  
  11245.     * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
  11246.     a memory leak
  11247.  
  11248.     * bus/dispatch.c (check_service_activated): fix bug in test
  11249.  
  11250.     * dbus/dbus-mainloop.c (check_timeout): fix this up
  11251.  
  11252.     * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
  11253.     verbose output so we can sort out output from different processes,
  11254.     e.g. in the activation case.
  11255.  
  11256. 2003-04-08  Colin Walters  <walters@gnu.org>
  11257.  
  11258.      * bus/bus.c (struct BusContext) [pidfile]: New member, to store
  11259.      the pid file.
  11260.      (bus_context_new): Set it.
  11261.      (bus_context_unref): Use it to delete the pid file.
  11262.  
  11263. 2003-04-08  Havoc Pennington  <hp@redhat.com>
  11264.  
  11265.     * test/data/invalid-messages/array-with-mixed-types.message:
  11266.     regression test that fails for the moment
  11267.  
  11268.     * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
  11269.     tests for convenience
  11270.  
  11271.     * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
  11272.     array of nil, it broke things.
  11273.  
  11274.     * test/data/invalid-messages/array-of-nil.message: regression test
  11275.  
  11276.     * test/data/valid-messages/array-of-array-of-uint32.message:
  11277.     happened to write this so added it to suite
  11278.  
  11279. 2003-04-08  Havoc Pennington  <hp@redhat.com>
  11280.  
  11281.     * bus/driver.c (bus_driver_handle_acquire_service): init
  11282.     retval/reply before checking name
  11283.  
  11284.     * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
  11285.     recursion depth argument
  11286.  
  11287.     * dbus/dbus-message.h (struct DBusMessageIter): put some padding
  11288.     in the public struct for future extension
  11289.  
  11290.     * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
  11291.     typo
  11292.  
  11293.     * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
  11294.     message
  11295.  
  11296.     * doc/dbus-specification.sgml: fix typo
  11297.  
  11298. 2003-04-08  Alexander Larsson  <alexl@redhat.com>
  11299.  
  11300.     Implemented recursive types, named types and new-style iters
  11301.  
  11302.     * bus/driver.c:
  11303.     * glib/test-thread-client.c: (thread_func):
  11304.     * glib/test-thread-server.c: (handle_test_message):
  11305.     * test/test-service.c: (handle_echo):
  11306.     Update to new api
  11307.  
  11308.     * dbus/Makefile.am:
  11309.     * dbus/dbus-dict.c:
  11310.     * dbus/dbus-dict.h:
  11311.     * dbus/dbus.h
  11312.     Remove DBusDict
  11313.  
  11314.     * dbus/dbus-internals.c: (_dbus_type_to_string):
  11315.     Update for new types.
  11316.  
  11317.     * dbus/dbus-marshal.[ch]:
  11318.     Implement recursive types and the new marshalling format.
  11319.     Remove hardcoded dict marshalling.
  11320.     Marshal named types.
  11321.  
  11322.     * dbus/dbus-message-builder.c:
  11323.     Add BYTE_ARRAY.
  11324.     Remove references to old types
  11325.  
  11326.     * dbus/dbus-message.[ch]:
  11327.     New non-refcounted iter API that supports recursive iters.
  11328.     Use iters for appending, including support for recursive
  11329.     iters.
  11330.     Add byte and named type support.
  11331.     Update everything to new marshalling formats.
  11332.     Add tests for new API.
  11333.  
  11334.     * dbus/dbus-protocol.h:
  11335.     Remove old array types.
  11336.     Add types: BYTE, ARRAY, DICT, NAMED
  11337.  
  11338.     * dbus/dbus-string.c:
  11339.     * dbus/dbus-sysdeps.c:
  11340.     Make parse_double locale safe.
  11341.  
  11342.     * dbus/dbus-test-main.c:
  11343.     Call setlocale.
  11344.  
  11345.     * dbus/dbus-test.c:
  11346.     Kill dict test
  11347.  
  11348.     * doc/dbus-specification.sgml:
  11349.     Update spec
  11350.  
  11351.     * test/data/incomplete-messages/missing-body.message:
  11352.     * test/data/invalid-messages/bad-boolean.message:
  11353.     * test/data/invalid-messages/bad-boolean-array.message:
  11354.     * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
  11355.     * test/data/invalid-messages/boolean-has-no-value.message-raw:
  11356.     * test/data/invalid-messages/too-short-dict.message:
  11357.     * test/data/valid-messages/dict-simple.message:
  11358.     * test/data/valid-messages/dict.message:
  11359.     * test/data/valid-messages/emptiness.message:
  11360.     * test/data/valid-messages/lots-of-arguments.message:
  11361.     * test/data/valid-messages/no-padding.message:
  11362.     * test/data/valid-messages/recursive-types.message:
  11363.     Add missing NAME fields
  11364.     Fix up dicts & arrays
  11365.  
  11366.     * test/data/invalid-messages/dict-with-nil-value.message:
  11367.     Removed, this is not invalid anymore.
  11368.  
  11369.     * test/data/valid-messages/recursive-types.message:
  11370.     Add new test for deeply recursive types.
  11371.  
  11372. 2003-04-07  Havoc Pennington  <hp@pobox.com>
  11373.  
  11374.     * bus/driver.c (bus_driver_handle_acquire_service): return an
  11375.     error if you try to acquire a service that starts with ':'
  11376.  
  11377. 2003-04-07  Havoc Pennington  <hp@redhat.com>
  11378.  
  11379.     * doc/dbus-specification.sgml: require that base service names
  11380.     start with ':' and that the base service is created/deleted
  11381.     as first and last things a connection does on the bus
  11382.  
  11383.     * bus/dispatch.c (check_existent_service_activation): lots more
  11384.     work on the activation test; it doesn't fully pass yet...
  11385.  
  11386.     * test/test-service.c (main): fix so we don't memleak the
  11387.     connection to the message bus
  11388.     (filter_func): accept a message asking us to exit
  11389.  
  11390. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11391.  
  11392.     * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
  11393.     from Colin Walters
  11394.  
  11395.     * configure.in: fixes to Qt detection from Colin Walters
  11396.  
  11397.     * doc/Makefile.am: Only remove generated docbook dirs if they
  11398.     exist, from Colin Walters
  11399.  
  11400.     * dbus/dbus-bus.c: change how we set well-known connections to
  11401.     NULL, so that it works if a single connection is stored in
  11402.     two well-known array slots.
  11403.  
  11404.     * test/Makefile.am: remove a lot of stuff that isn't immediately
  11405.     useful, it's in CVS history if we want it.
  11406.  
  11407.     * test/test-service.c: use dbus-mainloop instead of that
  11408.     watch.[hc] crack
  11409.  
  11410. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11411.  
  11412.     * dbus/Makefile.am: split lists of sources into stuff that goes in
  11413.     the library, util functions that go in the lib and are also used
  11414.     elsewhere, and util functions that are used in tests/daemon but
  11415.     don't go in the lib.
  11416.  
  11417.     * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
  11418.     here so it can be used in test binaries also
  11419.  
  11420. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11421.  
  11422.     * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
  11423.     here in the parent process, so we can return an error if it
  11424.     fails. Also, move some of the code into the child so the parent
  11425.     is less hosed if we fail midway through.
  11426.  
  11427.     * bus/bus.c (bus_context_new): move pidfile detection further up
  11428.     in the function, before we start overwriting sockets and such.
  11429.  
  11430.     * bus/messagebus.in: adjust this a bit, not sure if it will work.
  11431.  
  11432.     * configure.in: add --with-system-pid-file and --with-system-socket
  11433.  
  11434. 2003-04-06  Colin Walters  <walters@verbum.org>
  11435.  
  11436.     * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
  11437.  
  11438.     * bus/system.conf.in: Declare a pidfile.
  11439.  
  11440.     * bus/bus.c (bus_context_new): Test for an existing pid file, and
  11441.     create one (if appropriate).
  11442.  
  11443.     * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
  11444.     (struct BusConfigParser) [pidfile]: New.
  11445.     (element_type_to_name, merge_included, start_busconfig_child)
  11446.     (bus_config_parser_end_element, bus_config_parser_content): Handle it.
  11447.     (bus_config_parser_unref): Free it.
  11448.     (bus_config_parser_get_pidfile): New function.
  11449.  
  11450.     * bus/config-parser.h (_dbus_write_pid_file): Prototype.
  11451.  
  11452.     * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
  11453.  
  11454.     * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
  11455.  
  11456.     * dbus/dbus-sysdeps.h: Prototype it.
  11457.  
  11458. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11459.  
  11460.     * bus/bus.c (bus_context_new): print the address in here, rather
  11461.     than in main(), because we need to do it before forking the daemon
  11462.  
  11463.     * bus/dispatch.c (send_service_nonexistent_error): set the sender
  11464.     on the service nonexistent error
  11465.  
  11466.     * bus/driver.c (bus_driver_handle_acquire_service): set the
  11467.     sender on the AcquireService reply
  11468.  
  11469.     * test/data/valid-config-files/debug-allow-all.conf.in: Make test
  11470.     server also listen on a UNIX socket so services can connect to it.
  11471.  
  11472. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11473.  
  11474.     * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
  11475.     so it detects deadlocks and also we actually init threads when
  11476.     debugging.
  11477.  
  11478. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11479.  
  11480.     * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
  11481.     save the domain socket name, and unlink it when we disconnect the
  11482.     server. Means that at least when we exit normally, we won't leave
  11483.     a bunch of junk in /tmp
  11484.  
  11485.     * dbus/dbus-transport-unix.c
  11486.     (_dbus_transport_new_for_domain_socket): code cleanup (nicer
  11487.     memory management). (I was making a real change here but then
  11488.     didn't)
  11489.  
  11490. 2003-04-06  Havoc Pennington  <hp@pobox.com>
  11491.  
  11492.     * bus/bus.c (bus_context_new): fix wrong handling of
  11493.     server_data_slot_unref() in the error case.
  11494.  
  11495.     * dbus/dbus-internals.h (_dbus_assert): change so it passes
  11496.     "(condition) != 0" to _dbus_real_assert so that
  11497.     "_dbus_assert (pointer)" doesn't cause a warning
  11498.  
  11499.     * bus/main.c (main): accept --print-address option to print out
  11500.     the message bus address
  11501.  
  11502.     * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
  11503.  
  11504.     * dbus/dbus-transport.c (_dbus_transport_open): special error for
  11505.     "tmpdir" option to unix: address on client side
  11506.  
  11507.     * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
  11508.     to unix: address
  11509.  
  11510.     * configure.in (TEST_SOCKET_DIR): locate a temporary directory
  11511.     we can use to create sockets in the test suite.
  11512.  
  11513.     * bus/main.c (signal_handler): on SIGTERM, exit the daemon
  11514.     cleanly. To be used for testing.
  11515.  
  11516.     * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
  11517.  
  11518.     * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
  11519.  
  11520.     * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
  11521.     handle trying to call this when there's no servers active
  11522.  
  11523. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11524.  
  11525.     * NEWS: update
  11526.  
  11527.     * configure.in: 0.8
  11528.  
  11529. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11530.  
  11531.     * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
  11532.     crash on startup. Need to get "try starting the daemon"
  11533.     in the test suite I guess. ;-)
  11534.  
  11535.     * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
  11536.     tracked the number of open connections; it's better done in
  11537.     application-specific code as you want it to span all servers etc.
  11538.  
  11539. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11540.  
  11541.     * bus/Makefile.am (install-data-hook): add missing DESTDIR,
  11542.     patch from Colin Walters
  11543.  
  11544. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11545.  
  11546.     * doc/config-file.txt (Elements): fix docs of <auth> to reflect
  11547.     reality; in fact multiple mechanisms are allowed.
  11548.  
  11549.     * dbus/dbus-internals.c (_dbus_real_assert)
  11550.     (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
  11551.     _dbus_assert_not_reached() into functions, so that they don't show
  11552.     up in basic block counts for test coverage, and don't use up as
  11553.     much disk space. Does mean slower execution speed though, so
  11554.     assumes --disable-asserts is the normal production case.
  11555.  
  11556. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11557.  
  11558.     * test/Makefile.am (dist-hook): also dist *.in files
  11559.  
  11560.     * NEWS: update
  11561.  
  11562.     * configure.in: 0.7
  11563.  
  11564. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11565.  
  11566.     * dbus/dbus-string.c: docs warning
  11567.  
  11568.     * dbus/dbus-spawn.c: missing docs
  11569.  
  11570.     * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
  11571.  
  11572. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11573.  
  11574.     * bus/loop.c (bus_loop_iterate): fix the timeout code, using
  11575.     magic from GLib
  11576.  
  11577.     * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
  11578.     to -1 once we've reaped the babysitter
  11579.     (_dbus_babysitter_handle_watch): do as much work as we can, not
  11580.     just one go of it
  11581.  
  11582.     * bus/activation.c: add code using DBusBabysitter so that we
  11583.     handle it when a service fails to start up properly.
  11584.     (bus_activation_service_created): don't remove the activation
  11585.     entries as we go, just let them get removed when we free the pending
  11586.     activation. Unref reply messages after sending them.
  11587.  
  11588. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11589.  
  11590.     * test/decode-gcov.c (main): print per-directory stats in the report
  11591.  
  11592.     * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
  11593.  
  11594. 2003-04-05  Havoc Pennington  <hp@pobox.com>
  11595.  
  11596.     * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
  11597.  
  11598.     * test/decode-gcov.c: hack up a little program to suck data
  11599.     out of gcov files. Yes this is sort of silly.
  11600.  
  11601.     * configure.in: define something in config.h and do an
  11602.     AM_CONDITIONAL when gcov is enabled
  11603.  
  11604. 2003-04-04  Havoc Pennington  <hp@redhat.com>
  11605.  
  11606.     * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
  11607.     return a "babysitter" object that is used to monitor the status of
  11608.     the spawned process and reap it when required.
  11609.  
  11610.     * test/test-segfault.c, test/test-exit.c,
  11611.     test/test-sleep-forever.c: binaries that do various lame things,
  11612.     used in the test suite.
  11613.  
  11614.     * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
  11615.  
  11616. 2003-04-03  Havoc Pennington  <hp@pobox.com>
  11617.  
  11618.     * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
  11619.     in preparation for modifying it, dbus-sysdeps is getting
  11620.     a bit unmanageable.
  11621.  
  11622. 2003-04-03  Havoc Pennington  <hp@redhat.com>
  11623.  
  11624.     * bus/loop.h, bus/loop.c: make the mainloop an object so we can
  11625.     have multiple ones
  11626.  
  11627.     * bus/*.[hc]: adapt to mainloop change
  11628.  
  11629. 2003-04-03  Havoc Pennington  <hp@redhat.com>
  11630.  
  11631.     * bus/activation.c (load_directory): fix up memleaks
  11632.     (bus_activation_entry_free): free the entry
  11633.  
  11634.     * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
  11635.     we get one from the message bus; fix memleaks.
  11636.  
  11637.     * dbus/dbus-message.c (dbus_set_error_from_message): new function
  11638.  
  11639. 2003-04-03  Havoc Pennington  <hp@pobox.com>
  11640.  
  11641.     * bus/config-parser.c (bus_config_parser_unref): free
  11642.     list of mechanisms, bug discovered by test suite enhancements
  11643.     (putting system.conf and session.conf into suite)
  11644.  
  11645.     * test/Makefile.am, test/test-service.c: add placeholder for a
  11646.     test service that we'll activate as part of test suite. Doesn't
  11647.     do anything yet.
  11648.  
  11649.     * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
  11650.     setting NULL value, and use system malloc not dbus_malloc()
  11651.     when we have unavoidable memleakage.
  11652.  
  11653.     * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
  11654.     didn't work, and support DBUS_BUS_ACTIVATION.
  11655.  
  11656.     * bus/activation.c (child_setup): pass our well-known bus type to
  11657.     the child
  11658.  
  11659.     * bus/config-parser.c: support <type> to specify well-known type
  11660.  
  11661.     * doc/dbus-specification.sgml: document the env variables to
  11662.     locate well-known buses and find service activator
  11663.  
  11664. 2003-04-02  Havoc Pennington  <hp@redhat.com>
  11665.  
  11666.     * test/Makefile.am (all-local): add a rule to copy tests to
  11667.     builddir, so we can have generated tests. Use this to remove the
  11668.     silly hack for testing system.conf and session.conf. Will use this
  11669.     shortly to generate .service files pointing to test binaries.
  11670.  
  11671. 2003-04-02  Havoc Pennington  <hp@redhat.com>
  11672.  
  11673.     * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
  11674.     current alloc and needed new length, not max of the doubled
  11675.     allocation and needed new length. Also, when building tests,
  11676.     don't do the double-allocation stuff, just realloc every time.
  11677.  
  11678. 2003-04-02  Havoc Pennington  <hp@redhat.com>
  11679.  
  11680.     * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
  11681.     in error messages
  11682.     (_dbus_string_get_dirname): new
  11683.     (_dbus_sysdeps_test): new
  11684.     (_dbus_directory_open): include dirnames in error messages
  11685.  
  11686.     * bus/config-parser.c: interpret <include> and <includedir> and
  11687.     <servicedir> relative to config file location if the given
  11688.     filename is not absolute.
  11689.  
  11690.     * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
  11691.  
  11692. 2003-04-02  Havoc Pennington  <hp@redhat.com>
  11693.  
  11694.     * bus/connection.c (bus_transaction_send_error_reply): set sender
  11695.     service for the error, and unref the reply on success
  11696.  
  11697.     * bus/activation.c: convert to use BusTransaction so OOM can be
  11698.     handled correctly
  11699.     (bus_activation_service_created): set sender of the message
  11700.  
  11701. 2003-04-01  Havoc Pennington  <hp@redhat.com>
  11702.  
  11703.     * bus/config-parser.c, bus/bus.c: implement <servicedir> and
  11704.     <includedir> (at least mostly)
  11705.  
  11706.     * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
  11707.     first, then the user ID
  11708.  
  11709. 2003-04-01  Havoc Pennington  <hp@pobox.com>
  11710.  
  11711.     * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
  11712.     function
  11713.  
  11714.     * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
  11715.  
  11716.     * dbus/dbus-internals.c (_dbus_dup_string_array): new function
  11717.  
  11718.     * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
  11719.     socket 0777, and unlink any existing socket.
  11720.  
  11721.     * bus/bus.c (bus_context_new): change our UID/GID and fork if
  11722.     the configuration file so specifies; set up auth mechanism
  11723.     restrictions
  11724.  
  11725.     * bus/config-parser.c (bus_config_parser_content): add support
  11726.     for <fork> option and fill in code for <auth>
  11727.  
  11728.     * bus/system.conf.in: add <fork/> to default configuration,
  11729.     and limit auth mechanisms to EXTERNAL
  11730.  
  11731.     * doc/config-file.txt (Elements): add <fork>
  11732.  
  11733.     * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
  11734.     (_dbus_change_identity): new function
  11735.  
  11736. 2003-03-31  Havoc Pennington  <hp@redhat.com>
  11737.  
  11738.     * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
  11739.     (_dbus_listen_unix_socket): fix off-by-one error in null
  11740.     termination spotted by Nalin
  11741.  
  11742. 2003-03-31  Havoc Pennington  <hp@redhat.com>
  11743.  
  11744.     * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
  11745.     DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
  11746.     having a real home directory available.
  11747.  
  11748. 2003-03-31  Havoc Pennington  <hp@redhat.com>
  11749.  
  11750.     * bus/Makefile.am (install-data-hook): create /var/run/dbus
  11751.  
  11752.     * bus/messagebus.in: add init script for Red Hat /etc/init.d
  11753.  
  11754.     * configure.in: add support for specifying a style of init script
  11755.     to install
  11756.  
  11757. 2003-03-31  Havoc Pennington  <hp@redhat.com>
  11758.  
  11759.         Fix some annoying DBusString API and fix all affected code.
  11760.  
  11761.     * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
  11762.     max_length argument
  11763.     (_dbus_string_get_data): change to return string instead of using
  11764.     an out param
  11765.     (_dbus_string_get_const_data): ditto
  11766.     (_dbus_string_get_data_len): ditto
  11767.     (_dbus_string_get_const_data_len): ditto
  11768.  
  11769. 2003-03-31  Havoc Pennington  <hp@redhat.com>
  11770.  
  11771.     * bus/main.c (main): fix up the command line arguments to be nicer
  11772.  
  11773. 2003-03-31  Havoc Pennington  <hp@redhat.com>
  11774.  
  11775.     * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
  11776.     define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
  11777.     final location that lands in the config file
  11778.  
  11779.     * bus/config-loader-expat.c (bus_config_load): fix type of
  11780.     XML_Parser variable
  11781.  
  11782.     * doc/TODO: remove TODO item for dbus_bus_get()
  11783.  
  11784.     * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
  11785.  
  11786. 2003-03-31  Havoc Pennington  <hp@pobox.com>
  11787.  
  11788.     * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
  11789.     (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
  11790.     argument since they are always client side
  11791.  
  11792.     * dbus/dbus-server.c (dbus_server_get_address): new function
  11793.  
  11794.     * bus/main.c (main): take the configuration file as an argument.
  11795.  
  11796.     * test/data/valid-config-files/debug-allow-all.conf: new file to
  11797.     use with dispatch.c tests for example
  11798.  
  11799.     * bus/test-main.c (main): require test data dir
  11800.  
  11801.     * bus/bus.c (bus_context_new): change this to take a
  11802.     configuration file name as argument
  11803.  
  11804.     * doc/config-file.txt (Elements): add <servicedir>
  11805.  
  11806.     * bus/system.conf, bus/session.conf: new files
  11807.  
  11808.     * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
  11809.     well-known socket if none set
  11810.  
  11811.     * configure.in: create system.conf and session.conf
  11812.  
  11813. 2003-03-30  Havoc Pennington  <hp@pobox.com>
  11814.  
  11815.     * bus/config-parser.c: hacking
  11816.  
  11817.     * dbus/dbus-memory.c: don't use DBusList for the list of stuff
  11818.     to shut down, since it could cause weirdness with the DBusList
  11819.     lock
  11820.  
  11821.     * dbus/dbus-list.c (_dbus_list_test): add tests for the
  11822.     link-oriented stack routines
  11823.     (alloc_link): free the mempool if the first alloc from it fails
  11824.  
  11825.     * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
  11826.  
  11827.     * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
  11828.     from GLib
  11829.     (_dbus_string_skip_white): new
  11830.  
  11831.     * doc/config-file.txt (Elements): add <includedir>
  11832.  
  11833. 2003-03-28  Havoc Pennington  <hp@pobox.com>
  11834.  
  11835.     * dbus/dbus-string.c (_dbus_string_copy_data_len)
  11836.     (_dbus_string_copy_data): new functions
  11837.  
  11838. 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
  11839.  
  11840.     * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
  11841.     * dbus/dbus-bus.h:
  11842.     Add dbus_bus_get.
  11843.  
  11844.     * dbus/dbus-memory.c:
  11845.     Fix a doc comment.
  11846.  
  11847. 2003-03-28  Havoc Pennington  <hp@pobox.com>
  11848.  
  11849.     * bus/test.c (bus_test_flush_bus): remove the sleep from here,
  11850.     I think it may have just been superstition. Not sure.
  11851.  
  11852.     * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
  11853.     failures that were not being handled.
  11854.  
  11855.     * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
  11856.  
  11857.     * dbus/dbus-memory.c: add ability to set number of mallocs in a
  11858.     row that will fail on out-of-memory.
  11859.  
  11860.     * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
  11861.     function for testing out-of-memory handling.
  11862.  
  11863.     * bus/config-loader-expat.c (memsuite): don't wrap the dbus
  11864.     allocation functions, they do map exactly to the expat ones.
  11865.  
  11866. 2003-03-27  Havoc Pennington  <hp@redhat.com>
  11867.  
  11868.     * bus/config-loader-libxml.c (bus_config_load): add another error
  11869.     check
  11870.  
  11871. 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
  11872.  
  11873.     * doc/TODO:
  11874.     Add note about automatic service activation.
  11875.  
  11876.     * doc/dbus-specification.sgml:
  11877.     Rename the specification and clarify a few things.
  11878.  
  11879. 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
  11880.  
  11881.     * Doxyfile.in:
  11882.     * dbus/dbus-address.c:
  11883.     * dbus/dbus-dict.c:
  11884.     * dbus/dbus-marshal.c:
  11885.     * dbus/dbus-server-debug-pipe.c:
  11886.     * dbus/dbus-transport-unix.c:
  11887.     Fix documentation warnings.
  11888.  
  11889. 2003-03-26  Havoc Pennington  <hp@pobox.com>
  11890.  
  11891.     * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
  11892.     after every test so it's quick and easy to see which leaked, and
  11893.     so we test multiple dbus_shutdown() calls
  11894.  
  11895.     * configure.in: change configure.in XML stuff to also support
  11896.     expat
  11897.  
  11898.     * config-loader-libxml.c: some hacking
  11899.  
  11900.     * config-loader-expat.c: some hacking
  11901.  
  11902.     * config-parser.c: some hacking, plus tests
  11903.  
  11904. 2003-03-25  Havoc Pennington  <hp@redhat.com>
  11905.  
  11906.         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
  11907.  
  11908.     * configure.in: add --with-xml option to specify XML library,
  11909.     right now only libxml is supported.
  11910.  
  11911.     * bus/config-loader-libxml.c, config-parser.c: sync some minor
  11912.     nonworking code between home and work, still just stubs
  11913.  
  11914. 2003-03-24  Havoc Pennington  <hp@redhat.com>
  11915.  
  11916.     * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
  11917.     file
  11918.  
  11919.     * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
  11920.     NULL argument for "message" if the error is a well-known one,
  11921.     fill in a generic message in this case.
  11922.  
  11923.     * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
  11924.     favor of DBusError
  11925.  
  11926.     * bus/test.c (bus_test_flush_bus): add
  11927.  
  11928.     * bus/policy.c (bus_policy_test): test code stub
  11929.  
  11930. 2003-03-24  Havoc Pennington  <hp@pobox.com>
  11931.  
  11932.     * bus/connection.c (bus_connections_setup_connection): set up
  11933.     the "can this user connect" function, but it always returns
  11934.     TRUE until we have a config file parser so we can have a config
  11935.     file that allows connections.
  11936.  
  11937. 2003-03-23  Havoc Pennington  <hp@pobox.com>
  11938.  
  11939.     * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
  11940.     DBUS_BUILD_TESTS, actually alloc/free a block of memory for
  11941.     the mutex, so we can check for proper memory management
  11942.     and OOM handling.
  11943.  
  11944.     * dbus/dbus-dataslot.c: remove the mutex from
  11945.     DBusDataSlotAllocator and lock it manually when using it,
  11946.     to simplify fitting it into the global slots framework.
  11947.  
  11948.     * dbus/dbus-threads.c (init_static_locks): rework how we're
  11949.     handling global locks so they are easily shut down.
  11950.  
  11951.     * bus/policy.c (bus_policy_append_rule): fix
  11952.  
  11953.     * bus/test-main.c (main): check for memleaks
  11954.  
  11955.     * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
  11956.     test suite check for memleaks
  11957.  
  11958.     * dbus/dbus-memory.c: add support in test mode for tracking
  11959.     number of outstanding blocks
  11960.  
  11961. 2003-03-23  Havoc Pennington  <hp@pobox.com>
  11962.  
  11963.     * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
  11964.     policies code
  11965.  
  11966.     * dbus/dbus-hash.h: add ULONG hash keys
  11967.  
  11968.     * dbus/dbus-sysdeps.c (_dbus_get_groups): new
  11969.     (_dbus_get_group_id): new function
  11970.  
  11971. 2003-03-20  Havoc Pennington  <hp@redhat.com>
  11972.  
  11973.     * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
  11974.     new function
  11975.     (dbus_connection_get_unix_user): new function
  11976.  
  11977. 2003-03-20  Havoc Pennington  <hp@pobox.com>
  11978.  
  11979.     * bus/connection.c (bus_connection_send_oom_error): assert that
  11980.     message has a sender
  11981.     (connection_execute_transaction): ditto
  11982.     (bus_connection_preallocate_oom_error): fix to set the sender, and
  11983.     set recipient to the destination service, not the bus driver
  11984.  
  11985.     * bus/policy.c: hacking
  11986.  
  11987.     * dbus/dbus-message.c (dbus_message_service_is): new function
  11988.     (dbus_message_sender_is): new
  11989.  
  11990. 2003-03-19  Havoc Pennington  <hp@redhat.com>
  11991.  
  11992.     * bus/policy.c: start sketching code for policy restrictions on
  11993.     what connections can do.
  11994.  
  11995. 2003-03-18  Havoc Pennington  <hp@redhat.com>
  11996.  
  11997.     * doc/TODO: some notes on high-level todo items. Little nitpick
  11998.     stuff is all in @todo, so no need to add it here.
  11999.  
  12000.     * doc/config-file.txt: some notes on how config file might look
  12001.  
  12002. 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
  12003.  
  12004.     * configure.in: 0.6
  12005.  
  12006.     * NEWS: Update.
  12007.  
  12008. 2003-03-17  Havoc Pennington  <hp@redhat.com>
  12009.  
  12010.     * dbus/dbus-internals.h: add gcc attributes so that
  12011.     our printf-style functions warn on bad arguments to
  12012.     format
  12013.  
  12014.     * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
  12015.     format bug
  12016.  
  12017.     * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
  12018.     printf format bug
  12019.  
  12020. 2003-03-17  Havoc Pennington  <hp@redhat.com>
  12021.  
  12022.     * bus/test-main.c (main): make it print something as it runs
  12023.     so make check doesn't look stuck
  12024.  
  12025.     * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
  12026.     from CVS, now obsolete
  12027.  
  12028. 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
  12029.  
  12030.     * bus/dispatch.c: (bus_dispatch):
  12031.     Refetch the service name since it may have been reallocated
  12032.     when dbus_message_set_sender was called.
  12033.  
  12034.     * dbus/dbus-sysdeps.c: (_dbus_accept):
  12035.     Add address and address length variables and use them to stop
  12036.     valgrind from complaining.
  12037.  
  12038. 2003-03-17  Havoc Pennington  <hp@pobox.com>
  12039.  
  12040.     All tests pass, no memleaks, no valgrind complaints.
  12041.  
  12042.     * bus/test.c: refcount handler_slot
  12043.  
  12044.     * bus/connection.c (bus_connections_new): refcount
  12045.     connection_data_slot
  12046.  
  12047.     * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
  12048.     bytes so that auth scripts pass.
  12049.  
  12050.     * bus/dispatch.c: init message_handler_slot so it gets allocated
  12051.     properly
  12052.  
  12053.     * bus/dispatch.c (message_handler_slot_ref): fix memleak
  12054.  
  12055.     * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
  12056.     dealloc server_pipe_hash when no longer used for benefit of
  12057.     leak checking
  12058.  
  12059.     * dbus/dbus-auth.c (process_command): memleak fix
  12060.  
  12061.     * bus/dispatch.c (check_hello_message): memleak fix
  12062.  
  12063. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12064.  
  12065.     * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
  12066.  
  12067. 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
  12068.  
  12069.     * bus/activation.c (bus_activation_activate_service): Append
  12070.     the pending activation entry to the list of pending activations.
  12071.  
  12072. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12073.  
  12074.     * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
  12075.     connections
  12076.  
  12077.     * dbus/dbus-address.c (create_entry): fix OOM handling when
  12078.     failing to alloc entry->method
  12079.  
  12080. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12081.  
  12082.     * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
  12083.     the watch
  12084.  
  12085.     * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
  12086.     add some missing dbus_set_result
  12087.  
  12088.     * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
  12089.     alloc the DBusMessageHandler
  12090.  
  12091.     * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
  12092.     the transport here, since we call this from the finalizer; it
  12093.     resulted in a double-finalize.
  12094.  
  12095.     * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
  12096.     where we tried to use transport->connection that was NULL,
  12097.     happened when transport was disconnected early on due to OOM
  12098.  
  12099.     * bus/*.c: adapt to handle OOM for watches/timeouts
  12100.  
  12101.     * dbus/dbus-transport-unix.c: port to handle OOM during
  12102.     watch handling
  12103.  
  12104.     * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
  12105.     reference to unused bytes instead of a copy
  12106.  
  12107.     * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
  12108.     out of memory
  12109.  
  12110.     * dbus/dbus-connection.c (dbus_connection_handle_watch): return
  12111.     FALSE on OOM
  12112.  
  12113.     * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
  12114.     of memory
  12115.  
  12116. 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
  12117.  
  12118.     * doc/dbus-specification.sgml:
  12119.     Document reply message for ActivateService.
  12120.  
  12121. 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
  12122.  
  12123.     * bus/activation.c: (bus_pending_activation_entry_free),
  12124.     (bus_pending_activation_free), (bus_activation_new),
  12125.     (bus_activation_unref), (bus_activation_service_created),
  12126.     (bus_activation_activate_service):
  12127.     * bus/activation.h:
  12128.     * bus/bus.c: (bus_context_new):
  12129.     * bus/desktop-file.c: (new_section):
  12130.     * bus/driver.c: (bus_driver_send_service_deleted),
  12131.     (bus_driver_handle_activate_service):
  12132.     * bus/services.c: (bus_registry_new), (bus_registry_ensure):
  12133.     * bus/services.h:
  12134.     * dbus/dbus-connection.c:
  12135.     (dbus_connection_send_with_reply_and_block):
  12136.     * dbus/dbus-message.c: (dbus_message_append_args_valist):
  12137.     * dbus/dbus-protocol.h:
  12138.     Make activation work better. Now pending activations will be queued
  12139.     and the daemon won't try to activate services that are already registered.
  12140.  
  12141. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12142.  
  12143.     * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
  12144.     connection data
  12145.  
  12146.     * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
  12147.     DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
  12148.  
  12149. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12150.  
  12151.     * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
  12152.     this. always run the test suite before commit...
  12153.  
  12154.     * bus/*: adapt to DBusConnection API changes
  12155.  
  12156.     * glib/dbus-gmain.c: adapt to DBusConnection API changes,
  12157.     requires renaming stuff to avoid dbus_connection_dispatch name
  12158.     conflict.
  12159.  
  12160.     * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
  12161.     function
  12162.  
  12163.     * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
  12164.     separate from _dbus_message_loader_return_buffer()
  12165.  
  12166.     * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
  12167.     this, because it's now always broken to use; the number of
  12168.     messages in queue vs. the number still buffered by the message
  12169.     loader is undefined/meaningless. Should use
  12170.     dbus_connection_get_dispatch_state().
  12171.     (dbus_connection_dispatch): rename from
  12172.     dbus_connection_dispatch_message
  12173.  
  12174. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12175.  
  12176.     * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
  12177.     implementation
  12178.  
  12179. 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
  12180.  
  12181.     * dbus/dbus-connection.c:
  12182.     (dbus_connection_send_with_reply_and_block):
  12183.     Decrease connection->n_incoming when removing an entry
  12184.     from the list.
  12185.     * dbus/dbus-dict.c: (dbus_dict_entry_free),
  12186.     (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
  12187.     (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
  12188.     (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
  12189.     (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
  12190.     (dbus_dict_get_byte_array):
  12191.     Handle NULL arrays and strings. Also add support for byte arrays.
  12192.  
  12193.     * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
  12194.     (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
  12195.     (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
  12196.     (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
  12197.     (_dbus_demarshal_dict), (demarshal_and_validate_len),
  12198.     (_dbus_marshal_validate_arg), (_dbus_marshal_test):
  12199.     * dbus/dbus-marshal.h:
  12200.     Add support for marshalling and demarshalling empty arrays and strings.
  12201.  
  12202.     * dbus/dbus-message.c: (dbus_message_append_args_valist),
  12203.     (dbus_message_append_string_array),
  12204.     (dbus_message_iter_get_boolean),
  12205.     (dbus_message_iter_get_boolean_array),
  12206.     (dbus_message_iter_get_int32_array),
  12207.     (dbus_message_iter_get_uint32_array),
  12208.     (dbus_message_iter_get_double_array),
  12209.     (dbus_message_iter_get_byte_array),
  12210.     (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
  12211.     (check_message_handling):
  12212.     Add support for getting empty arrays and dicts.
  12213.  
  12214.     * dbus/dbus-string.c: (_dbus_string_validate_utf8):
  12215.     Don't do any validation at all for now, that's better than just checking
  12216.     for ASCII.
  12217.  
  12218.     * test/data/valid-messages/emptiness.message:
  12219.     New test message with lots of empty arrays.
  12220.  
  12221. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12222.  
  12223.     * dbus/dbus-connection.c
  12224.     (_dbus_connection_queue_received_message_link): new function that
  12225.     can't fail due to OOM
  12226.  
  12227.     * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
  12228.     new function pops a message together with a list link
  12229.     containing it.
  12230.  
  12231.     * dbus/dbus-transport-unix.c (queue_messages): use new link-based
  12232.     message queuing functions to avoid needing to alloc memory
  12233.  
  12234. 2003-03-16  Havoc Pennington  <hp@pobox.com>
  12235.  
  12236.     Oops - test code was only testing failure of around 30 of the
  12237.     mallocs in the test path, but it turns out there are 500+
  12238.     mallocs. I believe this was due to misguided linking setup such
  12239.     that there was one copy of dbus_malloc etc. in the daemon and one
  12240.     in the shared lib, and only daemon mallocs were tested. In any
  12241.     case, the test case now tests all 500+ mallocs, and doesn't pass
  12242.     yet, though there are lots of fixes in this patch.
  12243.  
  12244.     * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
  12245.     this so that it doesn't need to allocate memory, since it
  12246.     has no way of indicating failure due to OOM (and would be
  12247.     annoying if it did).
  12248.  
  12249.     * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
  12250.  
  12251.     * bus/Makefile.am: rearrange to create two self-contained
  12252.     libraries, to avoid having libraries with overlapping symbols.
  12253.     that was resulting in weirdness, e.g. I'm pretty sure there
  12254.     were two copies of global static variables.
  12255.  
  12256.     * dbus/dbus-internals.c: move the malloc debug stuff to
  12257.     dbus-memory.c
  12258.  
  12259.     * dbus/dbus-list.c (free_link): free list mempool if it becomes
  12260.     empty.
  12261.  
  12262.     * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
  12263.  
  12264.     * dbus/dbus-address.c (dbus_parse_address): free list nodes
  12265.     on failure.
  12266.  
  12267.     * bus/dispatch.c (bus_dispatch_add_connection): free
  12268.     message_handler_slot when no longer using it, so
  12269.     memory leak checkers are happy for the test suite.
  12270.  
  12271.     * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
  12272.  
  12273.     * bus/bus.c (new_connection_callback): disconnect in here if
  12274.     bus_connections_setup_connection fails.
  12275.  
  12276.     * bus/connection.c (bus_connections_unref): fix to free the
  12277.     connections
  12278.     (bus_connections_setup_connection): if this fails, don't
  12279.     disconnect the connection, just be sure there are no side
  12280.     effects.
  12281.  
  12282.     * dbus/dbus-string.c (undo_alignment): unbreak this
  12283.  
  12284.     * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
  12285.     leaking
  12286.     (_dbus_auth_new): fix the order in which we free strings
  12287.     on OOM failure
  12288.  
  12289.     * bus/connection.c (bus_connection_disconnected): fix to
  12290.     not send ServiceDeleted multiple times in case of memory
  12291.     allocation failure
  12292.  
  12293.     * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
  12294.     get the base service name
  12295.     (dbus_bus_register_client): don't return base service name,
  12296.     instead store it on the DBusConnection and have an accessor
  12297.     function for it.
  12298.     (dbus_bus_register_client): rename dbus_bus_register()
  12299.  
  12300.     * bus/dispatch.c (check_hello_message): verify that other
  12301.     connections on the bus also got the correct results, not
  12302.     just the one sending hello
  12303.  
  12304. 2003-03-15  Havoc Pennington  <hp@pobox.com>
  12305.  
  12306.     Make it pass the Hello handling test including all OOM codepaths.
  12307.     Now to do other messages...
  12308.  
  12309.     * bus/services.c (bus_service_remove_owner): fix crash when
  12310.     removing owner from an empty list of owners
  12311.     (bus_registry_ensure): don't leave service in the list of
  12312.     a connection's owned services if we fail to put the service
  12313.     in the hash table.
  12314.  
  12315.     * bus/connection.c (bus_connection_preallocate_oom_error): set
  12316.     error flag on the OOM error.
  12317.  
  12318.     * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
  12319.     handle _dbus_transport_set_connection failure
  12320.  
  12321.     * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
  12322.     to create watches up front and simply enable/disable them as
  12323.     needed.
  12324.     (unix_connection_set): this can now fail on OOM
  12325.  
  12326.     * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
  12327.     of enabling/disabling a watch or timeout.
  12328.  
  12329.     * bus/loop.c (bus_loop_iterate): don't touch disabled
  12330.     watches/timeouts
  12331.  
  12332.     * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
  12333.  
  12334. 2003-03-15  Havoc Pennington  <hp@pobox.com>
  12335.  
  12336.     * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
  12337.     write useful test code, after all that futzing around ;-)
  12338.  
  12339.     Test does not yet pass because we can't handle OOM in
  12340.     _dbus_transport_messages_pending (basically,
  12341.     dbus_connection_preallocate_send() does not prealloc the write
  12342.     watch). To fix this, I think we need to add new stuff to
  12343.     set_watch_functions, namely a SetEnabled function so we can alloc
  12344.     the watch earlier, then enable it later.
  12345.  
  12346.     * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
  12347.     dbus-memory.c to the convenience lib
  12348.  
  12349.     * bus/test.c: rename some static functions to keep them clearly
  12350.     distinct from stuff in connection.c. Handle client disconnection.
  12351.  
  12352. 2003-03-14  Havoc Pennington  <hp@pobox.com>
  12353.  
  12354.     * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
  12355.     transport, tests more of the real codepath. Set up clients
  12356.     with bus_setup_debug_client.
  12357.  
  12358.     * bus/test.c (bus_setup_debug_client): function to set up debug
  12359.     "clients" on the main loop
  12360.  
  12361.     * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
  12362.     support
  12363.  
  12364.     * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
  12365.     server type
  12366.  
  12367.     * dbus/dbus-server-debug.c: support a debug server based on pipes
  12368.  
  12369.     * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
  12370.     (_dbus_close): new function
  12371.  
  12372.     * configure.in: check for socketpair
  12373.  
  12374. 2003-03-14  Havoc Pennington  <hp@redhat.com>
  12375.  
  12376.     * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
  12377.     cheesy hack
  12378.  
  12379.     * dbus/dbus-transport-debug.c: rework this a good bit to be
  12380.     less complicated. hopefully still works.
  12381.  
  12382.     * dbus/dbus-server-debug.c (handle_new_client): remove timeout
  12383.     manually
  12384.  
  12385.     * glib/dbus-gmain.c (timeout_handler): don't remove timeout
  12386.     after running it
  12387.  
  12388.     * dbus/dbus-message.c (dbus_message_copy): rename from
  12389.     dbus_message_new_from_message, fix it up to copy
  12390.     all the message fields, add test case
  12391.  
  12392.     * bus/dispatch.c (bus_dispatch_test): add some more test code,
  12393.     not quite passing yet
  12394.  
  12395. 2003-03-14  Havoc Pennington  <hp@pobox.com>
  12396.  
  12397.     * bus/loop.c (bus_loop_iterate): add this so we can "run loop
  12398.     until no work remains" in test code. (the large diff here
  12399.     is just code movement, no actual changes)
  12400.  
  12401.     * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
  12402.     1, no point waiting around for test code.
  12403.     (_dbus_server_debug_accept_transport): unref the timeout
  12404.     after adding it (right?)
  12405.  
  12406.     * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
  12407.  
  12408. 2003-03-13  Havoc Pennington  <hp@redhat.com>
  12409.  
  12410.     * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
  12411.     out of memory
  12412.  
  12413.     * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
  12414.     of memory
  12415.  
  12416.     * dbus/dbus-connection.h: Make AddWatchFunction and
  12417.     AddTimeoutFunction return a bool so they can fail on out-of-memory
  12418.  
  12419.     * bus/bus.c (bus_context_new): set up timeout handlers
  12420.  
  12421.     * bus/connection.c (bus_connections_setup_connection): set up
  12422.     timeout handlers
  12423.  
  12424.     * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
  12425.     can fail
  12426.  
  12427.     * bus/bus.c (bus_context_new): adapt to changes
  12428.  
  12429.     * bus/connection.c: adapt to changes
  12430.  
  12431.     * test/watch.c: adapt to DBusWatch changes
  12432.  
  12433.     * bus/dispatch.c (bus_dispatch_test): started adding this but
  12434.     didn't finish
  12435.  
  12436. 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
  12437.  
  12438.     * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
  12439.  
  12440. 2003-03-13  Havoc Pennington  <hp@pobox.com>
  12441.  
  12442.     * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
  12443.     set up a test framework as for the library
  12444.  
  12445. 2003-03-12  Havoc Pennington  <hp@pobox.com>
  12446.  
  12447.     Throughout: purge global variables, introduce BusActivation,
  12448.     BusConnections, BusRegistry, etc. objects instead.
  12449.  
  12450.     * bus/bus.h, bus/bus.c: introduce BusContext as a global
  12451.     message bus object
  12452.  
  12453.     * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
  12454.     going to redo this a bit differently I think
  12455.  
  12456. 2003-03-12  Havoc Pennington  <hp@redhat.com>
  12457.  
  12458.         Mega-patch that gets the message bus daemon initially handling
  12459.     out-of-memory. Work still needed. Also lots of random
  12460.     moving stuff to DBusError instead of ResultCode.
  12461.  
  12462.     * dbus/dbus-list.c (_dbus_list_length_is_one): new function
  12463.  
  12464.     * dbus/dbus-connection.c
  12465.     (dbus_connection_send_with_reply_and_block): use DBusError
  12466.  
  12467.     * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
  12468.     DBusResultCode
  12469.  
  12470.     * dbus/dbus-connection.c (dbus_connection_send): drop the result
  12471.     code here, as the only failure possible is OOM.
  12472.  
  12473.     * bus/connection.c (bus_connection_disconnect):
  12474.     rename bus_connection_disconnected as it's a notification only
  12475.  
  12476.     * bus/driver.c (bus_driver_handle_acquire_service): don't free
  12477.     "name" on get_args failure, should be done by get_args;
  12478.     don't disconnect client for bad args, just return an error.
  12479.     (bus_driver_handle_service_exists): ditto
  12480.  
  12481.     * bus/services.c (bus_services_list): NULL-terminate returned array
  12482.  
  12483.     * bus/driver.c (bus_driver_send_service_lost)
  12484.     (bus_driver_send_service_acquired): send messages from driver to a
  12485.     specific client to the client's unique name, not to the broadcast
  12486.     service.
  12487.  
  12488.     * dbus/dbus-message.c (decode_header_data): reject messages that
  12489.     contain no name field
  12490.     (_dbus_message_get_client_serial): rename to
  12491.     dbus_message_get_serial and make public
  12492.     (_dbus_message_set_serial): rename from set_client_serial
  12493.     (_dbus_message_set_reply_serial): make public
  12494.     (_dbus_message_get_reply_serial): make public
  12495.  
  12496.     * bus/connection.c (bus_connection_foreach): allow stopping
  12497.     iteration by returning FALSE from foreach function.
  12498.  
  12499.     * dbus/dbus-connection.c (dbus_connection_send_preallocated)
  12500.     (dbus_connection_free_preallocated_send)
  12501.     (dbus_connection_preallocate_send): new API for sending a message
  12502.     without possibility of malloc failure.
  12503.     (dbus_connection_send_message): rename to just
  12504.     dbus_connection_send (and same for whole function family)
  12505.  
  12506.     * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
  12507.  
  12508.     * dbus/dbus-sysdeps.c (_dbus_exit): new function
  12509.  
  12510.     * bus/activation.c: handle/return errors
  12511.  
  12512.     * dbus/dbus-errors.h: add more DBUS_ERROR #define
  12513.  
  12514.     * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
  12515.     (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
  12516.     (_dbus_result_from_errno): move to this file
  12517.  
  12518. 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
  12519.  
  12520.     * dbus/dbus-marshal.c:
  12521.     (_dbus_marshal_set_string):
  12522.     Take a length argument so we can marshal the correct string
  12523.     length.
  12524.  
  12525.     (_dbus_marshal_dict), (_dbus_demarshal_dict),
  12526.     (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
  12527.     (_dbus_marshal_test):
  12528.     * dbus/dbus-marshal.h:
  12529.     Add support for marshalling and demarshalling dicts.
  12530.  
  12531.     * dbus/dbus-message-builder.c: (_dbus_message_data_load):
  12532.     Add support for TYPE DICT.
  12533.  
  12534.     * dbus/dbus-message.c: (set_string_field):
  12535.     Adjust header padding.
  12536.  
  12537.     (dbus_message_append_args_valist), (dbus_message_append_dict),
  12538.     (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
  12539.     (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
  12540.     (check_message_handling), (check_have_valid_message):
  12541.     * dbus/dbus-message.h:
  12542.     Add functions for setting and getting dicts.
  12543.  
  12544.     * dbus/dbus-protocol.h:
  12545.     Add DBUS_TYPE_DICT.
  12546.  
  12547.     * dbus/dbus.h:
  12548.     Add dbus-dict.h
  12549.  
  12550.     * doc/dbus-specification.sgml:
  12551.     Add information about how dicts are marshalled.
  12552.  
  12553.     * test/data/invalid-messages/dict-with-nil-value.message:
  12554.     * test/data/invalid-messages/too-short-dict.message:
  12555.     * test/data/valid-messages/dict-simple.message:
  12556.     * test/data/valid-messages/dict.message:
  12557.     Add sample messages containing dicts.
  12558.  
  12559. 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
  12560.  
  12561.     * dbus/dbus-dict.h: Add DBUS_END_DECLS.
  12562.  
  12563. 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
  12564.  
  12565.     * dbus/Makefile.am:
  12566.     * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
  12567.     (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
  12568.     (dbus_dict_set_int32), (dbus_dict_set_uint32),
  12569.     (dbus_dict_set_double), (dbus_dict_set_string),
  12570.     (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
  12571.     (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
  12572.     (dbus_dict_set_string_array), (_dbus_dict_test):
  12573.     * dbus/dbus-dict.h:
  12574.     Fix according to comments from Havoc.
  12575.  
  12576. 2003-03-06  Michael Meeks  <michael@server.home>
  12577.  
  12578.     * configure.in: if we don't have kde-config, disable have_qt.
  12579.  
  12580. 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
  12581.  
  12582.     * dbus/Makefile.am:
  12583.     Add dbus-dict.[ch]
  12584.  
  12585.     * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
  12586.     (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
  12587.     (dbus_dict_remove), (dbus_dict_get_value_type),
  12588.     (dbus_dict_get_keys), (dbus_dict_put_boolean),
  12589.     (dbus_dict_put_int32), (dbus_dict_put_uint32),
  12590.     (dbus_dict_put_double), (dbus_dict_put_string),
  12591.     (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
  12592.     (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
  12593.     (dbus_dict_put_string_array), (dbus_dict_get_boolean),
  12594.     (dbus_dict_get_int32), (dbus_dict_get_uint32),
  12595.     (dbus_dict_get_double), (dbus_dict_get_string),
  12596.     (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
  12597.     (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
  12598.     (dbus_dict_get_string_array), (_dbus_dict_test):
  12599.     * dbus/dbus-dict.h:
  12600.     Add DBusDict implementation
  12601.  
  12602.     * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
  12603.     * dbus/dbus-test.h:
  12604.     Add _dbus_dict_test
  12605.  
  12606. 2003-03-04  Havoc Pennington  <hp@pobox.com>
  12607.  
  12608.     * test/data/auth/*: adapt to changes
  12609.  
  12610.     * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
  12611.     USERID_BASE64 and change USERNAME_BASE64 to put in username not
  12612.     userid
  12613.  
  12614.     * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
  12615.     more stuff from being in a context name, to make the protocol
  12616.     simpler to deal with
  12617.  
  12618.     * dbus/dbus-errors.c (dbus_error_has_name): new function
  12619.     (dbus_error_is_set): new function
  12620.  
  12621.     * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
  12622.     with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
  12623.  
  12624.     * dbus/dbus-connection.c (dbus_connection_flush): also read
  12625.     messages during a flush operation
  12626.  
  12627.     * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
  12628.  
  12629. 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
  12630.  
  12631.     * configure.in: Check for gethostbyname on Solaris.
  12632.  
  12633.     * dbus/dbus-transport.c: (_dbus_transport_open):
  12634.     Remove duplicate "tcp" entry.
  12635.  
  12636.     * doc/dbus-specification.sgml:
  12637.     Clarify some things.
  12638.  
  12639. 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
  12640.  
  12641.     * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
  12642.     * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
  12643.     (_dbus_keyring_test):
  12644.     * dbus/dbus-md5.c: (_dbus_md5_compute):
  12645.     * dbus/dbus-sha.c: (_dbus_sha_compute):
  12646.     Plug memory leaks.
  12647.  
  12648. 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
  12649.  
  12650.     * README: Add some things.
  12651.  
  12652. 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
  12653.  
  12654.     * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
  12655.     after case DBUS_TYPE_BOOELAN.
  12656.  
  12657. 2003-03-02  Havoc Pennington  <hp@pobox.com>
  12658.  
  12659.     * test/break-loader.c (randomly_set_extreme_ints): add test that
  12660.     sets really huge and small integers
  12661.  
  12662.     * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
  12663.     that length of boolean array fits in the string, and that
  12664.     string has room for boolean value in single-bool case.
  12665.  
  12666.     * dbus/dbus-message-builder.c (_dbus_message_data_load): add
  12667.     optional value to "ALIGN" command which is what to fill the
  12668.     alignment with.
  12669.  
  12670.     * test/data/valid-messages/no-padding.message: add regression
  12671.     test for the message padding problem
  12672.  
  12673. 2003-03-02  Havoc Pennington  <hp@pobox.com>
  12674.  
  12675.     * dbus/dbus-message.c (decode_header_data): fix to always init
  12676.     message_padding, from Benjamin Dauvergne
  12677.  
  12678. 2003-03-02  Havoc Pennington  <hp@pobox.com>
  12679.  
  12680.     * configure.in: 0.5
  12681.  
  12682.     * NEWS: Update.
  12683.  
  12684. 2003-03-01  Joe Shaw  <joe@assbarn.com>
  12685.  
  12686.     * configure.in: Check for "struct cmsgcred" and try to access its
  12687.     members for BSD-like unices.
  12688.  
  12689.     * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
  12690.     _dbus_read_credentials_unix_socket().
  12691.     (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
  12692.     read() for reading the credential byte off the unix socket.  Use
  12693.     struct cmsgcred on systems that support it.
  12694.  
  12695. 2003-02-27  Alexander Larsson  <alexl@redhat.com>
  12696.  
  12697.     * glib/Makefile.am:
  12698.     * configure.in:
  12699.     Make gthreads-2.0 dependency optional. Don't build thread test if
  12700.     its not found.
  12701.  
  12702. 2003-02-27  Havoc Pennington  <hp@pobox.com>
  12703.  
  12704.     * dbus/dbus-connection.c
  12705.     (dbus_connection_send_message_with_reply_and_block): fix doh!
  12706.     doh! doh! bug that resulted in never removing a reply from the
  12707.     queue, no wonder we called get_reply_serial so much ;-)
  12708.  
  12709.     * dbus/dbus-message.c (struct DBusMessage): cache reply serial
  12710.     and client serial instead of demarshaling them every time
  12711.  
  12712. 2003-02-27  Havoc Pennington  <hp@pobox.com>
  12713.  
  12714.     * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
  12715.     more inlined, using dbus-string-private.h, speeds things up
  12716.     substantially
  12717.  
  12718.     * dbus/dbus-string.c (_dbus_string_free): apply align offset
  12719.     when freeing the string
  12720.     (_dbus_string_steal_data): fix for align offset
  12721.     (undo_alignment): new function
  12722.  
  12723. 2003-02-26  Havoc Pennington  <hp@redhat.com>
  12724.  
  12725.         All kinds of audit fixes from Owen, plus initial attempt to
  12726.     handle unaligned memory returned from malloc.
  12727.  
  12728.     * dbus/dbus-string.c (_dbus_string_init): clamp max length to
  12729.     leave room for align_offset and nul byte
  12730.     (fixup_alignment): function to track an align_offset and
  12731.     ensure real->str is aligned
  12732.     (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
  12733.     to allow a nul byte plus align offset
  12734.     (_dbus_string_lock): fix overflow issue
  12735.     (_dbus_string_init_const_len): add assertions on sanity of len,
  12736.     assign allocated to be ALLOCATION_PADDING larger than len
  12737.     (set_length): fixup the overflow handling
  12738.     (_dbus_string_get_data_len): fix overflow in assertion
  12739.     (open_gap): detect overflow in size of gap to be opened
  12740.     (_dbus_string_lengthen): add overflow check
  12741.     (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
  12742.     (_dbus_string_append): add overflow check
  12743.     (_dbus_string_append_unichar): overflow
  12744.     (_dbus_string_delete): fix overflow in assertion
  12745.     (_dbus_string_copy_len): overflow in assertion
  12746.     (_dbus_string_replace_len): overflows in assertions
  12747.     (_dbus_string_find): change to implement in terms of
  12748.     _dbus_string_find_to
  12749.     (_dbus_string_find_to): assorted fixage
  12750.     (_dbus_string_equal_c_str): assert c_str != NULL,
  12751.     fix logic so the function works
  12752.     (_dbus_string_ends_with_c_str): fix overflow thingy
  12753.     (_dbus_string_base64_encode): overflow fix
  12754.     (_dbus_string_validate_ascii): overflow
  12755.     (_dbus_string_validate_nul): overflow
  12756.  
  12757. 2003-02-26  Havoc Pennington  <hp@redhat.com>
  12758.  
  12759.     * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
  12760.  
  12761. 2003-02-26  Alexander Larsson  <alexl@redhat.com>
  12762.  
  12763.     * configure.in:
  12764.     Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
  12765.  
  12766.     * dbus/dbus-connection.c:
  12767.     * dbus/dbus-connection.h:
  12768.     Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
  12769.     Add dbus_connection_set_wakeup_main_function and use it when queueing
  12770.     incoming and outgoing messages.
  12771.  
  12772.  
  12773.     * dbus/dbus-dataslot.c:
  12774.     Threadsafe usage of DBusDataSlotAllocator
  12775.  
  12776.     * dbus/dbus-message.c: (dbus_message_get_args_iter):
  12777.     dbus_new can fail.
  12778.  
  12779.     * dbus/dbus-server-unix.c:
  12780.     Add todo comment
  12781.  
  12782.     * glib/dbus-gmain.c:
  12783.     Implement the new wakeup functions for glib.
  12784.  
  12785.     * glib/Makefile.am:
  12786.     * glib/test-thread-client.c:
  12787.     * glib/test-thread-server.c:
  12788.     * glib/test-thread.h:
  12789.     Initial cut at some thread test code. Not really done yet.
  12790.  
  12791. 2003-02-26  Havoc Pennington  <hp@pobox.com>
  12792.  
  12793.     * dbus/dbus-connection.c
  12794.     (dbus_connection_send_message_with_reply_and_block): fix crash
  12795.     where we ref'd the outgoing message instead of the returned reply
  12796.  
  12797.     * dbus/dbus-transport-unix.c (do_authentication): check read watch
  12798.     at the end of this function, so if we didn't need to read for
  12799.     authentication, we reinstall it for receiving messages
  12800.  
  12801.     * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
  12802.     a NULL sender for peer-to-peer case
  12803.  
  12804.     * dbus/dbus-transport-unix.c (check_read_watch): handle
  12805.     !authenticated case correctly
  12806.  
  12807.     * glib/dbus-gmain.c: add support for DBusServer
  12808.  
  12809.     * dbus/dbus-server.c: add data slot support
  12810.  
  12811.     * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
  12812.     return values and handle errors
  12813.  
  12814.     * dbus/dbus-dataslot.c: factor out the data slot stuff from
  12815.     DBusConnection
  12816.  
  12817.     * Doxyfile.in (INPUT): add glib subdir
  12818.  
  12819.     * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
  12820.     setup_with_g_main instead of hookup_with_g_main; write docs
  12821.  
  12822. 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
  12823.  
  12824.     * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
  12825.     * dbus/dbus-message-builder.c: (_dbus_message_data_load):
  12826.     * dbus/dbus-message.c: (dbus_message_append_boolean),
  12827.     (dbus_message_append_boolean_array),
  12828.     (dbus_message_get_args_valist), (_dbus_message_test):
  12829.     * dbus/dbus-message.h:
  12830.     * doc/dbus-specification.sgml:
  12831.     Various fixes as pointed out by Havoc.
  12832.  
  12833.     * test/data/invalid-messages/bad-boolean-array.message:
  12834.     * test/data/invalid-messages/bad-boolean.message:
  12835.     Add invalid boolean value test cases.
  12836.  
  12837. 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
  12838.  
  12839.     * dbus/dbus-internals.c: (_dbus_type_to_string):
  12840.     * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
  12841.     (_dbus_marshal_validate_arg):
  12842.     * dbus/dbus-message-builder.c: (_dbus_message_data_load):
  12843.     * dbus/dbus-message.c: (dbus_message_append_args_valist),
  12844.     (dbus_message_append_boolean), (dbus_message_append_boolean_array),
  12845.     (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
  12846.     (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
  12847.     (dbus_message_iter_get_double),
  12848.     (dbus_message_iter_get_boolean_array), (message_iter_test):
  12849.     * dbus/dbus-message.h:
  12850.     * dbus/dbus-protocol.h:
  12851.     * doc/dbus-specification.sgml:
  12852.     * test/data/valid-messages/lots-of-arguments.message:
  12853.     Add support for boolean and boolean array types.
  12854.  
  12855. 2003-02-23  Havoc Pennington  <hp@pobox.com>
  12856.  
  12857.     * dbus/dbus-keyring.c: finish most of this implementation and
  12858.     simple unit test
  12859.  
  12860.     * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
  12861.     these barf if the error isn't cleared to NULL
  12862.  
  12863.     * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
  12864.     (_dbus_create_directory): new function
  12865.  
  12866.     * dbus/dbus-errors.c (dbus_set_error): fix warning
  12867.  
  12868.     * dbus/dbus-string.c (_dbus_string_hex_encode): new function
  12869.     (_dbus_string_hex_decode): new function
  12870.     (test_hex_roundtrip): test code
  12871.  
  12872.     * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
  12873.  
  12874.     * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
  12875.  
  12876.     * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
  12877.     the save-to-temp/rename trick to atomically write the new file
  12878.     (_dbus_string_parse_uint): new function
  12879.  
  12880. 2003-02-22  Havoc Pennington  <hp@pobox.com>
  12881.  
  12882.     * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
  12883.  
  12884. 2003-02-22  Havoc Pennington  <hp@pobox.com>
  12885.  
  12886.     * dbus/dbus-message.c (dbus_message_iter_get_string_array):
  12887.     (dbus_message_iter_get_byte_array): Fix up doxygen warnings
  12888.  
  12889.     * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
  12890.  
  12891.     * dbus/test/data/sha-1: add US government test suite for SHA-1
  12892.  
  12893. 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
  12894.  
  12895.     * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
  12896.     Make string arrays NULL-terminated.
  12897.  
  12898.     * dbus/dbus-memory.c: (dbus_free_string_array):
  12899.     * dbus/dbus-memory.h:
  12900.     New function for freeing NULL-terminated string arrays.
  12901.  
  12902.     * dbus/dbus-message-builder.c: (append_quoted_string),
  12903.     (_dbus_message_data_load):
  12904.     Add support for array types.
  12905.  
  12906.     * dbus/dbus-message.c: (check_message_handling):
  12907.     Add more types as test cases.
  12908.  
  12909.     * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
  12910.     (_dbus_string_parse_double):
  12911.     Add the start offset to the end offset.
  12912.  
  12913.     * test/data/valid-messages/lots-of-arguments.message:
  12914.     New test message with lots of arguments.
  12915.  
  12916. 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
  12917.  
  12918.     * dbus/dbus-message.c: (dbus_message_append_nil),
  12919.     (dbus_message_append_int32), (dbus_message_append_uint32),
  12920.     (dbus_message_append_double), (dbus_message_append_string),
  12921.     (dbus_message_append_int32_array),
  12922.     (dbus_message_append_uint32_array),
  12923.     (dbus_message_append_double_array),
  12924.     (dbus_message_append_byte_array),
  12925.     (dbus_message_append_string_array):
  12926.     Fix all out-of-memory handling in these functions.
  12927.  
  12928. 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
  12929.  
  12930.     * dbus/dbus-message.c: (dbus_message_append_nil):
  12931.     Fix a silly.
  12932.  
  12933. 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
  12934.  
  12935.     * dbus/dbus-message.c: (dbus_message_append_args_valist),
  12936.     (dbus_message_append_nil), (dbus_message_append_int32_array),
  12937.     (dbus_message_append_uint32_array),
  12938.     (dbus_message_append_double_array),
  12939.     (dbus_message_append_byte_array),
  12940.     (dbus_message_append_string_array), (dbus_message_get_args_valist),
  12941.     (dbus_message_iter_get_int32_array),
  12942.     (dbus_message_iter_get_uint32_array),
  12943.     (dbus_message_iter_get_double_array),
  12944.     (dbus_message_iter_get_byte_array),
  12945.     (dbus_message_iter_get_string_array):
  12946.  
  12947.     * dbus/dbus-message.h:
  12948.     Add functions for appending and getting arrays.
  12949.  
  12950. 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
  12951.  
  12952.     * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
  12953.     element size at least 8 bytes, fixes mempool tests on
  12954.     64-bit machines.
  12955.  
  12956. 2003-02-20  Alexander Larsson  <alexl@redhat.com>
  12957.  
  12958.     * dbus/dbus-transport-unix.c (unix_do_iteration):
  12959.     Unlock the connection mutex during a blocking select call.
  12960.     Add todo about how we need a way to wake up the select.
  12961.  
  12962.     * dbus/dbus-connection-internal.h:
  12963.     * dbus/dbus-connection.c:
  12964.     Add _dbus_connection_lock and _dbus_connection_unlock.
  12965.  
  12966. 2003-02-19  Havoc Pennington  <hp@pobox.com>
  12967.  
  12968.     * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
  12969.     Doxyfile.in, not Doxyfile
  12970.  
  12971.     * dbus/dbus-keyring.c: do some hacking on this
  12972.  
  12973.     * dbus/dbus-sysdeps.c (_dbus_delete_file): new
  12974.  
  12975.     * dbus/dbus-errors.c (dbus_set_error_const): do not call
  12976.     dbus_error_init
  12977.     (dbus_set_error): remove dbus_error_init, check for message ==
  12978.     NULL *before* we sprintf into it, and add @todo about including
  12979.     system headers in this file
  12980.  
  12981.     * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
  12982.  
  12983.     * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
  12984.  
  12985.     * dbus/dbus-sysdeps.c (get_user_info): break this function out to
  12986.     get various bits of user information based on either username
  12987.     or user ID
  12988.     (_dbus_homedir_from_username): new function
  12989.  
  12990. 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
  12991.  
  12992.     * configure.in:
  12993.     Add check for nonposix getpwnam_r
  12994.  
  12995.     * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
  12996.     Align the pool element size to a sizeof (void *) boundary.
  12997.  
  12998.     * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
  12999.     (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
  13000.     General Solaris fixes.
  13001.  
  13002.     * test/data/valid-messages/simplest-manual.message:
  13003.     Explicitly state that we want little-endian packing.
  13004.  
  13005. 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
  13006.  
  13007.     * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
  13008.  
  13009.     * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
  13010.     Added to create a transport connecting using a tcp/ip socket.
  13011.  
  13012.     * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
  13013.     to a tcp socket at given host and port.
  13014.     (_dbus_listen_tcp_socket): added to listen on tcp socket for given
  13015.     hostname and port.
  13016.  
  13017.     * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
  13018.  
  13019.     * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
  13020.     Added to create a server listening on a TCP/IP socket.
  13021.  
  13022. 2003-02-19  Havoc Pennington  <hp@pobox.com>
  13023.  
  13024.     Throughout: mop up all the Doxygen warnings and undocumented
  13025.     stuff.
  13026.  
  13027.     * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
  13028.     to search any paths.
  13029.  
  13030.     * dbus/dbus-threads.c: move global mutex initializers to
  13031.     dbus-internals.h, multiple prototypes was confusing doxygen
  13032.     besides being kind of ugly
  13033.  
  13034.     * Doxyfile (PREDEFINED): have Doxygen define
  13035.     DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
  13036.     docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
  13037.     (do not abuse the feature! it's for stuff like the autogenerated
  13038.     macros in dbus-md5.c, not just for things you don't feel like
  13039.     documenting...)
  13040.  
  13041. 2003-02-18  Havoc Pennington  <hp@pobox.com>
  13042.  
  13043.     * dbus/dbus-string.c (_dbus_string_zero): new function
  13044.  
  13045.     * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
  13046.     wrap it in some dbus-friendly API
  13047.  
  13048.     * dbus/dbus-types.h: add 16-bit types
  13049.  
  13050. 2003-02-18  Joe Shaw  <joe@assbarn.com>
  13051.  
  13052.     * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
  13053.     credentials from our currently running process.
  13054.     (get_word): Fix a buglet where we were copying the entire length
  13055.     instead of relative to our position.
  13056.  
  13057.     * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
  13058.     keys on the stack... it's 640k of data.
  13059.  
  13060.     * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
  13061.     read the credentials byte off the socket, even if we don't have
  13062.     SO_PEERCRED.
  13063.     (_dbus_poll): Implement poll() using select() for systems which
  13064.     don't have it.
  13065.  
  13066.     * glib/test-dbus-glib.c (main): Print out an error if no
  13067.     parameters are given.
  13068.  
  13069.     * test/data/auth/fallback.auth-script: Added.  Tests that a client
  13070.     can fallback to a secondary auth mechanism if the first fails.
  13071.  
  13072. 2003-02-18  Havoc Pennington  <hp@pobox.com>
  13073.  
  13074.     * AUTHORS: add Alex
  13075.  
  13076. 2003-02-17  Havoc Pennington  <hp@pobox.com>
  13077.  
  13078.     * doc/dbus-specification.sgml: lots of cosmetic
  13079.     cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
  13080.     env variable to DBUS_BUS_ADDRESS, s/client/application/,
  13081.     s/server/bus/ (except in authentication section). Add a section
  13082.     "Message Bus Message Routing"
  13083.  
  13084. 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
  13085.  
  13086.     Release 0.4
  13087.  
  13088.     * NEWS: Update
  13089.  
  13090. 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
  13091.  
  13092.     * doc/dbus-specification.sgml:
  13093.     Specification updates.
  13094.  
  13095. 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
  13096.  
  13097.     * bus/activation.c: (bus_activation_init), (child_setup),
  13098.     (bus_activation_activate_service):
  13099.     * bus/activation.h:
  13100.     * bus/main.c: (main):
  13101.     Set DBUS_ADDRESS environment variable.
  13102.  
  13103.     * dbus/dbus-errors.c: (dbus_set_error):
  13104.     Don't use va_copy since that's a C99 feature.
  13105.  
  13106.     * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
  13107.     (_dbus_spawn_async):
  13108.     * dbus/dbus-sysdeps.h:
  13109.     Add child_setup_func to _dbus_spawn_async.
  13110.  
  13111.     * doc/dbus-specification.sgml:
  13112.     Update specification.
  13113.  
  13114.     * test/spawn-test.c: (setup_func), (main):
  13115.     Fix test.
  13116.  
  13117. 2003-02-17  Alexander Larsson  <alexl@redhat.com>
  13118.  
  13119.     * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
  13120.     Added todo.
  13121.  
  13122. 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
  13123.  
  13124.     * doc/.cvsignore:
  13125.     * doc/Makefile.am:
  13126.     * doc/dbus-test-plan.sgml:
  13127.     Add test plan document.
  13128.  
  13129.     * test/Makefile.am:
  13130.     Fix distcheck.
  13131.  
  13132. 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
  13133.  
  13134.     * dbus/dbus-message.c: (decode_header_data),
  13135.     (_dbus_message_loader_return_buffer):
  13136.     Set the header padding amount when loading a message.
  13137.  
  13138. 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
  13139.  
  13140.     * bus/dispatch.c: (send_one_message):
  13141.     Only send broadcast messages to registered connections.
  13142.  
  13143.     * dbus/dbus-message.c: (dbus_message_name_is):
  13144.     * dbus/dbus-message.h:
  13145.     New convenience function.
  13146.  
  13147.     * dbus/dbus-transport-debug.c: (do_reading):
  13148.     Only dispatch one message per run.
  13149.  
  13150.     * test/Makefile.am:
  13151.     * test/bus-test.c: (new_connection_callback), (die),
  13152.     (test_hello_client1_handler), (test_hello_client2_handler),
  13153.     (test_hello_replies), (main):
  13154.  
  13155.     * test/bus-test-loop.[ch]:
  13156.     Add these.
  13157.  
  13158. 2003-02-16  Havoc Pennington  <hp@pobox.com>
  13159.  
  13160.     * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
  13161.     backward conditional
  13162.  
  13163. 2003-02-16  Alexander Larsson  <alexl@redhat.com>
  13164.  
  13165.     * dbus/dbus-connection.c:
  13166.     Implement sent_message_with_reply. (with_reply_and block is still
  13167.     busted).
  13168.     Made dispatch_message not lose message if OOM.
  13169.  
  13170.     * dbus/dbus-errors.h:
  13171.     Add NoReply error (for reply timeouts).
  13172.  
  13173. 2003-02-16  Alexander Larsson  <alexl@redhat.com>
  13174.  
  13175.     * dbus/dbus-hash.c (_dbus_hash_table_unref):
  13176.     Actually free keys and values when destroying hashtable.
  13177.  
  13178. 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
  13179.  
  13180.     * dbus/dbus-auth.c: (client_try_next_mechanism):
  13181.     Plug a leak.
  13182.  
  13183.     * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
  13184.     Return TRUE if there's no thread implementation around.
  13185.  
  13186.     * glib/dbus-gmain.c: (free_source),
  13187.     (dbus_connection_hookup_with_g_main):
  13188.     Make sure to remove the GSource when the connection is finalized.
  13189.  
  13190. 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
  13191.  
  13192.     * bus/dispatch.c: (bus_dispatch_message_handler):
  13193.     * dbus/dbus-errors.h:
  13194.     Return an error if someone tries to send a message to a service
  13195.     that doesn't exist.
  13196.  
  13197. 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
  13198.  
  13199.     * bus/activation.c: (load_directory), (bus_activation_init),
  13200.     (bus_activation_activate_service):
  13201.     * bus/activation.h:
  13202.     * bus/driver.c:
  13203.     (bus_driver_handle_activate_service), (bus_driver_handle_message):
  13204.     More work on the activation handling.
  13205.  
  13206.     * dbus/dbus-errors.h:
  13207.     Add some error messages
  13208.  
  13209.     * dbus/dbus-message.c: (dbus_message_new_error_reply):
  13210.     * dbus/dbus-message.h:
  13211.     New function that creates an error message.
  13212.  
  13213.     * dbus/dbus-protocol.h:
  13214.     Add ACTIVATE_SERVER message.
  13215.  
  13216.     * dbus/dbus-server-unix.c: (unix_handle_watch),
  13217.     (_dbus_server_new_for_domain_socket):
  13218.     Call _dbus_fd_set_close_on_exec.
  13219.  
  13220.     * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
  13221.     (_dbus_spawn_async), (_dbus_disable_sigpipe),
  13222.     (_dbus_fd_set_close_on_exec):
  13223.     * dbus/dbus-sysdeps.h:
  13224.     Add _dbus_fd_set_close_on exec function. Also add function that checks
  13225.     that all open fds are set to close-on-exec and warns otherwise.
  13226.  
  13227.     * dbus/dbus-transport-unix.c:
  13228.     (_dbus_transport_new_for_domain_socket):
  13229.     Call _dbus_fd_set_close_on_exec.
  13230.  
  13231. 2003-02-16  Havoc Pennington  <hp@pobox.com>
  13232.  
  13233.     * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
  13234.     allow people to avoid setting SIGPIPE to SIG_IGN
  13235.     (_dbus_connection_new_for_transport): disable SIGPIPE unless
  13236.     we've been asked not to
  13237.  
  13238. 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
  13239.  
  13240.     * dbus/dbus-list.c: (_dbus_list_append_link),
  13241.     (_dbus_list_prepend_link):
  13242.     * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
  13243.     (dbus_realloc):
  13244.     Warning fixes.
  13245.  
  13246. 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
  13247.  
  13248.     * bus/Makefile.am:
  13249.     * bus/activation.c: (bus_activation_entry_free),
  13250.     (add_desktop_file_entry), (load_directory), (bus_activation_init):
  13251.     * bus/activation.h:
  13252.     * bus/main.c: (main):
  13253.     Add simple activation support, doesn't work yet though.
  13254.  
  13255. 2003-02-15   Zack Rusin  <zack@kde.org>
  13256.  
  13257.     * qt/dbus-qthread.cpp:  small casting fix
  13258.  
  13259. 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
  13260.  
  13261.     * dbus/dbus-errors.c: (dbus_set_error):
  13262.     * dbus/dbus-errors.h:
  13263.     Add a few errors and make dbus_set_error void.
  13264.  
  13265.     * dbus/dbus-sysdeps.c:
  13266.     (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
  13267.     (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
  13268.     * dbus/dbus-sysdeps.h:
  13269.     Add _dbus_spawn_async.
  13270.  
  13271.     * test/spawn-test.c: (main):
  13272.     Test for _dbus_spawn_async.
  13273.  
  13274. 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
  13275.  
  13276.     * dbus/dbus-internals.h:
  13277.     Fix build without tests.
  13278.  
  13279.     * dbus/dbus-list.c: (alloc_link):
  13280.     Fix a segfault when a malloc fails.
  13281.  
  13282.     * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
  13283.     (dbus_malloc0), (dbus_realloc):
  13284.     Add support for malloc debugging.
  13285.  
  13286. 2003-02-15  Alexander Larsson  <alexl@redhat.com>
  13287.  
  13288.     * dbus/dbus-threads.c:
  13289.     * dbus/dbus-threads.h:
  13290.     Add condvars. Remove static mutext from API.
  13291.     Implement static mutexes by initializing them from threads_init.
  13292.  
  13293.     * glib/dbus-gthread.c:
  13294.     * qt/dbus-qthread.cpp:
  13295.     Update with the thread api changes.
  13296.  
  13297.  
  13298.     * dbus/dbus-list.c:
  13299.     * dbus/dbus-list.h:
  13300.     Turn StaticMutex into normal mutex + init function.
  13301.     Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
  13302.     _dbus_list_append_link, _dbus_list_prepend_link
  13303.  
  13304.  
  13305.     * dbus/dbus-sysdeps.c:
  13306.     * dbus/dbus-sysdeps.h:
  13307.     New type dbus_atomic_t, and new functions _dbus_atomic_inc,
  13308.     _dbus_atomic_dec. Only slow fallback implementation at the moment.
  13309.  
  13310.     * dbus/dbus-protocol.h:
  13311.     Add DBUS_MESSAGE_LOCAL_DISCONNECT define
  13312.  
  13313.     * dbus/dbus-message.c:
  13314.     Make ref/unref atomic.
  13315.     Fix some docs.
  13316.  
  13317.     * dbus/dbus-connection-internal.h:
  13318.     * dbus/dbus-connection.c:
  13319.     * dbus/dbus-connection.h:
  13320.     Make threadsafe.
  13321.     Change _peek to _borrow,_return & _steal_borrowed.
  13322.     Change disconnect callback to event.
  13323.     Make dbus_connection_dispatch_messages reentrant.
  13324.  
  13325.     * dbus/dbus-transport.c:
  13326.     Don't ref the connection on calls to the transport
  13327.     implementation.
  13328.  
  13329.     * dbus/dbus-message-handler.c:
  13330.     Make threadsafe.
  13331.  
  13332.     * glib/dbus-gmain.c:
  13333.     Don't use peek_message anymore
  13334.  
  13335.     * test/Makefile.am:
  13336.     * test/debug-thread.c:
  13337.     * test/debug-thread.h:
  13338.     Simple thread implementation that asserts() on deadlocks in
  13339.     single-threaded code.
  13340.  
  13341.     * test/bus-test.c:
  13342.     (main) Call debug_threads_init.
  13343.  
  13344.     * test/watch.c:
  13345.     Use disconnect message instead of disconnect callback.
  13346.  
  13347.     * bus/connection.c:
  13348.     * bus/connection.h:
  13349.     Don't call dbus_connection_set_disconnect_function. Instead export
  13350.     bus_connection_disconnect.
  13351.  
  13352.     * bus/dispatch.c:
  13353.     Call bus_connection_disconnect when we get a disconnected message.
  13354.  
  13355. 2003-02-15  Havoc Pennington  <hp@pobox.com>
  13356.  
  13357.     * dbus/dbus-message.c (dbus_message_new): fool around with the
  13358.     docs
  13359.  
  13360. 2003-02-14  Havoc Pennington  <hp@pobox.com>
  13361.  
  13362.     * dbus/dbus-mempool.c: fail if the debug functions so indicate
  13363.  
  13364.     * dbus/dbus-memory.c: fail if the debug functions indicate we
  13365.     should
  13366.  
  13367.     * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
  13368.     (_dbus_decrement_fail_alloc_counter): debug functions to
  13369.     simulate memory allocation failures
  13370.  
  13371. 2003-02-14  Havoc Pennington  <hp@pobox.com>
  13372.  
  13373.     * dbus/dbus-errors.h (struct DBusError): add a word of padding
  13374.     to DBusError
  13375.  
  13376. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13377.  
  13378.     * bus/driver.c: (bus_driver_handle_hello):
  13379.     * bus/driver.h:
  13380.     * bus/services.c: (bus_service_lookup):
  13381.     Reorder message sending so we get a more sane order.
  13382.  
  13383.     * test/bus-test.c: (message_handler):
  13384.     Fix tyop.
  13385.  
  13386. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13387.  
  13388.     * bus/driver.c: (bus_driver_send_service_deleted),
  13389.     (bus_driver_send_service_created), (bus_driver_send_service_lost),
  13390.     (bus_driver_send_service_acquired), (bus_driver_handle_hello),
  13391.     (bus_driver_send_welcome_message),
  13392.     (bus_driver_handle_list_services),
  13393.     (bus_driver_handle_acquire_service),
  13394.     (bus_driver_handle_service_exists):
  13395.     * dbus/dbus-bus.c: (dbus_bus_register_client),
  13396.     (dbus_bus_acquire_service), (dbus_bus_service_exists):
  13397.     * dbus/dbus-errors.c: (dbus_result_to_string):
  13398.     * dbus/dbus-errors.h:
  13399.     * dbus/dbus-message.c: (dbus_message_append_args),
  13400.     (dbus_message_append_args_valist), (dbus_message_get_args),
  13401.     (dbus_message_get_args_valist), (dbus_message_get_args_iter),
  13402.     (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
  13403.     (dbus_message_iter_get_byte_array),
  13404.     (dbus_message_iter_get_string_array), (message_iter_test),
  13405.     (check_message_handling), (_dbus_message_test):
  13406.     * dbus/dbus-message.h:
  13407.     * test/bus-test.c: (main):
  13408.     Change fields to arguments in messages, so that they won't be
  13409.     confused with header fields.
  13410.  
  13411.     * glib/test-dbus-glib.c: (main):
  13412.     Remove append_fields from hello message.
  13413.  
  13414. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13415.  
  13416.     * dbus/dbus-errors.c:
  13417.     * dbus/dbus-message.c:
  13418.     * dbus/dbus-string.c:
  13419.     Documentation fixes.
  13420.  
  13421. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13422.  
  13423.     * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
  13424.     (remove_timeout):
  13425.     Implement support for timeouts in dbus-glib.
  13426.  
  13427. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13428.  
  13429.     * dbus/dbus-message-builder.c: (_dbus_message_data_load):
  13430.     * dbus/dbus-message.c: (process_test_subdir):
  13431.     * test/break-loader.c: (find_breaks_based_on):
  13432.     Plug some memory leaks.
  13433.  
  13434. 2003-02-13  Richard Hult  <rhult@codefactory.se>
  13435.  
  13436.     * bus/main.c: Fix build.
  13437.  
  13438.     * dbus/dbus-errors.h:
  13439.     * dbus/dbus-errors.c: Fix copyright for Anders.
  13440.  
  13441. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13442.  
  13443.     * bus/Makefile.am:
  13444.     Add utils.[ch]
  13445.  
  13446.     * bus/connection.c: (bus_connection_foreach):
  13447.     Fix a warning.
  13448.  
  13449.     * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
  13450.     (unescape_string), (new_section), (parse_section_start),
  13451.     (parse_key_value), (report_error), (bus_desktop_file_load),
  13452.     (bus_desktop_file_get_string):
  13453.     * bus/desktop-file.h:
  13454.     Use DBusError for error reporting.
  13455.  
  13456.     * bus/dispatch.c: (send_one_message),
  13457.     (bus_dispatch_message_handler):
  13458.     * bus/driver.c: (bus_driver_send_service_deleted),
  13459.     (bus_driver_send_service_created), (bus_driver_send_service_lost),
  13460.     (bus_driver_send_service_acquired), (bus_driver_handle_hello),
  13461.     (bus_driver_send_welcome_message),
  13462.     (bus_driver_handle_list_services),
  13463.     (bus_driver_handle_acquire_service),
  13464.     (bus_driver_handle_service_exists):
  13465.     * bus/loop.c: (bus_loop_run):
  13466.     * bus/main.c:
  13467.     Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
  13468.  
  13469.     * bus/utils.c: (bus_wait_for_memory):
  13470.     * bus/utils.h:
  13471.     New files with general utility functions.
  13472.  
  13473.     * dbus/dbus-internals.h:
  13474.     Remove _DBUS_HANDLE_OOM.
  13475.  
  13476. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13477.  
  13478.     * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
  13479.     (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
  13480.     * dbus/dbus-errors.h:
  13481.     Add DBusError structure.
  13482.  
  13483. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13484.  
  13485.     * test/data/valid-messages/standard-acquire-service.message:
  13486.     * test/data/valid-messages/standard-hello.message:
  13487.     * test/data/valid-messages/standard-list-services.message:
  13488.     * test/data/valid-messages/standard-service-exists.message:
  13489.     Add some standard messages.
  13490.  
  13491. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13492.  
  13493.     * bus/driver.c: (bus_driver_send_welcome_message),
  13494.     (bus_driver_handle_list_services),
  13495.     (bus_driver_handle_acquire_service),
  13496.     (bus_driver_handle_service_exists), (bus_driver_handle_message):
  13497.     Update for API changes in libdbus.
  13498.  
  13499.     * dbus/dbus-message.c: (dbus_message_new_reply):
  13500.     * dbus/dbus-message.h:
  13501.     Remove the name argument. The spec states that replies shouldn't
  13502.     have a name.
  13503.  
  13504. 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
  13505.  
  13506.     * bus/desktop-file.c: (parse_section_start), (parse_key_value),
  13507.     (report_error), (bus_desktop_file_load), (lookup_section),
  13508.     (lookup_line), (bus_desktop_file_get_raw),
  13509.     (bus_desktop_file_get_string):
  13510.     * bus/desktop-file.h:
  13511.     Some fixes, and new functions for getting a key value from a section.
  13512.  
  13513. 2003-02-13  Havoc Pennington  <hp@pobox.com>
  13514.  
  13515.     * test/data/auth/fail-after-n-attempts.auth-script: new test
  13516.  
  13517.     * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
  13518.     reject the client.
  13519.  
  13520. 2003-02-13  Havoc Pennington  <hp@pobox.com>
  13521.  
  13522.     * dbus/dbus-auth.c (handle_server_data_external_mech): args to
  13523.     dbus_credentials_match were backward
  13524.  
  13525.     * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
  13526.     NO_CREDENTIALS and ROOT_CREDENTIALS
  13527.  
  13528.     * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
  13529.     into here. Never process more commands after we've reached an
  13530.     end state; store further data as unused bytes.
  13531.  
  13532.     * test/data/auth/*: add more auth tests
  13533.  
  13534.     * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
  13535.     command to match exact string and EXPECT_UNUSED to match unused
  13536.     bytes
  13537.  
  13538.     * test/Makefile.am (dist-hook): fix to dist all the test stuff
  13539.  
  13540. 2003-02-12  Havoc Pennington  <hp@pobox.com>
  13541.  
  13542.     * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
  13543.     \r off of popped lines
  13544.  
  13545.     * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
  13546.     scripts
  13547.  
  13548.     * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
  13549.     SEND, append \r\n
  13550.  
  13551. 2003-02-12  Havoc Pennington  <hp@pobox.com>
  13552.  
  13553.     * dbus/Makefile.am: remove break-loader from the build, since it
  13554.     moved.
  13555.  
  13556.     * configure.in: add --enable-gcov to turn on coverage profiling
  13557.     flags and disable optimization
  13558.  
  13559. 2003-02-10  Havoc Pennington  <hp@pobox.com>
  13560.  
  13561.         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
  13562.     initial cut at test framework for DBusAuth from laptop.
  13563.     Doesn't quite work yet but it compiles and I need to get
  13564.     it off the 266mhz laptop. ;-)
  13565.  
  13566.     * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
  13567.     fix a memleak in error case
  13568.  
  13569. 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
  13570.  
  13571.     * bus/Makefile.am:
  13572.     * bus/desktop-file.c:
  13573.     * bus/desktop-file.h:
  13574.     Add a desktop file parser.
  13575.  
  13576. 2003-02-11  Zack Rusin  <zack@kde.org>
  13577.  
  13578.     * qt/message.[h|cpp]: sample implementation
  13579.     of the KDE wrapper for DBusMessage
  13580.  
  13581. 2003-02-09  Zack Rusin  <zack@kde.org>
  13582.  
  13583.     * test/bus-test.c: make_it_compile
  13584.     * doc/dbus-specification.sgml: minimal semantic fix
  13585.  
  13586. 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
  13587.  
  13588.     Release 0.3
  13589.  
  13590.     * NEWS: Update
  13591.  
  13592. 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
  13593.  
  13594.     * dbus/Makefile.am:
  13595.     * dbus/dbus-break-loader.c:
  13596.     * test/Makefile.am:
  13597.     * test/break-loader.c:
  13598.     Move dbus-break-loader to test/ and rename it to break-loader.
  13599.  
  13600. 2003-02-02  Havoc Pennington  <hp@pobox.com>
  13601.  
  13602.     * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
  13603.     for code to manage cookies in your home directory
  13604.  
  13605.     * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
  13606.  
  13607.     * dbus/dbus-auth.c (get_state): impose a maximum number of tries
  13608.     to authenticate, then disconnect the client.
  13609.  
  13610. 2003-02-03  Alexander Larsson  <alexl@redhat.com>
  13611.  
  13612.     * dbus/dbus-message.c (dbus_message_append_fields):
  13613.     Correct docs.
  13614.  
  13615. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13616.  
  13617.     * doc/dbus-specification.sgml:
  13618.     Update address format section.
  13619.  
  13620. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13621.  
  13622.     * test/Makefile.am:
  13623.     * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
  13624.     (message_handler), (new_connection_callback), (loop_quit),
  13625.     (loop_run), (main):
  13626.     Add bus test.
  13627.  
  13628. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13629.  
  13630.     * bus/driver.c: (bus_driver_handle_service_exists):
  13631.     Simplify the code a bit.
  13632.  
  13633.     * dbus/dbus-bus.c: (dbus_bus_service_exists):
  13634.     Fix a silly.
  13635.  
  13636. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13637.  
  13638.     * bus/Makefile.am:
  13639.     Add libdbus-daemon.la and link to it.
  13640.  
  13641. 2003-02-01  James Willcox  <jwillcox@gnome.org>
  13642.  
  13643.     * bus/driver.c: (bus_driver_handle_own_service):
  13644.     Actually include the service reply code in the message.
  13645.  
  13646. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13647.  
  13648.     * bus/driver.c: (bus_driver_handle_service_exists):
  13649.     Don't unref the incoming message.
  13650.  
  13651. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13652.  
  13653.     * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
  13654.  
  13655. 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
  13656.  
  13657.     * dbus/dbus-server.c: (dbus_server_listen):
  13658.     * dbus/dbus-transport.c: (_dbus_transport_open):
  13659.     ifdef out the calls to the debug transport and server.
  13660.  
  13661. 2003-02-02  Alexander Larsson  <alexl@redhat.com>
  13662.  
  13663.     * dbus/dbus-watch.c (dbus_watch_get_flags):
  13664.     Add note in the docs that ERROR or HANGUP won't be returned
  13665.     and are assumed always on.
  13666.  
  13667.     * glib/dbus-gmain.c (add_watch):
  13668.     Always add IO_ERR | IO_HUP
  13669.  
  13670.     * dbus/dbus-message.h:
  13671.     Add semicolon after dbus_message_iter_get_string_array().
  13672.     Makes qt code build again
  13673.  
  13674. 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
  13675.  
  13676.     * bus/driver.c: (create_unique_client_name),
  13677.     (bus_driver_handle_hello):
  13678.     Don't take a name, just use a numeric id to identify
  13679.     each client.
  13680.  
  13681.     * dbus/Makefile.am:
  13682.     * dbus/dbus-bus.c: (dbus_bus_register_client),
  13683.     (dbus_bus_acquire_service), (dbus_bus_service_exists):
  13684.     * dbus/dbus-bus.h:
  13685.     Add new convenience functions for communicating with the bus.
  13686.  
  13687.     * dbus/dbus-message.h:
  13688.  
  13689.     * dbus/dbus-protocol.h:
  13690.     Fix a typo.
  13691.  
  13692. 2003-02-01  Alexander Larsson  <alexl@redhat.com>
  13693.  
  13694.     * dbus/dbus-message.c (dbus_message_append_fields):
  13695.     Add some more doc comments.
  13696.  
  13697. 2003-02-01  Havoc Pennington  <hp@pobox.com>
  13698.  
  13699.     * dbus/dbus-break-loader.c (randomly_modify_length): change
  13700.     a 4-byte value in the message as if it were a length
  13701.  
  13702.     * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
  13703.     execute bit on saved files
  13704.  
  13705. 2003-02-01  Havoc Pennington  <hp@pobox.com>
  13706.  
  13707.     * dbus/dbus-break-loader.c (main): new program to find messages
  13708.     that break the loader.
  13709.  
  13710.     * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
  13711.     * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
  13712.  
  13713.     * dbus/dbus-string.c (_dbus_string_set_byte): new
  13714.  
  13715. 2003-01-31  Havoc Pennington  <hp@pobox.com>
  13716.  
  13717.     * dbus/dbus-message.c: refactor the test code to be more general,
  13718.     in preparation for writing a "randomly permute test cases to
  13719.     try to break the loader" program.
  13720.  
  13721. 2003-01-31  Havoc Pennington  <hp@pobox.com>
  13722.  
  13723.     * doc/dbus-specification.sgml: work on the specification
  13724.  
  13725.     * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
  13726.     the protocol version of the message.
  13727.  
  13728.     * dbus/dbus-protocol.h: drop special _REPLY names, the spec
  13729.     no longer specifies that.
  13730.     (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
  13731.     1/2/3/4)
  13732.  
  13733.     * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
  13734.     "break" for DBUS_TYPE_NIL, remove @todo
  13735.  
  13736. 2003-01-31  Havoc Pennington  <hp@pobox.com>
  13737.  
  13738.     * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
  13739.     just set_is_error/get_is_error as this is a commonly-used
  13740.     function, and write docs.
  13741.  
  13742. 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
  13743.  
  13744.     * dbus/dbus-address.c: (dbus_address_entry_free):
  13745.     Free key and value lists.
  13746.  
  13747.     * dbus/dbus-internals.c: (_dbus_type_to_string):
  13748.     Add the types we didn't have.
  13749.  
  13750.     * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
  13751.     (_dbus_marshal_validate_arg):
  13752.     Add NIL types.
  13753.  
  13754.     * dbus/dbus-message.c: (dbus_message_set_sender):
  13755.     Remove todo about being able to set sender to NULL.
  13756.  
  13757.     (dbus_message_set_is_error_reply),
  13758.     (dbus_message_get_is_error_reply):
  13759.     * dbus/dbus-message.h:
  13760.     New functions.
  13761.  
  13762.     * dbus/dbus-protocol.h:
  13763.     Add error reply flag.
  13764.  
  13765.     * test/data/valid-messages/opposite-endian.message:
  13766.     Add NIL type to test.
  13767.  
  13768. 2003-01-31  Havoc Pennington  <hp@pobox.com>
  13769.  
  13770.     * doc/dbus-specification.sgml: fully specify the header.  Add
  13771.     flags and major protocol version, and change header/body len to
  13772.     unsigned.
  13773.  
  13774.     * dbus/dbus-message-builder.c (append_saved_length): append length
  13775.     as uint32
  13776.  
  13777.     * dbus/dbus-message.c (dbus_message_create_header): change header
  13778.     length and body length to unsigned. Add the new fields from the
  13779.     spec
  13780.     (_dbus_message_loader_return_buffer): unsigned header/body len
  13781.  
  13782. 2003-01-30  Havoc Pennington  <hp@pobox.com>
  13783.  
  13784.     * dbus/dbus-auth.c: rework to use only REJECTED, no
  13785.     MECHANISMS
  13786.  
  13787.     * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
  13788.     use REJECTED, suggested by Mark McLoughlin
  13789.  
  13790. 2003-01-30  Havoc Pennington  <hp@pobox.com>
  13791.  
  13792.     * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
  13793.     a better way to report errors here. e.g.  "unix address lacks
  13794.     path" or something. also "no such file" when the path doesn't
  13795.     exist, etc.
  13796.  
  13797.     * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
  13798.     leaking list nodes
  13799.     (dbus_parse_address): add @todo about documenting address format,
  13800.     and allowing , and ; to be escaped
  13801.  
  13802. 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
  13803.  
  13804.     * dbus/Makefile.am:
  13805.     Add dbus-address.[ch]
  13806.  
  13807.     * dbus/dbus-address.c: (dbus_address_entry_free),
  13808.     (dbus_address_entries_free), (create_entry),
  13809.     (dbus_address_entry_get_method), (dbus_address_entry_get_value),
  13810.     (dbus_parse_address), (_dbus_address_test):
  13811.     * dbus/dbus-address.h:
  13812.     New files for dealing with address parsing.
  13813.  
  13814.     * dbus/dbus-connection.c:
  13815.     Document timeout functions.
  13816.  
  13817.     * dbus/dbus-message.c:
  13818.     Document dbus_message_new_from_message.
  13819.  
  13820.     * dbus/dbus-server-debug.c:
  13821.     Document.
  13822.  
  13823.     * dbus/dbus-server.c: (dbus_server_listen):
  13824.     Parse address and use correct server implementation.
  13825.  
  13826.     * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
  13827.     * dbus/dbus-string.h:
  13828.     New function with test.
  13829.  
  13830.     * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
  13831.     * dbus/dbus-test.h:
  13832.     Add address tests.
  13833.  
  13834.     * dbus/dbus-transport-debug.c:
  13835.     Document.
  13836.  
  13837.     * dbus/dbus-transport.c: (_dbus_transport_open):
  13838.     Parse address and use correct transport implementation.
  13839.  
  13840. 2003-01-30  Havoc Pennington  <hp@pobox.com>
  13841.  
  13842.     * dbus/dbus-message.c: use message->byte_order instead of
  13843.     DBUS_COMPILER_BYTE_ORDER throughout.
  13844.     (dbus_message_create_header): pad header to align the
  13845.     start of the body of the message to 8-byte boundary
  13846.  
  13847.     * dbus/dbus-marshal.h: make all the demarshalers take const
  13848.     DBusString arguments.
  13849.  
  13850.     * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
  13851.     validate message args here, so we don't have to do slow validation
  13852.     later, and so we catch bad messages as they are incoming. Also add
  13853.     better checks on header_len and body_len. Also fill in
  13854.     message->byte_order
  13855.  
  13856.     * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
  13857.     implemented properly)
  13858.     (_dbus_string_validate_nul): new function to check all-nul
  13859.  
  13860.     * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
  13861.     get_arg_end_pos and remove all validation
  13862.     (_dbus_marshal_validate_arg): actually do validation here.
  13863.  
  13864. 2003-01-29  Havoc Pennington  <hp@pobox.com>
  13865.  
  13866.     * dbus/dbus-message.c (check_message_handling): fix assertion
  13867.     failure on set_client_serial
  13868.  
  13869. 2003-01-28  Havoc Pennington  <hp@pobox.com>
  13870.  
  13871.     * dbus/dbus-server-debug.c: Add doc section comments
  13872.  
  13873.     * dbus/dbus-transport-debug.c: add doc section comments
  13874.  
  13875. 2003-01-28  Havoc Pennington  <hp@redhat.com>
  13876.  
  13877.     * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
  13878.     the reverse order from how I had it
  13879.     (_dbus_string_base64_encode): reverse encoding order. I was
  13880.     basically byteswapping everything during encoding.
  13881.  
  13882. 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
  13883.  
  13884.     * dbus/dbus-connection-internal.h:
  13885.     * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
  13886.     (_dbus_connection_remove_timeout):
  13887.     Add functions for adding and removing timeouts.
  13888.  
  13889.     * dbus/dbus-message.c: (dbus_message_new_from_message):
  13890.     Add new function that takes a message and creates an exact
  13891.     copy of it, but with the refcount set to 1.
  13892.     (check_message_handling):
  13893.     Fix build error.
  13894.  
  13895.     * dbus/dbus-server-protected.h:
  13896.     * dbus/dbus-server.c: (_dbus_server_init_base),
  13897.     (_dbus_server_finalize_base), (_dbus_server_add_timeout),
  13898.     (dbus_server_set_timeout_functions):
  13899.     (_dbus_server_remove_timeout):
  13900.     New functions so that a server can add and remove timeouts.
  13901.  
  13902.     (dbus_server_listen):
  13903.     Add commented out call to dbus_server_debug_new.
  13904.  
  13905.     * dbus/dbus-timeout.c: (_dbus_timeout_new):
  13906.     Actually set the handler, doh.
  13907.  
  13908.     * dbus/dbus-transport.c: (_dbus_transport_open):
  13909.     Add commented out call to dbus_transport_debug_client_new.
  13910.  
  13911.     * dbus/Makefile.am:
  13912.     Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
  13913.  
  13914. 2003-01-28  Havoc Pennington  <hp@pobox.com>
  13915.  
  13916.     * dbus/dbus-message.c (check_message_handling): function to check
  13917.     on the loaded message, iterates over it etc.
  13918.  
  13919. 2003-01-28  Havoc Pennington  <hp@pobox.com>
  13920.  
  13921.     * test/Makefile.am (dist-hook): fix make distdir
  13922.  
  13923.     * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
  13924.  
  13925. 2003-01-27  Havoc Pennington  <hp@pobox.com>
  13926.  
  13927.     * dbus/dbus-mempool.c (time_for_size): replace printf with
  13928.     _dbus_verbose
  13929.  
  13930.     * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
  13931.     empty lines; fix the SAVE_LENGTH stuff to be
  13932.     START_LENGTH/END_LENGTH so it actually works; couple other
  13933.     bugfixes
  13934.  
  13935.     * test/Makefile.am (dist-hook): add dist-hook for .message files
  13936.  
  13937.     * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
  13938.     can be constant or locked.
  13939.     (_dbus_string_free): allow freeing a const string as
  13940.     documented/intended
  13941.  
  13942.     * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
  13943.  
  13944.     * dbus/dbus-test-main.c (main): take an argument which is the
  13945.     directory containing test data
  13946.  
  13947.     * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
  13948.     argument to this and load all the messages in test/data/
  13949.     checking that they can be loaded or not loaded as appropriate.
  13950.  
  13951. 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
  13952.  
  13953.     * bus/dispatch.c: (bus_dispatch_message_handler):
  13954.     Dispatch messages sent to services.
  13955.  
  13956.     * bus/driver.c: (bus_driver_send_service_deleted),
  13957.     (bus_driver_send_service_created), (bus_driver_send_service_lost),
  13958.     (bus_driver_send_service_acquired):
  13959.     Add helper functions for sending service related messages.
  13960.  
  13961.     (bus_driver_send_welcome_message):
  13962.     Send HELLO_REPLY instead of WELCOME.
  13963.  
  13964.     (bus_driver_handle_list_services):
  13965.     Send LIST_SERVICES_REPLY instead of SERVICES.
  13966.  
  13967.     (bus_driver_handle_own_service),
  13968.     (bus_driver_handle_service_exists):
  13969.     New message handlers.
  13970.  
  13971.     (bus_driver_handle_message):
  13972.     Invoke new message handlers.
  13973.  
  13974.     (bus_driver_remove_connection):
  13975.     Don't remove any services here since that's done automatically
  13976.     by bus_service_remove_owner now.
  13977.  
  13978.     * bus/driver.h:
  13979.     New function signatures.
  13980.  
  13981.     * bus/services.c: (bus_service_add_owner):
  13982.     Send ServiceAcquired message if we're the only primary owner.
  13983.  
  13984.     (bus_service_remove_owner):
  13985.     Send ServiceAcquired/ServiceLost messages.
  13986.  
  13987.     (bus_service_set_prohibit_replacement),
  13988.     (bus_service_get_prohibit_replacement):
  13989.     Functions for setting prohibit replacement.
  13990.  
  13991.     (bus_service_has_owner):
  13992.     New function that checks if a connection is in the owner queue of
  13993.     a certain service.
  13994.  
  13995.     * bus/services.h:
  13996.     Add new function signatures.
  13997.  
  13998.     * dbus/dbus-list.c: (_dbus_list_test):
  13999.     Add tests for _dbus_list_remove_last and traversing the list backwards.
  14000.  
  14001.     * dbus/dbus-list.h:
  14002.     Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
  14003.     go any further, so return NULL then.
  14004.  
  14005.     * dbus/dbus-protocol.h:
  14006.     Add new messages, service flags and service replies.
  14007.  
  14008. 2003-01-26  Havoc Pennington  <hp@pobox.com>
  14009.  
  14010.     * dbus/dbus-message-builder.c: implement, completely untested.
  14011.  
  14012.     * test/data/*: add data to be used in testing.
  14013.     ".message" files are our simple loadable text format.
  14014.     ".message-raw" will be binary dumps of messages.
  14015.  
  14016.     * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
  14017.  
  14018. 2003-01-26  Havoc Pennington  <hp@pobox.com>
  14019.  
  14020.     * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
  14021.  
  14022.     * dbus/dbus-errors.c (dbus_result_to_string): add
  14023.     file errors
  14024.  
  14025.     * dbus/dbus-message-builder.c: new file, will contain code to load
  14026.     up messages from files. Not implemented yet.
  14027.  
  14028. 2003-01-26  Havoc Pennington  <hp@pobox.com>
  14029.  
  14030.     * dbus/dbus-message.c (dbus_message_set_sender): support deleting
  14031.     the sender by setting to NULL
  14032.  
  14033. 2003-01-26  Havoc Pennington  <hp@pobox.com>
  14034.  
  14035.         The unit tests pass, but otherwise untested.  If it breaks, the
  14036.     tests should have been better. ;-)
  14037.  
  14038.     * bus/driver.c (bus_driver_handle_hello): return if we disconnect
  14039.     the connection.
  14040.  
  14041.     * dbus/dbus-message.c: redo everything so we maintain
  14042.     message->header as the only copy of the various fields.
  14043.     This avoids the possibility of out-of-memory in some cases,
  14044.     for example dbus_message_lock() can't run out of memory anymore,
  14045.     and avoids extra copying. Figured I may as well go ahead and do
  14046.     this since it was busted for dbus_message_lock to not return
  14047.     failure on OOM, and dbus_message_write_header was totally
  14048.     unchecked for OOM. Also fixed some random other bugs.
  14049.  
  14050.     * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
  14051.     that strings are nul-terminated. Also, end_pos can be equal
  14052.     to string length just not greater than, I think.
  14053.     (_dbus_marshal_set_int32): new function
  14054.     (_dbus_marshal_set_uint32): new function
  14055.     (_dbus_marshal_set_string): new function
  14056.  
  14057.     * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
  14058.     a warning, init timeout_list to NULL
  14059.     (dbus_connection_send_message): don't use uninitialized variable
  14060.     "serial"
  14061.  
  14062.     * dbus/dbus-string.c (_dbus_string_replace_len): new function
  14063.  
  14064. 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
  14065.  
  14066.     * bus/driver.c: (bus_driver_handle_hello),
  14067.     (bus_driver_send_welcome_message):
  14068.     Plug leaks
  14069.  
  14070. 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
  14071.  
  14072.     * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
  14073.     * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
  14074.     (dbus_connection_unref):
  14075.     * dbus/dbus-marshal.c: (_dbus_marshal_test):
  14076.     * dbus/dbus-message.c: (dbus_message_unref),
  14077.     Plug memory leaks.
  14078.  
  14079.     (dbus_message_get_fields):
  14080.     Remove debugging printout.
  14081.  
  14082.     (_dbus_message_loader_return_buffer):
  14083.     Don't store the header string.
  14084.  
  14085.     (_dbus_message_test):
  14086.     Plug leaks.
  14087.  
  14088. 2003-01-26  Richard Hult  <rhult@codefactory.se>
  14089.  
  14090.     * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
  14091.     the file descriptor list, since it can change under us.
  14092.  
  14093. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14094.  
  14095.     * glib/dbus-gmain.c: (dbus_connection_prepare),
  14096.     (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
  14097.     (remove_watch), (dbus_connection_hookup_with_g_main):
  14098.     Rewrite the glib handling to use its own GSource instead of a
  14099.     GIOChannel so we can catch messages put in the queue while waiting
  14100.     for a reply.
  14101.  
  14102. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14103.  
  14104.     * bus/Makefile.am:
  14105.     * bus/connection.c: (connection_disconnect_handler),
  14106.     (connection_watch_callback), (bus_connection_setup):
  14107.     * bus/dispatch.c: (send_one_message),
  14108.     (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
  14109.     (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
  14110.     * bus/dispatch.h:
  14111.     * bus/driver.c: (bus_driver_send_service_deleted),
  14112.     (bus_driver_send_service_created), (bus_driver_handle_hello),
  14113.     (bus_driver_send_welcome_message),
  14114.     (bus_driver_handle_list_services), (bus_driver_remove_connection),
  14115.     (bus_driver_handle_message):
  14116.     * bus/driver.h:
  14117.     Refactor code, put the message dispatching in its own file. Use
  14118.     _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
  14119.     is disconnected.
  14120.  
  14121. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14122.  
  14123.     * dbus/dbus-internals.h:
  14124.     Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
  14125.  
  14126.     * dbus/dbus-message.c: (dbus_message_get_sender):
  14127.     * dbus/dbus-message.h:
  14128.     Implement dbus_message_get_sender.
  14129.  
  14130.     * dbus/dbus-protocol.h:
  14131.     Add message and service defines.
  14132.  
  14133. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14134.  
  14135.     * dbus/dbus-connection.c: (dbus_connection_send_message):
  14136.     * dbus/dbus-message-internal.h:
  14137.     * dbus/dbus-message.c: (_dbus_message_get_client_serial),
  14138.     (dbus_message_write_header):
  14139.     Remove _dbus_messag_unlock and don't set the client serial on a
  14140.     message if one already exists.
  14141.  
  14142. 2003-01-24  Havoc Pennington  <hp@pobox.com>
  14143.  
  14144.     * dbus/dbus-list.c (alloc_link): put a thread lock on the global
  14145.     list_pool
  14146.  
  14147.     * bus/driver.c (bus_driver_handle_list_services): fix a leak
  14148.     on OOM
  14149.  
  14150. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14151.  
  14152.     * dbus/dbus-list.c: (alloc_link), (free_link):
  14153.     Use a memory pool for the links.
  14154.  
  14155. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14156.  
  14157.     * bus/connection.c: (bus_connection_foreach):
  14158.     * bus/connection.h:
  14159.     Add new bus_connection_foreach function.
  14160.  
  14161.     * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
  14162.     Add function that broadcasts a message to all clients.
  14163.  
  14164.     (bus_driver_send_service_created), (bus_driver_handle_hello),
  14165.     (bus_driver_send_welcome_message),
  14166.     (bus_driver_handle_list_services), (bus_driver_message_handler):
  14167.     Implement functions that take care of listing services, and notifying
  14168.     clients when new services are created.
  14169.  
  14170.     * bus/services.c: (bus_services_list):
  14171.     * bus/services.h:
  14172.     Add new function that returns an array of strings with the currently
  14173.     registered services.
  14174.  
  14175.     * glib/dbus-glib.h:
  14176.     * glib/dbus-gmain.c:
  14177.     Update copyright year.
  14178.  
  14179. 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
  14180.  
  14181.     * dbus/dbus-connection.c: (dbus_connection_send_message):
  14182.     Unlock the message in case it was sent earlier.
  14183.  
  14184.     (dbus_connection_send_message_with_reply_and_block):
  14185.     Remove the reply message from the list.
  14186.  
  14187.     * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
  14188.     Set array_len and new_pos correctly.
  14189.  
  14190.     (_dbus_marshal_test):
  14191.     Remove debug output.
  14192.  
  14193.     * dbus/dbus-message-internal.h:
  14194.     * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
  14195.     New function that returns the reply serial.
  14196.  
  14197.     (_dbus_message_unlock):
  14198.     New function that unlocks a message and resets its header.
  14199.  
  14200.     (dbus_message_append_string_array),
  14201.     (dbus_message_get_fields_valist),
  14202.     (dbus_message_iter_get_field_type),
  14203.     (dbus_message_iter_get_string_array),
  14204.     (dbus_message_get_fields),
  14205.     (dbus_message_append_fields_valist):
  14206.     Handle string arrays.
  14207.  
  14208.     (dbus_message_set_sender):
  14209.     Make this function public since the bus daemon needs it.
  14210.  
  14211.     (decode_header_data):
  14212.     Set the reply serial to -1 initially.
  14213.  
  14214.     * dbus/dbus-message.h:
  14215.     Add dbus_message_set_sender.
  14216.  
  14217. 2003-01-24  Havoc Pennington  <hp@pobox.com>
  14218.  
  14219.     * doc/dbus-specification.sgml: add some stuff
  14220.  
  14221. 2003-01-22  Havoc Pennington  <hp@pobox.com>
  14222.  
  14223.     * doc/dbus-specification.sgml: Start to document the protocol.
  14224.  
  14225. 2003-01-22  Havoc Pennington  <hp@pobox.com>
  14226.  
  14227.     * dbus/dbus-connection.c
  14228.     (dbus_connection_send_message_with_reply_and_block): add some @todo
  14229.  
  14230.     * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
  14231.  
  14232. 2003-01-21  Havoc Pennington  <hp@pobox.com>
  14233.  
  14234.         (patch untested because can't compile)
  14235.  
  14236.     * bus/driver.c (create_unique_client_name): make this function
  14237.     never recycle client names. Also, caller should initialize
  14238.     the DBusString.
  14239.  
  14240.     * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
  14241.  
  14242. 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
  14243.  
  14244.     * dbus/dbus-marshal.c: (_dbus_marshal_double),
  14245.     (_dbus_marshal_int32), (_dbus_marshal_uint32),
  14246.     (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
  14247.     (_dbus_marshal_double_array), (_dbus_marshal_string_array),
  14248.     (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
  14249.     (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
  14250.     (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
  14251.     * dbus/dbus-marshal.h:
  14252.     * dbus/dbus-protocol.h:
  14253.     Add support for marshalling and demarshalling integer, double
  14254.     and string arrays.
  14255.  
  14256. 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
  14257.  
  14258.     * bus/Makefile.am:
  14259.     Add driver.[ch]
  14260.  
  14261.     * bus/connection.c: (connection_disconnect_handler):
  14262.     Remove the connection from the bus driver's list.
  14263.  
  14264.     (connection_watch_callback): Dispatch messages.
  14265.  
  14266.     (free_connection_data): Free connection name.
  14267.  
  14268.     (bus_connection_setup): Add connection to the bus driver's list.
  14269.     (bus_connection_remove_owned_service):
  14270.     (bus_connection_set_name), (bus_connection_get_name):
  14271.     Add functions for setting and getting the connection's name.
  14272.  
  14273.     * bus/connection.h:
  14274.     Add function headers.
  14275.  
  14276.     * bus/driver.c: (create_unique_client_name),
  14277.     (bus_driver_handle_hello_message),
  14278.     (bus_driver_send_welcome_message), (bus_driver_message_handler),
  14279.     (bus_driver_add_connection), (bus_driver_remove_connection):
  14280.     * bus/driver.h:
  14281.     * bus/main.c:
  14282.     * bus/services.c: (bus_service_free):
  14283.     * bus/services.h:
  14284.     New file that handles communication and registreation with the bus
  14285.     itself.
  14286.  
  14287. 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
  14288.  
  14289.     * dbus/dbus-connection.c: (dbus_connection_send_message):
  14290.     Add a new client_serial parameter.
  14291.  
  14292.     (dbus_connection_send_message_with_reply):
  14293.     Remove a @todo since we've implemented the blocking function.
  14294.  
  14295.     (dbus_connection_send_message_with_reply_and_block):
  14296.     New function that sends a message and waits for a reply and
  14297.     then returns the reply.
  14298.  
  14299.     * dbus/dbus-connection.h:
  14300.     Add new functions.
  14301.  
  14302.     * dbus/dbus-errors.c: (dbus_result_to_string):
  14303.     * dbus/dbus-errors.h:
  14304.     Add new DBUS_RESULT.
  14305.  
  14306.     * dbus/dbus-message-internal.h:
  14307.     * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
  14308.     (_dbus_message_set_sender), (dbus_message_write_header),
  14309.     (dbus_message_new_reply), (decode_header_data),
  14310.     (_dbus_message_loader_return_buffer), (_dbus_message_test):
  14311.     * dbus/dbus-message.h:
  14312.     Add new functions that set the reply serial and sender.
  14313.     Also marshal and demarshal them correctly and add test.
  14314.  
  14315.     * dbus/dbus-protocol.h:
  14316.     Add new DBUS_MESSAGE_TYPE_SENDER.
  14317.  
  14318.     * glib/dbus-glib.h:
  14319.     * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
  14320.     (add_watch), (remove_watch), (add_timeout), (remove_timeout),
  14321.     (dbus_connection_hookup_with_g_main):
  14322.     * glib/test-dbus-glib.c: (main):
  14323.     Rewrite to use GIOChannel and remove the GSource crack.
  14324.  
  14325.     * test/echo-client.c: (main):
  14326.     * test/watch.c: (check_messages):
  14327.     Update for changed APIs
  14328.  
  14329. 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
  14330.  
  14331.     * dbus/Makefile.am: Add dbus-timeout.[c─º]
  14332.  
  14333.     * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
  14334.     Create a DBusTimeoutList.
  14335.     (dbus_connection_set_timeout_functions): Add new function to
  14336.     set timeout callbacks
  14337.  
  14338.     * dbus/dbus-connection.h: Add public DBusTimeout API.
  14339.  
  14340.     * dbus/dbus-message.c: (dbus_message_get_service):
  14341.     * dbus/dbus-message.h:    New function.
  14342.  
  14343.     * dbus/dbus-server.c: Fix small doc typo.
  14344.  
  14345.     * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
  14346.  
  14347. 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
  14348.  
  14349.     * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
  14350.     of the string, just as long as specified.
  14351.  
  14352. 2003-01-19  Havoc Pennington  <hp@pobox.com>
  14353.  
  14354.     * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
  14355.     new function
  14356.  
  14357.     * dbus/dbus-server.c (dbus_server_set_max_connections)
  14358.     (dbus_server_get_max_connections, dbus_server_get_n_connections):
  14359.     keep track of current number of connections, and add API for
  14360.     setting a max (but haven't implemented enforcing the max yet)
  14361.  
  14362. 2003-01-18  Havoc Pennington  <hp@pobox.com>
  14363.  
  14364.     * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
  14365.     reading/writing if read_watch != NULL or write_watch != NULL.
  14366.  
  14367.     * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
  14368.     the message loader code to actually load message->header and
  14369.     message->body into the newly-created message.
  14370.  
  14371.     * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
  14372.     in OOM case
  14373.  
  14374.     * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
  14375.     (dbus_connection_get_max_message_size)
  14376.     (dbus_connection_set_max_live_messages_size)
  14377.     (dbus_connection_get_max_live_messages_size): implement some
  14378.     resource limitation functions
  14379.  
  14380.     * dbus/dbus-resources.c: new file implementing some of the
  14381.     resource limits stuff
  14382.  
  14383.     * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
  14384.     missing docs, add @todo to handle OOM etc.
  14385.  
  14386.     * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
  14387.     docs
  14388.  
  14389. 2003-01-18  Havoc Pennington  <hp@pobox.com>
  14390.  
  14391.     * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
  14392.     connection if it hasn't been already.
  14393.  
  14394.     * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
  14395.     replace with DisconnectFunction.
  14396.  
  14397. 2003-01-18  Havoc Pennington  <hp@pobox.com>
  14398.  
  14399.         Building --disable-verbose-mode --disable-asserts --disable-tests
  14400.     cuts the library from 112K to 45K or so
  14401.  
  14402.     * configure.in: check for varargs macro support,
  14403.     add --enable-verbose-mode, --enable-asserts.
  14404.  
  14405.     * dbus/dbus-internals.h (_dbus_assert): support
  14406.     DBUS_DISABLE_ASSERT
  14407.     (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
  14408.  
  14409. 2003-01-18  Havoc Pennington  <hp@pobox.com>
  14410.  
  14411.     * dbus/dbus-test.c: include config.h so that tests actually run
  14412.  
  14413.     * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
  14414.     so the failure mode when that assumption fails will be plenty
  14415.     obvious.
  14416.  
  14417. 2003-01-18  Havoc Pennington  <hp@pobox.com>
  14418.  
  14419.     * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
  14420.  
  14421.     * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
  14422.     the distribution
  14423.  
  14424.     * test/Makefile.am: don't use special variable "TESTS" for echo-*
  14425.     since we don't want to use those in make check
  14426.  
  14427. 2003-01-15  Havoc Pennington  <hp@redhat.com>
  14428.  
  14429.         Release 0.2
  14430.  
  14431.     * NEWS: update
  14432.  
  14433. 2003-01-15  Havoc Pennington  <hp@redhat.com>
  14434.  
  14435.     * test/Makefile.am: fix so that test source code ends up in the
  14436.     distribution on make distcheck
  14437.  
  14438. 2003-01-15  Havoc Pennington  <hp@redhat.com>
  14439.  
  14440.         Release 0.1.
  14441.  
  14442.     * NEWS: update
  14443.  
  14444. 2003-01-15  Havoc Pennington  <hp@redhat.com>
  14445.  
  14446.     * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
  14447.     fix build when --disable-tests
  14448.  
  14449.     * Makefile.am (EXTRA_DIST): put HACKING in here
  14450.  
  14451.     * HACKING: document procedure for making a tarball release.
  14452.  
  14453. 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
  14454.  
  14455.     * bus/connection.c: (connection_error_handler),
  14456.     (bus_connection_setup):
  14457.     * bus/main.c: (main):
  14458.     Make sure that the DBusConnectionData struct is NULLed
  14459.     out to prevent a segfault.
  14460.  
  14461.     * dbus/dbus-errors.c: (dbus_result_to_string):
  14462.     * dbus/dbus-errors.h:
  14463.     * dbus/dbus-message.c: (dbus_message_get_fields),
  14464.     (dbus_message_get_fields_valist), (_dbus_message_test):
  14465.     * dbus/dbus-message.h:
  14466.     Make dbus_message_get_fields return a result code so we can
  14467.     track invalid fields as well as oom.
  14468.  
  14469. 2003-01-11  Havoc Pennington  <hp@pobox.com>
  14470.  
  14471.     * configure.in: change --enable-test/--enable-ansi action-if-given
  14472.     to enable_foo=$enableval instead of enable_foo=yes
  14473.  
  14474. 2003-01-08  Havoc Pennington  <hp@pobox.com>
  14475.  
  14476.     * dbus/dbus-string.c (_dbus_string_align_length): new function
  14477.  
  14478.     * dbus/dbus-test-main.c: move main() for test app here
  14479.     * dbus/dbus-test.c
  14480.     (dbus_internal_symbol_do_not_use_run_tests): we have to export a
  14481.     symbol to run tests, because dbus-test isn't in the main
  14482.     library
  14483.  
  14484.         Code review nitpicks.
  14485.  
  14486.     * dbus/dbus-message.c (dbus_message_write_header): add newlines
  14487.     for people with narrow emacs ;-). Assert client_serial was filled
  14488.     in. Assert message->name != NULL.
  14489.     (dbus_message_append_fields): have "first_field_type" arg separate
  14490.     from va list, needed for C++ binding that also uses varargs IIRC
  14491.     and helps with type safety
  14492.     (dbus_message_new): add @todo about using DBusString to store
  14493.     service/name internally
  14494.     (dbus_message_new): don't leak ->service and ->name on OOM later
  14495.     in the function
  14496.     (dbus_message_unref): free the service name
  14497.     (dbus_message_get_fields): same change to varargs
  14498.     i.e. first_field_type
  14499.     (_dbus_message_loader_return_buffer): assert that the message data
  14500.     is aligned (if not it's a bug in our code). Put in verbose griping
  14501.     about why we set corrupted = TRUE.
  14502.     (decode_header_data): add FIXME that char* is evil.  Was going to
  14503.     add FIXME about evil locale-specific string.h strncmp, but just
  14504.     switched to wacky string-as-uint32 optimization. Move check for
  14505.     "no room for field name" above get_const_data_len() to avoid
  14506.     assertion failure in get_const_data_len if we have trailing 2
  14507.     bytes or the like. Check for service and name fields being
  14508.     provided twice. Don't leak service/name on error. Require field
  14509.     names to be aligned to 4 bytes.
  14510.  
  14511.     * dbus/dbus-marshal.c: move byte swap stuff to header
  14512.     (_dbus_pack_int32): uscore-prefix
  14513.     (_dbus_unpack_int32): uscore-prefix
  14514.     (_dbus_unpack_uint32): export
  14515.     (_dbus_demarshal_string): add @todo complaining about use of
  14516.     memcpy()
  14517.     (_dbus_marshal_get_field_end_pos): add @todo about bad error
  14518.     handling allowing corrupt data to go unchecked
  14519.  
  14520. 2003-01-08  Havoc Pennington  <hp@redhat.com>
  14521.  
  14522.     * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
  14523.     to the select() as needed for authentication. (should be using
  14524.     _dbus_poll() not select, but for another day)
  14525.  
  14526.     * dbus/dbus.h: include dbus/dbus-protocol.h
  14527.  
  14528. 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
  14529.  
  14530.     * dbus/Makefile.am (dbusinclude_HEADERS): Install
  14531.     dbus-connection.h
  14532.  
  14533. 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
  14534.  
  14535.     * dbus/dbus-internals.c: (_dbus_type_to_string):
  14536.     New function that returns a string describing a type.
  14537.  
  14538.     * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
  14539.     * dbus/dbus-marshal.h:
  14540.     * dbus/dbus-message.c: (dbus_message_get_fields_valist),
  14541.     (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
  14542.     (dbus_message_iter_get_byte_array):
  14543.     * dbus/dbus-message.h:
  14544.     Add new convenience functions for appending and getting message fields.
  14545.     Also add demarshalling routines for byte arrays.
  14546.  
  14547. 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
  14548.  
  14549.     * dbus/dbus-connection-internal.h:
  14550.     * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
  14551.     (_dbus_connection_get_next_client_serial),
  14552.     (dbus_connection_send_message):
  14553.     * dbus/dbus-internals.h:
  14554.     * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
  14555.     (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
  14556.     (_dbus_marshal_uint32), (_dbus_demarshal_double),
  14557.     (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
  14558.     (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
  14559.     (_dbus_verbose_bytes), (_dbus_marshal_test):
  14560.     * dbus/dbus-marshal.h:
  14561.     * dbus/dbus-message-internal.h:
  14562.     * dbus/dbus-message.c: (_dbus_message_set_client_serial),
  14563.     (dbus_message_write_header), (_dbus_message_lock),
  14564.     (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
  14565.     (dbus_message_get_name), (dbus_message_append_int32),
  14566.     (dbus_message_append_uint32), (dbus_message_append_double),
  14567.     (dbus_message_append_string), (dbus_message_append_byte_array),
  14568.     (dbus_message_get_fields_iter), (dbus_message_iter_ref),
  14569.     (dbus_message_iter_unref), (dbus_message_iter_has_next),
  14570.     (dbus_message_iter_next), (dbus_message_iter_get_field_type),
  14571.     (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
  14572.     (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
  14573.     (decode_header_data), (_dbus_message_loader_return_buffer),
  14574.     (message_iter_test), (_dbus_message_test):
  14575.     * dbus/dbus-message.h:
  14576.     * dbus/dbus-protocol.h:
  14577.     * dbus/dbus-test.c: (main):
  14578.     * dbus/dbus-test.h:
  14579.     * glib/test-dbus-glib.c: (message_handler), (main):
  14580.     * test/echo-client.c: (main):
  14581.     * test/watch.c: (check_messages):
  14582.     Make messages sendable and receivable for real.
  14583.  
  14584. 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
  14585.  
  14586.     * dbus/dbus-marshal.c: (_dbus_marshal_double),
  14587.     (_dbus_marshal_string), (_dbus_marshal_byte_array):
  14588.     * dbus/dbus-message.c: (dbus_message_append_int32),
  14589.     (dbus_message_append_uint32), (dbus_message_append_double),
  14590.     (dbus_message_append_string), (dbus_message_append_byte_array):
  14591.     Handle OOM restoration.
  14592.  
  14593. 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
  14594.  
  14595.     * dbus/dbus-marshal.c: (_dbus_marshal_string),
  14596.     (_dbus_demarshal_string), (_dbus_marshal_test):
  14597.     * dbus/dbus-marshal.h:
  14598.     * dbus/dbus-message.c: (dbus_message_get_name),
  14599.     Document these functions.
  14600.  
  14601.     (dbus_message_append_int32), (dbus_message_append_uint32),
  14602.     (dbus_message_append_double), (dbus_message_append_string),
  14603.     (dbus_message_append_byte_array):
  14604.     * dbus/dbus-message.h:
  14605.     Add functions for adding message fields of different types.
  14606.  
  14607.     * dbus/dbus-protocol.h:
  14608.     Add the different types.
  14609.  
  14610. 2003-01-05  Havoc Pennington  <hp@pobox.com>
  14611.  
  14612.     * bus/connection.c: implement routines for handling connections,
  14613.     first thing is keeping a list of owned services on each connection
  14614.     and setting up watches etc.
  14615.  
  14616.     * bus/services.c: implement a mapping from service names to lists
  14617.     of connections
  14618.  
  14619.     * dbus/dbus-hash.c: add DBUS_HASH_POINTER
  14620.  
  14621.     * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
  14622.     to use static mutexes for global data
  14623.  
  14624.     * dbus/dbus-connection.c (dbus_connection_set_data): add new
  14625.     collection of functions to set/get application-specific data
  14626.     on the DBusConnection.
  14627.  
  14628. 2003-01-04  Havoc Pennington  <hp@pobox.com>
  14629.  
  14630.     * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
  14631.     (_dbus_poll): new function
  14632.  
  14633.     * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
  14634.     copied from GLib
  14635.  
  14636.     * bus/loop.c: initial code for the daemon main loop
  14637.  
  14638. 2003-01-04  Havoc Pennington  <hp@pobox.com>
  14639.  
  14640.     * test/watch.c (error_handler): make it safe if the error handler
  14641.     is called multiple times (if we s/error handler/disconnect
  14642.     handler/ we should just guarantee it's called only once)
  14643.  
  14644.     * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
  14645.     error handler on disconnect (it's quite possible we should
  14646.     just change the error handler to a "disconnect handler," I'm
  14647.     not sure we have any other meaningful errors)
  14648.  
  14649.     * configure.in: check for getpwnam_r
  14650.  
  14651.     * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
  14652.     dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
  14653.     mechanism as in SASL spec, using socket credentials
  14654.  
  14655.     * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
  14656.     (_dbus_send_credentials_unix_socket): new function
  14657.  
  14658.     * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
  14659.     dbus_accept()
  14660.     (_dbus_write): only check errno if <0 returned
  14661.     (_dbus_write_two): ditto
  14662.  
  14663. 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
  14664.  
  14665.     * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
  14666.     (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
  14667.     (_dbus_marshal_test):
  14668.     * dbus/dbus-marshal.h:
  14669.     Add _dbus_marshal_byte_array and rename _dbus_marshal_string
  14670.     to _dbus_marshal_utf8_string. Also fix some tests.
  14671.  
  14672. 2002-12-28  Harri Porten  <porten@kde.org>
  14673.  
  14674.     * configure.in: added check for C++ compiler and a very cheesy
  14675.     check for the Qt integration
  14676.  
  14677.     * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
  14678.  
  14679.     * qt/Makefile.am: added
  14680.  
  14681.     * qt/.cvsignore: added
  14682.  
  14683.     * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
  14684.     latter, added #ifdef QT_THREAD_SUPPORT guard.
  14685.  
  14686.     * dbus/Makefile.am: added missing headers for make dist
  14687.  
  14688. 2002-12-28  Kristian Rietveld  <kris@gtk.org>
  14689.  
  14690.     * dbus/Makefile.am: fixup export-symbols-regex.
  14691.  
  14692. 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
  14693.  
  14694.     * acinclude.m4: Add this file and put the
  14695.     PKG_CHECK_MODULE macro in it.
  14696.  
  14697. 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
  14698.  
  14699.     * dbus/dbus-marshal.c: (_dbus_marshal_string),
  14700.     (_dbus_demarshal_double), (_dbus_demarshal_int32),
  14701.     (_dbus_demarshal_uint32), (_dbus_demarshal_string),
  14702.     (_dbus_marshal_test):
  14703.     Make the demarshalling routines align the pos argument.
  14704.     Add string marshalling tests and fix the obvious bugs
  14705.     discovered.
  14706.  
  14707. 2002-12-26  Havoc Pennington  <hp@pobox.com>
  14708.  
  14709.     * dbus/dbus-auth.c: fixes fixes fixes
  14710.  
  14711.     * dbus/dbus-transport-unix.c: wire up support for
  14712.     encoding/decoding data on the wire
  14713.  
  14714.     * dbus/dbus-auth.c (_dbus_auth_encode_data)
  14715.     (_dbus_auth_decode_data): append to target string
  14716.     instead of nuking it.
  14717.  
  14718. 2002-12-26  Havoc Pennington  <hp@pobox.com>
  14719.  
  14720.     * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
  14721.     WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
  14722.     doh
  14723.  
  14724.     * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
  14725.     avoid swap_bytes() overhead (ignoring possible assembly stuff for
  14726.     now). Main point is because I wanted unpack_uint32 to implement
  14727.     _dbus_verbose_bytes
  14728.     (_dbus_verbose_bytes): new function
  14729.  
  14730.     * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
  14731.  
  14732.     * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
  14733.     mechanism to handle a corrupt message stream
  14734.     (_dbus_message_loader_new): fix preallocation to only prealloc,
  14735.     not prelengthen
  14736.  
  14737.     * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
  14738.     (_dbus_string_test): enhance tests for copy/move and fix the
  14739.     functions
  14740.  
  14741.     * dbus/dbus-transport-unix.c: Hold references in more places to
  14742.     avoid reentrancy problems
  14743.  
  14744.     * dbus/dbus-transport.c: ditto
  14745.  
  14746.     * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
  14747.     leak reference count in no-message case
  14748.  
  14749.     * test/watch.c (do_mainloop): handle adding/removing watches
  14750.     during iteration over the watches. Also, ref the connection/server
  14751.     stored on a watch, so we don't try to mangle a destroyed one.
  14752.  
  14753.     * dbus/dbus-transport-unix.c (do_authentication): perform
  14754.     authentication
  14755.  
  14756.     * dbus/dbus-auth.c (get_state): add a state
  14757.     AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
  14758.     (_dbus_auth_get_unused_bytes): append the unused bytes
  14759.     to the passed in string, rather than prepend
  14760.  
  14761.     * dbus/dbus-transport.c (_dbus_transport_init_base): create
  14762.     the auth conversation DBusAuth
  14763.  
  14764.     * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
  14765.     (_dbus_transport_new_for_domain_socket): when creating a
  14766.     transport, pass in whether it's a client-side or server-side
  14767.     transport so we know which DBusAuth to create
  14768.  
  14769. 2002-12-03  Havoc Pennington  <hp@pobox.com>
  14770.  
  14771.     * dbus/dbus-transport-unix.c (unix_finalize): finalize base
  14772.     _after_ finalizing the derived members
  14773.     (unix_connection_set): unref watch if we fail to add it
  14774.  
  14775.     * dbus/dbus-connection.c (dbus_connection_unref): delete the
  14776.     transport first, so that the connection owned by the
  14777.     transport will be valid as the transport finalizes.
  14778.  
  14779.     * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
  14780.     if necessary, and remove watches from the connection.
  14781.  
  14782.     * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
  14783.  
  14784. 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
  14785.  
  14786.     * dbus/dbus-marshal.c: (_dbus_marshal_string),
  14787.     (_dbus_demarshal_double), (_dbus_demarshal_int32),
  14788.     (_dbus_demarshal_uint32), (_dbus_demarshal_string),
  14789.     (_dbus_marshal_test):
  14790.     * dbus/dbus-marshal.h:
  14791.     Add string marshal functions and have the demarshal functions
  14792.     return the new position.
  14793.  
  14794. 2002-12-25  Havoc Pennington  <hp@pobox.com>
  14795.  
  14796.     * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
  14797.     it is a simple protocol that just maps directly to SASL.
  14798.  
  14799.     * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
  14800.     initial implementation, not actually used yet.
  14801.  
  14802.     * dbus/dbus-string.c (_dbus_string_find): new function
  14803.     (_dbus_string_equal): new function
  14804.     (_dbus_string_base64_encode): new function
  14805.     (_dbus_string_base64_decode): new function
  14806.  
  14807. 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
  14808.  
  14809.     * dbus/Makefile.am:
  14810.     * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
  14811.     (_dbus_marshal_int32), (_dbus_marshal_uint32),
  14812.     (_dbus_demarshal_double), (_dbus_demarshal_int32),
  14813.     (_dbus_demarshal_uint32), (_dbus_marshal_test):
  14814.     * dbus/dbus-marshal.h:
  14815.     * dbus/dbus-protocol.h:
  14816.     * dbus/dbus-test.c: (main):
  14817.     * dbus/dbus-test.h:
  14818.     Add un-optimized marshalling/demarshalling routines.
  14819.  
  14820. 2002-12-25  Harri Porten  <porten@kde.org>
  14821.  
  14822.     * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
  14823.  
  14824. 2002-12-24  Zack Rusin  <zack@kde.org>
  14825.  
  14826.     * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
  14827.     * qt/dbus-qt.h: skeleton with two sample implemenatation of the
  14828.     main loop stuff
  14829.  
  14830. 2002-12-24  Havoc Pennington  <hp@pobox.com>
  14831.  
  14832.     * glib/dbus-gthread.c: fix include
  14833.  
  14834.     * glib/dbus-glib.h: rename DBusMessageHandler for now.
  14835.     I think glib API needs to change, though, as you don't
  14836.     want to use DBusMessageFunction, you want to use the
  14837.     DBusMessageHandler object. Probably
  14838.     dbus_connection_open_with_g_main_loop()
  14839.     and dbus_connection_setup_g_main_loop() or something like that
  14840.     (but think of better names...) that just create a connection
  14841.     that has watch/timeout functions etc. already set up.
  14842.  
  14843.     * dbus/dbus-connection.c
  14844.     (dbus_connection_send_message_with_reply): new function just to
  14845.     show how the message handler helps us deal with replies.
  14846.  
  14847.     * dbus/dbus-list.c (_dbus_list_remove_last): new function
  14848.  
  14849.     * dbus/dbus-string.c (_dbus_string_test): free a string that
  14850.     wasn't
  14851.  
  14852.     * dbus/dbus-hash.c: use memory pools for the hash entries
  14853.     (rebuild_table): be more paranoid about overflow, and
  14854.     shrink table when we can
  14855.     (_dbus_hash_test): reduce number of sprintfs and write
  14856.     valid C89. Add tests for case where we grow and then
  14857.     shrink the hash table.
  14858.  
  14859.     * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
  14860.  
  14861.     * dbus/dbus-connection.c (dbus_connection_register_handler)
  14862.     (dbus_connection_unregister_handler): new functions
  14863.  
  14864.     * dbus/dbus-message.c (dbus_message_get_name): new
  14865.  
  14866.     * dbus/dbus-list.c: fix docs typo
  14867.  
  14868.     * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
  14869.     an object representing a handler for messages.
  14870.  
  14871. 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
  14872.  
  14873.     * glib/dbus-glib.h:
  14874.     * glib/dbus-gthread.c: (dbus_gthread_init):
  14875.     Don't use the gdbus prefix for public functions.
  14876.  
  14877. 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
  14878.  
  14879.     * Makefile.am:
  14880.     * configure.in:
  14881.     Add GLib checks and fixup .pc files
  14882.  
  14883.     * glib/Makefile.am:
  14884.     * glib/dbus-glib.h:
  14885.     * glib/dbus-gmain.c: (gdbus_connection_prepare),
  14886.     (gdbus_connection_check), (gdbus_connection_dispatch),
  14887.     (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
  14888.     (dbus_connection_gsource_new):
  14889.     * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
  14890.     (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
  14891.     * glib/test-dbus-glib.c: (message_handler), (main):
  14892.     Add GLib support.
  14893.  
  14894. 2002-12-15  Harri Porten  <porten@kde.org>
  14895.  
  14896.     * autogen.sh: check for libtoolize before attempting to use it
  14897.  
  14898.     * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
  14899.     struct.
  14900.  
  14901.     * .cvsignore: ignore more stamp files
  14902.  
  14903.     * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
  14904.  
  14905.     * test/Makefile.am: added -I$(top_srcdir) to be able to compile
  14906.     without make install.
  14907.  
  14908. 2002-12-15  Havoc Pennington  <hp@pobox.com>
  14909.  
  14910.     * dbus/dbus-threads.c: add thread stubs that a higher library
  14911.     layer can fill in. e.g. the GLib wrapper might fill them in with
  14912.     GThread stuff. We still need to use this thread API to
  14913.     thread-safe-ize the library.
  14914.  
  14915. 2002-12-12  Havoc Pennington  <hp@pobox.com>
  14916.  
  14917.     * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
  14918.     below new interfaces and include fewer system headers.
  14919.  
  14920.     * dbus/dbus-sysdeps.c (_dbus_read): new function
  14921.     (_dbus_write): new function
  14922.     (_dbus_write_two): new function
  14923.     (_dbus_connect_unix_socket): new function
  14924.     (_dbus_listen_unix_socket): new function
  14925.  
  14926.     * dbus/dbus-message-internal.h: change interfaces to use
  14927.     DBusString
  14928.  
  14929. 2002-12-11  Havoc Pennington  <hp@pobox.com>
  14930.  
  14931.     * dbus/dbus-types.h: add dbus_unichar
  14932.  
  14933.     * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
  14934.  
  14935.     * dbus/dbus-connection.c (dbus_connection_send_message): return
  14936.     TRUE on success
  14937.  
  14938.     * dbus/dbus-transport.c: include dbus-watch.h
  14939.  
  14940.     * dbus/dbus-connection.c: include dbus-message-internal.h
  14941.  
  14942.     * HACKING: add file with coding guidelines stuff.
  14943.  
  14944.     * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
  14945.     handling here, for security purposes (as in vsftpd). Not actually
  14946.     using this class yet.
  14947.  
  14948.     * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
  14949.     system/libc usage here, as in vsftpd, for ease of auditing (and
  14950.     should also simplify portability). Haven't actually moved all the
  14951.     system/libc usage into here yet.
  14952.  
  14953. 2002-11-25  Havoc Pennington  <hp@pobox.com>
  14954.  
  14955.     * dbus/dbus-internals.c (_dbus_verbose): fix to not
  14956.     always print the first verbose message.
  14957.  
  14958. 2002-11-24  Havoc Pennington  <hp@pobox.com>
  14959.  
  14960.         * test/echo-client.c, test/echo-server.c: cheesy test
  14961.     clients.
  14962.  
  14963.     * configure.in (AC_CHECK_FUNCS): check for writev
  14964.  
  14965.     * dbus/dbus-message.c (_dbus_message_get_network_data): new
  14966.     function
  14967.  
  14968.     * dbus/dbus-list.c (_dbus_list_foreach): new function
  14969.  
  14970.     * dbus/dbus-internals.c (_dbus_verbose): new function
  14971.  
  14972.     * dbus/dbus-server.c, dbus/dbus-server.h: public object
  14973.     representing a server that listens for connections.
  14974.  
  14975.     * dbus/.cvsignore: create
  14976.  
  14977.     * dbus/dbus-errors.h, dbus/dbus-errors.c:
  14978.     public API for reporting errors
  14979.  
  14980.     * dbus/dbus-connection.h, dbus/dbus-connection.c:
  14981.     public object representing a connection that
  14982.     sends/receives messages. (Same object used for
  14983.     both client and server.)
  14984.  
  14985.     * dbus/dbus-transport.h, dbus/dbus-transport.c:
  14986.     Basic abstraction for different kinds of stream
  14987.     that we might read/write messages from.
  14988.  
  14989. 2002-11-23  Havoc Pennington  <hp@pobox.com>
  14990.  
  14991.     * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
  14992.     _DBUS_INT_MAX
  14993.  
  14994.     * dbus/dbus-test.c (main): add list test, and include
  14995.     dbus-test.h as intended
  14996.  
  14997.     * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
  14998.     (_dbus_hash_table_remove_int): return value indicates
  14999.     whether the entry existed to remove
  15000.  
  15001.     * dbus/dbus-list.c: add linked list utility class,
  15002.     with docs and tests
  15003.  
  15004.     * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
  15005.     array sometimes.
  15006.  
  15007. 2002-11-23  Havoc Pennington  <hp@pobox.com>
  15008.  
  15009.     * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
  15010.     DBUS_END_DECLS to nothing, that should fix this once and for all
  15011.  
  15012.     * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
  15013.  
  15014.     * dbus/dbus-message.c, dbus/dbus-hash.c:
  15015.     add some missing @brief
  15016.  
  15017. 2002-11-23  Havoc Pennington  <hp@pobox.com>
  15018.  
  15019.     * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
  15020.     to avoid confusing Doxygen
  15021.  
  15022.     * dbus/dbus-hash.c: @} not }@
  15023.  
  15024.     * dbus/dbus-message.c (struct DBusMessage): split out
  15025.     internals docs
  15026.  
  15027. 2002-11-23  Havoc Pennington  <hp@pobox.com>
  15028.  
  15029.     * configure.in: pile on more warning flags if using gcc
  15030.  
  15031.     * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
  15032.     to document static functions
  15033.  
  15034.     * configure.in: add summary to end of configure so it
  15035.     looks nice and attractive
  15036.  
  15037.     * dbus/dbus-hash.c: finish implementation and write unit
  15038.     tests and docs
  15039.  
  15040.     * configure.in: add --enable-tests to enable unit tests
  15041.  
  15042.     * dbus/dbus-test.c: test program to run unit tests
  15043.     for all files in dbus/*, initially runs a test for
  15044.     dbus-hash.c
  15045.  
  15046.     * dbus/dbus-internals.h: file to hold some internal utility stuff
  15047.  
  15048. 2002-11-22  Havoc Pennington  <hp@redhat.com>
  15049.  
  15050.     * dbus/dbus-hash.c: copy in Tcl hash table, not yet
  15051.     "ported" away from Tcl
  15052.  
  15053.     * dbus/dbus-types.h: header for types such as dbus_bool_t
  15054.  
  15055. 2002-11-22  Havoc Pennington  <hp@redhat.com>
  15056.  
  15057.     * dbus/dbus.h: fixups for doc warnings
  15058.  
  15059.     * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
  15060.     macros
  15061.     (QUIET): make it quiet so we can see warnings
  15062.  
  15063.     * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
  15064.  
  15065. 2002-11-22  Havoc Pennington  <hp@redhat.com>
  15066.  
  15067.     * Makefile.am: include "Doxyfile" target in all-local
  15068.  
  15069.     * configure.in: generate the Doxyfile
  15070.  
  15071.     * Doxyfile.in: move Doxyfile here, so we can use
  15072.     configure to generate a Doxyfile with the right
  15073.     version number etc.
  15074.  
  15075. 2002-11-22  Havoc Pennington  <hp@redhat.com>
  15076.  
  15077.     * dbus/dbus-message.c: move inline docs into .c file
  15078.  
  15079.     * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
  15080.     so all docs are under doc/
  15081.     (MAN_EXTENSION): generate man pages. Use extension
  15082.     ".3dbus" which matches ".3qt" on my system,
  15083.     I guess this is OK, I don't know really.
  15084.     (FILE_PATTERNS): look for .c files not .h, makes sense
  15085.     for plain C I think
  15086.  
  15087. 2002-11-22  Havoc Pennington  <hp@pobox.com>
  15088.  
  15089.     * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
  15090.     because any app can be a server, and any app can be a client,
  15091.     the bus is a special kind of server.
  15092.  
  15093. Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
  15094.  
  15095.     * Doxyfile : adding. Still needs Makefile rules to be generated
  15096.     automatically (just run "doxygen" in the toplevel dir for now to
  15097.     generate docs)
  15098.  
  15099.     * dbus/dbus-message.h : Adding sample docs (javadoc since
  15100.     resembles gtk-doc a little more)
  15101.  
  15102.     * dbus/dbus.h : Adding sample docs
  15103.  
  15104. 2002-11-21  Havoc Pennington  <hp@redhat.com>
  15105.  
  15106.     * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
  15107.     so we can allow ourselves to include files directly,
  15108.     instead of having to use dbus.h
  15109.  
  15110.     * dbus/dbus.h: fill in
  15111.  
  15112.     * dbus/dbus-message.h: sketch out a sample header file.
  15113.     Include griping if you include it directly instead of
  15114.     via dbus.h
  15115.  
  15116.     * dbus/dbus-macros.h: new file with macros for extern "C",
  15117.     TRUE/FALSE, NULL, etc.
  15118.  
  15119.     * doc/file-boilerplate.c: put include guards in here
  15120.  
  15121. 2002-11-21  Havoc Pennington  <hp@redhat.com>
  15122.  
  15123.     * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
  15124.  
  15125.     * COPYING: include the GPL as well, and license code
  15126.     under both AFL and GPL.
  15127.  
  15128. 2002-11-21  Havoc Pennington  <hp@redhat.com>
  15129.  
  15130.     * acconfig.h: get rid of this
  15131.  
  15132.     * autogen.sh (run_configure): add --no-configure option
  15133.  
  15134.     * configure.in: remove AC_ARG_PROGRAM to make
  15135.     autoconf complain less. add AC_PREREQ.
  15136.     add AC_DEFINE third arg.
  15137.  
  15138. 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
  15139.  
  15140.     * doc/Makefile.am:
  15141.     Fix references so we can distcheck.
  15142.  
  15143. 2002-11-21  Havoc Pennington  <hp@redhat.com>
  15144.  
  15145.     * Initial module creation
  15146.  
  15147.