1 2006-12-12 Tim Dijkstra <tim@famdijkstra.org>
3 * configure.in: Added switch to disable user_database caching.
5 * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
6 be able disable user_dabase caching.
8 2006-12-12 Tim Dijkstra <tim@famdijkstra.org>
10 * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext
11 struct. It is unnecessary we have a global one already. Also remove
12 bus_context_get_user_database function, it is no longer needed.
13 Flush the global database on reload.
15 * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups
16 with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
18 * dbus/dbus-userdb.c, dbus/dbus-userdb.h:
19 Add _dbus_user_database_flush_system.
20 Make more functions DBUS_USERDB_INCLUDES_PRIVATE.
21 Small unrelated change in _dbus_is_a_number: change
22 _dbus_string_parse_int to _dbus_string_parse_uint.
24 * bus/connection.c: Change call to _dbus_user_database_get_groups to
25 _dbus_groups_from_uid.
27 * bus/policy.c, bus/policy.h: Change call to
28 _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove
29 DBusUserDatabase from bus_policy_allow_user prototype, it no longer
32 2006-12-12 John (J5) Palmieri <johnp@redhat.com>
34 * bus/signal.c: Fix match_rule_equal errata
35 (CVE-2006-6107 - Patch from Kimmo Hämäläinen
36 <kimmo.hamalainen@nokia.com>)
38 2006-11-19 Thiago Macieira <thiago@kde.org>
40 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
41 _dbus_pthread_condvar_wait,
42 _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
43 pthread_self() after coming back from a conditional variable
44 wait as well as in one codepath where it was forgotten.
45 Approved by: Havoc Pennington.
47 2006-11-17 Havoc Pennington <hp@redhat.com>
49 * update-dbus-docs.sh: allow setting fd.org username via env
50 variable. Make it run autogen with --enable-xml-docs=yes
51 --enable-doxygen-docs=yes so configure will fail if the required
54 2006-11-17 Havoc Pennington <hp@redhat.com>
56 * doc/dbus-faq.xml: minor FAQ tweaks
58 2006-11-14 Havoc Pennington <hp@redhat.com>
60 * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
61 dbus_get_local_machine_id() to its own file, no substantive
62 changes. There are a couple other things we might want to add that
63 are "misc" so moving out of dbus-connection.[hc] which is big
66 2006-11-14 Havoc Pennington <hp@redhat.com>
68 * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
69 UUID had the timestamp last, but the implementation had it first;
70 move it to last since I think it's a tiny bit nicer (easier to
71 compare at a glance, faster to sort, less code), and will not
72 cause any practical compatibility problems. Also, always convert
73 the timestamp to big endian.
75 * doc/dbus-specification.xml: Clean up the docs on the UUID.
77 * tools/dbus-uuidgen.1: more prominently say it is not suitable
78 as a replacement for regular uuidgen/RFC4122.
80 2006-11-14 John (J5) Palmieri <johnp@redhat.com>
82 * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
83 the correct value so we don't assert when initalizing recursive threads
85 * test/name-test/test-thread-init.c: call dbus_threads_init_default
86 instead of _dbus_threads_init_debug since it is more of a real world
89 2006-11-09 John (J5) Palmieri <johnp@redhat.com>
93 2006-11-09 John (J5) Palmieri <johnp@redhat.com>
95 * AUTHORS: added Peter and Tor of windows porting fame
97 2006-11-08 Havoc Pennington <hp@redhat.com>
99 * doc/dbus-specification.xml: add a note about protocol stability
101 * doc/TODO: Remove "important for 1.0" section, replace with
102 "important for 1.2" section
104 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
106 * README: remove some of the out of date flags
108 * doc/TODO: Remove todo items which are done
110 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
112 * tools/dbus-monitor.c: Handle sigint so we flush stdout
113 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
115 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
117 * tools/dbus-monitor.1: update the manpage for dbus-monitor
118 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
120 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
122 * AUTHORS: Update with all people listed in the ChangeLog
124 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
126 * tools/dbus-monitor.c: add profiling tools to dbus-monitor
127 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
129 2006-11-07 Havoc Pennington <hp@redhat.com>
131 * HACKING: Update release instructions to include stuff about
132 stable releases, branching, etc. May not be totally correct,
133 please fix if needed, but keep instructions up-to-date so we do
134 each stable release consistently in the future.
136 2006-11-07 Havoc Pennington <hp@redhat.com>
138 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
139 documentation updates. Bump faq/spec versions (not to 1.0; I don't
140 think the spec will be "finished"/1.0 when we ship the 1.0 library).
142 2006-11-06 John (J5) Palmieri <johnp@redhat.com>
144 * bus/bus.c: Missed patch - pass in the context to the directory watch
146 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
148 * Released D-Bus 1.0 RC 3(0.95)
150 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
152 * bus/activation.c (bus_activation_new): don't fail if we can not read
153 the directory as it may not exist
155 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
157 * bus/config-parser.c (service_dirs_find_dir): use
158 _dbus_list_get_next_link so we don't get stuck in an infinite loop
159 (start_busconfig_child): move processing of standard_session_servicedirs
160 tags here because they have no content
161 (bus_config_parser_content): check we don't have content in
162 standard_session_servicedirs tag
164 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
166 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
167 Packagers need to own this directory
169 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
171 * tools/run-with-tmp-session-bus.sh: fixed script to replace the
172 <standard_session_servicedirs> tag with a <sevicedir> tag that
173 points to the test service directory
175 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
177 * configure.in: Add a check for DIR *dirp->dd_fd
179 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
180 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
181 of both Solaris and Irix
183 2006-11-01 Havoc Pennington <hp@redhat.com>
185 * bus/dbus-daemon.1.in: document standard_session_servicedirs
187 2006-11-01 John (J5) Palmieri <johnp@redhat.com>
189 * configure.in: expose DBUS_DATADIR
191 * bus/config-parser.c: add the standard_session_servicedirs element
193 (bus_config_parser_content): process the standard_session_servicedirs
194 element by getting the standard directories from sysdeps and merging
195 them into the service directory list
196 (test_default_session_servicedirs): make sure we get what we expect
198 * bus/session.conf.in: replace the servicedir tag with the
199 standard_session_servicedirs tag
201 * dbus/dbus-list.h: remove the typedef of DBusList and place it in
202 dbus-sysdeps.h to avoid circular header dependencies
204 * dbus/dbus-sysdeps.h: add the typedef of DBusList
206 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
207 which takes a string of directories delimited by colons, parses them
208 out, appends a suffix and puts them in a list ignoring empty elements
209 (_dbus_get_standard_session_servicedirs): returns the standard
210 directories for a session bus to look for service activation files
211 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and
212 DBUS_DATADIR directories
214 * test/data/valid-config-files/many-rules.conf: add the
215 standard_session_servicedirs tag to the valid config file tests
217 2006-10-30 Havoc Pennington <hp@redhat.com>
219 * tools/dbus-launch.1, doc/TODO: capture intent to change the
220 command line options of dbus-launch a bit post 1.0
222 2006-10-27 Havoc Pennington <hp@redhat.com>
224 * dbus/dbus-connection.c (dbus_connection_open_private): document
225 how to choose shared vs. private connections
227 2006-10-27 Havoc Pennington <hp@redhat.com>
229 * dbus/dbus-test.c: enclose more of the file in the
230 DBUS_BUILD_TESTS check.
232 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
233 DBUS_DISABLE_ASSERT case.
235 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
236 that it only works on the server side
238 * dbus/dbus-bus.c: add a global lock covering the BusData we
239 attach to each connection
240 (internal_bus_get): lock our access to the BusData
241 (dbus_bus_register): lock the entire registration process
242 with _DBUS_LOCK(bus_datas). If we get the lock and
243 registration is already complete, silently return (vs. previous
244 behavior of aborting).
245 (dbus_bus_set_unique_name): lock the BusData
246 (dbus_bus_get_unique_name): lock the BusData
248 2006-10-27 John (J5) Palmieri <johnp@redhat.com>
250 * bus/config-parser.c (service_dirs_find_dir,
251 service_dirs_append_unique_or_free,
252 service_dirs_append_link_unique_or_free): New static methods
253 for only appending unique service directory names into
254 the service directory list
255 (merge_included, bus_config_parser_content): Only add unique
256 service directory names into the list
258 2006-10-27 Havoc Pennington <hp@redhat.com>
260 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
261 variables volatile, suggested by Thiago. Document struct fields.
262 (PTHREAD_CHECK): remove pthread error checking if assertions are
263 disabled, should reduce the no-assertions case to the bare
266 2006-10-26 Havoc Pennington <hp@redhat.com>
268 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
270 (_dbus_pthread_mutex_unlock): make it recursive
271 (_dbus_pthread_condvar_wait): save/restore the recursion count
272 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
274 2006-10-26 Havoc Pennington <hp@redhat.com>
276 * doc/dbus-specification.xml: clarify the UUID text slightly
278 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
279 pthread errors. Add DBusMutexPThread and DBusCondVarPThread
280 in preparation for being able to extend them for e.g. recursive
283 2006-10-26 Havoc Pennington <hp@redhat.com>
285 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how
286 condition variables relate to recursive mutexes.
288 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c,
289 dbus/dbus-threads.c: Split the platforms-specific thread
290 implementations into their own files.
292 * dbus/dbus-sysdeps-pthread.c
293 (_dbus_pthread_condvar_wait_timeout): invert the return value, it
294 was backward. Not that anything uses it.
296 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
298 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
299 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
300 needs to be cleaned up more.
302 * doc/TODO: Add a todo that *BSD hackers should look at cleaning
305 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
307 * configure.in, dbus-1.pc.in: Check to see if thread methods
308 are in glibc or libpthread and add -lpthread to the link stage
311 2006-10-26 Thiago Macieira <thiago@kde.org>
313 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
314 bug 8780: the connection lock is only required while recording
315 the shared connection, so protect only that code
316 section. Don't require connection_lookup_shared to return a
319 2006-10-26 Thiago Macieira <thiago@kde.org>
321 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
322 check if get_machine_uuid() returns NULL before proceeding any
323 further: we can't init the X atoms or create a session file
324 name if there is no machine ID.
325 This solves a crash reported by some users if
326 --exit-with-session was used without --autolaunch=<machine-id>
328 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
330 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
331 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
333 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
334 before we run dbus-launch
336 * configure.in: define TEST_BUS_BINARY to be the full path to
337 dbus-daemon in the build root
339 2006-10-25 Sjoerd Simons <sjoerd@luon.net>
343 * toos/dbus-uuidgen.1:
344 Move the machine-id file to /var/lib/dbus
346 2006-10-24 David Zeuthen <davidz@redhat.com>
348 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
349 _dbus_assert (thread_init_generation != _dbus_current_generation)
350 not _dbus_assert (thread_init_generation == _dbus_current_generation)
352 2006-10-24 Thiago Macieira <thiago@kde.org>
354 * dbus/dbus-sysdeps.h:
355 * dbus/dbus-sysdeps-unix.c: Add function
356 _dbus_make_file_world_readable that chmods a file to 0644.
358 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
359 Avoid writing to the static "argv" array, thereby avoiding a
360 COW on the child process.
362 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
363 call _dbus_make_file_world_readable on the created file.
365 2006-10-23 David Zeuthen <davidz@redhat.com>
367 * dbus/dbus-memory.c: Use atomic variable to protect
368 n_blocks_outstanding otherwise OOM will be reported using SMP on
371 * bus/dispatch.c: Add missing end of line characters
373 * bus/desktop-file.c (parse_section_start, parse_key_value)
374 (bus_desktop_file_load): Propertly handle OOM
376 * dbus/dbus-threads.c (init_uninitialized_locks): Check that
377 thread_init_generation equals _dbus_current_generation, not 0
379 2006-10-22 Havoc Pennington <hp@redhat.com>
381 * dbus/dbus-connection-internal.h: move prototype of
382 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
383 it isn't in a public header and doesn't end up in the DBusBus
386 2006-10-21 Havoc Pennington <hp@redhat.com>
388 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
389 the tarball if packagers want to run it
391 * cleanup-man-pages.sh: Add a script which munges all the internal
392 API man pages out of the Doxygen output. This reduces the size of
393 the installed man pages from 7 to 2 megs, and avoids
394 namespace-polluting pages. Right now (like Doxygen) this script
395 isn't in the build, it's something packagers can do manually.
397 2006-10-21 Havoc Pennington <hp@redhat.com>
399 * dbus/dbus-connection.h: don't include the watch/timeout
400 functions in connection section
402 2006-10-21 Havoc Pennington <hp@redhat.com>
404 * Documentation! Whee! Doxygen now 100% silent. If you make it
405 angry again, you will be punished.
407 2006-10-21 Havoc Pennington <hp@redhat.com>
409 * More documentation - all public API now documented according to
412 2006-10-21 Havoc Pennington <hp@redhat.com>
414 * Document a bunch of undocumented stuff
416 2006-10-21 Havoc Pennington <hp@redhat.com>
418 * Clean up Doxygen group markers for public API so Doxygen finds
419 everything (not comprehensively fixed for private API).
420 Means all remaining Doxygen warnings are just about missing docs
421 and thus pretty simple to resolve.
423 2006-10-21 Havoc Pennington <hp@redhat.com>
425 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
427 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len()
428 as DBUS_GNUC_DEPRECATED
430 2006-10-21 Havoc Pennington <hp@redhat.com>
432 * Move all private API into the private Doxygen group sections of
433 the files, so they don't show up in the public API docs
435 2006-10-21 Havoc Pennington <hp@redhat.com>
437 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around
438 dbus_message_iter_get_array_len().
440 * throughout: documentation improvements.
442 2006-10-20 Havoc Pennington <hp@redhat.com>
444 * doc/TODO: remove the int64 thing from 1.0 since it doesn't
445 matter, and the message-loader-breaker thing since nobody is going
446 to do it. Add an item to 1.0 about supporting recursive locks
447 in dbus_threads_init_default() though, since it should be easy.
449 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
450 Fix this in the !dispatch case to avoid busy-looping after
453 * More misc docs improvements
455 2006-10-19 Havoc Pennington <hp@redhat.com>
457 * more Doxygen-related fixes (lots of moving things from the
458 public to internal section in dbus-connection.c)
460 2006-10-19 Havoc Pennington <hp@redhat.com>
462 * Fix a pile of Doxygen warnings and missing docs
464 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
466 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
467 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext
468 instead of a void *. kqueue uses this to get the context's loop
469 while the other modules ignore the parameter. This allows us to
470 avoid platform conditionals
472 * bus/bus.c (process_config_postinit): Pass in the context to the
475 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
477 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
478 when starting the system bus
480 2006-10-18 John (J5) Palmieri <johnp@redhat.com>
482 * configure.in: More fixups for cross compile (Patch from
483 Marco Pracucci <development at pracucci dot com>)
485 2006-10-17 Havoc Pennington <hp@redhat.com>
487 * tools/dbus-send.c (main): don't close shared connection, fix
490 2006-10-17 Havoc Pennington <hp@redhat.com>
492 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
494 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
495 since realistically it doesn't look like we'll be changing it
498 2006-10-17 Havoc Pennington <hp@redhat.com>
500 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
501 be used for return_if_fail type warnings; prefixes the pid, and
504 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
506 * configure.in: Released 1.0 RC 2(0.94)
507 Add check for -fPIC and enable it if available
509 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
511 * doc/TODO: Remove the check TODO item
513 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
515 * dbus-transport-socket.c (exchange_credentials):
516 Print out more detailed errors if reading or sending
517 credentials fail (Patch from Julio M. Merino Vidal
518 <jmmv at NetBSD dot org>)
520 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
522 * configure.in: when checking for posix getpwnam_r assume true
525 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
527 * configure.in: Check for gethostbyname first before we check for it
528 in libnsl. On gnu systems it is implemeneted
530 2006-10-13 Havoc Pennington <hp@redhat.com>
532 * dbus/dbus-connection.c
533 (dbus_connection_send_with_reply_and_block): fix to handle closed
534 connections, from Tambet Ingo bug #8631
536 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
538 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
540 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
542 * test/name-test/Makefile.am: don't link against both libdbus and
545 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
547 * configure.in: check for dirfd even if it is a macro
548 (Patch from Timothy Redaelli <drizzt at gufi dot org>)
550 2006-10-08 John (J5) Palmieri <johnp@redhat.com>
552 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
553 avoid using dirfd on systems that don't have dirfd
554 (Patch by Brian Cameron <brian dot cameron at sun dot com>)
556 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
558 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from
559 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
561 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
562 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
563 macro because _dbus_abort calls it
565 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
568 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
570 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
571 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>)
573 2006-10-02 Thiago Macieira <thiago@kde.org>
575 * tools/dbus-launch.c (main): make it complain and abort
576 execution in case an unknown option is given. Also, process
577 the '--' argument as the end of arguments.
579 2006-10-01 Havoc Pennington <hp@redhat.com>
581 * tools/dbus-launch.c (print_variables): if no syntax is given,
582 don't print something that's sort-of-half-sh-syntax, just print
583 a plain key-value pairs thing.
585 * tools/dbus-launch-x11.c: use machine ID rather than hostname for
586 the local machine representation (but still have the hostname in
587 the display). Remove the hostname from the display if it is
588 localhost. Change session files to be named
589 ~/.dbus/session-bus/machine-display. Change X atoms to be
590 underscore-prefixed so nobody whines about ICCCM compliance.
591 Otherwise name them the same as the env variables.
592 Change session file format to include key-value pairs and an
593 explanatory comment. Keys are the same as the env variables.
594 (set_address_in_x11): X property format can't depend on
595 sizeof(pid_t) on a particular machine, fix to always be 32 bits
597 * tools/dbus-launch.c: make --autolaunch take a machine id
598 argument. If --autolaunch is used with a program to run, complain
599 for now (but add a FIXME). Also, don't look for existing bus if
600 there's a program to run (but add a FIXME).
602 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
603 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
604 just to get this, and avoids duplicating uuid-reading code).
606 * tools/dbus-launch.1: clarify various things
608 2006-10-01 Havoc Pennington <hp@redhat.com>
610 * test/test-service.c (path_message_func): remove broken extra
611 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
613 * test/test-shell-service.c (path_message_func): same fix
615 * dbus/dbus-connection.c
616 (_dbus_connection_get_dispatch_status_unlocked): break up the
617 function a little for clarity and fix the notification of
618 dbus-bus.c to not require dispatch to be complete
620 * dbus/dbus-connection.c (dbus_connection_unref): improve the
621 warning when you try to finalize an open connection.
623 2006-10-01 Havoc Pennington <hp@redhat.com>
626 (internal_bus_get): only weak ref the connection; this means
627 _dbus_bus_notify_shared_connection_disconnected_unlocked can be
628 called safely in any context
629 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
632 * dbus/dbus-connection.c
633 (_dbus_connection_get_dispatch_status_unlocked): move
634 _dbus_bus_notify_shared_connection_disconnected_unlocked here
635 when queuing Disconnected instead of when the Disconnected message
636 arrives, so dbus_bus_get() won't return closed connections.
638 2006-10-01 Havoc Pennington <hp@redhat.com>
640 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
641 Add a hack to make DBusNewConnectionFunction work right.
643 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
644 the hack here. Also, fix the todo about refcount leak.
646 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
647 and use the hack here
649 * dbus/dbus-connection.c: Kill the "shared" flag vs. the
650 "shareable" flag; this was completely broken, since it meant
651 dbus_connection_open() returned a connection of unknown
652 shared-ness. Now, we always hold a ref on anything opened
655 Move the call to notify dbus-bus.c into
656 connection_forget_shared_unlocked, so libdbus consistently forgets
657 all its knowledge of a connection at once. This exposed numerous
658 places where things were totally broken if we dropped a ref inside
659 get_dispatch_status_unlocked where
660 connection_forget_shared_unlocked was previously, so move
661 connection_forget_shared_unlocked into
662 _dbus_connection_update_dispatch_status_and_unlock. Also move the
663 exit_on_disconnect here.
665 (shared_connections_shutdown): this assumed weak refs to the
666 shared connections; since we have strong refs now, the assertion
667 was failing and stuff was left in the hash. Fix it to close
668 still-open shared connections.
670 * bus/dispatch.c: fixup to use dbus_connection_open_private on the
671 debug pipe connections
673 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
674 dbus-bus.c if the closed connection is in fact shared
675 (_dbus_connection_close_possibly_shared): rename from
676 _dbus_connection_close_internal
677 (dbus_connection_close, dbus_connection_open,
678 dbus_connection_open_private): Improve docs to explain the deal
679 with when you should close or unref or both
682 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
683 from _dbus_bus_check_connection_and_unref_unlocked and modify to
684 loop over all connections
686 * test/test-utils.c (test_connection_shutdown): don't try to close
689 * test/name-test/test-threads-init.c (main): fix warnings in here
691 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
692 env variable to cause blocking waiting for gdb; drop
693 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
696 * configure.in: add -export-dynamic to libtool flags if assertions enabled
697 so _dbus_print_backtrace works.
699 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
700 instead of _dbus_verbose to print the backtrace, and diagnose lack
701 of -rdynamic/-export-dynamic
703 2006-09-30 Havoc Pennington <hp@redhat.com>
705 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
706 (internal_bus_get): fix screwy code formatting. whoever committed
707 that was not paying attention!
709 2006-09-30 Havoc Pennington <hp@redhat.com>
711 * configure.in (LT_CURRENT, LT_AGE): increment current and age to
712 reflect addition of interfaces.
714 * doc/dbus-specification.xml: describe a new
715 org.freedesktop.DBus.Peer.GetMachineId method
717 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
718 (_dbus_string_skip_white, _dbus_string_skip_blank): use new
719 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
721 (_dbus_string_chop_white): new function
723 * bus/connection.c (bus_connections_setup_connection): call
724 dbus_connection_set_route_peer_messages.
726 * dbus/dbus-connection.c
727 (_dbus_connection_peer_filter_unlocked_no_update): modify to
728 support a GetMachineId method.
730 Also, support a new flag to let the bus pass peer methods through
731 to apps on the bus, which can be set with
732 dbus_connection_set_route_peer_messages.
734 Finally, handle and return an error for anything unknown on the
735 Peer interface, which will allow us to extend the Peer interface
736 in the future without fear that we're now intercepting something
737 apps were wanting to see.
739 * tools/dbus-uuidgen.c: a thin wrapper around the functions in
742 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
743 binary here, since most of the code is already in libdbus
745 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
746 uuid from the system config file
748 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
749 (_dbus_read_uuid_file_without_creating)
750 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
751 uuid-related functions, partly factored out from dbus-server.c
753 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
754 DBUS_ERROR_FILE_EXISTS instead of EEXIST
756 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
758 * tools/dbus-cleanup-sockets.1: explain what the point of this
761 * autogen.sh (run_configure): add --config-cache to default
764 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
765 error set/clear assertions when DBUS_DISABLE_CHECKS is defined
767 * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
768 don't try to save address, fixes crash in make check
770 2006-09-30 Thiago Macieira <thiago@kde.org>
772 * configure.in: add DBUS_BINDIR as a #define to C source code.
774 * tools/dbus-launch.c
775 * tools/dbus-launch.h
776 * tools/dbus-launch-x11.c:
777 * tools/dbus-launch.1: Add the --autolaunch option to
778 dbus-launch, which makes it scan for an existing session
779 started with --autolaunch. With that option, it also creates
780 an X11 window and saves the bus address and PID to it.
782 * dbus/dbus-sysdeps.h:
783 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
784 a function that runs "dbus-launch --autolaunch" to retrieve
785 the running D-Bus session address (or start one if none was running)
787 * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
788 address protocol, which tries to get the running session from
792 * dbus/dbus-internals.h: Make "autolaunch:" be the default
793 D-Bus session bus address.
795 * dbus/dbus-connection.c: Fix horrible typo in error message.
797 2006-09-18 John (J5) Palmieri <johnp@redhat.com>
799 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
801 2006-09-17 Havoc Pennington <hp@redhat.com>
803 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
804 fix so that if unix_user_function is set on windows, we still
805 do the default check that the auth identity matches the bus identity
807 2006-09-16 Havoc Pennington <hp@redhat.com>
809 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
810 to _dbus_transport_open_platform_specific,
811 _dbus_transport_open_socket,
812 and _dbus_transport_open_debug_pipe
814 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
816 2006-09-16 Havoc Pennington <hp@redhat.com>
818 Attempt auditing public API to remove all cases where a Unix
819 function returns weird emulated goo to Windows. This probably
820 breaks the bus daemon on Windows, to fix it again we may
821 need to stop processing unix-specific config options on Windows,
822 and may need to add Windows-specific public API or config options.
824 * configure.in (LT_CURRENT, LT_AGE): increment current and age,
825 to reflect added interfaces; should not break soname.
827 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
828 not invoke unix user function on Windows. Kind of a hacky fix, but
829 we don't want a "unix uid" leaking out on Windows.
831 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
832 to get the socket fd on Windows or UNIX
833 (dbus_connection_get_unix_fd): make this always fail on Windows
835 2006-09-16 Havoc Pennington <hp@redhat.com>
837 * dbus/dbus-server.c (dbus_server_listen): change how this works
838 to be able to delegate to a set of handlers that can succeed,
839 fail, or choose not to handle. Allows us to have
840 dbus_server_listen_platform_specific.
842 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
843 factor out the tcp socket stuff to be used on windows, leaving
844 unix domain socket only in dbus-socket-unix.c
846 * dbus/dbus-transport-socket.c
847 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
848 stuff to be used on windows, leaving unix domain socket only
849 in dbus-transport-unix.c
851 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
852 temporary hack to be sure this fails on windows
853 (dbus_connection_get_unix_process_id): ditto
855 2006-09-16 Havoc Pennington <hp@redhat.com>
857 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
858 (_dbus_open_unix_socket, _dbus_open_socket): change API for
859 _dbus_open_socket so the domain/type/protocol from system headers
860 are not required. This is kind of pointless though unless we move
861 part of _dbus_connect_tcp_socket into sysdeps.c instead of
862 sysdeps-unix.c, which would mean adding a wrapper around
864 Also, add DBusError to the socket-opening functions so they
865 don't require use of errno.
867 2006-09-16 Havoc Pennington <hp@redhat.com>
869 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
870 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
872 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
873 Kümmel bug #8249 to make the sysdeps.h read/write/open/close
874 functions specifically for sockets only, and move generic
875 read/write/open/close into unix-specific code.
877 2006-09-14 Havoc Pennington <hp@redhat.com>
879 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
880 complaint about accessing revents when poll returns 0, from Julian Seward.
882 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
884 * Released 1.0 RC 1 (0.93)
886 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
888 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
889 use _dbus_close instead of close
891 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
893 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
894 credentials. Fixes "external" authentication under e.g. NetBSD
895 which does not support any other socket credentials mechanism.
896 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
898 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
900 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
901 dbus_threads_init and be used by the dbus mutex functions to
904 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
906 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
908 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
909 use threadsafe readdir_r instead of readdir
911 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
913 * dbus-threads.c (dbus_threads_init_default): New method for
914 initializing the internal thread implementation (Patch from
915 Alexander Larsson <alexl at redhat dot com>)
917 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
919 * remove a bunch of todo items from the 1.0 list
921 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
923 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
926 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
928 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
929 complex debugging code
931 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
932 between the test suite ifdefs
933 (_dbus_verbose_bytes): return if verbosity is not enabled
935 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
937 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
940 2006-09-10 Havoc Pennington <hp@redhat.com>
942 patch mostly by Peter Kümmel, bug #8211
944 * dbus/dbus-sysdeps-unix.c: new file, which splits out
945 unix-specific stuff in dbus-sysdeps.c
947 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
948 and move unix-specific stuff to dbus-sysdeps-unix.c
950 * configure.in: check HAVE_ERRNO_H
952 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
954 * bus/test-main.c (main): Initialize threading during tests
956 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
957 Unlock connection on error
958 (generate_local_error_message): static method for generating
959 an error message when we don't have a message to reply to
960 (_dbus_connection_block_pending_call): Send a disconnect error
961 instead of just a timeout (NULL) when the bus gets disconnected
962 while blocking for a reply.
964 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
966 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
967 filters (Patch from Kimmo Hämäläinen
968 <kimmo dot hamalainen at nokia dot com>)
970 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
972 * dbus/dbus-connection-internal.h: Add prototype for
973 _dbus_connection_test_get_locks to remove warning
975 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
977 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
978 close child_err_report_pipe[WRITE_END] on exec (Patch from
979 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
981 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
983 * Clean up close calls to use _dbus_close (Patch from
984 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
986 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
989 - Remove pending call locking todo item
990 - dbus_connection_open now holds hard ref. Remove todo item
991 - do proper locking on _dbus_bus_check_connection_and_unref
992 and handle DBUS_BUS_STARTER. Remove todo item
993 - Warn on closing of a shared connection. Remove todo item
995 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
996 dbus/dbus-connection.c: Use the dbus_connection_close_internal
997 so we don't get the warning when closing shared connections
999 * test/test-service.c, test/test-shell-service.c: Applications
1000 don't close shared connections themselves so we unref instead of
1003 * test/test-utils.c (test_connection_shutdown): Close the connection
1005 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1006 _dbus_bus_check_connection_and_unref_unlocked since we only call this
1007 method on a locked connection.
1008 Make sure we call _dbus_connection_unref_unlocked instead of
1009 dbus_connection_unref also.
1010 Handle DBUS_BUS_STARTER correctly
1012 * dbus/dbus-connection.c (connection_record_shared_unlocked):
1013 Mark as shared and hard ref the connection
1014 (connection_forget_shared_unlocked): Remove the hard ref from the
1016 (_dbus_connection_close_internal_and_unlock): New internal function
1017 which takes a locked connection and unlocks it after closing it
1018 (_dbus_connection_close_internal): New internal function which acts
1019 like the origonal dbus_connection_close method by grabbing a connection
1020 lock and calling _dbus_connection_close_internal_and_unlock
1021 (dbus_connection_close): Public close method, warns when the app
1022 trys to close a shared connection
1024 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
1027 (bus_driver_generate_introspect_string): New method for populating
1028 a DBusString with the introspect data
1029 (bus_driver_handle_introspect): Move introspect generation code to
1030 bus_driver_generate_introspect_string
1033 (introspect): New function which prints out the intropect data and
1035 (main): Add a --introspect switch
1037 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
1039 * doc/TODO: Removed dtd publishing item.
1040 It seems the dtd has already been added at
1041 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1043 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1045 * doc/TODO, various source files: Audited todo's and FIXME's and
1046 prepended the ones we should be looking at with 1.0. Those
1047 prepended with 1.0? need clerification or might not be needed
1050 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1052 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1053 NULL in the public API (Patch from Kimmo Hämäläinen
1054 <kimmo dot hamalainen at nokia dot com>)
1056 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1058 * configure.in: Fix for OS-X compile time endian issues (patch from
1059 Benjamin Reed <ranger at befunk dot com>)
1061 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1063 * configure.in: Check for no-common compiler flag (OS-X fix from
1064 Benjamin Reed <ranger at befunk dot com>)
1066 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
1068 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1069 <fcrozat at mandriva dot com>)
1071 2006-08-29 Havoc Pennington <hp@redhat.com>
1073 * test/test-service.c (path_message_func): fix lack of return value
1075 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1076 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1077 any more sense than on anything else in this file.
1078 (_dbus_get_tmpdir): add const to return value, and keep the
1079 results of the various getenv around in a static variable.
1081 2006-08-29 Havoc Pennington <hp@redhat.com>
1083 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1084 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1086 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1088 * test/Makefile.am: change find to use syntax that works with non
1089 gnu versions of find
1091 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1093 * dbus/dbus-transport.c: fix invalid deref when checking if
1094 a vtable method exists (Patch from Christian Ehrlicher
1095 <ch dot ehrlicher at gmx dot de>)
1097 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1099 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
1100 test/name-test/Makefile.am: Fixed some issues with getting get dbus
1101 to build with builddir != srcdir (Taken from a patch by Bernard Leak
1102 <bernard at brenda-arkle dot demon dot co dot uk>)
1104 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1106 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1109 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1111 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1112 it works on any system providing this interface, not only FreeBSD.
1113 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1115 2006-08-20 Havoc Pennington <hp@redhat.com>
1117 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1120 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1124 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1126 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1127 to reflect the init late change
1129 * bus/bus.c (bus_context_new): Check user before we fork so we can
1130 print out an error message a user will be able to see
1132 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1134 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
1136 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1137 Add two more global locks for use on windows platforms. These are
1138 unused on non-windows platforms but are not ifdefed out to avoid
1139 potential bugs (i.e. the few bytes lost does not warrent the extra
1140 maintanence and complexity that having seperate sets of locks would
1143 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1145 * bus/services.c (bus_registry_acquire_service): Return an error
1146 when an application tries to register the org.freedesktop.DBus Bus Name
1148 * bus/services.c (bus_registry_release_service): Return an error
1149 when an application tries to release the org.freedesktop.DBus Bus Name
1151 2006-08-17 Alp Toker <alp@atoker.com>
1153 * doc/dbus-specification.xml: Fix some minor typos.
1155 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
1157 * configure.in: use $with_init_scripts instead of $operating_system
1158 to determine where to store the pid since the init scripts manipulate
1159 the pid file (patch from Marcelo Ricardo Leitner
1160 <marcelo dot leitner at terra dot com dot br>.
1162 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
1164 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1165 static DBusList *uninitialized_condvar_list to support new late
1166 initialization threading model. In this model threads can be initialized
1167 even after the D-Bus API has been used but still needs to be initialized
1168 before the second thread has been started. Mutexes and condvar addresses
1169 are stored in the two static lists and are replaced with actuall locks
1170 when threads are initalized.
1171 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1172 the location into the static list
1173 (_dbus_mutex_free_at_location): New method for removing a mutex location
1174 from the static list and freeing the mutex
1175 (_dbus_condvar_new_at_location): New method for creating a conditional
1176 variable and placing the location into the static list
1177 (_dbus_condvar_free_at_location): New method for removing a conditional
1178 variable location from the static list and freeing the conditional variable
1179 (init_uninitialized_locks): Atomic method which goes through the static
1180 lists of mutex and condvar location and updates them with actuall locks
1181 (init_global_locks): changed to init_locks
1183 * dbus/dbus-connection.c:
1184 (_dbus_connection_test_get_locks): New method for tests to check connections
1185 (_dbus_connection_new_for_transport): Use the new at_location mutex and
1187 (dbus_connection_allocate_data_slot): Pass in the global lock address
1188 to _dbus_data_slot_allocator_alloc
1190 * dbus/dbus-dataslot.c:
1191 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1192 instead of the mutex itself
1194 * dbus/dbus-message.c:
1195 (dbus_message_allocate_data_slot): Pass in the global lock address
1196 to _dbus_data_slot_allocator_alloc
1198 * dbus/dbus-pending-call.c:
1199 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1200 to _dbus_data_slot_allocator_alloc
1202 * dbus/dbus-server.c:
1203 (_dbus_server_init_base): Use the new at_location mutex API
1204 (dbus_server_allocate_data_slot): Pass in the global lock address
1205 to _dbus_data_slot_allocator_alloc
1207 * test/name-test/test-threads-init.c: New test case for late thread
1210 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1212 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1213 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1214 causes compile problems when asserts are turned off
1215 Keeping _dbus_warn for printing out the message so even if
1216 asserts are turned off the user gets the messages that something is
1219 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1221 Patches by Kjartan Maraas <kmaraas at gnome dot org>
1223 * bus/services.c (bus_service_list_queued_owners):
1224 Add a pointer cast to fix compiler warning
1226 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1227 return a NULL instead of FALSE since the return type
1228 is not expecting a boolean
1230 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1231 Remove unused variable
1233 * dbus/dbus-marshal-recursive-util.c (node_new):
1234 return a NULL instead of FALSE since the return type
1235 is not expecting a boolean
1237 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1238 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1239 because we are expecting a pointer not a boolean
1241 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
1242 add void as the parameter so some compilers
1245 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1246 _dbus_transport_new_for_tcp_socket):
1247 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1248 because we are expecting a pointer not a boolean
1250 * test/shell-test.c (test_command_line):
1251 cast the second argument to _dbus_list_append to avoid compiler
1254 * test/test-names.c (main): remove unused variable
1256 * test/test-service.c (check_hello_from_self_reply):
1257 Initialize echo_message and echo_reply to NULL
1259 * test/test-shell-service.c (handle_echo):
1260 Remove unused variable and cast the third parameter passed to
1261 dbus_connection_get_object_path_data to avoid compiler warrnings
1263 * test/name-test/test-names.c (clear_message_queue):
1264 Remove unused function
1266 * test/name-test/test-pending-call-dispatch.c:
1267 Fix format string in printf
1270 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1273 * test/name-test/test-names.c:
1274 Remove test method dbus_bus_connection_get_unique_name because
1275 we already have public method dbus_bus_get_unique_name that
1276 does the exact same thing
1278 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1280 * dbus/dbus-signature.c:
1281 fix typos in Julio's previous patch which cause make check to fail
1283 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1285 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
1286 In any case it was wrong since this is a test checking to see if
1287 address parsing is correct. There was no need to get the true
1290 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1292 * dbus/dbus-macros.h: Revert the addition of stddef.h
1293 as we should not be adding it to library headers
1295 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1297 * dbus/dbus-signature.c:
1298 Fix the unit tests so that they work if assertions are not enabled.
1299 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1301 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1303 * tools/run-with-tmp-session-bus.sh:
1304 * test/name-test/run-test.sh:
1305 Remove bashisms (patch from Julio M. Merino Vidal
1306 <jmmv at NetBSD dot org>)
1308 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1310 * configure.in: add a version (>= 2.6.0) check for libxml2
1312 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1314 * configure.in: make sure the compiler supports -Wfloat-equal
1316 * bus/dir-watch-dnotify.c: move functional code after
1317 variable declerations (C99 fix) (patches from Jens Granseuer
1318 <jensgr at gmx dot net>
1320 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1322 * dbus/dbus-macros.h:
1323 add #include <stddef.h> so that Sun compilers don't complain about
1326 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1328 * dbus/dbus-sysdeps.c:
1329 * dbus/dbus-address.c:
1331 * test/shell-test.c:
1332 don't hardcode tmp directory (patch from Dave Meikle
1333 <dmk at davemeikle dot co dot uk>)
1335 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
1337 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1338 Change an assert to a detailed warning and abort.
1339 When allocator->lock != mutex it indicates that the user has failed
1340 to initalize threads before using the D-Bus library. This warning
1341 helps the user identify the issue and fix their app.
1343 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1345 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1346 with cleanups of bugs found from Coverity reports:
1348 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1349 close the file on error to avoid a leak
1351 * bus/expirelist.c (bus_expire_list_test):
1352 Check for NULL on dbus_new0
1354 * bus/activation.c (update_directory):
1357 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1360 * bus/bus.c (process_config_every_time):
1363 * bus/desktop-file.c (parse_key_value):
1366 * bus/selinux.c (bus_selinux_id_table_insert):
1369 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1371 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1374 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1376 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1379 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1381 * Doxyfile.in: fix the INPUT line so we can generate docs
1382 when sourcedir != builddir (patch from Cygwin Ports maintainer
1383 <yselkowitz at users dot sourceforge dot net>
1385 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1387 * dbus/dbus-sysdeps.h:
1388 * dbus/dbus-sysdeps.c:
1389 * dbus/dbus-string.c:
1390 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1391 GLib's function which does the same thing
1395 * bus/dir-watch-default.c:
1396 * bus/dir-watch-dnotify.c:
1397 * bus/dir-watch-kqueue.c:
1398 Add kqueue directory watching for freebsd and split the directory
1399 watching code into seperate files per method/arch
1400 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1402 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1405 * tools/Makefile.am:
1406 * tools/dbus-launch.c:
1408 allow --with-dbus-daemondir switch to be used to make the
1409 daemon install to a seperate bindir like /usr/libexec
1410 (patch from Brian Cameron <brian dot cameron at sun dot com)
1412 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1414 * bus/Makefile.am (install-data-hook): removed the slash after
1415 $(DESTDIR) so we don't get the double slash which does not work
1416 in windows (patch from Andras Porjesz
1417 <andras dot porjesz at siemens dot com>)
1419 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1421 * dbus/dbus-sysdeps.h:
1422 * dbus/dbus-sysdeps.c:
1423 add _dbus_printf_length (patch from Peter Kümmel
1424 <syntheticpp at gmx dot net>)
1426 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1428 * dbus/dbus-internals.c: unistd.h is not used
1429 (_dbus_verbose_real): only enable verbose printing
1430 if DBUS_VERBOSE environment var is set to '1'
1431 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1433 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1435 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1436 so we still compile on older gcc (patch from Frederic Peters
1437 <fpeters at 0d dot be>
1439 2006-08-04 Havoc Pennington <hp@redhat.com>
1441 * configure.in: add -Wdeclaration-after-statement
1443 * dbus/dbus-connection.c: change all the pending call stuff to
1444 reflect the fact that pending call operations use the connection
1447 * dbus/dbus-pending-call.c: add locking here
1449 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1450 field const consistent with how message field is done
1452 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1456 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1458 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
1459 <in7y118 at public.uni-hamburg dot de> - fix invalid
1460 read/write reported by valgrind
1462 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
1466 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
1468 * dbus/dbus-connection.c:
1469 (_dbus_connection_attach_pending_call_unlocked):
1470 (connection_timeout_and_complete_all_pending_calls_unlocked):
1471 Make sure we set timeout_added on pending calls to FALSE when
1472 we remove the timeout from the connection
1474 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
1476 * Removed some extra bindings stuff lingering around (thanks timo)
1477 * dbus-pendingcall.c (_dbus_pending_call_new):
1478 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1479 when we tried to take a lock on an already locked connection
1481 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1485 2006-07-17 Havoc Pennington <hp@redhat.com>
1487 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1488 ints, reported by Owen Taylor
1490 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1495 * dbus/dbus-marshal-validate.c:
1496 Removed TODO items which were fixed or are no longer relevent
1498 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1500 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1501 Remove stray files from the stripped bindings
1503 2006-07-16 Havoc Pennington <hp@redhat.com>
1505 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1506 Improve the error message on reply timeout
1508 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
1510 * Remove all bindings
1512 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
1514 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1515 and set pending_reply out arg to NULL is connection is disconnected
1516 (connection_timeout_and_complete_all_pending_calls_unlocked): New
1517 static method for cleaning up pending calls on disconnect
1518 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
1519 calls queued timeouts on disconnect
1521 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1524 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
1526 * bus/activation.[ch] (bus_activation_list_services): new function to
1527 get the list of services that can be activated
1529 * bus/dispatch.c: test coverage for the new bus method
1530 ListActivatableNames
1532 * bus/driver.c: new bus method ListActivatableNames to get the list of
1533 services that can be activated
1535 * doc/dbus-specification.xml: ListActivatableNames method documentation
1537 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1538 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1541 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1542 * dbus/dbus-message-factory.c:
1543 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1545 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1546 * dbus/dbus-connection-internal.h:
1547 * dbus/dbus-connection.c:
1548 * file dbus/dbus-pending-call.c:
1549 * dbus/dbus-pending-call.h:
1550 Make DBusPendingCall an opaque type even to D-Bus internals
1552 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1554 * dbus/dbus-connection.h: remove connection_disconnect and replace with
1557 * dbus/dbus-connection.c: include dbus-bus.h
1558 (_dbus_connection_read_write_dispatch): make static
1560 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1562 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1564 (dbus_connection_dispatch): On disconnect unref any shared connections
1566 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1567 for cleaning up shared connections on disconnect
1568 (internal_bus_get): get a hard refrence to shared connections when
1571 * doc/TODO: Remove items which are no longer relevent or have been fixed
1572 Split 1.0 todo items with a 0.90 freeze todo list
1574 2006-06-14 Ross Burton <ross@openedhand.com>
1576 * glib/dbus-gobject.c:
1577 Free a leaking GArray (surely not!) in dbus_g_method_return.
1579 2006-06-14 Ross Burton <ross@openedhand.com>
1581 * tools/Makefile.am:
1582 * tools/dbus-monitor.c:
1583 Don't use the GLib bindings in dbus-monitor (patch from Ralf
1586 2006-06-14 Ross Burton <ross@openedhand.com>
1588 * tools/dbus-print-message.c:
1589 Also print the object path when outputting signals or method calls.
1591 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
1593 * qt/src/Makefile.am: install the qdbus.h header.
1594 This allows people to actually use the installed code.
1596 2006-06-12 Ross Burton <ross@openedhand.com>
1598 * glib/dbus-gproxy.c:
1599 Don't leak a GArray when firing signals (thank Rob Taylor for review).
1601 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1605 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1607 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1608 break pedantic builds. Closes bug 6043 (patch approved by
1609 Havoc back in February).
1611 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1613 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1614 that took a QDBusMessage parameter.
1615 * qt/src/qdbusbus.h: Add a default flag for RequestName.
1616 * qt/tools/dbus.cpp: Don't use automatic call because we might
1617 be calling an async method: request a reply.
1619 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1621 * test/qt/*: Update the testcases, including testing the new
1622 functionality of sending null QByteArray and QString over the
1623 bus. Add new headertest test and restore the old
1624 qdbusxmlparser test.
1626 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1628 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1629 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1631 * qt/examples/Makefile.am:
1632 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1635 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1636 QByteArray() (nulls) over the bus.
1637 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1638 the one that has the signature suffix stripped.
1639 * qt/src/qdbusreply.h: Make some methods const.
1641 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
1643 Patch from Timo Hoenig <thoenig@suse.de>.
1645 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
1646 required during build to EXTRA_DIST.
1647 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1648 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1649 * configure.in: Fix "make dist", take care that the Makefile for
1650 qt/dbus is being generated.
1652 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1654 * bus/bus.c: Fix eavesdropping on method calls
1656 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1659 * dbus/dbus-userdb-util.c:
1660 Add Solaris console owner patch from Artem Kachitchkine
1662 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
1665 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1666 reorganisation. Thanks to Timo Hoenig for pointing this out.
1668 2006-06-06 Robert McQueen <robot101@debian.org>
1670 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1671 call to dbus_g_type_get_struct.
1673 2006-06-06 Robert McQueen <robot101@debian.org>
1675 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1676 pointers were put into a GPtrArray-based specialised collection, and
1677 then freed along with the array. GValues which you add into
1678 collections or maps which have the NOCOPY flag set are assumed to not
1679 belong to the caller, so rather than the existing pointer-stealing
1680 semantics, they are copied instead. Given that the main consumers of
1681 this abstraction are the bindings themselves, I don't think this is
1682 too bad, but others should watch their choice of take vs set_static.
1684 2006-06-06 Robert McQueen <robot101@debian.org>
1686 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1687 of g_slist_prepend not being used. Fixed copying of slist-based
1688 specialised collections, then wrote a test case and found that it was
1689 all broken. Went on to fix iterating and appending too. Good thing
1690 nobody uses this code yet.
1692 2006-06-06 Robert McQueen <robot101@debian.org>
1694 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1695 the iterators use gvalue_take_ptrarray_value (the GValues themselves
1696 are discarded without unsetting, so it makes no difference whether
1697 we take or set_static). Remove cases for G_TYPE_POINTER because
1698 there really is nothing useful we can do with them in our
1699 specialised types - we *need* boxed copy/free functions at the very
1702 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
1704 * qt/dbus: Add directory. I had forgotten to add this
1705 yesterday after the move...
1707 * qt/examples/Makefile.am:
1708 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1710 * qt/tools/Makefile.am:
1711 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1712 Added feature to get and set properties.
1713 Added validation of service, object path and interface names.
1715 * qt/tools/dbusidl2cpp.cpp: Two new features:
1716 1) Allow specifying both the header and the source file names,
1717 by separating them with a colon.
1718 2) Don't write an interface output if the -p switch wasn't
1719 given, but the -a was.
1721 * qt/src/*: Fix usage of Iterators and ConstIterators.
1722 Fix shadowing of variables by other variables (-Wshadow).
1723 Fix keyword-cleanliness in headers.
1724 Fix ASCII-cast (QLatin1String, QLatin1Char).
1725 Fix validation of member names.
1726 Add extra checking of introspection data during XML parsing.
1729 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1732 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1733 qt/dbus/qdbus.h now.
1735 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1737 * configure.in: Make --disable-qt actually do
1738 something. Patch inspired by Zack Rusin.
1740 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1742 * qt/: Update to Subversion r548032.
1743 This includes a big reorganisation of the files inside the
1746 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
1748 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1750 "Failed to connect to socket <host>:<port> <error>" instead of
1751 "Failed to connect to socket <host>: <error>:<port>"
1753 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1754 for a tcp transport.
1756 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
1758 * qt/*: Update the QtDBus bindings up to revision 546310 in
1760 This adds the dbuscpp2xml tool, that parses a C++ header and
1761 outputs a D-BUS Introspection XML.
1763 2006-05-21 Havoc Pennington <hp@redhat.com>
1765 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1766 is not NULL when it shouldn't be. Also a couple of possible fixes
1767 for #4637 though I don't understand why the bug happens, to be
1768 honest... also the object constructor has an assert name != NULL
1769 and the name is only currently NULL for peer-to-peer proxies that
1770 I don't think anyone uses? So it should be asserting.
1771 Anyway, for now at least see if we get an earlier assertion failure.
1773 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1774 apparently broken code to be sure the tests fail and someone
1777 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
1779 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1780 and arrays when they had a single element: has_next returns
1781 false, even before you read the element. So, instead, check
1784 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
1786 * qt/qdbusmessage.cpp:
1787 * qt/qdbustypehelper_p.h:
1788 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1789 the list is a const-reference
1791 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
1793 * Adding old doc patch that never got applied
1795 * dbus/bus.c (dbus_bus_add_match): Add documentation
1797 * doc/dbus-specification.xml: Add documentation for the match rules
1798 and the AddMatch and RemoveMatch methods
1800 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
1802 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1805 * qt/dbusidl2cpp.cpp:
1806 * qt/qdbusabstractadaptor.cpp:
1807 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1808 sibling of the QDBusAbstractAdaptor objects instead of the
1811 * qt/dbusidl2cpp.cpp:
1812 * qt/qdbusabstractinterface.cpp:
1813 * qt/qdbusabstractinterface.h:
1814 * qt/qdbusabstractinterface_p.h:
1815 * qt/qdbusinterface.cpp: Make properties in interfaces
1816 actually work. The code that was generated would not compile,
1817 due to moc calls to functions that did not exist. They now
1820 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
1824 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1825 Thanks to Brad Hards for providing the patch
1827 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1829 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1832 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1834 * qt/examples/dbus.cpp: Enhance error messages and use
1837 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1839 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1840 and disable the copy operators. (r533772, r534746)
1842 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1844 * qt/qdbusabstractinterface.cpp:
1845 * qt/qdbusabstractinterface.h: Change the default call mode to
1846 not use the event loop. Add convenience call() methods that
1847 take a CallMode parameter. (r534042)
1849 * qt/qdbusconnection.h: Change the default call mode to not
1850 use the event loop. (r534042)
1852 * qt/qdbusinterface.cpp:
1853 * qt/qdbusinterface.h: Add a method to tell us if the
1854 interface is valid (since we don't return a null pointer
1857 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1860 * qt/qdbusinternalfilters.cpp: Decouple the introspection
1861 function in two so taht we get the chance to introspect
1862 without having a QDBusMessage (r534102)
1865 * qt/qdbusconnection.cpp:
1866 * qt/qdbusconnection_p.h:
1867 * qt/qdbusintegrator.cpp: Keep a list of our own names to
1868 avoid a round-trip to the server when attempting to introspect
1869 one of our own objects. Also make sure the filter functions
1870 match the empty interface as well. (r534108)
1871 Don't keep the connection names. Instead, trust the unique
1872 connection name (r534111)
1873 Remove event loop usage (r534112)
1875 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1877 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1880 2006-04-28 Robert McQueen <robot101@debian.org>
1882 * glib/dbus-gproxy.c: Fix properties so that they can be given in
1883 any order, making it easier for people who inherit from this
1886 2006-04-28 Robert McQueen <robot101@debian.org>
1888 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1889 of memory from within pointer arrays and lists. Fixes bug #6300.
1891 2006-04-28 Robert McQueen <robot101@debian.org>
1893 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1894 generating struct signatures. Fixes bug #6083.
1896 2006-04-28 Robert McQueen <robot101@debian.org>
1898 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1899 to qdbusconnection_p.moc.
1901 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1903 * README, INSTALL: Doc fixes
1904 Patch from Brad Hards <bradh at frogmouth.net>
1906 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1908 * qt/examples/dbus.cpp: Use the new merged-interface mode for
1909 the dynamic meta object. No need to guess which interface to
1912 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1914 * qt/qdbusconnection_p.h:
1915 * qt/qdbusmetaobject.cpp:
1916 * qt/qdbusmetaobject_p.h:
1917 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1918 for the dynamic meta object. No need to guess which
1920 * qt/qdbusabstractinterface_p.h:
1921 * qt/qdbusconnection.cpp:
1922 * qt/qdbusintegrator.cpp:
1923 * qt/qdbusinterface.cpp:
1924 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1925 Add a QDBusRef that looks and behaves like DCOPRef.
1927 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1929 * dbus/dbus-connection.c: Interfaces are optional in method
1930 calls, so don't give up if the interface parameter is NULL.
1931 Patch reviewed by Havoc Pennington.
1933 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1935 * qt/qdbusreply.h: Add default constructor and operator=
1937 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1938 in public headers (r532952)
1939 * qt/qdbusabstractinterface.cpp:
1940 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1941 make it the default (r532951)
1943 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1945 * dbus/dbus-connection.c: Fix asserts
1946 Patch from Tim Moloney <t.moloney at verizon.net>
1948 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1950 * mono/Connection.cs, mono/Message.cs: Check Target type
1951 Patch from Aaron Bockover (abockover at novell.com)
1953 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1955 * INSTALL: fine-tune the requirements for the Qt4 binding.
1957 2006-04-16 Daniel P. Berrange <dan@berrange.com>
1959 * tools/dbus-print-message.c: Added support for printing of all
1960 remaining data types. Fixed logic for indentation of compound
1963 2006-04-15 Daniel P. Berrange <dan@berrange.com>
1965 * INSTALL: fill out content of file providing DBus specific
1966 build installations, followed by generic Auto* INSTALL file
1969 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1971 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1972 Patch by Stefan Eilers. (r529537)
1974 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1976 * qt/qdbusinternalfilters.cpp: Don't show the parent's
1979 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1981 * qt/Makefile.am: fix the dependency for
1982 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1983 not in qdbusconnection.cpp.
1984 Thanks to Jakub Stachowski <stachowski@hypair.net> for
1987 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1989 * qt/examples/listnames.cpp:
1990 * qt/examples/Makefile.am: Three ways to list the names on the
1993 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1995 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1996 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1998 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
2000 Merge from Subversion:
2001 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2002 something that exists (r526315)
2003 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2004 slots/signals (r526316)
2005 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2006 also return an unknown-method error if the parameters don't
2007 match for org.freedesktop.DBus.Properties. (r526842)
2008 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2009 * qt/qdbusintegrator.cpp: Restore the proper order of
2010 delivery: don't make method returns be delivered on priority
2013 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2015 * configure.in qt/Makefile.am: add qt/examples
2016 * qt/examples: Add QtDBus example programs:
2017 - hello: Hello, World
2018 - ping: Simple method-calling program
2019 - pong: Simple object-exporting program (not using adaptors)
2020 - complexping: Interactive method-calling program
2021 (also gets and sets properties).
2022 - complexpong: Sample program exporting methods, signals and
2023 properties, using adaptors.
2024 - dbus: Simple implementation of a generic method-calling
2025 program, similar to 'dbus-send', but with semantics
2027 - chat: Simplistic chat program, implemented using signals
2028 and the system bus. Looks like IRC.
2030 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2032 * configure.in: Detect QtGui (necessary for one of the
2033 example programs). Note: this increases the minimum required
2034 version of Qt to 4.1.3.
2036 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2038 * test/qt/*: Sync with KDE Subversion revision 523647.
2039 Update the testcases to the new API. Remove testcases for
2040 classes that are no longer public or have been removed.
2042 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2045 * dbus/qdbus.h: Sync with KDE Subversion revision
2046 523647. Hopefully, this will be the last of the
2047 source-incompatible changes. Documentation has been improved;
2048 support for QList<basic-types> has been added; QDBusObject is
2049 gone; QDBus(Abstract)Interface is now a QObject with
2050 auto-generated meta-object; QDBusIntrospection is marked
2051 private, since QMetaObject can be used now; lots of bugfixes.
2053 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
2055 Patch from Milosz Derezynski <internalerror at gmail.com>
2058 Output the service directory in the configure summary
2061 Add session_bus_services_dir
2063 2006-03-10 Ross Burton <ross@openedhand.com>
2065 * tools/dbus-print-message.c:
2066 Add support for object paths and signatures.
2068 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
2070 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2072 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2074 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
2075 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2076 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2077 * dbus/dbus-userdb.h: Add function to flush all user/group information
2080 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2082 * qt/dbusidl2cpp.cpp:
2083 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2084 for dcopidl2cpp, found in the KDE installations (or the more
2085 modern kalyptus): generate Qt4 C++ code for the input XML
2086 introspection. Currently no IDL parsing.
2088 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2090 * test/qt/*: Update the self-tests.
2092 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2095 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2096 represents the first feature-complete version of the Qt4
2097 bindings since I took ove maintainership.
2099 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2101 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2102 dir. This is C++, so we can't use the DBus ones.
2104 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
2106 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2107 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2109 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
2111 * dbus/dbus-connection.c:
2112 (_dbus_connection_block_pending_call):
2113 Check to see if our data has already been read off the connection
2114 by another blocking pending call before we block in poll.
2115 (check_for_reply_and_update_dispatch_unlocked):
2116 Code taken from _dbus_connection_block_pending_call - checks for
2117 an already read reply and updates the dispatch if there is one.
2119 * test/name-test/test-pending-call-dispatch.c:
2120 New test for making sure we don't get stuck polling a
2121 dbus connection which has no data on the socket when
2122 blocking out of order on two or more pending calls.
2124 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
2126 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2127 make/automake don't detect that we're talking about the same
2128 .lo file if I specify the full path to the source files.
2130 2006-02-26 Havoc Pennington <hp@redhat.com>
2132 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2134 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2135 session bus variable is unset, suggest "man dbus-launch" and "man
2136 dbus-daemon" to figure out how to fix the problem
2138 2006-02-25 Havoc Pennington <hp@redhat.com>
2140 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2141 should make this thing use the new glib options parser
2143 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
2145 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2146 .lo files taking moc sources.
2148 2006-02-25 Havoc Pennington <hp@redhat.com>
2150 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2151 and install it as a public header
2153 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2157 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2159 * proxies.py: Fix the callchain
2161 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2163 * patch from Sjoerd Simons <sjoerd at debian.org>:
2165 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
2168 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2169 call _dbus_group_info_free_allocated which causes infinite loop,
2170 correctly call _dbus_group_info_free
2172 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
2174 * qt/qdbusinterface_p.h:
2175 * qt/qdbusinterface.cpp: Use the standard
2176 org.freedesktop.DBus.Method.NoReply annotation for the "async"
2177 calls instead of creating one for us.
2179 * qt/qdbusconnection_p.h:
2180 * qt/qdbusintegrator.cpp: Remove debugging code.
2182 * qt/qdbusintegrator.cpp:
2183 * qt/qdbusmessage.cpp:
2184 * qt/qdbusmessage_p.h:
2185 * qt/qdbusmessage.h: Change the behaviour of automatic
2186 reply-sending: now a reply is always sent, unless the caller
2187 didn't request one or if the user slot has already sent one.
2189 2006-02-16 Robert McQueen <robot101@debian.org>
2191 * configure.in: Patch from Debian packages by Sjoerd Simons
2192 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2193 arguments so it's possible to build both bindings in the
2196 * qt/Makefile.am: Fix truncated value so that make dist works.
2198 2006-02-16 Robert McQueen <robot101@debian.org>
2200 * acinclude.m4, configure.in: Patch from Brad Hards
2201 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2202 improving quoting, re-ordering a few checks, and a few other
2205 2006-02-16 Robert McQueen <robot101@debian.org>
2207 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2208 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2209 assertion that the next element to read from the iter is fixed in
2210 size. This is not the case when you are at the end of the iter,
2211 because the next element type is INVALID.
2213 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2214 a bogus assert which means that you may not initialise a 0-length
2215 string unless you provide a non-NULL pointer. This prevented
2216 you from marshalling messages containing zero-length arrays in
2219 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2220 from Rob to correct bogus asserts when trying to demarshal an
2221 array and get_fixed_array got you 0 elements. Append nothing to
2222 the GArray in this case.
2224 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2225 an empty array via the glib bindings. Without all of the above
2226 patches, this new test fails.
2228 2006-02-16 Robert McQueen <robot101@debian.org>
2230 * glib/dbus-gmain.c: Make the previous commit compile.
2232 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2233 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2234 specify sender_keyword="foo", path_keyword="bar" when adding
2235 a signal listener, so that you can bind to signals generically
2236 but still do something useful in your callback.
2238 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2239 chars so that they're not cast to chars and made negative. Thanks
2240 to Jakub Stachowski for reporting this and testing the fix.
2242 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
2245 * glib/dbus-gmain.h:
2246 (dbus_g_connection_open): new method for openning
2247 a connection to an arbitrary address in the glib bindings
2249 * ChangeLog: checkin last entry which doesn't seem to be commited
2251 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
2253 * tools/dbus-launch.c: Fixed sh syntax output
2255 2006-02-13 Robert McQueen <robot101@debian.org>
2257 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2258 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2259 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2260 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2261 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2262 missing piece of the glib bindings jigsaw puzzle. This modifies
2263 the existing specialised types to have N type parameters (rather
2264 than the current 1 or 2 for arrays and dictionaries respectively).
2265 You can then use this to get a glib type to represent any arbitrary
2266 D-Bus struct type using dbus_g_type_get_struct. The only
2267 implementation of these types is with GValueArrays as before,
2268 but it's now possible to store these in arrays, emit them in
2271 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2273 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2274 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
2275 <thiago.macieira at trolltech.com>
2277 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2279 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2280 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2282 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2284 * bus/connection.c (bus_connections_expect_reply): Make
2285 pending reply limit not common to all connections (Bug #5416)
2286 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2288 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2290 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2292 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2294 * gcj/Makefile.am: point to correct jar command (Bug #4529)
2295 patch from Doug Goldstein <cardoe at gentoo.org>
2297 2006-02-09 Joe Shaw <joeshaw@novell.com>
2299 * mono/Arguments.cs: Fix a magic number in the mono bindings
2300 that doesn't work on 64 bit arches. Patch from Peter Johanson.
2302 2006-01-27 Robert McQueen <robot101@debian.org>
2304 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2305 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2306 when generating the client-side methods, instead of overloading
2307 CSymbol which broke everything horribly. My apologies.
2309 2006-01-27 Robert McQueen <robot101@debian.org>
2311 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2312 by me and Rob Taylor to add a simple_free function to D-Bus map
2313 and collection types, which allows those types which can be freed
2314 with a GDestroyNotify (such as GHashTables and GArrays, but not
2315 GPtrArrays) to be stored as the values in hashtables.
2317 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2318 Patch by Rob Taylor to add nested dicts to the glib tests to check
2319 the above code works, and appears not to leak when called repeatedly.
2321 2006-01-27 Robert McQueen <robot101@debian.org>
2323 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2324 to free a D-Bus allocated string with dbus_free () instead of
2327 2006-01-27 Iain Holmes <iain@openedhand.com>
2329 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2330 method from being called multiple times.
2332 2006-01-19 Robert McQueen <robot101@debian.org>
2334 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2335 <rob.taylor@collabora.co.uk> to add support for generating bindings
2336 to arrays that are represented as GPtrArrays rather than GArrays (ie
2337 size-variable things, such as strings, objects, structs, etc).
2339 2006-01-05 Robert McQueen <robot101@debian.org>
2341 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2342 <ricardo.kekki@movial.fi> to make it possible to inherit from
2343 DBusGProxy, by splitting the DBusGProxy struct into a public part and
2344 a private part, and moving the setting of the DBusGProxyManager into a
2345 connection property, allowing proper GObject construction.
2347 2006-01-05 Robert McQueen <robot101@debian.org>
2349 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2350 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2351 annotations when generating glib client bindings.
2353 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2355 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2357 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2359 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2361 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2363 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2365 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2367 2005-12-19 Ross Burton <ross@openedhand.com>
2369 * doc/dbus-tutorial.xml:
2370 Document the Glib client-side bindings, and list all possible annotations.
2372 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2374 * dbus/bus.c (dbus_bus_release_name): Add documentation
2376 2005-12-06 Robert McQueen <robot101@debian.org>
2378 * python/service.py: s/sucessful/successful/ so we're allocating to
2379 and reading from the same variable. Oops.
2381 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2385 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2387 * test/qt/Makefile.am: build from srcdir
2389 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2390 Note - this code is wrong and needs to be fixed by the Qt binding
2391 developers. The flags should be treated as bitfields and not enums.
2393 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2395 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2397 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
2398 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
2401 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2403 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2404 method for getting messages off the bus in the absence of a
2405 mainloop. This method is much like
2406 dbus_connection_read_write_dispatch except it does not dispatch
2407 the messages to a registered filter function. Instead it
2408 allows a developer to process messages by directly popping
2411 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2413 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
2414 the parser to continue instead of returning error
2415 (bus_desktop_file_load): Do not free parser data when
2416 parse_section_start or parse_key_value fails because it was
2417 already freed by parser_free (patch from Carlos Garcia Campos
2418 <carlosgc at gnome.org>)
2420 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2422 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2423 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2424 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2425 test/test-segfault.c, test/test-utils.c,
2426 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2427 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2428 Various cleanup of dead code and compiler warnings (patch from
2429 Kjartan Maraas <kmaraas at gnome.org>)
2431 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2433 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2434 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2436 2005-11-27 Robert McQueen <robot101@debian.org>
2438 * python/dbus_bindings.pyx: Repair my previous commit which reverted
2439 part of the preceding one. Oops. Merge patch by Johan Hedberg
2440 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2441 on big-endian platforms.
2443 * test/python/test-client.py: Add some 16-bit integers to the test
2446 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
2448 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2449 method return message for property getters
2451 2005-11-27 Robert McQueen <robot101@debian.org>
2453 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2454 with type v of an instance of dbus.Variant(foo, type='x') caused
2455 it to be boxed twice before sending over the bus.
2457 * python/dbus_bindings.pyx, python/service.py,
2458 test/python/test-client.py: Update the constants for the new
2459 request_name flags, and update comments/test cases now that queueing
2460 is the default action.
2462 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2465 - Change version to 0.60 for impending release
2466 - upped the sonames because of ABI and API breakage
2468 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2470 * configure.in: Add test/name-test/Makefile to the generated
2473 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2474 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2475 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2476 not to queue an ower if it can't be the primary owner
2478 * bus/bus.h: Add new internal BusOwner struct
2480 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2481 to bus_registry_ensure and don't set the prohibit_replacement flag
2482 since they are now set per BusOwner and not per name.
2483 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
2484 that returns the list of connections in a name's connection queue
2486 * bus/services.c (struct BusService): remove prohibit_replacement field
2487 (struct BusOwner): new struct for keeping track of queued connections
2488 and their associated flags for the queue
2489 (struct BusRegistry): add a BusOwner memory pool
2490 (bus_registry_new): initialize the BusOwner memory pool
2491 (bus_registry_unref): free the BusOwner memory pool
2492 (_bus_service_find_owner_link): new internal method for
2493 searching the queue for a specific connection
2494 (bus_owner_set_flags): new method for adding setting the flags on a
2496 (bus_owner_new): new method that creates a BusOwner object from the
2497 pool and sets its flags
2498 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2499 (bus_registry_ensure): Add the flags parameter
2500 (bus_registry_acquire_service): Switch from using raw connections to
2501 using the BusOwner struct
2502 Add new state machine for dealing with the new set of flags
2503 (bus_registry_set_service_context_table, struct OwnershipCancelData,
2504 cancel_ownership, free_ownership_cancel_data,
2505 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
2506 restore_ownership, free_ownership_restore_data,
2507 add_restore_ownership_to_transaction): Switch to using BusOwner
2508 instead of raw connections
2509 (bus_service_add_owner): Add flags parameter
2510 Switch to using BusOwner instead of raw connections
2511 Add state machine for dealing with the new set of flags
2512 (bus_service_swap_owner): Swaps the first and second owners in the
2513 queue. Used to make sure proper signals are sent when a service looses
2514 or gains primary ownership. We never insert an owner at the top of the
2515 queue. Instead we insert it in the second position and then swap.
2516 (bus_service_remove_owner): Remove the owner from the queue sending
2517 out the NameLost and NameOwnerChanged signals if the we were the
2519 (bus_service_get_primary_owners_connection): New method that extracts
2520 the connection from the primary owner
2521 (bus_service_get_primary_owner): Returns the BusOwner instead of the
2523 (bus_service_get_allow_replacement): Changed from the old
2524 bus_service_get_prohibit_replacement method. Checks the flags of the
2525 primary owner and returns if it can be replaced or not
2526 (bus_service_set_prohibit_replacement): removed
2527 (bus_service_has_owner): returns TRUE if and owner with
2528 the specified connection exists in the queue
2530 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2531 method that only compiles if tests are enabled. Allows us to get the
2532 unique name of a connection so we can check it against the queue when
2533 doing regression tests
2535 * bus/activation.c (bus_activation_send_pending_auto_activate),
2536 bus/dispatch.c (bus_dispatch),
2537 bus/driver.c (bus_driver_handle_get_service_owner,
2538 bus_driver_handle_get_connection_unix_user,
2539 bus_driver_handle_get_connection_unix_process_id,
2540 bus_driver_handle_get_connection_selinux_security_context),
2541 bus/signals.c (connection_is_primary_owner):
2542 use bus_service_get_primary_owners_connection instead of
2543 bus_service_get_primary_owner
2545 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
2546 _dbus_listen_unix_socket): Calculate the length of the socket
2547 path and use that instead of using a fixed length which was
2548 causing socket names to contain many trailing Nul bytes.
2550 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2551 (dbus_g_method_get_sender): New method for extracting the sender
2552 from a DBusGMethodInvocation
2553 (dbus_g_method_return_get_reply): changed name to
2554 dbus_g_method_get_reply
2555 (dbus_g_method_return_send_reply): changed name to
2556 dbus_g_method_send reply
2558 * doc/dbus-specification.xml: New docs that describe how the new
2559 queueing system works and talks about the changes to the how
2560 we specify socket names
2562 * glib/examples/example-service.c,
2563 glib/examples/example-signal-emitter.c,
2564 glib/examples/statemachine/statemachine-server.c:
2565 Changed the RequestName flags to the new system
2567 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2568 regression test suite for testing various states of the new
2571 2005-11-15 Robert McQueen <robot101@debian.org>
2573 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2574 Taylor to add two methods, dbus_g_method_return_get_reply and
2575 dbus_g_method_return_send_reply, to allow you to get the reply
2576 message from a DBusGMethodInvocation, append arbitrary stuff to it,
2577 and send it. The GLib bindings can't marshal a return value of
2578 something like a(s) if the array is empty - ultimately they should be
2579 made to heed the signature of the out arguments as the Python bindings
2580 now can, but this is a workable interim solution which might have
2583 2005-11-15 Robert McQueen <robot101@debian.org>
2585 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2586 method to org.freedesktop.DBus to release a bus name or give up
2587 waiting in the queue for it.
2589 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2590 dbus_bus_release_name method to send the ReleaseName method calls.
2591 Add constants for the return values to dbus/dbus-shared.h.
2593 * doc/dbus-specification.xml: Document the new ReleaseName method
2594 in the specification.
2596 * python/dbus_bindings.pyx: Add a low-level python binding for the
2597 release name method.
2599 * python/exceptions.py, python/service.py: Make freeing BusName
2600 objects release the name. Add a NameExistsException, and fix a
2601 bug with creating UnknownMethodException.
2603 * test/python/test-client.py: Add tests for freeing BusName
2604 objects causing names to be released.
2606 2005-11-14 Robert McQueen <robot101@debian.org>
2608 * python/service.py: Include the traceback in the error reply when we
2609 send an exception over the bus. _BEST_ _PATCH_ _EVER_
2611 2005-11-14 David Zeuthen <davidz@redhat.com>
2613 Patch from Timo Hoenig <thoenig@suse.de>.
2615 * bus/bus.c: I've recently investigated why the automatic reload
2616 of configuration files does not work as expected.
2618 Currently, reloading configuration files does only work when
2619 running dbus-daemon with --nodaemon. If we are running as daemon
2620 we're hitting a dnotify bug once we fork the process.
2622 We're initializing the dnotify fds before calling fork(). Once
2623 the child process forked it does still have the fds (and they
2624 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2625 getting SIGIO as changes are made to the configuration files.
2627 The attached patch moves the initialization of the dnotify fds to
2628 process_config_postinit(). This is safe for all current code
2629 paths and solves the dnotify disfunction. If we're running
2630 dbus-daemon as daemon the fds for dnotify are now being
2631 initialized after fork() for the child process.
2633 * configure.in: The current configure.in check for dnotify probes
2634 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
2635 match for 'xlinux', too. Additionally I have adapted the configure
2636 option's style to match with the others.
2638 2005-11-14 Robert McQueen <robot101@debian.org>
2640 * python/decorators.py, python/service.py: Add a new argument to the
2641 dbus.service.method decorator called sender_keyword, which if set,
2642 specifies the name of an argument which will be provided the bus
2643 name of the method caller.
2645 * test/python/test-client.py, test/python/test-service.py: Add a
2646 method and test to check the sender_keyword functionality.
2648 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
2650 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
2651 empty reply so blocking calls don't block forever (Patch from Sjoerd
2652 Simons <sjoerd at luon.net>)
2654 * AUTHORS: Add Robert McQueen for his work on the Python
2655 Bindings and other parts of D-Bus
2657 2005-11-07 Robert McQueen <robot101@debian.org>
2659 * python/decorators.py: Change emit_signal function to use the
2660 signature annotation of the signal when marhsalling the arguments from
2661 the service. Fix a bug where the code checking signature length
2662 against argument length referenced the wrong variable.
2664 * python/introspect_parser.py: Avoid adding the type signature of
2665 signal arguments to any methods which occur after them in the
2666 introspection data (!) by making the parser a little more careful
2667 about its current state.
2669 * python/service.py: Remove debug prints from last commit (again :D).
2671 * test/python/test-client.py, test/python/test-service.py: Add test
2672 signals with signature decorators to test the strict marshalling code
2673 gives errors at the right time. Could do with checking the signals
2674 actually get emitted too, given that the test does nothing with
2675 signals at the moment...
2677 2005-11-07 Robert McQueen <robot101@debian.org>
2679 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2680 instances to stop madness of creating new instances representing
2681 the same bus connection all the time, rendering any tracking of
2682 match rules and bus names quite meaningless. Caught a bug where
2683 the private argument to SessionBus() and friends was being passed
2684 in as use_default_mainloop by mistake. Still some problems with
2685 multiple dbus_binding.Connection instances representing the same
2686 low-level connection (eg when you use both SessionBus() and
2687 StarterBus() in same process), but it's a lot better now than it
2690 * python/dbus_bindings.pyx: Add constants with the return values
2691 for bus_request_name().
2693 * python/service.py: Store bus name instances in a per-dbus.Bus cache
2694 and retrieve the same instances for the same name, so deletion can be
2695 done with refcounting. Also now throws some kind of error if you
2696 don't actually get the name you requested, unlike previously...
2698 * test/python/test-client.py: Add tests for instance caching of buses
2699 and bus name objects.
2701 2005-11-04 Robert McQueen <robot101@debian.org>
2703 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2704 marshalling of boolean values. Add some booleans to the values in
2707 * python/decorators.py, python/service.py: Add an 'async_callbacks'
2708 argument to the dbus.service.method decorator, which allows you to
2709 name arguments to take two callback functions for replying with
2710 return values or an exception.
2712 * test/python/test-client.py, test/python/test-service.py: Add test
2713 case using asynchronous method reply functions, both return values and
2714 errors, and from within both the function itself and from a mainloop
2717 * python/decorators.py, python/service.py: Perform checking that the
2718 number of method/signal arguments matches the number of types in the
2719 signature at class loading time, not when you first introspect the
2722 * python/service.py: Remove debug print left by the last commit.
2724 2005-11-03 Robert McQueen <robot101@debian.org>
2726 * python/service.py: Heavy refactoring of method invocation, with
2727 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2728 in favour of a new _message_cb that uses seperate functions for
2729 looking up the method to call, marshalling the return values, and
2730 sending exceptions as errors, and is easier to follow as a
2731 consequence. Fixes some corner cases about returning things that
2732 don't match your declared out_signature, allows exceptions to define
2733 _dbus_error_name and have it be sent over the bus as the error name,
2734 and paves the way for cool stuff like heeding the message no reply
2735 flag, asynchronous method implementations, informing the method of the
2736 sender, and including backtraces in the error messages.
2738 * test/python/test-client.py: Catch and print exceptions thrown in the
2739 async callback tests, rather than passing them to the low-level
2740 bindings to be ignored in a noisy and frustrating manner.
2742 2005-11-03 Robert McQueen <robot101@debian.org>
2744 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2745 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2746 tweak others to be consistent.
2748 * test/python/test-client.py: Tweak output of testInheritance.
2750 2005-10-29 Robert McQueen <robot101@debian.org>
2752 * python/service.py: Major changes to allow multiple inheritance
2753 from classes that define D-Bus interfaces:
2755 1. Create a new Interface class which is the parent class of
2756 Object, and make the ObjectType metaclass into InterfaceType.
2758 2. Patch written with Rob Taylor to replace use of method_vtable
2759 with code that walks the class's __MRO__ (method resolution order)
2760 to behave like Python does when invoking methods and allow
2761 overriding as you'd expect. Code is quite tricky because
2762 we have to find two methods, the one to invoke which has the
2763 right name and isn't decorated with the /wrong/ interface,
2764 and the one to pick up the signatures from which is decorated
2765 with the right interface.
2767 The same caveats apply as to normal multiple inheritance -
2768 this has undefined behaviour if you try and inherit from two
2769 classes that define a method with the same name but are
2770 decorated with different interfaces. You should decorate
2771 your overriding method with the interface you want.
2773 3. Replace grungy introspection XML generation code in the metaclass
2774 with dictionaries that cope correctly with multiple inheritance
2775 and the overriding of methods. This also uses the signature
2776 decorations to provide correct introspection data, including
2777 the debut appearance of the types of your return values. :D
2779 * test/python/test-client.py, test/python/test-service.py: Add a test
2780 case to try invoking an method that overrides one inherited from a
2781 D-Bus interface class.
2783 2005-10-29 Robert McQueen <robot101@debian.org>
2785 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2786 Add checking for the end of struct character when marshalling a
2787 struct in MessageIter.append_strict.
2789 * python/examples/example-service.py,
2790 python/examples/gconf-proxy-service.py,
2791 python/examples/gconf-proxy-service2.py: Update to use gobject
2792 mainloop directly rather than appearing to depend on gtk.
2794 * python/test/test-client.py, python/test/test-server.py: Remove
2795 obsolete and broken test scripts for old bindings. We have up to date
2796 and working tests in test/python/.
2798 2005-10-29 Robert McQueen <robot101@debian.org>
2800 * python/decorators.py: Add optional arguments to the method and
2801 signal decorators to allow you to specify the signature of arguments
2802 and return values. Preserve the doc strings of signal functions in the
2803 decorated version, for pydoc and friends.
2805 * python/dbus_bindings.pyx, python/proxies.py: Replace the
2806 parse_signature_block function with an iterable dbus.Signature()
2807 type. Fix a bug in MessageIter.append_strict where you could append
2808 anything by claiming it was a string.
2810 * python/service.py: Use the out_signature decoration on methods to
2811 marshal return values, meaning you no longer require dbus.Array()
2812 or dbus.Dictionary() to indicate the type when returning empty
2813 arrays or dictionaries. Fix a bug where exceptions which are defined
2814 in __main__ are not turned into error replies.
2816 * test/python/test-client.py, test/python/test-service.py: Add test
2817 for correct marshalling of return values according to out_signature.
2818 Fix a bug in the async call test where the error_handler is missing a
2821 2005-10-29 Robert McQueen <robot101@debian.org>
2823 * glib/Makefile.am, glib/examples/Makefile.am,
2824 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2825 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2827 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2829 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2830 from Ubuntu by Daniel Silverstone to allow specifying match rules on
2833 2005-10-27 Ross Burton <ross@openedhand.com>
2835 * dbus/dbus-marshal-header.c:
2838 * glib/dbus-gobject.c:
2839 Stop compiler warning.
2841 2005-10-25 Ross Burton <ross@openedhand.com>
2844 * dbus/dbus-server-unix.c:
2845 * dbus/dbus-transport-unix.c:
2846 * glib/dbus-gmain.c:
2847 * glib/dbus-gobject.c:
2848 Add some const keywords.
2850 2005-10-25 Ross Burton <ross@openedhand.com>
2852 * doc/dbus-specification.xml:
2853 Document the NoReply annotation.
2855 * glib/dbus-binding-tool-glib.h:
2856 * glib/dbus-binding-tool-glib.c:
2857 Respect the NoReply annotation.
2859 2005-10-24 Robert McQueen <robot101@debian.org>
2861 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2862 derive from unicode instead of str, and encode/decode UTF-8 when
2863 marshalling/unmarshalling bus messages
2865 * python/introspect_parser.py: encode introspection data as UTF-8
2866 before passing the buffer into libxml2
2868 * test/python/test-client.py: add unicode test strings
2870 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2871 ignore generated python test files
2873 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
2875 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2876 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2877 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2879 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2880 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2881 when constructing struct signatures
2883 * python/_dbus.py (Bus): handle private connections using the
2884 private keyword in the constructor. defaults to private=False
2885 (Bus::close): new method to close a connection to the bus
2887 * python/dbus_bindings.pyx (Connection::close): renamed method
2888 was previously called disconnect
2889 (bus_get): now supports getting a private connection
2891 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2892 keyword is set to True. if it is, execute the method without waiting
2894 (ProxyObject::_introspect_execute_queue): new method for executing
2895 all the pending methods that were waiting for the introspect to
2896 finish. this is called when introspect either succeeds or fails
2897 (ProxyObject::_introspect_error_handler): call queued methods
2899 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
2901 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2902 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2904 * python/service.py (Object::_message_cb): handle exceptions correctly
2905 by sending them over the wire to the calling app. This makes sure
2906 the client returns immediately instead of waiting the 15 seconds to
2909 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
2910 Add a test to benchmark how long it takes to introspect a service and
2911 call a method which returns a large element (pretty fast)
2913 * test/python/test-service.py (TestObject::GetComplexArray): new test
2914 method which pushes a lot of data
2916 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2918 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
2919 reclaim memory outside of the loop and use del istead of just setting
2922 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2924 * python/service.py (ObjectType::_reflect_on_signal): Always close
2925 signal tag even when there are no arguments
2927 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2929 * configure.in: Set mono, mono-docs and Qt3 to default
2930 to no instead of auto when building. These bindings do not
2931 have full time maintainers and will not be supported for the
2934 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
2936 patches from Michael Krivoruchko <misha at sun.com>:
2938 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2939 _dbus_connection_message_sent,
2940 _dbus_connection_send_preallocated_unlocked_no_update,
2941 _dbus_connection_pop_message_link_unlocked): handle the case when path
2942 is NULL when calling _dbus_verbose
2944 * configure.in: check for functions getpeerucred and getpeereid
2946 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
2947 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
2948 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
2949 Patch was only tested on Solaris 10 x86 so it might be issues
2950 with other platforms (i.e. BSDs and MacOSX)
2953 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
2955 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
2956 instead of marshal basic so we can handle recursive types in a variant
2958 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2961 * test/glib/test-service-glib.c, test-service-glib.xml
2962 (my_object_echo_variant [EchoVariant],
2963 my_object_process_variant_of_array_of_ints123
2964 [ProcessVariantOfArrayOfInts123]):
2965 Add two test methods
2967 * python/introspect_parser.py: New module for parsing introspect
2970 * python/dbus_bindings.pyx:
2971 (various places): when throwing errors fix to use errormsg instead
2972 of message local variable because Pyrex can get confused with other
2973 message variables (initial patch by Robert McQueen
2974 <robert.mcqueen at collabora.co.uk>)
2975 (MessageIter::parse_signature_block): new method for getting the next
2976 block in a signiture.
2977 (MessageIter::append_strict): new method for appending values strictly
2978 using the passed in signature instead of guessing at the type
2979 (MessageItter:: append_dict, append_struct, append_array): use
2980 signatures to marshal children if the signature is available
2982 * python/exceptions.py (IntrospectionParserException): new exception
2984 * python/proxies.py (ProxyMethod::__call__): Marshal args with
2985 introspected signatures if available, else we fall back to the
2986 old way of doing things.
2987 (ProxyObject::_introspect_reply_handler ): parse introspection data
2989 * python/service.py (ObjectType::_reflect_on_method): Properly
2990 terminate <method> if there are no args in the reflection data
2992 * test/python/test-client.py: add tests for talking with the GLib
2993 test server. This gives us better coverage for introspection since
2994 python to python will always generate arguments as variants. It also
2995 allows us to test the robustness of the GLib bindings and interlanguage
2999 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
3001 * bus/driver.c (bus_driver_handle_introspect): Add signals
3002 to the introspect data. (patch from Daniel P. Berrange
3003 <dan at berrange.com>)
3005 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3007 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3008 _dbus_connection_run_builtin_filters): Changed these to
3009 be unlock_no_update functions and call
3010 _dbus_connection_send_unlocked_no_update instead of
3011 dbus_connection_send to avoid locking errors.
3013 * doc/TODO: Removed the make Ping test TODO
3015 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
3017 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3018 We now copy the message from a DBusError and then free
3019 the error object befor throwing the error
3021 * glib/dbus-glib-tool.c: removed extra comma at the end of the
3022 DBusBindingOutputMode enum which was causing a warning.
3023 #include <time.h> so using time_t is explicitly defined
3025 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
3027 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3029 (internal_bus_get): new method that take over the heavy lifting
3030 of dbus_bus_get and adds the ability to get a private connection
3032 (dbus_bus_get): wrapper to internal_bus_get that provides the same
3033 interface as in previous versions
3034 (dbus_bus_get_private): new method that is a wrapper to
3035 internal_bus_get to get a private connection to the bus
3038 (dbus_bus_get_private): add as a public libdbus interface
3040 - dbus-1.pc.in: output system_bus_default_address and
3041 sysconfdir variables so apps can use them when compiling
3043 2005-09-23 Harald Fernengel <harry@kdevelop.org>
3044 * dbus/qt: New Qt bindings
3046 2005-09-12 Waldo Bastian <bastian@kde.org>
3048 * dbus/dbus-marshal-validate.c,
3049 doc/dbus-specification.xml, test/Makefile.am,
3050 test/test-names.c: allow hyphens in bus names.
3052 2005-09-11 Mark McLoughlin <mark@skynet.ie>
3054 * test/data/auth/fallback.auth-script: we don't
3055 retry the EXTERNAL method when we know its going
3058 2005-09-11 Mark McLoughlin <mark@skynet.ie>
3060 * dbus/dbus-connection-internal.h: rename
3061 (add|remove|toggle)_(watch|timeout) to unlocked()
3063 * dbus/dbus-connection.c: ditto.
3065 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3066 Update some callers for the renaming.
3068 2005-09-10 Mark McLoughlin <mark@skynet.ie>
3070 * dbus/dbus-auth.c: (record_mechanisms): don't
3071 retry the first auth mechanism because we know
3072 we're just going to get rejected again.
3074 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3075 Fix thinko ... and what a nasty little bugger to
3076 track down you were ...
3078 * dbus/dbus-connection.c:
3079 (_dbus_connection_add_watch),
3080 (_dbus_connection_remove_watch): add note about
3081 these needing the connection to be locked.
3082 (_dbus_connection_get_dispatch_status_unlocked):
3083 set status to DATA_REMAINS when we queue the
3084 disconnected message.
3087 (bus_dispatch): fix warning.
3088 (check_existent_service_no_auto_start):
3089 Expect ChildSignaled error too.
3090 (check_existent_hello_from_self): fix another
3093 2005-09-08 Joe Shaw <joeshaw@novell.com>
3095 Patches from James Willcox <snorp@snorp.net>
3097 * mono/Makefile.am: Add Int16.cs and UInt16.cs
3099 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3100 support array "out" parameters.
3102 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3103 for 16-bit int support.
3105 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
3109 * Patch from Steve Grubb:
3110 - bus/activation.c (bus_activation_service_reload_test): clean up
3112 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
3113 - dbus/dbus-message-factory.c (generate_special): fix a couple of
3114 buffer overflows in the test suite. This is non critical because
3115 it can not be exploited and this code is only run when doing a
3118 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3119 - configure.in: Don't check and link against kdecore, only qt headers
3120 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3121 - gcj/org/freedesktop/dbus/Makefile.am:
3122 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3123 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3124 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3125 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3126 - tools/Makefile.am: Add platform extentions to binaries
3127 (i.e. .exe on windows)
3130 - Make it so if no suitable version of python is found we only
3131 disable building python instead of exiting the configure script
3132 - Require version 2.4 of glib for glib bindings
3133 - Up version to 0.50
3135 * python/__init__.py: Sync version with libdbus to (0,50,0)
3137 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3139 * dbus/dbus-object-tree.c (find_subtree_recurse):
3140 a couple of optimizations (bug #710):
3141 - do a binary search in the tree
3142 - insert a new child at the right place directly, no need for
3144 - do the "double alloc" thing when allocating children
3146 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
3148 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3150 * python/dbus_bindings.pyx: Memory management foo
3151 (global): remove hacky _user_data_references global list
3152 (GIL_safe_cunregister_function_handler): userdata now stuffed into
3153 tuples. Unref user_data
3154 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3155 (Connection::__del__): Remove and replace with __dealloc__ method
3156 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
3157 to keep tuple from being deallocated instead of the global var hack
3158 (Connection::register_object_path): Stuff user_data into a tuple.
3159 Use Py_INCREF to keep tuple from being deallocated instead of the
3161 (Connection::register_fallback): Stuff user_data into a tuple.
3162 Use Py_INCREF to keep tuple from being deallocated instead of the
3164 (GIL_safe_pending_call_notification): Don't unref the message
3165 because it gets unreffed when going out of scope. Py_XDECREF
3167 (PendingCall::__del__): Remove and replace with __dealloc__ method
3168 (PendingCall::set_notify): ref the pending call because we will
3169 need it to stick around for when the notify callback gets called
3170 (Message::__del__): Remove and replace with __dealloc__ method
3172 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
3173 gthreads_init to match up with the dbus call
3175 * python/glib.py (init_threads): Changed to threads_init to match
3176 up with gobject.threads_init(). init_threads is kept for backwards
3177 compat but will most likely be deprecated in the future
3179 * test/python/test-client.py:
3180 - revamp to use Python's unittest functionality
3181 - add async call tests
3182 - setup threads in glib and dbus so we make sure locks are working
3184 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3186 * python/dbus_bindings.pyx
3187 (_pending_call_notification, cunregister_function_handler,
3188 cmessage_function_handler): All callback functions have been rearranged
3189 to workaround a bug in Pyrex when working with the GIL which is Python's
3190 global lock when dealing with threads. They have been split into
3191 a wrapper function (which assumes the name of the old function) and
3192 a _GIL_safe_<function name> function which contains the functionality
3193 of the old function. This ensures that Pyrex does not write code
3194 the lock is released.
3197 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3199 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3200 GIL global lock when calling back into Python
3202 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
3206 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3208 * bus/policy.c (bus_policy_allow_user): change default "user is
3209 allowed" to be "user has same uid as the bus itself"; any
3210 allow/deny rules will override.
3212 * bus/session.conf.in: don't allow all users, since now by default
3213 the user that ran the bus can connect.
3215 2005-08-26 Colin Walters <walters@verbum.org>
3217 * tools/dbus-print-message.c (print_message): Flush stdout
3218 after printing a message, so that redirecting to a file, then
3219 hitting Ctrl-C works.
3221 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
3223 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3224 (EmptyMessage): new class that subclasses Message. This is a workaround
3225 to a Pyrex bug that fails to call __del__ when the Message object goes out
3226 of scope. For some reason subclassing Message fixes this bug
3227 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3228 - s/Message(_create=0)/EmptyMessage everywhere else
3230 * test/python/test-{server|client}.py: add the python/.libs directory
3231 to the lookup path so dbus_bindings and dbus_glib_bindings don't
3232 get picked up from the system
3234 2005-08-25 Colin Walters <walters@verbum.org>
3236 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3237 to Ryan Lortie for the suggestion.
3239 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3241 * test/python: Add python regression test
3243 * configure.in: Add test/python/Makefile
3245 * test/Makefile.am: Add the python directory to SUBDIRS
3247 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3252 (Interface::connect_to_signal): propigate keywords for match on args
3253 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3255 * python/proxies.py (ProxyObject::connect_to_signal):
3256 propigate keywords for match on args
3258 * Makefile.am: point everything to pyexecdir since python borks
3261 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3265 2005-08-23 Colin Walters <walters@verbum.org>
3267 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3269 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3271 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3272 to fix some wranings. We now use dbus_bindings.DBusConnection instead
3273 of defining DBusConnection ourselves.
3275 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
3277 * python/dbus.pth: New path file to fix up problems when installing
3278 c libraries to lib64 and python files to lib.
3280 * python/Makefile.am: install dbus.pth in the correct spot
3282 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
3283 * ChangeLog: clean up my last entry a bit
3285 * doc/introspect.xsl: New stylesheet for converting introspection data
3286 into browser renderable xhtml. Contributed by Lennart Poettering.
3288 * doc/introspect.dtd: Fixups in the introspect format from Lennart
3291 * doc/dbus-tutorial.xml:
3292 - Add Colin Walter to the Authors section for authoring the GLib
3294 - Add descriptions of the new signature and type functionality
3295 in the Python complex type mapping section
3296 - Add a sidenote on the new args matching functionality in
3298 - Fixed up some of the examples to use the gobject.MainLoop
3302 (Bus::_create_args_dict): New. Converts a hash of arg matches
3303 to a more useable format
3304 (Bus::add_signal_receiver): add a **keywords parameter for catching
3305 arg match parameters
3306 (Bus::remove_signal_receiver): add a **keywords parameter for catching
3307 arg match parameters
3309 * python/matchrules.py:
3310 (MatchTree::exec_matches): Check for arg matches
3311 (SignalMatchRule::add_args_match): New method
3312 (SignalMatchRule::execute): Added args_list parameter as an optimization
3313 so we don't have to marshal the args more than once
3314 (SignalMatchRule::match_args_from_list): New method that checks to see
3315 if the rule's arg matches match an argument list. Only arguments
3316 set in the rule are checked.
3317 (SignalMatchRule::match_args_from_rule): New method that checks to see
3318 if the rule's arg matches match another rule's. All args have to match
3319 in order for this method to return true. If either rule has more args
3320 then it is not a match.
3321 (SignalMatchRule::is_match): Add args match
3322 (SignalMatchRule::repr): Add args to the final output if they exist
3324 2005-08-17 Ross Burton <ross@burtonini.com>
3326 * glib/dbus-gproxy.c:
3327 (dbus_g_proxy_call_no_reply): unref the message once sent.
3328 (dbus_g_proxy_call): protect against NULL proxy.
3330 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
3332 * python/__init__.py: Version updated (0, 43, 0)
3334 * python/dbus_bindings.pyx:
3335 - Fixed type objects to have self passed into __init__
3336 - Added the Variant type
3337 - Add the ability to specify types or signatures for Array, Variant
3339 (Connection::send_with_reply_handlers): return a PendingCall object
3340 (_pending_call_notification): handle the case when an error is returned
3341 without an error message in the body
3342 (MessageIter::get_boolean): return True or False instead of an integer
3343 (MessageIter::python_value_to_dbus_sig): add direct checking of types
3344 and add checks for objects with embeded signatures or types (Array,
3345 Variant and Dictionary)
3346 (MessageIter::append_byte): handle case when the value is a dbus.Byte
3347 (MessageIter::append_dict): handle embeded types or signatures
3348 (MessageIter::append_array): handle embeded types or signatures
3349 (MessageIter::append_variant): new method
3351 * python/proxies.py:
3352 (DeferedMethod): New. Dummy executable object used when queuing calls
3353 blocking on introspection data
3354 (ProxyMethod::__call__): add the timeout keyword for specifying longer
3355 or shorter timeouts for method calls
3356 (ProxyObject): Add first pass at an introspection state machine
3357 (ProxyObject::__init__): Add introspect keyword for turing off an on
3359 (ProxyObject::_Introspect): Internal Introspect call that bypasses
3360 the usual mechanisms for sending messages. This is to avoid a deadlock
3361 where the Intospect call would be queued waiting for the Introspect
3363 (ProxyObject::_introspect_reply_handler): New. This method is called
3364 when introspection returns with no error
3365 (ProxyObject::_introspect_error_handler): New. This method is called
3366 when introspection encounters an error
3367 (ProxyObject::__getattr__): Code to handle different introspection
3368 states. Queue async calls or block blocking calls if we are
3369 introspecting. Pass through as normal if we are not or are done with
3372 * python/service.py: Import signal and method from decorators.py
3374 * python/types.py: Add Variant type
3376 2005-08-16 Colin Walters <walters@verbum.org>
3378 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3379 DBusError message is NULL.
3381 2005-08-09 Havoc Pennington <hp@redhat.com>
3383 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3384 malloc'd copy of the name parameter
3386 2005-08-09 Havoc Pennington <hp@redhat.com>
3388 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3389 warning if the reply serial is set to 0
3391 2005-08-04 Colin Walters <walters@verbum.org>
3393 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3394 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3395 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3396 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3397 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3398 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3399 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3400 * glib/dbus-gvalue.h (dbus_g_value_types_init)
3401 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3402 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3404 Prefix name with _ to ensure they're not exported. All callers
3407 * glib/dbus-gvalue.c (typecode_to_gtype)
3408 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3409 (signature_iter_to_g_type_dict)
3410 (signature_iter_to_g_type_array)
3411 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3412 (dbus_gtypes_from_arg_signature):
3413 Move to dbus-gsignature.c.
3415 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3416 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3417 (dbus_binding_tool_output_glib_client): Ditto.
3419 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3420 and dbus-gsignature.h
3422 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3425 2005-08-03 Colin Walters <walters@verbum.org>
3427 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3428 catch any incompatible changes accidentally made.
3430 2005-08-03 Havoc Pennington <hp@redhat.com>
3432 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3433 typo, from Julien Puydt
3435 * bus/connection.c (bus_connection_disconnected): we were always
3436 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3438 2005-08-01 Colin Walters <walters@verbum.org>
3440 Patch from Joe Markus Clarke:
3442 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3445 2005-08-01 Colin Walters <walters@verbum.org>
3447 Patch from Joe Markus Clarke:
3449 * tools/dbus-send.c (main):
3451 Don't use C99 style initializers (bug #3933).
3453 2005-08-01 Colin Walters <walters@verbum.org>
3455 Patch from Joe Markus Clarke:
3457 * glib/dbus-gvalue.c (dbus_g_value_types_init):
3458 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
3459 * glib/dbus-gobject.c (write_interface):
3461 Don't use C99 style initializers (bug #3933).
3463 2005-07-31 Havoc Pennington <hp@redhat.com>
3465 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3466 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3468 2005-07-30 Havoc Pennington <hp@redhat.com>
3470 * fix a bunch of Doxygen warnings and mistakes
3472 2005-07-30 Havoc Pennington <hp@redhat.com>
3474 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3475 DBUS_BUILD_TESTS since it's now used in production code
3477 2005-07-29 Havoc Pennington <hp@redhat.com>
3479 * test/glib/test-profile.c (write_junk): initialize the junk
3480 buffer so valgrind doesn't have a breakdown
3482 2005-07-29 Havoc Pennington <hp@redhat.com>
3484 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3485 (match_rule_matches): remove unused arg
3486 (test_matching): add tests for match_rule_matches()
3488 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3489 do arg0='foo' arg5='bar' in the match rules
3490 (match_rule_matches): don't match if the arg0='foo' doesn't match.
3492 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3494 2005-07-29 Ross Burton <ross@openedhand.com>
3496 * dbus/dbus-connection.c:
3497 Don't create a DBusCondVar which is never used.
3499 2005-07-27 Ross Burton <ross@openedhand.com>
3501 * dbus/dbus-message.c:
3502 Reduce the size of the maximum cached message to 10K.
3504 2005-07-25 Ross Burton <ross@openedhand.com>
3506 * glib/dbus-gproxy.c:
3507 Remove matches when all proxies are unregistered.
3509 2005-07-24 Colin Walters <walters@verbum.org>
3511 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3512 typedata; recursive arrays won't have it.
3514 * test/glib/test-dbus-glib.c:
3515 * test/glib/test-service-glib.c:
3516 * test/glib/test-service-glib.xml: Add recursive arrays tests.
3518 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
3520 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3521 proxies.py, service.py: Cleanup of code after running it through the
3522 pyflakes code checker mostly dealing with undefined names.
3523 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3525 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3527 * NEWS: Update to 0.35.2
3529 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3531 * python/_dbus.py: Remove import of the dbus.services
3532 module as it no longer exists (patch from Dimitur Kirov)
3534 * python/service.py (Object::__init__): Fixed typo
3535 s/name/bus_name (patch from Dimitur Kirov)
3537 * python/examples/example-signal-emitter.py: import dbus.glib
3538 to get the main loop and use glib mainloop instead of gtk so
3539 X doesn't have to be running.
3541 * python/examples/example-signal-recipient.py: import dbus.glib
3542 to get the main loop and use glib mainloop instead of gtk so
3543 X doesn't have to be running. Import the decorators module
3546 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
3547 didn't pick up on but are needed to build
3549 * configure.in: upped version to 0.35.2
3551 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3552 added Colin Walters' SELinux API rename patch from head
3553 s/unix sercurity context/selinux security context/
3555 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
3557 * python/Makefile.am: dbus_binding.pxd.in should be included
3558 in EXTRA_DIST not dbus_binding.pxd
3559 fix up $(srcdir) hopefully for the last time
3561 * NEWS: Update to 0.35.1
3563 2005-07-16 Colin Walters <walters@verbum.org>
3565 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3566 from bus_driver_handle_get_connection_unix_security_context. Update for
3568 (message_handlers): Update for renames.
3570 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3571 _dbus_string_init failure correctly.
3572 (bus_selinux_append_context): Convert SID to context. Append it
3574 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3577 * bus/selinux.h: Update prototype.
3579 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3580 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3582 2005-07-15 Colin Walters <walters@verbum.org>
3584 * doc/TODO: Add note about convenience wrappers.
3586 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3588 * NEWS: Update to 0.35
3590 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3592 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3593 so distcheck doesn't fail
3595 * glib/examples/Makefile.am: Add example-service.xml and
3596 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3598 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3599 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3601 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3602 compiler looks in the right places during distcheck
3604 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3606 * glib/example/Makefile.am: Fix a typo which cause make distcheck
3609 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3611 * python/examples/example-service.py,
3612 python/examples/example-signal-emitter.py: Fixed up examples
3615 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3617 * python/__init__.py: Upped to version (0,42,0) because of
3620 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3622 * ChangeLog: fix date in last entry
3624 * configure.in, bus/system.conf.in: add the ability to configure
3625 the system bus user at compiletime with the --with-dbus-user flag
3626 (patch from Kristof Vansant)
3628 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3630 * bus/dispatch.c, test/test-service.c: Add testcase
3631 for sending messages to oneself (TODO item).
3633 * python/service.py (class Object): Swap ordering of bus_name
3634 and object_path parameters to better support inheritance.
3636 * doc/dbus-tutorial.xml: change Python docs to reflect change
3637 in parameter ordering and fix the inheritance section.
3639 * doc/TODO: remove sending message to oneself TODO item
3641 2005-07-15 Ross Burton <ross@openedhand.com>
3643 * glib/dbus-gproxy.c:
3644 Fix a leak when calling methods via the proxy.
3646 2005-07-15 Colin Walters <walters@verbum.org>
3648 * bus/selinux.c (bus_selinux_append_context): Wrap in
3651 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3653 * python/_dbus.py (Bus::remove_signal_receiver):
3654 don't add a callback to the match if none has been passed in
3656 * python/matchrules.py (SignalMatchTree::remove): if the rule
3657 being matched does not have a callback treat it as a wildcard
3660 * doc/dbus-tutorial.xml: Add Python tutorial
3662 2005-07-14 Colin Walters <walters@verbum.org>
3665 (bus_driver_handle_get_connection_unix_security_context): New function.
3666 (message_handlers): Add.
3668 * bus/selinux.c (bus_selinux_append_context): New function; appends
3669 security context to message.
3671 * bus/selinux.h: Prototype.
3673 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3675 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3677 * bus/activation.c: clean up all tabs to be 8 spaces
3678 (bus_activation_activate_service): make sure we clean up
3681 * bus/dispatch.c: clean up all tabs to be 8 spaces
3682 (check_shell_fail_service_auto_start): New function
3683 tests to make sure we get fail properly when trying to auto start a service
3684 with a faulty command line
3685 (check_shell_service_success_auto_start): New function tests to make sure
3686 auto started services get the arguments on the command line
3688 * test/test-shell-service.c: Added service for testing auto-starting with
3689 command line arguments
3691 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
3692 test/data/valid-service-files/debug-shell-echo-success.service.in:
3693 Added service files for testing auto-starting with command line arguments
3695 * */.cvsignore: added a bunch of generated files to various .cvsignore files
3697 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
3699 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3701 * dbus/Makefile.am: added new files to build.
3703 * bus/activation.c (bus_activation_activate_service): support
3704 activation commands with parameters.
3706 * test/shell-test.c: added test program for the shell parsing
3709 2005-07-13 David Zeuthen <davidz@redhat.com>
3711 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3712 64 bit signed and unsigned parameters
3714 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
3716 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3718 * python/service.py (class Name): renamed BusName to make it clearer
3719 what the object is for (a name on the bus)
3721 * python/examples/example-service.py,
3722 python/examples/example-signal-emitter.py: change the Name object to
3725 2005-07-12 Colin Walters <walters@verbum.org>
3727 Patch from Jim Gettys <Jim.Gettys@hp.com>.
3729 * tools/dbus-launch.c: Include sys/select.h.
3731 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
3732 * python/dbus_bindings.pyx.in: removed
3734 * python/dbus_bindings.pyx: Added.
3735 - Fixed some memleaks (patch from
3736 Sean Meiners <sean.meiners@linspireinc.com>)
3737 - Broke out the #include "dbus_h_wrapper.h" and put it in its
3738 own pxd file (Pyrex definition)
3739 - Broke out glib dependancies into its own pyx module
3741 * python/dbus_bindings.pdx: Added.
3742 - Defines C class Connection for exporting to other modules
3744 * python/dbus_glib_bindings.pyx: Added.
3745 - New module to handle lowlevel dbus-glib mainloop integration
3747 * python/glib.py: Added.
3748 - Registers the glib mainloop when you import this module
3750 * python/services.py: Removed (renamed to service.py)
3752 * python/service.py: Added.
3753 - (class Server): renamed Name
3755 * python/__init__.py: Bump ro version (0,41,0)
3756 -don't import the decorators or service module
3757 by default. These now reside in the dbus.service namespace
3759 * python/_dbus.py (Bus::__init__): Add code run the main loop
3760 setup function on creation
3762 * python/examples/example-service.py,
3763 python/examples/example-signal-emitter.py: update examples
3765 * python/examples/gconf-proxy-service.py,
3766 python/examples/gconf-proxy-service2.py: TODO fix these up
3768 * doc/TODO: Addition
3769 - Added a Python Bindings 1.0 section
3770 - added "Add match on args or match on details to match rules"
3773 2005-07-12 Colin Walters <walters@verbum.org>
3775 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
3776 (statemachine-glue.h):
3777 * glib/examples/Makefile.am (example-service-glue.h)
3778 (example-signal-emitter-glue.h):
3779 * glib/Makefile.am (dbus-glib-error-switch.h):
3780 Add libtool --mode=execute so we use the built library instead
3781 of any installed one.
3783 2005-07-11 Colin Walters <walters@verbum.org>
3785 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3786 (dbus_g_value_types_init): Remove assertion.
3787 (dbus_g_value_get_g_type, dbus_g_value_open)
3788 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3789 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3790 functions related to DBusGValue. Now we marshal/demarshal
3791 structures as GValueArray.
3792 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3794 (signature_iter_to_g_type_array): Don't call
3795 signature_iter_to_g_type_struct.
3796 (signature_iter_to_g_type_struct): Delete.
3797 (dbus_gvalue_to_signature): Delete.
3798 (dbus_gvalue_to_signature): New function with same name as other
3799 one; we can convert structures to signatures.
3800 (demarshal_valuearray): New function.
3801 (get_type_demarshaller): Use it.
3802 (demarshal_recurse): Delete.
3803 (marshal_proxy): New function.
3804 (marshal_map): Warn if we can't determine signature from type.
3805 (marshal_collection_ptrarray): Ditto.
3806 (marshal_collection_array): Ditto.
3807 (get_type_marshaller): Use marshal_valuearray.
3808 (marshal_recurse): Delete.
3809 (_dbus_gvalue_test): Add some tests.
3811 * dbus/dbus-glib.h (struct _DBusGValueIterator):
3812 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3813 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3814 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3815 (dbus_g_value_free): Remove prototypes.
3817 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3820 * glib/examples/example-service.c:
3821 * glib/examples/example-client.c: Implement GetTuple.
3823 * test/glib/test-dbus-glib.c:
3824 * test/glib/test-service-glib.c:
3825 * test/glib/test-service-glib.xml: Add structure tests.
3827 2005-07-10 Colin Walters <walters@verbum.org>
3829 * doc/TODO: Knock off some GLib items with this patch.
3831 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
3832 (_dbus_gvalue_signals_error): New functions.
3834 * glib/dbus-gvalue-utils.h: Prototype them.
3836 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3837 and change to not output const/retval flags for input args. All
3839 (invoke_object_method): Refactor to handle return values. Add
3840 some more comments in various places. Remove debug g_print.
3842 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3844 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3846 (compute_gsignature): New function; refactored from code from
3847 compute_marshaller and compute_marshaller_name. Enhance to
3848 handle return values and async ops more cleanly. Update for
3849 async ops returning NONE instead of BOOLEAN.
3850 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3851 and output appropriate string.
3852 (generate_glue): Handle return value annotation. Also don't dump
3853 constness flag for input arguments.
3855 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3856 files shared between installed library and utilities.
3857 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3858 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3859 binding tool can access gtype utility functions.
3861 * test/glib/test-service-glib.c:
3862 * test/glib/test-service-glib.xml:
3863 * test/glib/test-dbus-glib.c: Add some tests for return values.
3865 2005-07-09 Colin Walters <walters@verbum.org>
3867 * glib/dbus-gparser.c (parse_annotation): Add annotations to
3868 argument if available, not method.
3870 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3871 (invoke_object_method): First, remove some redundant
3872 GValues (object_value, error_value) in favor of working on
3873 array directly. Second, rework constness to be less buggy.
3874 Now we iterate directly over the argument metadata instead
3875 of parallel iterating over output signature and metadata.
3877 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3879 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3880 annotation on input args.
3882 2005-07-09 Colin Walters <walters@verbum.org>
3884 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3887 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3890 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3891 (method_dir_signature_from_object_info): Handle arg_iterate change.
3892 (write_interface): Ditto.
3893 (lookup_object_info): Don't barf if format_version is > 0.
3894 (invoke_object_method): Handle arg constness.
3896 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3897 (arg_info_new): Create.
3898 (arg_info_unref): Destroy.
3899 (arg_info_get_annotations, arg_info_get_annotation)
3900 (arg_info_add_annotation): New functions.
3902 * glib/dbus-gidl.h: Prototype them.
3904 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3905 args, disallow them in properties.
3906 (parse_annotation): Handle arg annotations.
3908 * test/glib/test-service-glib.xml:
3909 * test/glib/test-service-glib.c: Update to make some methods
3912 2005-07-08 Colin Walters <walters@verbum.org>
3914 * test/glib/test-service-glib.xml:
3915 * test/glib/test-service-glib.c:
3916 * test/glib/test-dbus-glib.c: Test a{sv}.
3918 * glib/examples/statemachine/statemachine.c:
3919 * glib/examples/statemachine/statemachine-server.c:
3920 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3921 add progress bar, etc.
3923 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3924 needed anymore due to generic array/map marshalling.
3925 (dbus_g_value_types_init): Don't register basic arrays or the
3927 (dbus_gtype_from_signature_iter): Don't try to recurse into
3929 (dbus_gtype_to_signature): Check collection/map before type
3931 (demarshal_garray_basic): Renamed to demarshal_collection_array.
3932 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3933 generic map creation/append functions instead of hash table
3935 (get_type_demarshaller): Handle maps.
3936 (demarshal_collection): Dispatch on collection type to either
3937 demarshal_collection_ptrarray or demarshal_collection_array.
3938 (get_type_marshaller): Handle maps.
3939 (marshal_collection): Dispatch collection type to either
3940 marshal_collection_ptrarray or marshal_collection_array.
3941 (_dbus_gvalue_test): New test.
3943 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3944 (hash_free_from_gtype): Use it to free GValues.
3945 (hashtable_append): New function.
3946 (ptrarray_append): Fix prototype.
3947 (slist_append): Ditto.
3948 (_dbus_gvalue_utils_test): Extend tests.
3950 * glib/dbus-gtype-specialized.c
3951 (dbus_g_type_specialized_init_append): Renamed from
3952 dbus_g_type_specialized_collection_init_append. Remove const from
3953 value, since we steal it.
3954 (dbus_g_type_specialized_map_append): New function.
3956 * glib/dbus-gtype-specialized.h: Update prototypes.
3957 Add DBusGTypeSpecializedMapAppendFunc.
3959 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3962 * glib/dbus-gtest.h: Prototype it.
3964 2005-07-08 Ross Burton <ross@openedhand.com>
3967 Add DBysGAsyncData for the async bindings.
3969 * glib/dbus-binding-tool-glib.c:
3970 Re-enable the async bindings.
3972 * test/glib/test-dbus-glib.c:
3973 Add a test for the generated async bindings.
3975 2005-07-08 Colin Walters <walters@verbum.org>
3977 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3980 2005-07-08 Colin Walters <walters@verbum.org>
3982 * tools/Makefile.am: Kill of print-introspect in favor of using
3983 dbus-send --print-reply=literal.
3985 * test/glib/test-service-glib.xml:
3986 * test/glib/test-service-glib.c (my_object_get_objs): New test
3989 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3990 (main): Test GetObjs.
3992 * glib/examples/statemachine/Makefile.am:
3993 * glib/examples/statemachine/sm-marshal.list:
3994 * glib/examples/statemachine/statemachine-client.c:
3995 * glib/examples/statemachine/statemachine-server.c:
3996 * glib/examples/statemachine/statemachine-server.xml:
3997 * glib/examples/statemachine/statemachine.c:
3998 * glib/examples/statemachine/statemachine.h:
3999 * glib/examples/statemachine/statemachine.xml:
4003 * glib/examples/example-service.c (main): Move invocation
4004 of dbus_g_object_type_install_info earlier, to emphasize it
4005 should only be done once.
4007 * glib/examples/example-signal-emitter.c (main): Ditto.
4009 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4011 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4012 (dbus_gvalue_marshal): Update prototypes.
4014 * glib/dbus-gvalue.c: Update all marshalling functions to take
4015 const GValue instead of GValue.
4016 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4018 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4020 (dbus_gtype_to_signature): Handle generic collecitons and maps.
4021 Return a newly-allocated string.
4022 (demarshal_proxy, demarshal_object_path, demarshal_object)
4023 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4024 we get the wrong types from message.
4025 (get_type_demarshaller): New function, extracted from
4026 dbus_gvalue_demarshal.
4027 (demarshal_collection): New function, demarshals generic
4029 (dbus_gvalue_demarshal): Just invoke result of
4030 get_type_demarshaller. Throw error if we don't have one.
4031 (marshal_garray_basic): Abort on OOM.
4032 (get_type_marshaller): New function, extracted from
4033 dbus_gvalue_marshal.
4034 (collection_marshal_iterator, marshal_collection): New functions;
4035 implements generic marshalling for an iteratable specialized
4037 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4039 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4041 (ptrarray_value_from_gvalue): Ditto.
4042 (ptrarray_append, ptrarray_free): New functions.
4043 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
4044 (slist_append, slist_end_append, slist_free): New functions.
4045 (dbus_g_type_specialized_builtins_init): Add append fuctions
4046 for GPtrArray and GSList. Register GSList.
4047 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4049 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4051 (dbus_g_type_specialized_collection_init_append)
4052 (dbus_g_type_specialized_collection_append)
4053 (dbus_g_type_specialized_collection_end_append): Prototype.
4054 (DBusGTypeSpecializedCollectionVtable): Add append_func and
4057 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
4058 (dbus_g_type_specialized_collection_append)
4059 (dbus_g_type_specialized_collection_end_append): New functions.
4060 (dbus_g_type_map_value_iterate): Take const GValue.
4061 (dbus_g_type_collection_value_iterate): Ditto.
4063 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4064 _dbus_gvalue_utils_test.
4066 * glib/dbus-gtest.h: Prototype it.
4068 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4069 using uninitialized owner_list.
4070 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4072 (dbus_g_proxy_end_call_internal): Update to use error set
4073 from dbus_gvalue_demarshal instead of setting it here.
4074 (dbus_g_proxy_begin_call): Move return_if_fail here.
4076 * glib/dbus-gobject.c (write_interface): Update for
4077 dbus_gtype_to_signature returning new string.
4079 * configure.in: Add glib/examples/statemachine.
4081 2005-07-08 Joe Shaw <joeshaw@novell.com>
4083 * configure.in: Add a configure option, --with-console-auth-dir
4085 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4086 new setting. Patch from Kay Sievers.
4088 2005-07-06 Colin Walters <walters@verbum.org>
4090 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4091 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4092 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4093 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4094 Delete in favor of dbus_g_proxy_begin_call and
4095 dbus_g_proxy_cancel_call.
4096 (DBusGProxyCall, DBusGProxyCallNotify): New.
4097 (dbus_g_proxy_begin_call): Change prototype to take callback, user
4098 data, and destroy function. This replaces
4099 dbus_g_pending_call_set_notify.
4100 (dbus_g_proxy_cancel_call): Prototype.
4101 (DBusGAsyncData): Delete, shouldn't be needed anymore.
4103 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4105 (struct _DBusGProxyManager): Add bus_proxy member, which is an
4106 internal proxy for calls to the bus. Remove
4107 pending_nameowner_calls, now the internal proxy keeps track.
4108 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4109 pending_nameowner_calls.
4110 (got_name_owner_cb): Update prototype, and use
4111 dbus_g_proxy_end_call.
4112 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4113 (dbus_g_proxy_manager_register): Delete directly libdbus code in
4114 favor of using internal proxy.
4115 (dbus_g_proxy_manager_unregister): Update to use
4116 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4117 (dbus_g_proxy_init): Initialize pending calls map.
4118 (dbus_g_proxy_constructor): New.
4119 (dbus_g_proxy_class_init): Add get/set property functions,
4120 constructor, and add NAME, PATH, and INTERFACE properties.
4121 (cancel_pending_call): New function.
4122 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4124 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4125 (GPendingNotifyClosure): New structure.
4126 (d_pending_call_notify, d_pending_call_free): Moved here from
4128 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4130 (manager_begin_bus_call): New internal function for talking to
4132 (dbus_g_proxy_new): Construct object using GObjet properties.
4133 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4134 Create closure of same, and insert call into map of pending calls.
4135 (dbus_g_proxy_end_call_internal): Take call id instead of pending
4136 call. Look up pending call in current set. Remove it when we've
4138 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4139 (dbus_g_proxy_begin_call): Change API to take callback, user data,
4140 and destroy function directly.
4141 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4142 (dbus_g_proxy_call): Invoke with NULL callback.
4143 (dbus_g_proxy_cancel_call): New function, replaces
4144 dbus_g_pending_call_cancel.
4146 * glib/dbus-gparser.c (validate_signature): Fix call to
4149 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4150 New quark for attaching metadata to GType.
4151 (info_hash): Delete.
4152 (lookup_object_info): Look up using quark.
4153 (dbus_g_object_type_install_info): Check that a type is classed,
4154 not that it's an object. Also just install type data using quark
4155 instead of using global hash.
4157 * glib/dbus-glib.c (dbus_g_pending_call_ref)
4158 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4159 (GPendingNotifyClosure): Delete.
4160 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4161 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4163 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4164 client method generation until we can fix it...
4166 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4167 (load_from_service_thread_func): Ditto.
4169 * tools/dbus-names-model.c (struct NamesModel): Hold
4171 (have_names_notify): Update prototype, use
4172 dbus_g_proxy_cancel_call.
4173 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4175 * tools/dbus-monitor.c (filter_func): Update for print_message
4178 * test/glib/test-dbus-glib.c: Add more tests for async
4179 invocations. Update many begin_call/end_call pairs to just use
4182 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
4183 allows us to dump print-introspect.c.
4185 * tools/dbus-print-message.h (print_message): Add literal argument
4186 to print_message which is intended to allow printing arguments without
4187 metadata like "string=".
4189 * tools/dbus-print-message.c (print_iter): Add literal argument.
4190 (print_message): Allow printing string messages literally.
4192 2005-07-05 Colin Walters <walters@verbum.org>
4194 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4195 Remove value refcount leak, original patch from Jorn Baayen
4196 <jorn@openedhand.com>. Also remove useless extra value in favor
4197 of prepending to value array directly.
4199 2005-07-02 Colin Walters <walters@verbum.org>
4201 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4203 2005-07-01 Colin Walters <walters@verbum.org>
4205 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4207 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4208 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4209 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4210 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4212 2005-06-30 Colin Walters <walters@verbum.org>
4214 * test/glib/test-dbus-glib.c:
4215 * test/glib/test-service-glib.c:
4216 * test/glib/test-service-glib.xml: Update tests for new error
4217 setting bits, also add async tests (patch from Ross Burton).
4219 * test/glib/Makefile.am (test_service_glib_LDADD): Add
4220 DBUS_GLIB_THREADS_LIBS.
4222 * glib/dbus-gproxy.c (get_name_owner)
4223 (dbus_g_pending_call_end_valist): Ditto.
4225 * glib/dbus-gobject.c (error_metadata): New mapping from GError
4226 domain (GQuark) to DBusGErrorInfo.
4227 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4228 quark in error_metadata. Take message interface as default
4229 error message interface.
4230 (gerror_to_dbus_error_message): Pass message interface.
4231 (dbus_set_g_error): Resurrected.
4232 (dbus_g_error_info_free): New function.
4233 (dbus_g_object_type_install_info): Use g_type_class_ref instead
4234 of _peek to actually create the object class if it hasn't been
4236 (dbus_g_error_domain_register): New function.
4238 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4240 * glib/dbus-gparser.c (validate_signature): Ditto.
4242 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4243 (dbus_g_error_domain_register): Prototype.
4245 * glib/dbus-glib.c (dbus_g_error_set): Delete.
4248 2005-06-29 Colin Walters <walters@verbum.org>
4250 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
4251 DBUS_TYPE_G_OBJECT_PATH.
4253 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4254 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4255 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
4256 (dbus_g_object_path_get_g_type): New function.
4257 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4258 to DBUS_TYPE_G_OBJECT_PATH by default.
4259 (demarshal_proxy): Remove unused name variable.
4260 (demarshal_object_path, marshal_object_path): New functions.
4261 (demarshal_proxy_array, marshal_proxy_array): Delete.
4263 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4264 DBUS_TYPE_G_OBJECT_PATH to char *.
4265 (dbus_g_type_get_lookup_function): Map builtin
4266 DBUS_TYPE_G_OBJECT_PATH.
4268 * test/glib/test-dbus-glib.c
4269 * test/glib/test-service-glib.c (my_object_objpath):
4270 Adapt tests to new object path marshalling.
4272 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
4274 * configure.in: force check for Python >= 2.4
4276 2005-06-29 Colin Walters <walters@verbum.org>
4278 Patch from Ross Burton <ross@openedhand.com>
4280 * glib/dbus-gobject.c (invoke_object_method): Unset object
4281 value in all cases, not only in async case.
4283 2005-06-29 Colin Walters <walters@verbum.org>
4285 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4286 name_call for keeping track of any outgoing GetNameOwner call.
4287 Also add for_owner and associated.
4288 (struct _DBusGProxyManager): Add owner_names, which is hash table
4289 that maps a base name to a list of names it owns (that we're
4290 interested in). Add pending_nameowner_calls which is a list of
4291 all outstanding GetNameOwner; avoids us having to iterate over
4292 every proxy. Add unassociated_proxies which keeps track of name
4293 proxies with no associated name owner.
4294 (dbus_g_proxy_manager_unref): Destroy owner_names.
4295 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4297 (find_name_in_info, name_owner_foreach)
4298 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4299 (dbus_g_proxy_manager_monitor_name_owner)
4300 (dbus_g_proxy_manager_unmonitor_name_owner)
4301 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4302 New functions; they manipulate the owner_names mapping.
4303 (got_name_owner_cb): New function.
4304 (get_name_owner): New function, extracted from
4305 dbus_g_proxy_new_for_name_owner.
4306 (dbus_g_proxy_manager_register): For now we need to keep track of
4307 all NameOwnerChanged. Also if the proxy is for a name, if we
4308 don't already know the name owner, queue a new GetNameOwner
4309 request and add it to our list of unassociated proxies. Otherwise
4311 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4312 cancel any pending GetNameOwner call, etc.
4313 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
4314 the owner_names mapping to look up the current names for the
4315 signal source, and dispatch to any proxies for that name.
4316 (dbus_g_proxy_new): Initialize new members.
4317 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4318 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4319 (dbus_g_pending_call_end_valist): New function, extracted from
4320 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
4321 but want to use the GLib infrastructure. Also note how many
4322 arguments in reply were over.
4323 (dbus_g_pending_call_end): New function, just call
4324 dbus_g_pending_call_end_valist.
4325 (dbus_g_proxy_end_call_internal): Just call
4326 dbus_g_pending_call_end_valist.
4328 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4329 of builtin marshaller for STRING_STRING_STRING.
4331 * test/glib/test-dbus-glib.c:
4332 * test/glib/test-service-glib.c:
4333 * test/glib/test-service-glib.xml:
4334 Extend tests to cover name proxies, destruction of owner proxies,
4337 * glib/examples/example-signal-recipient.c
4338 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4340 * tools/dbus-send.c (main): Print D-BUS error name in addition
4343 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
4345 * python/dbus_bindings.pyx.in (cunregister_function_handler,
4346 cmessage_function_handler): Patch from
4347 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4348 by using the Py_GILState_Ensure/Release to synchronize with the
4351 2005-06-28 Ray Strode <rstrode@redhat.com>
4353 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4354 babysitter helper process on last unref, bug #2813.
4356 2005-06-27 Colin Walters <walters@verbum.org>
4358 * test/glib/test-dbus-glib.c:
4359 * test/glib/test-service-glib.c:
4360 * test/glib/test-service-glib.xml:
4361 Test hash table signal emitting.
4363 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4364 types to their fundamental basis types, since this is what
4365 marshallers operate on. Also add an entry for VOID__BOXED.
4366 (dbus_g_object_register_marshaller_array): Convert to fundamental.
4368 2005-06-26 Havoc Pennington <hp@redhat.com>
4370 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4373 2005-06-26 Colin Walters <walters@verbum.org>
4375 * glib/dbus-glib.c (dbus_set_g_error): Delete.
4376 (dbus_g_error_set): New public function from its ashes; used by
4377 both service-side method implementation and GLib bindings
4379 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4380 (_dbus_glib_test): Add some tests.
4382 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4384 * test/glib/test-service-glib.c (my_object_throw_error): Use
4387 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4388 errors thrown by dbus_g_error_set.
4390 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4392 * glib/dbus-gparser.c (validate_signature): Ditto.
4394 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
4395 (dbus_g_proxy_end_call_internal): Ditto.
4397 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4398 converts DBUS_ERROR_x to DBUS_GERROR_x.
4399 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4401 * doc/TODO: Remove error TODO.
4403 * doc/dbus-tutorial.xml: Update with documentation about error
4406 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4407 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4408 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
4410 2005-06-22 Colin Walters <walters@verbum.org>
4412 Patch from Ross Burton <ross@openedhand.com>
4414 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4416 2005-06-20 Colin Walters <walters@verbum.org>
4418 * configure.in: Add glib/examples.
4420 * glib/Makefile.am: Add examples/
4422 * glib/examples/.cvsignore
4423 * glib/examples/Makefile.am
4424 * glib/examples/example-client.c
4425 * glib/examples/example-service.c
4426 * glib/examples/example-service.xml
4427 * glib/examples/example-signal-emitter.c
4428 * glib/examples/example-signal-emitter.xml
4429 * glib/examples/example-signal-recipient.c:
4430 New files; GLib binding examples, ported from
4433 2005-06-20 Colin Walters <walters@verbum.org>
4436 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4439 * glib/dbus-binding-tool-glib.c:
4440 * doc/dbus-tutorial.xml:
4441 * test/glib/test-dbus-glib.c: Update for rename.
4443 2005-06-20 Colin Walters <walters@verbum.org>
4445 Patch suggested by Ross Burton <ross@openedhand.com>
4447 * glib/dbus-gobject.c (export_signals): Free signal name.
4448 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4449 memory leak. Add a bit of documentation.
4450 (dbus_g_method_return_error): Free context, and note we do
4453 2005-06-18 Murray Cumming <murrayc@murrayc.com>
4456 * glib/dbus-gobject.c:
4457 * glib/dbus-gproxy.c:
4458 * glib/dbus-gvalue.c: Predeclare structs as
4459 typedef struct _Something Something instead of
4460 typedef struct Something Something, so we can
4461 redeclare the prototypes. Other GNOME libraries
4464 2005-06-17 Colin Walters <walters@verbum.org>
4466 * tools/dbus-names-model.c (have_names_notify): Fix call
4467 to dbus_g_proxy_end_call.
4469 2005-06-17 Colin Walters <walters@verbum.org>
4471 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4472 spew warnings if we get malformed remote signals.
4474 * glib/dbus-gobject.c (propsig_iterate): New function.
4475 (lookup_object_info): New function, extracted from
4476 lookup_object_and_method.
4477 (introspect_properties, introspect_signals): Delete; these
4478 are merged into write_interface.
4479 (write_interface): Write out signals and properties here;
4480 dump the org.gtk.object stuff and use the interface given
4481 in the introspection data blob. Also fix up property XML.
4482 (lookup_values): New function.
4483 (introspect_interfaces): Gather a mapping from interface to a
4484 list of its methods, signals, and properties, then write out
4486 (lookup_object_and_method): Use lookup_object_info.
4487 (struct DBusGSignalClosure): Add interface.
4488 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4489 we can just use the constant data.
4490 (dbus_g_signal_closure_finalize): Don't free signal name.
4491 (signal_emitter_marshaller): Use interface from signal closure.
4492 (export_signals): Only export signals mentioned in introspection
4494 (dbus_g_connection_register_g_object): Warn if we have no
4495 introspection data for an object.
4496 (funcsig_equal): Remove unused variable.
4497 (dbus_g_object_register_marshaller): Take varargs instead of
4499 (dbus_g_object_register_marshaller_array): New function,
4500 extracted from old dbus_g_object_register_marshaller.
4502 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4503 signals and property data.
4504 (write_quoted_string): New function, extracted from generate_glue.
4505 (generate_glue): Write signals and properties to introspection
4508 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4509 exported_signals and exported_properties.
4510 (dbus_g_object_register_marshaller): Update prototype.
4511 (dbus_g_object_register_marshaller_array): Prototype.
4513 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4515 * test/glib/test-service-glib.c: Add new test signals and method
4518 * test/glib/test-service-glib.xml: Add some test signals.
4520 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4521 and my-object-marshal.h
4522 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4523 my-object-marshal.c.
4524 (my-object-marshal.c, my-object-marshal.h): Implement.
4526 * test/glib/.cvsignore: Update.
4528 * doc/TODO: Remove two GLib TODO items fixed by this
4531 2005-06-16 Colin Walters <walters@verbum.org>
4533 * doc/TODO: Update for GLib bindings.
4535 2005-06-16 Colin Walters <walters@verbum.org>
4537 * glib/dbus-binding-tool-glib.c:
4538 * glib/dbus-gobject.c:
4539 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
4540 from Ross Burton, for his GLib bindings work.
4542 2005-06-16 Colin Walters <walters@verbum.org>
4544 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4545 to iterate instead of walking to G_TYPE_INVALID.
4547 Patch based on a patch from Ryan Gammon.
4549 2005-06-16 Colin Walters <walters@verbum.org>
4551 * bus/bus.c (bus_context_new): Set parser to NULL
4552 after we unref it (Patch from Chris Boscolo, #2174).
4554 2005-06-16 Colin Walters <walters@verbum.org>
4556 * python/dbus_bindings.pyx.in: Import size_t,
4557 __int64_t, __uint64_t, and __signed.
4559 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4560 Define cmsg struct, output it.
4561 (_dbus_read_credentials_unix_socket):
4564 Patch from Joe Markus Clarke for FreeBSD support.
4566 2005-06-16 Colin Walters <walters@verbum.org>
4568 * tools/dbus-send.c (append_array): Use strtok.
4569 (append_dict): New function.
4570 (type_from_name): New function, extracted from main.
4571 (main): Handle sending dicts.
4573 * tools/dbus-print-message.c (print_iter): Print dict
4576 2005-06-16 Colin Walters <walters@verbum.org>
4578 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4579 values as the empty string (#2948).
4581 2005-06-16 Colin Walters <walters@verbum.org>
4584 * mono/doc/Makefile.am:
4585 * test/glib/Makefile.am:
4587 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4589 2005-06-16 Colin Walters <walters@verbum.org>
4591 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4592 header byte order from expected byte order (Patch from Chris Wilson, #3475).
4594 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
4595 Increment pointer after swapping fixed array. Add assertion
4598 2005-06-15 Colin Walters <walters@verbum.org>
4600 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4601 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
4603 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4605 * NEWS: Update to 0.34
4607 2005-06-15 David Zeuthen <davidz@redhat.com>
4609 * configure.in (LT_CURRENT): Revert back to 1 as the library
4610 hasn't changed and we've certainly not committed to protocol
4611 stability yet. All this does is to break ABI. See commit note
4612 from hp@redhat.com 2005-05-05 for details.
4614 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4616 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
4617 (_dbus_connection_run_builtin_filters): New method
4618 (dbus_connection_dispatch): Run the builtin filters which in turn
4619 runs the peer filter which handles Ping messages.
4622 - Ping isn't handled: This patch fixes it
4624 - Add a test case for the Ping message: added TODO item
4626 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4628 * dbus/dbus-message.c:
4629 (dbus_message_has_path): New method
4630 (dbus_message_has_interface): New method
4631 (dbus_message_has_member): New method
4633 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4636 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
4637 the keyring directory is private to the user
4640 - The convenience functions in dbus-bus.h should perhaps have
4641 the signatures that they would have if they were autogenerated
4642 stubs. e.g. the acquire service function. We should also evaluate
4643 which of these functions to include, in light of the fact that
4644 GLib/Qt native stubs will probably also exist.: Punted
4646 - add dbus_message_has_path(), maybe has_member/interface:
4649 - in dbus-keyring.c, enforce that the keyring dir is not
4650 world readable/writable: Fixed in this patch
4652 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4654 * dbus/dbus-marshal-validate.h: Added a new validation
4655 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
4656 out of memory errors when validating signitures
4658 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4659 in places where we previously used DBUS_VALID and a FALSE return
4660 value to indicate OOM
4662 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4663 Use a stack to track the number of elements inside containers. The
4664 stack values are then used to validate that dict entries have only two
4665 elements within them.
4666 (validate_body_helper): check the reason for failure when validating
4669 * dbus/dbus-message.c (load_message): use
4670 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
4671 DBUS_VALID and a FALSE return value to indicate OOM
4673 * doc/TODO: remove "- validate dict entry number of fields" as this
4676 2005-06-14 David Zeuthen <davidz@redhat.com>
4678 * bus/bus.c (process_config_every_time): Drop existing conf-dir
4679 watches (if applicable) and add new watches
4681 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4682 (main): Setup SIGIO signal handler if using D_NOTIFY
4684 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4686 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4687 (merge_included): Also merge conf_dirs list
4688 (bus_config_parser_unref): Clear conf_dirs list
4689 (include_dir): Add directory to conf_dirs list
4690 (bus_config_parser_get_conf_dirs): New function
4692 * bus/dir-watch.[ch]: New files
4694 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4696 * configure.in: Add checks for D_NOTIFY on Linux
4698 2005-06-14 Colin Walters <walters@verbum.org>
4700 * glib/dbus-binding-tool-glib.c:
4701 * glib/dbus-gobject.c:
4702 * glib/dbus-gvalue.c: Fix indentation and brace style.
4704 2005-06-14 Ross Burton <ross@openedhand.com>.
4706 * glib/dbus-glib.h: Make DBusGMethodInvocation
4707 a private structure. Rearrange prototypes a bit.
4709 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4710 documentation for first_arg_type.
4712 * glib/dbus-gobject.c: Move DBusGMethodInvocation
4713 here, add documentation. Move dbus_g_method_return
4714 and dbus_g_method_return_error into public API
4717 2005-06-14 Colin Walters <walters@verbum.org>
4719 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4720 Add missing return statements, noticed by Ross Burton.
4722 2005-06-13 Ross Burton <ross@openedhand.com>.
4724 * glib/dbus-gobject.c: Handle errors on message
4725 demarshalling by sending error message back.
4726 * glib/dbus-gvalue.c: Initialize return variables.
4728 2005-06-13 Colin Walters <walters@verbum.org>
4730 * glib/Makefile.am: Fix thinko in last patch.
4732 2005-06-13 Colin Walters <walters@verbum.org>
4734 * glib/Makefile.am: Move dbus-gtype-specialized.c
4735 and dbus-gtype-specialized.h into a _HEADERS variable,
4738 2005-06-12 Colin Walters <walters@verbum.org>
4740 Async signals and various bugfixes and testing by
4741 Ross Burton <ross@openedhand.com>.
4743 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4744 (dbus_gvalue_genmarshal_name_from_type)
4745 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4746 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4747 (dbus_g_value_types_init, dbus_gtype_from_signature)
4748 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4749 (dbus_gtypes_from_arg_signature): New function prototypes.
4750 (dbus_gvalue_demarshal): Take context and error arguments.
4751 (dbus_gvalue_demarshal_variant): New function.
4752 (dbus_gvalue_demarshal_message): New function.
4753 (dbus_gvalue_store): Delete.
4755 * glib/dbus-gvalue.c:
4757 File has been almost entirely rewritten; now we special-case
4758 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4759 hash tables correctly, etc. Full support for recursive values
4760 is not yet complete.
4762 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4763 argument of signal to G_TYPE_POINTER since we now pass a
4765 (lookup_g_marshaller): Delete in favor of
4766 _dbus_gobject_lookup_marshaller.
4767 (marshal_dbus_message_to_g_marshaller): Use
4768 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4769 to handle remote signal callbacks.
4770 (dbus_g_proxy_new_from_proxy): New function; creates a new
4771 DBusGProxy by copying an existing one.
4772 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4773 (dbus_g_proxy_get_path): New functions.
4774 (dbus_g_proxy_marshal_args_to_message): New function;
4775 factored out of existing code.
4776 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4777 from a varargs array.
4778 (dbus_g_proxy_begin_call_internal): New function.
4779 (dbus_g_proxy_end_call_internal): New function.
4780 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4781 as arguments; simply invoke dbus_g_proxy_begin_call_internal
4782 after collecting args into value array.
4783 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4784 invoke dbus_g_proxy_end_call_internal.
4785 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4787 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4789 (array_free_all): New function.
4790 (dbus_g_proxy_add_signal): Take GTypes.
4792 * glib/dbus-gobject.h:
4793 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4794 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4797 * glib/dbus-gobject.c: Add a global marshal_table hash which
4798 stores mappings from type signatures to marshallers. Change lots
4799 of invocations of dbus_gtype_to_dbus_type to
4800 dbus_gtype_to_signature.
4801 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4802 (introspect_signals): Fix test for query.return_type.
4803 (set_object_property): Update invocation of dbus_gvalue_demarshal.
4804 (invoke_object_method): Many changes. Handle asynchronous
4805 invocations. Convert arguments with
4806 dbus_gvalue_demarshal_message. Handle errors. Use
4807 DBusSignatureIter instead of strlen on args. Handle all arguments
4808 generically. Special-case variants.
4809 (dbus_g_method_return, dbus_g_method_return_error): New function.
4810 (DBusGSignalClosure): New structure, closes over signal
4812 (dbus_g_signal_closure_new): New function.
4813 (dbus_g_signal_closure_finalize): New function.
4814 (signal_emitter_marshaller): New function; is special marshaller
4815 which emits signals on bus.
4816 (export_signals): New function; introspects object signals and
4818 (dbus_g_object_type_install_info): Take GType instead of
4820 (dbus_g_connection_register_g_object): Invoke export_signals.
4821 (dbus_g_connection_lookup_g_object): New function.
4822 (DBusGFuncSignature) New structure; used for mapping type
4823 signatures to marshallers.
4824 (funcsig_hash): New function; hashes DBusGFuncSignature.
4825 (funcsig_equal): New function; compares DBusGFuncSignature.
4826 (_dbus_gobject_lookup_marshaller): New function.
4827 (dbus_g_object_register_marshaller): New function; used to
4828 register a marshaller at runtime for a particular signature.
4830 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4832 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4833 which notes a server method implementation should be
4836 * glib/dbus-binding-tool-glib.c
4837 (dbus_binding_tool_output_glib_server): Call
4838 dbus_g_value_types_init.
4839 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
4841 (dbus_g_type_get_lookup_function): Turn GType into an invocation
4842 of a lookup function.
4843 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4844 (write_untyped_out_args): New method; write output arguments.
4845 (write_formal_declarations_for_direction): Function for
4847 (write_formal_parameters_for_direction): Function for
4848 writing implementations.
4849 (write_typed_args_for_direction): Function for writing
4850 arguments prefixed with GTypes.
4851 (write_async_method_client): Write out async version
4854 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4855 (dbus_g_type_get_marshal_name): Move mapping from GType
4856 to marshal name into here.
4857 (dbus_g_type_get_c_name): Move into here.
4858 (compute_marshaller): Convert signature to type with
4859 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4860 (compute_marshaller_name): Ditto.
4861 (compute_marshaller): Handle async signal annotations.
4862 (gather_marshallers): Return if we don't have a known
4864 (generate_glue): Collect introspection blob here, and
4865 write all of the blob at the end. This allows an object
4866 with multiple interfaces to work.
4867 Mark async methods in introspection blob.
4869 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4870 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4871 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4873 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4874 avoids people accidentally using DBUS_TYPE_* which should
4875 not be necessary anymore.
4876 Do include dbus-gtype-specialized.h, which are utilities
4877 for GLib container types.
4878 Add various #defines for types such as
4879 DBUS_TYPE_G_BOOLEAN_ARRAY.
4880 (DBusGValueIterator, DBusGValue): Define, not fully used
4882 (dbus_g_value_get_g_type): Type for recursive value.
4883 (dbus_g_value_open, dbus_g_value_iterator_get_value)
4884 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4885 (dbus_g_value_free): Prototypes.
4886 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4887 (dbus_g_proxy_set_interface): Prototype.
4888 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4889 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4891 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4893 (DBusGAsyncData, DBusGMethodInvocation): Structures for
4894 doing async invocations.
4895 (dbus_g_method_return, dbus_g_method_return_error):
4897 * doc/dbus-tutorial.xml: Update GLib section.
4899 * tools/dbus-viewer.c (load_child_nodes): Update
4900 for new invocation type of dbus_g_proxy_end_call.
4901 (load_from_service_thread_func): Ditto.
4903 * tools/print-introspect.c (main): Ditto.
4905 * tools/dbus-names-model.c (have_names_notify)
4906 (names_model_reload, names_model_set_connection)
4909 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4910 needed since Python bindings use GLib bindings.
4912 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4913 Add --prefix argument.
4915 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
4916 unneeded --ignore-unsupported arg.
4918 * test/glib/test-service-glib.c:
4919 * test/glib/test-service-glib.xml:
4920 * test/glib/test-dbus-glib.c: Add many more tests.
4922 2005-06-06 David Zeuthen <davidz@redhat.com>
4924 * doc/TODO: Add item about need to remove deprecated functions.
4926 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4928 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4929 to repair the ABI which was broken with the last commit.
4931 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
4933 * dbus/dbus-connection.c, dbus/dbus-connection.h
4934 (dbus_connection_disconnect): renamed to dbus_connection_close
4935 for API symmetry with dbus_connection_open
4936 (_dbus_connection_open_internal):
4937 s/dbus_connection_disconnect/dbus_connection_close
4939 * dbus/dbus-bus.c (dbus_bus_get):
4940 s/dbus_connection_disconnect/dbus_connection_close
4942 * bus/connection.c (bus_connections_unref,
4943 bus_connections_setup_connection, bus_connections_expire_incomplete):
4944 s/dbus_connection_disconnect/dbus_connection_close
4946 * bus/dispatch.c (bus_dispatch, kill_client_connection,
4947 kill_client_connection_unchecked, check_hello_connection):
4948 s/dbus_connection_disconnect/dbus_connection_close
4950 * bus/bus.c (new_connection_callback):
4951 s/dbus_connection_disconnect/dbus_connection_close
4953 * tools/dbus-send.c (main):
4954 s/dbus_connection_disconnect/dbus_connection_close
4956 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4957 s/dbus_connection_disconnect/dbus_connection_close
4959 * test/test-service.c (path_message_func, filter_func):
4960 s/dbus_connection_disconnect/dbus_connection_close
4962 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
4964 2005-05-25 Colin Walters <walters@verbum.org>
4966 * dbus/dbus-protocol.h: Move various bus service #defines such
4967 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4969 * dbus/dbus-shared.h: Various defines moved here.
4970 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4972 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
4974 * python/__init__.py: Python bindings deserve a minor version
4975 update. Upped to (0, 40, 2)
4977 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
4979 * python/decorators.py: add explicitly_pass_message decorator
4980 for passing in the dbus message as keyword for edge case signal
4983 * python/matchrules.py (SignalMatchRule.__repr__): fix output
4984 to conform with what dbus expects for match rules
4985 (SignalMatchRule.execute): add the dbus message as a keyword
4986 if the signal handler has requested it
4988 * python/examples/example/signal-recipient.py: added some more
4989 examples on how to hook up to signals
4991 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
4993 * python/decorators.py: import dbus_bindings
4995 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
4996 SignalMatchNode): new classes that implement wildcard signal
4997 callback matching using a tree lookup. Heavily modified from a
4998 patch sent by Celso Pinto (fd.o bug #3241)
5000 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5001 use new match classes to handle signals.
5003 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
5005 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5007 2005-05-18 Havoc Pennington <hp@redhat.com>
5009 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5010 gettext. Not really worth requiring yet perhaps, but any
5011 production quality 1.0 would require it so we should go ahead and
5012 get things set up. We do have a couple token calls to
5013 bindtextdomain in the code already.
5015 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
5017 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5018 when using recursive g_main_loops
5020 * python/_dbus.py (class Bus): add the ProxyObjectClass
5021 alias for ProxyObject to make it easier for the Twisted
5022 networking framework to integrate dbus.
5024 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5025 alias for ProxyMethod to make it easier for the Twisted
5026 networking framework to integrate dbus.
5028 2005-05-11 Ross Burton <ross@openedhand.com>
5030 * glib/dbus-glib-tool.c: Add --prefix argument.
5031 * glib/dbus-binding-tool-glib.h: Add prefix argument.
5032 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5033 Add prefix argument.
5034 (generate_glue): Pass prefix argument down.
5035 (dbus_binding_tool_output_glib_server): Pass prefix to
5038 2005-05-11 Colin Walters <walters@verbum.org>
5040 * tools/dbus-send.c (append_array): New function.
5041 (append_arg): Broken out from main.
5042 (main): Add cheesy hack to send arrays and variants.
5044 * tools/dbus-print-message.c (print_iter): Broken out
5047 2005-05-11 Colin Walters <walters@verbum.org>
5049 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5050 New function, returns signature string for signature iter.
5051 * dbus/dbus-signature.h: Prototype it.
5052 * dbus/dbus-message.c (dbus_message_iter_get_signature):
5053 New function, returns signature string for message iter.
5054 (dbus_message_iter_get_array_len): New function, returns
5056 (dbus_message_iter_get_fixed_array): Fix assertion; this
5057 function should be used when the iter is pointing to the
5058 contents of an array
5059 * dbus/dbus-message.h: Prototypes.
5060 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5061 New function; returns length of an array.
5062 * dbus/dbus-marshal-recursive.h: Prototype it.
5064 2005-05-11 Colin Walters <walters@verbum.org>
5066 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5069 2005-05-08 Havoc Pennington <hp@redhat.com>
5071 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5072 daemon's pid, not the parent's pid, to the file descriptor.
5073 Reported by Taj Morton.
5075 2005-05-05 Havoc Pennington <hp@redhat.com>
5077 * configure.in (LT_*): add notes on how the libtool versioning
5078 works to save thinking. Increment soname to indicate protocol
5079 breakage (though really the library interface hasn't changed I
5082 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5083 verify the GUID received from server matches what we were
5084 expecting, if we had an expectation
5086 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5087 (_dbus_auth_get_guid_from_server): new function
5088 (send_begin): parse the OK args
5090 * doc/dbus-specification.xml: add GUID to the auth protocol
5092 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
5094 * Fix my name in previous changelog ;)
5096 * python/proxies.py (ProxyObject.__getattr__): add further patch
5097 from Anthony Baxter to throw an AttributeError when python
5098 __special__ functions are called instead of marshling them over
5099 the bus (Bug#1685 comment 3).
5101 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
5103 * python/Makefile.am: changed to use pyexecdir for the binding
5104 shared libraries (Bug#2494)
5106 * python/exceptions.py: bring exceptions over from the bindings
5107 so they can be used in applications (Bug#2036)
5108 Make all exceptions derive from DBusException
5110 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5111 of classes so that print obj doesn't throw an exception (Bug #1685)
5113 2005-05-03 Ross Burton <ross@openedhand.com>
5115 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5116 Return if we get an error during registration. Set up a
5117 weak reference on object to unregister if object is destroyed.
5118 (unregister_gobject): New function.
5120 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
5122 * python/dbus_bindings.pyx.in:
5123 - added new type classes for hinting to the marashaler what type
5124 to send over the wire
5125 - added int16 and uint16 marshalers
5126 - Fixed a bug in the type constants that caused int32 to go out
5127 as uint16 over the wire
5128 * python/dbus.py: split up into different files and renamed _dbus.py
5129 * python/__init__.py, python/_util.py, python/decorators.py,
5130 python/exceptions.py, python/proxies.py, python/services.py,
5131 python/types.py: new files split off from dbus.py
5132 * python/Makefile.am: Add new files, remove dbus.py and
5133 install all python files to <python module dir>/dbus
5134 * python/examples/*: Added #!/usr/bin/env python to the top of
5135 every example. Patch provided by Tatavarty Kalyan
5137 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5139 * NEWS: Update to 0.33
5141 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5143 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5144 method for doing async calls
5145 (_pending_call_notification): New C function for handling pendning call
5147 (set_notify): New method for setting pending call notification
5149 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5150 Async capabilities added to remote method calls
5151 (Sender): class removed
5152 (RemoteService): class removed
5153 (ObjectTree): class removed for now
5154 (RemoteObject): Renamed to ProxyObject
5155 (RemoteMethod): Renamed to ProxyMethod
5156 (method): Decorator added for decorating python methods as dbus methods
5157 (signal): Decorator added for decorating python methods as signal emitters
5158 (ObjectType): Metaclass added for generating introspection data and the
5159 method callback vtable
5160 (Interface): Wrapper class added to wrap objects in a dbus interface
5161 (Object): Uses ObjectType as its metaclass and exports Introspect
5162 of the org.freedesktop.DBus.Introspectable interface
5163 (ValidationException, UnknownMethodException): new exceptions
5165 * python/examples/*: Modified to fit with the new bindings
5167 2005-04-23 Havoc Pennington <hp@redhat.com>
5169 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5170 reported by Tony Houghton
5172 * test/test-service.c (main): test
5173 dbus_connection_get_object_path_data()
5175 * dbus/dbus-object-tree.c (find_handler): be sure we always init
5177 (_dbus_object_tree_get_user_data_unlocked): new function used by
5178 dbus_connection_get_object_path_data()
5179 (do_register): add assertion test for get_user_data_unlocked
5180 (object_tree_test_iteration): more tests
5182 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5183 new function from Dan Reed to let you get the user data from
5184 dbus_connection_register_object_path()
5186 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
5188 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5189 in numerous places that did not account for the NULL terminator
5190 (signature_from_seed): changed the manual string copy loop to
5191 just use strcpy instead
5192 make check should now pass
5194 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
5196 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5197 so that it allows messages that are not signals to pass in
5198 NULL as the interface.
5200 2005-04-18 David Zeuthen <davidz@redhat.com>
5202 * glib/dbus-gmain.c (io_handler_destroy_source):
5203 (timeout_handler_destroy_source, connection_setup_free):
5204 Also unref the source to avoid memory leaks.
5206 2005-04-13 David Zeuthen <davidz@redhat.com>
5208 * bus/config-parser.c (bus_config_parser_new): Bump this to a
5209 more reasonable, yet still totally arbitrary, value :-).
5211 2005-04-13 David Zeuthen <davidz@redhat.com>
5213 * doc/TODO: Added an "important for 1.0" item about selinux
5216 2005-04-13 David Zeuthen <davidz@redhat.com>
5218 * bus/selinux.c: Add c-file-style to top of file
5219 (log_audit_callback): Don't free the data here anymore
5220 (bus_selinux_check): Don't take spid and tpid since appending
5221 that to auxdata may OOM.
5222 (bus_selinux_allows_acquire_service): Handle OOM and signal back
5223 to the caller if we are OOM by taking an error object.
5224 (bus_selinux_allows_send): -do-
5226 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5227 and bus_selinux_allows_send
5229 * bus/bus.c (bus_context_check_security_policy): Pass error and
5230 pass on OOM thrown by bus_selinux_allows_send()
5232 * bus/services.c (bus_registry_acquire_service): Pass error and
5233 pass on OOM thrown by bus_selinux_allows_acquire_service()
5235 2005-04-13 Havoc Pennington <hp@redhat.com>
5237 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5238 message at a time to avoid monopolizing the main loop, bug
5239 #2953 from Benjamin Otte
5241 2005-04-09 Havoc Pennington <hp@redhat.com>
5243 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5244 possible overlap, fix from Daniel Reed
5245 (fixup_alignment): fix signedness warnings
5246 (_dbus_string_append_unichar): ditto
5248 2005-04-09 Havoc Pennington <hp@redhat.com>
5250 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5252 * glib/dbus-glib-tool.c (main): fix warning
5254 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5256 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5257 add a new function that can be used in simple applications that
5258 don't have a main loop and are willing to block
5260 2005-04-05 David Zeuthen <davidz@redhat.com>
5262 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5264 * glib/dbus-gmain.c:
5265 (io_handler_destroy_source): Remove from list of IO handlers
5266 of the ConnectionSetup object
5267 (timeout_handler_destroy_source): -do- for timeout handlers
5268 (io_handler_source_finalized): Don't remove from list since
5269 we now do that in io_handler_destroy_source(). Renamed from
5270 io_handler_source_destroyed
5271 (timeout_handler_source_destroyed): -do- for timeout handlers
5272 (connection_setup_free): It is now safe to iterate over all
5273 IO and timeout handlers as the _destroy_source removes them
5274 from the list synchronously
5276 2005-03-30 Havoc Pennington <hp@redhat.com>
5278 * configure.in: change check to gtk 2.4
5280 * tools/dbus-viewer.c (name_combo_changed_callback): remove
5281 gtk_combo_box_get_active_text() usage to decrement GTK requirement
5284 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5288 * HACKING: Fixed realease instructions. configure.in should be updated to
5289 the next release by the person who made the last release.
5291 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5293 * python/lvalue_cast_post_process.py - removed. Patch has been
5294 submitted to Pyrex maintainers that fixes gcc4.0 errors
5296 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5298 2005-03-24 Daniel Reed <n@ml.org>
5300 * tools/Makefile.am: Make print-introspect and
5301 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5303 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
5305 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5307 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
5308 had in Red Hat packages for a while but for some reason never
5310 (_dbus_is_a_number): New checks if a string
5311 can be converted to a number and does the conversion if it can
5312 (_dbus_user_database_lookup): Add check to see if the given username
5313 is a udi. This allows udi's to be used instead of usernames in the
5315 (_dbus_user_database_lookup_group): Add check to see if the given groupname
5316 is a gdi. This allows gdi's to be used instead of groupnames in the
5319 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
5321 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5322 code so that it compiles with gcc4.0
5324 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5325 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5326 results back to dbus_binding.c
5328 2005-03-20 Colin Walters <walters@verbum.org>
5330 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5332 * configure.in: Require GTK+ 2.6.
5334 2005-03-20 Colin Walters <walters@verbum.org>
5336 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5338 2005-03-17 Tom Parker <palfrey@tevp.net>
5340 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5341 print DBUS_UID_UNSET; instead print passed username. Also
5342 be sure to actually use gid looked up in cache.
5344 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5345 for DBUS_GID_UNSET and groupname.
5347 2005-03-17 Colin Walters <walters@verbum.org>
5349 * bus/print-introspect.c: Move to tools/.
5350 * bus/run-with-tmp-session-bus.sh: Ditto.
5352 * glib/Makefile.am (dbus-glib-bindings.h): Move
5353 generation to tools/Makefile.am.
5355 * test/glib/run-test.sh: Update to handle move
5356 of run-with-tmp-session-bus.sh.
5358 * test/glib/test-service-glib.c: Update to handle
5359 move of dbus-glib-bindings.h.
5361 * tools/print-introspect.c: Moved here
5362 from bus/, and ported to GLib bindings.
5364 * tools/run-with-tmp-session-bus.sh: Moved here
5367 * tools/Makefile.am: Generate dbus-glib-bindings.h
5368 and dbus-bus-introspect.xml here.
5370 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5373 2005-03-17 Colin Walters <walters@verbum.org>
5375 * bus/driver.c (write_args_for_direction): Use
5376 _dbus_string_get_const_data to retrieve string;
5377 _dbus_string_get_const_data_len doesn't actually return
5378 a NULL-terminated substring.
5380 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5381 (main): Change to use org_freedesktop_DBus_request_name
5382 instead of using g_proxy_begin_call/end_call.
5384 2005-03-15 Joe Shaw <joeshaw@novell.com>
5386 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5387 generating the finalizer. Fixes from Ben Maurer.
5389 2005-03-12 Joe Shaw <joeshaw@novell.com>
5391 * mono/BusDriver.cs: Update method names: ListServices
5392 becomes ListNames; GetOwner becomes GetNameOwner.
5394 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5395 onto the eval stack when removing the delegate.
5397 2005-03-12 Joe Shaw <joeshaw@novell.com>
5399 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5400 LT_CURRENT. Set it to the autoconf variable.
5402 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5403 classes that disconnects the signal handler delegate from the
5404 service object. Fixes a big leak of proxy objects on the
5405 client side of things. Patch from Ben Maurer
5406 <bmaurer@ximian.com>
5408 2005-03-12 Colin Walters <walters@verbum.org>
5410 * bus/driver.c (write_args_for_direction): New function,
5411 parses a type signature into arguments and outputs to
5413 (bus_driver_handle_introspect): Use it instead of
5414 hardcoding XML for certain signatures.
5416 * bus/Makefile.am (dbus-bus-introspect.xml): Add
5417 dependency on dbus-daemon.
5419 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5420 argument, pass it to dbus_binding_tool_output_glib_client.
5422 * glib/dbus-binding-tool-glib.c
5423 (generate_client_glue): Protect against multiple inclusion.
5424 (dbus_binding_tool_output_glib_client): Add
5425 G_BEGIN_DECLS/G_END_DECLS.
5427 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5428 Change to just take iface prefix directly.
5429 (write_formal_parameters): Clarify error message.
5430 (check_supported_parameters): New function; checks to see type
5431 signatures of method parameters are supported.
5432 (generate_client_glue): Handle ignore_unsupported flag.
5433 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5436 * glib/Makefile.am (dbus-glib-bindings.h): Pass
5437 --ignore-unsupported by default until glib bindings
5440 2005-03-11 Colin Walters <walters@verbum.org>
5442 * glib/Makefile.am: Generate dbus-glib-bindings.h and
5445 * bus/print-introspect.c: New file; prints introspection
5446 data for a given name and object path.
5448 * bus/run-with-tmp-session-bus.sh: New file, refactored
5449 from test/glib/run-test.sh. Creates a temporary session
5450 bus and runs another program.
5452 * test/glib/run-test.sh: Refactor to invoke
5453 run-with-tmp-session-bus.sh.
5455 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5456 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
5457 macros instead of hardcoding.
5459 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5461 2005-03-11 Joe Shaw <joeshaw@novell.com>
5463 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5464 this unref; it doesn't match up evenly in some codepaths.
5465 (_dbus_connection_block_pending_call): Unref at every exitpoint;
5466 this evenly matches with the ref near the top of this function.
5468 2005-03-09 Joe Shaw <joeshaw@novell.com>
5470 * dbus/dbus-object-tree.c
5471 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5472 and we try to unregister a path that's not registered, still go
5473 through the process of unlocking and don't just return.
5475 2005-03-09 Colin Walters <walters@verbum.org>
5477 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5478 to this are generated for client-side wrappers. Invokes a
5479 D-BUS method and returns reply values.
5481 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5482 function; writes signature string for argument direction.
5483 (write_args_for_direction): Change to pass input values directly
5484 instead of via address, and fix indentation.
5485 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
5486 make generated wrappers inlineable.
5488 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5489 note about using dbus_type_is_fixed.
5491 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5492 dbus/dbus-signature.c as dbus_type_is_fixed.
5494 All callers updated.
5496 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5497 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5499 * dbus/dbus-signature.h: Prototype.
5501 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5504 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5505 appropriate instead of just freeing it.
5506 (main): Free returned strings using g_free.
5508 * test/glib/Makefile.am (test-service-glib-glue.h)
5509 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5511 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5512 simply maps a simple D-BUS type to GType.
5513 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5515 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5516 initialize the value with it.
5517 (dbus_gvalue_binding_type_from_type): Unused, delete.
5518 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5519 various types instead of unmarshalling to value data directly.
5520 Remove can_convert boolean.
5521 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5522 returning directly instead of using can_convert boolean.
5523 (dbus_gvalue_store): New function; not related to D-BUS per-se.
5524 Stores a GValue in a pointer to a value of its corresponding C
5527 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5528 add dbus_gvalue_store.
5530 2005-03-08 Joe Shaw <joeshaw@novell.com>
5532 Fix a bunch of lifecycle and memory management problems
5533 in the mono bindings.
5535 * mono/Arguments.cs (Arguments): Implement IDisposable
5537 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
5538 strictly a static class.
5540 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5541 delegates into this file.
5542 (Connection): Implement IDisposable.
5543 (Dispose): Disconnect the connection and set the raw connection
5544 pointer to IntPtr.Zero.
5545 (~Connection): Call Dispose().
5546 (RegisterObjectPath): Added. Manages the registration of object
5547 paths so we can cleanly disconnect them at dispose/finalize time.
5548 (UnregisterObjectPath): Ditto.
5549 (set_RawConnection): Unregister all of the object paths when
5550 changing the underlying DBusConnection. Add them back onto the
5551 new connection, if any.
5553 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5554 more unmanaged resources anymore, so it's not necessary. Move all
5555 the DBusObjectPathVTable stuff out of here.
5556 (Handler): Save references to our delegates so that they don't get
5557 finalized. Call Connection.RegisterObjectPath() instead of
5558 dbus_connection_register_object_path() directly.
5559 (Message_Called): Dispose the message after we're finished with
5562 * mono/Message.cs (Message): Implement IDisposable.
5563 (Dispose): Dispose the Arguments, and set the RawMessage to
5565 (SendWithReplyAndBlock): We own the ref to the reply that comes
5566 back from dbus_connection_send_with_reply_and_block() so add a
5567 comment about that and unref it after we've constructed a managed
5568 MethodReturn class around it. Fixes a big, big leak.
5570 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5572 (BuildSignalHandler): After we've sent the Signal message, dispose
5574 (BuildMethod): Dispose of the method call and reply messages after
5575 we've sent the message and extracted the data we want from the
5578 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5580 (Service_FilterCalled): Dispose of the message after we're
5583 2005-03-08 Joe Shaw <joeshaw@novell.com>
5585 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5586 After we attach our pending call to the connection, unref
5589 * mono/Connection.cs (set_RawConnection): Disconnect our
5590 filter and match callbacks from the old connection and
5591 reconnect them to the new connection, if any.
5593 * mono/DBusType/Array.cs: "Code" is a static member, so
5594 don't use "this" to refer to it. Fix for stricter checking
5597 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5598 object path that we pass into unmanaged code.
5600 * mono/DBusType/String.cs (Append): Don't leak the string
5601 that we pass into unmanged code.
5603 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
5604 * NEWS: Update for 0.31
5606 * configure.in: Release 0.31
5607 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5609 * qt/Makefile.am: fixed build
5611 * dbus/Makefile.am: soname bump for libdbus
5613 * glib/Makefile.am: soname bump for libdbus-glib
5615 2005-03-05 Havoc Pennington <hp@redhat.com>
5617 * dbus/dbus-sysdeps.c:
5618 (pseudorandom_generate_random_bytes_buffer): fix to have no return
5620 (_dbus_generate_random_bytes_buffer): fix return value
5622 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5623 checks actually work, from Tom Parker <fdo@tevp.net>
5625 2005-03-01 Colin Walters <walters@verbum.org>
5627 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5628 functions copied from dbus-glib-tool.c.
5629 (main): Convert lots of error code to use them.
5630 Also add some testing for introspection bits.
5632 2005-03-01 Colin Walters <walters@verbum.org>
5634 * doc/TODO: Remove introspection signature TODO.
5636 2005-02-27 Colin Walters <walters@verbum.org>
5638 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5639 Change return value to const char * instead of int so we can do
5641 (struct PropertyInfo, struct ArgInfo): Store char *.
5642 (property_info_new, arg_info_new): Update parameters, strdup.
5643 (property_info_unref, arg_info_unref): Free.
5645 * glib/dbus-gidl.h: Update prototypes.
5647 * glib/dbus-gparser.c (basic_type_from_string): Delete.
5648 (validate_signature): New function, just validates signature and
5650 (parse_property, parse_arg): Invoke validate_signature. Store
5651 signature instead of just type code.
5653 * glib/dbus-gvalue.c (base_type_from_signature): New utility
5654 function to return a primary type for a signature, dropping
5655 information about types in container types.
5656 (dbus_gvalue_genmarshal_name_from_type)
5657 (dbus_gvalue_binding_type_from_type)
5658 (dbus_gvalue_ctype_from_type): Update to take full signature
5659 instead of type code.
5660 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5662 * glib/dbus-gvalue.h: Update prototypes for above.
5664 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5665 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5666 (introspect_properties, introspect_signals, write_interface):
5667 Update to handle signatures, and remove usage of
5668 _dbus_gutils_type_to_string.
5669 (handle_introspect): Print out type codes instead of e.g. "string"
5670 in hardcoded introspection XML; also use x_AS_STRING constants
5671 instead of hardcoding in string.
5673 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5674 to string. Remove usage of _dbus_gutils_type_to_string.
5676 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5678 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5681 * glib/dbus-binding-tool-glib.c (compute_marshaller)
5682 (compute_marshaller_name, generate_glue): Handle signature change
5684 (write_formal_parameters, write_args_for_direction): Ditto, and
5687 * tools/dbus-tree-view.c (type_to_string): Delete.
5688 (info_set_func_text): Update to print full signatures.
5690 * test/glib/test-service-glib.xml: Change types to new
5691 introspection format.
5693 2005-02-26 Havoc Pennington <hp@redhat.com>
5695 * doc/TODO: remove the "guid" item
5697 * test/glib/test-profile.c (no_bus_thread_func): use open_private
5698 (with_bus_thread_func): use open_private
5700 * dbus/dbus-connection.c (dbus_connection_open_private): new
5701 function that works like the old dbus_connection_open()
5702 (dbus_connection_open): now returns an existing connection if
5705 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5706 through the GUID to the transport
5708 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5709 GUID in hex-encoded form.
5711 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5712 pass GUID argument in to the transport
5714 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5717 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5719 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5721 2005-02-25 Havoc Pennington <hp@redhat.com>
5723 * doc/dbus-specification.xml: document the GUID thing
5725 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5726 globally unique ID for the server, and put a "guid=hexencoded"
5727 field in the address
5729 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5731 * dbus/dbus-message.c: ditto
5733 * dbus/dbus-dataslot.c: ditto
5735 * dbus/dbus-list.c: ditto
5737 * dbus/dbus-internals.h: wait, just include
5738 dbus-threads-internal.h here
5740 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5743 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5745 2005-02-24 Colin Walters <walters@verbum.org>
5747 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5749 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
5751 * glib/Makefile.am: added dbus-gobject.h to sources list
5752 so distcheck doesn't fail
5754 2005-02-24 Havoc Pennington <hp@redhat.com>
5756 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5757 you must disconnect before unref, since locking and other things
5758 are screwed up otherwise. Fix assorted other locking stuff.
5760 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5763 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5764 into a private header and don't export from the library
5766 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5768 2005-02-24 Colin Walters <walters@verbum.org>
5770 * dbus/dbus-signature.c: New file; implements various functions
5771 related to type signatures. Includes an interator for parsing,
5772 validation functions.
5773 (dbus_type_is_basic): Moved here from
5774 dbus-marshal-basic.c:_dbus_type_is_basic.
5775 (dbus_type_is_container): Moved here from
5776 dbus-marshal-basic.c:_dbus_type_is_container.
5778 All callers of _dbus_type_is_container and _dbus_type_is_basic
5779 updated, and include dbus-signature.h.
5781 * dbus/dbus-signature.h: New file; prototypes for the above.
5783 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5786 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5787 function factored out of _dbus_first_type_in_signature.
5788 (_dbus_first_type_in_signature_c_str): New function; returns first
5789 type code for a type signature character.
5791 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5792 handle function moves.
5794 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5796 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5797 function; skips to next complete type in type signature.
5798 Implemented using previous skip_one_complete_type. Now
5799 skip_one_complete_type just delegates to
5800 _dbus_type_signature_next.
5802 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5804 (_dbus_type_is_container): Ditto.
5806 * doc/dbus-specification.xml: Update introspection sample to
5807 use real type signatures.
5809 * dbus/dbus-test.h: Prototype signature test.
5811 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5814 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5816 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
5818 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5819 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5821 2005-02-21 Colin Walters <walters@verbum.org>
5823 * dbus/dbus-test-main.c (main): Take optional specific test
5826 * dbus/dbus-test.c (run_test): New function, runs a test function
5827 with no data directory.
5828 (run_data_test): Like above, but takes data directory.
5829 (dbus_internal_do_not_use_run_tests): Take
5830 specific test argument. Replace lots of cut n' paste code
5831 with run_test and run_data_test.
5833 * dbus/dbus-test.h: Update prototype for
5834 dbus_internal_do_not_use_run_tests.
5836 2005-02-20 Havoc Pennington <hp@redhat.com>
5838 Fix bugs reported by Daniel P. Berrange
5840 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5841 (protected_change_watch): new function
5842 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5843 (_dbus_server_add_watch): change to work like the
5844 dbus-connection.c equivalents; like those, probably kind of
5845 busted, but should at least mostly work for now
5846 (dbus_server_disconnect): drop the lock if we were already
5847 disconnected, patch from Daniel P. Berrange
5849 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
5850 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5853 * doc/TODO: todo about unscrewing this mess
5855 2005-02-19 Colin Walters <walters@verbum.org>
5857 * glib/dbus-binding-tool-glib.c
5858 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5860 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5861 as errno.h and sys/stat.h.
5862 (lose): New function, prints error with
5864 (lose_gerror): Similar, but takes GError for message.
5865 (main): Add --output argument to specify output file to write to,
5866 instead of always printing to stdout. In this mode, determine
5867 timestamps on source files to see whether any are newer than the
5868 target file. If not, exit. Also convert a number of error
5869 messages to use lose (since it's shorter), and switch to using
5870 g_io_channel_shutdown.
5872 2005-02-19 Havoc Pennington <hp@redhat.com>
5874 * glib/dbus-gobject.c
5875 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5877 * glib/dbus-glib.c: fix doxygen warnings
5879 * glib/dbus-gparser.c (parse_annotation): error if an annotation
5880 is found on an <arg>
5882 2005-02-17 Colin Walters <walters@verbum.org>
5884 * glib/dbus-gobject.h: Don't export
5885 _dbus_glib_marshal_dbus_message_to_gvalue_array.
5887 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5888 (invoke_object_method): Handle it.
5890 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5893 2005-02-17 Colin Walters <walters@verbum.org>
5895 * bus/.cvsignore, doc/.cvsignore
5896 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5899 2005-02-17 Colin Walters <walters@verbum.org>
5901 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5902 Rename to DBUS_SERVICE_DBUS.
5903 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5904 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5905 Change the value from "org.freedesktop.Local"
5906 to "org.freedesktop.DBus.Local".
5907 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5908 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5909 DBUS_INTERFACE_INTROSPECTABLE.
5910 Change the value from "org.freedesktop.Introspectable"
5911 to "org.freedesktop.DBus.Introspectable".
5912 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5913 DBUS_INTERFACE_PROPERTIES.
5914 Change the value from "org.freedesktop.Properties"
5915 to "org.freedesktop.DBus.Properties".
5916 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5917 DBUS_INTERFACE_PEER.
5918 Change the value from "org.freedesktop.Peer"
5919 to "org.freedesktop.DBus.Peer".
5920 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
5921 DBUS_INTERFACE_LOCAL.
5922 Change the value from "org.freedesktop.Local"
5923 to "org.freedesktop.DBus.Local".
5925 All other users of those constants have been changed.
5927 * bus/driver.c (bus_driver_handle_introspect): Use constants.
5929 * glib/dbus-gobject.c (handle_introspect): Use constants.
5931 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5933 2005-02-17 Colin Walters <walters@verbum.org>
5935 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5936 (parse_node, parse_interface, parse_method, parse_signal)
5937 (parse_property, parse_annotation): Lose if we're currently in an
5939 (parse_annotation): New function.
5940 (parser_start_element, parser_end_element): Handle annotation.
5941 (parse_method, parse_interface): Remove support for c_name attribute,
5942 switch to annotations.
5944 * glib/dbus-gidl.h (interface_info_get_binding_names)
5945 (method_info_get_binding_names)
5946 (interface_info_get_binding_name, method_info_get_binding_name)
5947 (interface_info_set_binding_name, method_info_set_binding_name):
5949 (interface_info_get_annotations, method_info_get_annotations)
5950 (interface_info_get_annotation, method_info_get_annotation)
5951 (interface_info_add_annotation, method_info_add_annotation):
5954 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5956 (struct MethodInfo): Ditto.
5957 Straightfoward conversion of binding methods into annotation methods
5960 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5962 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5964 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5965 Use new annotation API.
5967 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
5970 * doc/dbus-specification.xml: Discuss introspection annotations,
5971 include list of well-known annotations.
5973 * test/glib/test-service-glib.xml: Make validate against new DTD.
5975 2005-02-17 Colin Walters <walters@verbum.org>
5977 This patch is based on initial work from
5978 Paul Kuliniewicz <kuliniew@purdue.edu>.
5980 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5981 initialization of GValue from dbus type to here.
5982 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5983 for the "glib-genmarshal" program from a DBus type.
5984 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5985 into the C name for it we use in the glib bindings.
5986 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5987 glib C type (not GValue).
5988 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5990 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5991 from dbus-gobject.c.
5993 * glib/dbus-gutils.h: Prototype it.
5995 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5996 (marshal_dbus_message_to_g_marshaller): Use new shared function
5997 dbus_glib_marshal_dbus_message_to_gvalue_array.
5999 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6000 Will be changed once we have annotations.
6002 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6003 GStaticRWLock. Callers updated.
6004 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
6005 (string_table_next): New function for iterating over zero-terminated
6007 (string_table_lookup): New function; retrieves specific entry in
6009 (get_method_data): New function; look up method data in object data chunk.
6010 (object_error_domain_prefix_from_object_info)
6011 (object_error_code_from_object_info): New functions, but not implemented yet.
6012 (method_interface_from_object_info): New function; retrieve interface name.
6013 (method_name_from_object_info): New function; retrieve method name.
6014 (method_arg_info_from_object_info): New function; retrieve argument data.
6015 (arg_iterate): New function; iterates over serialized argument data.
6016 (method_dir_signature_from_object_info): New function; returns a
6017 GString holding type signature for arguments for just one
6018 direction (input or output).
6019 (method_input_signature_from_object_info)
6020 (method_output_signature_from_object_info): New functions.
6021 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6022 converts dbus message arguments into a GValue array. Used for both
6023 signal handling and method invocation.
6024 (struct DBusGlibWriteIterfaceData): New utility structure.
6025 (write_interface): New function; generate introspection XML for
6027 (introspect_interfaces): New function; gathers all interface->methods,
6028 generates introspection XML for them.
6029 (handle_introspect): Invoke introspect_interfaces.
6030 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6031 (lookup_object_and_method): New function; examines an incoming message
6032 and attempts to match it up (via interface, method name, and argument
6033 signature) with a known object and method.
6034 (gerror_domaincode_to_dbus_error_name): New function; converts a
6035 GError domain and code into a DBus error name. Needs GError data
6036 added to object introspection to work well.
6037 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6039 (invoke_object_method): New function to invoke an object method
6040 looked up via lookup_object_and_method. Parses the incoming
6041 message, turns it into a GValue array, then invokes the marshaller
6042 specified in the DBusGMethodInfo. Creates a new message with
6043 either return values or error message as appropriate.
6044 (gobject_message_function): Invoke lookup_object_and_method and
6045 invoke_object_method.
6047 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6048 (enum DBusBindingOutputMode): New enum for binding output modes.
6049 (pretty_print): Print binding names.
6050 (dbus_binding_tool_error_quark): GError bits.
6051 (version): Fix typo.
6052 (main): Create GIOChannel for output. Parse new --mode argument,
6053 possible values are "pretty-print", "glib-server", "glib-client".
6054 Use mode to invoke appropriate function.
6056 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6058 * glib/dbus-glib-tool.h: New header, just includes GError bits
6061 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6062 maps binding style to name.
6063 (struct MethodInfo): Ditto.
6064 (get_hash_keys, get_hash_key): Utility function, returns keys for
6066 (interface_info_new, method_info_new): Initialize bindings.
6067 (interface_info_unref, method_info_unref): Destroy bindings.
6068 (method_info_get_binding_names, method_info_get_binding_name)
6069 (interface_info_get_binding_names, interface_info_get_binding_name):
6070 Functions for retrieving binding names.
6071 (method_info_set_binding_name, interface_info_set_binding_name):
6072 Functions for setting binding names.
6074 * glib/dbus-binding-tool-glib.h: New file, has prototypes
6075 for glib binding generation.
6077 * glib/dbus-binding-tool-glib.c: New file, implements server-side
6078 and client-side glib glue generation.
6080 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6081 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6084 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6085 of using GClosureMarshal directly.
6086 (struct DBusGObjectInfo): Add n_infos member.
6088 * test/glib/test-service-glib.xml: New file; contains introspection data
6089 for MyTestObject used in test-service-glib.c.
6091 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6092 (my_object_do_nothing, my_object_increment, my_object_throw_error)
6093 (my_object_uppercase, my_object_many_args): New test methods.
6094 (main): Use dbus_g_object_class_install_info to include generated object
6097 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6098 as well as client-side bindings.
6100 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6101 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6102 using both the dbus_gproxy stuff directly as well as the generated bindings.
6104 2005-02-15 Havoc Pennington <hp@redhat.com>
6106 * dbus/dbus-connection.c (dbus_connection_dispatch): always
6107 complete a pending call, don't run filters first.
6109 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6110 dbus_pending_call_steal_reply
6112 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6113 _dbus_connection_block_pending_call
6114 (dbus_pending_call_get_reply): change to steal_reply and return a
6117 * dbus/dbus-connection.c
6118 (dbus_connection_send_with_reply_and_block): port to work in terms
6120 (_dbus_connection_block_pending_call): replace block_for_reply
6123 2005-02-14 Havoc Pennington <hp@redhat.com>
6125 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6126 properly handle looking up group information by name; fix
6129 2005-02-13 Havoc Pennington <hp@redhat.com>
6131 * dbus/dbus-connection.c (dbus_connection_return_message)
6132 (dbus_connection_borrow_message): hold dispatch lock while message
6134 (_dbus_connection_block_for_reply): hold dispatch lock while we
6135 block for the reply, so nobody steals our reply
6136 (dbus_connection_pop_message): hold the dispatch lock while we
6139 2005-02-13 Havoc Pennington <hp@redhat.com>
6141 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6142 (_dbus_connection_release_dispatch)
6143 (_dbus_connection_acquire_io_path)
6144 (_dbus_connection_release_io_path): make the mutex and condvar
6145 control access to the "acquired" flag. Drop the connection lock
6146 while waiting on the condvar. Hopefully these are baby steps in
6147 roughly the right direction.
6149 2005-02-13 Havoc Pennington <hp@redhat.com>
6151 * dbus/dbus-connection.c: use separate mutexes for the condition
6152 variables; this is some kind of baseline for sanity, but the
6153 condition variables still aren't used correctly afaict
6155 2005-02-13 Havoc Pennington <hp@redhat.com>
6157 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6160 * dbus/dbus-connection.c
6161 (_dbus_connection_detach_pending_call_unlocked): add this
6163 Initial semi-correct pass through to fix thread locking; there are
6164 still some issues with the condition variable paths I'm pretty
6167 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6170 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6171 rename to add _unlocked
6172 (struct DBusConnection): move "dispatch_acquired" and
6173 "io_path_acquired" to use only one bit each.
6174 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6175 (dbus_connection_set_watch_functions): hacky fix to reentrancy
6176 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
6177 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
6178 (_dbus_connection_remove_timeout)
6179 (_dbus_connection_toggle_timeout): drop lock when calling out to
6180 user functions; done in a hacky/bad way.
6181 (_dbus_connection_send_and_unlock): add a missing unlock
6182 (_dbus_connection_block_for_reply): add a missing unlock
6184 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6185 drop lock in a hacky probably unsafe way to call out to user
6188 2005-02-12 Havoc Pennington <hp@redhat.com>
6190 * tools/dbus-tree-view.c (info_set_func_text): display more
6193 * bus/driver.c (bus_driver_handle_list_services): list the bus
6196 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6198 * glib/dbus-gidl.c (signal_info_get_n_args): new function
6199 (method_info_get_n_args): new function
6201 2005-02-12 Havoc Pennington <hp@redhat.com>
6203 * bus/driver.c (bus_driver_handle_introspect): add introspection
6206 2005-02-12 Havoc Pennington <hp@redhat.com>
6208 * bus/driver.c: put the signature of each bus driver method in the
6209 table of handlers and check it on incoming calls; this isn't
6210 really useful, but going to add introspect support in a minute.
6212 2005-02-11 Joe Shaw <joeshaw@novell.com>
6214 * mono/Connection.cs: The unpredictability of finalizers in mono
6215 prevents us from deterministically disconnecting the filters from
6216 the Service class's finalizer, so move tracking of filters and
6217 matches here. Add API for that.
6219 * mono/Service.cs: Remove the code, add code which calls the
6220 methods now on the Connection class.
6222 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
6224 * python/dbus.py (class Sender): added to support dbus signals better
6225 (Bus::add_signal_receiver): added expand_args parameter which defaults
6226 to True. When expand args is True the signal handler will pass the
6227 message arguments as parameters to the signal handler. If False
6228 revert to previous behavior where the signal handler must get the
6229 argument list from the message. This is to help port applications
6230 like HAL that have a tendancy to send variable length argument lists.
6231 self._match_rule_to_receivers is now a dict of dicts.
6232 (Bus::remove_signal_receiver): pop handler off the dict intead of
6233 removing it from a list
6234 (Bus::_signal_func): change signal handlers so that interface,
6235 signal_name, service, path and message are packed into a Sender
6236 object and that is passed to the handler. If expand_args is True
6237 extract the args list from the message and append it to the parameter
6240 * python/dbus_bindings.pyx.in (class Signature): added to support
6242 (MessageIter::__init__): changed iteration limit to match D-BUS
6243 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
6244 STRUCT and VARIENT type support
6245 (MessageIter::python_value_to_dbus_sig): made recursive to support
6247 (MessageIter::append*): added Signature, dict, tuple
6250 * python/examples/example-client.py: added examples of getting tuples
6253 * python/examples/example-service.py: added examples of sending tuples
6256 * python/examples/example-signal-recipient.py: Fixed to handle new
6257 signal callback format
6259 2005-02-10 Havoc Pennington <hp@redhat.com>
6261 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6262 (call dbus_g_proxy_add_signal)
6264 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6266 (_dbus_server_new_for_domain_socket): escape the path
6268 * dbus/dbus-address.c (dbus_address_escape_value): new
6269 (dbus_address_unescape_value): new
6270 (dbus_parse_address): unescape values
6272 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6274 * doc/dbus-specification.xml: explain how to escape values in
6277 2005-02-10 Havoc Pennington <hp@redhat.com>
6279 * dbus/dbus-message-factory.c (generate_special): modify test to
6280 avoid using a non-basic dict key
6282 * dbus/dbus-marshal-validate-util.c: add test for the below
6284 * doc/dbus-specification.xml: require that dict keys are a basic
6287 * dbus/dbus-marshal-validate.c
6288 (_dbus_validate_signature_with_reason): require that dict key is a
6291 2005-02-10 Havoc Pennington <hp@redhat.com>
6293 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6294 change to be _and_unlock instead of _unlocked
6296 * dbus/dbus-connection.c
6297 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6298 have no_update so we can find this bug quickly in future
6300 2005-02-10 Havoc Pennington <hp@redhat.com>
6302 * dbus/dbus-message-util.c (verify_test_message): tests for string
6305 * dbus/dbus-message.c (dbus_message_append_args_valist): add
6306 support for arrays of string/signature/path
6308 2005-02-10 Joe Shaw <joeshaw@novell.com>
6310 * dbus/dbus-connection.c
6311 (_dbus_connection_queue_received_message_link,
6312 _dbus_connection_message_sent): Add the path to
6314 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
6315 _dbus_connection_send_preallocated_unlocked(), updated the
6316 dispatch status, and unlocks. Fixes a bug where certain
6317 situations (like a broken pipe) could cause a Disconnect message
6318 to not be sent, tricking the bus into thinking a service was still
6319 there when the process had quit.
6320 (_dbus_connection_send_preallocated): Call
6321 _dbus_connection_send_preallocated_and_unlock().
6322 (_dbus_connection_send_and_unlock): Added. Calls
6323 _dbus_connection_send_preallocated_and_unlock().
6324 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6325 (dbus_connection_send_with_reply): Update the dispatch status and
6328 * mono/Service.cs (~Service): Added. Removes the filter so that
6329 we don't get unmanaged code calling back into a GCed delegate.
6330 (RemoveFilter); Added.
6332 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
6334 * dbus/dbus-message.c (dbus_message_iter_open_container):
6335 - Removed check for iterator type being an array because
6336 get_arg_type does not work with writer iterators
6337 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6339 2005-02-07 Havoc Pennington <hp@redhat.com>
6341 * doc/dbus-specification.xml: some more language cleanups; add
6342 stuff about how to deal with invalid protocol and extension
6343 points; add _ to allowed chars in auth commands; add EXTENSION_
6346 2005-02-06 Havoc Pennington <hp@redhat.com>
6348 * s/expected/required/ in a couple places for clarity
6350 2005-02-07 Colin Walters <walters@verbum.org>
6352 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6353 sender or proposed_recipient.
6355 2005-02-06 Havoc Pennington <hp@redhat.com>
6357 * dbus/dbus-message-factory.c (generate_special): more tests
6359 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6360 array length that exceeds the maximum
6362 2005-02-05 Havoc Pennington <hp@redhat.com>
6364 * dbus/dbus-message-factory.c (generate_special): more test cases,
6367 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6368 reason why a signature was invalid
6370 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6371 skip the length of the string before we look at it in validation
6373 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6376 * dbus/dbus-message.c (_dbus_message_loader_new): default
6377 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6379 2005-02-05 Havoc Pennington <hp@redhat.com>
6381 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6382 if the signature of a variant was empty
6383 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6384 struct with no element type)
6386 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6387 mangled messages to break things
6389 2005-02-04 Havoc Pennington <hp@redhat.com>
6391 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6392 g_quark_try_string() so it actually can return 0
6393 (dbus_g_proxy_connect_signal): ditto
6395 2005-02-04 Havoc Pennington <hp@redhat.com>
6397 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6399 (tristring_from_message): assert cleanly on null path/interface
6400 (should not be possible though I decided later)
6401 (dbus_g_proxy_dispose): move proxy manager unregistration here
6402 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6403 g_return_if_fail() checks
6405 2005-02-04 Havoc Pennington <hp@redhat.com>
6407 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6409 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6410 (with some minor changes)
6412 * doc/dbus-specification.xml: add deprecated attribute to
6413 introspection format
6415 2005-01-31 Havoc Pennington <hp@redhat.com>
6417 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6418 think it's sort of right
6420 2005-01-30 Havoc Pennington <hp@redhat.com>
6422 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6424 2005-01-30 Havoc Pennington <hp@redhat.com>
6426 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6428 * autogen.sh: change to autotools 1.9
6430 * glib/dbus-gproxy.c: completely change how signals work
6431 (dbus_g_proxy_add_signal): new function to specify signature of a
6433 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6434 and g_warning if the incoming message has the wrong signature.
6436 2005-01-30 Havoc Pennington <hp@redhat.com>
6438 * tools/dbus-names-model.c (have_names_notify): fix this
6440 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6441 up the string array handling a bit
6443 2005-01-30 Havoc Pennington <hp@redhat.com>
6445 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6446 (dbus_g_pending_call_cancel): new function
6448 * dbus/dbus-glib.h: move GType decls for connection/message here;
6449 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6450 here, just kind of rationalizing how we handle all that
6452 * tools/dbus-names-model.c: new file for a tree model listing the
6455 * tools/dbus-tree-view.c (model_new): use proper typing on the
6458 2005-01-30 Havoc Pennington <hp@redhat.com>
6460 * glib/dbus-gmain.c: add a custom GSource back that just checks
6461 whether the message queue has anything in it; otherwise, there are
6462 cases where we won't see messages in the queue since there was no
6463 IO visible to the glib main loop
6465 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6466 increase default message timeout to 25 seconds
6468 2005-01-30 Havoc Pennington <hp@redhat.com>
6470 * test/glib/test-profile.c (no_bus_stop_server): remove the
6471 warning about the g_warning that I just fixed
6473 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6474 custom source, seems to be a lot easier to understand and work
6477 2005-01-30 Havoc Pennington <hp@redhat.com>
6479 I think this main loop thing is conceptually broken, but here are
6480 some band aids. I'll maybe rewrite it in a minute.
6482 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6483 custom GSource, so don't pass it in; confusing
6484 (gsource_server_finalize, gsource_connection_finalize): add
6485 finalize handlers that remove all the watches.
6487 2005-01-30 Havoc Pennington <hp@redhat.com>
6489 * glib/dbus-gobject.c (introspect_properties): fix the XML
6492 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6493 which effectively detects the use of freed messages
6495 * glib/dbus-gobject.c (handle_introspect): modify and return the
6496 reply message instead of the incoming message
6498 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6499 gee, maybe it should SEND THE XML instead of just making a string
6500 and freeing it again ;-)
6502 * tools/dbus-print-message.c (print_message): improve printing of
6505 * configure.in: add debug-glib.service to the output
6507 2005-01-30 Havoc Pennington <hp@redhat.com>
6509 dbus-viewer introspected and displayed the bus driver
6511 * dbus/dbus-object-tree.c
6512 (object_tree_test_iteration): add tests for a handler registered on "/"
6514 * dbus/dbus-object-tree.c
6515 (_dbus_decompose_path): fix to handle path "/" properly
6516 (run_decompose_tests): add tests for path decomposition
6518 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6521 * glib/dbus-gobject.c (handle_introspect): fix quotes
6523 * test/glib/run-test.sh: support launching the bus, then running
6526 * test/glib/test-service-glib.c (main): put in a trivial gobject
6527 subclass and register it on the connection
6529 * bus/driver.c (bus_driver_handle_introspect): implement
6530 introspection of the bus driver service
6532 * dbus/dbus-protocol.h: add #defines for the XML namespace,
6533 identifiers, doctype decl
6535 * bus/driver.c (bus_driver_handle_get_service_owner): handle
6536 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
6537 returning the service unchanged.
6538 (bus_driver_handle_message): remove old check for reply_serial in
6539 method calls, now the message type deals with that
6540 (bus_driver_handle_message): handle NULL interface
6542 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6544 * glib/dbus-gloader-expat.c (description_load_from_string): allow
6547 * tools/dbus-viewer.c: add support for introspecting a service on
6550 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6551 (dbus_g_pending_call_unref): add
6553 2005-01-29 Havoc Pennington <hp@redhat.com>
6555 * tools/dbus-tree-view.c: add support for displaying properties.
6556 (run dbus-viewer with an introspect xml file as arg, then resize
6557 the window so the tree elements show up, not sure what that is)
6559 * glib/dbus-gobject.c (handle_introspect): return
6560 org.freedesktop.Properties and org.freedesktop.Introspectable
6561 interfaces when we are introspected.
6563 * doc/dbus-specification.xml: allow empty interface name when
6566 2005-01-29 Havoc Pennington <hp@redhat.com>
6568 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6569 though it uses glib, it could be extended for any binding in
6572 * glib/dbus-gobject.c (gobject_message_function): change to the
6573 new way properties work
6575 * dbus/dbus-protocol.h: add the new interfaces
6577 * doc/dbus-specification.xml: document the introspection format,
6578 Introspectable interface, and add an org.freedesktop.Properties
6581 * glib/dbus-gparser.c: add support for a <property> element
6583 * glib/dbus-gidl.c: add PropertyInfo
6585 * glib/dbus-gobject.c (handle_introspect): put the outermost
6586 <node> outside the signal and property descriptions.
6587 (introspect_properties): export properties as <property> rather
6588 than as method calls
6590 2005-01-28 Havoc Pennington <hp@redhat.com>
6592 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6593 related to authentication protocol
6595 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
6597 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6598 - BUS_ACTIVATION -> BUS_STARTER
6599 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6600 - class MessageIter (__init__): Added recursion checking
6601 so we throw a nice error instead of just disconnecting from the
6603 (get): Added arg_type parameter for recursion.
6604 Removed the nil type
6605 Added signiture type placeholder (not implemented)
6606 Added struct type placeholder (not implemented)
6607 Added varient type placeholder (not implemented)
6608 Commented out dict type for now
6609 (get_element_type): renamed from get_array_type
6610 (get_*): changed to use the dbus_message_iter_get_basic API
6611 (get_*_array): removed in favor of recursive get_array method
6612 (get_array): new recursive method which calls get to marshal
6613 the elements of the array
6614 (value_to_dbus_sig): New method returns the corrasponding
6615 dbus signiture to a python value
6616 (append): Comment out dict handling for now
6617 Handle lists with the new recursive API
6618 Comment out None handling for now
6619 (append_nil): removed
6620 (append_*): changed to use dbus_message_iter_append_basic API
6621 (append_*_array): removed in favor of recursive append_array
6623 (__str__): Make it easier to print out recursive iterators
6625 - class Message (__str__): moved type inspection to the
6626 MessageIter class' __str__ method
6627 (get_iter): Added an append parameter wich defaults to False
6628 If True use the new API's to create an append iterator
6630 * python/dbus.py: Update to use new bindings API
6631 - TYPE_ACTIVATION -> TYPE_STARTER
6632 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6633 - class ActivationBus -> class StarterBus
6634 - class RemoteObject (__call__): get an append iterator
6635 - (_dispatch_dbus_method_call): get an append iterator
6636 - class Object (emit_signal): get an append iterator
6638 * python/examples/: Fixed up the examples to work with the new API
6640 2005-01-28 Joe Shaw <joeshaw@novell.com>
6642 * configure.in: Bump version up to 0.30.
6644 * HACKING: Add a release item to bump the version number up after
6647 2005-01-28 Havoc Pennington <hp@redhat.com>
6649 * doc/dbus-specification.xml: update to describe 16-bit types and
6652 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6655 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6658 * dbus/dbus-marshal-recursive.c: implement
6660 2005-01-27 Havoc Pennington <hp@redhat.com>
6662 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6664 * configure.in: find the right type for 16 and 32 bit ints as well
6667 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6668 the 16-bit types so people don't have to stuff them in 32-bit or
6671 2005-01-27 Havoc Pennington <hp@redhat.com>
6673 * dbus/dbus-message.c: byteswap the message if you init an
6674 iterator to read/write from it
6676 * dbus/dbus-marshal-byteswap.c: new file implementing
6677 _dbus_marshal_byteswap()
6679 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6681 2005-01-26 Havoc Pennington <hp@redhat.com>
6683 * dbus/dbus-marshal-validate-util.c: break this out (and fix
6684 build, apparently - nobody noticed?)
6686 2005-01-26 Havoc Pennington <hp@redhat.com>
6688 * dbus/dbus-marshal-recursive.h: remove todo comment
6690 2005-01-25 Joe Shaw <joeshaw@novell.com>
6692 * Land the mono binding changes to conform to the new APIs.
6694 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6695 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6697 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
6698 type code as a string.
6699 (InitAppending): Rename dbus_message_append_iter_init() to
6700 dbus_message_iter_init_append().
6702 * mono/BusDriver.cs: Rename ServiceEventHandler to
6703 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
6704 Rename ServiceOwnerChanged to NameOwnerChanged.
6706 * mono/Connection.cs: Rename BaseService to UniqueName, and the
6709 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
6711 * mono/Service.cs: Rename Exists to HasOwner, internally rename
6712 dbus_bus_acquire_service() to dbus_bus_request_name().
6714 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6715 of Type.UnderlyingSystemType to get the correct element type for
6717 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6718 dbus_message_get_{element|arg}_type() instead of
6719 dbus_message_iter_init_array_iterator().
6720 (Append): Replace dbus_message_iter_append_array() with
6721 dbus_message_iter_open_container() and
6722 dbus_message_iter_close_container().
6724 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
6725 types have been removed.
6727 * mono/DBusType/*.cs: Replace calls of
6728 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6729 but specify the type in the DllImport extern declaration. Ditto
6730 for dbus_message_iter_append_[type]() ->
6731 dbus_message_iter_append_basic().
6733 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6734 NameOwnerChangedHandler.
6736 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
6738 * python/dbus_bindings.pyx.in: Rename of methods and bindings
6739 - get_base_service -> get_unique_name
6740 - bus_get_base_service -> bus_get_unique_name
6741 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6742 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
6743 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6744 - bus_activate_service -> bus_start_service_by_name
6745 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6746 - bus_acquire_service -> bus_request_name
6747 - dbus_bus_acquire_service -> dbus_bus_request_name
6748 - bus_service_exists -> bus_name_has_owner
6749 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6751 * python/dbus.py: Rename of methods
6752 - activate_service -> start_service_by_name
6753 - bus_acquire_service -> bus_request_name
6754 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
6755 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6758 2005-01-24 Joe Shaw <joeshaw@novell.com>
6760 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6761 signature for the method that can't be found.
6763 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6764 the message has any arguments, we need to call
6765 _dbus_type_reader_get_current_type(), not
6766 _dbus_type_reader_has_next().
6768 2005-01-24 Havoc Pennington <hp@redhat.com>
6770 * dbus/dbus-message-factory.c: more testing of message validation
6772 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6775 2005-01-23 Havoc Pennington <hp@redhat.com>
6777 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
6778 get this all working, not many tests in the framework yet though
6780 2005-01-22 Havoc Pennington <hp@redhat.com>
6782 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6783 tutorial, based on work from David Wheeler.
6785 2005-01-21 Havoc Pennington <hp@redhat.com>
6787 * dbus/dbus-bus.c: add more return_if_fail checks
6789 * dbus/dbus-message.c (load_message): have the "no validation"
6790 mode (have to edit the code to toggle the mode for now though)
6792 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6793 skips all validation; I want to use this at least for benchmark
6794 baseline, I'm not sure if it should be a publicly-available switch.
6796 2005-01-21 Havoc Pennington <hp@redhat.com>
6798 * glib/dbus-gmain.c: don't put the GLib bindings in the same
6799 toplevel doxygen group as the low-level API stuff
6801 * dbus/dbus.h: note that libdbus is the low-level API
6803 2005-01-20 Havoc Pennington <hp@redhat.com>
6805 * update-dbus-docs.sh: script to update docs on the web site, only
6806 works for me though. neener.
6808 2005-01-20 Havoc Pennington <hp@redhat.com>
6810 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6811 code can reveal bugs in it
6813 2005-01-20 Havoc Pennington <hp@redhat.com>
6815 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6816 select() version, patches from Tor Lillqvist
6818 2005-01-20 Havoc Pennington <hp@redhat.com>
6820 * doc/dbus-tutorial.xml: replace > with >
6822 * bus/services.c (bus_registry_acquire_service): validate the name
6823 and return a better error if it's no good.
6825 * doc/dbus-specification.xml: note NO_AUTO_START change
6827 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6828 from AUTO_START, we're toggling the default
6830 * bus/dispatch.c: adapt the tests to change of auto-start default
6832 2005-01-18 Havoc Pennington <hp@redhat.com>
6834 * rename dbus-daemon-1 to dbus-daemon throughout
6836 2005-01-18 Havoc Pennington <hp@redhat.com>
6838 * Throughout, grand renaming to strip out the use of "service",
6839 just say "name" instead (or "bus name" when ambiguous). Did not
6840 change the internal code of the message bus itself, only the
6841 programmer-facing API and messages.
6843 * doc/dbus-specification.xml: further update the message bus section
6845 * bus/config-parser.c (all_are_equiv): fix bug using freed string
6848 2005-01-17 Havoc Pennington <hp@redhat.com>
6850 * dbus/dbus-types.h: remove 16-bit types since we don't use them
6853 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6854 "invalid name character" not only non-ASCII
6856 * doc/dbus-specification.xml: further update spec, message bus
6857 parts are still out-of-date but the marshaling etc. stuff is now
6860 2005-01-17 Havoc Pennington <hp@redhat.com>
6862 * doc/dbus-specification.xml: partially update spec
6864 2005-01-17 Havoc Pennington <hp@redhat.com>
6866 * Throughout, align variant bodies according to the contained
6867 type, rather than always to 8. Should save a fair bit of space in
6870 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6871 fix handling of case where p == end
6873 * doc/TODO: remove the dbus_bool_t item and variant alignment items
6875 2005-01-17 Havoc Pennington <hp@redhat.com>
6877 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6879 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6880 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
6881 are marshaling/unmarshaling a boolean.
6883 2005-01-16 Havoc Pennington <hp@redhat.com>
6885 This is about it on what can be disabled/deleted from libdbus
6886 easily, back below 150K anyhow. Deeper cuts are more work than
6887 just turning the code off as I've done here.
6889 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6890 signed int convenience funcs
6892 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6895 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6896 things out of libdbus
6898 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6900 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6901 tests-enabled-only, though it should probably be deleted)
6903 * dbus/dbus-message-util.c: same stuff
6905 * dbus/dbus-auth-util.c: same stuff
6907 2005-01-16 Havoc Pennington <hp@redhat.com>
6909 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6911 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6912 way for stripping down dbus-userdb.c stuff included in libdbus.
6913 Rename _dbus_parse_uid for consistency.
6915 2005-01-16 Havoc Pennington <hp@redhat.com>
6917 * dbus/dbus-internals.c (_dbus_real_assert): print the function
6918 name the assertion failed in
6920 * dbus/dbus-internals.h (_dbus_return_if_fail)
6921 (_dbus_return_val_if_fail): assert that the name of the function
6922 containing the check doesn't start with '_', since we only want to
6923 use checks on public functions
6925 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6926 checks to assertions
6928 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6929 change checks to asserts for private function
6931 * dbus/dbus-message.c (_dbus_message_set_serial): checks
6932 to asserts for private function
6934 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6935 broken assertion that was breaking make check
6936 (_dbus_type_reader_array_is_empty): remove this rather than fix
6937 it, was only used in assertions
6939 2005-01-16 Havoc Pennington <hp@redhat.com>
6941 * test/unused-code-gc.py: hacky script to find code that's used
6942 only by the bus (not libdbus) or used only by tests or not used at
6943 all. It has some false alarms, but looks like we can clean up a
6944 lot of size from libdbus.
6946 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6947 dbus/Makefile.am: initially move 10K of binary size out of libdbus
6949 2005-01-16 Havoc Pennington <hp@redhat.com>
6951 * Add and fix docs according to Doxygen warnings throughout
6954 * dbus/dbus-marshal-recursive.c
6955 (_dbus_type_reader_array_is_empty): change this to just call
6956 array_reader_get_array_len() and make it static
6958 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6960 (dbus_message_iter_init_append): rename from append_iter_init
6962 * dbus/dbus-marshal-recursive.c
6963 (_dbus_type_reader_get_element_type): rename from
6964 _dbus_type_reader_get_array_type
6966 2005-01-15 Havoc Pennington <hp@redhat.com>
6968 * test/glib/test-profile.c (with_bus_server_filter): fix crash
6970 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6971 when DBUS_DISABLE_ASSERT
6972 (_dbus_marshal_set_basic): be sure we align for the string length
6974 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6977 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6978 inline macro version
6979 (_dbus_string_set_byte): provide inline macro version
6981 2005-01-15 Havoc Pennington <hp@redhat.com>
6983 * Land the new message args API and type system.
6985 This patch is huge, but the public API change is not
6986 really large. The set of D-BUS types has changed somewhat,
6987 and the arg "getters" are more geared toward language bindings;
6988 they don't make a copy, etc.
6990 There are also some known issues. See these emails for details
6992 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6993 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6995 * dbus/dbus-marshal-*: all the new stuff
6997 * dbus/dbus-message.c: basically rewritten
6999 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7000 freed blocks to be all non-nul bytes so using freed memory is less
7001 likely to work right
7003 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7004 DBUS_FAIL_MALLOC=N environment variable, so you can do
7005 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7006 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7009 * qt/message.cpp: port to the new message args API
7010 (operator<<): use str.utf8() rather than str.unicode()
7011 (pretty sure this is right from the Qt docs?)
7013 * glib/dbus-gvalue.c: port to the new message args API
7015 * bus/dispatch.c, bus/driver.c: port to the new message args API
7017 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7018 "locked" flag to TRUE and align_offset to 0; I guess we never
7019 looked at these anyhow, but seems cleaner.
7021 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7022 move allocation padding macro to this header; use it to implement
7023 (_DBUS_STRING_STATIC): ability to declare a static string.
7025 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7026 change to return TRUE if the interface is not set.
7028 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7029 to dbus-marshal-validate.[hc]
7031 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7034 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7035 to dbus-marshal-*.[hc]
7037 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7038 function here from dbus-marshal.c
7040 2005-01-12 Joe Shaw <joeshaw@novell.com>
7042 * NEWS: Update for 0.23.
7044 * configure.in: Release 0.23.
7046 2005-01-12 Joe Shaw <joeshaw@novell.com>
7048 * mono/Makefile.am, mono/example/Makefile.am: Always build the
7049 dbus DLL with --debug. Clean up after the .mdb files this leaves
7052 * mono/doc/Makefile.am: Need to uninstall the docs on "make
7055 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7056 is an enum, get the enum's underlying type. Another mono
7059 2005-01-11 Joe Shaw <joeshaw@novell.com>
7061 Patch from Sjoerd Simons <sjoerd@luon.net>
7063 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7064 DESTDIR. It breaks stuff.
7066 2005-01-11 Joe Shaw <joeshaw@novell.com>
7068 Patch from Tambet Ingo <tambet@ximian.com>
7070 * mono/DBusType/Array.cs (Get): Get the underlying element type by
7071 calling type.GetElementType(). The code previously depended on
7072 broken Mono behavior, which was fixed in Mono 1.1.3.
7074 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7075 Activator.CreateInstance() so that the class's constructor is
7076 called with the right parameters.
7078 2005-01-11 Joe Shaw <joeshaw@novell.com>
7080 Patch from Timo Teräs <ext-timo.teras@nokia.com>
7082 * dbus/dbus-connection.c
7083 (_dbus_connection_queue_received_message_link): Call
7084 _dbus_connection_remove_timeout() instead of the _locked()
7085 variant, since it's always called from
7086 _dbus_connection_handle_watch(), which handles the locking.
7087 Removed the _locked() variant since it's no longer used.
7089 2005-01-03 Havoc Pennington <hp@redhat.com>
7091 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7094 2004-12-26 Havoc Pennington <hp@redhat.com>
7096 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7098 2005-01-03 Havoc Pennington <hp@redhat.com>
7100 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7103 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7105 2005-01-02 Havoc Pennington <hp@redhat.com>
7107 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7109 2005-01-01 Havoc Pennington <hp@redhat.com>
7111 * configure.in: add -Wfloat-equal
7113 2005-01-01 Havoc Pennington <hp@redhat.com>
7115 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
7116 for a variety of reasons '==' doesn't do this.
7118 2004-12-31 Havoc Pennington <hp@redhat.com>
7120 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7121 I keep wishing I had
7123 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7125 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7127 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7129 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7130 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7131 dbus-protocol.h. Because they are defines and not enums they are not
7134 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
7136 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7137 dbus_bus_activate_service
7139 * python/dbus.py (Bus.activate_service): activate a service on the
7142 2004-12-24 Havoc Pennington <hp@redhat.com>
7144 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7145 file format has also changed and I haven't adapted to that yet
7147 * Makefile.am: load .gcno files from latest gcc
7149 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
7150 * Patch from Rob Taylor <robtaylor@fastmail.fm>
7152 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7155 * python/dbus.py (get_unix_user): Added binding to
7156 call dbus_bindings.bus_get_unix_user
7158 * python/extract.py: Modified the proto_pat regex to
7159 handle unsigned long
7161 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7163 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7164 better POSIX compliance.
7166 2004-12-19 Havoc Pennington <hp@redhat.com>
7168 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
7169 (_dbus_string_insert_8_aligned): new functions
7171 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7173 2004-12-18 Havoc Pennington <hp@redhat.com>
7175 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7178 * dbus/dbus-message.c: fix a comment, and add a still-unused
7179 not-implemented function
7181 * dbus/dbus-marshal.h: fix comment
7183 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7185 2004-12-17 Joe Shaw <joeshaw@novell.com>
7187 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7188 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7189 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7190 Type.UnderlyingSystemType to get the actual system type
7191 underneath. This code previously depended on the broken Mono
7192 behavior, which was fixed in 1.1.3.
7194 2004-11-27 Havoc Pennington <hp@redhat.com>
7196 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7198 (_dbus_string_get_const_data): inline when asserts are disabled
7200 * dbus/dbus-message.c: record the _dbus_current_generation of
7201 creation so we can complain if dbus_shutdown() is used improperly.
7202 Do this only if checks are enabled.
7204 * dbus/dbus-connection.c: ditto
7206 2004-11-26 Havoc Pennington <hp@redhat.com>
7208 * test/glib/test-profile.c: add with_bus mode to profile echoes
7209 that go through the bus.
7211 * test/glib/run-test.sh: add ability to run test-profile
7213 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7216 2004-11-26 Havoc Pennington <hp@redhat.com>
7218 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7219 thing was implemented
7221 2004-11-26 Havoc Pennington <hp@redhat.com>
7223 * test/glib/test-profile.c: tweak a bit, add support for some
7224 made-up minimal malloc overhead with plain sockets, since in
7225 real life some sort of buffers are unavoidable thus we could
7226 count them in the theoretical best case
7228 2004-11-26 Havoc Pennington <hp@redhat.com>
7230 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7231 where I was trying to cache one too many messages
7233 2004-11-26 Havoc Pennington <hp@redhat.com>
7235 * dbus/dbus-message.c: reimplement message cache as an array which
7236 makes the cache about twice as fast and saves maybe 1.5% overall
7238 2004-11-26 Havoc Pennington <hp@redhat.com>
7240 * dbus/dbus-threads.c (init_global_locks): forgot to put the
7241 message cache lock here
7243 2004-11-26 Havoc Pennington <hp@redhat.com>
7245 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7246 the "char byte_order" next to each other to save 4 bytes
7247 (dbus_message_new_empty_header): reduce preallocation, since the
7248 message cache should achieve a similar effect
7249 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7250 message cache that keeps a few DBusMessage around in a pool,
7251 another 8% speedup or so.
7253 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7255 2004-11-25 Havoc Pennington <hp@redhat.com>
7257 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7258 to write, without reading or blocking, try it before the poll()
7259 and skip the poll() if nothing remains to write. This is about a
7260 3% speedup in the echo client/server
7262 2004-11-25 Havoc Pennington <hp@redhat.com>
7264 The primary change here is to always write() once before adding
7265 the write watch, which gives us about a 10% performance increase.
7267 * dbus/dbus-transport-unix.c: a number of modifications to cope
7268 with removing messages_pending
7269 (check_write_watch): properly handle
7270 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7271 messages_pending stuff
7272 (check_read_watch): properly handle WAITING_FOR_MEMORY and
7274 (unix_handle_watch): after writing, see if the write watch can be
7276 (unix_do_iteration): assert that write_watch/read_watch are
7277 non-NULL rather than testing that they aren't, since they
7278 aren't allowed to be NULL. check_write_watch() at the end so
7279 we add the watch if we did not finish writing (e.g. got EAGAIN)
7281 * dbus/dbus-transport-protected.h: remove messages_pending call,
7282 since it resulted in too much inefficient watch adding/removing;
7283 instead we now require that the transport user does an iteration
7284 after queueing outgoing messages, and after trying the first
7285 write() we add a write watch if we got EAGAIN or exceeded our
7286 max bytes to write per iteration setting
7288 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7291 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7292 freed and then accessed, valgrind flagged this bug, fix it
7294 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7295 as the last valid field plus 1, where really it is equal to the
7296 last valid field. Corrects some message corruption issues.
7298 * dbus/dbus-mainloop.c: verbosity changes
7300 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7301 instead of aborting in one of the test codepaths
7303 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7304 caused not printing the pid ever again if a verbose was missing
7305 the newline at the end
7306 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7308 * dbus/dbus-connection.c: verbosity changes;
7309 (dbus_connection_has_messages_to_send): new function
7310 (_dbus_connection_message_sent): no longer call transport->messages_pending
7311 (_dbus_connection_send_preallocated_unlocked): do one iteration to
7312 try to write() immediately, so we can avoid the write watch. This
7313 is the core purpose of this patchset
7314 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7315 dump the outgoing message queue, so nobody will get confused
7316 trying to send them or thinking stuff is pending to be sent
7318 * bus/test.c: verbosity changes
7320 * bus/driver.c: verbosity/assertion changes
7322 * bus/dispatch.c: a bunch of little tweaks to get it working again
7323 because this patchset changes when/where you need to block.
7325 2004-11-23 Havoc Pennington <hp@redhat.com>
7327 * test/glib/test-profile.c: modify to accept a plain_sockets
7328 argument in which case it will bench plain sockets instead of
7329 libdbus, for comparison purposes.
7331 2004-11-22 Havoc Pennington <hp@redhat.com>
7333 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7334 threads for more time, so sysprof can get a grip on it.
7336 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7339 2004-11-13 Havoc Pennington <hp@redhat.com>
7341 * test/glib/test-profile.c: fix this thing up a bit
7343 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7344 preallocation sizes by a fair bit; not sure if this will be an
7345 overall performance win or not, but it does reduce reallocs.
7347 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7348 the test hack that forced constant realloc if asserts are
7349 disabled, so we can profile sanely. Sprinkle in some
7350 _DBUS_UNLIKELY() which are probably pointless, but before I
7351 noticed the real performance problem I put them in.
7352 (_dbus_string_validate_utf8): micro-optimize this thing a little
7353 bit, though callgrind says it didn't help; then special-case
7354 ascii, which did help a lot; then be sure we detect nul bytes as
7355 invalid, which is a bugfix.
7356 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7357 superstition; use memset to nul the padding instead of a manual
7359 (_dbus_string_get_length): inline this as a
7360 macro; it showed up in the profile because it's used for loop
7363 2004-11-10 Colin Walters <walters@verbum.org>
7365 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7368 2004-11-09 Colin Walters <walters@verbum.org>
7370 * dbus/dbus-string.c (_dbus_string_get_length): New
7371 function, writes DBusString to C buffer.
7373 * dbus/dbus-string.h: Prototype it.
7375 * dbus/dbus-message.c (dbus_message_type_to_string): New
7376 function, converts message type into C string.
7378 * dbus/dbus-message.h: Prototype it.
7380 * bus/selinux.c (bus_selinux_check): Take source pid,
7381 target pid, and audit data. Pass audit data to
7383 (log_audit_callback): New function, appends extra
7385 (bus_selinux_allows_acquire_service): Also take
7386 service name, add it to audit data.
7387 (bus_selinux_allows_send): Also take message
7388 type, interface, method member, error name,
7389 and destination, and add them to audit data.
7390 (log_cb): Initialize func_audit.
7392 * bus/selinux.h (bus_selinux_allows_acquire_service)
7393 (bus_selinux_allows_send): Update prototypes
7395 * bus/services.c (bus_registry_acquire_service): Pass
7396 service name to bus_selinux_allows_acquire_service.
7398 * bus/bus.c (bus_context_check_security_policy): Pass
7399 additional audit data. Move assignment of dest
7402 2004-11-07 Colin Walters <walters@verbum.org>
7404 * dbus/dbus-transport-unix.c (do_authentication): Always
7405 initialize auth_completed.
7407 2004-11-07 Colin Walters <walters@verbum.org>
7409 * bus/bus.c (load_config): Break into three
7410 separate functions: process_config_first_time_only,
7411 process_config_every_time, and process_config_postinit.
7412 (process_config_every_time): Move call of
7413 bus_registry_set_service_context_table into
7414 process_config_postinit.
7415 (process_config_postinit): New function, does
7416 any processing that needs to happen late
7417 in initialization (and also on reload).
7418 (bus_context_new): Instead of calling load_config,
7419 open config parser here and call process_config_first_time_only
7420 and process_config_every_time directly. Later, after
7421 we have forked but before changing UID,
7422 invoke bus_selinux_full_init, and then call
7423 process_config_postinit.
7424 (bus_context_reload_config): As in bus_context_new,
7425 load parse file inside here, and call process_config_every_time
7426 and process_config_postinit.
7428 * bus/services.h, bus/services.c
7429 (bus_registry_set_service_context_table): Rename
7430 from bus_registry_set_sid_table. Take string hash from config
7431 parser, and convert them here into SIDs.
7433 * bus/config-parser.c (struct BusConfigParser): Have
7434 config parser only store a mapping of service->context
7436 (merge_service_context_hash): New function.
7437 (merge_included): Merge context string hashes instead
7438 of using bus_selinux_id_table_union.
7439 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7440 simply create a new string hash.
7441 (bus_config_parser_unref): Unref it.
7442 (start_selinux_child): Simply insert strings into hash,
7443 don't call bus_selinux_id_table_copy_over.
7445 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7446 (bus_selinux_id_table_copy_over): Delete.
7448 2004-11-03 Colin Walters <walters@verbum.org>
7450 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7453 2004-11-03 Colin Walters <walters@verbum.org>
7455 * bus/test-main.c (test_pre_hook): Fix test logic,
7456 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7458 2004-11-02 Colin Walters <walters@redhat.com>
7460 * bus/selinux.c (bus_selinux_init): Split into two functions,
7461 bus_selinux_pre_init and bus_selinux_post_init.
7462 (bus_selinux_pre_init): Just determine whether SELinux is
7464 (bus_selinux_post_init): Do everything else.
7466 * bus/main.c (main): Call bus_selinux_pre_init before parsing
7467 config file, and bus_selinux_post_init after. This ensures that
7468 we don't lose the policyreload notification thread that
7469 bus_selinux_init created before forking previously.
7471 * bus/test-main.c (test_pre_hook): Update for split.
7473 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
7475 Patch from Johan Fischer <linux@fischaz.com>
7477 * mono/doc/Makefile.am (install-data-local): Added directory
7480 2004-10-29 Colin Walters <walters@redhat.com>
7482 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7483 parameter for fd to write pid to.
7485 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7487 * bus/bus.c (bus_context_new): Pass print_pid_fd
7488 to _dbus_become_daemon (bug #1720)
7490 2004-10-29 Colin Walters <walters@redhat.com>
7492 Patch from Ed Catmur <ed@catmur.co.uk>
7494 * mono/doc/Makefile.am (install-data-local): Handle
7497 2004-10-29 Colin Walters <walters@redhat.com>
7499 * bus/.cvsignore, qt/.cvsignore: Update.
7501 2004-10-29 Colin Walters <walters@redhat.com>
7503 Patch from Kristof Vansant <de_lupus@pandora.be>
7505 * configure.in: Detect Slackware.
7506 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7507 * bus/rc.messagebus.in: New file.
7509 2004-10-29 Colin Walters <walters@redhat.com>
7511 * tools/dbus-monitor.c (filter_func): Return
7512 DBUS_HANDLER_RESULT_HANDLED in filter function
7514 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7516 2004-10-29 Colin Walters <walters@redhat.com>
7518 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7520 * bus/services.c (bus_registry_acquire_service):
7521 Correctly retrieve service name from DBusString
7524 2004-10-29 Colin Walters <walters@redhat.com>
7526 * dbus/dbus-glib.h: Update documentation to not
7527 refer to internal APIs.
7529 2004-10-27 Joe Shaw <joeshaw@novell.com>
7531 * mono/Arguments.cs (GetDBusTypeConstructor):
7532 type.UnderlyingSystemType will return "System.Byte" if you do it
7533 on "byte[]", which is not what we want. So check the type.IsArray
7534 property and use System.Array instead.
7536 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
7538 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7539 the DBusUserInfo structure since this is passed into the function.
7540 This would cause a double free when the function that allocated
7541 the structure would try to free it when an error occured.
7543 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7544 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7545 for service activation to avoid 32bit/64bit parallel install issues
7547 2004-10-21 Colin Walters <walters@verbum.org>
7549 * AUTHORS: Fix my email address, the @gnu.org one
7550 has been bouncing for some time. Also add J5.
7552 2004-10-21 Colin Walters <walters@verbum.org>
7554 * dbus/dbus-transport-unix.c (do_authentication): Return
7555 authentication status to callers.
7556 (unix_handle_watch): If we completed authentication this round,
7557 don't do another read. Instead wait until the next iteration,
7558 after we've read any pending data in the auth buffer.
7559 (unix_do_iteration): Ditto.
7560 (unix_handle_watch): Updated for new do_authentication prototype.
7562 2004-10-18 Colin Walters <walters@verbum.org>
7564 * bus/selinux.c (bus_selinux_enabled): Handle
7565 --disable-selinux case.
7567 2004-10-18 Colin Walters <walters@verbum.org>
7569 * bus/selinux.h: Add bus_selinux_enabled.
7571 * bus/selinux.c (bus_selinux_enabled): Implement it.
7573 * bus/config-parser.c (struct include): Add
7574 if_selinux_enabled member.
7575 (start_busconfig_child): Parse if_selinux_enabled
7576 attribute for include.
7577 (bus_config_parser_content): Handle it.
7579 * bus/session.conf.in, bus/system.conf.in: Add
7580 inclusion of context mapping to default config files;
7581 conditional on SELinux being enabled.
7583 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7585 * test/data/invalid-config-files/badselinux-1.conf,
7586 test/data/invalid-config-files/badselinux-2.conf:
7587 Test files for bad syntax.
7589 2004-10-17 Colin Walters <walters@verbum.org>
7591 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7592 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7593 format specifier mismatches.
7595 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
7597 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7600 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7601 pointer (bug #1540, Leonardo Boiko).
7603 2004-09-28 Jon Trowbridge <trow@ximian.com>
7605 * mono/BusDriver.cs: Changed BusDriver struct to remove
7606 the ServiceCreated and ServiceDeleted events and replace them
7607 with the new ServiceOwnerChanged event.
7609 * mono/example/BusListener.cs: Added a new example program,
7610 which listens for and reports any ServiceOwnerChanged events
7613 * mono/example/Makefile.am (DESTDIR): Build changes for the
7614 new BusListener.cs example.
7616 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
7618 * bus/signals.c (bus_match_rule_parse): validate the components of
7619 match rules (bug #1439).
7621 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7623 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
7625 * doc/dbus-specification.xml: document ServiceOwnerChanged
7628 * bus/driver.c, bus/driver.h, bus/services.c: Use
7629 ServiceOwnerChanged signal instead of ServiceCreated and
7632 * bus/dispatch.c: update testcase for the new signal.
7634 2004-09-20 Jon Trowbridge <trow@ximian.com>
7636 Patch from Nat Friedman <nat@novell.com>
7638 * mono/Makefile.am: A number of small build fixes to allow "make
7639 distcheck" to succeed.
7641 * mono/example/Makefile.am: "make distcheck" fixes.
7643 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7646 * test/Makefile.am: "make distcheck" fixes.
7648 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7650 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7652 * doc/busconfig.dtd: update the DTD for the at_console attribute.
7654 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7655 messages after the first one (bug #1389).
7657 * bus/dispatch.c (check_double_hello_message): add a test case for
7658 the double hello message bug.
7659 (check_existent_service_activation): fix check of spawning error.
7661 2004-09-16 David Zeuthen <david@fubar.dk>
7663 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7665 2004-09-12 David Zeuthen <david@fubar.dk>
7667 Patch from Kay Sievers <kay.sievers@vrfy.org>
7669 * bus/bus.c (bus_context_new):
7671 * bus/main.c (usage)
7673 Add commandline option --nofork to override configuration file
7676 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7678 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7679 compilers don't like it (bug #974).
7681 2004-09-04 Harald Fernengel <harry@kdevelop.org>
7683 * qt/connection.*: Applied patch by Jérôme Lodewyck
7684 <lodewyck@clipper.ens.fr> to integrate an existing
7685 connection into the Qt eventloop
7687 2004-08-30 Jon Trowbridge <trow@ximian.com>
7689 * mono/BusDriver.cs: Added. This is a class for interacting with
7690 the org.freedesktop.DBus service.
7692 * mono/Message.cs: Added a mechanism to expose the message that is
7693 currently being dispatched via the static Message.Current
7694 property. Added Message.Sender and Message.Destination
7697 * mono/Handler.cs: Expose the dispatched message via
7698 Message.Current when handling method calls.
7700 * mono/Service.cs: Expose the dispatched message via
7701 Message.Current when handling signal emissions.
7703 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7704 Connection.BaseService property.
7706 2004-08-28 Havoc Pennington <hp@redhat.com>
7708 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7710 More fixes from Steve Grubb
7712 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7713 (_dbus_listen_tcp_socket): fix fd leak
7715 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7716 EINTR to a bit lower in the code
7718 2004-08-26 Jon Trowbridge <trow@ximian.com>
7720 * bus/driver.c (bus_driver_handle_service_exists): Respond with
7721 TRUE if we are inquiring about the existence of the built-in
7722 org.freedesktop.DBus service.
7724 2004-08-25 John Palmieri <johnp@redhat.com>
7725 * bus/config-parser.c:
7726 (struct PolicyType): Add POLICY_CONSOLE
7727 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7728 (start_busconfig_child): Sets up console element when
7729 <policy at_console=""> is encountered in a policy file
7730 (append_rule_from_element): Convert console elements to console
7734 (bus_policy_create_client_policy): Add console rules to the client
7735 policy based on if the client is at the console
7736 (bus_policy_append_console_rule): New function for adding a
7737 console rule to a policy
7738 (bus_policy_merge): Handle console rule merging
7740 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7741 where we check for console user files
7743 * dbus/dbus-sysdeps.c:
7744 (_dbus_file_exists): New function which checks if the given
7746 (_dbus_user_at_console): New function which does the system
7747 specific process of checking if the user is at the console
7749 * dbus/dbus-userdb.c:
7750 (_dbus_is_console_user): New function converts a UID to user name
7751 and then calls the system specific _dbus_user_at_console to
7752 see if the user is at the console and therefor a console user
7754 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
7756 * bus/config-parser.c (set_limit):
7757 * bus/dbus-daemon-1.1.in:
7758 * test/data/valid-config-files/many-rules.conf: set the
7759 max_match_rules_per_connection limt from the config file.
7761 * doc/busconfig.dtd: update the DTD.
7763 * bus/driver.c: remove some unused variables.
7765 2004-08-24 Mikael Hallendal <micke@imendio.com>
7767 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
7768 it's been replaced by dbus_g_bus_get
7770 2004-08-23 Colin Walters <walters@redhat.com>
7772 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7774 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7776 * bus/selinux.c: Create a thread for policy reload notification.
7777 (bus_selinux_get_policy_root): Implement.
7779 * bus/config-parser.c (start_busconfig_child)
7780 (bus_config_parser_content): Support SELinux-root relative
7783 * configure.in <HAVE_SELINUX>: Add -lpthread.
7785 * bus/test-main.c (test_pre_hook, test_post_hook): New.
7786 (test_post_hook): Move memory checking into here.
7787 (test_pre_hook, test_post_hook): Move SELinux checks in
7788 here, but conditional on a DBUS_TEST_SELINUX environment
7789 variable. Unfortunately we can't run the SELinux checks
7790 as a normal user, since they won't have any permissions
7791 for /selinux. So this will have to be tested manually
7792 for now, until we have virtualization for most of
7795 2004-08-23 Havoc Pennington <hp@redhat.com>
7797 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7798 drop supplementary groups, suggested by Steve Grubb
7800 2004-08-20 Colin Walters <walters@redhat.com>
7802 * bus/config-parser.c (start_busconfig_child): Remove some unused
7805 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7808 2004-08-17 Joe Shaw <joeshaw@novell.com>
7810 * configure.in: If --enable-mono is passed in, if we can't find
7813 * mono/Makefile.am: Use /gacutil to install assemblies into the
7816 2004-08-12 Havoc Pennington <hp@redhat.com>
7818 * NEWS: update for 0.22
7820 * configure.in: release 0.22
7822 2004-08-11 Colin Walters <walters@redhat.com>
7824 * tools/dbus-send.c (main, usage): Add --reply-timeout
7827 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
7829 * bus/bus.c (process_config_first_time_only): get rid of an unused
7830 DBusError that was causing a memoy leak (bug #989).
7832 * dbus/dbus-keyring.c, dbus/dbus-message.c:
7833 fix compilation on Solaris/Forte C (bug #974)
7835 * bus/main.c (main): plug two minuscule memleaks.
7837 2004-08-10 Havoc Pennington <hp@redhat.com>
7839 * doc/dbus-tutorial.xml: add some more info on GLib bindings
7841 2004-08-09 Havoc Pennington <hp@redhat.com>
7843 * COPYING: switch to Academic Free License version 2.1 instead of
7844 2.0, to resolve complaints about patent termination clause.
7846 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
7848 * README: added documentation for the --enable-python
7851 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7853 * bus/config-parser.c (bus_config_parser_new): fix an invalid
7854 _unref in the SELinux support.
7856 * doc/busconfig.dtd: update DTD for SELinux support.
7858 * bus/config-loader-libxml.c: fix error handler and parser
7859 initialisation/cleanup. OOM test now works with libxml2 HEAD.
7861 * configure.in: remove the warning about libxml2.
7863 * dbus/dbus-bus.c: silence doxygen warning.
7865 2004-07-31 Colin Walters <walters@redhat.com>
7867 * configure.in: Move #error in SELinux check to its own line.
7869 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7871 * dbus/dbus-internals.h (_DBUS_SET_OOM):
7872 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7875 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7876 broken by the change in the _SET_OOM macros.
7878 2004-07-31 Colin Walters <walters@redhat.com>
7880 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7883 2004-07-31 Colin Walters <walters@redhat.com>
7885 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7886 to correctly detect DBUS__ACQUIRE_SVC. Also add an
7889 2004-07-24 Havoc Pennington <hp@redhat.com>
7891 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7893 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7896 * configure.in: add --enable-selinux
7898 * bus/policy.c (bus_policy_merge): add FIXME to a comment
7900 * bus/main.c (main): initialize and shut down selinux
7902 * bus/connection.c: store SELinux ID on each connection, to avoid
7903 repeated getting of the string context and converting it into
7906 * bus/bus.c (bus_context_get_policy): new accessor, though it
7908 (bus_context_check_security_policy): check whether the security
7909 context of sender connection can send to the security context of
7910 recipient connection
7912 * bus/config-parser.c: add parsing for <selinux> and <associate>
7914 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7915 implement dbus_connection_get_unix_fd()
7917 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7918 function, used by the selinux stuff
7920 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
7922 * bus/config-loader-libxml.c: complete the implementation of
7923 libxml backend for config file loader. Doesn't work with full OOM
7926 * configure.in: change error when selecting libxml into a warning.
7928 * test/data/invalid-config-files: add two non-well-formed XML
7931 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7933 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7934 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7935 be necessary to read all the buffer. (bug #894)
7937 * bus/activation.c (bus_activation_activate_service): fix a
7938 potential assertion failure (bug #896). Small optimization in the
7939 case of auto-activation messages.
7941 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7942 add test case for byte-through-vararg bug (#901). patch by Kimmo
7945 2004-07-28 Anders Carlsson <andersca@gnome.org>
7948 * python/dbus_bindings.pyx.in:
7949 Add dbus.init_gthreads (), allow emit_signal to pass
7950 arguments to the signal.
7952 2004-07-24 Havoc Pennington <hp@redhat.com>
7954 * AUTHORS: add some people, not really comprehensively, let me
7955 know if I missed you
7957 2004-07-24 Havoc Pennington <hp@redhat.com>
7959 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7962 * test/Makefile.am (DIST_SUBDIRS): here also
7964 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7966 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7967 breaking build on Solaris, reported by Farhad Saberi on the ML.
7969 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7970 va_arg invocation to account for integer promotion in the case of
7971 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7973 * bus/services.c (bus_service_remove_owner): fix bug #902, use
7974 _dbus_list_get_first_link, not _dbus_list_get_first.
7976 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7978 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7979 handler functions so that the asserts in _dbus_object_subtree_unref
7982 * dbus/dbus-transport-unix.c (do_reading):
7983 _dbus_transport_queue_messages return value is of type
7984 dbus_bool_t, not DBusDispatchStatus.
7986 2004-07-19 David Zeuthen <david@fubar.dk>
7988 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7991 (check_get_connection_unix_user): Debug says GetProperty; but the
7992 method is called GetConnectionUnixUser
7993 (check_get_connection_unix_process_id): New function
7994 (bus_dispatch_test): Actually call check_get_connection_unix_user();
7995 also call check_get_connection_unix_process_id()
7998 (bus_driver_handle_get_connection_unix_process_id): New function,
7999 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8003 (handle_server_data_external_mech): Set pid from the credentials
8004 obtained from the socket
8006 * dbus/dbus-connection.c:
8007 (dbus_connection_get_unix_process_id): New function
8009 * dbus/dbus-connection.h:
8010 Add prototype for dbus_connection_get_unix_process_id
8012 * dbus/dbus-transport.c:
8013 (_dbus_transport_get_unix_process_id): New function
8015 * dbus/dbus-transport.h:
8016 Add prototype for _dbus_transport_get_unix_process_id
8018 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
8020 * dbus/dbus-message.c: Message counter fix, patch by Christian
8021 Hammond <chipx86@gnupdate.org>
8023 2004-07-18 Seth Nickell <seth@gnome.org>
8026 * python/dbus_bindings.pyx.in:
8027 * python/tests/test-client.py:
8029 Add dbus.ByteArray and dbus_bindings.ByteArray
8030 types so that byte streams can be passed back.
8032 Give jdahlin the heaps of credit that are so
8035 2004-07-12 Seth Nickell <seth@gnome.org>
8039 Add message argument to the default object_method_handler
8042 * python/dbus_bindings.pyx.in:
8044 Automatically return NIL when passed an empty list
8045 (we can't pass back a list since lists are typed
8046 and we don't have any idea what type the the client
8047 intended the list to be... :-( )
8049 2004-07-10 Seth Nickell <seth@gnome.org>
8051 * python/examples/Makefile.am:
8053 Fix distcheck breakage caused by new examples.
8055 2004-07-10 Seth Nickell <seth@gnome.org>
8059 Add "message" argument to service-side dbus.Object
8060 methods. This will break existing services written
8061 using the python bindings, but will allow extraction
8062 of all the message information (e.g. who its from).
8064 Add improved "object oriented" signal handling/emission.
8066 * python/examples/example-service.py:
8070 * python/examples/example-signal-emitter.py:
8071 * python/examples/example-signal-recipient.py:
8073 Two new examples that show how to emit and receive
8074 signals using the new APIs.
8076 * python/examples/example-signals.py:
8077 * python/examples/gconf-proxy-service.py:
8078 * python/examples/gconf-proxy-service2.py:
8080 Add "message" argument to service methods.
8082 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
8084 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8085 * dbus/bus.c (dbus_bus_get_unix_user)
8086 * doc/dbus-specification.xml: implement GetConnectionUnixUser
8087 method of org.freedesktop.DBus interface.
8089 * bus/dispatch.c: test case
8091 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
8093 * python/Makefile.am: switched include directory from glib/ to dbus/
8094 since dbus-glib.h moved
8096 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
8098 * configure.in: prevent building the gcj stuff and libxml loader
8099 since they are broken.
8101 2004-06-20 Havoc Pennington <hp@redhat.com>
8103 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
8104 codes from the dbus error names
8106 * glib/dbus-glib.h: move to subdir dbus/ since it's included
8107 as dbus/dbus-glib.h and that breakage is now visible due to
8108 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8110 * glib/dbus-glib.h: s/gproxy/g_proxy/
8112 * dbus/dbus-shared.h: new header to hold stuff shared with
8115 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8118 * glib/dbus-glib.h (dbus_set_g_error): move to
8119 dbus-glib-lowlevel.h
8121 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8122 of stuff to enable this
8124 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8126 * a bunch of other changes with the same basic "separate glib
8127 bindings from dbus.h" theme
8129 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
8131 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8133 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8135 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
8137 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8138 the reply value of the ServiceExists message.
8140 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
8142 * python/dbus_bindings.pyx.in: No longer need to parse path
8143 elements and pass them as arrays of strings. The C API now
8144 accepts plain path strings.
8145 (_build_parsed_path): removed
8147 2004-06-07 Havoc Pennington <hp@redhat.com>
8149 * doc/TODO: remove auto-activation item since it's done; sort
8150 items by importance/milestone
8152 2004-06-07 Havoc Pennington <hp@redhat.com>
8154 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8155 random signature when using REQUIRED_FIELDS (this hack won't work
8158 * dbus/dbus-message.c: change the signature to be a header field,
8159 instead of message->signature special-case string. Incremental
8160 step forward. Then we can fix up code to send the signature in the
8161 message, then fix up code to validate said signature, then fix up
8162 code to not put the typecodes inline, etc.
8163 (load_one_message): don't make up the signature after the fact
8164 (decode_header_data): require signature field for the known
8167 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8169 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8171 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
8173 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8175 * mono/Handler.cs: Updated to follow new path argument for
8176 (un-)registering objects.
8178 * mono/example/Makefile.am:
8180 * configure.in: Bumped required version for mono and use new -pkg
8183 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
8185 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8186 registration functions take the path argument as char* instead of
8189 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8190 split off the path decompostion part of
8191 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8194 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8196 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8198 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8199 machine approach. A state is implemented as a function that
8200 handles incoming events as specified for that state.
8202 * doc/dbus-specification.xml: Update auth protocol state machine
8203 specification to match implementation. Remove some leftover
8206 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8208 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8209 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8212 * Doxyfile.in: remove deprecated options.
8214 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8215 glib/test-thread.h, glib/test-thread-client.c,
8216 glib/test-thread-server.c, glib/test-profile.c,
8217 glib/test-dbus-glib.c: remove these unused files.
8219 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
8221 * dbus/dbus-object-tree.c
8222 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8223 non-fallback handlers (bug #684).
8224 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8225 (find_subtree_recurse): report wether the returned subtree is an
8226 exact match or a "fallback" match higher up in the tree.
8227 (object_tree_test_iteration): update test case.
8229 2004-06-01 Seth Nickell <seth@gnome.org>
8231 * python/dbus_bindings.pyx.in:
8232 * python/tests/test-client.py:
8234 Round off basic type support. Add dicts (yay!), and
8235 remaining array types.
8237 Make MessageIter more general so it works for dicts too.
8239 Mark all loop variables as C integers.
8241 2004-05-31 Havoc Pennington <hp@redhat.com>
8243 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8246 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8248 * glib/dbus-glib-tool.c (main): set up to have a --self-test
8249 option that runs the tests, and start filling in some code
8250 including for starters just dumping the interfaces to stdout
8252 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8254 * test/data/valid-introspection-files/lots-of-types.xml: test of
8255 an example introspection file
8257 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8260 2004-05-31 Seth Nickell <seth@gnome.org>
8262 * python/dbus_bindings.pyx.in:
8263 * python/tests/test-client.py:
8268 Fix string array memory trashing bug... oops...
8270 2004-05-30 Seth Nickell <seth@gnome.org>
8274 Add a nicer-but-less-flexible alternate API for handling
8275 calls to virtual objects in dbus.ObjectTree.
8277 Screw up the argument order to the dbus.Object constructor
8278 for consistency with dbus.ObjectTree (and to make dbus_methods
8279 optional for future extension)
8281 * python/examples/Makefile.am:
8282 * python/examples/gconf-proxy-service.py:
8283 * python/examples/gconf-proxy-service2.py:
8285 Alternate implementation of gconf-proxy-service using the
8286 nicer dbus.ObjectTree API.
8288 * python/examples/example-service.py:
8289 * python/tests/test-server.py
8291 Reverse the argument order to deal with dbus.Object constructor
8294 2004-05-30 Seth Nickell <seth@gnome.org>
8296 * python/examples/example-client.py:
8297 * python/examples/example-service.py:
8299 Take it back. Lists seem to work but they're broken
8300 in the test suite. Make the base examples use
8303 2004-05-30 Seth Nickell <seth@gnome.org>
8305 * python/dbus_bindings.pyx.in:
8306 * python/tests/test-client.py:
8308 Add some more tests and fix errors that crop up.
8309 Unfortunately, currently it seems like marshalling
8310 and unmarshalling of lists is completely broken :-(
8312 2004-05-30 Seth Nickell <seth@gnome.org>
8314 * python/dbus_bindings.pyx.in:
8316 Add support for ObjectPath type.
8320 Refactor message handling code to a common function.
8322 * python/tests/test-client.py:
8323 * python/tests/test-server.py:
8325 Add tests that check to make sure values of all types
8326 can be echoed from a service w/o mangling.
8328 2004-05-29 Seth Nickell <seth@gnome.org>
8332 Add ObjectTree class which allows implementation
8333 of trees of "virtual" objects. Basically the python
8334 wrapper for "register_fallback".
8336 * python/examples/Makefile.am
8337 * python/examples/gconf-proxy-client.py:
8338 * python/examples/gconf-proxy-service.py:
8340 Implement a simple GConf proxy service that supports
8341 get/set on string and int GConf keys using the ObjectTree.
8343 2004-05-29 Seth Nickell <seth@gnome.org>
8346 * python/examples/example-client.py:
8347 * python/examples/example-service.py:
8348 * python/examples/list-system-services.py:
8350 Add SessionBus, SystemBus and ActivationBus classes
8351 so you don't need to know the special little BUS_TYPE
8354 2004-05-29 Havoc Pennington <hp@redhat.com>
8356 * bus/config-parser.c (process_test_valid_subdir): temporarily
8357 stop testing config parser OOM handling, since expat has issues
8358 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8360 * bus/dbus-daemon-1.1.in: change requested_reply to
8361 send_requested_reply/receive_requested_reply so we can send the
8362 replies, not just receive them.
8364 * bus/config-parser.c: parse the new
8365 send_requested_reply/receive_requested_reply
8367 * bus/policy.c (bus_client_policy_check_can_send): add
8368 requested_reply argument and use it
8370 * bus/bus.c (bus_context_check_security_policy): pass through
8371 requested_reply status to message send check
8373 * bus/system.conf.in: adapt to requested_reply change
8375 2004-05-28 Havoc Pennington <hp@redhat.com>
8377 * test/glib/test-service-glib.c (main): remove unused variable
8379 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8381 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8382 from the enum, no longer in use.
8384 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8387 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8388 whether error_name passed in is a valid error name.
8390 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
8392 * dbus/dbus-message.c (dbus_message_get_args): Added support for
8393 OBJECT_PATH and OBJECT_PATH_ARRAY
8395 2004-05-28 Seth Nickell <seth@gnome.org>
8397 * python/examples/Makefile.am:
8399 Forget to add Makefile.am. Do not pass go.
8401 2004-05-28 Michael Meeks <michael@ximian.com>
8403 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
8406 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8408 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8409 (_dbus_message_iter_get_basic_type_array): impl.
8410 drastically simplify ~all relevant _get methods to use these.
8411 (_dbus_message_iter_append_basic_array),
8412 (dbus_message_iter_append_basic): impl
8413 drastically simplify ~all relevant _append methods to use these.
8415 * dbus/dbus-message-builder.c (parse_basic_type)
8416 (parse_basic_array, lookup_basic_type): impl.
8417 (_dbus_message_data_load): prune scads of duplicate /
8420 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
8421 (_dbus_demarshal_basic_type): implement,
8422 (demarshal_and_validate_len/arg): beef up debug.
8423 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8425 2004-05-27 Seth Nickell <seth@gnome.org>
8428 * python/Makefile.am:
8430 Include the example python apps in the tarball.
8432 * python/examples/list-system-services.py
8434 Add a python new example that fetches the list of services
8435 from the system bus.
8437 2004-05-27 Seth Nickell <seth@gnome.org>
8440 * python/dbus_bindings.pyx.in:
8442 Fix failure to notify that a signal was not handled,
8443 resulted in hung functions.
8445 2004-05-25 Colin Walters <walters@redhat.com>
8447 * tools/dbus-monitor.c (main): Monitor all types of messages.
8449 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
8451 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8452 which unregisters the object path and disposes the handler.
8454 2004-05-23 Kristian Høgsberg <krh@redhat.com>
8456 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8458 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8459 operands to && so we call dbus_message_iter_next () for the last
8462 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8464 * dbus/dbus-object-tree.c
8465 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8466 children even if the requested path isn't registered.
8467 (object_tree_test_iteration): test object_tree_list_registered.
8469 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8472 2004-05-20 Kristian Høgsberg <krh@redhat.com>
8474 * doc/TODO: Remove resolved items.
8476 * bus/expirelist.h (struct BusExpireList): remove unused n_items
8479 * bus/connection.c (bus_connections_expect_reply): Enforce the
8480 per-connection limit on pending replies.
8482 Patch from Jon Trowbridge <trow@ximian.com>:
8484 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
8485 up a watch that triggers a config reload when one end of the pipe
8487 (signal_handler): Instead of doing the config reload in our SIGHUP
8488 handler, just write to the reload pipe and let the associated
8489 watch handle the reload when control returns to the main loop.
8491 * bus/driver.c (bus_driver_handle_reload_config): Added.
8492 Implements a ReloadConfig method for requesting a configuration
8493 file reload via the bus driver.
8495 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
8497 * HACKING: Updated release instructions concerning the wiki page.
8499 2004-05-18 Kristian Høgsberg <krh@redhat.com>
8501 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8502 filter against auth->allowed_mechs; we only add allowed mechs in
8503 record_mechanisms().
8505 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8506 ALLOWED_MECHS to auth-script format so we can set the list of
8509 * data/auth/client-out-of-mechanisms.auth-script: New test to
8510 check client disconnects when it is out of mechanisms to try.
8512 * dbus/dbus-auth.c (process_command): Remove check for lines
8513 longer that 1 MB; we only buffer up maximum 16 kB.
8515 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8516 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8517 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8518 assume there might be unused bytes.
8520 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8521 client-out-of-mechs, it is handled in process_reject(). Move check
8522 for max failures to send_rejected(), as it's a server-only thing.
8524 * dbus/dbus-auth.c: Factor out protocol reply code into functions
8525 send_auth(), send_data(), send_rejected(), send_error(),
8526 send_ok(), send_begin() and send_cancel().
8528 2004-05-17 Kristian Høgsberg <krh@redhat.com>
8530 Remove base64 encoding, replace with hex encoding. Original patch
8531 from trow@ximian.com, added error handling.
8533 * dbus/dbus-string.c (_dbus_string_base64_encode)
8534 (_dbus_string_base64_decode): Remove.
8535 (_dbus_string_hex_decode): Add end_return argument so we can
8536 distinguish between OOM and invalid hex encoding.
8537 (_dbus_string_test): Remove base64 tests and add test case for
8540 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8541 Replace base64 with hex.
8543 * test/data/auth/invalid-hex-encoding.auth-script: New test case
8544 for invalid hex encoded data in auth protocol.
8546 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
8548 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8551 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8553 * mono/dbus-sharp.dll.config.in: Added for GAC
8554 * mono/dbus-sharp.snk: Added for GAC
8555 * mono/Assembly.cs.in: Added for GAC
8556 * mono/Makefile.am: Changes for GAC installation
8557 * configure.in: Added refs for dbus-sharp.dll.config.in and
8558 Assembly.cs.in. More fixes for mono testing
8559 * mono/example/Makefile.am: Changed var to CSC
8560 * Makefile.am: Changed flag name to DBUS_USE_CSC
8562 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8564 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8565 * mono/doc/*: Added documentation framework
8566 * configure.in: Added monodoc check
8567 * README: Added description of mono configure flags
8569 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
8571 * doc/dbus-specification.xml: Added a "Required" column to the
8572 header fields table and changed the "zero or more" verbage in
8573 the above paragraph to read "The header must contain the required
8574 named header fields and zero or more of the optional named header
8576 * test/data/invalid-messages/*.message: Added the required PATH
8577 named header field to the tests so that they don't fail on
8578 'Missing path field'
8580 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
8582 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8583 the stack by implicitly defining variable and parameter types and
8584 removing the hack of defining C pointers as python objects and later
8587 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
8589 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8591 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
8593 * mono/DBusType/Dict.cs: Handle empty dicts
8594 * mono/DBusType/Array.cs: Handle empty arrays
8595 * mono/Arguments.cs: Handle empty arguments
8597 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
8599 * dbus-sharp.pc.in: Modified to include include Libs and Requires
8602 2004-04-25 Kristian Høgsberg <krh@redhat.com>
8604 * test/data/valid-messages/standard-*.message: Update message
8605 test scripts to new header field names.
8607 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
8609 * test/break-loader.c (randomly_do_n_things): tracked down buffer
8610 overflow to times_we_did_each_thing array which would chop off the
8611 first character of the failure_dir string. Increased the size of
8612 the array to 7 to reflect the number of random mutation functions
8615 2004-04-21 Kristian Høgsberg <krh@redhat.com>
8617 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8618 unix_server->watch here, it is unreffed in disconnect.
8619 (_dbus_server_new_for_tcp_socket): convert NULL host to
8620 "localhost" here so we don't append NULL to address.
8622 * dbus/dbus-server.c (_dbus_server_test): Add test case for
8623 various addresses, including tcp with no explicit host.
8625 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8627 * dbus/dbus-message.c (decode_header_data, decode_string_field):
8628 fix incorrect setting of .name_offset in the HeaderField (it was
8629 off by two bytes, positioned right after the name and typecode)
8631 * bus/bus.c (bus_context_new, bus_context_unref): test before
8632 calling dbus_server_free_data_slot and _dbus_user_database_unref
8633 in case of an error.
8635 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8638 2004-04-19 Kristian Høgsberg <krh@redhat.com>
8640 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8641 _dbus_poll() instead of select().
8643 2004-04-15 Jon Trowbridge <trow@ximian.com>
8645 * bus/main.c (signal_handler): Reload the configuration files
8647 (main): Set up our SIGHUP handler.
8649 * bus/bus.c (struct BusContext): Store the config file, user and
8650 fork flag in the BusContext.
8651 (process_config_first_time_only): Added. Contains the code
8652 (previously in bus_context_new) for setting up the BusContext from
8653 the BusConfigParser that should only be run the first time the
8654 config files are read.
8655 (process_config_every_time): Added. Contains the code (previously
8656 in bus_context_new) for setting up the BusContext from the
8657 BusConfigParser that should be run every time the config files are
8659 (load_config): Added. Builds a BusConfigParser from the config
8660 files and passes the resulting structure off to
8661 process_config_first_time_only (assuming this is the first time)
8662 and process_config_every_time.
8663 (bus_context_new): All of the config-related code has been moved
8664 to process_config_first_time_only and process_config_every_time.
8665 Now this function just does the non-config-related initializations
8666 and calls load_config.
8667 (bus_context_reload_config): Added.
8669 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
8671 * bus/driver.c (bus_driver_handle_get_service_owner):
8672 implement a GetServiceOwner method.
8673 * doc/dbus-specification.xml: document it.
8674 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8676 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8677 implement, using the bus GetServiceOwner method.
8679 * test/glib/test-dbus-glib.c:
8680 use dbus_gproxy_new_for_service_owner so that we can receive the
8683 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
8685 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8686 dbus/dbus-message.c, dbus/dbus-protocol.h
8687 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8689 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8690 dbus/dbus-message.c, dbus/dbus-protocol.h
8691 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8693 * dbus/dbus-internals.c (_dbus_header_field_to_string):
8694 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8695 DBUS_HEADER_FIELD_SENDER resolves to "sender"
8697 * doc/dbus-specification.xml (Header Fields Table):
8698 s/SERVICE/DESTINATION
8699 s/SENDER_SERVICE/SENDER
8702 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
8704 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8707 2004-04-13 Michael Meeks <michael@ximian.com>
8709 * glib/dbus-gobject.c (handle_introspect): split out
8710 (introspect_properties): this.
8711 (handle_introspect): implement this.
8713 * test/glib/Makefile.am: use the absolute path so the bus
8714 daemon's chdir ("/") doesn't kill us dead.
8716 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8718 2004-04-12 Jon Trowbridge <trow@ximian.com>
8720 * bus/config-parser.c (struct BusConfigParser): Added
8721 included_files field.
8722 (seen_include): Added. Checks whether or not a file has already
8723 been included by any parent BusConfigParser.
8724 (bus_config_parser_new): Copy the parent's included_files.
8725 (include_file): Track which files have been included, and fail on
8726 circular inclusions.
8727 (process_test_valid_subdir): Changed printf to report if we are
8728 testing valid or invalid conf files.
8729 (all_are_equiv): Changed printf to be a bit clearer about
8730 what we are actually doing.
8731 (bus_config_parser_test): Test invalid configuration files.
8733 2004-04-09 Jon Trowbridge <trow@ximian.com>
8735 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8736 argument. If non-null, the newly-constructed BusConfigParser will
8737 be initialized with the parent's BusLimits instead of the default
8739 (include_file): When including a config file, pass in
8740 the current parser as the parent and then copy the BusLimits
8741 from the included BusConfigParser pack to the current parser.
8742 (process_test_valid_subdir): Renamed from process_test_subdir.
8743 (process_test_equiv_subdir): Added. Walks through a directory,
8744 descending into each subdirectory and loading the config files
8745 it finds there. If any subdirectory contains two config files
8746 that don't produce identical BusConfigParser structs, fail.
8747 For now, the BusConfigParser's BusPolicies are not compared.
8748 (bus_config_parser_test): Call both process_test_valid_subdir and
8749 process_test_equiv_subdir.
8751 * bus/config-loader-libxml.c (bus_config_load): Take a parent
8752 argument and pass it along to the call to bus_config_parser_new.
8753 Also made a few small changes to allow this code to compile.
8755 * bus/config-loader-expat.c (bus_config_load): Take a parent
8756 argument and pass it along to the call to bus_config_parser_new.
8758 * bus/bus.c (bus_context_new): Load the config file
8759 with a NULL parent argument.
8761 2004-03-29 Michael Meeks <michael@ximian.com>
8763 * glib/dbus-gobject.c (introspect_properties): split
8764 out, fix mangled 'while' flow control.
8765 (introspect_signals): implement.
8766 (handle_introspect): update.
8768 2004-03-29 Michael Meeks <michael@ximian.com>
8770 * glib/dbus-gobject.c (set_object_property): split out /
8771 re-work, use the property type, and not the message type(!)
8772 (get_object_property): ditto.
8774 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8775 (dbus_gvalue_marshal): make this code re-usable, needed
8776 for signals too, also on both proxy and server side.
8777 Re-write for more efficiency / readability.
8779 2004-03-29 Michael Meeks <michael@ximian.com>
8781 * dbus/dbus-message.c
8782 (dbus_message_new_error_printf): impl.
8784 * dbus/dbus-connection.c
8785 (dbus_connection_unregister_object_path): fix warning.
8787 * configure.in: fix no-mono-installed situation.
8789 2004-03-27 Havoc Pennington <hp@redhat.com>
8791 Patch from Timo Teräs:
8793 * tools/dbus-send.c (main): if --print-reply, assume type is
8794 method call; support boolean type args
8796 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8797 bunch of memleak and logic bugs
8799 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8801 * mono/Arguments.cs:
8802 * mono/Introspector.cs:
8804 * mono/InterfaceProxy.cs:
8806 * mono/ProxyBuilder.cs:
8808 Added InterfaceProxy class to avoid building proxies for every
8812 * dbus-message.c (dbus_message_append_args_valist)
8813 (dbus_message_iter_get_object_path)
8814 (dbus_message_iter_get_object_path_array)
8815 (dbus_message_iter_append_object_path)
8816 (dbus_message_iter_append_object_path_array):
8817 Added object_path iter functions to handle OBJECT_PATH arguments
8819 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8821 First checkin of mono bindings.
8824 Build stuff for the bindings
8825 * dbus-sharp.pc.in: Added for pkgconfig
8827 2004-03-21 Havoc Pennington <hp@redhat.com>
8829 * test/test-service.c (main): remove debug spew
8831 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8833 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8836 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8837 (dbus_message_iter_init_array_iterator)
8838 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8839 indicate whether the iterator is empty
8841 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8844 2004-03-19 Havoc Pennington <hp@redhat.com>
8846 * NEWS: 0.21 updates
8848 * configure.in: 0.21
8850 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8852 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8853 you don't need pyrex to make dist
8855 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8858 2004-03-18 Richard Hult <richard@imendio.com>
8860 * dbus/dbus-message.c (dbus_message_get_auto_activation)
8861 (dbus_message_set_auto_activation): Add doxygen docs.
8863 2004-03-16 Richard Hult <richard@imendio.com>
8865 * bus/activation.c: (bus_activation_service_created),
8866 (bus_activation_send_pending_auto_activation_messages),
8867 (bus_activation_activate_service):
8869 * bus/dispatch.c: (bus_dispatch),
8870 (check_nonexistent_service_auto_activation),
8871 (check_service_auto_activated),
8872 (check_segfault_service_auto_activation),
8873 (check_existent_service_auto_activation), (bus_dispatch_test):
8874 * bus/driver.c: (bus_driver_handle_activate_service):
8875 * bus/services.c: (bus_registry_acquire_service):
8876 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8877 (dbus_message_get_auto_activation):
8878 * dbus/dbus-message.h:
8879 * dbus/dbus-protocol.h: Implement auto-activation.
8881 * doc/dbus-specification.xml: Add auto-activation to the spec.
8883 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
8885 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8886 fix a bug with CUSTOM types.
8888 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8889 a unit test for this bug (used to fail).
8891 2004-03-12 Mikael Hallendal <micke@imendio.com>
8894 (babysitter_watch_callback): notify all pending activations waiting for
8895 the same exec that the activation failed.
8896 (bus_activation_activate_service): shortcut the activation if we
8897 already waiting for the same executable to start up.
8899 2004-03-12 Mikael Hallendal <micke@imendio.com>
8902 - Added service file reloading.
8903 Each service files directory is kept in an hash table in
8904 BusActivation and each BusActivationEntry knows what .service-file it
8905 was read from. So when you try to activate a service the bus will
8906 check if it's been updated, removed or if new .service-files has
8908 - Test code at the bottom for the service file reloading.
8909 * bus/test-main.c: (main):
8911 - added service reloading test.
8912 * dbus/dbus-sysdeps.c:
8913 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8915 2004-03-08 Michael Meeks <michael@ximian.com>
8917 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
8918 bail immediately if disconnected, to avoid busy loop.
8920 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8921 cleanup cut/paste/inefficiency.
8923 2004-03-01 David Zeuthen <david@fubar.dk>
8925 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8926 bug where args were used twice. This bug resulted in a segfault
8927 on a Debian/PPC system when starting the messagebus daemon. Include
8928 dbus-sysdeps.h for DBUS_VA_COPY
8930 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8932 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8933 appropriate va_copy implementation. From GLib
8935 2004-02-24 Joe Shaw <joe@ximian.com>
8937 * bus/services.c (bus_registry_acquire_service): We need to pass
8938 in the service name to dbus_set_error() to prevent a crash.
8940 2003-12-26 Anders Carlsson <andersca@gnome.org>
8942 * AUTHORS: Reveal my True identity.
8944 2003-12-17 Mikael Hallendal <micke@imendio.com>
8946 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8947 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8949 2003-12-13 Mikael Hallendal <micke@imendio.com>
8951 * doc/TODO: Added not about better error check of configuration files.
8953 2003-12-02 Richard Hult <richard@imendio.com>
8955 * Update AFL version to 2.0 throughout the source files to reflect
8956 the update that was done a while ago.
8958 2003-12-02 Richard Hult <richard@imendio.com>
8960 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8961 wrote_dict_key to FALSE on the iter that the dict is appended to,
8962 just like when appending other types. Fixes a bug where a dict
8963 couldn't be put inside a dict.
8964 (dbus_message_iter_append_dict_key): Fix typo in warning message.
8965 (message_iter_test, _dbus_message_test): Add test case for dict
8968 2003-12-01 David Zeuthen <david@fubar.dk>
8970 * python/dbus.py: Add the actual message when calling the reciever
8971 of a signal such that parameters can be inspected. Add the method
8972 remove_signal_receiver
8974 2003-11-26 Mikael Hallendal <micke@imendio.com>
8978 * glib/*.[ch]: Made ref functions return the pointer
8980 2003-11-25 Zack Rusin <zack@kde.org>
8982 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8984 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
8987 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
8988 the Integrator and to better fit with the server,
8990 2003-11-24 Zack Rusin <zack@kde.org>
8992 * qt/connection.h, qt/connection.cpp: removing initDbus method since
8993 the integrator handles it now
8995 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8996 since QTimer wasn't really meant to be used the way DBusTimeout is
8998 2003-11-24 Zack Rusin <zack@kde.org>
9000 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
9001 Integrator class which integrates D-BUS with the Qt event loop,
9003 * qt/connection.h, qt/connection.cpp: Move all the code which
9004 was dealing with D-BUS integration to the Integrator class,
9005 and start using Integrator,
9007 2003-11-23 Zack Rusin <zack@kde.org>
9009 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
9012 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9013 switching namespaces to DBusQt, reworking the class,
9015 * Makefile.cvs: switching dependencies so that it matches KDE
9018 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
9021 2003-11-19 Havoc Pennington <hp@redhat.com>
9025 * configure.in: bump version to 0.20
9027 * configure.in (have_qt): add yet another place to look for qt
9028 (someone hand trolltech a .pc file...)
9030 2003-11-01 Havoc Pennington <hp@redhat.com>
9032 * doc/dbus-specification.xml: add state machine docs on the auth
9033 protocol; just a first draft, I'm sure it's wrong.
9035 2003-10-28 David Zeuthen <david@fubar.dk>
9037 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9038 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9040 2003-10-28 Havoc Pennington <hp@redhat.com>
9042 * dbus/dbus-message.c (get_next_field): delete unused function
9044 2003-10-28 Havoc Pennington <hp@redhat.com>
9046 * bus/expirelist.c (do_expiration_with_current_time): detect
9047 failure of the expire_func due to OOM
9049 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9051 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9052 NoReply error that's now created by the bus when the service exits
9054 2003-10-28 Havoc Pennington <hp@redhat.com>
9056 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9057 tests for set_path, set_interface, set_member, etc.
9059 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9061 * dbus/dbus-message.c (set_string_field): always just delete and
9062 re-append the field; accept NULL for deletion
9063 (re_align_fields_recurse): reimplement
9065 2003-10-26 Havoc Pennington <hp@redhat.com>
9067 * dbus/dbus-connection.c: fix docs to properly describe the
9068 disconnected message
9069 (_dbus_connection_notify_disconnected): remove this function;
9070 we can't synchronously add the disconnected message, we have to
9071 do it after we've queued any remaining real messages
9072 (_dbus_connection_get_dispatch_status_unlocked): queue the
9073 disconnect message only if the transport has finished queueing all
9074 its real messages and is disconnected.
9075 (dbus_connection_disconnect): update the dispatch status here
9077 2003-10-22 Havoc Pennington <hp@redhat.com>
9079 * bus/bus.c (bus_context_check_security_policy): fix up assertion
9081 * bus/connection.c (bus_transaction_send_from_driver): set the
9082 destination to the connection's base service
9084 2003-10-20 Havoc Pennington <hp@redhat.com>
9086 hmm, make check is currently not passing.
9088 * doc/dbus-specification.xml: add requirement that custom type
9089 names follow the same rules as interface names.
9091 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9092 duplication and allow 'c' to be 'custom'; dict is now 'm' for
9095 * doc/dbus-specification.xml: update type codes to match
9096 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9097 CUSTOM. Add type OBJECT_PATH to the spec.
9099 2003-10-17 Havoc Pennington <hp@redhat.com>
9101 * bus/driver.c (create_unique_client_name): use "." as separator
9102 in base service names instead of '-'
9104 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9105 byte at the end of the string
9107 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9108 optimization macros since string validation seems to be a slow
9111 * doc/dbus-specification.xml: restrict valid
9112 service/interface/member/error names. Add test suite code for the
9115 * dbus/dbus-string.c: limit service/interface/member/error names
9118 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9119 format arg to verbose spew
9121 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9122 memory, return instead of g_error
9124 * test/test-service.c (path_message_func): support emitting a
9127 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9128 activation bus type if DBUS_BUS_ACTIVATION was set; default to
9129 assuming the activation bus was the session bus so that services
9130 started manually will still register.
9131 (init_connections_unlocked): fix so that in OOM situation we get
9132 the same semantics when retrying the function
9134 * test/test-service.c (main): change to use path registration, to
9135 test those codepaths; register with DBUS_BUS_ACTIVATION rather
9136 than DBUS_BUS_SESSION
9138 2003-10-16 Havoc Pennington <hp@redhat.com>
9140 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9142 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9143 coverage of the tests
9144 (coverage-report.txt): don't move the .da and .bbg files around
9146 2003-10-16 Havoc Pennington <hp@redhat.com>
9148 * bus/bus.c (struct BusContext): remove struct field I didn't mean
9151 2003-10-16 Havoc Pennington <hp@redhat.com>
9153 * bus/connection.c (bus_pending_reply_expired): either cancel or
9155 (bus_connections_check_reply): use unlink, not remove_link, as we
9156 don't want to free the link; fixes double free mess
9158 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9159 where no reply was received
9161 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9164 * bus/signals.c (match_rule_matches): add special cases for the
9165 bus driver, so you can match on sender/destination for it.
9167 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9168 DBUS_PRINT_BACKTRACE is set
9170 * dbus/dbus-internals.c: add pid to assertion failure messages
9172 * dbus/dbus-connection.c: add message type code to the debug spew
9174 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9175 sender=foo not service=foo
9177 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9178 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
9179 DBUS_ACTIVATION_ADDRESS instead
9181 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9182 DBUS_SYSTEM_BUS_ADDRESS if appropriate
9184 * bus/bus.c (bus_context_new): handle OOM copying bus type into
9187 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9188 (dbus_message_iter_get_object_path_array): new function (half
9189 finished, disabled for the moment)
9191 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9192 DBUS_MESSAGE_TYPE_ERROR
9194 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9195 avoid redirecting stderr to /dev/null
9196 (babysit): close stdin if not doing the "exit_with_session" thing
9198 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9199 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9200 stdout/stdin, so things don't get confused
9202 * bus/system.conf.in: fix to allow replies, I modified .conf
9203 instead of .conf.in again.
9205 2003-10-14 David Zeuthen <david@fubar.dk>
9207 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9208 argtype to arg_type when raising unknown arg type exception.
9209 Changed type list to reflect the changes in dbus-protocol.h so
9210 the bindings actually work.
9212 2003-10-14 Havoc Pennington <hp@redhat.com>
9214 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9215 to have a bug keeping it from outputting the .da files sometimes
9216 (string_get_string): don't append garbage nul bytes to the string.
9218 2003-10-15 Seth Nickell <seth@gnome.org>
9220 * python/Makefile.am:
9222 Include dbus_h_wrapper.h in the dist tarball.
9224 2003-10-14 Havoc Pennington <hp@redhat.com>
9226 * bus/bus.c (bus_context_check_security_policy): revamp this to
9227 work more sanely with new policy-based requested reply setup
9229 * bus/connection.c (bus_transaction_send_from_driver): set bus
9230 driver messages as no reply
9232 * bus/policy.c (bus_client_policy_check_can_receive): handle a
9233 requested_reply attribute on allow/deny rules
9235 * bus/system.conf: add <allow requested_reply="true"/>
9237 * bus/driver.c (bus_driver_handle_message): fix check for replies
9238 sent to the bus driver, which was backward. How did this ever work
9239 at all though? I think I'm missing something.
9241 * dbus/dbus-message.c (decode_header_data): require error and
9242 method return messages to have a reply serial field to be valid
9243 (_dbus_message_loader_queue_messages): break up this function;
9244 validate that reply serial and plain serial are nonzero;
9245 clean up the OOM/error handling.
9246 (get_uint_field): don't return -1 from this
9247 (dbus_message_create_header): fix signed/unsigned bug
9249 * bus/connection.c (bus_connections_expect_reply): save serial of
9250 the incoming message, not reply serial
9252 2003-10-14 Havoc Pennington <hp@redhat.com>
9254 * bus/connection.c: implement pending reply tracking using
9257 * bus/bus.c (bus_context_check_security_policy): verify that a
9258 reply is pending in order to allow a reply to be sent. Deny
9259 messages of unknown type.
9261 * bus/dbus-daemon-1.1.in: update to mention new resource limits
9263 * bus/bus.c (bus_context_get_max_replies_per_connection): new
9264 (bus_context_get_reply_timeout): new
9266 2003-10-13 Seth Nickell <seth@gnome.org>
9268 * python/Makefile.am:
9270 Pass "make distcheck": remove a couple files from DIST_FILES
9271 that weren't included in the final version.
9273 2003-10-12 Havoc Pennington <hp@pobox.com>
9275 Added test code that 1) starts an actual bus daemon and 2) uses
9276 DBusGProxy; fixed bugs that were revealed by the test. Lots
9277 more testing possible, but this is the basic framework.
9279 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9280 empty proxy lists from the proxy list hash
9282 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9283 couple of return_if_fail checks
9285 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9286 to allocate, so everything is cleared to NULL as it should be.
9288 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9289 source as data to dbus_connection_set_timeout_functions() as the
9290 timeout functions expected
9292 * test/glib/run-test.sh: add a little script to start up a message
9293 bus and run tests using it
9295 * tools/dbus-launch.1: updates
9297 * tools/dbus-launch.c (main): add --config-file option
9299 * tools/dbus-launch.c (main): remove confusing else if (runprog)
9300 that could never be reached.
9302 * dbus/dbus-message.c (dbus_message_new_method_return)
9303 (dbus_message_new_error, dbus_message_new_signal): set the
9304 no-reply-expected flag on all these. Redundant, but may
9305 as well be consistent.
9307 2003-10-11 Havoc Pennington <hp@pobox.com>
9309 * test/decode-gcov.c (function_solve_graph): make broken block
9310 graph a nonfatal error since it seems to be broken. Need to debug
9313 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9314 can't just check type > INVALID < LAST anymore
9316 * dbus/dbus-message.c (dbus_message_get_signature): new function
9317 (dbus_message_has_signature): new function
9318 (struct DBusMessage): add signature field (right now it isn't sent
9319 over the wire, just generated on the fly)
9320 (dbus_message_copy): copy the signature, and init strings to
9321 proper length to avoid some reallocs
9322 (dbus_message_iter_init_array_iterator): return void, since it
9324 (dbus_message_iter_init_dict_iterator): return void since it can't fail
9325 (_dbus_message_loader_queue_messages): add silly temporary hack to
9326 fill in message->signature on load
9328 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9329 characters, so they are relatively human-readable.
9331 2003-10-11 Havoc Pennington <hp@pobox.com>
9333 * dbus/dbus-message.c (_dbus_message_test): add more test
9334 coverage, but #if 0 for now since they uncover a bug
9335 not fixed yet; I think in re_align_field_recurse()
9336 (re_align_field_recurse): add FIXME about broken assertion
9338 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9340 * bus/connection.c: share a couple code bits with expirelist.c
9342 * bus/expirelist.h, bus/expirelist.c: implement a generic
9343 expire-items-after-N-seconds facility, was going to share between
9344 expiring connections and replies, decided not to use for expiring
9345 connections for now.
9347 * COPYING: include AFL 2.0 (still need to change all the file headers)
9349 2003-10-09 Havoc Pennington <hp@redhat.com>
9351 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9352 gcc 3.3. Not that we do anything about it yet.
9354 * bus/signals.c (bus_match_rule_parse): impose max length on the
9357 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9359 2003-10-09 Havoc Pennington <hp@redhat.com>
9361 Make matching rules theoretically work (add parser).
9363 * bus/bus.c (bus_context_check_security_policy): fix up to handle
9364 the case where destination is explicitly specified as bus driver
9365 and someone else is eavesdropping.
9367 * bus/policy.c (bus_client_policy_check_can_receive): fix up
9368 definition of eavesdropping and assertion
9370 * tools/dbus-send.c (main): use dbus_message_type_from_string
9372 * bus/signals.c (bus_match_rule_parse): implement
9374 * dbus/dbus-message.c (dbus_message_type_from_string): new
9376 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9378 2003-10-02 Havoc Pennington <hp@pobox.com>
9380 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9381 dbus_gproxy_oneway_call
9383 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
9384 (dbus_server_setup_with_g_main): fix to allow calling them more
9385 than once on the same args
9386 (dbus_bus_get_with_g_main): new function
9388 2003-10-02 Havoc Pennington <hp@redhat.com>
9390 * doc/dbus-tutorial.xml: write some stuff
9392 2003-09-29 Havoc Pennington <hp@pobox.com>
9394 * configure.in: split checks for Doxygen from XML docs, check for
9397 * doc/Makefile.am: XML-ify all the docs, and add a blank
9400 2003-09-29 Havoc Pennington <hp@pobox.com>
9402 * Merge dbus-object-names branch. To see the entire patch
9403 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9404 it's huuuuge though.
9405 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9407 2003-09-28 Havoc Pennington <hp@pobox.com>
9409 * HACKING: update to reflect new server
9411 2003-09-26 Seth Nickell <seth@gnome.org>
9414 * python/examples/example-signals.py:
9416 Start implementing some notions of signals. The API
9417 is really terrible, but they sort of work (with the
9418 exception of being able to filter by service, and to
9419 transmit signals *as* a particular service). Need to
9420 figure out how to make messages come from the service
9423 * python/dbus_bindings.pyx.in:
9425 Removed duplicate message_handler callbacks.
9427 2003-09-25 Havoc Pennington <hp@redhat.com>
9429 * bus/session.conf.in: fix my mess
9431 2003-09-25 Havoc Pennington <hp@pobox.com>
9433 * bus/session.conf.in: fix security policy, reported by Seth Nickell
9435 2003-09-25 Seth Nickell <seth@gnome.org>
9437 * python/examples/example-service.py:
9439 Johan notices complete wrong code in example-service, but
9440 completely wrong in a way that works exactly the same (!).
9441 Johan is confused, how could this possibly work? Example
9442 code fails to serve purpose of making things clear.
9445 2003-09-25 Mark McLoughlin <mark@skynet.ie>
9447 * doc/dbus-specification.sgml: don't require header fields
9448 to be 4-byte aligned and specify that fields should be
9449 distinguished from padding by the fact that zero is not
9452 * doc/TODO: remove re-alignment item and add item to doc
9453 the OBJECT_PATH type.
9455 * dbus/dbus-message.c:
9456 (HeaderField): rename the original member to value_offset
9457 and introduce a name_offset member to keep track of where
9458 the field actually begins.
9459 (adjust_field_offsets): remove.
9460 (append_int_field), (append_uint_field),
9461 (append_string_field): don't align the start of the header
9462 field to a 4-byte boundary.
9463 (get_next_field): impl finding the next marhsalled field
9464 after a given field.
9465 (re_align_field_recurse): impl re-aligning a number of
9466 already marshalled fields.
9467 (delete_field): impl deleting a field of any type and
9468 re-aligning any following fields.
9469 (delete_int_or_uint_field), (delete_string_field): remove.
9470 (set_int_field), (set_uint_field): no need to re-check
9471 that we have the correct type for the field.
9472 (set_string_field): ditto and impl re-aligning any
9474 (decode_header_data): update to take into account that
9475 the fields aren't 4-byte aligned any more and the new
9476 way to distinguish padding from header fields. Also,
9477 don't exit when there is too much header padding.
9478 (process_test_subdir): print the directory.
9479 (_dbus_message_test): add test to make sure a following
9480 field is re-aligned correctly after field deletion.
9482 * dbus/dbus-string.[ch]:
9483 (_dbus_string_insert_bytes): rename from insert_byte and
9484 allow the insert of multiple bytes.
9485 (_dbus_string_test): test inserting multiple bytes.
9487 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9488 warning note to docs about having to re-align any
9489 marshalled values following the string.
9491 * dbus/dbus-message-builder.c:
9492 (append_string_field), (_dbus_message_data_load):
9493 don't align the header field.
9495 * dbus/dbus-auth.c: (process_test_subdir): print the
9498 * test/break-loader.c: (randomly_add_one_byte): upd. for
9501 * test/data/invalid-messages/bad-header-field-alignment.message:
9504 * test/data/valid-messages/unknown-header-field.message: shove
9505 a dict in the unknown field.
9507 2003-09-25 Seth Nickell <seth@gnome.org>
9510 * python/dbus_bindings.pyx.in:
9512 Handle return values.
9514 * python/examples/example-client.py:
9515 * python/examples/example-service.py:
9517 Pass back return values from the service to the client.
9519 2003-09-24 Seth Nickell <seth@gnome.org>
9523 Connect Object methods (when you are sharing an object) up... pass
9524 in a list of methods to be shared. Sharing all the methods just
9525 worked out too weird. You can now create nice Services over the
9528 * python/dbus_bindings.pyx.in:
9530 Keep references to user_data tuples passed into C functions so
9531 Python doesn't garbage collect on us.
9533 Implement MethodReturn and Error subclasses of Message for creating
9534 DBusMessage's of those types.
9536 * python/examples/example-client.py:
9537 * python/examples/example-service.py:
9539 Simple example code showing both how create DBus services and objects,
9540 and how to use them.
9542 2003-09-23 Havoc Pennington <hp@pobox.com>
9544 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9546 2003-09-23 Havoc Pennington <hp@redhat.com>
9548 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9549 (dbus_gproxy_disconnect_signal): implement
9550 (dbus_gproxy_manager_remove_signal_match): implement
9551 (dbus_gproxy_manager_add_signal_match): implement
9552 (dbus_gproxy_oneway_call): implement
9554 2003-09-23 Havoc Pennington <hp@pobox.com>
9556 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9557 subclass. This means dropping the transparent thread safety of the
9558 proxy; you now need a separate proxy per-thread, or your own
9559 locking on the proxy. Probably right anyway.
9560 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9562 2003-09-22 Havoc Pennington <hp@redhat.com>
9564 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9566 2003-09-21 Seth Nickell <seth@gnome.org>
9568 First checkin of the Python bindings.
9570 * python/.cvsignore:
9571 * python/Makefile.am:
9572 * python/dbus_bindings.pyx.in:
9573 * python/dbus_h_wrapper.h:
9575 Pieces for Pyrex to operate on, building a dbus_bindings.so
9576 python module for low-level access to the DBus APIs.
9580 High-level Python module for accessing DBus objects.
9585 Build stuff for the python bindings.
9589 Extra macro needed for finding the Python C header files.
9591 2003-09-21 Havoc Pennington <hp@pobox.com>
9593 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9594 implementing the proxy manager, didn't get very far.
9596 * dbus/dbus-bus.c (dbus_bus_add_match): new
9597 (dbus_bus_remove_match): new
9599 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9600 path_name argument; adjust the other not-yet-implemented
9601 gproxy constructors to be what I think they should be.
9603 2003-09-21 Havoc Pennington <hp@pobox.com>
9605 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9606 by default for message bus connections.
9608 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9609 exit_on_disconnect flag is set and we process the disconnected
9611 (dbus_connection_set_exit_on_disconnect): new function
9613 2003-09-21 Havoc Pennington <hp@pobox.com>
9615 Get matching rules mostly working in the bus; only actually
9616 parsing the rule text remains. However, the client side of
9617 "signal connections" hasn't been started, this patch is only the
9620 * dbus/dispatch.c: fix for the matching rules changes
9622 * bus/driver.c (bus_driver_handle_remove_match)
9623 (bus_driver_handle_add_match): send an ack reply from these
9626 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9627 arguments, reported by Seth Nickell
9629 * bus/config-parser.c (append_rule_from_element): support
9630 eavesdrop=true|false attribute on policies so match rules
9631 can be prevented from snooping on the system bus.
9633 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9634 and "destination" in attribute names; fix some docs bugs;
9635 add eavesdrop=true|false attribute
9637 * bus/driver.c (bus_driver_handle_add_match)
9638 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9641 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9642 rid of broadcast service concept, signals are just always broadcast
9644 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9645 mostly implement matching rules stuff (currently only exposed as signal
9648 2003-09-21 Mark McLoughlin <mark@skynet.ie>
9650 * doc/dbus-specification.sgml: Change the header field name
9651 to be an enum and update the rest of the spec to reference
9652 the fields using the conventinal name.
9654 * dbus/dbus-protocol.h: update to reflect the spec.
9656 * doc/TODO: add item to remove the 4 byte alignment requirement.
9658 * dbus/dbus-message.c: Remove the code to generalise the
9659 header/body length and serial number header fields as named
9660 header fields so we can reference field names using the
9662 (append_int_field), (append_uint_field), (append_string_field):
9663 Append the field name as a byte rather than four chars.
9664 (delete_int_or_uint_field), (delete_string_field): reflect the
9665 fact that the field name and typecode now occupy 4 bytes instead
9667 (decode_string_field), (decode_header_data): update to reflect
9668 protocol changes and move the field specific encoding from
9669 decode_string_field() back into decode_header_data().
9671 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9672 Add utility to aid debugging.
9674 * dbus/dbus-message-builder.c:
9675 (append_string_field), (_dbus_message_data_load): Update to
9676 reflect protocol changes; Change the FIELD_NAME directive
9677 to HEADER_FIELD and allow it to take the field's conventional
9678 name rather than the actual value.
9680 * test/data/*/*.message: Update to use HEADER_FIELD instead
9681 of FIELD_NAME; Always align the header on an 8 byte boundary
9682 *before* updating the header length.
9684 2003-09-15 Havoc Pennington <hp@pobox.com>
9686 * dbus/dbus-pending-call.c: add the get/set object data
9687 boilerplate as for DBusConnection, etc. Use generic object data
9688 for the notify callback.
9690 * glib/dbus-gparser.c (parse_node): parse child nodes
9692 * tools/dbus-viewer.c: more hacking on the dbus-viewer
9694 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9695 contain functions shared between the convenience lib and the
9698 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9699 -export-symbols-regex to the GLib library
9701 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9702 fix the locking in here, and add a default handler for
9703 Introspect() that just returns sub-nodes.
9705 2003-09-14 Havoc Pennington <hp@pobox.com>
9707 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9708 rather than gfoo consistent
9710 * glib/dbus-gproxy.h: delete for now, move contents to
9711 dbus-glib.h, because the include files don't work right since we
9712 aren't in the dbus/ subdir.
9714 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9715 (dbus_gproxy_end_call): finish
9716 (dbus_gproxy_begin_call): finish
9718 * glib/dbus-gmain.c (dbus_set_g_error): new
9720 * glib/dbus-gobject.c (handle_introspect): include information
9721 about child nodes in the introspection
9723 * dbus/dbus-connection.c (dbus_connection_list_registered): new
9724 function to help in implementation of introspection
9726 * dbus/dbus-object-tree.c
9727 (_dbus_object_tree_list_registered_and_unlock): new function
9729 2003-09-12 Havoc Pennington <hp@pobox.com>
9731 * glib/dbus-gidl.h: add common base class for all the foo_info
9734 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9737 * test/Makefile.am: try test srcdir -ef . in addition to test
9738 srcdir = ., one of them should work (yeah lame)
9740 * glib/Makefile.am: build the "idl" parser stuff as a convenience
9743 * glib/dbus-gparser.h: make description_load routines return
9744 NodeInfo* not Parser*
9746 * Makefile.am (SUBDIRS): build test dir after all library dirs
9748 * configure.in: add GTK+ detection
9750 2003-09-07 Havoc Pennington <hp@pobox.com>
9752 * Make Doxygen contented.
9754 2003-09-07 Havoc Pennington <hp@pobox.com>
9756 * doc/dbus-specification.sgml: more updates
9758 2003-09-06 Havoc Pennington <hp@pobox.com>
9760 * doc/dbus-specification.sgml: partial updates
9762 * bus/dbus-daemon-1.1.in: fix the config file docs for the
9763 zillionth time; hopefully I edited the right file this time.
9765 * bus/config-parser.c (append_rule_from_element): support
9766 send_type, send_path, receive_type, receive_path
9768 * bus/policy.c: add message type and path to the list of things
9769 that can be "firewalled"
9771 2003-09-06 Havoc Pennington <hp@pobox.com>
9773 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9774 (dbus_connection_register_object_path): make this not handle
9775 messages to paths below the given path
9777 2003-09-03 Havoc Pennington <hp@pobox.com>
9779 * test/glib/Makefile.am: add this with random glib-linked test
9782 * glib/Makefile.am: remove the random test programs from here,
9783 leave only the unit tests
9785 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
9786 uscore/javacaps conversion, and fix
9787 (get_object_property, set_object_property): change to .NET
9788 convention for mapping props to methods, set_FooBar/get_FooBar,
9789 since one language has such a convention we may as well copy it.
9790 Plus real methods in either getFooBar or get_foo_bar style won't
9791 collide with this convention.
9793 2003-09-01 Havoc Pennington <hp@pobox.com>
9795 * glib/dbus-gparser.c: implement
9797 * glib/dbus-gobject.c: start implementing skeletons support
9799 * configure.in: when disabling checks/assert, also define
9800 G_DISABLE_ASSERT and G_DISABLE_CHECKS
9802 2003-09-01 Havoc Pennington <hp@pobox.com>
9804 * glib/Makefile.am: rearrange a bunch of files and get "make
9805 check" framework set up
9807 2003-08-31 Havoc Pennington <hp@pobox.com>
9809 * fix build with --disable-tests
9811 2003-08-30 Havoc Pennington <hp@pobox.com>
9813 * dbus/dbus-connection.c: purge DBusMessageHandler
9815 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
9816 use callbacks everywhere
9818 2003-08-30 Havoc Pennington <hp@pobox.com>
9820 * test/data/valid-config-files/system.d/test.conf: change to
9821 root for the user so warnings don't get printed
9823 * dbus/dbus-message.c: add dbus_message_get_path,
9824 dbus_message_set_path
9826 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9827 dispatching to a path
9829 * dbus/dbus-string.c (_dbus_string_validate_path): add
9831 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9832 (_dbus_marshal_object_path): implement
9834 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
9835 to contain the path to the target object
9836 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9837 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9839 2003-08-30 Havoc Pennington <hp@pobox.com>
9841 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9843 2003-08-29 Havoc Pennington <hp@pobox.com>
9845 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9847 (struct DBusObjectSubtree): shrink this
9848 a lot, since we may have a lot of them
9849 (_dbus_object_tree_free_all_unlocked): implement
9850 (_dbus_object_tree_dispatch_and_unlock): implement
9852 2003-08-29 Havoc Pennington <hp@pobox.com>
9854 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9856 2003-08-28 Havoc Pennington <hp@pobox.com>
9860 * dbus/dbus-connection.c: port to no ObjectID, create a
9861 DBusObjectTree, rename ObjectTree to ObjectPath in public API
9863 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
9864 everything except UnregisterFunction and MessageFunction
9866 * dbus/dbus-marshal.c: port away from DBusObjectID,
9867 add DBUS_TYPE_OBJECT_PATH
9869 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
9870 dbus/dbus-objectid.[hc]: remove these, we are moving to
9871 path-based object IDs
9873 2003-08-25 Havoc Pennington <hp@pobox.com>
9875 Just noticed that dbus_message_test is hosed, I wonder when I
9876 broke that. I thought make check was passing earlier...
9878 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
9879 container tree, will replace most of dbus-object-registry
9881 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9884 2003-08-19 Havoc Pennington <hp@pobox.com>
9886 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9887 (dbus_message_is_error): fix this function
9889 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9892 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9893 reflect clarified man page
9894 (bus_client_policy_check_can_send): ditto
9896 * bus/session.conf.in: fixup
9898 * bus/system.conf.in: fixup
9900 2003-08-18 Havoc Pennington <hp@redhat.com>
9902 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9904 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9905 dumb bug created earlier (wrong order of args to
9906 decode_header_data())
9908 * tools/dbus-send.c: port
9910 * tools/dbus-print-message.c (print_message): port
9912 * test/data/*messages: port all messages over
9914 * dbus/dbus-message-builder.c: support including
9917 * bus/driver.c: port over
9919 * bus/dispatch.c: port over to new stuff
9921 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9922 rename disconnect signal to "Disconnected"
9924 2003-08-17 Havoc Pennington <hp@pobox.com>
9926 This doesn't compile yet, but syncing up so I can hack on it from
9927 work. What are branches for if not broken code? ;-)
9929 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9930 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9931 DBUS_HEADER_FIELD_ERROR_NAME
9933 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9934 for the interface+member pairs
9935 (string_hash): change to use g_str_hash algorithm
9936 (find_direct_function, find_string_function): refactor these to
9939 * dbus/dbus-message.c: port all of this over to support
9940 interface/member fields instead of name field
9942 * dbus/dbus-object-registry.c: port over
9944 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9945 from _dbus_string_validate_name
9947 * bus/dbus-daemon-1.1: change file format for the
9948 <deny>/<allow> stuff to match new message naming scheme
9950 * bus/policy.c: port over
9952 * bus/config-parser.c: parse new format
9954 2003-08-16 Havoc Pennington <hp@pobox.com>
9956 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9959 * glib/dbus-gproxy.c: some hacking
9961 2003-08-15 Havoc Pennington <hp@redhat.com>
9963 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9965 * dbus/dbus-connection.c
9966 (dbus_connection_send_with_reply_and_block): factor out internals;
9967 change to convert any error replies to DBusError instead of
9968 returning them as a message
9970 2003-08-15 Havoc Pennington <hp@pobox.com>
9972 * dbus/dbus-connection.c,
9973 dbus/dbus-pending-call.c: Finish the pending call stuff
9975 2003-08-14 Havoc Pennington <hp@redhat.com>
9977 * dbus/dbus-pending-call.c: start on new object that will replace
9978 DBusMessageHandler and ReplyHandlerData for tracking outstanding
9981 * dbus/dbus-gproxy.c: start on proxy object used to communicate
9982 with remote interfaces
9984 * dbus/dbus-gidl.c: do the boring boilerplate in here
9986 2003-08-12 Havoc Pennington <hp@pobox.com>
9988 * bus/dispatch.c (bus_dispatch): make this return proper
9989 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9991 * dbus/dbus-errors.c (dbus_set_error): use
9992 _dbus_string_append_printf_valist
9994 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9995 (_dbus_string_append_printf): new
9997 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10000 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10001 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10002 message is unhandled.
10004 2003-08-11 Havoc Pennington <hp@pobox.com>
10006 * bus/test.c (client_disconnect_handler): change to return
10007 HANDLED (would have been REMOVE_MESSAGE)
10009 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10010 HANDLED/NOT_YET_HANDLED instead of
10011 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
10014 2003-08-10 Havoc Pennington <hp@pobox.com>
10016 * tools/dbus-send.c (main): add --type argument, for now
10017 supporting only method_call and signal types.
10019 * tools/dbus-print-message.c: print message type
10021 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10022 init connection->objects
10024 * doc/dbus-specification.sgml: fix sgml
10026 * bus/*.c: port over to object-instance API changes
10028 * test/test-service.c: ditto
10030 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10031 name, we will have to fix up the rest of the code to also handle
10033 (dbus_message_new): generic message-creation call
10034 (set_string_field): allow appending name field
10036 2003-08-06 Havoc Pennington <hp@pobox.com>
10038 * dbus/dbus-object-registry.c: implement signal connection
10041 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10043 * dbus/dbus-internals.c (_dbus_memdup): new function
10045 2003-08-02 Havoc Pennington <hp@pobox.com>
10047 * dbus/dbus-message.c (dbus_message_get_no_reply)
10048 (dbus_message_set_no_reply): add these and remove
10049 set_is_error/get_is_error
10051 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
10052 remove the ERROR flag, since there's now an ERROR type
10054 2003-08-01 Havoc Pennington <hp@pobox.com>
10056 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10059 * dbus/dbus-message.c (dbus_message_get_type): new function
10061 * doc/dbus-specification.sgml: add "type" byte to messages
10063 2003-08-01 Havoc Pennington <hp@pobox.com>
10065 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10066 a message type enum to distinguish kinds of message
10067 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
10068 that need not be replied to
10070 2003-08-01 Havoc Pennington <hp@pobox.com>
10072 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10073 (unpack_8_octets): fix no-64-bit-int bug
10075 * dbus/dbus-object-registry.c (validate_id): validate the
10076 connection ID bits, not just the instance ID.
10078 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10079 the connection-global 33 bits of the object ID
10081 * dbus/dbus-object-registry.c (info_from_entry): fill in
10082 object ID in the new way
10084 * dbus/dbus-objectid.h: rather than high/low bits, specifically
10085 define server/client/instance bits.
10087 2003-07-30 Havoc Pennington <hp@pobox.com>
10089 * dbus/dbus-connection.c (dbus_connection_register_object): fix
10092 2003-07-13 Havoc Pennington <hp@pobox.com>
10094 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10095 fields to DBusObjectVTable and DBusObjectInfo
10097 2003-07-12 Havoc Pennington <hp@pobox.com>
10099 * dbus/dbus-object-registry.c: implement unit test,
10100 fix bugs discovered in process
10102 * dbus/dbus-connection.c: remove handler_table and
10103 register_handler(), add DBusObjectRegistry usage
10105 * dbus/dbus-objectid.c (dbus_object_id_is_null)
10106 (dbus_object_id_set_null): new functions
10108 2003-07-08 Havoc Pennington <hp@pobox.com>
10110 * dbus/dbus-object.c: implement some of this
10112 * dbus/dbus-object-registry.c
10113 (_dbus_object_registry_add_and_unlock): fill in the object_id out
10115 (_dbus_object_registry_new): handle OOM
10117 2003-07-08 Havoc Pennington <hp@pobox.com>
10119 * dbus/dbus-object.h: sketch out an API for registering objects
10120 with a connection, that allows us to use as little as 24 bytes
10121 per object and lets application code represent an object in
10122 any conceivable way.
10124 * dbus/dbus-object-registry.c: implement the hard bits of the
10125 DBusConnection aspect of object API. Not yet wired up.
10127 2003-07-06 Havoc Pennington <hp@pobox.com>
10129 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10130 (_dbus_marshal_object_id): new
10131 (_dbus_demarshal_object_id): new
10132 (_dbus_marshal_get_arg_end_pos): support object ID type, and
10133 consolidate identical switch cases. Don't conditionalize handling
10134 of DBUS_TYPE_UINT64, need to handle the type always.
10135 (_dbus_marshal_validate_arg): consolidate identical cases, and
10136 handle DBUS_TYPE_OBJECT_ID
10138 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10140 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10142 2003-09-28 Havoc Pennington <hp@pobox.com>
10144 * real 0.13 release
10146 2003-09-28 Havoc Pennington <hp@pobox.com>
10148 * doc/Makefile.am (dbus-specification.html): testing a funky hack
10149 to work with Debian db2html
10151 2003-09-28 Havoc Pennington <hp@pobox.com>
10153 * configure.in: 0.13
10155 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10156 stylesheet-images for benefit of Debian
10158 Change back to using filesystem-linked sockets for the system
10159 bus, so only root can create the default system bus address.
10161 * bus/system.conf.in: change to use
10162 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10164 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10167 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10168 here, and AC_DEFINE DBUS_SYSTEM_PATH
10170 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10173 * doc/busconfig.dtd:
10176 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10178 * doc/dbus-specification.sgml:
10179 Add activation reply values.
10181 2003-08-05 Havoc Pennington <hp@redhat.com>
10183 * configure.in: 0.12
10185 2003-08-05 Anders Carlsson <andersca@codefactory.se>
10187 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10188 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10189 (add_watch), (remove_watch), (create_source):
10190 Refcount fds, fixes some reentrancy issues.
10192 2003-07-30 Havoc Pennington <hp@redhat.com>
10194 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10195 bus address to be abstract if we have abstract sockets
10199 2003-07-28 Havoc Pennington <hp@redhat.com>
10201 * bus/messagebus.in: fix to avoid processname/servicename
10202 confusion, from Michael Kearey
10203 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10205 2003-07-23 Havoc Pennington <hp@pobox.com>
10207 * dbus/dbus-message.c (dbus_message_iter_get_named):
10208 fix from Andy Hanton to remove broken "+1"
10210 2003-07-16 Havoc Pennington <hp@pobox.com>
10212 * tools/dbus-launch.c (babysit): close stdout/stderr in the
10213 babysitter process, as suggested by Thomas Leonard, so
10214 an "eval `dbus-launch --exit-with-session`" will actually
10217 2003-07-16 Havoc Pennington <hp@pobox.com>
10219 * configure.in: print out EXPANDED_* variables in the summary at
10220 the end; clean up the code that computes EXPANDED_ variables and
10221 get the ones using exec_prefix right. Should make things work
10222 when you build without --prefix
10224 2003-06-29 Havoc Pennington <hp@pobox.com>
10226 * mono/Test.cs (class Test): fire up a main loop and run it
10228 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10229 done once, the app has to do it
10231 2003-06-26 Havoc Pennington <hp@pobox.com>
10233 * mono/Connection.cs: set up connection with the glib main loop
10235 2003-07-01 Havoc Pennington <hp@redhat.com>
10237 * doc/dbus-specification.sgml: clarify the format of a type code,
10238 change suggested by Jim Blandy
10240 2003-06-29 Miloslav Trmac <mitr@volny.cz>
10243 * tools/Makefile.am: Don't assume srcdir == builddir.
10245 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10246 the allocated block.
10247 (_dbus_memory_test): New function.
10248 * dbus/dbus-test.h: Add _dbus_memory_test ().
10249 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10251 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10253 (dbus_message_new): Remove obsolete @todo.
10255 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10256 (_dbus_marshal_set_uint64): Fix comment.
10258 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10259 hardcode FIELD_REPLY_SERIAL.
10261 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10262 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10264 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10265 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10267 2003-06-24 Havoc Pennington <hp@pobox.com>
10269 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10271 2003-06-23 Anders Carlsson <andersca@codefactory.se>
10277 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10278 * gcj/org/.cvsignore:
10279 * gcj/org/Makefile.am:
10280 * gcj/org/freedesktop/.cvsignore:
10281 * gcj/org/freedesktop/Makefile.am:
10282 * gcj/org/freedesktop/dbus/.cvsignore:
10283 * gcj/org/freedesktop/dbus/Makefile.am:
10284 * gcj/org/freedesktop/dbus/Message.java: (Message),
10286 * gcj/org/freedesktop/dbus/natMessage.cc:
10287 Fix the build system.
10289 2003-06-22 Havoc Pennington <hp@pobox.com>
10291 * mono/Connection.cs: add more bindings
10293 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10296 2003-06-22 Havoc Pennington <hp@pobox.com>
10298 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10299 Start wrapping more stuff.
10301 2003-06-22 Havoc Pennington <hp@pobox.com>
10303 * mono/Message.cs: implement Message.Wrap() that ensures we only
10304 have a single C# wrapper per DBusMessage, assuming it works which
10305 it probably doesn't.
10307 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10308 (dbus_message_free_data_slot): new
10309 (dbus_message_set_data): new
10310 (dbus_message_get_data): new
10312 2003-06-22 Havoc Pennington <hp@pobox.com>
10314 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10315 (_dbus_data_slot_allocator_alloc): rework these to keep a
10316 reference count on each slot and automatically manage a global
10317 slot ID variable passed in by address
10319 * bus/bus.c: convert to new dataslot API
10321 * dbus/dbus-bus.c: convert to new dataslot API
10323 * dbus/dbus-connection.c: convert to new dataslot API
10325 * dbus/dbus-server.c: convert to new dataslot API
10327 * glib/dbus-gmain.c: ditto
10329 * bus/test.c: ditto
10331 * bus/connection.c: ditto
10333 2003-06-22 Anders Carlsson <andersca@codefactory.se>
10335 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10336 after the gcj checks so that the correct configuration tags
10337 will be added to libtool.
10339 * dbus-glib-1.pc.in: No need to specify any includes since
10340 dbus-1.pc.in has those.
10342 2003-06-22 Havoc Pennington <hp@pobox.com>
10344 * mono/*, gcj/*, configure.in, Makefile.am:
10345 Check in makefiles and subdirs for mono and gcj bindings.
10346 Neither binding actually exists, just trying to get through
10347 all the build and other boring bits.
10349 2003-06-21 Philip Blundell <philb@gnu.org>
10351 * tools/dbus-monitor.1: Updated.
10353 * tools/dbus-send.1: Likewise.
10355 2003-06-20 Anders Carlsson <andersca@codefactory.se>
10357 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10358 for hangup and error after checking read so we won't discard
10359 pending data if both hangup and read are set.
10361 2003-06-19 Philip Blundell <philb@gnu.org>
10363 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10365 * tools/dbus-send.c: Accept both --system and --session.
10367 * tools/dbus-monitor.c: Same here.
10369 2003-06-19 Anders Carlsson <andersca@codefactory.se>
10371 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10372 from C++ (Patch by Miloslav Trmac).
10374 2003-06-15 Joe Shaw <joe@assbarn.com>
10376 * configure.in: Check for socklen_t.
10378 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10380 * test/test-segfault.c: Add #include <sys/time.h>
10382 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10383 dbus-launch needs it.
10385 2003-06-09 Havoc Pennington <hp@redhat.com>
10387 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10388 SUN_LEN, it breaks abstract socket usage
10390 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10393 2003-06-04 Havoc Pennington <hp@pobox.com>
10395 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10396 using unix:abstract=/foo, and when listening in a tmpdir
10397 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10399 * dbus/dbus-transport.c (_dbus_transport_open): support
10402 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10403 support abstract sockets
10405 * dbus/dbus-transport-unix.c
10406 (_dbus_transport_new_for_domain_socket): support abstract sockets
10408 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10409 toggle as an argument, implement abstract namespace support
10410 (_dbus_listen_unix_socket): ditto
10412 * configure.in: add --enable-abstract-sockets and implement
10413 a configure check for autodetection of the right value.
10415 2003-06-01 Havoc Pennington <hp@pobox.com>
10417 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10418 in /tmp (though on Linux this will end up being useless,
10419 when we add abstract namespace support)
10421 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10424 2003-05-28 Colin Walters <walters@verbum.org>
10426 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10428 2003-05-18 Anders Carlsson <andersca@codefactory.se>
10430 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10432 2003-05-17 Colin Walters <walters@gnu.org>
10434 * tools/dbus-send.c: Don't exit with an error code if --help was
10435 passed. Default to using the session bus instead of the system
10438 * tools/dbus-launch.c: Ditto.
10440 * tools/dbus-monitor.c: Ditto.
10442 * tools/dbus-send.1: Update with new arguments.
10444 * tools/dbus-launch.c: Emit code to export variables. New
10445 arguments -s and -c to specify shell syntax, and a bit of code to
10446 autodetect syntax. Also, allow specifying a program to run.
10448 * tools/dbus-launch.1: Update with new arguments.
10450 * tools/dbus-send.1: Ditto.
10452 * tools/dbus-monitor.1: Ditto.
10454 2003-05-17 Havoc Pennington <hp@pobox.com>
10456 * bus/config-parser.c (merge_included): merge in policies from
10457 child configuration file.
10459 * bus/policy.c (bus_policy_merge): function to merge two policies
10462 2003-05-16 Havoc Pennington <hp@redhat.com>
10464 * dbus/dbus-connection.c: disable verbose lock spew
10466 * tools/dbus-send.c: add --print-reply command line option
10468 * tools/dbus-print-message.h (print_message): new util function
10469 shared by dbus-send and dbus-monitor
10471 * tools/dbus-monitor.c (handler_func): exit on disconnect
10473 * dbus/dbus-transport-unix.c (do_reading): if the transport is
10474 disconnected, don't try to use the read_watch
10476 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10477 so we can find this bug more easily
10479 2003-05-16 Havoc Pennington <hp@redhat.com>
10481 * bus/policy.c (free_rule_list_func): avoid a crash when passed
10482 NULL as DBusHashTable is annoyingly likely to do.
10484 2003-05-16 Colin Walters <walters@verbum.org>
10486 * tools/dbus-monitor.c: Add --session argument and usage()
10489 * tools/dbus-monitor.1: Update with new --session arg.
10491 * bus/Makefile.am (install-data-hook): Create
10492 $(libdir)/dbus-1.0/services so that the session bus is happy.
10494 2003-05-15 Havoc Pennington <hp@redhat.com>
10496 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10497 on non-x86. ifdef's are evil.
10499 2003-05-15 Havoc Pennington <hp@redhat.com>
10501 * configure.in: 0.11
10505 * bus/Makefile.am (initddir): apparently we are supposed to put
10506 init scripts in /etc/rc.d/init.d not /etc/init.d
10508 * bus/Makefile.am: remove the "you must --enable-tests to make
10509 check" as it broke distcheck
10511 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10513 2003-05-13 James Willcox <jwillcox@gnome.org>
10516 * bus/activation.c: (bus_activation_service_created),
10517 (bus_activation_activate_service):
10518 * bus/driver.c: (bus_driver_send_service_deleted),
10519 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10520 (bus_driver_send_service_acquired),
10521 (bus_driver_send_welcome_message),
10522 (bus_driver_handle_list_services):
10523 * bus/session.conf.in:
10524 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10525 (dbus_bus_service_exists), (dbus_bus_activate_service):
10528 Add some convenience API which lets you activate a service, and did a
10529 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10530 and dbus_message_get_args()
10532 2003-05-11 Havoc Pennington <hp@pobox.com>
10534 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10535 calling _dbus_marshal_validate_arg() for every byte in a byte
10538 * dbus/dbus-message-handler.c: use atomic reference counting to
10539 reduce number of locks slightly; the global lock in here sucks
10541 * dbus/dbus-connection.c
10542 (_dbus_connection_update_dispatch_status_and_unlock): variant of
10543 update_dispatch_status that can be called with lock held; then use
10544 in a couple places to reduce locking/unlocking
10545 (dbus_connection_send): hold the lock over the whole function
10546 instead of acquiring it twice.
10548 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10550 * bus/connection.c (bus_connections_setup_connection): fix access
10551 to already-freed memory.
10553 * dbus/dbus-connection.c: keep a little cache of linked list
10554 nodes, to avoid using the global linked list alloc lock in the
10555 normal send-message case. Instead we just use the connection lock
10556 that we already have to take.
10558 * dbus/dbus-list.c (_dbus_list_find_last): new function
10560 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10561 change to use a struct for the atomic type; fix docs,
10562 they return value before increment, not after increment.
10564 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10565 (_dbus_string_append_8_aligned): new functions to try to
10566 microoptimize this operation.
10567 (reallocate_for_length): break this out of set_length(), to
10568 improve profile info, and also so we can consider inlining the
10571 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10572 strings with some preallocation, cuts down on our calls to realloc
10573 a fair bit. Though if we can get the "move entire string to empty
10574 string" optimization below to kick in here, it would be better.
10576 * dbus/dbus-string.c (_dbus_string_move): just call
10577 _dbus_string_move_len
10578 (_dbus_string_move_len): add a special case for moving
10579 an entire string into an empty string; we can just
10580 swap the string data instead of doing any reallocs.
10581 (_dbus_string_init_preallocated): new function
10583 2003-05-11 Havoc Pennington <hp@pobox.com>
10585 Write a "test-profile" that does echo client-server with threads;
10586 profile reveals lock contention, memcpy/realloc of buffers, and
10587 UTF-8 validation as hot spots. 20% of lock contention eliminated
10588 with dbus_atomic_inc/dec implementation on x86. Much remaining
10589 contention is global mempool locks for GList and DBusList.
10591 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10594 * dbus/dbus-connection.c (struct DBusConnection): use
10595 dbus_atomic_t for the reference count
10597 * dbus/dbus-message.c (struct DBusMessage): declare
10598 dbus_atomic_t values as volatile
10600 * configure.in: code to detect ability to use atomic integer
10601 operations in assembly, from GLib patch
10603 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10604 time, tired of it being wrong in threads and forked processes
10606 * glib/test-profile.c: a little program to bounce messages back
10607 and forth between threads and eat CPU
10609 * dbus/dbus-connection.c: add debug spew macros for debugging
10610 thread locks; include config.h at top; fix deadlock in
10611 dbus_connection_flush()
10613 2003-05-08 Havoc Pennington <hp@pobox.com>
10615 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10616 data from getting written, and there wasn't a good reason to
10619 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10620 dbus_verbose lines in test coverage
10621 (main): add list of functions sorted by # of untested blocks
10622 to the coverage report
10624 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10626 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10628 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10629 extend test coverage
10631 * test/data/auth/cancel.auth-script: test canceling an
10634 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10635 aren't used. in CVS history if we end up needing them.
10637 2003-05-04 Havoc Pennington <hp@pobox.com>
10639 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10642 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10643 function, which assumed length was in # of strings, not bytes
10645 * dbus/dbus-message.c (_dbus_message_test): add tests for some
10648 * dbus/dbus-connection.c
10649 (_dbus_connection_queue_received_message): disable function for
10650 now, we are only using it in test mode
10652 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10653 remove a mistaken FIXME
10655 2003-05-04 Havoc Pennington <hp@pobox.com>
10657 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10658 unlock mutex on successful return, patch from Anders Gustafsson
10660 2003-05-04 Havoc Pennington <hp@pobox.com>
10662 * dbus-glib-1.pc.in (Requires): fix dependencies, from
10665 2003-05-04 Havoc Pennington <hp@pobox.com>
10667 * tools/dbus-launch.c: implement
10669 * bus/main.c (main), bus/bus.c (bus_context_new):
10670 implement --print-pid and --fork
10672 2003-05-03 Havoc Pennington <hp@redhat.com>
10674 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10675 the address had no value, and add to test suite. Fix and
10676 regression test from Miloslav Trmac
10678 2003-05-03 Havoc Pennington <hp@pobox.com>
10680 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10681 watch is invalid when handled
10683 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10684 dbus-launch utility to launch the bus from a shell script. Didn't
10685 actually implement dbus-launch yet, it's just a placeholder still.
10687 2003-05-03 Havoc Pennington <hp@pobox.com>
10689 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10690 daemon; also documents daemon config file, so replaces
10691 doc/config-file.txt. Corrected some stuff from config-file.txt in
10692 the process of moving it.
10694 2003-05-03 Havoc Pennington <hp@pobox.com>
10696 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10699 2003-05-03 Colin Walters <walters@verbum.org>
10701 * dbus/dbus-sysdeps.c (fill_user_info): Test against
10702 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10704 * Makefile.am: Update to use new .pc versioning scheme.
10706 2003-05-02 Havoc Pennington <hp@redhat.com>
10708 * bus/system.conf.in: allow send/receive to/from message bus
10711 2003-04-30 Havoc Pennington <hp@redhat.com>
10713 * configure.in: print a note when building with unit tests and
10716 2003-04-30 Havoc Pennington <hp@redhat.com>
10718 * Makefile.am: add a check-local that complains if you didn't
10719 configure with --enable-tests
10721 2003-04-29 Havoc Pennington <hp@redhat.com>
10723 * glib/dbus-gmain.c: docs cleanups
10725 * dbus/dbus-types.h: add docs on int64 types
10727 * dbus/dbus-memory.c: fix docs to avoid putting private API in
10728 public API docs section
10730 2003-04-29 Havoc Pennington <hp@redhat.com>
10732 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10733 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10734 parallel install API version, not with the D-BUS package version.
10736 * HACKING: move some of README over here
10738 * README: updates, and document API/ABI policy
10740 * configure.in: reindentation
10742 2003-04-29 Havoc Pennington <hp@redhat.com>
10744 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10745 to use this library" to be sure people have the right
10748 2003-04-28 Havoc Pennington <hp@redhat.com>
10750 * configure.in: add --enable-docs which by default is auto yes if
10751 doxygen and db2html found, no otherwise; but can be forced on/off
10753 * doc/Makefile.am: conditionalize whether to build docs on
10756 2003-04-28 Havoc Pennington <hp@redhat.com>
10758 * configure.in: 0.10
10762 * bus/system.conf.in: add <includedir>system.d</includedir>
10764 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10765 username was provided but not uid
10767 * bus/config-parser.c (struct BusConfigParser): keep track of
10768 whether the parser is toplevel or was included; change some
10769 of the error handling if it's included.
10771 2003-04-27 Havoc Pennington <hp@pobox.com>
10775 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10776 report correct status if we finish processing authentication
10777 inside this function.
10779 * bus/activation.c (try_send_activation_failure): use
10780 bus_transaction_send_error_reply
10782 * bus/connection.c (bus_connection_get_groups): return an error
10783 explaining the problem
10785 * bus/bus.c (bus_context_check_security_policy): implement
10786 restriction here that inactive connections can only send the
10787 hello message. Also, allow bus driver to send anything to
10790 * bus/connection.c (bus_connection_complete): create the
10791 BusClientPolicy here instead of on-demand.
10792 (bus_connection_get_policy): don't return an error
10794 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10795 sender field in message being replied to
10797 * bus/bus.c (bus_context_check_security_policy): fix silly typo
10798 causing it to return FALSE always
10800 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10801 we checked sender rather than destination
10803 2003-04-25 Havoc Pennington <hp@redhat.com>
10805 test suite is slightly hosed at the moment, will fix soon
10807 * bus/connection.c (bus_connections_expire_incomplete): fix to
10808 properly disable the timeout when required
10809 (bus_connection_set_name): check whether we can remove incomplete
10810 connections timeout after we complete each connection.
10812 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10813 probably still broken.
10815 * bus/services.c (bus_registry_acquire_service): implement max
10816 number of services owned, and honor allow/deny rules on which
10817 services a connection can own.
10819 * bus/connection.c (bus_connection_get_policy): report errors here
10821 * bus/activation.c: implement limit on number of pending
10824 2003-04-25 Havoc Pennington <hp@redhat.com>
10826 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10827 where we used >= 0 instead of != DBUS_UID_UNSET.
10829 2003-04-25 Havoc Pennington <hp@redhat.com>
10831 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10832 were toggled without add/remove, fix from Anders Gustafsson
10834 2003-04-24 Havoc Pennington <hp@redhat.com>
10836 * test/data/valid-config-files/basic.conf: add <limit> tags to
10839 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10840 <limit> tag in configuration file.
10842 2003-04-24 Havoc Pennington <hp@redhat.com>
10844 * bus/dispatch.c: somehow missed some name_is
10846 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10847 (_dbus_timeout_set_interval): new
10849 * bus/connection.c (bus_connections_setup_connection): record time
10850 when each connection is first set up, and expire them after the
10851 auth timeout passes.
10853 2003-04-24 Havoc Pennington <hp@redhat.com>
10855 * dbus/dbus-message.c (dbus_message_name_is): rename
10856 (dbus_message_service_is): rename
10857 (dbus_message_sender_is): rename
10858 (dbus_message_get_service): rename
10860 2003-04-24 Havoc Pennington <hp@redhat.com>
10862 * configure.in: add --enable-checks
10864 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10866 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10867 to use thread locks.
10868 (_dbus_connection_handler_destroyed_locked): move some private
10869 functions into proper docs group
10871 * dbus/dbus-internals.h: add _dbus_return_if_fail,
10872 _dbus_return_val_if_fail
10874 Throughout: use dbus_return_if_fail
10876 2003-04-23 James Willcox <jwillcox@gnome.org>
10878 * glib/dbus-glib.h:
10879 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10880 (dbus_connection_setup_with_g_main),
10881 (dbus_server_setup_with_g_main):
10882 * glib/test-dbus-glib.c: (main):
10883 * glib/test-thread-client.c: (main):
10884 * glib/test-thread-server.c: (new_connection_callback), (main):
10885 * tools/dbus-monitor.c: (main):
10887 Added a GMainContext argument to dbus_connection_setup_with_g_main()
10888 and dbus_server_setup_with_g_main().
10890 2003-04-20 Havoc Pennington <hp@pobox.com>
10892 * doc/dbus-specification.sgml: document the restrictions on
10893 message and service names
10895 2003-04-22 Havoc Pennington <hp@redhat.com>
10897 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10898 support, and do some code cleanups to share more code and
10899 speed up array marshal/demarshal.
10901 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10903 * configure.in: generate dbus-arch-deps.h
10905 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10908 2003-04-22 Havoc Pennington <hp@redhat.com>
10910 * test/data/valid-messages/opposite-endian.message: fix test
10911 to use proper type for rply field
10913 * test/data/invalid-messages: add tests for below validation
10915 * dbus/dbus-message.c (decode_header_data): validate field types,
10916 and validate that named fields are valid names
10917 (decode_name_field): consider messages in the
10918 org.freedesktop.Local. namespace to be invalid.
10920 * dbus/dbus-string.c (_dbus_string_validate_name): new
10922 2003-04-19 Havoc Pennington <hp@pobox.com>
10924 * bus/driver.c (bus_driver_handle_hello): check limits and
10925 return an error if they are exceeded.
10927 * bus/connection.c: maintain separate lists of active and inactive
10928 connections, and a count of each. Maintain count of completed
10929 connections per user. Implement code to check connection limits.
10931 * dbus/dbus-list.c (_dbus_list_unlink): export
10933 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10934 number of bytes in the message queue for a connection
10936 2003-04-18 Havoc Pennington <hp@pobox.com>
10938 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10940 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10943 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10944 on realloc be sure to update the pointer in the keyring
10946 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10947 offset to avoid writing to unallocated memory
10949 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10950 try the next mechanism, so we properly handle OOM
10952 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10954 (_dbus_keyring_new): fix OOM bug
10955 (_dbus_keyring_new_homedir): always set error; impose a maximum
10956 number of keys we'll load from the file, mostly to speed up the
10957 test suite and make its OOM checks more useful, but also for
10960 * dbus/dbus-auth.c (process_error_server): reject authentication
10961 if we get an error from the client
10962 (process_cancel): on cancel, send REJECTED, per the spec
10963 (process_error_client): send CANCEL if we get an error from the
10966 2003-04-18 Havoc Pennington <hp@pobox.com>
10968 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10971 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10974 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10975 about DBUS_TEST_HOMEDIR once
10977 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10980 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10981 config file so we test the right thing
10983 Throughout: assorted docs improvements
10985 2003-04-18 Havoc Pennington <hp@pobox.com>
10987 * glib/dbus-gmain.c: adapt to watch changes
10989 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10991 * dbus/dbus-server.h: remove dbus_server_handle_watch
10993 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10995 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10996 like DBusTimeout, so we don't need dbus_connection_handle_watch
10999 2003-04-17 Havoc Pennington <hp@redhat.com>
11001 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11002 database usage so it all goes via the DBusUserDatabase cache.
11004 2003-04-17 Havoc Pennington <hp@redhat.com>
11006 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11007 there was an OOM watch we skipped, we always return TRUE so we
11008 iterate again to have a look at it again. Fixes test suite hang.
11009 Code rearrangement also lets us lose some memset and only iterate
11010 over callbacks once.
11012 * bus/driver.c (bus_driver_handle_message): sense of test for
11015 2003-04-16 Havoc Pennington <hp@pobox.com>
11017 * doc/dbus-specification.sgml: make spec say serials are unsigned
11019 * dbus/dbus-message.h: change message serials to unsigned
11021 * dbus/dbus-connection.c: adapt to message serials being unsigned
11023 2003-04-15 Havoc Pennington <hp@pobox.com>
11025 * bus/bus.c: create and keep around a shared DBusUserDatabase
11028 * bus/connection.c (bus_connection_get_groups): don't cache
11029 groups for user in the connection object, since user database
11030 object now does that.
11032 2003-04-16 Havoc Pennington <hp@redhat.com>
11034 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11035 list of size counters
11036 (_dbus_message_loader_putback_message_link): put back a popped link
11038 * dbus/dbus-connection.c
11039 (dbus_connection_set_max_live_messages_size): rename
11041 (dbus_connection_get_outgoing_size): get size of outgoing
11043 (_dbus_connection_set_connection_counter): remove this cruft
11045 2003-04-14 Havoc Pennington <hp@redhat.com>
11047 * dbus/dbus-userdb.c: user database abstraction, mostly to get
11048 caching, but at some point we might want to be able to use a
11049 different database.
11051 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11052 SHA1 conf file to test the sha1 auth mechanism, since the regular
11053 test always uses EXTERNAL when available.
11056 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11057 add conf file that requires use of sha1 auth
11059 2003-04-13 Havoc Pennington <hp@pobox.com>
11061 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11062 from Philip Blundell to send messages and monitor them.
11064 2003-04-13 Havoc Pennington <hp@pobox.com>
11066 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11069 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11072 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11073 fix to only recover unused bytes if we're already authenticated
11074 (_dbus_transport_get_is_authenticated): fix to still mark us
11075 authenticated if there are unused bytes.
11077 * bus/dispatch.c: implement security policy checking
11079 * bus/connection.c (bus_transaction_send_from_driver): new
11081 * bus/bus.c (bus_context_check_security_policy): new
11083 * bus/dispatch.c (send_service_nonexistent_error): delete this,
11084 now we just set the DBusError and it gets converted to an error
11087 * bus/connection.c (allow_user_function): enable code using actual
11088 data from the config file
11090 * bus/policy.c (list_allows_user): handle wildcard rules for
11091 user/group connection perms
11093 2003-04-13 Havoc Pennington <hp@pobox.com>
11095 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11097 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11099 * bus/policy.c (bus_policy_append_mandatory_rule)
11100 (bus_policy_append_default_rule, bus_policy_append_user_rule)
11101 (bus_policy_append_group_rule): new functions
11103 2003-04-12 Havoc Pennington <hp@pobox.com>
11105 * bus/config-parser.c (bus_config_parser_new): fix a memleak
11107 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11108 the pid/gid/uid, just for paranoia.
11110 * test/break-loader.c (randomly_do_n_things): find a byte
11111 containing a type code, and randomly change it to a different
11114 2003-04-12 Havoc Pennington <hp@pobox.com>
11116 * bus/policy.h: change BusPolicy to be the thing from the config
11117 file, and rename old BusPolicy to BusClientPolicy
11119 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11120 match change in how policy works
11122 * dbus/dbus-internals.h: mark assert_not_reached as
11123 __attribute((noreturn))__
11125 2003-04-11 Havoc Pennington <hp@redhat.com>
11127 * doc/dbus-specification.sgml: fix a spot with the wrong name for
11128 the broadcast service. Use boolean return for ServiceExists.
11130 2003-04-11 Havoc Pennington <hp@redhat.com>
11132 * configure.in: add another directory to look for qt in.
11134 2003-04-11 Havoc Pennington <hp@redhat.com>
11136 * AUTHORS: add Colin Walters
11138 2003-04-11 Havoc Pennington <hp@redhat.com>
11142 * configure.in: 0.9
11144 2003-04-11 Havoc Pennington <hp@redhat.com>
11146 * bus/messagebus.in: remove pid file when stopping the
11147 message bus, since the bus won't have privileges to remove it
11150 2003-04-11 Havoc Pennington <hp@redhat.com>
11152 * bus/bus.c (bus_context_new): move credentials change after
11155 2003-04-11 Havoc Pennington <hp@pobox.com>
11157 * test/decode-gcov.c: add "below average functions" to the
11158 coverage report, and change how some of the code works.
11160 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11161 not in the coverage stats.
11163 * test/test-service.c (main): use _dbus_verbose not fprintf in a
11164 couple places so running the test suite doesn't result in megaspam.
11166 2003-04-11 Havoc Pennington <hp@pobox.com>
11168 * bus/dispatch.c (check_existent_service_activation): accept a no
11169 memory error in a place we didn't before
11171 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11172 in case the first one failed," since the test suite is less
11175 2003-04-10 Havoc Pennington <hp@pobox.com>
11177 * bus/dispatch.c (check_segfault_service_activation): add test
11178 for launching an executable that just crashes.
11180 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11181 don't leave a million cores. We'll see how portable this is.
11183 2003-04-10 Havoc Pennington <hp@pobox.com>
11185 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11186 the possible parent failures before we fork, so that we don't
11187 fail to create a babysitter after creating the child.
11189 * bus/activation.c (bus_activation_activate_service): kill child
11190 if we don't successfully complete the activation.
11192 2003-04-10 Havoc Pennington <hp@redhat.com>
11194 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11195 the connection if it's disconnected
11197 * bus/activation.c (bus_activation_service_created): use new
11198 transaction features to roll back removal of pending activation if
11199 we don't successfully create the service after all. Don't remove
11200 pending activation if the function fails.
11202 * dbus/dbus-list.c (_dbus_list_insert_before_link)
11203 (_dbus_list_insert_after_link): new code to facilitate
11206 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11207 new functionality, so we can preallocate the ability to insert
11210 * bus/connection.c (bus_transaction_add_cancel_hook): new function
11211 allowing us to put custom hooks in a transaction to be used for
11212 cancelling said transaction
11214 * doc/dbus-specification.sgml: add some discussion of secondary
11215 service owners, and disallow zero-length service names
11217 * bus/services.c (bus_registry_acquire_service): new function,
11218 splits out part of bus_driver_handle_acquire_service() and fixes
11219 a bug where we didn't remove the service doing the acquiring
11220 from the secondary queue if we failed to remove the current owner
11221 from the front of the queue.
11223 2003-04-10 Alexander Larsson <alexl@redhat.com>
11225 * doc/dbus-specification.sgml:
11226 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11228 2003-04-10 Alexander Larsson <alexl@redhat.com>
11233 Added files to cvsignore
11235 * dbus/dbus-message.h:
11236 * dbus/dbus-message.c: (dbus_message_iter_get_named):
11237 Make get_named() take two out argument and return a boolean.
11238 (dbus_message_iter_get_args_valist):
11239 Update usage of get_named().
11240 (dbus_message_iter_append_byte):
11242 (dbus_message_iter_append_named)
11244 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11247 2003-04-10 Alexander Larsson <alexl@redhat.com>
11249 * dbus/dbus-marshal.[ch]:
11250 Add array_type_pos argument to _dbus_marshal_validate_arg.
11251 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11253 * dbus/dbus-message.[ch]:
11254 Multi-dimensional arrays have full type specification in the
11255 outermost array. Iter code re-arranged to handle this.
11256 Added some more iter tests.
11258 * doc/dbus-specification.sgml:
11261 Update new array encoding description.
11262 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11264 * test/data/invalid-messages/array-with-mixed-types.message:
11265 * test/data/valid-messages/array-of-array-of-uint32.message:
11266 Change to the new array format.
11268 * test/data/invalid-messages/too-short-dict.message:
11271 * test/data/valid-messages/recursive-types.message:
11272 Fix up and extend test.
11274 2003-04-10 Havoc Pennington <hp@pobox.com>
11276 * bus/dispatch.c: lots of fixes
11278 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11279 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11280 that was crack, broke the test service.
11282 * dbus/dbus-transport.c (_dbus_transport_open): fix error
11283 handling to avoid piling up errors if we get a failure on the
11286 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11287 pid in assertion failures.
11289 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11290 to some fixed size of file descriptor array. Don't return TRUE
11291 anytime a timeout exists, that led to lots of busy loop silliness
11294 2003-04-09 Havoc Pennington <hp@redhat.com>
11296 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11297 I'd checked this in earlier but hadn't.
11299 2003-04-09 Havoc Pennington <hp@redhat.com>
11301 * bus/dispatch.c (bus_dispatch_test): get a bit further through
11302 the activation test (man this is getting old!)
11304 2003-04-09 Havoc Pennington <hp@redhat.com>
11306 * test/test-utils.c: use dispatch status function to fix this up
11308 * bus/connection.c (connection_watch_callback): don't dispatch
11310 (connection_timeout_callback): don't dispatch from here
11311 (bus_connections_setup_connection): set the dispatch status function
11312 (bus_connection_disconnected): unset it
11314 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11315 used to add a connection to be dispatched
11316 (_dbus_loop_iterate): do the dispatching at the end of each
11319 * dbus/dbus-connection.c
11320 (dbus_connection_set_dispatch_status_function): new function
11321 allowing us to fix up main loop usage
11322 (_dbus_connection_last_unref): free all the various function
11324 (dbus_connection_dispatch): call the DispatchStatusFunction
11325 whenever this function returns
11326 (dbus_connection_handle_watch): call DispatchStatusFunction
11327 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11328 (reply_handler_timeout): call DispatchStatusFunction
11329 (dbus_connection_flush): call DispatchStatusFunction
11331 2003-04-09 Havoc Pennington <hp@redhat.com>
11333 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11336 * bus/dispatch.c (check_service_activated): fix bug in test
11338 * dbus/dbus-mainloop.c (check_timeout): fix this up
11340 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11341 verbose output so we can sort out output from different processes,
11342 e.g. in the activation case.
11344 2003-04-08 Colin Walters <walters@gnu.org>
11346 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11348 (bus_context_new): Set it.
11349 (bus_context_unref): Use it to delete the pid file.
11351 2003-04-08 Havoc Pennington <hp@redhat.com>
11353 * test/data/invalid-messages/array-with-mixed-types.message:
11354 regression test that fails for the moment
11356 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11357 tests for convenience
11359 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11360 array of nil, it broke things.
11362 * test/data/invalid-messages/array-of-nil.message: regression test
11364 * test/data/valid-messages/array-of-array-of-uint32.message:
11365 happened to write this so added it to suite
11367 2003-04-08 Havoc Pennington <hp@redhat.com>
11369 * bus/driver.c (bus_driver_handle_acquire_service): init
11370 retval/reply before checking name
11372 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11373 recursion depth argument
11375 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11376 in the public struct for future extension
11378 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11381 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11384 * doc/dbus-specification.sgml: fix typo
11386 2003-04-08 Alexander Larsson <alexl@redhat.com>
11388 Implemented recursive types, named types and new-style iters
11391 * glib/test-thread-client.c: (thread_func):
11392 * glib/test-thread-server.c: (handle_test_message):
11393 * test/test-service.c: (handle_echo):
11396 * dbus/Makefile.am:
11397 * dbus/dbus-dict.c:
11398 * dbus/dbus-dict.h:
11402 * dbus/dbus-internals.c: (_dbus_type_to_string):
11403 Update for new types.
11405 * dbus/dbus-marshal.[ch]:
11406 Implement recursive types and the new marshalling format.
11407 Remove hardcoded dict marshalling.
11408 Marshal named types.
11410 * dbus/dbus-message-builder.c:
11412 Remove references to old types
11414 * dbus/dbus-message.[ch]:
11415 New non-refcounted iter API that supports recursive iters.
11416 Use iters for appending, including support for recursive
11418 Add byte and named type support.
11419 Update everything to new marshalling formats.
11420 Add tests for new API.
11422 * dbus/dbus-protocol.h:
11423 Remove old array types.
11424 Add types: BYTE, ARRAY, DICT, NAMED
11426 * dbus/dbus-string.c:
11427 * dbus/dbus-sysdeps.c:
11428 Make parse_double locale safe.
11430 * dbus/dbus-test-main.c:
11433 * dbus/dbus-test.c:
11436 * doc/dbus-specification.sgml:
11439 * test/data/incomplete-messages/missing-body.message:
11440 * test/data/invalid-messages/bad-boolean.message:
11441 * test/data/invalid-messages/bad-boolean-array.message:
11442 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11443 * test/data/invalid-messages/boolean-has-no-value.message-raw:
11444 * test/data/invalid-messages/too-short-dict.message:
11445 * test/data/valid-messages/dict-simple.message:
11446 * test/data/valid-messages/dict.message:
11447 * test/data/valid-messages/emptiness.message:
11448 * test/data/valid-messages/lots-of-arguments.message:
11449 * test/data/valid-messages/no-padding.message:
11450 * test/data/valid-messages/recursive-types.message:
11451 Add missing NAME fields
11452 Fix up dicts & arrays
11454 * test/data/invalid-messages/dict-with-nil-value.message:
11455 Removed, this is not invalid anymore.
11457 * test/data/valid-messages/recursive-types.message:
11458 Add new test for deeply recursive types.
11460 2003-04-07 Havoc Pennington <hp@pobox.com>
11462 * bus/driver.c (bus_driver_handle_acquire_service): return an
11463 error if you try to acquire a service that starts with ':'
11465 2003-04-07 Havoc Pennington <hp@redhat.com>
11467 * doc/dbus-specification.sgml: require that base service names
11468 start with ':' and that the base service is created/deleted
11469 as first and last things a connection does on the bus
11471 * bus/dispatch.c (check_existent_service_activation): lots more
11472 work on the activation test; it doesn't fully pass yet...
11474 * test/test-service.c (main): fix so we don't memleak the
11475 connection to the message bus
11476 (filter_func): accept a message asking us to exit
11478 2003-04-06 Havoc Pennington <hp@pobox.com>
11480 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11483 * configure.in: fixes to Qt detection from Colin Walters
11485 * doc/Makefile.am: Only remove generated docbook dirs if they
11486 exist, from Colin Walters
11488 * dbus/dbus-bus.c: change how we set well-known connections to
11489 NULL, so that it works if a single connection is stored in
11490 two well-known array slots.
11492 * test/Makefile.am: remove a lot of stuff that isn't immediately
11493 useful, it's in CVS history if we want it.
11495 * test/test-service.c: use dbus-mainloop instead of that
11498 2003-04-06 Havoc Pennington <hp@pobox.com>
11500 * dbus/Makefile.am: split lists of sources into stuff that goes in
11501 the library, util functions that go in the lib and are also used
11502 elsewhere, and util functions that are used in tests/daemon but
11503 don't go in the lib.
11505 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11506 here so it can be used in test binaries also
11508 2003-04-06 Havoc Pennington <hp@pobox.com>
11510 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11511 here in the parent process, so we can return an error if it
11512 fails. Also, move some of the code into the child so the parent
11513 is less hosed if we fail midway through.
11515 * bus/bus.c (bus_context_new): move pidfile detection further up
11516 in the function, before we start overwriting sockets and such.
11518 * bus/messagebus.in: adjust this a bit, not sure if it will work.
11520 * configure.in: add --with-system-pid-file and --with-system-socket
11522 2003-04-06 Colin Walters <walters@verbum.org>
11524 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11526 * bus/system.conf.in: Declare a pidfile.
11528 * bus/bus.c (bus_context_new): Test for an existing pid file, and
11529 create one (if appropriate).
11531 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11532 (struct BusConfigParser) [pidfile]: New.
11533 (element_type_to_name, merge_included, start_busconfig_child)
11534 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11535 (bus_config_parser_unref): Free it.
11536 (bus_config_parser_get_pidfile): New function.
11538 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11540 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11542 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11544 * dbus/dbus-sysdeps.h: Prototype it.
11546 2003-04-06 Havoc Pennington <hp@pobox.com>
11548 * bus/bus.c (bus_context_new): print the address in here, rather
11549 than in main(), because we need to do it before forking the daemon
11551 * bus/dispatch.c (send_service_nonexistent_error): set the sender
11552 on the service nonexistent error
11554 * bus/driver.c (bus_driver_handle_acquire_service): set the
11555 sender on the AcquireService reply
11557 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11558 server also listen on a UNIX socket so services can connect to it.
11560 2003-04-06 Havoc Pennington <hp@pobox.com>
11562 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11563 so it detects deadlocks and also we actually init threads when
11566 2003-04-06 Havoc Pennington <hp@pobox.com>
11568 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11569 save the domain socket name, and unlink it when we disconnect the
11570 server. Means that at least when we exit normally, we won't leave
11571 a bunch of junk in /tmp
11573 * dbus/dbus-transport-unix.c
11574 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11575 memory management). (I was making a real change here but then
11578 2003-04-06 Havoc Pennington <hp@pobox.com>
11580 * bus/bus.c (bus_context_new): fix wrong handling of
11581 server_data_slot_unref() in the error case.
11583 * dbus/dbus-internals.h (_dbus_assert): change so it passes
11584 "(condition) != 0" to _dbus_real_assert so that
11585 "_dbus_assert (pointer)" doesn't cause a warning
11587 * bus/main.c (main): accept --print-address option to print out
11588 the message bus address
11590 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11592 * dbus/dbus-transport.c (_dbus_transport_open): special error for
11593 "tmpdir" option to unix: address on client side
11595 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11598 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11599 we can use to create sockets in the test suite.
11601 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11602 cleanly. To be used for testing.
11604 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11606 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11608 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11609 handle trying to call this when there's no servers active
11611 2003-04-05 Havoc Pennington <hp@pobox.com>
11615 * configure.in: 0.8
11617 2003-04-05 Havoc Pennington <hp@pobox.com>
11619 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11620 crash on startup. Need to get "try starting the daemon"
11621 in the test suite I guess. ;-)
11623 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11624 tracked the number of open connections; it's better done in
11625 application-specific code as you want it to span all servers etc.
11627 2003-04-05 Havoc Pennington <hp@pobox.com>
11629 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11630 patch from Colin Walters
11632 2003-04-05 Havoc Pennington <hp@pobox.com>
11634 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11635 reality; in fact multiple mechanisms are allowed.
11637 * dbus/dbus-internals.c (_dbus_real_assert)
11638 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11639 _dbus_assert_not_reached() into functions, so that they don't show
11640 up in basic block counts for test coverage, and don't use up as
11641 much disk space. Does mean slower execution speed though, so
11642 assumes --disable-asserts is the normal production case.
11644 2003-04-05 Havoc Pennington <hp@pobox.com>
11646 * test/Makefile.am (dist-hook): also dist *.in files
11650 * configure.in: 0.7
11652 2003-04-05 Havoc Pennington <hp@pobox.com>
11654 * dbus/dbus-string.c: docs warning
11656 * dbus/dbus-spawn.c: missing docs
11658 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11660 2003-04-05 Havoc Pennington <hp@pobox.com>
11662 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11665 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11666 to -1 once we've reaped the babysitter
11667 (_dbus_babysitter_handle_watch): do as much work as we can, not
11670 * bus/activation.c: add code using DBusBabysitter so that we
11671 handle it when a service fails to start up properly.
11672 (bus_activation_service_created): don't remove the activation
11673 entries as we go, just let them get removed when we free the pending
11674 activation. Unref reply messages after sending them.
11676 2003-04-05 Havoc Pennington <hp@pobox.com>
11678 * test/decode-gcov.c (main): print per-directory stats in the report
11680 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11682 2003-04-05 Havoc Pennington <hp@pobox.com>
11684 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11686 * test/decode-gcov.c: hack up a little program to suck data
11687 out of gcov files. Yes this is sort of silly.
11689 * configure.in: define something in config.h and do an
11690 AM_CONDITIONAL when gcov is enabled
11692 2003-04-04 Havoc Pennington <hp@redhat.com>
11694 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11695 return a "babysitter" object that is used to monitor the status of
11696 the spawned process and reap it when required.
11698 * test/test-segfault.c, test/test-exit.c,
11699 test/test-sleep-forever.c: binaries that do various lame things,
11700 used in the test suite.
11702 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11704 2003-04-03 Havoc Pennington <hp@pobox.com>
11706 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11707 in preparation for modifying it, dbus-sysdeps is getting
11708 a bit unmanageable.
11710 2003-04-03 Havoc Pennington <hp@redhat.com>
11712 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11715 * bus/*.[hc]: adapt to mainloop change
11717 2003-04-03 Havoc Pennington <hp@redhat.com>
11719 * bus/activation.c (load_directory): fix up memleaks
11720 (bus_activation_entry_free): free the entry
11722 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11723 we get one from the message bus; fix memleaks.
11725 * dbus/dbus-message.c (dbus_set_error_from_message): new function
11727 2003-04-03 Havoc Pennington <hp@pobox.com>
11729 * bus/config-parser.c (bus_config_parser_unref): free
11730 list of mechanisms, bug discovered by test suite enhancements
11731 (putting system.conf and session.conf into suite)
11733 * test/Makefile.am, test/test-service.c: add placeholder for a
11734 test service that we'll activate as part of test suite. Doesn't
11737 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11738 setting NULL value, and use system malloc not dbus_malloc()
11739 when we have unavoidable memleakage.
11741 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11742 didn't work, and support DBUS_BUS_ACTIVATION.
11744 * bus/activation.c (child_setup): pass our well-known bus type to
11747 * bus/config-parser.c: support <type> to specify well-known type
11749 * doc/dbus-specification.sgml: document the env variables to
11750 locate well-known buses and find service activator
11752 2003-04-02 Havoc Pennington <hp@redhat.com>
11754 * test/Makefile.am (all-local): add a rule to copy tests to
11755 builddir, so we can have generated tests. Use this to remove the
11756 silly hack for testing system.conf and session.conf. Will use this
11757 shortly to generate .service files pointing to test binaries.
11759 2003-04-02 Havoc Pennington <hp@redhat.com>
11761 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11762 current alloc and needed new length, not max of the doubled
11763 allocation and needed new length. Also, when building tests,
11764 don't do the double-allocation stuff, just realloc every time.
11766 2003-04-02 Havoc Pennington <hp@redhat.com>
11768 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11770 (_dbus_string_get_dirname): new
11771 (_dbus_sysdeps_test): new
11772 (_dbus_directory_open): include dirnames in error messages
11774 * bus/config-parser.c: interpret <include> and <includedir> and
11775 <servicedir> relative to config file location if the given
11776 filename is not absolute.
11778 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11780 2003-04-02 Havoc Pennington <hp@redhat.com>
11782 * bus/connection.c (bus_transaction_send_error_reply): set sender
11783 service for the error, and unref the reply on success
11785 * bus/activation.c: convert to use BusTransaction so OOM can be
11787 (bus_activation_service_created): set sender of the message
11789 2003-04-01 Havoc Pennington <hp@redhat.com>
11791 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11792 <includedir> (at least mostly)
11794 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11795 first, then the user ID
11797 2003-04-01 Havoc Pennington <hp@pobox.com>
11799 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11802 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11804 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11806 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11807 socket 0777, and unlink any existing socket.
11809 * bus/bus.c (bus_context_new): change our UID/GID and fork if
11810 the configuration file so specifies; set up auth mechanism
11813 * bus/config-parser.c (bus_config_parser_content): add support
11814 for <fork> option and fill in code for <auth>
11816 * bus/system.conf.in: add <fork/> to default configuration,
11817 and limit auth mechanisms to EXTERNAL
11819 * doc/config-file.txt (Elements): add <fork>
11821 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11822 (_dbus_change_identity): new function
11824 2003-03-31 Havoc Pennington <hp@redhat.com>
11826 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11827 (_dbus_listen_unix_socket): fix off-by-one error in null
11828 termination spotted by Nalin
11830 2003-03-31 Havoc Pennington <hp@redhat.com>
11832 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11833 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11834 having a real home directory available.
11836 2003-03-31 Havoc Pennington <hp@redhat.com>
11838 * bus/Makefile.am (install-data-hook): create /var/run/dbus
11840 * bus/messagebus.in: add init script for Red Hat /etc/init.d
11842 * configure.in: add support for specifying a style of init script
11845 2003-03-31 Havoc Pennington <hp@redhat.com>
11847 Fix some annoying DBusString API and fix all affected code.
11849 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11850 max_length argument
11851 (_dbus_string_get_data): change to return string instead of using
11853 (_dbus_string_get_const_data): ditto
11854 (_dbus_string_get_data_len): ditto
11855 (_dbus_string_get_const_data_len): ditto
11857 2003-03-31 Havoc Pennington <hp@redhat.com>
11859 * bus/main.c (main): fix up the command line arguments to be nicer
11861 2003-03-31 Havoc Pennington <hp@redhat.com>
11863 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11864 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11865 final location that lands in the config file
11867 * bus/config-loader-expat.c (bus_config_load): fix type of
11868 XML_Parser variable
11870 * doc/TODO: remove TODO item for dbus_bus_get()
11872 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11874 2003-03-31 Havoc Pennington <hp@pobox.com>
11876 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11877 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11878 argument since they are always client side
11880 * dbus/dbus-server.c (dbus_server_get_address): new function
11882 * bus/main.c (main): take the configuration file as an argument.
11884 * test/data/valid-config-files/debug-allow-all.conf: new file to
11885 use with dispatch.c tests for example
11887 * bus/test-main.c (main): require test data dir
11889 * bus/bus.c (bus_context_new): change this to take a
11890 configuration file name as argument
11892 * doc/config-file.txt (Elements): add <servicedir>
11894 * bus/system.conf, bus/session.conf: new files
11896 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11897 well-known socket if none set
11899 * configure.in: create system.conf and session.conf
11901 2003-03-30 Havoc Pennington <hp@pobox.com>
11903 * bus/config-parser.c: hacking
11905 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11906 to shut down, since it could cause weirdness with the DBusList
11909 * dbus/dbus-list.c (_dbus_list_test): add tests for the
11910 link-oriented stack routines
11911 (alloc_link): free the mempool if the first alloc from it fails
11913 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11915 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11917 (_dbus_string_skip_white): new
11919 * doc/config-file.txt (Elements): add <includedir>
11921 2003-03-28 Havoc Pennington <hp@pobox.com>
11923 * dbus/dbus-string.c (_dbus_string_copy_data_len)
11924 (_dbus_string_copy_data): new functions
11926 2003-03-28 Anders Carlsson <andersca@codefactory.se>
11928 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11932 * dbus/dbus-memory.c:
11935 2003-03-28 Havoc Pennington <hp@pobox.com>
11937 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11938 I think it may have just been superstition. Not sure.
11940 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11941 failures that were not being handled.
11943 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11945 * dbus/dbus-memory.c: add ability to set number of mallocs in a
11946 row that will fail on out-of-memory.
11948 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11949 function for testing out-of-memory handling.
11951 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11952 allocation functions, they do map exactly to the expat ones.
11954 2003-03-27 Havoc Pennington <hp@redhat.com>
11956 * bus/config-loader-libxml.c (bus_config_load): add another error
11959 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11962 Add note about automatic service activation.
11964 * doc/dbus-specification.sgml:
11965 Rename the specification and clarify a few things.
11967 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11970 * dbus/dbus-address.c:
11971 * dbus/dbus-dict.c:
11972 * dbus/dbus-marshal.c:
11973 * dbus/dbus-server-debug-pipe.c:
11974 * dbus/dbus-transport-unix.c:
11975 Fix documentation warnings.
11977 2003-03-26 Havoc Pennington <hp@pobox.com>
11979 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11980 after every test so it's quick and easy to see which leaked, and
11981 so we test multiple dbus_shutdown() calls
11983 * configure.in: change configure.in XML stuff to also support
11986 * config-loader-libxml.c: some hacking
11988 * config-loader-expat.c: some hacking
11990 * config-parser.c: some hacking, plus tests
11992 2003-03-25 Havoc Pennington <hp@redhat.com>
11994 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11996 * configure.in: add --with-xml option to specify XML library,
11997 right now only libxml is supported.
11999 * bus/config-loader-libxml.c, config-parser.c: sync some minor
12000 nonworking code between home and work, still just stubs
12002 2003-03-24 Havoc Pennington <hp@redhat.com>
12004 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12007 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12008 NULL argument for "message" if the error is a well-known one,
12009 fill in a generic message in this case.
12011 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12014 * bus/test.c (bus_test_flush_bus): add
12016 * bus/policy.c (bus_policy_test): test code stub
12018 2003-03-24 Havoc Pennington <hp@pobox.com>
12020 * bus/connection.c (bus_connections_setup_connection): set up
12021 the "can this user connect" function, but it always returns
12022 TRUE until we have a config file parser so we can have a config
12023 file that allows connections.
12025 2003-03-23 Havoc Pennington <hp@pobox.com>
12027 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12028 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12029 the mutex, so we can check for proper memory management
12032 * dbus/dbus-dataslot.c: remove the mutex from
12033 DBusDataSlotAllocator and lock it manually when using it,
12034 to simplify fitting it into the global slots framework.
12036 * dbus/dbus-threads.c (init_static_locks): rework how we're
12037 handling global locks so they are easily shut down.
12039 * bus/policy.c (bus_policy_append_rule): fix
12041 * bus/test-main.c (main): check for memleaks
12043 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12044 test suite check for memleaks
12046 * dbus/dbus-memory.c: add support in test mode for tracking
12047 number of outstanding blocks
12049 2003-03-23 Havoc Pennington <hp@pobox.com>
12051 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12054 * dbus/dbus-hash.h: add ULONG hash keys
12056 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12057 (_dbus_get_group_id): new function
12059 2003-03-20 Havoc Pennington <hp@redhat.com>
12061 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12063 (dbus_connection_get_unix_user): new function
12065 2003-03-20 Havoc Pennington <hp@pobox.com>
12067 * bus/connection.c (bus_connection_send_oom_error): assert that
12068 message has a sender
12069 (connection_execute_transaction): ditto
12070 (bus_connection_preallocate_oom_error): fix to set the sender, and
12071 set recipient to the destination service, not the bus driver
12073 * bus/policy.c: hacking
12075 * dbus/dbus-message.c (dbus_message_service_is): new function
12076 (dbus_message_sender_is): new
12078 2003-03-19 Havoc Pennington <hp@redhat.com>
12080 * bus/policy.c: start sketching code for policy restrictions on
12081 what connections can do.
12083 2003-03-18 Havoc Pennington <hp@redhat.com>
12085 * doc/TODO: some notes on high-level todo items. Little nitpick
12086 stuff is all in @todo, so no need to add it here.
12088 * doc/config-file.txt: some notes on how config file might look
12090 2003-03-18 Anders Carlsson <andersca@codefactory.se>
12092 * configure.in: 0.6
12096 2003-03-17 Havoc Pennington <hp@redhat.com>
12098 * dbus/dbus-internals.h: add gcc attributes so that
12099 our printf-style functions warn on bad arguments to
12102 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12105 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12108 2003-03-17 Havoc Pennington <hp@redhat.com>
12110 * bus/test-main.c (main): make it print something as it runs
12111 so make check doesn't look stuck
12113 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12114 from CVS, now obsolete
12116 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12118 * bus/dispatch.c: (bus_dispatch):
12119 Refetch the service name since it may have been reallocated
12120 when dbus_message_set_sender was called.
12122 * dbus/dbus-sysdeps.c: (_dbus_accept):
12123 Add address and address length variables and use them to stop
12124 valgrind from complaining.
12126 2003-03-17 Havoc Pennington <hp@pobox.com>
12128 All tests pass, no memleaks, no valgrind complaints.
12130 * bus/test.c: refcount handler_slot
12132 * bus/connection.c (bus_connections_new): refcount
12133 connection_data_slot
12135 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12136 bytes so that auth scripts pass.
12138 * bus/dispatch.c: init message_handler_slot so it gets allocated
12141 * bus/dispatch.c (message_handler_slot_ref): fix memleak
12143 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12144 dealloc server_pipe_hash when no longer used for benefit of
12147 * dbus/dbus-auth.c (process_command): memleak fix
12149 * bus/dispatch.c (check_hello_message): memleak fix
12151 2003-03-16 Havoc Pennington <hp@pobox.com>
12153 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12155 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12157 * bus/activation.c (bus_activation_activate_service): Append
12158 the pending activation entry to the list of pending activations.
12160 2003-03-16 Havoc Pennington <hp@pobox.com>
12162 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12165 * dbus/dbus-address.c (create_entry): fix OOM handling when
12166 failing to alloc entry->method
12168 2003-03-16 Havoc Pennington <hp@pobox.com>
12170 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12173 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12174 add some missing dbus_set_result
12176 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12177 alloc the DBusMessageHandler
12179 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12180 the transport here, since we call this from the finalizer; it
12181 resulted in a double-finalize.
12183 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12184 where we tried to use transport->connection that was NULL,
12185 happened when transport was disconnected early on due to OOM
12187 * bus/*.c: adapt to handle OOM for watches/timeouts
12189 * dbus/dbus-transport-unix.c: port to handle OOM during
12192 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12193 reference to unused bytes instead of a copy
12195 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12198 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12201 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12204 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12206 * doc/dbus-specification.sgml:
12207 Document reply message for ActivateService.
12209 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12211 * bus/activation.c: (bus_pending_activation_entry_free),
12212 (bus_pending_activation_free), (bus_activation_new),
12213 (bus_activation_unref), (bus_activation_service_created),
12214 (bus_activation_activate_service):
12215 * bus/activation.h:
12216 * bus/bus.c: (bus_context_new):
12217 * bus/desktop-file.c: (new_section):
12218 * bus/driver.c: (bus_driver_send_service_deleted),
12219 (bus_driver_handle_activate_service):
12220 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12222 * dbus/dbus-connection.c:
12223 (dbus_connection_send_with_reply_and_block):
12224 * dbus/dbus-message.c: (dbus_message_append_args_valist):
12225 * dbus/dbus-protocol.h:
12226 Make activation work better. Now pending activations will be queued
12227 and the daemon won't try to activate services that are already registered.
12229 2003-03-16 Havoc Pennington <hp@pobox.com>
12231 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12234 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12235 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12237 2003-03-16 Havoc Pennington <hp@pobox.com>
12239 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12240 this. always run the test suite before commit...
12242 * bus/*: adapt to DBusConnection API changes
12244 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12245 requires renaming stuff to avoid dbus_connection_dispatch name
12248 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12251 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12252 separate from _dbus_message_loader_return_buffer()
12254 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12255 this, because it's now always broken to use; the number of
12256 messages in queue vs. the number still buffered by the message
12257 loader is undefined/meaningless. Should use
12258 dbus_connection_get_dispatch_state().
12259 (dbus_connection_dispatch): rename from
12260 dbus_connection_dispatch_message
12262 2003-03-16 Havoc Pennington <hp@pobox.com>
12264 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12267 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12269 * dbus/dbus-connection.c:
12270 (dbus_connection_send_with_reply_and_block):
12271 Decrease connection->n_incoming when removing an entry
12273 * dbus/dbus-dict.c: (dbus_dict_entry_free),
12274 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12275 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12276 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12277 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12278 (dbus_dict_get_byte_array):
12279 Handle NULL arrays and strings. Also add support for byte arrays.
12281 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12282 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12283 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12284 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12285 (_dbus_demarshal_dict), (demarshal_and_validate_len),
12286 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12287 * dbus/dbus-marshal.h:
12288 Add support for marshalling and demarshalling empty arrays and strings.
12290 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12291 (dbus_message_append_string_array),
12292 (dbus_message_iter_get_boolean),
12293 (dbus_message_iter_get_boolean_array),
12294 (dbus_message_iter_get_int32_array),
12295 (dbus_message_iter_get_uint32_array),
12296 (dbus_message_iter_get_double_array),
12297 (dbus_message_iter_get_byte_array),
12298 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12299 (check_message_handling):
12300 Add support for getting empty arrays and dicts.
12302 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12303 Don't do any validation at all for now, that's better than just checking
12306 * test/data/valid-messages/emptiness.message:
12307 New test message with lots of empty arrays.
12309 2003-03-16 Havoc Pennington <hp@pobox.com>
12311 * dbus/dbus-connection.c
12312 (_dbus_connection_queue_received_message_link): new function that
12313 can't fail due to OOM
12315 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12316 new function pops a message together with a list link
12319 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12320 message queuing functions to avoid needing to alloc memory
12322 2003-03-16 Havoc Pennington <hp@pobox.com>
12324 Oops - test code was only testing failure of around 30 of the
12325 mallocs in the test path, but it turns out there are 500+
12326 mallocs. I believe this was due to misguided linking setup such
12327 that there was one copy of dbus_malloc etc. in the daemon and one
12328 in the shared lib, and only daemon mallocs were tested. In any
12329 case, the test case now tests all 500+ mallocs, and doesn't pass
12330 yet, though there are lots of fixes in this patch.
12332 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12333 this so that it doesn't need to allocate memory, since it
12334 has no way of indicating failure due to OOM (and would be
12335 annoying if it did).
12337 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12339 * bus/Makefile.am: rearrange to create two self-contained
12340 libraries, to avoid having libraries with overlapping symbols.
12341 that was resulting in weirdness, e.g. I'm pretty sure there
12342 were two copies of global static variables.
12344 * dbus/dbus-internals.c: move the malloc debug stuff to
12347 * dbus/dbus-list.c (free_link): free list mempool if it becomes
12350 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12352 * dbus/dbus-address.c (dbus_parse_address): free list nodes
12355 * bus/dispatch.c (bus_dispatch_add_connection): free
12356 message_handler_slot when no longer using it, so
12357 memory leak checkers are happy for the test suite.
12359 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12361 * bus/bus.c (new_connection_callback): disconnect in here if
12362 bus_connections_setup_connection fails.
12364 * bus/connection.c (bus_connections_unref): fix to free the
12366 (bus_connections_setup_connection): if this fails, don't
12367 disconnect the connection, just be sure there are no side
12370 * dbus/dbus-string.c (undo_alignment): unbreak this
12372 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12374 (_dbus_auth_new): fix the order in which we free strings
12377 * bus/connection.c (bus_connection_disconnected): fix to
12378 not send ServiceDeleted multiple times in case of memory
12381 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12382 get the base service name
12383 (dbus_bus_register_client): don't return base service name,
12384 instead store it on the DBusConnection and have an accessor
12386 (dbus_bus_register_client): rename dbus_bus_register()
12388 * bus/dispatch.c (check_hello_message): verify that other
12389 connections on the bus also got the correct results, not
12390 just the one sending hello
12392 2003-03-15 Havoc Pennington <hp@pobox.com>
12394 Make it pass the Hello handling test including all OOM codepaths.
12395 Now to do other messages...
12397 * bus/services.c (bus_service_remove_owner): fix crash when
12398 removing owner from an empty list of owners
12399 (bus_registry_ensure): don't leave service in the list of
12400 a connection's owned services if we fail to put the service
12403 * bus/connection.c (bus_connection_preallocate_oom_error): set
12404 error flag on the OOM error.
12406 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12407 handle _dbus_transport_set_connection failure
12409 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12410 to create watches up front and simply enable/disable them as
12412 (unix_connection_set): this can now fail on OOM
12414 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12415 of enabling/disabling a watch or timeout.
12417 * bus/loop.c (bus_loop_iterate): don't touch disabled
12420 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12422 2003-03-15 Havoc Pennington <hp@pobox.com>
12424 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12425 write useful test code, after all that futzing around ;-)
12427 Test does not yet pass because we can't handle OOM in
12428 _dbus_transport_messages_pending (basically,
12429 dbus_connection_preallocate_send() does not prealloc the write
12430 watch). To fix this, I think we need to add new stuff to
12431 set_watch_functions, namely a SetEnabled function so we can alloc
12432 the watch earlier, then enable it later.
12434 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12435 dbus-memory.c to the convenience lib
12437 * bus/test.c: rename some static functions to keep them clearly
12438 distinct from stuff in connection.c. Handle client disconnection.
12440 2003-03-14 Havoc Pennington <hp@pobox.com>
12442 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12443 transport, tests more of the real codepath. Set up clients
12444 with bus_setup_debug_client.
12446 * bus/test.c (bus_setup_debug_client): function to set up debug
12447 "clients" on the main loop
12449 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12452 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12455 * dbus/dbus-server-debug.c: support a debug server based on pipes
12457 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12458 (_dbus_close): new function
12460 * configure.in: check for socketpair
12462 2003-03-14 Havoc Pennington <hp@redhat.com>
12464 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12467 * dbus/dbus-transport-debug.c: rework this a good bit to be
12468 less complicated. hopefully still works.
12470 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12473 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12476 * dbus/dbus-message.c (dbus_message_copy): rename from
12477 dbus_message_new_from_message, fix it up to copy
12478 all the message fields, add test case
12480 * bus/dispatch.c (bus_dispatch_test): add some more test code,
12481 not quite passing yet
12483 2003-03-14 Havoc Pennington <hp@pobox.com>
12485 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12486 until no work remains" in test code. (the large diff here
12487 is just code movement, no actual changes)
12489 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12490 1, no point waiting around for test code.
12491 (_dbus_server_debug_accept_transport): unref the timeout
12492 after adding it (right?)
12494 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12496 2003-03-13 Havoc Pennington <hp@redhat.com>
12498 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12501 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12504 * dbus/dbus-connection.h: Make AddWatchFunction and
12505 AddTimeoutFunction return a bool so they can fail on out-of-memory
12507 * bus/bus.c (bus_context_new): set up timeout handlers
12509 * bus/connection.c (bus_connections_setup_connection): set up
12512 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12515 * bus/bus.c (bus_context_new): adapt to changes
12517 * bus/connection.c: adapt to changes
12519 * test/watch.c: adapt to DBusWatch changes
12521 * bus/dispatch.c (bus_dispatch_test): started adding this but
12524 2003-03-14 Anders Carlsson <andersca@codefactory.se>
12526 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12528 2003-03-13 Havoc Pennington <hp@pobox.com>
12530 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12531 set up a test framework as for the library
12533 2003-03-12 Havoc Pennington <hp@pobox.com>
12535 Throughout: purge global variables, introduce BusActivation,
12536 BusConnections, BusRegistry, etc. objects instead.
12538 * bus/bus.h, bus/bus.c: introduce BusContext as a global
12541 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12542 going to redo this a bit differently I think
12544 2003-03-12 Havoc Pennington <hp@redhat.com>
12546 Mega-patch that gets the message bus daemon initially handling
12547 out-of-memory. Work still needed. Also lots of random
12548 moving stuff to DBusError instead of ResultCode.
12550 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12552 * dbus/dbus-connection.c
12553 (dbus_connection_send_with_reply_and_block): use DBusError
12555 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12558 * dbus/dbus-connection.c (dbus_connection_send): drop the result
12559 code here, as the only failure possible is OOM.
12561 * bus/connection.c (bus_connection_disconnect):
12562 rename bus_connection_disconnected as it's a notification only
12564 * bus/driver.c (bus_driver_handle_acquire_service): don't free
12565 "name" on get_args failure, should be done by get_args;
12566 don't disconnect client for bad args, just return an error.
12567 (bus_driver_handle_service_exists): ditto
12569 * bus/services.c (bus_services_list): NULL-terminate returned array
12571 * bus/driver.c (bus_driver_send_service_lost)
12572 (bus_driver_send_service_acquired): send messages from driver to a
12573 specific client to the client's unique name, not to the broadcast
12576 * dbus/dbus-message.c (decode_header_data): reject messages that
12577 contain no name field
12578 (_dbus_message_get_client_serial): rename to
12579 dbus_message_get_serial and make public
12580 (_dbus_message_set_serial): rename from set_client_serial
12581 (_dbus_message_set_reply_serial): make public
12582 (_dbus_message_get_reply_serial): make public
12584 * bus/connection.c (bus_connection_foreach): allow stopping
12585 iteration by returning FALSE from foreach function.
12587 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12588 (dbus_connection_free_preallocated_send)
12589 (dbus_connection_preallocate_send): new API for sending a message
12590 without possibility of malloc failure.
12591 (dbus_connection_send_message): rename to just
12592 dbus_connection_send (and same for whole function family)
12594 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12596 * dbus/dbus-sysdeps.c (_dbus_exit): new function
12598 * bus/activation.c: handle/return errors
12600 * dbus/dbus-errors.h: add more DBUS_ERROR #define
12602 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12603 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12604 (_dbus_result_from_errno): move to this file
12606 2003-03-10 Anders Carlsson <andersca@codefactory.se>
12608 * dbus/dbus-marshal.c:
12609 (_dbus_marshal_set_string):
12610 Take a length argument so we can marshal the correct string
12613 (_dbus_marshal_dict), (_dbus_demarshal_dict),
12614 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12615 (_dbus_marshal_test):
12616 * dbus/dbus-marshal.h:
12617 Add support for marshalling and demarshalling dicts.
12619 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12620 Add support for TYPE DICT.
12622 * dbus/dbus-message.c: (set_string_field):
12623 Adjust header padding.
12625 (dbus_message_append_args_valist), (dbus_message_append_dict),
12626 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12627 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12628 (check_message_handling), (check_have_valid_message):
12629 * dbus/dbus-message.h:
12630 Add functions for setting and getting dicts.
12632 * dbus/dbus-protocol.h:
12633 Add DBUS_TYPE_DICT.
12638 * doc/dbus-specification.sgml:
12639 Add information about how dicts are marshalled.
12641 * test/data/invalid-messages/dict-with-nil-value.message:
12642 * test/data/invalid-messages/too-short-dict.message:
12643 * test/data/valid-messages/dict-simple.message:
12644 * test/data/valid-messages/dict.message:
12645 Add sample messages containing dicts.
12647 2003-03-08 Anders Carlsson <andersca@codefactory.se>
12649 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12651 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12653 * dbus/Makefile.am:
12654 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12655 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12656 (dbus_dict_set_int32), (dbus_dict_set_uint32),
12657 (dbus_dict_set_double), (dbus_dict_set_string),
12658 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12659 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12660 (dbus_dict_set_string_array), (_dbus_dict_test):
12661 * dbus/dbus-dict.h:
12662 Fix according to comments from Havoc.
12664 2003-03-06 Michael Meeks <michael@server.home>
12666 * configure.in: if we don't have kde-config, disable have_qt.
12668 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12670 * dbus/Makefile.am:
12673 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12674 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12675 (dbus_dict_remove), (dbus_dict_get_value_type),
12676 (dbus_dict_get_keys), (dbus_dict_put_boolean),
12677 (dbus_dict_put_int32), (dbus_dict_put_uint32),
12678 (dbus_dict_put_double), (dbus_dict_put_string),
12679 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12680 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12681 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12682 (dbus_dict_get_int32), (dbus_dict_get_uint32),
12683 (dbus_dict_get_double), (dbus_dict_get_string),
12684 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12685 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12686 (dbus_dict_get_string_array), (_dbus_dict_test):
12687 * dbus/dbus-dict.h:
12688 Add DBusDict implementation
12690 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12691 * dbus/dbus-test.h:
12692 Add _dbus_dict_test
12694 2003-03-04 Havoc Pennington <hp@pobox.com>
12696 * test/data/auth/*: adapt to changes
12698 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12699 USERID_BASE64 and change USERNAME_BASE64 to put in username not
12702 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12703 more stuff from being in a context name, to make the protocol
12704 simpler to deal with
12706 * dbus/dbus-errors.c (dbus_error_has_name): new function
12707 (dbus_error_is_set): new function
12709 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12710 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12712 * dbus/dbus-connection.c (dbus_connection_flush): also read
12713 messages during a flush operation
12715 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12717 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12719 * configure.in: Check for gethostbyname on Solaris.
12721 * dbus/dbus-transport.c: (_dbus_transport_open):
12722 Remove duplicate "tcp" entry.
12724 * doc/dbus-specification.sgml:
12725 Clarify some things.
12727 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12729 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12730 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12731 (_dbus_keyring_test):
12732 * dbus/dbus-md5.c: (_dbus_md5_compute):
12733 * dbus/dbus-sha.c: (_dbus_sha_compute):
12736 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12738 * README: Add some things.
12740 2003-03-04 Anders Carlsson <andersca@codefactory.se>
12742 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12743 after case DBUS_TYPE_BOOELAN.
12745 2003-03-02 Havoc Pennington <hp@pobox.com>
12747 * test/break-loader.c (randomly_set_extreme_ints): add test that
12748 sets really huge and small integers
12750 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12751 that length of boolean array fits in the string, and that
12752 string has room for boolean value in single-bool case.
12754 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12755 optional value to "ALIGN" command which is what to fill the
12758 * test/data/valid-messages/no-padding.message: add regression
12759 test for the message padding problem
12761 2003-03-02 Havoc Pennington <hp@pobox.com>
12763 * dbus/dbus-message.c (decode_header_data): fix to always init
12764 message_padding, from Benjamin Dauvergne
12766 2003-03-02 Havoc Pennington <hp@pobox.com>
12768 * configure.in: 0.5
12772 2003-03-01 Joe Shaw <joe@assbarn.com>
12774 * configure.in: Check for "struct cmsgcred" and try to access its
12775 members for BSD-like unices.
12777 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12778 _dbus_read_credentials_unix_socket().
12779 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12780 read() for reading the credential byte off the unix socket. Use
12781 struct cmsgcred on systems that support it.
12783 2003-02-27 Alexander Larsson <alexl@redhat.com>
12785 * glib/Makefile.am:
12787 Make gthreads-2.0 dependency optional. Don't build thread test if
12790 2003-02-27 Havoc Pennington <hp@pobox.com>
12792 * dbus/dbus-connection.c
12793 (dbus_connection_send_message_with_reply_and_block): fix doh!
12794 doh! doh! bug that resulted in never removing a reply from the
12795 queue, no wonder we called get_reply_serial so much ;-)
12797 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12798 and client serial instead of demarshaling them every time
12800 2003-02-27 Havoc Pennington <hp@pobox.com>
12802 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12803 more inlined, using dbus-string-private.h, speeds things up
12806 * dbus/dbus-string.c (_dbus_string_free): apply align offset
12807 when freeing the string
12808 (_dbus_string_steal_data): fix for align offset
12809 (undo_alignment): new function
12811 2003-02-26 Havoc Pennington <hp@redhat.com>
12813 All kinds of audit fixes from Owen, plus initial attempt to
12814 handle unaligned memory returned from malloc.
12816 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12817 leave room for align_offset and nul byte
12818 (fixup_alignment): function to track an align_offset and
12819 ensure real->str is aligned
12820 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12821 to allow a nul byte plus align offset
12822 (_dbus_string_lock): fix overflow issue
12823 (_dbus_string_init_const_len): add assertions on sanity of len,
12824 assign allocated to be ALLOCATION_PADDING larger than len
12825 (set_length): fixup the overflow handling
12826 (_dbus_string_get_data_len): fix overflow in assertion
12827 (open_gap): detect overflow in size of gap to be opened
12828 (_dbus_string_lengthen): add overflow check
12829 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12830 (_dbus_string_append): add overflow check
12831 (_dbus_string_append_unichar): overflow
12832 (_dbus_string_delete): fix overflow in assertion
12833 (_dbus_string_copy_len): overflow in assertion
12834 (_dbus_string_replace_len): overflows in assertions
12835 (_dbus_string_find): change to implement in terms of
12836 _dbus_string_find_to
12837 (_dbus_string_find_to): assorted fixage
12838 (_dbus_string_equal_c_str): assert c_str != NULL,
12839 fix logic so the function works
12840 (_dbus_string_ends_with_c_str): fix overflow thingy
12841 (_dbus_string_base64_encode): overflow fix
12842 (_dbus_string_validate_ascii): overflow
12843 (_dbus_string_validate_nul): overflow
12845 2003-02-26 Havoc Pennington <hp@redhat.com>
12847 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12849 2003-02-26 Alexander Larsson <alexl@redhat.com>
12852 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12854 * dbus/dbus-connection.c:
12855 * dbus/dbus-connection.h:
12856 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12857 Add dbus_connection_set_wakeup_main_function and use it when queueing
12858 incoming and outgoing messages.
12861 * dbus/dbus-dataslot.c:
12862 Threadsafe usage of DBusDataSlotAllocator
12864 * dbus/dbus-message.c: (dbus_message_get_args_iter):
12867 * dbus/dbus-server-unix.c:
12870 * glib/dbus-gmain.c:
12871 Implement the new wakeup functions for glib.
12873 * glib/Makefile.am:
12874 * glib/test-thread-client.c:
12875 * glib/test-thread-server.c:
12876 * glib/test-thread.h:
12877 Initial cut at some thread test code. Not really done yet.
12879 2003-02-26 Havoc Pennington <hp@pobox.com>
12881 * dbus/dbus-connection.c
12882 (dbus_connection_send_message_with_reply_and_block): fix crash
12883 where we ref'd the outgoing message instead of the returned reply
12885 * dbus/dbus-transport-unix.c (do_authentication): check read watch
12886 at the end of this function, so if we didn't need to read for
12887 authentication, we reinstall it for receiving messages
12889 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12890 a NULL sender for peer-to-peer case
12892 * dbus/dbus-transport-unix.c (check_read_watch): handle
12893 !authenticated case correctly
12895 * glib/dbus-gmain.c: add support for DBusServer
12897 * dbus/dbus-server.c: add data slot support
12899 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12900 return values and handle errors
12902 * dbus/dbus-dataslot.c: factor out the data slot stuff from
12905 * Doxyfile.in (INPUT): add glib subdir
12907 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12908 setup_with_g_main instead of hookup_with_g_main; write docs
12910 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12912 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12913 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12914 * dbus/dbus-message.c: (dbus_message_append_boolean),
12915 (dbus_message_append_boolean_array),
12916 (dbus_message_get_args_valist), (_dbus_message_test):
12917 * dbus/dbus-message.h:
12918 * doc/dbus-specification.sgml:
12919 Various fixes as pointed out by Havoc.
12921 * test/data/invalid-messages/bad-boolean-array.message:
12922 * test/data/invalid-messages/bad-boolean.message:
12923 Add invalid boolean value test cases.
12925 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12927 * dbus/dbus-internals.c: (_dbus_type_to_string):
12928 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12929 (_dbus_marshal_validate_arg):
12930 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12931 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12932 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12933 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12934 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12935 (dbus_message_iter_get_double),
12936 (dbus_message_iter_get_boolean_array), (message_iter_test):
12937 * dbus/dbus-message.h:
12938 * dbus/dbus-protocol.h:
12939 * doc/dbus-specification.sgml:
12940 * test/data/valid-messages/lots-of-arguments.message:
12941 Add support for boolean and boolean array types.
12943 2003-02-23 Havoc Pennington <hp@pobox.com>
12945 * dbus/dbus-keyring.c: finish most of this implementation and
12948 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12949 these barf if the error isn't cleared to NULL
12951 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12952 (_dbus_create_directory): new function
12954 * dbus/dbus-errors.c (dbus_set_error): fix warning
12956 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12957 (_dbus_string_hex_decode): new function
12958 (test_hex_roundtrip): test code
12960 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12962 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12964 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12965 the save-to-temp/rename trick to atomically write the new file
12966 (_dbus_string_parse_uint): new function
12968 2003-02-22 Havoc Pennington <hp@pobox.com>
12970 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12972 2003-02-22 Havoc Pennington <hp@pobox.com>
12974 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12975 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12977 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12979 * dbus/test/data/sha-1: add US government test suite for SHA-1
12981 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12983 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12984 Make string arrays NULL-terminated.
12986 * dbus/dbus-memory.c: (dbus_free_string_array):
12987 * dbus/dbus-memory.h:
12988 New function for freeing NULL-terminated string arrays.
12990 * dbus/dbus-message-builder.c: (append_quoted_string),
12991 (_dbus_message_data_load):
12992 Add support for array types.
12994 * dbus/dbus-message.c: (check_message_handling):
12995 Add more types as test cases.
12997 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12998 (_dbus_string_parse_double):
12999 Add the start offset to the end offset.
13001 * test/data/valid-messages/lots-of-arguments.message:
13002 New test message with lots of arguments.
13004 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13006 * dbus/dbus-message.c: (dbus_message_append_nil),
13007 (dbus_message_append_int32), (dbus_message_append_uint32),
13008 (dbus_message_append_double), (dbus_message_append_string),
13009 (dbus_message_append_int32_array),
13010 (dbus_message_append_uint32_array),
13011 (dbus_message_append_double_array),
13012 (dbus_message_append_byte_array),
13013 (dbus_message_append_string_array):
13014 Fix all out-of-memory handling in these functions.
13016 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13018 * dbus/dbus-message.c: (dbus_message_append_nil):
13021 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13023 * dbus/dbus-message.c: (dbus_message_append_args_valist),
13024 (dbus_message_append_nil), (dbus_message_append_int32_array),
13025 (dbus_message_append_uint32_array),
13026 (dbus_message_append_double_array),
13027 (dbus_message_append_byte_array),
13028 (dbus_message_append_string_array), (dbus_message_get_args_valist),
13029 (dbus_message_iter_get_int32_array),
13030 (dbus_message_iter_get_uint32_array),
13031 (dbus_message_iter_get_double_array),
13032 (dbus_message_iter_get_byte_array),
13033 (dbus_message_iter_get_string_array):
13035 * dbus/dbus-message.h:
13036 Add functions for appending and getting arrays.
13038 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13040 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13041 element size at least 8 bytes, fixes mempool tests on
13044 2003-02-20 Alexander Larsson <alexl@redhat.com>
13046 * dbus/dbus-transport-unix.c (unix_do_iteration):
13047 Unlock the connection mutex during a blocking select call.
13048 Add todo about how we need a way to wake up the select.
13050 * dbus/dbus-connection-internal.h:
13051 * dbus/dbus-connection.c:
13052 Add _dbus_connection_lock and _dbus_connection_unlock.
13054 2003-02-19 Havoc Pennington <hp@pobox.com>
13056 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13057 Doxyfile.in, not Doxyfile
13059 * dbus/dbus-keyring.c: do some hacking on this
13061 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13063 * dbus/dbus-errors.c (dbus_set_error_const): do not call
13065 (dbus_set_error): remove dbus_error_init, check for message ==
13066 NULL *before* we sprintf into it, and add @todo about including
13067 system headers in this file
13069 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13071 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13073 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13074 get various bits of user information based on either username
13076 (_dbus_homedir_from_username): new function
13078 2003-02-19 Anders Carlsson <andersca@codefactory.se>
13081 Add check for nonposix getpwnam_r
13083 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13084 Align the pool element size to a sizeof (void *) boundary.
13086 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13087 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13088 General Solaris fixes.
13090 * test/data/valid-messages/simplest-manual.message:
13091 Explicitly state that we want little-endian packing.
13093 2003-02-19 Mikael Hallendal <micke@codefactory.se>
13095 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13097 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13098 Added to create a transport connecting using a tcp/ip socket.
13100 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13101 to a tcp socket at given host and port.
13102 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13105 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13107 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13108 Added to create a server listening on a TCP/IP socket.
13110 2003-02-19 Havoc Pennington <hp@pobox.com>
13112 Throughout: mop up all the Doxygen warnings and undocumented
13115 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13116 to search any paths.
13118 * dbus/dbus-threads.c: move global mutex initializers to
13119 dbus-internals.h, multiple prototypes was confusing doxygen
13120 besides being kind of ugly
13122 * Doxyfile (PREDEFINED): have Doxygen define
13123 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13124 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13125 (do not abuse the feature! it's for stuff like the autogenerated
13126 macros in dbus-md5.c, not just for things you don't feel like
13129 2003-02-18 Havoc Pennington <hp@pobox.com>
13131 * dbus/dbus-string.c (_dbus_string_zero): new function
13133 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13134 wrap it in some dbus-friendly API
13136 * dbus/dbus-types.h: add 16-bit types
13138 2003-02-18 Joe Shaw <joe@assbarn.com>
13140 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13141 credentials from our currently running process.
13142 (get_word): Fix a buglet where we were copying the entire length
13143 instead of relative to our position.
13145 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13146 keys on the stack... it's 640k of data.
13148 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13149 read the credentials byte off the socket, even if we don't have
13151 (_dbus_poll): Implement poll() using select() for systems which
13154 * glib/test-dbus-glib.c (main): Print out an error if no
13155 parameters are given.
13157 * test/data/auth/fallback.auth-script: Added. Tests that a client
13158 can fallback to a secondary auth mechanism if the first fails.
13160 2003-02-18 Havoc Pennington <hp@pobox.com>
13162 * AUTHORS: add Alex
13164 2003-02-17 Havoc Pennington <hp@pobox.com>
13166 * doc/dbus-specification.sgml: lots of cosmetic
13167 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13168 env variable to DBUS_BUS_ADDRESS, s/client/application/,
13169 s/server/bus/ (except in authentication section). Add a section
13170 "Message Bus Message Routing"
13172 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
13178 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13180 * doc/dbus-specification.sgml:
13181 Specification updates.
13183 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13185 * bus/activation.c: (bus_activation_init), (child_setup),
13186 (bus_activation_activate_service):
13187 * bus/activation.h:
13188 * bus/main.c: (main):
13189 Set DBUS_ADDRESS environment variable.
13191 * dbus/dbus-errors.c: (dbus_set_error):
13192 Don't use va_copy since that's a C99 feature.
13194 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13195 (_dbus_spawn_async):
13196 * dbus/dbus-sysdeps.h:
13197 Add child_setup_func to _dbus_spawn_async.
13199 * doc/dbus-specification.sgml:
13200 Update specification.
13202 * test/spawn-test.c: (setup_func), (main):
13205 2003-02-17 Alexander Larsson <alexl@redhat.com>
13207 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13210 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13214 * doc/dbus-test-plan.sgml:
13215 Add test plan document.
13217 * test/Makefile.am:
13220 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13222 * dbus/dbus-message.c: (decode_header_data),
13223 (_dbus_message_loader_return_buffer):
13224 Set the header padding amount when loading a message.
13226 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13228 * bus/dispatch.c: (send_one_message):
13229 Only send broadcast messages to registered connections.
13231 * dbus/dbus-message.c: (dbus_message_name_is):
13232 * dbus/dbus-message.h:
13233 New convenience function.
13235 * dbus/dbus-transport-debug.c: (do_reading):
13236 Only dispatch one message per run.
13238 * test/Makefile.am:
13239 * test/bus-test.c: (new_connection_callback), (die),
13240 (test_hello_client1_handler), (test_hello_client2_handler),
13241 (test_hello_replies), (main):
13243 * test/bus-test-loop.[ch]:
13246 2003-02-16 Havoc Pennington <hp@pobox.com>
13248 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13249 backward conditional
13251 2003-02-16 Alexander Larsson <alexl@redhat.com>
13253 * dbus/dbus-connection.c:
13254 Implement sent_message_with_reply. (with_reply_and block is still
13256 Made dispatch_message not lose message if OOM.
13258 * dbus/dbus-errors.h:
13259 Add NoReply error (for reply timeouts).
13261 2003-02-16 Alexander Larsson <alexl@redhat.com>
13263 * dbus/dbus-hash.c (_dbus_hash_table_unref):
13264 Actually free keys and values when destroying hashtable.
13266 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13268 * dbus/dbus-auth.c: (client_try_next_mechanism):
13271 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13272 Return TRUE if there's no thread implementation around.
13274 * glib/dbus-gmain.c: (free_source),
13275 (dbus_connection_hookup_with_g_main):
13276 Make sure to remove the GSource when the connection is finalized.
13278 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13280 * bus/dispatch.c: (bus_dispatch_message_handler):
13281 * dbus/dbus-errors.h:
13282 Return an error if someone tries to send a message to a service
13283 that doesn't exist.
13285 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13287 * bus/activation.c: (load_directory), (bus_activation_init),
13288 (bus_activation_activate_service):
13289 * bus/activation.h:
13291 (bus_driver_handle_activate_service), (bus_driver_handle_message):
13292 More work on the activation handling.
13294 * dbus/dbus-errors.h:
13295 Add some error messages
13297 * dbus/dbus-message.c: (dbus_message_new_error_reply):
13298 * dbus/dbus-message.h:
13299 New function that creates an error message.
13301 * dbus/dbus-protocol.h:
13302 Add ACTIVATE_SERVER message.
13304 * dbus/dbus-server-unix.c: (unix_handle_watch),
13305 (_dbus_server_new_for_domain_socket):
13306 Call _dbus_fd_set_close_on_exec.
13308 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13309 (_dbus_spawn_async), (_dbus_disable_sigpipe),
13310 (_dbus_fd_set_close_on_exec):
13311 * dbus/dbus-sysdeps.h:
13312 Add _dbus_fd_set_close_on exec function. Also add function that checks
13313 that all open fds are set to close-on-exec and warns otherwise.
13315 * dbus/dbus-transport-unix.c:
13316 (_dbus_transport_new_for_domain_socket):
13317 Call _dbus_fd_set_close_on_exec.
13319 2003-02-16 Havoc Pennington <hp@pobox.com>
13321 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13322 allow people to avoid setting SIGPIPE to SIG_IGN
13323 (_dbus_connection_new_for_transport): disable SIGPIPE unless
13324 we've been asked not to
13326 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13328 * dbus/dbus-list.c: (_dbus_list_append_link),
13329 (_dbus_list_prepend_link):
13330 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13334 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13337 * bus/activation.c: (bus_activation_entry_free),
13338 (add_desktop_file_entry), (load_directory), (bus_activation_init):
13339 * bus/activation.h:
13340 * bus/main.c: (main):
13341 Add simple activation support, doesn't work yet though.
13343 2003-02-15 Zack Rusin <zack@kde.org>
13345 * qt/dbus-qthread.cpp: small casting fix
13347 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13349 * dbus/dbus-errors.c: (dbus_set_error):
13350 * dbus/dbus-errors.h:
13351 Add a few errors and make dbus_set_error void.
13353 * dbus/dbus-sysdeps.c:
13354 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13355 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13356 * dbus/dbus-sysdeps.h:
13357 Add _dbus_spawn_async.
13359 * test/spawn-test.c: (main):
13360 Test for _dbus_spawn_async.
13362 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13364 * dbus/dbus-internals.h:
13365 Fix build without tests.
13367 * dbus/dbus-list.c: (alloc_link):
13368 Fix a segfault when a malloc fails.
13370 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13371 (dbus_malloc0), (dbus_realloc):
13372 Add support for malloc debugging.
13374 2003-02-15 Alexander Larsson <alexl@redhat.com>
13376 * dbus/dbus-threads.c:
13377 * dbus/dbus-threads.h:
13378 Add condvars. Remove static mutext from API.
13379 Implement static mutexes by initializing them from threads_init.
13381 * glib/dbus-gthread.c:
13382 * qt/dbus-qthread.cpp:
13383 Update with the thread api changes.
13386 * dbus/dbus-list.c:
13387 * dbus/dbus-list.h:
13388 Turn StaticMutex into normal mutex + init function.
13389 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13390 _dbus_list_append_link, _dbus_list_prepend_link
13393 * dbus/dbus-sysdeps.c:
13394 * dbus/dbus-sysdeps.h:
13395 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13396 _dbus_atomic_dec. Only slow fallback implementation at the moment.
13398 * dbus/dbus-protocol.h:
13399 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13401 * dbus/dbus-message.c:
13402 Make ref/unref atomic.
13405 * dbus/dbus-connection-internal.h:
13406 * dbus/dbus-connection.c:
13407 * dbus/dbus-connection.h:
13409 Change _peek to _borrow,_return & _steal_borrowed.
13410 Change disconnect callback to event.
13411 Make dbus_connection_dispatch_messages reentrant.
13413 * dbus/dbus-transport.c:
13414 Don't ref the connection on calls to the transport
13417 * dbus/dbus-message-handler.c:
13420 * glib/dbus-gmain.c:
13421 Don't use peek_message anymore
13423 * test/Makefile.am:
13424 * test/debug-thread.c:
13425 * test/debug-thread.h:
13426 Simple thread implementation that asserts() on deadlocks in
13427 single-threaded code.
13430 (main) Call debug_threads_init.
13433 Use disconnect message instead of disconnect callback.
13435 * bus/connection.c:
13436 * bus/connection.h:
13437 Don't call dbus_connection_set_disconnect_function. Instead export
13438 bus_connection_disconnect.
13441 Call bus_connection_disconnect when we get a disconnected message.
13443 2003-02-15 Havoc Pennington <hp@pobox.com>
13445 * dbus/dbus-message.c (dbus_message_new): fool around with the
13448 2003-02-14 Havoc Pennington <hp@pobox.com>
13450 * dbus/dbus-mempool.c: fail if the debug functions so indicate
13452 * dbus/dbus-memory.c: fail if the debug functions indicate we
13455 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13456 (_dbus_decrement_fail_alloc_counter): debug functions to
13457 simulate memory allocation failures
13459 2003-02-14 Havoc Pennington <hp@pobox.com>
13461 * dbus/dbus-errors.h (struct DBusError): add a word of padding
13464 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13466 * bus/driver.c: (bus_driver_handle_hello):
13468 * bus/services.c: (bus_service_lookup):
13469 Reorder message sending so we get a more sane order.
13471 * test/bus-test.c: (message_handler):
13474 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13476 * bus/driver.c: (bus_driver_send_service_deleted),
13477 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13478 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13479 (bus_driver_send_welcome_message),
13480 (bus_driver_handle_list_services),
13481 (bus_driver_handle_acquire_service),
13482 (bus_driver_handle_service_exists):
13483 * dbus/dbus-bus.c: (dbus_bus_register_client),
13484 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13485 * dbus/dbus-errors.c: (dbus_result_to_string):
13486 * dbus/dbus-errors.h:
13487 * dbus/dbus-message.c: (dbus_message_append_args),
13488 (dbus_message_append_args_valist), (dbus_message_get_args),
13489 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13490 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13491 (dbus_message_iter_get_byte_array),
13492 (dbus_message_iter_get_string_array), (message_iter_test),
13493 (check_message_handling), (_dbus_message_test):
13494 * dbus/dbus-message.h:
13495 * test/bus-test.c: (main):
13496 Change fields to arguments in messages, so that they won't be
13497 confused with header fields.
13499 * glib/test-dbus-glib.c: (main):
13500 Remove append_fields from hello message.
13502 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13504 * dbus/dbus-errors.c:
13505 * dbus/dbus-message.c:
13506 * dbus/dbus-string.c:
13507 Documentation fixes.
13509 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13511 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13513 Implement support for timeouts in dbus-glib.
13515 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13517 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13518 * dbus/dbus-message.c: (process_test_subdir):
13519 * test/break-loader.c: (find_breaks_based_on):
13520 Plug some memory leaks.
13522 2003-02-13 Richard Hult <rhult@codefactory.se>
13524 * bus/main.c: Fix build.
13526 * dbus/dbus-errors.h:
13527 * dbus/dbus-errors.c: Fix copyright for Anders.
13529 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13534 * bus/connection.c: (bus_connection_foreach):
13537 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13538 (unescape_string), (new_section), (parse_section_start),
13539 (parse_key_value), (report_error), (bus_desktop_file_load),
13540 (bus_desktop_file_get_string):
13541 * bus/desktop-file.h:
13542 Use DBusError for error reporting.
13544 * bus/dispatch.c: (send_one_message),
13545 (bus_dispatch_message_handler):
13546 * bus/driver.c: (bus_driver_send_service_deleted),
13547 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13548 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13549 (bus_driver_send_welcome_message),
13550 (bus_driver_handle_list_services),
13551 (bus_driver_handle_acquire_service),
13552 (bus_driver_handle_service_exists):
13553 * bus/loop.c: (bus_loop_run):
13555 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13557 * bus/utils.c: (bus_wait_for_memory):
13559 New files with general utility functions.
13561 * dbus/dbus-internals.h:
13562 Remove _DBUS_HANDLE_OOM.
13564 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13566 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13567 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13568 * dbus/dbus-errors.h:
13569 Add DBusError structure.
13571 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13573 * test/data/valid-messages/standard-acquire-service.message:
13574 * test/data/valid-messages/standard-hello.message:
13575 * test/data/valid-messages/standard-list-services.message:
13576 * test/data/valid-messages/standard-service-exists.message:
13577 Add some standard messages.
13579 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13581 * bus/driver.c: (bus_driver_send_welcome_message),
13582 (bus_driver_handle_list_services),
13583 (bus_driver_handle_acquire_service),
13584 (bus_driver_handle_service_exists), (bus_driver_handle_message):
13585 Update for API changes in libdbus.
13587 * dbus/dbus-message.c: (dbus_message_new_reply):
13588 * dbus/dbus-message.h:
13589 Remove the name argument. The spec states that replies shouldn't
13592 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13594 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13595 (report_error), (bus_desktop_file_load), (lookup_section),
13596 (lookup_line), (bus_desktop_file_get_raw),
13597 (bus_desktop_file_get_string):
13598 * bus/desktop-file.h:
13599 Some fixes, and new functions for getting a key value from a section.
13601 2003-02-13 Havoc Pennington <hp@pobox.com>
13603 * test/data/auth/fail-after-n-attempts.auth-script: new test
13605 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13608 2003-02-13 Havoc Pennington <hp@pobox.com>
13610 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13611 dbus_credentials_match were backward
13613 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13614 NO_CREDENTIALS and ROOT_CREDENTIALS
13616 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13617 into here. Never process more commands after we've reached an
13618 end state; store further data as unused bytes.
13620 * test/data/auth/*: add more auth tests
13622 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13623 command to match exact string and EXPECT_UNUSED to match unused
13626 * test/Makefile.am (dist-hook): fix to dist all the test stuff
13628 2003-02-12 Havoc Pennington <hp@pobox.com>
13630 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13631 \r off of popped lines
13633 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13636 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13639 2003-02-12 Havoc Pennington <hp@pobox.com>
13641 * dbus/Makefile.am: remove break-loader from the build, since it
13644 * configure.in: add --enable-gcov to turn on coverage profiling
13645 flags and disable optimization
13647 2003-02-10 Havoc Pennington <hp@pobox.com>
13649 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13650 initial cut at test framework for DBusAuth from laptop.
13651 Doesn't quite work yet but it compiles and I need to get
13652 it off the 266mhz laptop. ;-)
13654 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13655 fix a memleak in error case
13657 2003-02-12 Anders Carlsson <andersca@codefactory.se>
13660 * bus/desktop-file.c:
13661 * bus/desktop-file.h:
13662 Add a desktop file parser.
13664 2003-02-11 Zack Rusin <zack@kde.org>
13666 * qt/message.[h|cpp]: sample implementation
13667 of the KDE wrapper for DBusMessage
13669 2003-02-09 Zack Rusin <zack@kde.org>
13671 * test/bus-test.c: make_it_compile
13672 * doc/dbus-specification.sgml: minimal semantic fix
13674 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13680 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13682 * dbus/Makefile.am:
13683 * dbus/dbus-break-loader.c:
13684 * test/Makefile.am:
13685 * test/break-loader.c:
13686 Move dbus-break-loader to test/ and rename it to break-loader.
13688 2003-02-02 Havoc Pennington <hp@pobox.com>
13690 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13691 for code to manage cookies in your home directory
13693 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13695 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13696 to authenticate, then disconnect the client.
13698 2003-02-03 Alexander Larsson <alexl@redhat.com>
13700 * dbus/dbus-message.c (dbus_message_append_fields):
13703 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13705 * doc/dbus-specification.sgml:
13706 Update address format section.
13708 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13710 * test/Makefile.am:
13711 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13712 (message_handler), (new_connection_callback), (loop_quit),
13713 (loop_run), (main):
13716 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13718 * bus/driver.c: (bus_driver_handle_service_exists):
13719 Simplify the code a bit.
13721 * dbus/dbus-bus.c: (dbus_bus_service_exists):
13724 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13727 Add libdbus-daemon.la and link to it.
13729 2003-02-01 James Willcox <jwillcox@gnome.org>
13731 * bus/driver.c: (bus_driver_handle_own_service):
13732 Actually include the service reply code in the message.
13734 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13736 * bus/driver.c: (bus_driver_handle_service_exists):
13737 Don't unref the incoming message.
13739 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13741 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13743 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13745 * dbus/dbus-server.c: (dbus_server_listen):
13746 * dbus/dbus-transport.c: (_dbus_transport_open):
13747 ifdef out the calls to the debug transport and server.
13749 2003-02-02 Alexander Larsson <alexl@redhat.com>
13751 * dbus/dbus-watch.c (dbus_watch_get_flags):
13752 Add note in the docs that ERROR or HANGUP won't be returned
13753 and are assumed always on.
13755 * glib/dbus-gmain.c (add_watch):
13756 Always add IO_ERR | IO_HUP
13758 * dbus/dbus-message.h:
13759 Add semicolon after dbus_message_iter_get_string_array().
13760 Makes qt code build again
13762 2003-02-01 Anders Carlsson <andersca@codefactory.se>
13764 * bus/driver.c: (create_unique_client_name),
13765 (bus_driver_handle_hello):
13766 Don't take a name, just use a numeric id to identify
13769 * dbus/Makefile.am:
13770 * dbus/dbus-bus.c: (dbus_bus_register_client),
13771 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13773 Add new convenience functions for communicating with the bus.
13775 * dbus/dbus-message.h:
13777 * dbus/dbus-protocol.h:
13780 2003-02-01 Alexander Larsson <alexl@redhat.com>
13782 * dbus/dbus-message.c (dbus_message_append_fields):
13783 Add some more doc comments.
13785 2003-02-01 Havoc Pennington <hp@pobox.com>
13787 * dbus/dbus-break-loader.c (randomly_modify_length): change
13788 a 4-byte value in the message as if it were a length
13790 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13791 execute bit on saved files
13793 2003-02-01 Havoc Pennington <hp@pobox.com>
13795 * dbus/dbus-break-loader.c (main): new program to find messages
13796 that break the loader.
13798 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13799 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13801 * dbus/dbus-string.c (_dbus_string_set_byte): new
13803 2003-01-31 Havoc Pennington <hp@pobox.com>
13805 * dbus/dbus-message.c: refactor the test code to be more general,
13806 in preparation for writing a "randomly permute test cases to
13807 try to break the loader" program.
13809 2003-01-31 Havoc Pennington <hp@pobox.com>
13811 * doc/dbus-specification.sgml: work on the specification
13813 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13814 the protocol version of the message.
13816 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13817 no longer specifies that.
13818 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13821 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13822 "break" for DBUS_TYPE_NIL, remove @todo
13824 2003-01-31 Havoc Pennington <hp@pobox.com>
13826 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13827 just set_is_error/get_is_error as this is a commonly-used
13828 function, and write docs.
13830 2003-01-31 Anders Carlsson <andersca@codefactory.se>
13832 * dbus/dbus-address.c: (dbus_address_entry_free):
13833 Free key and value lists.
13835 * dbus/dbus-internals.c: (_dbus_type_to_string):
13836 Add the types we didn't have.
13838 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13839 (_dbus_marshal_validate_arg):
13842 * dbus/dbus-message.c: (dbus_message_set_sender):
13843 Remove todo about being able to set sender to NULL.
13845 (dbus_message_set_is_error_reply),
13846 (dbus_message_get_is_error_reply):
13847 * dbus/dbus-message.h:
13850 * dbus/dbus-protocol.h:
13851 Add error reply flag.
13853 * test/data/valid-messages/opposite-endian.message:
13854 Add NIL type to test.
13856 2003-01-31 Havoc Pennington <hp@pobox.com>
13858 * doc/dbus-specification.sgml: fully specify the header. Add
13859 flags and major protocol version, and change header/body len to
13862 * dbus/dbus-message-builder.c (append_saved_length): append length
13865 * dbus/dbus-message.c (dbus_message_create_header): change header
13866 length and body length to unsigned. Add the new fields from the
13868 (_dbus_message_loader_return_buffer): unsigned header/body len
13870 2003-01-30 Havoc Pennington <hp@pobox.com>
13872 * dbus/dbus-auth.c: rework to use only REJECTED, no
13875 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13876 use REJECTED, suggested by Mark McLoughlin
13878 2003-01-30 Havoc Pennington <hp@pobox.com>
13880 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13881 a better way to report errors here. e.g. "unix address lacks
13882 path" or something. also "no such file" when the path doesn't
13885 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13887 (dbus_parse_address): add @todo about documenting address format,
13888 and allowing , and ; to be escaped
13890 2003-01-30 Anders Carlsson <andersca@codefactory.se>
13892 * dbus/Makefile.am:
13893 Add dbus-address.[ch]
13895 * dbus/dbus-address.c: (dbus_address_entry_free),
13896 (dbus_address_entries_free), (create_entry),
13897 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13898 (dbus_parse_address), (_dbus_address_test):
13899 * dbus/dbus-address.h:
13900 New files for dealing with address parsing.
13902 * dbus/dbus-connection.c:
13903 Document timeout functions.
13905 * dbus/dbus-message.c:
13906 Document dbus_message_new_from_message.
13908 * dbus/dbus-server-debug.c:
13911 * dbus/dbus-server.c: (dbus_server_listen):
13912 Parse address and use correct server implementation.
13914 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13915 * dbus/dbus-string.h:
13916 New function with test.
13918 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13919 * dbus/dbus-test.h:
13922 * dbus/dbus-transport-debug.c:
13925 * dbus/dbus-transport.c: (_dbus_transport_open):
13926 Parse address and use correct transport implementation.
13928 2003-01-30 Havoc Pennington <hp@pobox.com>
13930 * dbus/dbus-message.c: use message->byte_order instead of
13931 DBUS_COMPILER_BYTE_ORDER throughout.
13932 (dbus_message_create_header): pad header to align the
13933 start of the body of the message to 8-byte boundary
13935 * dbus/dbus-marshal.h: make all the demarshalers take const
13936 DBusString arguments.
13938 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13939 validate message args here, so we don't have to do slow validation
13940 later, and so we catch bad messages as they are incoming. Also add
13941 better checks on header_len and body_len. Also fill in
13942 message->byte_order
13944 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13945 implemented properly)
13946 (_dbus_string_validate_nul): new function to check all-nul
13948 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13949 get_arg_end_pos and remove all validation
13950 (_dbus_marshal_validate_arg): actually do validation here.
13952 2003-01-29 Havoc Pennington <hp@pobox.com>
13954 * dbus/dbus-message.c (check_message_handling): fix assertion
13955 failure on set_client_serial
13957 2003-01-28 Havoc Pennington <hp@pobox.com>
13959 * dbus/dbus-server-debug.c: Add doc section comments
13961 * dbus/dbus-transport-debug.c: add doc section comments
13963 2003-01-28 Havoc Pennington <hp@redhat.com>
13965 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13966 the reverse order from how I had it
13967 (_dbus_string_base64_encode): reverse encoding order. I was
13968 basically byteswapping everything during encoding.
13970 2003-01-28 Anders Carlsson <andersca@codefactory.se>
13972 * dbus/dbus-connection-internal.h:
13973 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13974 (_dbus_connection_remove_timeout):
13975 Add functions for adding and removing timeouts.
13977 * dbus/dbus-message.c: (dbus_message_new_from_message):
13978 Add new function that takes a message and creates an exact
13979 copy of it, but with the refcount set to 1.
13980 (check_message_handling):
13983 * dbus/dbus-server-protected.h:
13984 * dbus/dbus-server.c: (_dbus_server_init_base),
13985 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13986 (dbus_server_set_timeout_functions):
13987 (_dbus_server_remove_timeout):
13988 New functions so that a server can add and remove timeouts.
13990 (dbus_server_listen):
13991 Add commented out call to dbus_server_debug_new.
13993 * dbus/dbus-timeout.c: (_dbus_timeout_new):
13994 Actually set the handler, doh.
13996 * dbus/dbus-transport.c: (_dbus_transport_open):
13997 Add commented out call to dbus_transport_debug_client_new.
13999 * dbus/Makefile.am:
14000 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14002 2003-01-28 Havoc Pennington <hp@pobox.com>
14004 * dbus/dbus-message.c (check_message_handling): function to check
14005 on the loaded message, iterates over it etc.
14007 2003-01-28 Havoc Pennington <hp@pobox.com>
14009 * test/Makefile.am (dist-hook): fix make distdir
14011 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14013 2003-01-27 Havoc Pennington <hp@pobox.com>
14015 * dbus/dbus-mempool.c (time_for_size): replace printf with
14018 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14019 empty lines; fix the SAVE_LENGTH stuff to be
14020 START_LENGTH/END_LENGTH so it actually works; couple other
14023 * test/Makefile.am (dist-hook): add dist-hook for .message files
14025 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14026 can be constant or locked.
14027 (_dbus_string_free): allow freeing a const string as
14028 documented/intended
14030 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14032 * dbus/dbus-test-main.c (main): take an argument which is the
14033 directory containing test data
14035 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14036 argument to this and load all the messages in test/data/
14037 checking that they can be loaded or not loaded as appropriate.
14039 2003-01-27 Anders Carlsson <andersca@codefactory.se>
14041 * bus/dispatch.c: (bus_dispatch_message_handler):
14042 Dispatch messages sent to services.
14044 * bus/driver.c: (bus_driver_send_service_deleted),
14045 (bus_driver_send_service_created), (bus_driver_send_service_lost),
14046 (bus_driver_send_service_acquired):
14047 Add helper functions for sending service related messages.
14049 (bus_driver_send_welcome_message):
14050 Send HELLO_REPLY instead of WELCOME.
14052 (bus_driver_handle_list_services):
14053 Send LIST_SERVICES_REPLY instead of SERVICES.
14055 (bus_driver_handle_own_service),
14056 (bus_driver_handle_service_exists):
14057 New message handlers.
14059 (bus_driver_handle_message):
14060 Invoke new message handlers.
14062 (bus_driver_remove_connection):
14063 Don't remove any services here since that's done automatically
14064 by bus_service_remove_owner now.
14067 New function signatures.
14069 * bus/services.c: (bus_service_add_owner):
14070 Send ServiceAcquired message if we're the only primary owner.
14072 (bus_service_remove_owner):
14073 Send ServiceAcquired/ServiceLost messages.
14075 (bus_service_set_prohibit_replacement),
14076 (bus_service_get_prohibit_replacement):
14077 Functions for setting prohibit replacement.
14079 (bus_service_has_owner):
14080 New function that checks if a connection is in the owner queue of
14084 Add new function signatures.
14086 * dbus/dbus-list.c: (_dbus_list_test):
14087 Add tests for _dbus_list_remove_last and traversing the list backwards.
14089 * dbus/dbus-list.h:
14090 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14091 go any further, so return NULL then.
14093 * dbus/dbus-protocol.h:
14094 Add new messages, service flags and service replies.
14096 2003-01-26 Havoc Pennington <hp@pobox.com>
14098 * dbus/dbus-message-builder.c: implement, completely untested.
14100 * test/data/*: add data to be used in testing.
14101 ".message" files are our simple loadable text format.
14102 ".message-raw" will be binary dumps of messages.
14104 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14106 2003-01-26 Havoc Pennington <hp@pobox.com>
14108 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14110 * dbus/dbus-errors.c (dbus_result_to_string): add
14113 * dbus/dbus-message-builder.c: new file, will contain code to load
14114 up messages from files. Not implemented yet.
14116 2003-01-26 Havoc Pennington <hp@pobox.com>
14118 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14119 the sender by setting to NULL
14121 2003-01-26 Havoc Pennington <hp@pobox.com>
14123 The unit tests pass, but otherwise untested. If it breaks, the
14124 tests should have been better. ;-)
14126 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14129 * dbus/dbus-message.c: redo everything so we maintain
14130 message->header as the only copy of the various fields.
14131 This avoids the possibility of out-of-memory in some cases,
14132 for example dbus_message_lock() can't run out of memory anymore,
14133 and avoids extra copying. Figured I may as well go ahead and do
14134 this since it was busted for dbus_message_lock to not return
14135 failure on OOM, and dbus_message_write_header was totally
14136 unchecked for OOM. Also fixed some random other bugs.
14138 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14139 that strings are nul-terminated. Also, end_pos can be equal
14140 to string length just not greater than, I think.
14141 (_dbus_marshal_set_int32): new function
14142 (_dbus_marshal_set_uint32): new function
14143 (_dbus_marshal_set_string): new function
14145 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14146 a warning, init timeout_list to NULL
14147 (dbus_connection_send_message): don't use uninitialized variable
14150 * dbus/dbus-string.c (_dbus_string_replace_len): new function
14152 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14154 * bus/driver.c: (bus_driver_handle_hello),
14155 (bus_driver_send_welcome_message):
14158 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14160 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14161 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14162 (dbus_connection_unref):
14163 * dbus/dbus-marshal.c: (_dbus_marshal_test):
14164 * dbus/dbus-message.c: (dbus_message_unref),
14167 (dbus_message_get_fields):
14168 Remove debugging printout.
14170 (_dbus_message_loader_return_buffer):
14171 Don't store the header string.
14173 (_dbus_message_test):
14176 2003-01-26 Richard Hult <rhult@codefactory.se>
14178 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14179 the file descriptor list, since it can change under us.
14181 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14183 * glib/dbus-gmain.c: (dbus_connection_prepare),
14184 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14185 (remove_watch), (dbus_connection_hookup_with_g_main):
14186 Rewrite the glib handling to use its own GSource instead of a
14187 GIOChannel so we can catch messages put in the queue while waiting
14190 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14193 * bus/connection.c: (connection_disconnect_handler),
14194 (connection_watch_callback), (bus_connection_setup):
14195 * bus/dispatch.c: (send_one_message),
14196 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14197 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14199 * bus/driver.c: (bus_driver_send_service_deleted),
14200 (bus_driver_send_service_created), (bus_driver_handle_hello),
14201 (bus_driver_send_welcome_message),
14202 (bus_driver_handle_list_services), (bus_driver_remove_connection),
14203 (bus_driver_handle_message):
14205 Refactor code, put the message dispatching in its own file. Use
14206 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14209 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14211 * dbus/dbus-internals.h:
14212 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14214 * dbus/dbus-message.c: (dbus_message_get_sender):
14215 * dbus/dbus-message.h:
14216 Implement dbus_message_get_sender.
14218 * dbus/dbus-protocol.h:
14219 Add message and service defines.
14221 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14223 * dbus/dbus-connection.c: (dbus_connection_send_message):
14224 * dbus/dbus-message-internal.h:
14225 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14226 (dbus_message_write_header):
14227 Remove _dbus_messag_unlock and don't set the client serial on a
14228 message if one already exists.
14230 2003-01-24 Havoc Pennington <hp@pobox.com>
14232 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14235 * bus/driver.c (bus_driver_handle_list_services): fix a leak
14238 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14240 * dbus/dbus-list.c: (alloc_link), (free_link):
14241 Use a memory pool for the links.
14243 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14245 * bus/connection.c: (bus_connection_foreach):
14246 * bus/connection.h:
14247 Add new bus_connection_foreach function.
14249 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14250 Add function that broadcasts a message to all clients.
14252 (bus_driver_send_service_created), (bus_driver_handle_hello),
14253 (bus_driver_send_welcome_message),
14254 (bus_driver_handle_list_services), (bus_driver_message_handler):
14255 Implement functions that take care of listing services, and notifying
14256 clients when new services are created.
14258 * bus/services.c: (bus_services_list):
14260 Add new function that returns an array of strings with the currently
14261 registered services.
14263 * glib/dbus-glib.h:
14264 * glib/dbus-gmain.c:
14265 Update copyright year.
14267 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14269 * dbus/dbus-connection.c: (dbus_connection_send_message):
14270 Unlock the message in case it was sent earlier.
14272 (dbus_connection_send_message_with_reply_and_block):
14273 Remove the reply message from the list.
14275 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14276 Set array_len and new_pos correctly.
14278 (_dbus_marshal_test):
14279 Remove debug output.
14281 * dbus/dbus-message-internal.h:
14282 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14283 New function that returns the reply serial.
14285 (_dbus_message_unlock):
14286 New function that unlocks a message and resets its header.
14288 (dbus_message_append_string_array),
14289 (dbus_message_get_fields_valist),
14290 (dbus_message_iter_get_field_type),
14291 (dbus_message_iter_get_string_array),
14292 (dbus_message_get_fields),
14293 (dbus_message_append_fields_valist):
14294 Handle string arrays.
14296 (dbus_message_set_sender):
14297 Make this function public since the bus daemon needs it.
14299 (decode_header_data):
14300 Set the reply serial to -1 initially.
14302 * dbus/dbus-message.h:
14303 Add dbus_message_set_sender.
14305 2003-01-24 Havoc Pennington <hp@pobox.com>
14307 * doc/dbus-specification.sgml: add some stuff
14309 2003-01-22 Havoc Pennington <hp@pobox.com>
14311 * doc/dbus-specification.sgml: Start to document the protocol.
14313 2003-01-22 Havoc Pennington <hp@pobox.com>
14315 * dbus/dbus-connection.c
14316 (dbus_connection_send_message_with_reply_and_block): add some @todo
14318 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14320 2003-01-21 Havoc Pennington <hp@pobox.com>
14322 (patch untested because can't compile)
14324 * bus/driver.c (create_unique_client_name): make this function
14325 never recycle client names. Also, caller should initialize
14328 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14330 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14332 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14333 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14334 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14335 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14336 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14337 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14338 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14339 * dbus/dbus-marshal.h:
14340 * dbus/dbus-protocol.h:
14341 Add support for marshalling and demarshalling integer, double
14344 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14349 * bus/connection.c: (connection_disconnect_handler):
14350 Remove the connection from the bus driver's list.
14352 (connection_watch_callback): Dispatch messages.
14354 (free_connection_data): Free connection name.
14356 (bus_connection_setup): Add connection to the bus driver's list.
14357 (bus_connection_remove_owned_service):
14358 (bus_connection_set_name), (bus_connection_get_name):
14359 Add functions for setting and getting the connection's name.
14361 * bus/connection.h:
14362 Add function headers.
14364 * bus/driver.c: (create_unique_client_name),
14365 (bus_driver_handle_hello_message),
14366 (bus_driver_send_welcome_message), (bus_driver_message_handler),
14367 (bus_driver_add_connection), (bus_driver_remove_connection):
14370 * bus/services.c: (bus_service_free):
14372 New file that handles communication and registreation with the bus
14375 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14377 * dbus/dbus-connection.c: (dbus_connection_send_message):
14378 Add a new client_serial parameter.
14380 (dbus_connection_send_message_with_reply):
14381 Remove a @todo since we've implemented the blocking function.
14383 (dbus_connection_send_message_with_reply_and_block):
14384 New function that sends a message and waits for a reply and
14385 then returns the reply.
14387 * dbus/dbus-connection.h:
14390 * dbus/dbus-errors.c: (dbus_result_to_string):
14391 * dbus/dbus-errors.h:
14392 Add new DBUS_RESULT.
14394 * dbus/dbus-message-internal.h:
14395 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14396 (_dbus_message_set_sender), (dbus_message_write_header),
14397 (dbus_message_new_reply), (decode_header_data),
14398 (_dbus_message_loader_return_buffer), (_dbus_message_test):
14399 * dbus/dbus-message.h:
14400 Add new functions that set the reply serial and sender.
14401 Also marshal and demarshal them correctly and add test.
14403 * dbus/dbus-protocol.h:
14404 Add new DBUS_MESSAGE_TYPE_SENDER.
14406 * glib/dbus-glib.h:
14407 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14408 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14409 (dbus_connection_hookup_with_g_main):
14410 * glib/test-dbus-glib.c: (main):
14411 Rewrite to use GIOChannel and remove the GSource crack.
14413 * test/echo-client.c: (main):
14414 * test/watch.c: (check_messages):
14415 Update for changed APIs
14417 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14419 * dbus/Makefile.am: Add dbus-timeout.[cħ]
14421 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14422 Create a DBusTimeoutList.
14423 (dbus_connection_set_timeout_functions): Add new function to
14424 set timeout callbacks
14426 * dbus/dbus-connection.h: Add public DBusTimeout API.
14428 * dbus/dbus-message.c: (dbus_message_get_service):
14429 * dbus/dbus-message.h: New function.
14431 * dbus/dbus-server.c: Fix small doc typo.
14433 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14435 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14437 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14438 of the string, just as long as specified.
14440 2003-01-19 Havoc Pennington <hp@pobox.com>
14442 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14445 * dbus/dbus-server.c (dbus_server_set_max_connections)
14446 (dbus_server_get_max_connections, dbus_server_get_n_connections):
14447 keep track of current number of connections, and add API for
14448 setting a max (but haven't implemented enforcing the max yet)
14450 2003-01-18 Havoc Pennington <hp@pobox.com>
14452 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14453 reading/writing if read_watch != NULL or write_watch != NULL.
14455 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14456 the message loader code to actually load message->header and
14457 message->body into the newly-created message.
14459 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14462 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14463 (dbus_connection_get_max_message_size)
14464 (dbus_connection_set_max_live_messages_size)
14465 (dbus_connection_get_max_live_messages_size): implement some
14466 resource limitation functions
14468 * dbus/dbus-resources.c: new file implementing some of the
14469 resource limits stuff
14471 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14472 missing docs, add @todo to handle OOM etc.
14474 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14477 2003-01-18 Havoc Pennington <hp@pobox.com>
14479 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14480 connection if it hasn't been already.
14482 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14483 replace with DisconnectFunction.
14485 2003-01-18 Havoc Pennington <hp@pobox.com>
14487 Building --disable-verbose-mode --disable-asserts --disable-tests
14488 cuts the library from 112K to 45K or so
14490 * configure.in: check for varargs macro support,
14491 add --enable-verbose-mode, --enable-asserts.
14493 * dbus/dbus-internals.h (_dbus_assert): support
14494 DBUS_DISABLE_ASSERT
14495 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14497 2003-01-18 Havoc Pennington <hp@pobox.com>
14499 * dbus/dbus-test.c: include config.h so that tests actually run
14501 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14502 so the failure mode when that assumption fails will be plenty
14505 2003-01-18 Havoc Pennington <hp@pobox.com>
14507 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14509 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14512 * test/Makefile.am: don't use special variable "TESTS" for echo-*
14513 since we don't want to use those in make check
14515 2003-01-15 Havoc Pennington <hp@redhat.com>
14521 2003-01-15 Havoc Pennington <hp@redhat.com>
14523 * test/Makefile.am: fix so that test source code ends up in the
14524 distribution on make distcheck
14526 2003-01-15 Havoc Pennington <hp@redhat.com>
14532 2003-01-15 Havoc Pennington <hp@redhat.com>
14534 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14535 fix build when --disable-tests
14537 * Makefile.am (EXTRA_DIST): put HACKING in here
14539 * HACKING: document procedure for making a tarball release.
14541 2003-01-14 Anders Carlsson <andersca@codefactory.se>
14543 * bus/connection.c: (connection_error_handler),
14544 (bus_connection_setup):
14545 * bus/main.c: (main):
14546 Make sure that the DBusConnectionData struct is NULLed
14547 out to prevent a segfault.
14549 * dbus/dbus-errors.c: (dbus_result_to_string):
14550 * dbus/dbus-errors.h:
14551 * dbus/dbus-message.c: (dbus_message_get_fields),
14552 (dbus_message_get_fields_valist), (_dbus_message_test):
14553 * dbus/dbus-message.h:
14554 Make dbus_message_get_fields return a result code so we can
14555 track invalid fields as well as oom.
14557 2003-01-11 Havoc Pennington <hp@pobox.com>
14559 * configure.in: change --enable-test/--enable-ansi action-if-given
14560 to enable_foo=$enableval instead of enable_foo=yes
14562 2003-01-08 Havoc Pennington <hp@pobox.com>
14564 * dbus/dbus-string.c (_dbus_string_align_length): new function
14566 * dbus/dbus-test-main.c: move main() for test app here
14568 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14569 symbol to run tests, because dbus-test isn't in the main
14572 Code review nitpicks.
14574 * dbus/dbus-message.c (dbus_message_write_header): add newlines
14575 for people with narrow emacs ;-). Assert client_serial was filled
14576 in. Assert message->name != NULL.
14577 (dbus_message_append_fields): have "first_field_type" arg separate
14578 from va list, needed for C++ binding that also uses varargs IIRC
14579 and helps with type safety
14580 (dbus_message_new): add @todo about using DBusString to store
14581 service/name internally
14582 (dbus_message_new): don't leak ->service and ->name on OOM later
14584 (dbus_message_unref): free the service name
14585 (dbus_message_get_fields): same change to varargs
14586 i.e. first_field_type
14587 (_dbus_message_loader_return_buffer): assert that the message data
14588 is aligned (if not it's a bug in our code). Put in verbose griping
14589 about why we set corrupted = TRUE.
14590 (decode_header_data): add FIXME that char* is evil. Was going to
14591 add FIXME about evil locale-specific string.h strncmp, but just
14592 switched to wacky string-as-uint32 optimization. Move check for
14593 "no room for field name" above get_const_data_len() to avoid
14594 assertion failure in get_const_data_len if we have trailing 2
14595 bytes or the like. Check for service and name fields being
14596 provided twice. Don't leak service/name on error. Require field
14597 names to be aligned to 4 bytes.
14599 * dbus/dbus-marshal.c: move byte swap stuff to header
14600 (_dbus_pack_int32): uscore-prefix
14601 (_dbus_unpack_int32): uscore-prefix
14602 (_dbus_unpack_uint32): export
14603 (_dbus_demarshal_string): add @todo complaining about use of
14605 (_dbus_marshal_get_field_end_pos): add @todo about bad error
14606 handling allowing corrupt data to go unchecked
14608 2003-01-08 Havoc Pennington <hp@redhat.com>
14610 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14611 to the select() as needed for authentication. (should be using
14612 _dbus_poll() not select, but for another day)
14614 * dbus/dbus.h: include dbus/dbus-protocol.h
14616 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14618 * dbus/Makefile.am (dbusinclude_HEADERS): Install
14621 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14623 * dbus/dbus-internals.c: (_dbus_type_to_string):
14624 New function that returns a string describing a type.
14626 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14627 * dbus/dbus-marshal.h:
14628 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14629 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14630 (dbus_message_iter_get_byte_array):
14631 * dbus/dbus-message.h:
14632 Add new convenience functions for appending and getting message fields.
14633 Also add demarshalling routines for byte arrays.
14635 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14637 * dbus/dbus-connection-internal.h:
14638 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14639 (_dbus_connection_get_next_client_serial),
14640 (dbus_connection_send_message):
14641 * dbus/dbus-internals.h:
14642 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14643 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14644 (_dbus_marshal_uint32), (_dbus_demarshal_double),
14645 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14646 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14647 (_dbus_verbose_bytes), (_dbus_marshal_test):
14648 * dbus/dbus-marshal.h:
14649 * dbus/dbus-message-internal.h:
14650 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14651 (dbus_message_write_header), (_dbus_message_lock),
14652 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14653 (dbus_message_get_name), (dbus_message_append_int32),
14654 (dbus_message_append_uint32), (dbus_message_append_double),
14655 (dbus_message_append_string), (dbus_message_append_byte_array),
14656 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14657 (dbus_message_iter_unref), (dbus_message_iter_has_next),
14658 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14659 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14660 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14661 (decode_header_data), (_dbus_message_loader_return_buffer),
14662 (message_iter_test), (_dbus_message_test):
14663 * dbus/dbus-message.h:
14664 * dbus/dbus-protocol.h:
14665 * dbus/dbus-test.c: (main):
14666 * dbus/dbus-test.h:
14667 * glib/test-dbus-glib.c: (message_handler), (main):
14668 * test/echo-client.c: (main):
14669 * test/watch.c: (check_messages):
14670 Make messages sendable and receivable for real.
14672 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14674 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14675 (_dbus_marshal_string), (_dbus_marshal_byte_array):
14676 * dbus/dbus-message.c: (dbus_message_append_int32),
14677 (dbus_message_append_uint32), (dbus_message_append_double),
14678 (dbus_message_append_string), (dbus_message_append_byte_array):
14679 Handle OOM restoration.
14681 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14683 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14684 (_dbus_demarshal_string), (_dbus_marshal_test):
14685 * dbus/dbus-marshal.h:
14686 * dbus/dbus-message.c: (dbus_message_get_name),
14687 Document these functions.
14689 (dbus_message_append_int32), (dbus_message_append_uint32),
14690 (dbus_message_append_double), (dbus_message_append_string),
14691 (dbus_message_append_byte_array):
14692 * dbus/dbus-message.h:
14693 Add functions for adding message fields of different types.
14695 * dbus/dbus-protocol.h:
14696 Add the different types.
14698 2003-01-05 Havoc Pennington <hp@pobox.com>
14700 * bus/connection.c: implement routines for handling connections,
14701 first thing is keeping a list of owned services on each connection
14702 and setting up watches etc.
14704 * bus/services.c: implement a mapping from service names to lists
14707 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14709 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14710 to use static mutexes for global data
14712 * dbus/dbus-connection.c (dbus_connection_set_data): add new
14713 collection of functions to set/get application-specific data
14714 on the DBusConnection.
14716 2003-01-04 Havoc Pennington <hp@pobox.com>
14718 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14719 (_dbus_poll): new function
14721 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14724 * bus/loop.c: initial code for the daemon main loop
14726 2003-01-04 Havoc Pennington <hp@pobox.com>
14728 * test/watch.c (error_handler): make it safe if the error handler
14729 is called multiple times (if we s/error handler/disconnect
14730 handler/ we should just guarantee it's called only once)
14732 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14733 error handler on disconnect (it's quite possible we should
14734 just change the error handler to a "disconnect handler," I'm
14735 not sure we have any other meaningful errors)
14737 * configure.in: check for getpwnam_r
14739 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14740 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14741 mechanism as in SASL spec, using socket credentials
14743 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14744 (_dbus_send_credentials_unix_socket): new function
14746 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14748 (_dbus_write): only check errno if <0 returned
14749 (_dbus_write_two): ditto
14751 2003-01-02 Anders Carlsson <andersca@codefactory.se>
14753 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14754 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14755 (_dbus_marshal_test):
14756 * dbus/dbus-marshal.h:
14757 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14758 to _dbus_marshal_utf8_string. Also fix some tests.
14760 2002-12-28 Harri Porten <porten@kde.org>
14762 * configure.in: added check for C++ compiler and a very cheesy
14763 check for the Qt integration
14765 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14767 * qt/Makefile.am: added
14769 * qt/.cvsignore: added
14771 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14772 latter, added #ifdef QT_THREAD_SUPPORT guard.
14774 * dbus/Makefile.am: added missing headers for make dist
14776 2002-12-28 Kristian Rietveld <kris@gtk.org>
14778 * dbus/Makefile.am: fixup export-symbols-regex.
14780 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14782 * acinclude.m4: Add this file and put the
14783 PKG_CHECK_MODULE macro in it.
14785 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14787 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14788 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14789 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14790 (_dbus_marshal_test):
14791 Make the demarshalling routines align the pos argument.
14792 Add string marshalling tests and fix the obvious bugs
14795 2002-12-26 Havoc Pennington <hp@pobox.com>
14797 * dbus/dbus-auth.c: fixes fixes fixes
14799 * dbus/dbus-transport-unix.c: wire up support for
14800 encoding/decoding data on the wire
14802 * dbus/dbus-auth.c (_dbus_auth_encode_data)
14803 (_dbus_auth_decode_data): append to target string
14804 instead of nuking it.
14806 2002-12-26 Havoc Pennington <hp@pobox.com>
14808 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14809 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14812 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14813 avoid swap_bytes() overhead (ignoring possible assembly stuff for
14814 now). Main point is because I wanted unpack_uint32 to implement
14815 _dbus_verbose_bytes
14816 (_dbus_verbose_bytes): new function
14818 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14820 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14821 mechanism to handle a corrupt message stream
14822 (_dbus_message_loader_new): fix preallocation to only prealloc,
14825 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14826 (_dbus_string_test): enhance tests for copy/move and fix the
14829 * dbus/dbus-transport-unix.c: Hold references in more places to
14830 avoid reentrancy problems
14832 * dbus/dbus-transport.c: ditto
14834 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14835 leak reference count in no-message case
14837 * test/watch.c (do_mainloop): handle adding/removing watches
14838 during iteration over the watches. Also, ref the connection/server
14839 stored on a watch, so we don't try to mangle a destroyed one.
14841 * dbus/dbus-transport-unix.c (do_authentication): perform
14844 * dbus/dbus-auth.c (get_state): add a state
14845 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14846 (_dbus_auth_get_unused_bytes): append the unused bytes
14847 to the passed in string, rather than prepend
14849 * dbus/dbus-transport.c (_dbus_transport_init_base): create
14850 the auth conversation DBusAuth
14852 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14853 (_dbus_transport_new_for_domain_socket): when creating a
14854 transport, pass in whether it's a client-side or server-side
14855 transport so we know which DBusAuth to create
14857 2002-12-03 Havoc Pennington <hp@pobox.com>
14859 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14860 _after_ finalizing the derived members
14861 (unix_connection_set): unref watch if we fail to add it
14863 * dbus/dbus-connection.c (dbus_connection_unref): delete the
14864 transport first, so that the connection owned by the
14865 transport will be valid as the transport finalizes.
14867 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14868 if necessary, and remove watches from the connection.
14870 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14872 2002-12-26 Anders Carlsson <andersca@codefactory.se>
14874 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14875 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14876 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14877 (_dbus_marshal_test):
14878 * dbus/dbus-marshal.h:
14879 Add string marshal functions and have the demarshal functions
14880 return the new position.
14882 2002-12-25 Havoc Pennington <hp@pobox.com>
14884 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14885 it is a simple protocol that just maps directly to SASL.
14887 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14888 initial implementation, not actually used yet.
14890 * dbus/dbus-string.c (_dbus_string_find): new function
14891 (_dbus_string_equal): new function
14892 (_dbus_string_base64_encode): new function
14893 (_dbus_string_base64_decode): new function
14895 2002-12-25 Anders Carlsson <andersca@codefactory.se>
14897 * dbus/Makefile.am:
14898 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14899 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14900 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14901 (_dbus_demarshal_uint32), (_dbus_marshal_test):
14902 * dbus/dbus-marshal.h:
14903 * dbus/dbus-protocol.h:
14904 * dbus/dbus-test.c: (main):
14905 * dbus/dbus-test.h:
14906 Add un-optimized marshalling/demarshalling routines.
14908 2002-12-25 Harri Porten <porten@kde.org>
14910 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14912 2002-12-24 Zack Rusin <zack@kde.org>
14914 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14915 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14918 2002-12-24 Havoc Pennington <hp@pobox.com>
14920 * glib/dbus-gthread.c: fix include
14922 * glib/dbus-glib.h: rename DBusMessageHandler for now.
14923 I think glib API needs to change, though, as you don't
14924 want to use DBusMessageFunction, you want to use the
14925 DBusMessageHandler object. Probably
14926 dbus_connection_open_with_g_main_loop()
14927 and dbus_connection_setup_g_main_loop() or something like that
14928 (but think of better names...) that just create a connection
14929 that has watch/timeout functions etc. already set up.
14931 * dbus/dbus-connection.c
14932 (dbus_connection_send_message_with_reply): new function just to
14933 show how the message handler helps us deal with replies.
14935 * dbus/dbus-list.c (_dbus_list_remove_last): new function
14937 * dbus/dbus-string.c (_dbus_string_test): free a string that
14940 * dbus/dbus-hash.c: use memory pools for the hash entries
14941 (rebuild_table): be more paranoid about overflow, and
14942 shrink table when we can
14943 (_dbus_hash_test): reduce number of sprintfs and write
14944 valid C89. Add tests for case where we grow and then
14945 shrink the hash table.
14947 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14949 * dbus/dbus-connection.c (dbus_connection_register_handler)
14950 (dbus_connection_unregister_handler): new functions
14952 * dbus/dbus-message.c (dbus_message_get_name): new
14954 * dbus/dbus-list.c: fix docs typo
14956 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14957 an object representing a handler for messages.
14959 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14961 * glib/dbus-glib.h:
14962 * glib/dbus-gthread.c: (dbus_gthread_init):
14963 Don't use the gdbus prefix for public functions.
14965 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14969 Add GLib checks and fixup .pc files
14971 * glib/Makefile.am:
14972 * glib/dbus-glib.h:
14973 * glib/dbus-gmain.c: (gdbus_connection_prepare),
14974 (gdbus_connection_check), (gdbus_connection_dispatch),
14975 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14976 (dbus_connection_gsource_new):
14977 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14978 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14979 * glib/test-dbus-glib.c: (message_handler), (main):
14982 2002-12-15 Harri Porten <porten@kde.org>
14984 * autogen.sh: check for libtoolize before attempting to use it
14986 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14989 * .cvsignore: ignore more stamp files
14991 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14993 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14994 without make install.
14996 2002-12-15 Havoc Pennington <hp@pobox.com>
14998 * dbus/dbus-threads.c: add thread stubs that a higher library
14999 layer can fill in. e.g. the GLib wrapper might fill them in with
15000 GThread stuff. We still need to use this thread API to
15001 thread-safe-ize the library.
15003 2002-12-12 Havoc Pennington <hp@pobox.com>
15005 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15006 below new interfaces and include fewer system headers.
15008 * dbus/dbus-sysdeps.c (_dbus_read): new function
15009 (_dbus_write): new function
15010 (_dbus_write_two): new function
15011 (_dbus_connect_unix_socket): new function
15012 (_dbus_listen_unix_socket): new function
15014 * dbus/dbus-message-internal.h: change interfaces to use
15017 2002-12-11 Havoc Pennington <hp@pobox.com>
15019 * dbus/dbus-types.h: add dbus_unichar
15021 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15023 * dbus/dbus-connection.c (dbus_connection_send_message): return
15026 * dbus/dbus-transport.c: include dbus-watch.h
15028 * dbus/dbus-connection.c: include dbus-message-internal.h
15030 * HACKING: add file with coding guidelines stuff.
15032 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15033 handling here, for security purposes (as in vsftpd). Not actually
15034 using this class yet.
15036 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15037 system/libc usage here, as in vsftpd, for ease of auditing (and
15038 should also simplify portability). Haven't actually moved all the
15039 system/libc usage into here yet.
15041 2002-11-25 Havoc Pennington <hp@pobox.com>
15043 * dbus/dbus-internals.c (_dbus_verbose): fix to not
15044 always print the first verbose message.
15046 2002-11-24 Havoc Pennington <hp@pobox.com>
15048 * test/echo-client.c, test/echo-server.c: cheesy test
15051 * configure.in (AC_CHECK_FUNCS): check for writev
15053 * dbus/dbus-message.c (_dbus_message_get_network_data): new
15056 * dbus/dbus-list.c (_dbus_list_foreach): new function
15058 * dbus/dbus-internals.c (_dbus_verbose): new function
15060 * dbus/dbus-server.c, dbus/dbus-server.h: public object
15061 representing a server that listens for connections.
15063 * dbus/.cvsignore: create
15065 * dbus/dbus-errors.h, dbus/dbus-errors.c:
15066 public API for reporting errors
15068 * dbus/dbus-connection.h, dbus/dbus-connection.c:
15069 public object representing a connection that
15070 sends/receives messages. (Same object used for
15071 both client and server.)
15073 * dbus/dbus-transport.h, dbus/dbus-transport.c:
15074 Basic abstraction for different kinds of stream
15075 that we might read/write messages from.
15077 2002-11-23 Havoc Pennington <hp@pobox.com>
15079 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15082 * dbus/dbus-test.c (main): add list test, and include
15083 dbus-test.h as intended
15085 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15086 (_dbus_hash_table_remove_int): return value indicates
15087 whether the entry existed to remove
15089 * dbus/dbus-list.c: add linked list utility class,
15090 with docs and tests
15092 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15095 2002-11-23 Havoc Pennington <hp@pobox.com>
15097 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15098 DBUS_END_DECLS to nothing, that should fix this once and for all
15100 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15102 * dbus/dbus-message.c, dbus/dbus-hash.c:
15103 add some missing @brief
15105 2002-11-23 Havoc Pennington <hp@pobox.com>
15107 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15108 to avoid confusing Doxygen
15110 * dbus/dbus-hash.c: @} not }@
15112 * dbus/dbus-message.c (struct DBusMessage): split out
15115 2002-11-23 Havoc Pennington <hp@pobox.com>
15117 * configure.in: pile on more warning flags if using gcc
15119 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15120 to document static functions
15122 * configure.in: add summary to end of configure so it
15123 looks nice and attractive
15125 * dbus/dbus-hash.c: finish implementation and write unit
15128 * configure.in: add --enable-tests to enable unit tests
15130 * dbus/dbus-test.c: test program to run unit tests
15131 for all files in dbus/*, initially runs a test for
15134 * dbus/dbus-internals.h: file to hold some internal utility stuff
15136 2002-11-22 Havoc Pennington <hp@redhat.com>
15138 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15139 "ported" away from Tcl
15141 * dbus/dbus-types.h: header for types such as dbus_bool_t
15143 2002-11-22 Havoc Pennington <hp@redhat.com>
15145 * dbus/dbus.h: fixups for doc warnings
15147 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15149 (QUIET): make it quiet so we can see warnings
15151 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15153 2002-11-22 Havoc Pennington <hp@redhat.com>
15155 * Makefile.am: include "Doxyfile" target in all-local
15157 * configure.in: generate the Doxyfile
15159 * Doxyfile.in: move Doxyfile here, so we can use
15160 configure to generate a Doxyfile with the right
15161 version number etc.
15163 2002-11-22 Havoc Pennington <hp@redhat.com>
15165 * dbus/dbus-message.c: move inline docs into .c file
15167 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15168 so all docs are under doc/
15169 (MAN_EXTENSION): generate man pages. Use extension
15170 ".3dbus" which matches ".3qt" on my system,
15171 I guess this is OK, I don't know really.
15172 (FILE_PATTERNS): look for .c files not .h, makes sense
15173 for plain C I think
15175 2002-11-22 Havoc Pennington <hp@pobox.com>
15177 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15178 because any app can be a server, and any app can be a client,
15179 the bus is a special kind of server.
15181 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
15183 * Doxyfile : adding. Still needs Makefile rules to be generated
15184 automatically (just run "doxygen" in the toplevel dir for now to
15187 * dbus/dbus-message.h : Adding sample docs (javadoc since
15188 resembles gtk-doc a little more)
15190 * dbus/dbus.h : Adding sample docs
15192 2002-11-21 Havoc Pennington <hp@redhat.com>
15194 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15195 so we can allow ourselves to include files directly,
15196 instead of having to use dbus.h
15198 * dbus/dbus.h: fill in
15200 * dbus/dbus-message.h: sketch out a sample header file.
15201 Include griping if you include it directly instead of
15204 * dbus/dbus-macros.h: new file with macros for extern "C",
15205 TRUE/FALSE, NULL, etc.
15207 * doc/file-boilerplate.c: put include guards in here
15209 2002-11-21 Havoc Pennington <hp@redhat.com>
15211 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15213 * COPYING: include the GPL as well, and license code
15214 under both AFL and GPL.
15216 2002-11-21 Havoc Pennington <hp@redhat.com>
15218 * acconfig.h: get rid of this
15220 * autogen.sh (run_configure): add --no-configure option
15222 * configure.in: remove AC_ARG_PROGRAM to make
15223 autoconf complain less. add AC_PREREQ.
15224 add AC_DEFINE third arg.
15226 2002-11-21 Anders Carlsson <andersca@codefactory.se>
15229 Fix references so we can distcheck.
15231 2002-11-21 Havoc Pennington <hp@redhat.com>
15233 * Initial module creation