1 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
3 * tools/dbus-monitor.1: update the manpage for dbus-monitor
4 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
6 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
8 * AUTHORS: Update with all people listed in the ChangeLog
10 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
12 * tools/dbus-monitor.c: add profiling tools to dbus-monitor
13 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
15 2006-11-07 Havoc Pennington <hp@redhat.com>
17 * HACKING: Update release instructions to include stuff about
18 stable releases, branching, etc. May not be totally correct,
19 please fix if needed, but keep instructions up-to-date so we do
20 each stable release consistently in the future.
22 2006-11-07 Havoc Pennington <hp@redhat.com>
24 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
25 documentation updates. Bump faq/spec versions (not to 1.0; I don't
26 think the spec will be "finished"/1.0 when we ship the 1.0 library).
28 2006-11-06 John (J5) Palmieri <johnp@redhat.com>
30 * bus/bus.c: Missed patch - pass in the context to the directory watch
32 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
34 * Released D-Bus 1.0 RC 3(0.95)
36 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
38 * bus/activation.c (bus_activation_new): don't fail if we can not read
39 the directory as it may not exist
41 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
43 * bus/config-parser.c (service_dirs_find_dir): use
44 _dbus_list_get_next_link so we don't get stuck in an infinite loop
45 (start_busconfig_child): move processing of standard_session_servicedirs
46 tags here because they have no content
47 (bus_config_parser_content): check we don't have content in
48 standard_session_servicedirs tag
50 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
52 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
53 Packagers need to own this directory
55 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
57 * tools/run-with-tmp-session-bus.sh: fixed script to replace the
58 <standard_session_servicedirs> tag with a <sevicedir> tag that
59 points to the test service directory
61 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
63 * configure.in: Add a check for DIR *dirp->dd_fd
65 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
66 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
67 of both Solaris and Irix
69 2006-11-01 Havoc Pennington <hp@redhat.com>
71 * bus/dbus-daemon.1.in: document standard_session_servicedirs
73 2006-11-01 John (J5) Palmieri <johnp@redhat.com>
75 * configure.in: expose DBUS_DATADIR
77 * bus/config-parser.c: add the standard_session_servicedirs element
79 (bus_config_parser_content): process the standard_session_servicedirs
80 element by getting the standard directories from sysdeps and merging
81 them into the service directory list
82 (test_default_session_servicedirs): make sure we get what we expect
84 * bus/session.conf.in: replace the servicedir tag with the
85 standard_session_servicedirs tag
87 * dbus/dbus-list.h: remove the typedef of DBusList and place it in
88 dbus-sysdeps.h to avoid circular header dependencies
90 * dbus/dbus-sysdeps.h: add the typedef of DBusList
92 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
93 which takes a string of directories delimited by colons, parses them
94 out, appends a suffix and puts them in a list ignoring empty elements
95 (_dbus_get_standard_session_servicedirs): returns the standard
96 directories for a session bus to look for service activation files
97 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and
98 DBUS_DATADIR directories
100 * test/data/valid-config-files/many-rules.conf: add the
101 standard_session_servicedirs tag to the valid config file tests
103 2006-10-30 Havoc Pennington <hp@redhat.com>
105 * tools/dbus-launch.1, doc/TODO: capture intent to change the
106 command line options of dbus-launch a bit post 1.0
108 2006-10-27 Havoc Pennington <hp@redhat.com>
110 * dbus/dbus-connection.c (dbus_connection_open_private): document
111 how to choose shared vs. private connections
113 2006-10-27 Havoc Pennington <hp@redhat.com>
115 * dbus/dbus-test.c: enclose more of the file in the
116 DBUS_BUILD_TESTS check.
118 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
119 DBUS_DISABLE_ASSERT case.
121 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
122 that it only works on the server side
124 * dbus/dbus-bus.c: add a global lock covering the BusData we
125 attach to each connection
126 (internal_bus_get): lock our access to the BusData
127 (dbus_bus_register): lock the entire registration process
128 with _DBUS_LOCK(bus_datas). If we get the lock and
129 registration is already complete, silently return (vs. previous
130 behavior of aborting).
131 (dbus_bus_set_unique_name): lock the BusData
132 (dbus_bus_get_unique_name): lock the BusData
134 2006-10-27 John (J5) Palmieri <johnp@redhat.com>
136 * bus/config-parser.c (service_dirs_find_dir,
137 service_dirs_append_unique_or_free,
138 service_dirs_append_link_unique_or_free): New static methods
139 for only appending unique service directory names into
140 the service directory list
141 (merge_included, bus_config_parser_content): Only add unique
142 service directory names into the list
144 2006-10-27 Havoc Pennington <hp@redhat.com>
146 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
147 variables volatile, suggested by Thiago. Document struct fields.
148 (PTHREAD_CHECK): remove pthread error checking if assertions are
149 disabled, should reduce the no-assertions case to the bare
152 2006-10-26 Havoc Pennington <hp@redhat.com>
154 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
156 (_dbus_pthread_mutex_unlock): make it recursive
157 (_dbus_pthread_condvar_wait): save/restore the recursion count
158 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
160 2006-10-26 Havoc Pennington <hp@redhat.com>
162 * doc/dbus-specification.xml: clarify the UUID text slightly
164 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
165 pthread errors. Add DBusMutexPThread and DBusCondVarPThread
166 in preparation for being able to extend them for e.g. recursive
169 2006-10-26 Havoc Pennington <hp@redhat.com>
171 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how
172 condition variables relate to recursive mutexes.
174 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c,
175 dbus/dbus-threads.c: Split the platforms-specific thread
176 implementations into their own files.
178 * dbus/dbus-sysdeps-pthread.c
179 (_dbus_pthread_condvar_wait_timeout): invert the return value, it
180 was backward. Not that anything uses it.
182 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
184 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
185 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
186 needs to be cleaned up more.
188 * doc/TODO: Add a todo that *BSD hackers should look at cleaning
191 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
193 * configure.in, dbus-1.pc.in: Check to see if thread methods
194 are in glibc or libpthread and add -lpthread to the link stage
197 2006-10-26 Thiago Macieira <thiago@kde.org>
199 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
200 bug 8780: the connection lock is only required while recording
201 the shared connection, so protect only that code
202 section. Don't require connection_lookup_shared to return a
205 2006-10-26 Thiago Macieira <thiago@kde.org>
207 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
208 check if get_machine_uuid() returns NULL before proceeding any
209 further: we can't init the X atoms or create a session file
210 name if there is no machine ID.
211 This solves a crash reported by some users if
212 --exit-with-session was used without --autolaunch=<machine-id>
214 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
216 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
217 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
219 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
220 before we run dbus-launch
222 * configure.in: define TEST_BUS_BINARY to be the full path to
223 dbus-daemon in the build root
225 2006-10-25 Sjoerd Simons <sjoerd@luon.net>
229 * toos/dbus-uuidgen.1:
230 Move the machine-id file to /var/lib/dbus
232 2006-10-24 David Zeuthen <davidz@redhat.com>
234 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
235 _dbus_assert (thread_init_generation != _dbus_current_generation)
236 not _dbus_assert (thread_init_generation == _dbus_current_generation)
238 2006-10-24 Thiago Macieira <thiago@kde.org>
240 * dbus/dbus-sysdeps.h:
241 * dbus/dbus-sysdeps-unix.c: Add function
242 _dbus_make_file_world_readable that chmods a file to 0644.
244 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
245 Avoid writing to the static "argv" array, thereby avoiding a
246 COW on the child process.
248 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
249 call _dbus_make_file_world_readable on the created file.
251 2006-10-23 David Zeuthen <davidz@redhat.com>
253 * dbus/dbus-memory.c: Use atomic variable to protect
254 n_blocks_outstanding otherwise OOM will be reported using SMP on
257 * bus/dispatch.c: Add missing end of line characters
259 * bus/desktop-file.c (parse_section_start, parse_key_value)
260 (bus_desktop_file_load): Propertly handle OOM
262 * dbus/dbus-threads.c (init_uninitialized_locks): Check that
263 thread_init_generation equals _dbus_current_generation, not 0
265 2006-10-22 Havoc Pennington <hp@redhat.com>
267 * dbus/dbus-connection-internal.h: move prototype of
268 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
269 it isn't in a public header and doesn't end up in the DBusBus
272 2006-10-21 Havoc Pennington <hp@redhat.com>
274 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
275 the tarball if packagers want to run it
277 * cleanup-man-pages.sh: Add a script which munges all the internal
278 API man pages out of the Doxygen output. This reduces the size of
279 the installed man pages from 7 to 2 megs, and avoids
280 namespace-polluting pages. Right now (like Doxygen) this script
281 isn't in the build, it's something packagers can do manually.
283 2006-10-21 Havoc Pennington <hp@redhat.com>
285 * dbus/dbus-connection.h: don't include the watch/timeout
286 functions in connection section
288 2006-10-21 Havoc Pennington <hp@redhat.com>
290 * Documentation! Whee! Doxygen now 100% silent. If you make it
291 angry again, you will be punished.
293 2006-10-21 Havoc Pennington <hp@redhat.com>
295 * More documentation - all public API now documented according to
298 2006-10-21 Havoc Pennington <hp@redhat.com>
300 * Document a bunch of undocumented stuff
302 2006-10-21 Havoc Pennington <hp@redhat.com>
304 * Clean up Doxygen group markers for public API so Doxygen finds
305 everything (not comprehensively fixed for private API).
306 Means all remaining Doxygen warnings are just about missing docs
307 and thus pretty simple to resolve.
309 2006-10-21 Havoc Pennington <hp@redhat.com>
311 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
313 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len()
314 as DBUS_GNUC_DEPRECATED
316 2006-10-21 Havoc Pennington <hp@redhat.com>
318 * Move all private API into the private Doxygen group sections of
319 the files, so they don't show up in the public API docs
321 2006-10-21 Havoc Pennington <hp@redhat.com>
323 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around
324 dbus_message_iter_get_array_len().
326 * throughout: documentation improvements.
328 2006-10-20 Havoc Pennington <hp@redhat.com>
330 * doc/TODO: remove the int64 thing from 1.0 since it doesn't
331 matter, and the message-loader-breaker thing since nobody is going
332 to do it. Add an item to 1.0 about supporting recursive locks
333 in dbus_threads_init_default() though, since it should be easy.
335 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
336 Fix this in the !dispatch case to avoid busy-looping after
339 * More misc docs improvements
341 2006-10-19 Havoc Pennington <hp@redhat.com>
343 * more Doxygen-related fixes (lots of moving things from the
344 public to internal section in dbus-connection.c)
346 2006-10-19 Havoc Pennington <hp@redhat.com>
348 * Fix a pile of Doxygen warnings and missing docs
350 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
352 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
353 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext
354 instead of a void *. kqueue uses this to get the context's loop
355 while the other modules ignore the parameter. This allows us to
356 avoid platform conditionals
358 * bus/bus.c (process_config_postinit): Pass in the context to the
361 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
363 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
364 when starting the system bus
366 2006-10-18 John (J5) Palmieri <johnp@redhat.com>
368 * configure.in: More fixups for cross compile (Patch from
369 Marco Pracucci <development at pracucci dot com>)
371 2006-10-17 Havoc Pennington <hp@redhat.com>
373 * tools/dbus-send.c (main): don't close shared connection, fix
376 2006-10-17 Havoc Pennington <hp@redhat.com>
378 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
380 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
381 since realistically it doesn't look like we'll be changing it
384 2006-10-17 Havoc Pennington <hp@redhat.com>
386 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
387 be used for return_if_fail type warnings; prefixes the pid, and
390 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
392 * configure.in: Released 1.0 RC 2(0.94)
393 Add check for -fPIC and enable it if available
395 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
397 * doc/TODO: Remove the check TODO item
399 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
401 * dbus-transport-socket.c (exchange_credentials):
402 Print out more detailed errors if reading or sending
403 credentials fail (Patch from Julio M. Merino Vidal
404 <jmmv at NetBSD dot org>)
406 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
408 * configure.in: when checking for posix getpwnam_r assume true
411 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
413 * configure.in: Check for gethostbyname first before we check for it
414 in libnsl. On gnu systems it is implemeneted
416 2006-10-13 Havoc Pennington <hp@redhat.com>
418 * dbus/dbus-connection.c
419 (dbus_connection_send_with_reply_and_block): fix to handle closed
420 connections, from Tambet Ingo bug #8631
422 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
424 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
426 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
428 * test/name-test/Makefile.am: don't link against both libdbus and
431 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
433 * configure.in: check for dirfd even if it is a macro
434 (Patch from Timothy Redaelli <drizzt at gufi dot org>)
436 2006-10-08 John (J5) Palmieri <johnp@redhat.com>
438 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
439 avoid using dirfd on systems that don't have dirfd
440 (Patch by Brian Cameron <brian dot cameron at sun dot com>)
442 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
444 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from
445 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
447 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
448 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
449 macro because _dbus_abort calls it
451 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
454 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
456 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
457 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>)
459 2006-10-02 Thiago Macieira <thiago@kde.org>
461 * tools/dbus-launch.c (main): make it complain and abort
462 execution in case an unknown option is given. Also, process
463 the '--' argument as the end of arguments.
465 2006-10-01 Havoc Pennington <hp@redhat.com>
467 * tools/dbus-launch.c (print_variables): if no syntax is given,
468 don't print something that's sort-of-half-sh-syntax, just print
469 a plain key-value pairs thing.
471 * tools/dbus-launch-x11.c: use machine ID rather than hostname for
472 the local machine representation (but still have the hostname in
473 the display). Remove the hostname from the display if it is
474 localhost. Change session files to be named
475 ~/.dbus/session-bus/machine-display. Change X atoms to be
476 underscore-prefixed so nobody whines about ICCCM compliance.
477 Otherwise name them the same as the env variables.
478 Change session file format to include key-value pairs and an
479 explanatory comment. Keys are the same as the env variables.
480 (set_address_in_x11): X property format can't depend on
481 sizeof(pid_t) on a particular machine, fix to always be 32 bits
483 * tools/dbus-launch.c: make --autolaunch take a machine id
484 argument. If --autolaunch is used with a program to run, complain
485 for now (but add a FIXME). Also, don't look for existing bus if
486 there's a program to run (but add a FIXME).
488 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
489 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
490 just to get this, and avoids duplicating uuid-reading code).
492 * tools/dbus-launch.1: clarify various things
494 2006-10-01 Havoc Pennington <hp@redhat.com>
496 * test/test-service.c (path_message_func): remove broken extra
497 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
499 * test/test-shell-service.c (path_message_func): same fix
501 * dbus/dbus-connection.c
502 (_dbus_connection_get_dispatch_status_unlocked): break up the
503 function a little for clarity and fix the notification of
504 dbus-bus.c to not require dispatch to be complete
506 * dbus/dbus-connection.c (dbus_connection_unref): improve the
507 warning when you try to finalize an open connection.
509 2006-10-01 Havoc Pennington <hp@redhat.com>
512 (internal_bus_get): only weak ref the connection; this means
513 _dbus_bus_notify_shared_connection_disconnected_unlocked can be
514 called safely in any context
515 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
518 * dbus/dbus-connection.c
519 (_dbus_connection_get_dispatch_status_unlocked): move
520 _dbus_bus_notify_shared_connection_disconnected_unlocked here
521 when queuing Disconnected instead of when the Disconnected message
522 arrives, so dbus_bus_get() won't return closed connections.
524 2006-10-01 Havoc Pennington <hp@redhat.com>
526 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
527 Add a hack to make DBusNewConnectionFunction work right.
529 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
530 the hack here. Also, fix the todo about refcount leak.
532 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
533 and use the hack here
535 * dbus/dbus-connection.c: Kill the "shared" flag vs. the
536 "shareable" flag; this was completely broken, since it meant
537 dbus_connection_open() returned a connection of unknown
538 shared-ness. Now, we always hold a ref on anything opened
541 Move the call to notify dbus-bus.c into
542 connection_forget_shared_unlocked, so libdbus consistently forgets
543 all its knowledge of a connection at once. This exposed numerous
544 places where things were totally broken if we dropped a ref inside
545 get_dispatch_status_unlocked where
546 connection_forget_shared_unlocked was previously, so move
547 connection_forget_shared_unlocked into
548 _dbus_connection_update_dispatch_status_and_unlock. Also move the
549 exit_on_disconnect here.
551 (shared_connections_shutdown): this assumed weak refs to the
552 shared connections; since we have strong refs now, the assertion
553 was failing and stuff was left in the hash. Fix it to close
554 still-open shared connections.
556 * bus/dispatch.c: fixup to use dbus_connection_open_private on the
557 debug pipe connections
559 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
560 dbus-bus.c if the closed connection is in fact shared
561 (_dbus_connection_close_possibly_shared): rename from
562 _dbus_connection_close_internal
563 (dbus_connection_close, dbus_connection_open,
564 dbus_connection_open_private): Improve docs to explain the deal
565 with when you should close or unref or both
568 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
569 from _dbus_bus_check_connection_and_unref_unlocked and modify to
570 loop over all connections
572 * test/test-utils.c (test_connection_shutdown): don't try to close
575 * test/name-test/test-threads-init.c (main): fix warnings in here
577 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
578 env variable to cause blocking waiting for gdb; drop
579 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
582 * configure.in: add -export-dynamic to libtool flags if assertions enabled
583 so _dbus_print_backtrace works.
585 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
586 instead of _dbus_verbose to print the backtrace, and diagnose lack
587 of -rdynamic/-export-dynamic
589 2006-09-30 Havoc Pennington <hp@redhat.com>
591 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
592 (internal_bus_get): fix screwy code formatting. whoever committed
593 that was not paying attention!
595 2006-09-30 Havoc Pennington <hp@redhat.com>
597 * configure.in (LT_CURRENT, LT_AGE): increment current and age to
598 reflect addition of interfaces.
600 * doc/dbus-specification.xml: describe a new
601 org.freedesktop.DBus.Peer.GetMachineId method
603 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
604 (_dbus_string_skip_white, _dbus_string_skip_blank): use new
605 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
607 (_dbus_string_chop_white): new function
609 * bus/connection.c (bus_connections_setup_connection): call
610 dbus_connection_set_route_peer_messages.
612 * dbus/dbus-connection.c
613 (_dbus_connection_peer_filter_unlocked_no_update): modify to
614 support a GetMachineId method.
616 Also, support a new flag to let the bus pass peer methods through
617 to apps on the bus, which can be set with
618 dbus_connection_set_route_peer_messages.
620 Finally, handle and return an error for anything unknown on the
621 Peer interface, which will allow us to extend the Peer interface
622 in the future without fear that we're now intercepting something
623 apps were wanting to see.
625 * tools/dbus-uuidgen.c: a thin wrapper around the functions in
628 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
629 binary here, since most of the code is already in libdbus
631 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
632 uuid from the system config file
634 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
635 (_dbus_read_uuid_file_without_creating)
636 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
637 uuid-related functions, partly factored out from dbus-server.c
639 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
640 DBUS_ERROR_FILE_EXISTS instead of EEXIST
642 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
644 * tools/dbus-cleanup-sockets.1: explain what the point of this
647 * autogen.sh (run_configure): add --config-cache to default
650 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
651 error set/clear assertions when DBUS_DISABLE_CHECKS is defined
653 * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
654 don't try to save address, fixes crash in make check
656 2006-09-30 Thiago Macieira <thiago@kde.org>
658 * configure.in: add DBUS_BINDIR as a #define to C source code.
660 * tools/dbus-launch.c
661 * tools/dbus-launch.h
662 * tools/dbus-launch-x11.c:
663 * tools/dbus-launch.1: Add the --autolaunch option to
664 dbus-launch, which makes it scan for an existing session
665 started with --autolaunch. With that option, it also creates
666 an X11 window and saves the bus address and PID to it.
668 * dbus/dbus-sysdeps.h:
669 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
670 a function that runs "dbus-launch --autolaunch" to retrieve
671 the running D-Bus session address (or start one if none was running)
673 * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
674 address protocol, which tries to get the running session from
678 * dbus/dbus-internals.h: Make "autolaunch:" be the default
679 D-Bus session bus address.
681 * dbus/dbus-connection.c: Fix horrible typo in error message.
683 2006-09-18 John (J5) Palmieri <johnp@redhat.com>
685 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
687 2006-09-17 Havoc Pennington <hp@redhat.com>
689 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
690 fix so that if unix_user_function is set on windows, we still
691 do the default check that the auth identity matches the bus identity
693 2006-09-16 Havoc Pennington <hp@redhat.com>
695 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
696 to _dbus_transport_open_platform_specific,
697 _dbus_transport_open_socket,
698 and _dbus_transport_open_debug_pipe
700 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
702 2006-09-16 Havoc Pennington <hp@redhat.com>
704 Attempt auditing public API to remove all cases where a Unix
705 function returns weird emulated goo to Windows. This probably
706 breaks the bus daemon on Windows, to fix it again we may
707 need to stop processing unix-specific config options on Windows,
708 and may need to add Windows-specific public API or config options.
710 * configure.in (LT_CURRENT, LT_AGE): increment current and age,
711 to reflect added interfaces; should not break soname.
713 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
714 not invoke unix user function on Windows. Kind of a hacky fix, but
715 we don't want a "unix uid" leaking out on Windows.
717 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
718 to get the socket fd on Windows or UNIX
719 (dbus_connection_get_unix_fd): make this always fail on Windows
721 2006-09-16 Havoc Pennington <hp@redhat.com>
723 * dbus/dbus-server.c (dbus_server_listen): change how this works
724 to be able to delegate to a set of handlers that can succeed,
725 fail, or choose not to handle. Allows us to have
726 dbus_server_listen_platform_specific.
728 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
729 factor out the tcp socket stuff to be used on windows, leaving
730 unix domain socket only in dbus-socket-unix.c
732 * dbus/dbus-transport-socket.c
733 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
734 stuff to be used on windows, leaving unix domain socket only
735 in dbus-transport-unix.c
737 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
738 temporary hack to be sure this fails on windows
739 (dbus_connection_get_unix_process_id): ditto
741 2006-09-16 Havoc Pennington <hp@redhat.com>
743 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
744 (_dbus_open_unix_socket, _dbus_open_socket): change API for
745 _dbus_open_socket so the domain/type/protocol from system headers
746 are not required. This is kind of pointless though unless we move
747 part of _dbus_connect_tcp_socket into sysdeps.c instead of
748 sysdeps-unix.c, which would mean adding a wrapper around
750 Also, add DBusError to the socket-opening functions so they
751 don't require use of errno.
753 2006-09-16 Havoc Pennington <hp@redhat.com>
755 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
756 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
758 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
759 Kümmel bug #8249 to make the sysdeps.h read/write/open/close
760 functions specifically for sockets only, and move generic
761 read/write/open/close into unix-specific code.
763 2006-09-14 Havoc Pennington <hp@redhat.com>
765 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
766 complaint about accessing revents when poll returns 0, from Julian Seward.
768 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
770 * Released 1.0 RC 1 (0.93)
772 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
774 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
775 use _dbus_close instead of close
777 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
779 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
780 credentials. Fixes "external" authentication under e.g. NetBSD
781 which does not support any other socket credentials mechanism.
782 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
784 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
786 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
787 dbus_threads_init and be used by the dbus mutex functions to
790 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
792 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
794 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
795 use threadsafe readdir_r instead of readdir
797 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
799 * dbus-threads.c (dbus_threads_init_default): New method for
800 initializing the internal thread implementation (Patch from
801 Alexander Larsson <alexl at redhat dot com>)
803 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
805 * remove a bunch of todo items from the 1.0 list
807 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
809 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
812 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
814 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
815 complex debugging code
817 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
818 between the test suite ifdefs
819 (_dbus_verbose_bytes): return if verbosity is not enabled
821 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
823 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
826 2006-09-10 Havoc Pennington <hp@redhat.com>
828 patch mostly by Peter Kümmel, bug #8211
830 * dbus/dbus-sysdeps-unix.c: new file, which splits out
831 unix-specific stuff in dbus-sysdeps.c
833 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
834 and move unix-specific stuff to dbus-sysdeps-unix.c
836 * configure.in: check HAVE_ERRNO_H
838 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
840 * bus/test-main.c (main): Initialize threading during tests
842 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
843 Unlock connection on error
844 (generate_local_error_message): static method for generating
845 an error message when we don't have a message to reply to
846 (_dbus_connection_block_pending_call): Send a disconnect error
847 instead of just a timeout (NULL) when the bus gets disconnected
848 while blocking for a reply.
850 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
852 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
853 filters (Patch from Kimmo Hämäläinen
854 <kimmo dot hamalainen at nokia dot com>)
856 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
858 * dbus/dbus-connection-internal.h: Add prototype for
859 _dbus_connection_test_get_locks to remove warning
861 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
863 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
864 close child_err_report_pipe[WRITE_END] on exec (Patch from
865 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
867 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
869 * Clean up close calls to use _dbus_close (Patch from
870 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
872 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
875 - Remove pending call locking todo item
876 - dbus_connection_open now holds hard ref. Remove todo item
877 - do proper locking on _dbus_bus_check_connection_and_unref
878 and handle DBUS_BUS_STARTER. Remove todo item
879 - Warn on closing of a shared connection. Remove todo item
881 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
882 dbus/dbus-connection.c: Use the dbus_connection_close_internal
883 so we don't get the warning when closing shared connections
885 * test/test-service.c, test/test-shell-service.c: Applications
886 don't close shared connections themselves so we unref instead of
889 * test/test-utils.c (test_connection_shutdown): Close the connection
891 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
892 _dbus_bus_check_connection_and_unref_unlocked since we only call this
893 method on a locked connection.
894 Make sure we call _dbus_connection_unref_unlocked instead of
895 dbus_connection_unref also.
896 Handle DBUS_BUS_STARTER correctly
898 * dbus/dbus-connection.c (connection_record_shared_unlocked):
899 Mark as shared and hard ref the connection
900 (connection_forget_shared_unlocked): Remove the hard ref from the
902 (_dbus_connection_close_internal_and_unlock): New internal function
903 which takes a locked connection and unlocks it after closing it
904 (_dbus_connection_close_internal): New internal function which acts
905 like the origonal dbus_connection_close method by grabbing a connection
906 lock and calling _dbus_connection_close_internal_and_unlock
907 (dbus_connection_close): Public close method, warns when the app
908 trys to close a shared connection
910 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
913 (bus_driver_generate_introspect_string): New method for populating
914 a DBusString with the introspect data
915 (bus_driver_handle_introspect): Move introspect generation code to
916 bus_driver_generate_introspect_string
919 (introspect): New function which prints out the intropect data and
921 (main): Add a --introspect switch
923 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
925 * doc/TODO: Removed dtd publishing item.
926 It seems the dtd has already been added at
927 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
929 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
931 * doc/TODO, various source files: Audited todo's and FIXME's and
932 prepended the ones we should be looking at with 1.0. Those
933 prepended with 1.0? need clerification or might not be needed
936 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
938 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
939 NULL in the public API (Patch from Kimmo Hämäläinen
940 <kimmo dot hamalainen at nokia dot com>)
942 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
944 * configure.in: Fix for OS-X compile time endian issues (patch from
945 Benjamin Reed <ranger at befunk dot com>)
947 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
949 * configure.in: Check for no-common compiler flag (OS-X fix from
950 Benjamin Reed <ranger at befunk dot com>)
952 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
954 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
955 <fcrozat at mandriva dot com>)
957 2006-08-29 Havoc Pennington <hp@redhat.com>
959 * test/test-service.c (path_message_func): fix lack of return value
961 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
962 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
963 any more sense than on anything else in this file.
964 (_dbus_get_tmpdir): add const to return value, and keep the
965 results of the various getenv around in a static variable.
967 2006-08-29 Havoc Pennington <hp@redhat.com>
969 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
970 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
972 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
974 * test/Makefile.am: change find to use syntax that works with non
977 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
979 * dbus/dbus-transport.c: fix invalid deref when checking if
980 a vtable method exists (Patch from Christian Ehrlicher
981 <ch dot ehrlicher at gmx dot de>)
983 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
985 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
986 test/name-test/Makefile.am: Fixed some issues with getting get dbus
987 to build with builddir != srcdir (Taken from a patch by Bernard Leak
988 <bernard at brenda-arkle dot demon dot co dot uk>)
990 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
992 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
995 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
997 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
998 it works on any system providing this interface, not only FreeBSD.
999 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1001 2006-08-20 Havoc Pennington <hp@redhat.com>
1003 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1006 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1010 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1012 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1013 to reflect the init late change
1015 * bus/bus.c (bus_context_new): Check user before we fork so we can
1016 print out an error message a user will be able to see
1018 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1020 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
1022 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1023 Add two more global locks for use on windows platforms. These are
1024 unused on non-windows platforms but are not ifdefed out to avoid
1025 potential bugs (i.e. the few bytes lost does not warrent the extra
1026 maintanence and complexity that having seperate sets of locks would
1029 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1031 * bus/services.c (bus_registry_acquire_service): Return an error
1032 when an application tries to register the org.freedesktop.DBus Bus Name
1034 * bus/services.c (bus_registry_release_service): Return an error
1035 when an application tries to release the org.freedesktop.DBus Bus Name
1037 2006-08-17 Alp Toker <alp@atoker.com>
1039 * doc/dbus-specification.xml: Fix some minor typos.
1041 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
1043 * configure.in: use $with_init_scripts instead of $operating_system
1044 to determine where to store the pid since the init scripts manipulate
1045 the pid file (patch from Marcelo Ricardo Leitner
1046 <marcelo dot leitner at terra dot com dot br>.
1048 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
1050 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1051 static DBusList *uninitialized_condvar_list to support new late
1052 initialization threading model. In this model threads can be initialized
1053 even after the D-Bus API has been used but still needs to be initialized
1054 before the second thread has been started. Mutexes and condvar addresses
1055 are stored in the two static lists and are replaced with actuall locks
1056 when threads are initalized.
1057 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1058 the location into the static list
1059 (_dbus_mutex_free_at_location): New method for removing a mutex location
1060 from the static list and freeing the mutex
1061 (_dbus_condvar_new_at_location): New method for creating a conditional
1062 variable and placing the location into the static list
1063 (_dbus_condvar_free_at_location): New method for removing a conditional
1064 variable location from the static list and freeing the conditional variable
1065 (init_uninitialized_locks): Atomic method which goes through the static
1066 lists of mutex and condvar location and updates them with actuall locks
1067 (init_global_locks): changed to init_locks
1069 * dbus/dbus-connection.c:
1070 (_dbus_connection_test_get_locks): New method for tests to check connections
1071 (_dbus_connection_new_for_transport): Use the new at_location mutex and
1073 (dbus_connection_allocate_data_slot): Pass in the global lock address
1074 to _dbus_data_slot_allocator_alloc
1076 * dbus/dbus-dataslot.c:
1077 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1078 instead of the mutex itself
1080 * dbus/dbus-message.c:
1081 (dbus_message_allocate_data_slot): Pass in the global lock address
1082 to _dbus_data_slot_allocator_alloc
1084 * dbus/dbus-pending-call.c:
1085 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1086 to _dbus_data_slot_allocator_alloc
1088 * dbus/dbus-server.c:
1089 (_dbus_server_init_base): Use the new at_location mutex API
1090 (dbus_server_allocate_data_slot): Pass in the global lock address
1091 to _dbus_data_slot_allocator_alloc
1093 * test/name-test/test-threads-init.c: New test case for late thread
1096 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1098 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1099 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1100 causes compile problems when asserts are turned off
1101 Keeping _dbus_warn for printing out the message so even if
1102 asserts are turned off the user gets the messages that something is
1105 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1107 Patches by Kjartan Maraas <kmaraas at gnome dot org>
1109 * bus/services.c (bus_service_list_queued_owners):
1110 Add a pointer cast to fix compiler warning
1112 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1113 return a NULL instead of FALSE since the return type
1114 is not expecting a boolean
1116 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1117 Remove unused variable
1119 * dbus/dbus-marshal-recursive-util.c (node_new):
1120 return a NULL instead of FALSE since the return type
1121 is not expecting a boolean
1123 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1124 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1125 because we are expecting a pointer not a boolean
1127 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
1128 add void as the parameter so some compilers
1131 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1132 _dbus_transport_new_for_tcp_socket):
1133 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1134 because we are expecting a pointer not a boolean
1136 * test/shell-test.c (test_command_line):
1137 cast the second argument to _dbus_list_append to avoid compiler
1140 * test/test-names.c (main): remove unused variable
1142 * test/test-service.c (check_hello_from_self_reply):
1143 Initialize echo_message and echo_reply to NULL
1145 * test/test-shell-service.c (handle_echo):
1146 Remove unused variable and cast the third parameter passed to
1147 dbus_connection_get_object_path_data to avoid compiler warrnings
1149 * test/name-test/test-names.c (clear_message_queue):
1150 Remove unused function
1152 * test/name-test/test-pending-call-dispatch.c:
1153 Fix format string in printf
1156 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1159 * test/name-test/test-names.c:
1160 Remove test method dbus_bus_connection_get_unique_name because
1161 we already have public method dbus_bus_get_unique_name that
1162 does the exact same thing
1164 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1166 * dbus/dbus-signature.c:
1167 fix typos in Julio's previous patch which cause make check to fail
1169 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1171 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
1172 In any case it was wrong since this is a test checking to see if
1173 address parsing is correct. There was no need to get the true
1176 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1178 * dbus/dbus-macros.h: Revert the addition of stddef.h
1179 as we should not be adding it to library headers
1181 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1183 * dbus/dbus-signature.c:
1184 Fix the unit tests so that they work if assertions are not enabled.
1185 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1187 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1189 * tools/run-with-tmp-session-bus.sh:
1190 * test/name-test/run-test.sh:
1191 Remove bashisms (patch from Julio M. Merino Vidal
1192 <jmmv at NetBSD dot org>)
1194 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1196 * configure.in: add a version (>= 2.6.0) check for libxml2
1198 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1200 * configure.in: make sure the compiler supports -Wfloat-equal
1202 * bus/dir-watch-dnotify.c: move functional code after
1203 variable declerations (C99 fix) (patches from Jens Granseuer
1204 <jensgr at gmx dot net>
1206 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1208 * dbus/dbus-macros.h:
1209 add #include <stddef.h> so that Sun compilers don't complain about
1212 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1214 * dbus/dbus-sysdeps.c:
1215 * dbus/dbus-address.c:
1217 * test/shell-test.c:
1218 don't hardcode tmp directory (patch from Dave Meikle
1219 <dmk at davemeikle dot co dot uk>)
1221 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
1223 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1224 Change an assert to a detailed warning and abort.
1225 When allocator->lock != mutex it indicates that the user has failed
1226 to initalize threads before using the D-Bus library. This warning
1227 helps the user identify the issue and fix their app.
1229 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1231 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1232 with cleanups of bugs found from Coverity reports:
1234 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1235 close the file on error to avoid a leak
1237 * bus/expirelist.c (bus_expire_list_test):
1238 Check for NULL on dbus_new0
1240 * bus/activation.c (update_directory):
1243 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1246 * bus/bus.c (process_config_every_time):
1249 * bus/desktop-file.c (parse_key_value):
1252 * bus/selinux.c (bus_selinux_id_table_insert):
1255 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1257 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1260 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1262 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1265 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1267 * Doxyfile.in: fix the INPUT line so we can generate docs
1268 when sourcedir != builddir (patch from Cygwin Ports maintainer
1269 <yselkowitz at users dot sourceforge dot net>
1271 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1273 * dbus/dbus-sysdeps.h:
1274 * dbus/dbus-sysdeps.c:
1275 * dbus/dbus-string.c:
1276 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1277 GLib's function which does the same thing
1281 * bus/dir-watch-default.c:
1282 * bus/dir-watch-dnotify.c:
1283 * bus/dir-watch-kqueue.c:
1284 Add kqueue directory watching for freebsd and split the directory
1285 watching code into seperate files per method/arch
1286 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1288 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1291 * tools/Makefile.am:
1292 * tools/dbus-launch.c:
1294 allow --with-dbus-daemondir switch to be used to make the
1295 daemon install to a seperate bindir like /usr/libexec
1296 (patch from Brian Cameron <brian dot cameron at sun dot com)
1298 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1300 * bus/Makefile.am (install-data-hook): removed the slash after
1301 $(DESTDIR) so we don't get the double slash which does not work
1302 in windows (patch from Andras Porjesz
1303 <andras dot porjesz at siemens dot com>)
1305 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1307 * dbus/dbus-sysdeps.h:
1308 * dbus/dbus-sysdeps.c:
1309 add _dbus_printf_length (patch from Peter Kümmel
1310 <syntheticpp at gmx dot net>)
1312 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1314 * dbus/dbus-internals.c: unistd.h is not used
1315 (_dbus_verbose_real): only enable verbose printing
1316 if DBUS_VERBOSE environment var is set to '1'
1317 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1319 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1321 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1322 so we still compile on older gcc (patch from Frederic Peters
1323 <fpeters at 0d dot be>
1325 2006-08-04 Havoc Pennington <hp@redhat.com>
1327 * configure.in: add -Wdeclaration-after-statement
1329 * dbus/dbus-connection.c: change all the pending call stuff to
1330 reflect the fact that pending call operations use the connection
1333 * dbus/dbus-pending-call.c: add locking here
1335 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1336 field const consistent with how message field is done
1338 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1342 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1344 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
1345 <in7y118 at public.uni-hamburg dot de> - fix invalid
1346 read/write reported by valgrind
1348 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
1352 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
1354 * dbus/dbus-connection.c:
1355 (_dbus_connection_attach_pending_call_unlocked):
1356 (connection_timeout_and_complete_all_pending_calls_unlocked):
1357 Make sure we set timeout_added on pending calls to FALSE when
1358 we remove the timeout from the connection
1360 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
1362 * Removed some extra bindings stuff lingering around (thanks timo)
1363 * dbus-pendingcall.c (_dbus_pending_call_new):
1364 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1365 when we tried to take a lock on an already locked connection
1367 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1371 2006-07-17 Havoc Pennington <hp@redhat.com>
1373 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1374 ints, reported by Owen Taylor
1376 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1381 * dbus/dbus-marshal-validate.c:
1382 Removed TODO items which were fixed or are no longer relevent
1384 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1386 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1387 Remove stray files from the stripped bindings
1389 2006-07-16 Havoc Pennington <hp@redhat.com>
1391 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1392 Improve the error message on reply timeout
1394 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
1396 * Remove all bindings
1398 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
1400 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1401 and set pending_reply out arg to NULL is connection is disconnected
1402 (connection_timeout_and_complete_all_pending_calls_unlocked): New
1403 static method for cleaning up pending calls on disconnect
1404 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
1405 calls queued timeouts on disconnect
1407 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1410 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
1412 * bus/activation.[ch] (bus_activation_list_services): new function to
1413 get the list of services that can be activated
1415 * bus/dispatch.c: test coverage for the new bus method
1416 ListActivatableNames
1418 * bus/driver.c: new bus method ListActivatableNames to get the list of
1419 services that can be activated
1421 * doc/dbus-specification.xml: ListActivatableNames method documentation
1423 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1424 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1427 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1428 * dbus/dbus-message-factory.c:
1429 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1431 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1432 * dbus/dbus-connection-internal.h:
1433 * dbus/dbus-connection.c:
1434 * file dbus/dbus-pending-call.c:
1435 * dbus/dbus-pending-call.h:
1436 Make DBusPendingCall an opaque type even to D-Bus internals
1438 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1440 * dbus/dbus-connection.h: remove connection_disconnect and replace with
1443 * dbus/dbus-connection.c: include dbus-bus.h
1444 (_dbus_connection_read_write_dispatch): make static
1446 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1448 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1450 (dbus_connection_dispatch): On disconnect unref any shared connections
1452 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1453 for cleaning up shared connections on disconnect
1454 (internal_bus_get): get a hard refrence to shared connections when
1457 * doc/TODO: Remove items which are no longer relevent or have been fixed
1458 Split 1.0 todo items with a 0.90 freeze todo list
1460 2006-06-14 Ross Burton <ross@openedhand.com>
1462 * glib/dbus-gobject.c:
1463 Free a leaking GArray (surely not!) in dbus_g_method_return.
1465 2006-06-14 Ross Burton <ross@openedhand.com>
1467 * tools/Makefile.am:
1468 * tools/dbus-monitor.c:
1469 Don't use the GLib bindings in dbus-monitor (patch from Ralf
1472 2006-06-14 Ross Burton <ross@openedhand.com>
1474 * tools/dbus-print-message.c:
1475 Also print the object path when outputting signals or method calls.
1477 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
1479 * qt/src/Makefile.am: install the qdbus.h header.
1480 This allows people to actually use the installed code.
1482 2006-06-12 Ross Burton <ross@openedhand.com>
1484 * glib/dbus-gproxy.c:
1485 Don't leak a GArray when firing signals (thank Rob Taylor for review).
1487 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1491 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1493 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1494 break pedantic builds. Closes bug 6043 (patch approved by
1495 Havoc back in February).
1497 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1499 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1500 that took a QDBusMessage parameter.
1501 * qt/src/qdbusbus.h: Add a default flag for RequestName.
1502 * qt/tools/dbus.cpp: Don't use automatic call because we might
1503 be calling an async method: request a reply.
1505 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1507 * test/qt/*: Update the testcases, including testing the new
1508 functionality of sending null QByteArray and QString over the
1509 bus. Add new headertest test and restore the old
1510 qdbusxmlparser test.
1512 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1514 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1515 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1517 * qt/examples/Makefile.am:
1518 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1521 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1522 QByteArray() (nulls) over the bus.
1523 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1524 the one that has the signature suffix stripped.
1525 * qt/src/qdbusreply.h: Make some methods const.
1527 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
1529 Patch from Timo Hoenig <thoenig@suse.de>.
1531 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
1532 required during build to EXTRA_DIST.
1533 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1534 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1535 * configure.in: Fix "make dist", take care that the Makefile for
1536 qt/dbus is being generated.
1538 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1540 * bus/bus.c: Fix eavesdropping on method calls
1542 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1545 * dbus/dbus-userdb-util.c:
1546 Add Solaris console owner patch from Artem Kachitchkine
1548 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
1551 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1552 reorganisation. Thanks to Timo Hoenig for pointing this out.
1554 2006-06-06 Robert McQueen <robot101@debian.org>
1556 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1557 call to dbus_g_type_get_struct.
1559 2006-06-06 Robert McQueen <robot101@debian.org>
1561 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1562 pointers were put into a GPtrArray-based specialised collection, and
1563 then freed along with the array. GValues which you add into
1564 collections or maps which have the NOCOPY flag set are assumed to not
1565 belong to the caller, so rather than the existing pointer-stealing
1566 semantics, they are copied instead. Given that the main consumers of
1567 this abstraction are the bindings themselves, I don't think this is
1568 too bad, but others should watch their choice of take vs set_static.
1570 2006-06-06 Robert McQueen <robot101@debian.org>
1572 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1573 of g_slist_prepend not being used. Fixed copying of slist-based
1574 specialised collections, then wrote a test case and found that it was
1575 all broken. Went on to fix iterating and appending too. Good thing
1576 nobody uses this code yet.
1578 2006-06-06 Robert McQueen <robot101@debian.org>
1580 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1581 the iterators use gvalue_take_ptrarray_value (the GValues themselves
1582 are discarded without unsetting, so it makes no difference whether
1583 we take or set_static). Remove cases for G_TYPE_POINTER because
1584 there really is nothing useful we can do with them in our
1585 specialised types - we *need* boxed copy/free functions at the very
1588 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
1590 * qt/dbus: Add directory. I had forgotten to add this
1591 yesterday after the move...
1593 * qt/examples/Makefile.am:
1594 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1596 * qt/tools/Makefile.am:
1597 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1598 Added feature to get and set properties.
1599 Added validation of service, object path and interface names.
1601 * qt/tools/dbusidl2cpp.cpp: Two new features:
1602 1) Allow specifying both the header and the source file names,
1603 by separating them with a colon.
1604 2) Don't write an interface output if the -p switch wasn't
1605 given, but the -a was.
1607 * qt/src/*: Fix usage of Iterators and ConstIterators.
1608 Fix shadowing of variables by other variables (-Wshadow).
1609 Fix keyword-cleanliness in headers.
1610 Fix ASCII-cast (QLatin1String, QLatin1Char).
1611 Fix validation of member names.
1612 Add extra checking of introspection data during XML parsing.
1615 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1618 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1619 qt/dbus/qdbus.h now.
1621 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1623 * configure.in: Make --disable-qt actually do
1624 something. Patch inspired by Zack Rusin.
1626 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1628 * qt/: Update to Subversion r548032.
1629 This includes a big reorganisation of the files inside the
1632 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
1634 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1636 "Failed to connect to socket <host>:<port> <error>" instead of
1637 "Failed to connect to socket <host>: <error>:<port>"
1639 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1640 for a tcp transport.
1642 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
1644 * qt/*: Update the QtDBus bindings up to revision 546310 in
1646 This adds the dbuscpp2xml tool, that parses a C++ header and
1647 outputs a D-BUS Introspection XML.
1649 2006-05-21 Havoc Pennington <hp@redhat.com>
1651 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1652 is not NULL when it shouldn't be. Also a couple of possible fixes
1653 for #4637 though I don't understand why the bug happens, to be
1654 honest... also the object constructor has an assert name != NULL
1655 and the name is only currently NULL for peer-to-peer proxies that
1656 I don't think anyone uses? So it should be asserting.
1657 Anyway, for now at least see if we get an earlier assertion failure.
1659 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1660 apparently broken code to be sure the tests fail and someone
1663 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
1665 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1666 and arrays when they had a single element: has_next returns
1667 false, even before you read the element. So, instead, check
1670 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
1672 * qt/qdbusmessage.cpp:
1673 * qt/qdbustypehelper_p.h:
1674 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1675 the list is a const-reference
1677 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
1679 * Adding old doc patch that never got applied
1681 * dbus/bus.c (dbus_bus_add_match): Add documentation
1683 * doc/dbus-specification.xml: Add documentation for the match rules
1684 and the AddMatch and RemoveMatch methods
1686 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
1688 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1691 * qt/dbusidl2cpp.cpp:
1692 * qt/qdbusabstractadaptor.cpp:
1693 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1694 sibling of the QDBusAbstractAdaptor objects instead of the
1697 * qt/dbusidl2cpp.cpp:
1698 * qt/qdbusabstractinterface.cpp:
1699 * qt/qdbusabstractinterface.h:
1700 * qt/qdbusabstractinterface_p.h:
1701 * qt/qdbusinterface.cpp: Make properties in interfaces
1702 actually work. The code that was generated would not compile,
1703 due to moc calls to functions that did not exist. They now
1706 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
1710 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1711 Thanks to Brad Hards for providing the patch
1713 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1715 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1718 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1720 * qt/examples/dbus.cpp: Enhance error messages and use
1723 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1725 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1726 and disable the copy operators. (r533772, r534746)
1728 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1730 * qt/qdbusabstractinterface.cpp:
1731 * qt/qdbusabstractinterface.h: Change the default call mode to
1732 not use the event loop. Add convenience call() methods that
1733 take a CallMode parameter. (r534042)
1735 * qt/qdbusconnection.h: Change the default call mode to not
1736 use the event loop. (r534042)
1738 * qt/qdbusinterface.cpp:
1739 * qt/qdbusinterface.h: Add a method to tell us if the
1740 interface is valid (since we don't return a null pointer
1743 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1746 * qt/qdbusinternalfilters.cpp: Decouple the introspection
1747 function in two so taht we get the chance to introspect
1748 without having a QDBusMessage (r534102)
1751 * qt/qdbusconnection.cpp:
1752 * qt/qdbusconnection_p.h:
1753 * qt/qdbusintegrator.cpp: Keep a list of our own names to
1754 avoid a round-trip to the server when attempting to introspect
1755 one of our own objects. Also make sure the filter functions
1756 match the empty interface as well. (r534108)
1757 Don't keep the connection names. Instead, trust the unique
1758 connection name (r534111)
1759 Remove event loop usage (r534112)
1761 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1763 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1766 2006-04-28 Robert McQueen <robot101@debian.org>
1768 * glib/dbus-gproxy.c: Fix properties so that they can be given in
1769 any order, making it easier for people who inherit from this
1772 2006-04-28 Robert McQueen <robot101@debian.org>
1774 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1775 of memory from within pointer arrays and lists. Fixes bug #6300.
1777 2006-04-28 Robert McQueen <robot101@debian.org>
1779 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1780 generating struct signatures. Fixes bug #6083.
1782 2006-04-28 Robert McQueen <robot101@debian.org>
1784 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1785 to qdbusconnection_p.moc.
1787 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1789 * README, INSTALL: Doc fixes
1790 Patch from Brad Hards <bradh at frogmouth.net>
1792 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1794 * qt/examples/dbus.cpp: Use the new merged-interface mode for
1795 the dynamic meta object. No need to guess which interface to
1798 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1800 * qt/qdbusconnection_p.h:
1801 * qt/qdbusmetaobject.cpp:
1802 * qt/qdbusmetaobject_p.h:
1803 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1804 for the dynamic meta object. No need to guess which
1806 * qt/qdbusabstractinterface_p.h:
1807 * qt/qdbusconnection.cpp:
1808 * qt/qdbusintegrator.cpp:
1809 * qt/qdbusinterface.cpp:
1810 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1811 Add a QDBusRef that looks and behaves like DCOPRef.
1813 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1815 * dbus/dbus-connection.c: Interfaces are optional in method
1816 calls, so don't give up if the interface parameter is NULL.
1817 Patch reviewed by Havoc Pennington.
1819 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1821 * qt/qdbusreply.h: Add default constructor and operator=
1823 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1824 in public headers (r532952)
1825 * qt/qdbusabstractinterface.cpp:
1826 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1827 make it the default (r532951)
1829 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1831 * dbus/dbus-connection.c: Fix asserts
1832 Patch from Tim Moloney <t.moloney at verizon.net>
1834 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1836 * mono/Connection.cs, mono/Message.cs: Check Target type
1837 Patch from Aaron Bockover (abockover at novell.com)
1839 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1841 * INSTALL: fine-tune the requirements for the Qt4 binding.
1843 2006-04-16 Daniel P. Berrange <dan@berrange.com>
1845 * tools/dbus-print-message.c: Added support for printing of all
1846 remaining data types. Fixed logic for indentation of compound
1849 2006-04-15 Daniel P. Berrange <dan@berrange.com>
1851 * INSTALL: fill out content of file providing DBus specific
1852 build installations, followed by generic Auto* INSTALL file
1855 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1857 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1858 Patch by Stefan Eilers. (r529537)
1860 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1862 * qt/qdbusinternalfilters.cpp: Don't show the parent's
1865 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1867 * qt/Makefile.am: fix the dependency for
1868 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1869 not in qdbusconnection.cpp.
1870 Thanks to Jakub Stachowski <stachowski@hypair.net> for
1873 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1875 * qt/examples/listnames.cpp:
1876 * qt/examples/Makefile.am: Three ways to list the names on the
1879 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1881 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1882 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1884 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1886 Merge from Subversion:
1887 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1888 something that exists (r526315)
1889 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1890 slots/signals (r526316)
1891 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1892 also return an unknown-method error if the parameters don't
1893 match for org.freedesktop.DBus.Properties. (r526842)
1894 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1895 * qt/qdbusintegrator.cpp: Restore the proper order of
1896 delivery: don't make method returns be delivered on priority
1899 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1901 * configure.in qt/Makefile.am: add qt/examples
1902 * qt/examples: Add QtDBus example programs:
1903 - hello: Hello, World
1904 - ping: Simple method-calling program
1905 - pong: Simple object-exporting program (not using adaptors)
1906 - complexping: Interactive method-calling program
1907 (also gets and sets properties).
1908 - complexpong: Sample program exporting methods, signals and
1909 properties, using adaptors.
1910 - dbus: Simple implementation of a generic method-calling
1911 program, similar to 'dbus-send', but with semantics
1913 - chat: Simplistic chat program, implemented using signals
1914 and the system bus. Looks like IRC.
1916 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1918 * configure.in: Detect QtGui (necessary for one of the
1919 example programs). Note: this increases the minimum required
1920 version of Qt to 4.1.3.
1922 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1924 * test/qt/*: Sync with KDE Subversion revision 523647.
1925 Update the testcases to the new API. Remove testcases for
1926 classes that are no longer public or have been removed.
1928 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1931 * dbus/qdbus.h: Sync with KDE Subversion revision
1932 523647. Hopefully, this will be the last of the
1933 source-incompatible changes. Documentation has been improved;
1934 support for QList<basic-types> has been added; QDBusObject is
1935 gone; QDBus(Abstract)Interface is now a QObject with
1936 auto-generated meta-object; QDBusIntrospection is marked
1937 private, since QMetaObject can be used now; lots of bugfixes.
1939 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
1941 Patch from Milosz Derezynski <internalerror at gmail.com>
1944 Output the service directory in the configure summary
1947 Add session_bus_services_dir
1949 2006-03-10 Ross Burton <ross@openedhand.com>
1951 * tools/dbus-print-message.c:
1952 Add support for object paths and signatures.
1954 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
1956 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1958 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1960 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
1961 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1962 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1963 * dbus/dbus-userdb.h: Add function to flush all user/group information
1966 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1968 * qt/dbusidl2cpp.cpp:
1969 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1970 for dcopidl2cpp, found in the KDE installations (or the more
1971 modern kalyptus): generate Qt4 C++ code for the input XML
1972 introspection. Currently no IDL parsing.
1974 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1976 * test/qt/*: Update the self-tests.
1978 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1981 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1982 represents the first feature-complete version of the Qt4
1983 bindings since I took ove maintainership.
1985 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1987 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1988 dir. This is C++, so we can't use the DBus ones.
1990 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1992 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1993 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1995 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1997 * dbus/dbus-connection.c:
1998 (_dbus_connection_block_pending_call):
1999 Check to see if our data has already been read off the connection
2000 by another blocking pending call before we block in poll.
2001 (check_for_reply_and_update_dispatch_unlocked):
2002 Code taken from _dbus_connection_block_pending_call - checks for
2003 an already read reply and updates the dispatch if there is one.
2005 * test/name-test/test-pending-call-dispatch.c:
2006 New test for making sure we don't get stuck polling a
2007 dbus connection which has no data on the socket when
2008 blocking out of order on two or more pending calls.
2010 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
2012 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2013 make/automake don't detect that we're talking about the same
2014 .lo file if I specify the full path to the source files.
2016 2006-02-26 Havoc Pennington <hp@redhat.com>
2018 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2020 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2021 session bus variable is unset, suggest "man dbus-launch" and "man
2022 dbus-daemon" to figure out how to fix the problem
2024 2006-02-25 Havoc Pennington <hp@redhat.com>
2026 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2027 should make this thing use the new glib options parser
2029 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
2031 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2032 .lo files taking moc sources.
2034 2006-02-25 Havoc Pennington <hp@redhat.com>
2036 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2037 and install it as a public header
2039 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2043 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2045 * proxies.py: Fix the callchain
2047 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2049 * patch from Sjoerd Simons <sjoerd at debian.org>:
2051 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
2054 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2055 call _dbus_group_info_free_allocated which causes infinite loop,
2056 correctly call _dbus_group_info_free
2058 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
2060 * qt/qdbusinterface_p.h:
2061 * qt/qdbusinterface.cpp: Use the standard
2062 org.freedesktop.DBus.Method.NoReply annotation for the "async"
2063 calls instead of creating one for us.
2065 * qt/qdbusconnection_p.h:
2066 * qt/qdbusintegrator.cpp: Remove debugging code.
2068 * qt/qdbusintegrator.cpp:
2069 * qt/qdbusmessage.cpp:
2070 * qt/qdbusmessage_p.h:
2071 * qt/qdbusmessage.h: Change the behaviour of automatic
2072 reply-sending: now a reply is always sent, unless the caller
2073 didn't request one or if the user slot has already sent one.
2075 2006-02-16 Robert McQueen <robot101@debian.org>
2077 * configure.in: Patch from Debian packages by Sjoerd Simons
2078 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2079 arguments so it's possible to build both bindings in the
2082 * qt/Makefile.am: Fix truncated value so that make dist works.
2084 2006-02-16 Robert McQueen <robot101@debian.org>
2086 * acinclude.m4, configure.in: Patch from Brad Hards
2087 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2088 improving quoting, re-ordering a few checks, and a few other
2091 2006-02-16 Robert McQueen <robot101@debian.org>
2093 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2094 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2095 assertion that the next element to read from the iter is fixed in
2096 size. This is not the case when you are at the end of the iter,
2097 because the next element type is INVALID.
2099 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2100 a bogus assert which means that you may not initialise a 0-length
2101 string unless you provide a non-NULL pointer. This prevented
2102 you from marshalling messages containing zero-length arrays in
2105 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2106 from Rob to correct bogus asserts when trying to demarshal an
2107 array and get_fixed_array got you 0 elements. Append nothing to
2108 the GArray in this case.
2110 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2111 an empty array via the glib bindings. Without all of the above
2112 patches, this new test fails.
2114 2006-02-16 Robert McQueen <robot101@debian.org>
2116 * glib/dbus-gmain.c: Make the previous commit compile.
2118 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2119 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2120 specify sender_keyword="foo", path_keyword="bar" when adding
2121 a signal listener, so that you can bind to signals generically
2122 but still do something useful in your callback.
2124 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2125 chars so that they're not cast to chars and made negative. Thanks
2126 to Jakub Stachowski for reporting this and testing the fix.
2128 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
2131 * glib/dbus-gmain.h:
2132 (dbus_g_connection_open): new method for openning
2133 a connection to an arbitrary address in the glib bindings
2135 * ChangeLog: checkin last entry which doesn't seem to be commited
2137 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
2139 * tools/dbus-launch.c: Fixed sh syntax output
2141 2006-02-13 Robert McQueen <robot101@debian.org>
2143 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2144 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2145 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2146 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2147 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2148 missing piece of the glib bindings jigsaw puzzle. This modifies
2149 the existing specialised types to have N type parameters (rather
2150 than the current 1 or 2 for arrays and dictionaries respectively).
2151 You can then use this to get a glib type to represent any arbitrary
2152 D-Bus struct type using dbus_g_type_get_struct. The only
2153 implementation of these types is with GValueArrays as before,
2154 but it's now possible to store these in arrays, emit them in
2157 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2159 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2160 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
2161 <thiago.macieira at trolltech.com>
2163 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2165 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2166 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2168 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2170 * bus/connection.c (bus_connections_expect_reply): Make
2171 pending reply limit not common to all connections (Bug #5416)
2172 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2174 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2176 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2178 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2180 * gcj/Makefile.am: point to correct jar command (Bug #4529)
2181 patch from Doug Goldstein <cardoe at gentoo.org>
2183 2006-02-09 Joe Shaw <joeshaw@novell.com>
2185 * mono/Arguments.cs: Fix a magic number in the mono bindings
2186 that doesn't work on 64 bit arches. Patch from Peter Johanson.
2188 2006-01-27 Robert McQueen <robot101@debian.org>
2190 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2191 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2192 when generating the client-side methods, instead of overloading
2193 CSymbol which broke everything horribly. My apologies.
2195 2006-01-27 Robert McQueen <robot101@debian.org>
2197 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2198 by me and Rob Taylor to add a simple_free function to D-Bus map
2199 and collection types, which allows those types which can be freed
2200 with a GDestroyNotify (such as GHashTables and GArrays, but not
2201 GPtrArrays) to be stored as the values in hashtables.
2203 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2204 Patch by Rob Taylor to add nested dicts to the glib tests to check
2205 the above code works, and appears not to leak when called repeatedly.
2207 2006-01-27 Robert McQueen <robot101@debian.org>
2209 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2210 to free a D-Bus allocated string with dbus_free () instead of
2213 2006-01-27 Iain Holmes <iain@openedhand.com>
2215 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2216 method from being called multiple times.
2218 2006-01-19 Robert McQueen <robot101@debian.org>
2220 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2221 <rob.taylor@collabora.co.uk> to add support for generating bindings
2222 to arrays that are represented as GPtrArrays rather than GArrays (ie
2223 size-variable things, such as strings, objects, structs, etc).
2225 2006-01-05 Robert McQueen <robot101@debian.org>
2227 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2228 <ricardo.kekki@movial.fi> to make it possible to inherit from
2229 DBusGProxy, by splitting the DBusGProxy struct into a public part and
2230 a private part, and moving the setting of the DBusGProxyManager into a
2231 connection property, allowing proper GObject construction.
2233 2006-01-05 Robert McQueen <robot101@debian.org>
2235 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2236 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2237 annotations when generating glib client bindings.
2239 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2241 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2243 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2245 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2247 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2249 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2251 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2253 2005-12-19 Ross Burton <ross@openedhand.com>
2255 * doc/dbus-tutorial.xml:
2256 Document the Glib client-side bindings, and list all possible annotations.
2258 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2260 * dbus/bus.c (dbus_bus_release_name): Add documentation
2262 2005-12-06 Robert McQueen <robot101@debian.org>
2264 * python/service.py: s/sucessful/successful/ so we're allocating to
2265 and reading from the same variable. Oops.
2267 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2271 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2273 * test/qt/Makefile.am: build from srcdir
2275 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2276 Note - this code is wrong and needs to be fixed by the Qt binding
2277 developers. The flags should be treated as bitfields and not enums.
2279 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2281 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2283 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
2284 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
2287 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2289 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2290 method for getting messages off the bus in the absence of a
2291 mainloop. This method is much like
2292 dbus_connection_read_write_dispatch except it does not dispatch
2293 the messages to a registered filter function. Instead it
2294 allows a developer to process messages by directly popping
2297 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2299 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
2300 the parser to continue instead of returning error
2301 (bus_desktop_file_load): Do not free parser data when
2302 parse_section_start or parse_key_value fails because it was
2303 already freed by parser_free (patch from Carlos Garcia Campos
2304 <carlosgc at gnome.org>)
2306 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2308 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2309 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2310 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2311 test/test-segfault.c, test/test-utils.c,
2312 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2313 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2314 Various cleanup of dead code and compiler warnings (patch from
2315 Kjartan Maraas <kmaraas at gnome.org>)
2317 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2319 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2320 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2322 2005-11-27 Robert McQueen <robot101@debian.org>
2324 * python/dbus_bindings.pyx: Repair my previous commit which reverted
2325 part of the preceding one. Oops. Merge patch by Johan Hedberg
2326 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2327 on big-endian platforms.
2329 * test/python/test-client.py: Add some 16-bit integers to the test
2332 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
2334 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2335 method return message for property getters
2337 2005-11-27 Robert McQueen <robot101@debian.org>
2339 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2340 with type v of an instance of dbus.Variant(foo, type='x') caused
2341 it to be boxed twice before sending over the bus.
2343 * python/dbus_bindings.pyx, python/service.py,
2344 test/python/test-client.py: Update the constants for the new
2345 request_name flags, and update comments/test cases now that queueing
2346 is the default action.
2348 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2351 - Change version to 0.60 for impending release
2352 - upped the sonames because of ABI and API breakage
2354 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2356 * configure.in: Add test/name-test/Makefile to the generated
2359 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2360 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2361 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2362 not to queue an ower if it can't be the primary owner
2364 * bus/bus.h: Add new internal BusOwner struct
2366 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2367 to bus_registry_ensure and don't set the prohibit_replacement flag
2368 since they are now set per BusOwner and not per name.
2369 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
2370 that returns the list of connections in a name's connection queue
2372 * bus/services.c (struct BusService): remove prohibit_replacement field
2373 (struct BusOwner): new struct for keeping track of queued connections
2374 and their associated flags for the queue
2375 (struct BusRegistry): add a BusOwner memory pool
2376 (bus_registry_new): initialize the BusOwner memory pool
2377 (bus_registry_unref): free the BusOwner memory pool
2378 (_bus_service_find_owner_link): new internal method for
2379 searching the queue for a specific connection
2380 (bus_owner_set_flags): new method for adding setting the flags on a
2382 (bus_owner_new): new method that creates a BusOwner object from the
2383 pool and sets its flags
2384 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2385 (bus_registry_ensure): Add the flags parameter
2386 (bus_registry_acquire_service): Switch from using raw connections to
2387 using the BusOwner struct
2388 Add new state machine for dealing with the new set of flags
2389 (bus_registry_set_service_context_table, struct OwnershipCancelData,
2390 cancel_ownership, free_ownership_cancel_data,
2391 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
2392 restore_ownership, free_ownership_restore_data,
2393 add_restore_ownership_to_transaction): Switch to using BusOwner
2394 instead of raw connections
2395 (bus_service_add_owner): Add flags parameter
2396 Switch to using BusOwner instead of raw connections
2397 Add state machine for dealing with the new set of flags
2398 (bus_service_swap_owner): Swaps the first and second owners in the
2399 queue. Used to make sure proper signals are sent when a service looses
2400 or gains primary ownership. We never insert an owner at the top of the
2401 queue. Instead we insert it in the second position and then swap.
2402 (bus_service_remove_owner): Remove the owner from the queue sending
2403 out the NameLost and NameOwnerChanged signals if the we were the
2405 (bus_service_get_primary_owners_connection): New method that extracts
2406 the connection from the primary owner
2407 (bus_service_get_primary_owner): Returns the BusOwner instead of the
2409 (bus_service_get_allow_replacement): Changed from the old
2410 bus_service_get_prohibit_replacement method. Checks the flags of the
2411 primary owner and returns if it can be replaced or not
2412 (bus_service_set_prohibit_replacement): removed
2413 (bus_service_has_owner): returns TRUE if and owner with
2414 the specified connection exists in the queue
2416 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2417 method that only compiles if tests are enabled. Allows us to get the
2418 unique name of a connection so we can check it against the queue when
2419 doing regression tests
2421 * bus/activation.c (bus_activation_send_pending_auto_activate),
2422 bus/dispatch.c (bus_dispatch),
2423 bus/driver.c (bus_driver_handle_get_service_owner,
2424 bus_driver_handle_get_connection_unix_user,
2425 bus_driver_handle_get_connection_unix_process_id,
2426 bus_driver_handle_get_connection_selinux_security_context),
2427 bus/signals.c (connection_is_primary_owner):
2428 use bus_service_get_primary_owners_connection instead of
2429 bus_service_get_primary_owner
2431 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
2432 _dbus_listen_unix_socket): Calculate the length of the socket
2433 path and use that instead of using a fixed length which was
2434 causing socket names to contain many trailing Nul bytes.
2436 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2437 (dbus_g_method_get_sender): New method for extracting the sender
2438 from a DBusGMethodInvocation
2439 (dbus_g_method_return_get_reply): changed name to
2440 dbus_g_method_get_reply
2441 (dbus_g_method_return_send_reply): changed name to
2442 dbus_g_method_send reply
2444 * doc/dbus-specification.xml: New docs that describe how the new
2445 queueing system works and talks about the changes to the how
2446 we specify socket names
2448 * glib/examples/example-service.c,
2449 glib/examples/example-signal-emitter.c,
2450 glib/examples/statemachine/statemachine-server.c:
2451 Changed the RequestName flags to the new system
2453 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2454 regression test suite for testing various states of the new
2457 2005-11-15 Robert McQueen <robot101@debian.org>
2459 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2460 Taylor to add two methods, dbus_g_method_return_get_reply and
2461 dbus_g_method_return_send_reply, to allow you to get the reply
2462 message from a DBusGMethodInvocation, append arbitrary stuff to it,
2463 and send it. The GLib bindings can't marshal a return value of
2464 something like a(s) if the array is empty - ultimately they should be
2465 made to heed the signature of the out arguments as the Python bindings
2466 now can, but this is a workable interim solution which might have
2469 2005-11-15 Robert McQueen <robot101@debian.org>
2471 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2472 method to org.freedesktop.DBus to release a bus name or give up
2473 waiting in the queue for it.
2475 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2476 dbus_bus_release_name method to send the ReleaseName method calls.
2477 Add constants for the return values to dbus/dbus-shared.h.
2479 * doc/dbus-specification.xml: Document the new ReleaseName method
2480 in the specification.
2482 * python/dbus_bindings.pyx: Add a low-level python binding for the
2483 release name method.
2485 * python/exceptions.py, python/service.py: Make freeing BusName
2486 objects release the name. Add a NameExistsException, and fix a
2487 bug with creating UnknownMethodException.
2489 * test/python/test-client.py: Add tests for freeing BusName
2490 objects causing names to be released.
2492 2005-11-14 Robert McQueen <robot101@debian.org>
2494 * python/service.py: Include the traceback in the error reply when we
2495 send an exception over the bus. _BEST_ _PATCH_ _EVER_
2497 2005-11-14 David Zeuthen <davidz@redhat.com>
2499 Patch from Timo Hoenig <thoenig@suse.de>.
2501 * bus/bus.c: I've recently investigated why the automatic reload
2502 of configuration files does not work as expected.
2504 Currently, reloading configuration files does only work when
2505 running dbus-daemon with --nodaemon. If we are running as daemon
2506 we're hitting a dnotify bug once we fork the process.
2508 We're initializing the dnotify fds before calling fork(). Once
2509 the child process forked it does still have the fds (and they
2510 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2511 getting SIGIO as changes are made to the configuration files.
2513 The attached patch moves the initialization of the dnotify fds to
2514 process_config_postinit(). This is safe for all current code
2515 paths and solves the dnotify disfunction. If we're running
2516 dbus-daemon as daemon the fds for dnotify are now being
2517 initialized after fork() for the child process.
2519 * configure.in: The current configure.in check for dnotify probes
2520 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
2521 match for 'xlinux', too. Additionally I have adapted the configure
2522 option's style to match with the others.
2524 2005-11-14 Robert McQueen <robot101@debian.org>
2526 * python/decorators.py, python/service.py: Add a new argument to the
2527 dbus.service.method decorator called sender_keyword, which if set,
2528 specifies the name of an argument which will be provided the bus
2529 name of the method caller.
2531 * test/python/test-client.py, test/python/test-service.py: Add a
2532 method and test to check the sender_keyword functionality.
2534 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
2536 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
2537 empty reply so blocking calls don't block forever (Patch from Sjoerd
2538 Simons <sjoerd at luon.net>)
2540 * AUTHORS: Add Robert McQueen for his work on the Python
2541 Bindings and other parts of D-Bus
2543 2005-11-07 Robert McQueen <robot101@debian.org>
2545 * python/decorators.py: Change emit_signal function to use the
2546 signature annotation of the signal when marhsalling the arguments from
2547 the service. Fix a bug where the code checking signature length
2548 against argument length referenced the wrong variable.
2550 * python/introspect_parser.py: Avoid adding the type signature of
2551 signal arguments to any methods which occur after them in the
2552 introspection data (!) by making the parser a little more careful
2553 about its current state.
2555 * python/service.py: Remove debug prints from last commit (again :D).
2557 * test/python/test-client.py, test/python/test-service.py: Add test
2558 signals with signature decorators to test the strict marshalling code
2559 gives errors at the right time. Could do with checking the signals
2560 actually get emitted too, given that the test does nothing with
2561 signals at the moment...
2563 2005-11-07 Robert McQueen <robot101@debian.org>
2565 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2566 instances to stop madness of creating new instances representing
2567 the same bus connection all the time, rendering any tracking of
2568 match rules and bus names quite meaningless. Caught a bug where
2569 the private argument to SessionBus() and friends was being passed
2570 in as use_default_mainloop by mistake. Still some problems with
2571 multiple dbus_binding.Connection instances representing the same
2572 low-level connection (eg when you use both SessionBus() and
2573 StarterBus() in same process), but it's a lot better now than it
2576 * python/dbus_bindings.pyx: Add constants with the return values
2577 for bus_request_name().
2579 * python/service.py: Store bus name instances in a per-dbus.Bus cache
2580 and retrieve the same instances for the same name, so deletion can be
2581 done with refcounting. Also now throws some kind of error if you
2582 don't actually get the name you requested, unlike previously...
2584 * test/python/test-client.py: Add tests for instance caching of buses
2585 and bus name objects.
2587 2005-11-04 Robert McQueen <robot101@debian.org>
2589 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2590 marshalling of boolean values. Add some booleans to the values in
2593 * python/decorators.py, python/service.py: Add an 'async_callbacks'
2594 argument to the dbus.service.method decorator, which allows you to
2595 name arguments to take two callback functions for replying with
2596 return values or an exception.
2598 * test/python/test-client.py, test/python/test-service.py: Add test
2599 case using asynchronous method reply functions, both return values and
2600 errors, and from within both the function itself and from a mainloop
2603 * python/decorators.py, python/service.py: Perform checking that the
2604 number of method/signal arguments matches the number of types in the
2605 signature at class loading time, not when you first introspect the
2608 * python/service.py: Remove debug print left by the last commit.
2610 2005-11-03 Robert McQueen <robot101@debian.org>
2612 * python/service.py: Heavy refactoring of method invocation, with
2613 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2614 in favour of a new _message_cb that uses seperate functions for
2615 looking up the method to call, marshalling the return values, and
2616 sending exceptions as errors, and is easier to follow as a
2617 consequence. Fixes some corner cases about returning things that
2618 don't match your declared out_signature, allows exceptions to define
2619 _dbus_error_name and have it be sent over the bus as the error name,
2620 and paves the way for cool stuff like heeding the message no reply
2621 flag, asynchronous method implementations, informing the method of the
2622 sender, and including backtraces in the error messages.
2624 * test/python/test-client.py: Catch and print exceptions thrown in the
2625 async callback tests, rather than passing them to the low-level
2626 bindings to be ignored in a noisy and frustrating manner.
2628 2005-11-03 Robert McQueen <robot101@debian.org>
2630 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2631 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2632 tweak others to be consistent.
2634 * test/python/test-client.py: Tweak output of testInheritance.
2636 2005-10-29 Robert McQueen <robot101@debian.org>
2638 * python/service.py: Major changes to allow multiple inheritance
2639 from classes that define D-Bus interfaces:
2641 1. Create a new Interface class which is the parent class of
2642 Object, and make the ObjectType metaclass into InterfaceType.
2644 2. Patch written with Rob Taylor to replace use of method_vtable
2645 with code that walks the class's __MRO__ (method resolution order)
2646 to behave like Python does when invoking methods and allow
2647 overriding as you'd expect. Code is quite tricky because
2648 we have to find two methods, the one to invoke which has the
2649 right name and isn't decorated with the /wrong/ interface,
2650 and the one to pick up the signatures from which is decorated
2651 with the right interface.
2653 The same caveats apply as to normal multiple inheritance -
2654 this has undefined behaviour if you try and inherit from two
2655 classes that define a method with the same name but are
2656 decorated with different interfaces. You should decorate
2657 your overriding method with the interface you want.
2659 3. Replace grungy introspection XML generation code in the metaclass
2660 with dictionaries that cope correctly with multiple inheritance
2661 and the overriding of methods. This also uses the signature
2662 decorations to provide correct introspection data, including
2663 the debut appearance of the types of your return values. :D
2665 * test/python/test-client.py, test/python/test-service.py: Add a test
2666 case to try invoking an method that overrides one inherited from a
2667 D-Bus interface class.
2669 2005-10-29 Robert McQueen <robot101@debian.org>
2671 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2672 Add checking for the end of struct character when marshalling a
2673 struct in MessageIter.append_strict.
2675 * python/examples/example-service.py,
2676 python/examples/gconf-proxy-service.py,
2677 python/examples/gconf-proxy-service2.py: Update to use gobject
2678 mainloop directly rather than appearing to depend on gtk.
2680 * python/test/test-client.py, python/test/test-server.py: Remove
2681 obsolete and broken test scripts for old bindings. We have up to date
2682 and working tests in test/python/.
2684 2005-10-29 Robert McQueen <robot101@debian.org>
2686 * python/decorators.py: Add optional arguments to the method and
2687 signal decorators to allow you to specify the signature of arguments
2688 and return values. Preserve the doc strings of signal functions in the
2689 decorated version, for pydoc and friends.
2691 * python/dbus_bindings.pyx, python/proxies.py: Replace the
2692 parse_signature_block function with an iterable dbus.Signature()
2693 type. Fix a bug in MessageIter.append_strict where you could append
2694 anything by claiming it was a string.
2696 * python/service.py: Use the out_signature decoration on methods to
2697 marshal return values, meaning you no longer require dbus.Array()
2698 or dbus.Dictionary() to indicate the type when returning empty
2699 arrays or dictionaries. Fix a bug where exceptions which are defined
2700 in __main__ are not turned into error replies.
2702 * test/python/test-client.py, test/python/test-service.py: Add test
2703 for correct marshalling of return values according to out_signature.
2704 Fix a bug in the async call test where the error_handler is missing a
2707 2005-10-29 Robert McQueen <robot101@debian.org>
2709 * glib/Makefile.am, glib/examples/Makefile.am,
2710 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2711 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2713 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2715 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2716 from Ubuntu by Daniel Silverstone to allow specifying match rules on
2719 2005-10-27 Ross Burton <ross@openedhand.com>
2721 * dbus/dbus-marshal-header.c:
2724 * glib/dbus-gobject.c:
2725 Stop compiler warning.
2727 2005-10-25 Ross Burton <ross@openedhand.com>
2730 * dbus/dbus-server-unix.c:
2731 * dbus/dbus-transport-unix.c:
2732 * glib/dbus-gmain.c:
2733 * glib/dbus-gobject.c:
2734 Add some const keywords.
2736 2005-10-25 Ross Burton <ross@openedhand.com>
2738 * doc/dbus-specification.xml:
2739 Document the NoReply annotation.
2741 * glib/dbus-binding-tool-glib.h:
2742 * glib/dbus-binding-tool-glib.c:
2743 Respect the NoReply annotation.
2745 2005-10-24 Robert McQueen <robot101@debian.org>
2747 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2748 derive from unicode instead of str, and encode/decode UTF-8 when
2749 marshalling/unmarshalling bus messages
2751 * python/introspect_parser.py: encode introspection data as UTF-8
2752 before passing the buffer into libxml2
2754 * test/python/test-client.py: add unicode test strings
2756 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2757 ignore generated python test files
2759 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
2761 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2762 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2763 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2765 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2766 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2767 when constructing struct signatures
2769 * python/_dbus.py (Bus): handle private connections using the
2770 private keyword in the constructor. defaults to private=False
2771 (Bus::close): new method to close a connection to the bus
2773 * python/dbus_bindings.pyx (Connection::close): renamed method
2774 was previously called disconnect
2775 (bus_get): now supports getting a private connection
2777 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2778 keyword is set to True. if it is, execute the method without waiting
2780 (ProxyObject::_introspect_execute_queue): new method for executing
2781 all the pending methods that were waiting for the introspect to
2782 finish. this is called when introspect either succeeds or fails
2783 (ProxyObject::_introspect_error_handler): call queued methods
2785 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
2787 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2788 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2790 * python/service.py (Object::_message_cb): handle exceptions correctly
2791 by sending them over the wire to the calling app. This makes sure
2792 the client returns immediately instead of waiting the 15 seconds to
2795 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
2796 Add a test to benchmark how long it takes to introspect a service and
2797 call a method which returns a large element (pretty fast)
2799 * test/python/test-service.py (TestObject::GetComplexArray): new test
2800 method which pushes a lot of data
2802 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2804 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
2805 reclaim memory outside of the loop and use del istead of just setting
2808 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2810 * python/service.py (ObjectType::_reflect_on_signal): Always close
2811 signal tag even when there are no arguments
2813 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2815 * configure.in: Set mono, mono-docs and Qt3 to default
2816 to no instead of auto when building. These bindings do not
2817 have full time maintainers and will not be supported for the
2820 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
2822 patches from Michael Krivoruchko <misha at sun.com>:
2824 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2825 _dbus_connection_message_sent,
2826 _dbus_connection_send_preallocated_unlocked_no_update,
2827 _dbus_connection_pop_message_link_unlocked): handle the case when path
2828 is NULL when calling _dbus_verbose
2830 * configure.in: check for functions getpeerucred and getpeereid
2832 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
2833 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
2834 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
2835 Patch was only tested on Solaris 10 x86 so it might be issues
2836 with other platforms (i.e. BSDs and MacOSX)
2839 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
2841 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
2842 instead of marshal basic so we can handle recursive types in a variant
2844 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2847 * test/glib/test-service-glib.c, test-service-glib.xml
2848 (my_object_echo_variant [EchoVariant],
2849 my_object_process_variant_of_array_of_ints123
2850 [ProcessVariantOfArrayOfInts123]):
2851 Add two test methods
2853 * python/introspect_parser.py: New module for parsing introspect
2856 * python/dbus_bindings.pyx:
2857 (various places): when throwing errors fix to use errormsg instead
2858 of message local variable because Pyrex can get confused with other
2859 message variables (initial patch by Robert McQueen
2860 <robert.mcqueen at collabora.co.uk>)
2861 (MessageIter::parse_signature_block): new method for getting the next
2862 block in a signiture.
2863 (MessageIter::append_strict): new method for appending values strictly
2864 using the passed in signature instead of guessing at the type
2865 (MessageItter:: append_dict, append_struct, append_array): use
2866 signatures to marshal children if the signature is available
2868 * python/exceptions.py (IntrospectionParserException): new exception
2870 * python/proxies.py (ProxyMethod::__call__): Marshal args with
2871 introspected signatures if available, else we fall back to the
2872 old way of doing things.
2873 (ProxyObject::_introspect_reply_handler ): parse introspection data
2875 * python/service.py (ObjectType::_reflect_on_method): Properly
2876 terminate <method> if there are no args in the reflection data
2878 * test/python/test-client.py: add tests for talking with the GLib
2879 test server. This gives us better coverage for introspection since
2880 python to python will always generate arguments as variants. It also
2881 allows us to test the robustness of the GLib bindings and interlanguage
2885 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
2887 * bus/driver.c (bus_driver_handle_introspect): Add signals
2888 to the introspect data. (patch from Daniel P. Berrange
2889 <dan at berrange.com>)
2891 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2893 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2894 _dbus_connection_run_builtin_filters): Changed these to
2895 be unlock_no_update functions and call
2896 _dbus_connection_send_unlocked_no_update instead of
2897 dbus_connection_send to avoid locking errors.
2899 * doc/TODO: Removed the make Ping test TODO
2901 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2903 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2904 We now copy the message from a DBusError and then free
2905 the error object befor throwing the error
2907 * glib/dbus-glib-tool.c: removed extra comma at the end of the
2908 DBusBindingOutputMode enum which was causing a warning.
2909 #include <time.h> so using time_t is explicitly defined
2911 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2913 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2915 (internal_bus_get): new method that take over the heavy lifting
2916 of dbus_bus_get and adds the ability to get a private connection
2918 (dbus_bus_get): wrapper to internal_bus_get that provides the same
2919 interface as in previous versions
2920 (dbus_bus_get_private): new method that is a wrapper to
2921 internal_bus_get to get a private connection to the bus
2924 (dbus_bus_get_private): add as a public libdbus interface
2926 - dbus-1.pc.in: output system_bus_default_address and
2927 sysconfdir variables so apps can use them when compiling
2929 2005-09-23 Harald Fernengel <harry@kdevelop.org>
2930 * dbus/qt: New Qt bindings
2932 2005-09-12 Waldo Bastian <bastian@kde.org>
2934 * dbus/dbus-marshal-validate.c,
2935 doc/dbus-specification.xml, test/Makefile.am,
2936 test/test-names.c: allow hyphens in bus names.
2938 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2940 * test/data/auth/fallback.auth-script: we don't
2941 retry the EXTERNAL method when we know its going
2944 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2946 * dbus/dbus-connection-internal.h: rename
2947 (add|remove|toggle)_(watch|timeout) to unlocked()
2949 * dbus/dbus-connection.c: ditto.
2951 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2952 Update some callers for the renaming.
2954 2005-09-10 Mark McLoughlin <mark@skynet.ie>
2956 * dbus/dbus-auth.c: (record_mechanisms): don't
2957 retry the first auth mechanism because we know
2958 we're just going to get rejected again.
2960 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2961 Fix thinko ... and what a nasty little bugger to
2962 track down you were ...
2964 * dbus/dbus-connection.c:
2965 (_dbus_connection_add_watch),
2966 (_dbus_connection_remove_watch): add note about
2967 these needing the connection to be locked.
2968 (_dbus_connection_get_dispatch_status_unlocked):
2969 set status to DATA_REMAINS when we queue the
2970 disconnected message.
2973 (bus_dispatch): fix warning.
2974 (check_existent_service_no_auto_start):
2975 Expect ChildSignaled error too.
2976 (check_existent_hello_from_self): fix another
2979 2005-09-08 Joe Shaw <joeshaw@novell.com>
2981 Patches from James Willcox <snorp@snorp.net>
2983 * mono/Makefile.am: Add Int16.cs and UInt16.cs
2985 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2986 support array "out" parameters.
2988 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2989 for 16-bit int support.
2991 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
2995 * Patch from Steve Grubb:
2996 - bus/activation.c (bus_activation_service_reload_test): clean up
2998 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
2999 - dbus/dbus-message-factory.c (generate_special): fix a couple of
3000 buffer overflows in the test suite. This is non critical because
3001 it can not be exploited and this code is only run when doing a
3004 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3005 - configure.in: Don't check and link against kdecore, only qt headers
3006 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3007 - gcj/org/freedesktop/dbus/Makefile.am:
3008 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3009 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3010 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3011 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3012 - tools/Makefile.am: Add platform extentions to binaries
3013 (i.e. .exe on windows)
3016 - Make it so if no suitable version of python is found we only
3017 disable building python instead of exiting the configure script
3018 - Require version 2.4 of glib for glib bindings
3019 - Up version to 0.50
3021 * python/__init__.py: Sync version with libdbus to (0,50,0)
3023 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3025 * dbus/dbus-object-tree.c (find_subtree_recurse):
3026 a couple of optimizations (bug #710):
3027 - do a binary search in the tree
3028 - insert a new child at the right place directly, no need for
3030 - do the "double alloc" thing when allocating children
3032 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
3034 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3036 * python/dbus_bindings.pyx: Memory management foo
3037 (global): remove hacky _user_data_references global list
3038 (GIL_safe_cunregister_function_handler): userdata now stuffed into
3039 tuples. Unref user_data
3040 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3041 (Connection::__del__): Remove and replace with __dealloc__ method
3042 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
3043 to keep tuple from being deallocated instead of the global var hack
3044 (Connection::register_object_path): Stuff user_data into a tuple.
3045 Use Py_INCREF to keep tuple from being deallocated instead of the
3047 (Connection::register_fallback): Stuff user_data into a tuple.
3048 Use Py_INCREF to keep tuple from being deallocated instead of the
3050 (GIL_safe_pending_call_notification): Don't unref the message
3051 because it gets unreffed when going out of scope. Py_XDECREF
3053 (PendingCall::__del__): Remove and replace with __dealloc__ method
3054 (PendingCall::set_notify): ref the pending call because we will
3055 need it to stick around for when the notify callback gets called
3056 (Message::__del__): Remove and replace with __dealloc__ method
3058 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
3059 gthreads_init to match up with the dbus call
3061 * python/glib.py (init_threads): Changed to threads_init to match
3062 up with gobject.threads_init(). init_threads is kept for backwards
3063 compat but will most likely be deprecated in the future
3065 * test/python/test-client.py:
3066 - revamp to use Python's unittest functionality
3067 - add async call tests
3068 - setup threads in glib and dbus so we make sure locks are working
3070 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3072 * python/dbus_bindings.pyx
3073 (_pending_call_notification, cunregister_function_handler,
3074 cmessage_function_handler): All callback functions have been rearranged
3075 to workaround a bug in Pyrex when working with the GIL which is Python's
3076 global lock when dealing with threads. They have been split into
3077 a wrapper function (which assumes the name of the old function) and
3078 a _GIL_safe_<function name> function which contains the functionality
3079 of the old function. This ensures that Pyrex does not write code
3080 the lock is released.
3083 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3085 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3086 GIL global lock when calling back into Python
3088 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
3092 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3094 * bus/policy.c (bus_policy_allow_user): change default "user is
3095 allowed" to be "user has same uid as the bus itself"; any
3096 allow/deny rules will override.
3098 * bus/session.conf.in: don't allow all users, since now by default
3099 the user that ran the bus can connect.
3101 2005-08-26 Colin Walters <walters@verbum.org>
3103 * tools/dbus-print-message.c (print_message): Flush stdout
3104 after printing a message, so that redirecting to a file, then
3105 hitting Ctrl-C works.
3107 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
3109 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3110 (EmptyMessage): new class that subclasses Message. This is a workaround
3111 to a Pyrex bug that fails to call __del__ when the Message object goes out
3112 of scope. For some reason subclassing Message fixes this bug
3113 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3114 - s/Message(_create=0)/EmptyMessage everywhere else
3116 * test/python/test-{server|client}.py: add the python/.libs directory
3117 to the lookup path so dbus_bindings and dbus_glib_bindings don't
3118 get picked up from the system
3120 2005-08-25 Colin Walters <walters@verbum.org>
3122 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3123 to Ryan Lortie for the suggestion.
3125 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3127 * test/python: Add python regression test
3129 * configure.in: Add test/python/Makefile
3131 * test/Makefile.am: Add the python directory to SUBDIRS
3133 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3138 (Interface::connect_to_signal): propigate keywords for match on args
3139 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3141 * python/proxies.py (ProxyObject::connect_to_signal):
3142 propigate keywords for match on args
3144 * Makefile.am: point everything to pyexecdir since python borks
3147 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3151 2005-08-23 Colin Walters <walters@verbum.org>
3153 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3155 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3157 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3158 to fix some wranings. We now use dbus_bindings.DBusConnection instead
3159 of defining DBusConnection ourselves.
3161 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
3163 * python/dbus.pth: New path file to fix up problems when installing
3164 c libraries to lib64 and python files to lib.
3166 * python/Makefile.am: install dbus.pth in the correct spot
3168 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
3169 * ChangeLog: clean up my last entry a bit
3171 * doc/introspect.xsl: New stylesheet for converting introspection data
3172 into browser renderable xhtml. Contributed by Lennart Poettering.
3174 * doc/introspect.dtd: Fixups in the introspect format from Lennart
3177 * doc/dbus-tutorial.xml:
3178 - Add Colin Walter to the Authors section for authoring the GLib
3180 - Add descriptions of the new signature and type functionality
3181 in the Python complex type mapping section
3182 - Add a sidenote on the new args matching functionality in
3184 - Fixed up some of the examples to use the gobject.MainLoop
3188 (Bus::_create_args_dict): New. Converts a hash of arg matches
3189 to a more useable format
3190 (Bus::add_signal_receiver): add a **keywords parameter for catching
3191 arg match parameters
3192 (Bus::remove_signal_receiver): add a **keywords parameter for catching
3193 arg match parameters
3195 * python/matchrules.py:
3196 (MatchTree::exec_matches): Check for arg matches
3197 (SignalMatchRule::add_args_match): New method
3198 (SignalMatchRule::execute): Added args_list parameter as an optimization
3199 so we don't have to marshal the args more than once
3200 (SignalMatchRule::match_args_from_list): New method that checks to see
3201 if the rule's arg matches match an argument list. Only arguments
3202 set in the rule are checked.
3203 (SignalMatchRule::match_args_from_rule): New method that checks to see
3204 if the rule's arg matches match another rule's. All args have to match
3205 in order for this method to return true. If either rule has more args
3206 then it is not a match.
3207 (SignalMatchRule::is_match): Add args match
3208 (SignalMatchRule::repr): Add args to the final output if they exist
3210 2005-08-17 Ross Burton <ross@burtonini.com>
3212 * glib/dbus-gproxy.c:
3213 (dbus_g_proxy_call_no_reply): unref the message once sent.
3214 (dbus_g_proxy_call): protect against NULL proxy.
3216 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
3218 * python/__init__.py: Version updated (0, 43, 0)
3220 * python/dbus_bindings.pyx:
3221 - Fixed type objects to have self passed into __init__
3222 - Added the Variant type
3223 - Add the ability to specify types or signatures for Array, Variant
3225 (Connection::send_with_reply_handlers): return a PendingCall object
3226 (_pending_call_notification): handle the case when an error is returned
3227 without an error message in the body
3228 (MessageIter::get_boolean): return True or False instead of an integer
3229 (MessageIter::python_value_to_dbus_sig): add direct checking of types
3230 and add checks for objects with embeded signatures or types (Array,
3231 Variant and Dictionary)
3232 (MessageIter::append_byte): handle case when the value is a dbus.Byte
3233 (MessageIter::append_dict): handle embeded types or signatures
3234 (MessageIter::append_array): handle embeded types or signatures
3235 (MessageIter::append_variant): new method
3237 * python/proxies.py:
3238 (DeferedMethod): New. Dummy executable object used when queuing calls
3239 blocking on introspection data
3240 (ProxyMethod::__call__): add the timeout keyword for specifying longer
3241 or shorter timeouts for method calls
3242 (ProxyObject): Add first pass at an introspection state machine
3243 (ProxyObject::__init__): Add introspect keyword for turing off an on
3245 (ProxyObject::_Introspect): Internal Introspect call that bypasses
3246 the usual mechanisms for sending messages. This is to avoid a deadlock
3247 where the Intospect call would be queued waiting for the Introspect
3249 (ProxyObject::_introspect_reply_handler): New. This method is called
3250 when introspection returns with no error
3251 (ProxyObject::_introspect_error_handler): New. This method is called
3252 when introspection encounters an error
3253 (ProxyObject::__getattr__): Code to handle different introspection
3254 states. Queue async calls or block blocking calls if we are
3255 introspecting. Pass through as normal if we are not or are done with
3258 * python/service.py: Import signal and method from decorators.py
3260 * python/types.py: Add Variant type
3262 2005-08-16 Colin Walters <walters@verbum.org>
3264 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3265 DBusError message is NULL.
3267 2005-08-09 Havoc Pennington <hp@redhat.com>
3269 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3270 malloc'd copy of the name parameter
3272 2005-08-09 Havoc Pennington <hp@redhat.com>
3274 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3275 warning if the reply serial is set to 0
3277 2005-08-04 Colin Walters <walters@verbum.org>
3279 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3280 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3281 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3282 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3283 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3284 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3285 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3286 * glib/dbus-gvalue.h (dbus_g_value_types_init)
3287 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3288 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3290 Prefix name with _ to ensure they're not exported. All callers
3293 * glib/dbus-gvalue.c (typecode_to_gtype)
3294 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3295 (signature_iter_to_g_type_dict)
3296 (signature_iter_to_g_type_array)
3297 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3298 (dbus_gtypes_from_arg_signature):
3299 Move to dbus-gsignature.c.
3301 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3302 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3303 (dbus_binding_tool_output_glib_client): Ditto.
3305 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3306 and dbus-gsignature.h
3308 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3311 2005-08-03 Colin Walters <walters@verbum.org>
3313 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3314 catch any incompatible changes accidentally made.
3316 2005-08-03 Havoc Pennington <hp@redhat.com>
3318 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3319 typo, from Julien Puydt
3321 * bus/connection.c (bus_connection_disconnected): we were always
3322 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3324 2005-08-01 Colin Walters <walters@verbum.org>
3326 Patch from Joe Markus Clarke:
3328 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3331 2005-08-01 Colin Walters <walters@verbum.org>
3333 Patch from Joe Markus Clarke:
3335 * tools/dbus-send.c (main):
3337 Don't use C99 style initializers (bug #3933).
3339 2005-08-01 Colin Walters <walters@verbum.org>
3341 Patch from Joe Markus Clarke:
3343 * glib/dbus-gvalue.c (dbus_g_value_types_init):
3344 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
3345 * glib/dbus-gobject.c (write_interface):
3347 Don't use C99 style initializers (bug #3933).
3349 2005-07-31 Havoc Pennington <hp@redhat.com>
3351 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3352 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3354 2005-07-30 Havoc Pennington <hp@redhat.com>
3356 * fix a bunch of Doxygen warnings and mistakes
3358 2005-07-30 Havoc Pennington <hp@redhat.com>
3360 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3361 DBUS_BUILD_TESTS since it's now used in production code
3363 2005-07-29 Havoc Pennington <hp@redhat.com>
3365 * test/glib/test-profile.c (write_junk): initialize the junk
3366 buffer so valgrind doesn't have a breakdown
3368 2005-07-29 Havoc Pennington <hp@redhat.com>
3370 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3371 (match_rule_matches): remove unused arg
3372 (test_matching): add tests for match_rule_matches()
3374 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3375 do arg0='foo' arg5='bar' in the match rules
3376 (match_rule_matches): don't match if the arg0='foo' doesn't match.
3378 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3380 2005-07-29 Ross Burton <ross@openedhand.com>
3382 * dbus/dbus-connection.c:
3383 Don't create a DBusCondVar which is never used.
3385 2005-07-27 Ross Burton <ross@openedhand.com>
3387 * dbus/dbus-message.c:
3388 Reduce the size of the maximum cached message to 10K.
3390 2005-07-25 Ross Burton <ross@openedhand.com>
3392 * glib/dbus-gproxy.c:
3393 Remove matches when all proxies are unregistered.
3395 2005-07-24 Colin Walters <walters@verbum.org>
3397 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3398 typedata; recursive arrays won't have it.
3400 * test/glib/test-dbus-glib.c:
3401 * test/glib/test-service-glib.c:
3402 * test/glib/test-service-glib.xml: Add recursive arrays tests.
3404 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
3406 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3407 proxies.py, service.py: Cleanup of code after running it through the
3408 pyflakes code checker mostly dealing with undefined names.
3409 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3411 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3413 * NEWS: Update to 0.35.2
3415 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3417 * python/_dbus.py: Remove import of the dbus.services
3418 module as it no longer exists (patch from Dimitur Kirov)
3420 * python/service.py (Object::__init__): Fixed typo
3421 s/name/bus_name (patch from Dimitur Kirov)
3423 * python/examples/example-signal-emitter.py: import dbus.glib
3424 to get the main loop and use glib mainloop instead of gtk so
3425 X doesn't have to be running.
3427 * python/examples/example-signal-recipient.py: import dbus.glib
3428 to get the main loop and use glib mainloop instead of gtk so
3429 X doesn't have to be running. Import the decorators module
3432 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
3433 didn't pick up on but are needed to build
3435 * configure.in: upped version to 0.35.2
3437 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3438 added Colin Walters' SELinux API rename patch from head
3439 s/unix sercurity context/selinux security context/
3441 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
3443 * python/Makefile.am: dbus_binding.pxd.in should be included
3444 in EXTRA_DIST not dbus_binding.pxd
3445 fix up $(srcdir) hopefully for the last time
3447 * NEWS: Update to 0.35.1
3449 2005-07-16 Colin Walters <walters@verbum.org>
3451 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3452 from bus_driver_handle_get_connection_unix_security_context. Update for
3454 (message_handlers): Update for renames.
3456 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3457 _dbus_string_init failure correctly.
3458 (bus_selinux_append_context): Convert SID to context. Append it
3460 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3463 * bus/selinux.h: Update prototype.
3465 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3466 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3468 2005-07-15 Colin Walters <walters@verbum.org>
3470 * doc/TODO: Add note about convenience wrappers.
3472 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3474 * NEWS: Update to 0.35
3476 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3478 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3479 so distcheck doesn't fail
3481 * glib/examples/Makefile.am: Add example-service.xml and
3482 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3484 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3485 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3487 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3488 compiler looks in the right places during distcheck
3490 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3492 * glib/example/Makefile.am: Fix a typo which cause make distcheck
3495 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3497 * python/examples/example-service.py,
3498 python/examples/example-signal-emitter.py: Fixed up examples
3501 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3503 * python/__init__.py: Upped to version (0,42,0) because of
3506 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3508 * ChangeLog: fix date in last entry
3510 * configure.in, bus/system.conf.in: add the ability to configure
3511 the system bus user at compiletime with the --with-dbus-user flag
3512 (patch from Kristof Vansant)
3514 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3516 * bus/dispatch.c, test/test-service.c: Add testcase
3517 for sending messages to oneself (TODO item).
3519 * python/service.py (class Object): Swap ordering of bus_name
3520 and object_path parameters to better support inheritance.
3522 * doc/dbus-tutorial.xml: change Python docs to reflect change
3523 in parameter ordering and fix the inheritance section.
3525 * doc/TODO: remove sending message to oneself TODO item
3527 2005-07-15 Ross Burton <ross@openedhand.com>
3529 * glib/dbus-gproxy.c:
3530 Fix a leak when calling methods via the proxy.
3532 2005-07-15 Colin Walters <walters@verbum.org>
3534 * bus/selinux.c (bus_selinux_append_context): Wrap in
3537 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3539 * python/_dbus.py (Bus::remove_signal_receiver):
3540 don't add a callback to the match if none has been passed in
3542 * python/matchrules.py (SignalMatchTree::remove): if the rule
3543 being matched does not have a callback treat it as a wildcard
3546 * doc/dbus-tutorial.xml: Add Python tutorial
3548 2005-07-14 Colin Walters <walters@verbum.org>
3551 (bus_driver_handle_get_connection_unix_security_context): New function.
3552 (message_handlers): Add.
3554 * bus/selinux.c (bus_selinux_append_context): New function; appends
3555 security context to message.
3557 * bus/selinux.h: Prototype.
3559 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3561 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3563 * bus/activation.c: clean up all tabs to be 8 spaces
3564 (bus_activation_activate_service): make sure we clean up
3567 * bus/dispatch.c: clean up all tabs to be 8 spaces
3568 (check_shell_fail_service_auto_start): New function
3569 tests to make sure we get fail properly when trying to auto start a service
3570 with a faulty command line
3571 (check_shell_service_success_auto_start): New function tests to make sure
3572 auto started services get the arguments on the command line
3574 * test/test-shell-service.c: Added service for testing auto-starting with
3575 command line arguments
3577 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
3578 test/data/valid-service-files/debug-shell-echo-success.service.in:
3579 Added service files for testing auto-starting with command line arguments
3581 * */.cvsignore: added a bunch of generated files to various .cvsignore files
3583 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
3585 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3587 * dbus/Makefile.am: added new files to build.
3589 * bus/activation.c (bus_activation_activate_service): support
3590 activation commands with parameters.
3592 * test/shell-test.c: added test program for the shell parsing
3595 2005-07-13 David Zeuthen <davidz@redhat.com>
3597 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3598 64 bit signed and unsigned parameters
3600 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
3602 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3604 * python/service.py (class Name): renamed BusName to make it clearer
3605 what the object is for (a name on the bus)
3607 * python/examples/example-service.py,
3608 python/examples/example-signal-emitter.py: change the Name object to
3611 2005-07-12 Colin Walters <walters@verbum.org>
3613 Patch from Jim Gettys <Jim.Gettys@hp.com>.
3615 * tools/dbus-launch.c: Include sys/select.h.
3617 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
3618 * python/dbus_bindings.pyx.in: removed
3620 * python/dbus_bindings.pyx: Added.
3621 - Fixed some memleaks (patch from
3622 Sean Meiners <sean.meiners@linspireinc.com>)
3623 - Broke out the #include "dbus_h_wrapper.h" and put it in its
3624 own pxd file (Pyrex definition)
3625 - Broke out glib dependancies into its own pyx module
3627 * python/dbus_bindings.pdx: Added.
3628 - Defines C class Connection for exporting to other modules
3630 * python/dbus_glib_bindings.pyx: Added.
3631 - New module to handle lowlevel dbus-glib mainloop integration
3633 * python/glib.py: Added.
3634 - Registers the glib mainloop when you import this module
3636 * python/services.py: Removed (renamed to service.py)
3638 * python/service.py: Added.
3639 - (class Server): renamed Name
3641 * python/__init__.py: Bump ro version (0,41,0)
3642 -don't import the decorators or service module
3643 by default. These now reside in the dbus.service namespace
3645 * python/_dbus.py (Bus::__init__): Add code run the main loop
3646 setup function on creation
3648 * python/examples/example-service.py,
3649 python/examples/example-signal-emitter.py: update examples
3651 * python/examples/gconf-proxy-service.py,
3652 python/examples/gconf-proxy-service2.py: TODO fix these up
3654 * doc/TODO: Addition
3655 - Added a Python Bindings 1.0 section
3656 - added "Add match on args or match on details to match rules"
3659 2005-07-12 Colin Walters <walters@verbum.org>
3661 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
3662 (statemachine-glue.h):
3663 * glib/examples/Makefile.am (example-service-glue.h)
3664 (example-signal-emitter-glue.h):
3665 * glib/Makefile.am (dbus-glib-error-switch.h):
3666 Add libtool --mode=execute so we use the built library instead
3667 of any installed one.
3669 2005-07-11 Colin Walters <walters@verbum.org>
3671 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3672 (dbus_g_value_types_init): Remove assertion.
3673 (dbus_g_value_get_g_type, dbus_g_value_open)
3674 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3675 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3676 functions related to DBusGValue. Now we marshal/demarshal
3677 structures as GValueArray.
3678 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3680 (signature_iter_to_g_type_array): Don't call
3681 signature_iter_to_g_type_struct.
3682 (signature_iter_to_g_type_struct): Delete.
3683 (dbus_gvalue_to_signature): Delete.
3684 (dbus_gvalue_to_signature): New function with same name as other
3685 one; we can convert structures to signatures.
3686 (demarshal_valuearray): New function.
3687 (get_type_demarshaller): Use it.
3688 (demarshal_recurse): Delete.
3689 (marshal_proxy): New function.
3690 (marshal_map): Warn if we can't determine signature from type.
3691 (marshal_collection_ptrarray): Ditto.
3692 (marshal_collection_array): Ditto.
3693 (get_type_marshaller): Use marshal_valuearray.
3694 (marshal_recurse): Delete.
3695 (_dbus_gvalue_test): Add some tests.
3697 * dbus/dbus-glib.h (struct _DBusGValueIterator):
3698 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3699 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3700 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3701 (dbus_g_value_free): Remove prototypes.
3703 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3706 * glib/examples/example-service.c:
3707 * glib/examples/example-client.c: Implement GetTuple.
3709 * test/glib/test-dbus-glib.c:
3710 * test/glib/test-service-glib.c:
3711 * test/glib/test-service-glib.xml: Add structure tests.
3713 2005-07-10 Colin Walters <walters@verbum.org>
3715 * doc/TODO: Knock off some GLib items with this patch.
3717 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
3718 (_dbus_gvalue_signals_error): New functions.
3720 * glib/dbus-gvalue-utils.h: Prototype them.
3722 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3723 and change to not output const/retval flags for input args. All
3725 (invoke_object_method): Refactor to handle return values. Add
3726 some more comments in various places. Remove debug g_print.
3728 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3730 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3732 (compute_gsignature): New function; refactored from code from
3733 compute_marshaller and compute_marshaller_name. Enhance to
3734 handle return values and async ops more cleanly. Update for
3735 async ops returning NONE instead of BOOLEAN.
3736 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3737 and output appropriate string.
3738 (generate_glue): Handle return value annotation. Also don't dump
3739 constness flag for input arguments.
3741 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3742 files shared between installed library and utilities.
3743 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3744 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3745 binding tool can access gtype utility functions.
3747 * test/glib/test-service-glib.c:
3748 * test/glib/test-service-glib.xml:
3749 * test/glib/test-dbus-glib.c: Add some tests for return values.
3751 2005-07-09 Colin Walters <walters@verbum.org>
3753 * glib/dbus-gparser.c (parse_annotation): Add annotations to
3754 argument if available, not method.
3756 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3757 (invoke_object_method): First, remove some redundant
3758 GValues (object_value, error_value) in favor of working on
3759 array directly. Second, rework constness to be less buggy.
3760 Now we iterate directly over the argument metadata instead
3761 of parallel iterating over output signature and metadata.
3763 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3765 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3766 annotation on input args.
3768 2005-07-09 Colin Walters <walters@verbum.org>
3770 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3773 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3776 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3777 (method_dir_signature_from_object_info): Handle arg_iterate change.
3778 (write_interface): Ditto.
3779 (lookup_object_info): Don't barf if format_version is > 0.
3780 (invoke_object_method): Handle arg constness.
3782 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3783 (arg_info_new): Create.
3784 (arg_info_unref): Destroy.
3785 (arg_info_get_annotations, arg_info_get_annotation)
3786 (arg_info_add_annotation): New functions.
3788 * glib/dbus-gidl.h: Prototype them.
3790 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3791 args, disallow them in properties.
3792 (parse_annotation): Handle arg annotations.
3794 * test/glib/test-service-glib.xml:
3795 * test/glib/test-service-glib.c: Update to make some methods
3798 2005-07-08 Colin Walters <walters@verbum.org>
3800 * test/glib/test-service-glib.xml:
3801 * test/glib/test-service-glib.c:
3802 * test/glib/test-dbus-glib.c: Test a{sv}.
3804 * glib/examples/statemachine/statemachine.c:
3805 * glib/examples/statemachine/statemachine-server.c:
3806 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3807 add progress bar, etc.
3809 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3810 needed anymore due to generic array/map marshalling.
3811 (dbus_g_value_types_init): Don't register basic arrays or the
3813 (dbus_gtype_from_signature_iter): Don't try to recurse into
3815 (dbus_gtype_to_signature): Check collection/map before type
3817 (demarshal_garray_basic): Renamed to demarshal_collection_array.
3818 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3819 generic map creation/append functions instead of hash table
3821 (get_type_demarshaller): Handle maps.
3822 (demarshal_collection): Dispatch on collection type to either
3823 demarshal_collection_ptrarray or demarshal_collection_array.
3824 (get_type_marshaller): Handle maps.
3825 (marshal_collection): Dispatch collection type to either
3826 marshal_collection_ptrarray or marshal_collection_array.
3827 (_dbus_gvalue_test): New test.
3829 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3830 (hash_free_from_gtype): Use it to free GValues.
3831 (hashtable_append): New function.
3832 (ptrarray_append): Fix prototype.
3833 (slist_append): Ditto.
3834 (_dbus_gvalue_utils_test): Extend tests.
3836 * glib/dbus-gtype-specialized.c
3837 (dbus_g_type_specialized_init_append): Renamed from
3838 dbus_g_type_specialized_collection_init_append. Remove const from
3839 value, since we steal it.
3840 (dbus_g_type_specialized_map_append): New function.
3842 * glib/dbus-gtype-specialized.h: Update prototypes.
3843 Add DBusGTypeSpecializedMapAppendFunc.
3845 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3848 * glib/dbus-gtest.h: Prototype it.
3850 2005-07-08 Ross Burton <ross@openedhand.com>
3853 Add DBysGAsyncData for the async bindings.
3855 * glib/dbus-binding-tool-glib.c:
3856 Re-enable the async bindings.
3858 * test/glib/test-dbus-glib.c:
3859 Add a test for the generated async bindings.
3861 2005-07-08 Colin Walters <walters@verbum.org>
3863 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3866 2005-07-08 Colin Walters <walters@verbum.org>
3868 * tools/Makefile.am: Kill of print-introspect in favor of using
3869 dbus-send --print-reply=literal.
3871 * test/glib/test-service-glib.xml:
3872 * test/glib/test-service-glib.c (my_object_get_objs): New test
3875 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3876 (main): Test GetObjs.
3878 * glib/examples/statemachine/Makefile.am:
3879 * glib/examples/statemachine/sm-marshal.list:
3880 * glib/examples/statemachine/statemachine-client.c:
3881 * glib/examples/statemachine/statemachine-server.c:
3882 * glib/examples/statemachine/statemachine-server.xml:
3883 * glib/examples/statemachine/statemachine.c:
3884 * glib/examples/statemachine/statemachine.h:
3885 * glib/examples/statemachine/statemachine.xml:
3889 * glib/examples/example-service.c (main): Move invocation
3890 of dbus_g_object_type_install_info earlier, to emphasize it
3891 should only be done once.
3893 * glib/examples/example-signal-emitter.c (main): Ditto.
3895 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3897 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3898 (dbus_gvalue_marshal): Update prototypes.
3900 * glib/dbus-gvalue.c: Update all marshalling functions to take
3901 const GValue instead of GValue.
3902 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3904 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3906 (dbus_gtype_to_signature): Handle generic collecitons and maps.
3907 Return a newly-allocated string.
3908 (demarshal_proxy, demarshal_object_path, demarshal_object)
3909 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3910 we get the wrong types from message.
3911 (get_type_demarshaller): New function, extracted from
3912 dbus_gvalue_demarshal.
3913 (demarshal_collection): New function, demarshals generic
3915 (dbus_gvalue_demarshal): Just invoke result of
3916 get_type_demarshaller. Throw error if we don't have one.
3917 (marshal_garray_basic): Abort on OOM.
3918 (get_type_marshaller): New function, extracted from
3919 dbus_gvalue_marshal.
3920 (collection_marshal_iterator, marshal_collection): New functions;
3921 implements generic marshalling for an iteratable specialized
3923 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3925 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3927 (ptrarray_value_from_gvalue): Ditto.
3928 (ptrarray_append, ptrarray_free): New functions.
3929 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
3930 (slist_append, slist_end_append, slist_free): New functions.
3931 (dbus_g_type_specialized_builtins_init): Add append fuctions
3932 for GPtrArray and GSList. Register GSList.
3933 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3935 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3937 (dbus_g_type_specialized_collection_init_append)
3938 (dbus_g_type_specialized_collection_append)
3939 (dbus_g_type_specialized_collection_end_append): Prototype.
3940 (DBusGTypeSpecializedCollectionVtable): Add append_func and
3943 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
3944 (dbus_g_type_specialized_collection_append)
3945 (dbus_g_type_specialized_collection_end_append): New functions.
3946 (dbus_g_type_map_value_iterate): Take const GValue.
3947 (dbus_g_type_collection_value_iterate): Ditto.
3949 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3950 _dbus_gvalue_utils_test.
3952 * glib/dbus-gtest.h: Prototype it.
3954 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3955 using uninitialized owner_list.
3956 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3958 (dbus_g_proxy_end_call_internal): Update to use error set
3959 from dbus_gvalue_demarshal instead of setting it here.
3960 (dbus_g_proxy_begin_call): Move return_if_fail here.
3962 * glib/dbus-gobject.c (write_interface): Update for
3963 dbus_gtype_to_signature returning new string.
3965 * configure.in: Add glib/examples/statemachine.
3967 2005-07-08 Joe Shaw <joeshaw@novell.com>
3969 * configure.in: Add a configure option, --with-console-auth-dir
3971 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3972 new setting. Patch from Kay Sievers.
3974 2005-07-06 Colin Walters <walters@verbum.org>
3976 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3977 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3978 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3979 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3980 Delete in favor of dbus_g_proxy_begin_call and
3981 dbus_g_proxy_cancel_call.
3982 (DBusGProxyCall, DBusGProxyCallNotify): New.
3983 (dbus_g_proxy_begin_call): Change prototype to take callback, user
3984 data, and destroy function. This replaces
3985 dbus_g_pending_call_set_notify.
3986 (dbus_g_proxy_cancel_call): Prototype.
3987 (DBusGAsyncData): Delete, shouldn't be needed anymore.
3989 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3991 (struct _DBusGProxyManager): Add bus_proxy member, which is an
3992 internal proxy for calls to the bus. Remove
3993 pending_nameowner_calls, now the internal proxy keeps track.
3994 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3995 pending_nameowner_calls.
3996 (got_name_owner_cb): Update prototype, and use
3997 dbus_g_proxy_end_call.
3998 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3999 (dbus_g_proxy_manager_register): Delete directly libdbus code in
4000 favor of using internal proxy.
4001 (dbus_g_proxy_manager_unregister): Update to use
4002 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4003 (dbus_g_proxy_init): Initialize pending calls map.
4004 (dbus_g_proxy_constructor): New.
4005 (dbus_g_proxy_class_init): Add get/set property functions,
4006 constructor, and add NAME, PATH, and INTERFACE properties.
4007 (cancel_pending_call): New function.
4008 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4010 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4011 (GPendingNotifyClosure): New structure.
4012 (d_pending_call_notify, d_pending_call_free): Moved here from
4014 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4016 (manager_begin_bus_call): New internal function for talking to
4018 (dbus_g_proxy_new): Construct object using GObjet properties.
4019 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4020 Create closure of same, and insert call into map of pending calls.
4021 (dbus_g_proxy_end_call_internal): Take call id instead of pending
4022 call. Look up pending call in current set. Remove it when we've
4024 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4025 (dbus_g_proxy_begin_call): Change API to take callback, user data,
4026 and destroy function directly.
4027 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4028 (dbus_g_proxy_call): Invoke with NULL callback.
4029 (dbus_g_proxy_cancel_call): New function, replaces
4030 dbus_g_pending_call_cancel.
4032 * glib/dbus-gparser.c (validate_signature): Fix call to
4035 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4036 New quark for attaching metadata to GType.
4037 (info_hash): Delete.
4038 (lookup_object_info): Look up using quark.
4039 (dbus_g_object_type_install_info): Check that a type is classed,
4040 not that it's an object. Also just install type data using quark
4041 instead of using global hash.
4043 * glib/dbus-glib.c (dbus_g_pending_call_ref)
4044 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4045 (GPendingNotifyClosure): Delete.
4046 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4047 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4049 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4050 client method generation until we can fix it...
4052 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4053 (load_from_service_thread_func): Ditto.
4055 * tools/dbus-names-model.c (struct NamesModel): Hold
4057 (have_names_notify): Update prototype, use
4058 dbus_g_proxy_cancel_call.
4059 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4061 * tools/dbus-monitor.c (filter_func): Update for print_message
4064 * test/glib/test-dbus-glib.c: Add more tests for async
4065 invocations. Update many begin_call/end_call pairs to just use
4068 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
4069 allows us to dump print-introspect.c.
4071 * tools/dbus-print-message.h (print_message): Add literal argument
4072 to print_message which is intended to allow printing arguments without
4073 metadata like "string=".
4075 * tools/dbus-print-message.c (print_iter): Add literal argument.
4076 (print_message): Allow printing string messages literally.
4078 2005-07-05 Colin Walters <walters@verbum.org>
4080 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4081 Remove value refcount leak, original patch from Jorn Baayen
4082 <jorn@openedhand.com>. Also remove useless extra value in favor
4083 of prepending to value array directly.
4085 2005-07-02 Colin Walters <walters@verbum.org>
4087 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4089 2005-07-01 Colin Walters <walters@verbum.org>
4091 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4093 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4094 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4095 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4096 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4098 2005-06-30 Colin Walters <walters@verbum.org>
4100 * test/glib/test-dbus-glib.c:
4101 * test/glib/test-service-glib.c:
4102 * test/glib/test-service-glib.xml: Update tests for new error
4103 setting bits, also add async tests (patch from Ross Burton).
4105 * test/glib/Makefile.am (test_service_glib_LDADD): Add
4106 DBUS_GLIB_THREADS_LIBS.
4108 * glib/dbus-gproxy.c (get_name_owner)
4109 (dbus_g_pending_call_end_valist): Ditto.
4111 * glib/dbus-gobject.c (error_metadata): New mapping from GError
4112 domain (GQuark) to DBusGErrorInfo.
4113 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4114 quark in error_metadata. Take message interface as default
4115 error message interface.
4116 (gerror_to_dbus_error_message): Pass message interface.
4117 (dbus_set_g_error): Resurrected.
4118 (dbus_g_error_info_free): New function.
4119 (dbus_g_object_type_install_info): Use g_type_class_ref instead
4120 of _peek to actually create the object class if it hasn't been
4122 (dbus_g_error_domain_register): New function.
4124 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4126 * glib/dbus-gparser.c (validate_signature): Ditto.
4128 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4129 (dbus_g_error_domain_register): Prototype.
4131 * glib/dbus-glib.c (dbus_g_error_set): Delete.
4134 2005-06-29 Colin Walters <walters@verbum.org>
4136 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
4137 DBUS_TYPE_G_OBJECT_PATH.
4139 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4140 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4141 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
4142 (dbus_g_object_path_get_g_type): New function.
4143 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4144 to DBUS_TYPE_G_OBJECT_PATH by default.
4145 (demarshal_proxy): Remove unused name variable.
4146 (demarshal_object_path, marshal_object_path): New functions.
4147 (demarshal_proxy_array, marshal_proxy_array): Delete.
4149 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4150 DBUS_TYPE_G_OBJECT_PATH to char *.
4151 (dbus_g_type_get_lookup_function): Map builtin
4152 DBUS_TYPE_G_OBJECT_PATH.
4154 * test/glib/test-dbus-glib.c
4155 * test/glib/test-service-glib.c (my_object_objpath):
4156 Adapt tests to new object path marshalling.
4158 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
4160 * configure.in: force check for Python >= 2.4
4162 2005-06-29 Colin Walters <walters@verbum.org>
4164 Patch from Ross Burton <ross@openedhand.com>
4166 * glib/dbus-gobject.c (invoke_object_method): Unset object
4167 value in all cases, not only in async case.
4169 2005-06-29 Colin Walters <walters@verbum.org>
4171 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4172 name_call for keeping track of any outgoing GetNameOwner call.
4173 Also add for_owner and associated.
4174 (struct _DBusGProxyManager): Add owner_names, which is hash table
4175 that maps a base name to a list of names it owns (that we're
4176 interested in). Add pending_nameowner_calls which is a list of
4177 all outstanding GetNameOwner; avoids us having to iterate over
4178 every proxy. Add unassociated_proxies which keeps track of name
4179 proxies with no associated name owner.
4180 (dbus_g_proxy_manager_unref): Destroy owner_names.
4181 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4183 (find_name_in_info, name_owner_foreach)
4184 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4185 (dbus_g_proxy_manager_monitor_name_owner)
4186 (dbus_g_proxy_manager_unmonitor_name_owner)
4187 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4188 New functions; they manipulate the owner_names mapping.
4189 (got_name_owner_cb): New function.
4190 (get_name_owner): New function, extracted from
4191 dbus_g_proxy_new_for_name_owner.
4192 (dbus_g_proxy_manager_register): For now we need to keep track of
4193 all NameOwnerChanged. Also if the proxy is for a name, if we
4194 don't already know the name owner, queue a new GetNameOwner
4195 request and add it to our list of unassociated proxies. Otherwise
4197 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4198 cancel any pending GetNameOwner call, etc.
4199 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
4200 the owner_names mapping to look up the current names for the
4201 signal source, and dispatch to any proxies for that name.
4202 (dbus_g_proxy_new): Initialize new members.
4203 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4204 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4205 (dbus_g_pending_call_end_valist): New function, extracted from
4206 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
4207 but want to use the GLib infrastructure. Also note how many
4208 arguments in reply were over.
4209 (dbus_g_pending_call_end): New function, just call
4210 dbus_g_pending_call_end_valist.
4211 (dbus_g_proxy_end_call_internal): Just call
4212 dbus_g_pending_call_end_valist.
4214 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4215 of builtin marshaller for STRING_STRING_STRING.
4217 * test/glib/test-dbus-glib.c:
4218 * test/glib/test-service-glib.c:
4219 * test/glib/test-service-glib.xml:
4220 Extend tests to cover name proxies, destruction of owner proxies,
4223 * glib/examples/example-signal-recipient.c
4224 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4226 * tools/dbus-send.c (main): Print D-BUS error name in addition
4229 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
4231 * python/dbus_bindings.pyx.in (cunregister_function_handler,
4232 cmessage_function_handler): Patch from
4233 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4234 by using the Py_GILState_Ensure/Release to synchronize with the
4237 2005-06-28 Ray Strode <rstrode@redhat.com>
4239 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4240 babysitter helper process on last unref, bug #2813.
4242 2005-06-27 Colin Walters <walters@verbum.org>
4244 * test/glib/test-dbus-glib.c:
4245 * test/glib/test-service-glib.c:
4246 * test/glib/test-service-glib.xml:
4247 Test hash table signal emitting.
4249 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4250 types to their fundamental basis types, since this is what
4251 marshallers operate on. Also add an entry for VOID__BOXED.
4252 (dbus_g_object_register_marshaller_array): Convert to fundamental.
4254 2005-06-26 Havoc Pennington <hp@redhat.com>
4256 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4259 2005-06-26 Colin Walters <walters@verbum.org>
4261 * glib/dbus-glib.c (dbus_set_g_error): Delete.
4262 (dbus_g_error_set): New public function from its ashes; used by
4263 both service-side method implementation and GLib bindings
4265 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4266 (_dbus_glib_test): Add some tests.
4268 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4270 * test/glib/test-service-glib.c (my_object_throw_error): Use
4273 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4274 errors thrown by dbus_g_error_set.
4276 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4278 * glib/dbus-gparser.c (validate_signature): Ditto.
4280 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
4281 (dbus_g_proxy_end_call_internal): Ditto.
4283 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4284 converts DBUS_ERROR_x to DBUS_GERROR_x.
4285 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4287 * doc/TODO: Remove error TODO.
4289 * doc/dbus-tutorial.xml: Update with documentation about error
4292 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4293 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4294 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
4296 2005-06-22 Colin Walters <walters@verbum.org>
4298 Patch from Ross Burton <ross@openedhand.com>
4300 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4302 2005-06-20 Colin Walters <walters@verbum.org>
4304 * configure.in: Add glib/examples.
4306 * glib/Makefile.am: Add examples/
4308 * glib/examples/.cvsignore
4309 * glib/examples/Makefile.am
4310 * glib/examples/example-client.c
4311 * glib/examples/example-service.c
4312 * glib/examples/example-service.xml
4313 * glib/examples/example-signal-emitter.c
4314 * glib/examples/example-signal-emitter.xml
4315 * glib/examples/example-signal-recipient.c:
4316 New files; GLib binding examples, ported from
4319 2005-06-20 Colin Walters <walters@verbum.org>
4322 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4325 * glib/dbus-binding-tool-glib.c:
4326 * doc/dbus-tutorial.xml:
4327 * test/glib/test-dbus-glib.c: Update for rename.
4329 2005-06-20 Colin Walters <walters@verbum.org>
4331 Patch suggested by Ross Burton <ross@openedhand.com>
4333 * glib/dbus-gobject.c (export_signals): Free signal name.
4334 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4335 memory leak. Add a bit of documentation.
4336 (dbus_g_method_return_error): Free context, and note we do
4339 2005-06-18 Murray Cumming <murrayc@murrayc.com>
4342 * glib/dbus-gobject.c:
4343 * glib/dbus-gproxy.c:
4344 * glib/dbus-gvalue.c: Predeclare structs as
4345 typedef struct _Something Something instead of
4346 typedef struct Something Something, so we can
4347 redeclare the prototypes. Other GNOME libraries
4350 2005-06-17 Colin Walters <walters@verbum.org>
4352 * tools/dbus-names-model.c (have_names_notify): Fix call
4353 to dbus_g_proxy_end_call.
4355 2005-06-17 Colin Walters <walters@verbum.org>
4357 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4358 spew warnings if we get malformed remote signals.
4360 * glib/dbus-gobject.c (propsig_iterate): New function.
4361 (lookup_object_info): New function, extracted from
4362 lookup_object_and_method.
4363 (introspect_properties, introspect_signals): Delete; these
4364 are merged into write_interface.
4365 (write_interface): Write out signals and properties here;
4366 dump the org.gtk.object stuff and use the interface given
4367 in the introspection data blob. Also fix up property XML.
4368 (lookup_values): New function.
4369 (introspect_interfaces): Gather a mapping from interface to a
4370 list of its methods, signals, and properties, then write out
4372 (lookup_object_and_method): Use lookup_object_info.
4373 (struct DBusGSignalClosure): Add interface.
4374 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4375 we can just use the constant data.
4376 (dbus_g_signal_closure_finalize): Don't free signal name.
4377 (signal_emitter_marshaller): Use interface from signal closure.
4378 (export_signals): Only export signals mentioned in introspection
4380 (dbus_g_connection_register_g_object): Warn if we have no
4381 introspection data for an object.
4382 (funcsig_equal): Remove unused variable.
4383 (dbus_g_object_register_marshaller): Take varargs instead of
4385 (dbus_g_object_register_marshaller_array): New function,
4386 extracted from old dbus_g_object_register_marshaller.
4388 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4389 signals and property data.
4390 (write_quoted_string): New function, extracted from generate_glue.
4391 (generate_glue): Write signals and properties to introspection
4394 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4395 exported_signals and exported_properties.
4396 (dbus_g_object_register_marshaller): Update prototype.
4397 (dbus_g_object_register_marshaller_array): Prototype.
4399 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4401 * test/glib/test-service-glib.c: Add new test signals and method
4404 * test/glib/test-service-glib.xml: Add some test signals.
4406 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4407 and my-object-marshal.h
4408 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4409 my-object-marshal.c.
4410 (my-object-marshal.c, my-object-marshal.h): Implement.
4412 * test/glib/.cvsignore: Update.
4414 * doc/TODO: Remove two GLib TODO items fixed by this
4417 2005-06-16 Colin Walters <walters@verbum.org>
4419 * doc/TODO: Update for GLib bindings.
4421 2005-06-16 Colin Walters <walters@verbum.org>
4423 * glib/dbus-binding-tool-glib.c:
4424 * glib/dbus-gobject.c:
4425 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
4426 from Ross Burton, for his GLib bindings work.
4428 2005-06-16 Colin Walters <walters@verbum.org>
4430 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4431 to iterate instead of walking to G_TYPE_INVALID.
4433 Patch based on a patch from Ryan Gammon.
4435 2005-06-16 Colin Walters <walters@verbum.org>
4437 * bus/bus.c (bus_context_new): Set parser to NULL
4438 after we unref it (Patch from Chris Boscolo, #2174).
4440 2005-06-16 Colin Walters <walters@verbum.org>
4442 * python/dbus_bindings.pyx.in: Import size_t,
4443 __int64_t, __uint64_t, and __signed.
4445 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4446 Define cmsg struct, output it.
4447 (_dbus_read_credentials_unix_socket):
4450 Patch from Joe Markus Clarke for FreeBSD support.
4452 2005-06-16 Colin Walters <walters@verbum.org>
4454 * tools/dbus-send.c (append_array): Use strtok.
4455 (append_dict): New function.
4456 (type_from_name): New function, extracted from main.
4457 (main): Handle sending dicts.
4459 * tools/dbus-print-message.c (print_iter): Print dict
4462 2005-06-16 Colin Walters <walters@verbum.org>
4464 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4465 values as the empty string (#2948).
4467 2005-06-16 Colin Walters <walters@verbum.org>
4470 * mono/doc/Makefile.am:
4471 * test/glib/Makefile.am:
4473 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4475 2005-06-16 Colin Walters <walters@verbum.org>
4477 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4478 header byte order from expected byte order (Patch from Chris Wilson, #3475).
4480 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
4481 Increment pointer after swapping fixed array. Add assertion
4484 2005-06-15 Colin Walters <walters@verbum.org>
4486 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4487 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
4489 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4491 * NEWS: Update to 0.34
4493 2005-06-15 David Zeuthen <davidz@redhat.com>
4495 * configure.in (LT_CURRENT): Revert back to 1 as the library
4496 hasn't changed and we've certainly not committed to protocol
4497 stability yet. All this does is to break ABI. See commit note
4498 from hp@redhat.com 2005-05-05 for details.
4500 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4502 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
4503 (_dbus_connection_run_builtin_filters): New method
4504 (dbus_connection_dispatch): Run the builtin filters which in turn
4505 runs the peer filter which handles Ping messages.
4508 - Ping isn't handled: This patch fixes it
4510 - Add a test case for the Ping message: added TODO item
4512 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4514 * dbus/dbus-message.c:
4515 (dbus_message_has_path): New method
4516 (dbus_message_has_interface): New method
4517 (dbus_message_has_member): New method
4519 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4522 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
4523 the keyring directory is private to the user
4526 - The convenience functions in dbus-bus.h should perhaps have
4527 the signatures that they would have if they were autogenerated
4528 stubs. e.g. the acquire service function. We should also evaluate
4529 which of these functions to include, in light of the fact that
4530 GLib/Qt native stubs will probably also exist.: Punted
4532 - add dbus_message_has_path(), maybe has_member/interface:
4535 - in dbus-keyring.c, enforce that the keyring dir is not
4536 world readable/writable: Fixed in this patch
4538 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4540 * dbus/dbus-marshal-validate.h: Added a new validation
4541 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
4542 out of memory errors when validating signitures
4544 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4545 in places where we previously used DBUS_VALID and a FALSE return
4546 value to indicate OOM
4548 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4549 Use a stack to track the number of elements inside containers. The
4550 stack values are then used to validate that dict entries have only two
4551 elements within them.
4552 (validate_body_helper): check the reason for failure when validating
4555 * dbus/dbus-message.c (load_message): use
4556 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
4557 DBUS_VALID and a FALSE return value to indicate OOM
4559 * doc/TODO: remove "- validate dict entry number of fields" as this
4562 2005-06-14 David Zeuthen <davidz@redhat.com>
4564 * bus/bus.c (process_config_every_time): Drop existing conf-dir
4565 watches (if applicable) and add new watches
4567 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4568 (main): Setup SIGIO signal handler if using D_NOTIFY
4570 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4572 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4573 (merge_included): Also merge conf_dirs list
4574 (bus_config_parser_unref): Clear conf_dirs list
4575 (include_dir): Add directory to conf_dirs list
4576 (bus_config_parser_get_conf_dirs): New function
4578 * bus/dir-watch.[ch]: New files
4580 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4582 * configure.in: Add checks for D_NOTIFY on Linux
4584 2005-06-14 Colin Walters <walters@verbum.org>
4586 * glib/dbus-binding-tool-glib.c:
4587 * glib/dbus-gobject.c:
4588 * glib/dbus-gvalue.c: Fix indentation and brace style.
4590 2005-06-14 Ross Burton <ross@openedhand.com>.
4592 * glib/dbus-glib.h: Make DBusGMethodInvocation
4593 a private structure. Rearrange prototypes a bit.
4595 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4596 documentation for first_arg_type.
4598 * glib/dbus-gobject.c: Move DBusGMethodInvocation
4599 here, add documentation. Move dbus_g_method_return
4600 and dbus_g_method_return_error into public API
4603 2005-06-14 Colin Walters <walters@verbum.org>
4605 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4606 Add missing return statements, noticed by Ross Burton.
4608 2005-06-13 Ross Burton <ross@openedhand.com>.
4610 * glib/dbus-gobject.c: Handle errors on message
4611 demarshalling by sending error message back.
4612 * glib/dbus-gvalue.c: Initialize return variables.
4614 2005-06-13 Colin Walters <walters@verbum.org>
4616 * glib/Makefile.am: Fix thinko in last patch.
4618 2005-06-13 Colin Walters <walters@verbum.org>
4620 * glib/Makefile.am: Move dbus-gtype-specialized.c
4621 and dbus-gtype-specialized.h into a _HEADERS variable,
4624 2005-06-12 Colin Walters <walters@verbum.org>
4626 Async signals and various bugfixes and testing by
4627 Ross Burton <ross@openedhand.com>.
4629 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4630 (dbus_gvalue_genmarshal_name_from_type)
4631 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4632 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4633 (dbus_g_value_types_init, dbus_gtype_from_signature)
4634 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4635 (dbus_gtypes_from_arg_signature): New function prototypes.
4636 (dbus_gvalue_demarshal): Take context and error arguments.
4637 (dbus_gvalue_demarshal_variant): New function.
4638 (dbus_gvalue_demarshal_message): New function.
4639 (dbus_gvalue_store): Delete.
4641 * glib/dbus-gvalue.c:
4643 File has been almost entirely rewritten; now we special-case
4644 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4645 hash tables correctly, etc. Full support for recursive values
4646 is not yet complete.
4648 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4649 argument of signal to G_TYPE_POINTER since we now pass a
4651 (lookup_g_marshaller): Delete in favor of
4652 _dbus_gobject_lookup_marshaller.
4653 (marshal_dbus_message_to_g_marshaller): Use
4654 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4655 to handle remote signal callbacks.
4656 (dbus_g_proxy_new_from_proxy): New function; creates a new
4657 DBusGProxy by copying an existing one.
4658 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4659 (dbus_g_proxy_get_path): New functions.
4660 (dbus_g_proxy_marshal_args_to_message): New function;
4661 factored out of existing code.
4662 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4663 from a varargs array.
4664 (dbus_g_proxy_begin_call_internal): New function.
4665 (dbus_g_proxy_end_call_internal): New function.
4666 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4667 as arguments; simply invoke dbus_g_proxy_begin_call_internal
4668 after collecting args into value array.
4669 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4670 invoke dbus_g_proxy_end_call_internal.
4671 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4673 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4675 (array_free_all): New function.
4676 (dbus_g_proxy_add_signal): Take GTypes.
4678 * glib/dbus-gobject.h:
4679 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4680 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4683 * glib/dbus-gobject.c: Add a global marshal_table hash which
4684 stores mappings from type signatures to marshallers. Change lots
4685 of invocations of dbus_gtype_to_dbus_type to
4686 dbus_gtype_to_signature.
4687 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4688 (introspect_signals): Fix test for query.return_type.
4689 (set_object_property): Update invocation of dbus_gvalue_demarshal.
4690 (invoke_object_method): Many changes. Handle asynchronous
4691 invocations. Convert arguments with
4692 dbus_gvalue_demarshal_message. Handle errors. Use
4693 DBusSignatureIter instead of strlen on args. Handle all arguments
4694 generically. Special-case variants.
4695 (dbus_g_method_return, dbus_g_method_return_error): New function.
4696 (DBusGSignalClosure): New structure, closes over signal
4698 (dbus_g_signal_closure_new): New function.
4699 (dbus_g_signal_closure_finalize): New function.
4700 (signal_emitter_marshaller): New function; is special marshaller
4701 which emits signals on bus.
4702 (export_signals): New function; introspects object signals and
4704 (dbus_g_object_type_install_info): Take GType instead of
4706 (dbus_g_connection_register_g_object): Invoke export_signals.
4707 (dbus_g_connection_lookup_g_object): New function.
4708 (DBusGFuncSignature) New structure; used for mapping type
4709 signatures to marshallers.
4710 (funcsig_hash): New function; hashes DBusGFuncSignature.
4711 (funcsig_equal): New function; compares DBusGFuncSignature.
4712 (_dbus_gobject_lookup_marshaller): New function.
4713 (dbus_g_object_register_marshaller): New function; used to
4714 register a marshaller at runtime for a particular signature.
4716 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4718 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4719 which notes a server method implementation should be
4722 * glib/dbus-binding-tool-glib.c
4723 (dbus_binding_tool_output_glib_server): Call
4724 dbus_g_value_types_init.
4725 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
4727 (dbus_g_type_get_lookup_function): Turn GType into an invocation
4728 of a lookup function.
4729 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4730 (write_untyped_out_args): New method; write output arguments.
4731 (write_formal_declarations_for_direction): Function for
4733 (write_formal_parameters_for_direction): Function for
4734 writing implementations.
4735 (write_typed_args_for_direction): Function for writing
4736 arguments prefixed with GTypes.
4737 (write_async_method_client): Write out async version
4740 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4741 (dbus_g_type_get_marshal_name): Move mapping from GType
4742 to marshal name into here.
4743 (dbus_g_type_get_c_name): Move into here.
4744 (compute_marshaller): Convert signature to type with
4745 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4746 (compute_marshaller_name): Ditto.
4747 (compute_marshaller): Handle async signal annotations.
4748 (gather_marshallers): Return if we don't have a known
4750 (generate_glue): Collect introspection blob here, and
4751 write all of the blob at the end. This allows an object
4752 with multiple interfaces to work.
4753 Mark async methods in introspection blob.
4755 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4756 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4757 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4759 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4760 avoids people accidentally using DBUS_TYPE_* which should
4761 not be necessary anymore.
4762 Do include dbus-gtype-specialized.h, which are utilities
4763 for GLib container types.
4764 Add various #defines for types such as
4765 DBUS_TYPE_G_BOOLEAN_ARRAY.
4766 (DBusGValueIterator, DBusGValue): Define, not fully used
4768 (dbus_g_value_get_g_type): Type for recursive value.
4769 (dbus_g_value_open, dbus_g_value_iterator_get_value)
4770 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4771 (dbus_g_value_free): Prototypes.
4772 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4773 (dbus_g_proxy_set_interface): Prototype.
4774 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4775 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4777 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4779 (DBusGAsyncData, DBusGMethodInvocation): Structures for
4780 doing async invocations.
4781 (dbus_g_method_return, dbus_g_method_return_error):
4783 * doc/dbus-tutorial.xml: Update GLib section.
4785 * tools/dbus-viewer.c (load_child_nodes): Update
4786 for new invocation type of dbus_g_proxy_end_call.
4787 (load_from_service_thread_func): Ditto.
4789 * tools/print-introspect.c (main): Ditto.
4791 * tools/dbus-names-model.c (have_names_notify)
4792 (names_model_reload, names_model_set_connection)
4795 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4796 needed since Python bindings use GLib bindings.
4798 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4799 Add --prefix argument.
4801 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
4802 unneeded --ignore-unsupported arg.
4804 * test/glib/test-service-glib.c:
4805 * test/glib/test-service-glib.xml:
4806 * test/glib/test-dbus-glib.c: Add many more tests.
4808 2005-06-06 David Zeuthen <davidz@redhat.com>
4810 * doc/TODO: Add item about need to remove deprecated functions.
4812 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4814 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4815 to repair the ABI which was broken with the last commit.
4817 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
4819 * dbus/dbus-connection.c, dbus/dbus-connection.h
4820 (dbus_connection_disconnect): renamed to dbus_connection_close
4821 for API symmetry with dbus_connection_open
4822 (_dbus_connection_open_internal):
4823 s/dbus_connection_disconnect/dbus_connection_close
4825 * dbus/dbus-bus.c (dbus_bus_get):
4826 s/dbus_connection_disconnect/dbus_connection_close
4828 * bus/connection.c (bus_connections_unref,
4829 bus_connections_setup_connection, bus_connections_expire_incomplete):
4830 s/dbus_connection_disconnect/dbus_connection_close
4832 * bus/dispatch.c (bus_dispatch, kill_client_connection,
4833 kill_client_connection_unchecked, check_hello_connection):
4834 s/dbus_connection_disconnect/dbus_connection_close
4836 * bus/bus.c (new_connection_callback):
4837 s/dbus_connection_disconnect/dbus_connection_close
4839 * tools/dbus-send.c (main):
4840 s/dbus_connection_disconnect/dbus_connection_close
4842 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4843 s/dbus_connection_disconnect/dbus_connection_close
4845 * test/test-service.c (path_message_func, filter_func):
4846 s/dbus_connection_disconnect/dbus_connection_close
4848 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
4850 2005-05-25 Colin Walters <walters@verbum.org>
4852 * dbus/dbus-protocol.h: Move various bus service #defines such
4853 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4855 * dbus/dbus-shared.h: Various defines moved here.
4856 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4858 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
4860 * python/__init__.py: Python bindings deserve a minor version
4861 update. Upped to (0, 40, 2)
4863 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
4865 * python/decorators.py: add explicitly_pass_message decorator
4866 for passing in the dbus message as keyword for edge case signal
4869 * python/matchrules.py (SignalMatchRule.__repr__): fix output
4870 to conform with what dbus expects for match rules
4871 (SignalMatchRule.execute): add the dbus message as a keyword
4872 if the signal handler has requested it
4874 * python/examples/example/signal-recipient.py: added some more
4875 examples on how to hook up to signals
4877 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
4879 * python/decorators.py: import dbus_bindings
4881 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
4882 SignalMatchNode): new classes that implement wildcard signal
4883 callback matching using a tree lookup. Heavily modified from a
4884 patch sent by Celso Pinto (fd.o bug #3241)
4886 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4887 use new match classes to handle signals.
4889 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
4891 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4893 2005-05-18 Havoc Pennington <hp@redhat.com>
4895 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4896 gettext. Not really worth requiring yet perhaps, but any
4897 production quality 1.0 would require it so we should go ahead and
4898 get things set up. We do have a couple token calls to
4899 bindtextdomain in the code already.
4901 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
4903 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4904 when using recursive g_main_loops
4906 * python/_dbus.py (class Bus): add the ProxyObjectClass
4907 alias for ProxyObject to make it easier for the Twisted
4908 networking framework to integrate dbus.
4910 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4911 alias for ProxyMethod to make it easier for the Twisted
4912 networking framework to integrate dbus.
4914 2005-05-11 Ross Burton <ross@openedhand.com>
4916 * glib/dbus-glib-tool.c: Add --prefix argument.
4917 * glib/dbus-binding-tool-glib.h: Add prefix argument.
4918 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4919 Add prefix argument.
4920 (generate_glue): Pass prefix argument down.
4921 (dbus_binding_tool_output_glib_server): Pass prefix to
4924 2005-05-11 Colin Walters <walters@verbum.org>
4926 * tools/dbus-send.c (append_array): New function.
4927 (append_arg): Broken out from main.
4928 (main): Add cheesy hack to send arrays and variants.
4930 * tools/dbus-print-message.c (print_iter): Broken out
4933 2005-05-11 Colin Walters <walters@verbum.org>
4935 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4936 New function, returns signature string for signature iter.
4937 * dbus/dbus-signature.h: Prototype it.
4938 * dbus/dbus-message.c (dbus_message_iter_get_signature):
4939 New function, returns signature string for message iter.
4940 (dbus_message_iter_get_array_len): New function, returns
4942 (dbus_message_iter_get_fixed_array): Fix assertion; this
4943 function should be used when the iter is pointing to the
4944 contents of an array
4945 * dbus/dbus-message.h: Prototypes.
4946 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4947 New function; returns length of an array.
4948 * dbus/dbus-marshal-recursive.h: Prototype it.
4950 2005-05-11 Colin Walters <walters@verbum.org>
4952 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4955 2005-05-08 Havoc Pennington <hp@redhat.com>
4957 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4958 daemon's pid, not the parent's pid, to the file descriptor.
4959 Reported by Taj Morton.
4961 2005-05-05 Havoc Pennington <hp@redhat.com>
4963 * configure.in (LT_*): add notes on how the libtool versioning
4964 works to save thinking. Increment soname to indicate protocol
4965 breakage (though really the library interface hasn't changed I
4968 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4969 verify the GUID received from server matches what we were
4970 expecting, if we had an expectation
4972 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4973 (_dbus_auth_get_guid_from_server): new function
4974 (send_begin): parse the OK args
4976 * doc/dbus-specification.xml: add GUID to the auth protocol
4978 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
4980 * Fix my name in previous changelog ;)
4982 * python/proxies.py (ProxyObject.__getattr__): add further patch
4983 from Anthony Baxter to throw an AttributeError when python
4984 __special__ functions are called instead of marshling them over
4985 the bus (Bug#1685 comment 3).
4987 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
4989 * python/Makefile.am: changed to use pyexecdir for the binding
4990 shared libraries (Bug#2494)
4992 * python/exceptions.py: bring exceptions over from the bindings
4993 so they can be used in applications (Bug#2036)
4994 Make all exceptions derive from DBusException
4996 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4997 of classes so that print obj doesn't throw an exception (Bug #1685)
4999 2005-05-03 Ross Burton <ross@openedhand.com>
5001 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5002 Return if we get an error during registration. Set up a
5003 weak reference on object to unregister if object is destroyed.
5004 (unregister_gobject): New function.
5006 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
5008 * python/dbus_bindings.pyx.in:
5009 - added new type classes for hinting to the marashaler what type
5010 to send over the wire
5011 - added int16 and uint16 marshalers
5012 - Fixed a bug in the type constants that caused int32 to go out
5013 as uint16 over the wire
5014 * python/dbus.py: split up into different files and renamed _dbus.py
5015 * python/__init__.py, python/_util.py, python/decorators.py,
5016 python/exceptions.py, python/proxies.py, python/services.py,
5017 python/types.py: new files split off from dbus.py
5018 * python/Makefile.am: Add new files, remove dbus.py and
5019 install all python files to <python module dir>/dbus
5020 * python/examples/*: Added #!/usr/bin/env python to the top of
5021 every example. Patch provided by Tatavarty Kalyan
5023 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5025 * NEWS: Update to 0.33
5027 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5029 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5030 method for doing async calls
5031 (_pending_call_notification): New C function for handling pendning call
5033 (set_notify): New method for setting pending call notification
5035 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5036 Async capabilities added to remote method calls
5037 (Sender): class removed
5038 (RemoteService): class removed
5039 (ObjectTree): class removed for now
5040 (RemoteObject): Renamed to ProxyObject
5041 (RemoteMethod): Renamed to ProxyMethod
5042 (method): Decorator added for decorating python methods as dbus methods
5043 (signal): Decorator added for decorating python methods as signal emitters
5044 (ObjectType): Metaclass added for generating introspection data and the
5045 method callback vtable
5046 (Interface): Wrapper class added to wrap objects in a dbus interface
5047 (Object): Uses ObjectType as its metaclass and exports Introspect
5048 of the org.freedesktop.DBus.Introspectable interface
5049 (ValidationException, UnknownMethodException): new exceptions
5051 * python/examples/*: Modified to fit with the new bindings
5053 2005-04-23 Havoc Pennington <hp@redhat.com>
5055 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5056 reported by Tony Houghton
5058 * test/test-service.c (main): test
5059 dbus_connection_get_object_path_data()
5061 * dbus/dbus-object-tree.c (find_handler): be sure we always init
5063 (_dbus_object_tree_get_user_data_unlocked): new function used by
5064 dbus_connection_get_object_path_data()
5065 (do_register): add assertion test for get_user_data_unlocked
5066 (object_tree_test_iteration): more tests
5068 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5069 new function from Dan Reed to let you get the user data from
5070 dbus_connection_register_object_path()
5072 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
5074 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5075 in numerous places that did not account for the NULL terminator
5076 (signature_from_seed): changed the manual string copy loop to
5077 just use strcpy instead
5078 make check should now pass
5080 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
5082 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5083 so that it allows messages that are not signals to pass in
5084 NULL as the interface.
5086 2005-04-18 David Zeuthen <davidz@redhat.com>
5088 * glib/dbus-gmain.c (io_handler_destroy_source):
5089 (timeout_handler_destroy_source, connection_setup_free):
5090 Also unref the source to avoid memory leaks.
5092 2005-04-13 David Zeuthen <davidz@redhat.com>
5094 * bus/config-parser.c (bus_config_parser_new): Bump this to a
5095 more reasonable, yet still totally arbitrary, value :-).
5097 2005-04-13 David Zeuthen <davidz@redhat.com>
5099 * doc/TODO: Added an "important for 1.0" item about selinux
5102 2005-04-13 David Zeuthen <davidz@redhat.com>
5104 * bus/selinux.c: Add c-file-style to top of file
5105 (log_audit_callback): Don't free the data here anymore
5106 (bus_selinux_check): Don't take spid and tpid since appending
5107 that to auxdata may OOM.
5108 (bus_selinux_allows_acquire_service): Handle OOM and signal back
5109 to the caller if we are OOM by taking an error object.
5110 (bus_selinux_allows_send): -do-
5112 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5113 and bus_selinux_allows_send
5115 * bus/bus.c (bus_context_check_security_policy): Pass error and
5116 pass on OOM thrown by bus_selinux_allows_send()
5118 * bus/services.c (bus_registry_acquire_service): Pass error and
5119 pass on OOM thrown by bus_selinux_allows_acquire_service()
5121 2005-04-13 Havoc Pennington <hp@redhat.com>
5123 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5124 message at a time to avoid monopolizing the main loop, bug
5125 #2953 from Benjamin Otte
5127 2005-04-09 Havoc Pennington <hp@redhat.com>
5129 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5130 possible overlap, fix from Daniel Reed
5131 (fixup_alignment): fix signedness warnings
5132 (_dbus_string_append_unichar): ditto
5134 2005-04-09 Havoc Pennington <hp@redhat.com>
5136 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5138 * glib/dbus-glib-tool.c (main): fix warning
5140 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5142 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5143 add a new function that can be used in simple applications that
5144 don't have a main loop and are willing to block
5146 2005-04-05 David Zeuthen <davidz@redhat.com>
5148 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5150 * glib/dbus-gmain.c:
5151 (io_handler_destroy_source): Remove from list of IO handlers
5152 of the ConnectionSetup object
5153 (timeout_handler_destroy_source): -do- for timeout handlers
5154 (io_handler_source_finalized): Don't remove from list since
5155 we now do that in io_handler_destroy_source(). Renamed from
5156 io_handler_source_destroyed
5157 (timeout_handler_source_destroyed): -do- for timeout handlers
5158 (connection_setup_free): It is now safe to iterate over all
5159 IO and timeout handlers as the _destroy_source removes them
5160 from the list synchronously
5162 2005-03-30 Havoc Pennington <hp@redhat.com>
5164 * configure.in: change check to gtk 2.4
5166 * tools/dbus-viewer.c (name_combo_changed_callback): remove
5167 gtk_combo_box_get_active_text() usage to decrement GTK requirement
5170 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5174 * HACKING: Fixed realease instructions. configure.in should be updated to
5175 the next release by the person who made the last release.
5177 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5179 * python/lvalue_cast_post_process.py - removed. Patch has been
5180 submitted to Pyrex maintainers that fixes gcc4.0 errors
5182 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5184 2005-03-24 Daniel Reed <n@ml.org>
5186 * tools/Makefile.am: Make print-introspect and
5187 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5189 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
5191 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5193 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
5194 had in Red Hat packages for a while but for some reason never
5196 (_dbus_is_a_number): New checks if a string
5197 can be converted to a number and does the conversion if it can
5198 (_dbus_user_database_lookup): Add check to see if the given username
5199 is a udi. This allows udi's to be used instead of usernames in the
5201 (_dbus_user_database_lookup_group): Add check to see if the given groupname
5202 is a gdi. This allows gdi's to be used instead of groupnames in the
5205 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
5207 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5208 code so that it compiles with gcc4.0
5210 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5211 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5212 results back to dbus_binding.c
5214 2005-03-20 Colin Walters <walters@verbum.org>
5216 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5218 * configure.in: Require GTK+ 2.6.
5220 2005-03-20 Colin Walters <walters@verbum.org>
5222 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5224 2005-03-17 Tom Parker <palfrey@tevp.net>
5226 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5227 print DBUS_UID_UNSET; instead print passed username. Also
5228 be sure to actually use gid looked up in cache.
5230 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5231 for DBUS_GID_UNSET and groupname.
5233 2005-03-17 Colin Walters <walters@verbum.org>
5235 * bus/print-introspect.c: Move to tools/.
5236 * bus/run-with-tmp-session-bus.sh: Ditto.
5238 * glib/Makefile.am (dbus-glib-bindings.h): Move
5239 generation to tools/Makefile.am.
5241 * test/glib/run-test.sh: Update to handle move
5242 of run-with-tmp-session-bus.sh.
5244 * test/glib/test-service-glib.c: Update to handle
5245 move of dbus-glib-bindings.h.
5247 * tools/print-introspect.c: Moved here
5248 from bus/, and ported to GLib bindings.
5250 * tools/run-with-tmp-session-bus.sh: Moved here
5253 * tools/Makefile.am: Generate dbus-glib-bindings.h
5254 and dbus-bus-introspect.xml here.
5256 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5259 2005-03-17 Colin Walters <walters@verbum.org>
5261 * bus/driver.c (write_args_for_direction): Use
5262 _dbus_string_get_const_data to retrieve string;
5263 _dbus_string_get_const_data_len doesn't actually return
5264 a NULL-terminated substring.
5266 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5267 (main): Change to use org_freedesktop_DBus_request_name
5268 instead of using g_proxy_begin_call/end_call.
5270 2005-03-15 Joe Shaw <joeshaw@novell.com>
5272 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5273 generating the finalizer. Fixes from Ben Maurer.
5275 2005-03-12 Joe Shaw <joeshaw@novell.com>
5277 * mono/BusDriver.cs: Update method names: ListServices
5278 becomes ListNames; GetOwner becomes GetNameOwner.
5280 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5281 onto the eval stack when removing the delegate.
5283 2005-03-12 Joe Shaw <joeshaw@novell.com>
5285 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5286 LT_CURRENT. Set it to the autoconf variable.
5288 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5289 classes that disconnects the signal handler delegate from the
5290 service object. Fixes a big leak of proxy objects on the
5291 client side of things. Patch from Ben Maurer
5292 <bmaurer@ximian.com>
5294 2005-03-12 Colin Walters <walters@verbum.org>
5296 * bus/driver.c (write_args_for_direction): New function,
5297 parses a type signature into arguments and outputs to
5299 (bus_driver_handle_introspect): Use it instead of
5300 hardcoding XML for certain signatures.
5302 * bus/Makefile.am (dbus-bus-introspect.xml): Add
5303 dependency on dbus-daemon.
5305 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5306 argument, pass it to dbus_binding_tool_output_glib_client.
5308 * glib/dbus-binding-tool-glib.c
5309 (generate_client_glue): Protect against multiple inclusion.
5310 (dbus_binding_tool_output_glib_client): Add
5311 G_BEGIN_DECLS/G_END_DECLS.
5313 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5314 Change to just take iface prefix directly.
5315 (write_formal_parameters): Clarify error message.
5316 (check_supported_parameters): New function; checks to see type
5317 signatures of method parameters are supported.
5318 (generate_client_glue): Handle ignore_unsupported flag.
5319 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5322 * glib/Makefile.am (dbus-glib-bindings.h): Pass
5323 --ignore-unsupported by default until glib bindings
5326 2005-03-11 Colin Walters <walters@verbum.org>
5328 * glib/Makefile.am: Generate dbus-glib-bindings.h and
5331 * bus/print-introspect.c: New file; prints introspection
5332 data for a given name and object path.
5334 * bus/run-with-tmp-session-bus.sh: New file, refactored
5335 from test/glib/run-test.sh. Creates a temporary session
5336 bus and runs another program.
5338 * test/glib/run-test.sh: Refactor to invoke
5339 run-with-tmp-session-bus.sh.
5341 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5342 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
5343 macros instead of hardcoding.
5345 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5347 2005-03-11 Joe Shaw <joeshaw@novell.com>
5349 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5350 this unref; it doesn't match up evenly in some codepaths.
5351 (_dbus_connection_block_pending_call): Unref at every exitpoint;
5352 this evenly matches with the ref near the top of this function.
5354 2005-03-09 Joe Shaw <joeshaw@novell.com>
5356 * dbus/dbus-object-tree.c
5357 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5358 and we try to unregister a path that's not registered, still go
5359 through the process of unlocking and don't just return.
5361 2005-03-09 Colin Walters <walters@verbum.org>
5363 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5364 to this are generated for client-side wrappers. Invokes a
5365 D-BUS method and returns reply values.
5367 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5368 function; writes signature string for argument direction.
5369 (write_args_for_direction): Change to pass input values directly
5370 instead of via address, and fix indentation.
5371 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
5372 make generated wrappers inlineable.
5374 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5375 note about using dbus_type_is_fixed.
5377 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5378 dbus/dbus-signature.c as dbus_type_is_fixed.
5380 All callers updated.
5382 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5383 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5385 * dbus/dbus-signature.h: Prototype.
5387 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5390 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5391 appropriate instead of just freeing it.
5392 (main): Free returned strings using g_free.
5394 * test/glib/Makefile.am (test-service-glib-glue.h)
5395 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5397 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5398 simply maps a simple D-BUS type to GType.
5399 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5401 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5402 initialize the value with it.
5403 (dbus_gvalue_binding_type_from_type): Unused, delete.
5404 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5405 various types instead of unmarshalling to value data directly.
5406 Remove can_convert boolean.
5407 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5408 returning directly instead of using can_convert boolean.
5409 (dbus_gvalue_store): New function; not related to D-BUS per-se.
5410 Stores a GValue in a pointer to a value of its corresponding C
5413 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5414 add dbus_gvalue_store.
5416 2005-03-08 Joe Shaw <joeshaw@novell.com>
5418 Fix a bunch of lifecycle and memory management problems
5419 in the mono bindings.
5421 * mono/Arguments.cs (Arguments): Implement IDisposable
5423 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
5424 strictly a static class.
5426 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5427 delegates into this file.
5428 (Connection): Implement IDisposable.
5429 (Dispose): Disconnect the connection and set the raw connection
5430 pointer to IntPtr.Zero.
5431 (~Connection): Call Dispose().
5432 (RegisterObjectPath): Added. Manages the registration of object
5433 paths so we can cleanly disconnect them at dispose/finalize time.
5434 (UnregisterObjectPath): Ditto.
5435 (set_RawConnection): Unregister all of the object paths when
5436 changing the underlying DBusConnection. Add them back onto the
5437 new connection, if any.
5439 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5440 more unmanaged resources anymore, so it's not necessary. Move all
5441 the DBusObjectPathVTable stuff out of here.
5442 (Handler): Save references to our delegates so that they don't get
5443 finalized. Call Connection.RegisterObjectPath() instead of
5444 dbus_connection_register_object_path() directly.
5445 (Message_Called): Dispose the message after we're finished with
5448 * mono/Message.cs (Message): Implement IDisposable.
5449 (Dispose): Dispose the Arguments, and set the RawMessage to
5451 (SendWithReplyAndBlock): We own the ref to the reply that comes
5452 back from dbus_connection_send_with_reply_and_block() so add a
5453 comment about that and unref it after we've constructed a managed
5454 MethodReturn class around it. Fixes a big, big leak.
5456 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5458 (BuildSignalHandler): After we've sent the Signal message, dispose
5460 (BuildMethod): Dispose of the method call and reply messages after
5461 we've sent the message and extracted the data we want from the
5464 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5466 (Service_FilterCalled): Dispose of the message after we're
5469 2005-03-08 Joe Shaw <joeshaw@novell.com>
5471 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5472 After we attach our pending call to the connection, unref
5475 * mono/Connection.cs (set_RawConnection): Disconnect our
5476 filter and match callbacks from the old connection and
5477 reconnect them to the new connection, if any.
5479 * mono/DBusType/Array.cs: "Code" is a static member, so
5480 don't use "this" to refer to it. Fix for stricter checking
5483 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5484 object path that we pass into unmanaged code.
5486 * mono/DBusType/String.cs (Append): Don't leak the string
5487 that we pass into unmanged code.
5489 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
5490 * NEWS: Update for 0.31
5492 * configure.in: Release 0.31
5493 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5495 * qt/Makefile.am: fixed build
5497 * dbus/Makefile.am: soname bump for libdbus
5499 * glib/Makefile.am: soname bump for libdbus-glib
5501 2005-03-05 Havoc Pennington <hp@redhat.com>
5503 * dbus/dbus-sysdeps.c:
5504 (pseudorandom_generate_random_bytes_buffer): fix to have no return
5506 (_dbus_generate_random_bytes_buffer): fix return value
5508 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5509 checks actually work, from Tom Parker <fdo@tevp.net>
5511 2005-03-01 Colin Walters <walters@verbum.org>
5513 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5514 functions copied from dbus-glib-tool.c.
5515 (main): Convert lots of error code to use them.
5516 Also add some testing for introspection bits.
5518 2005-03-01 Colin Walters <walters@verbum.org>
5520 * doc/TODO: Remove introspection signature TODO.
5522 2005-02-27 Colin Walters <walters@verbum.org>
5524 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5525 Change return value to const char * instead of int so we can do
5527 (struct PropertyInfo, struct ArgInfo): Store char *.
5528 (property_info_new, arg_info_new): Update parameters, strdup.
5529 (property_info_unref, arg_info_unref): Free.
5531 * glib/dbus-gidl.h: Update prototypes.
5533 * glib/dbus-gparser.c (basic_type_from_string): Delete.
5534 (validate_signature): New function, just validates signature and
5536 (parse_property, parse_arg): Invoke validate_signature. Store
5537 signature instead of just type code.
5539 * glib/dbus-gvalue.c (base_type_from_signature): New utility
5540 function to return a primary type for a signature, dropping
5541 information about types in container types.
5542 (dbus_gvalue_genmarshal_name_from_type)
5543 (dbus_gvalue_binding_type_from_type)
5544 (dbus_gvalue_ctype_from_type): Update to take full signature
5545 instead of type code.
5546 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5548 * glib/dbus-gvalue.h: Update prototypes for above.
5550 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5551 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5552 (introspect_properties, introspect_signals, write_interface):
5553 Update to handle signatures, and remove usage of
5554 _dbus_gutils_type_to_string.
5555 (handle_introspect): Print out type codes instead of e.g. "string"
5556 in hardcoded introspection XML; also use x_AS_STRING constants
5557 instead of hardcoding in string.
5559 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5560 to string. Remove usage of _dbus_gutils_type_to_string.
5562 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5564 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5567 * glib/dbus-binding-tool-glib.c (compute_marshaller)
5568 (compute_marshaller_name, generate_glue): Handle signature change
5570 (write_formal_parameters, write_args_for_direction): Ditto, and
5573 * tools/dbus-tree-view.c (type_to_string): Delete.
5574 (info_set_func_text): Update to print full signatures.
5576 * test/glib/test-service-glib.xml: Change types to new
5577 introspection format.
5579 2005-02-26 Havoc Pennington <hp@redhat.com>
5581 * doc/TODO: remove the "guid" item
5583 * test/glib/test-profile.c (no_bus_thread_func): use open_private
5584 (with_bus_thread_func): use open_private
5586 * dbus/dbus-connection.c (dbus_connection_open_private): new
5587 function that works like the old dbus_connection_open()
5588 (dbus_connection_open): now returns an existing connection if
5591 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5592 through the GUID to the transport
5594 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5595 GUID in hex-encoded form.
5597 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5598 pass GUID argument in to the transport
5600 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5603 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5605 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5607 2005-02-25 Havoc Pennington <hp@redhat.com>
5609 * doc/dbus-specification.xml: document the GUID thing
5611 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5612 globally unique ID for the server, and put a "guid=hexencoded"
5613 field in the address
5615 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5617 * dbus/dbus-message.c: ditto
5619 * dbus/dbus-dataslot.c: ditto
5621 * dbus/dbus-list.c: ditto
5623 * dbus/dbus-internals.h: wait, just include
5624 dbus-threads-internal.h here
5626 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5629 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5631 2005-02-24 Colin Walters <walters@verbum.org>
5633 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5635 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
5637 * glib/Makefile.am: added dbus-gobject.h to sources list
5638 so distcheck doesn't fail
5640 2005-02-24 Havoc Pennington <hp@redhat.com>
5642 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5643 you must disconnect before unref, since locking and other things
5644 are screwed up otherwise. Fix assorted other locking stuff.
5646 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5649 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5650 into a private header and don't export from the library
5652 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5654 2005-02-24 Colin Walters <walters@verbum.org>
5656 * dbus/dbus-signature.c: New file; implements various functions
5657 related to type signatures. Includes an interator for parsing,
5658 validation functions.
5659 (dbus_type_is_basic): Moved here from
5660 dbus-marshal-basic.c:_dbus_type_is_basic.
5661 (dbus_type_is_container): Moved here from
5662 dbus-marshal-basic.c:_dbus_type_is_container.
5664 All callers of _dbus_type_is_container and _dbus_type_is_basic
5665 updated, and include dbus-signature.h.
5667 * dbus/dbus-signature.h: New file; prototypes for the above.
5669 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5672 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5673 function factored out of _dbus_first_type_in_signature.
5674 (_dbus_first_type_in_signature_c_str): New function; returns first
5675 type code for a type signature character.
5677 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5678 handle function moves.
5680 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5682 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5683 function; skips to next complete type in type signature.
5684 Implemented using previous skip_one_complete_type. Now
5685 skip_one_complete_type just delegates to
5686 _dbus_type_signature_next.
5688 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5690 (_dbus_type_is_container): Ditto.
5692 * doc/dbus-specification.xml: Update introspection sample to
5693 use real type signatures.
5695 * dbus/dbus-test.h: Prototype signature test.
5697 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5700 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5702 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
5704 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5705 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5707 2005-02-21 Colin Walters <walters@verbum.org>
5709 * dbus/dbus-test-main.c (main): Take optional specific test
5712 * dbus/dbus-test.c (run_test): New function, runs a test function
5713 with no data directory.
5714 (run_data_test): Like above, but takes data directory.
5715 (dbus_internal_do_not_use_run_tests): Take
5716 specific test argument. Replace lots of cut n' paste code
5717 with run_test and run_data_test.
5719 * dbus/dbus-test.h: Update prototype for
5720 dbus_internal_do_not_use_run_tests.
5722 2005-02-20 Havoc Pennington <hp@redhat.com>
5724 Fix bugs reported by Daniel P. Berrange
5726 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5727 (protected_change_watch): new function
5728 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5729 (_dbus_server_add_watch): change to work like the
5730 dbus-connection.c equivalents; like those, probably kind of
5731 busted, but should at least mostly work for now
5732 (dbus_server_disconnect): drop the lock if we were already
5733 disconnected, patch from Daniel P. Berrange
5735 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
5736 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5739 * doc/TODO: todo about unscrewing this mess
5741 2005-02-19 Colin Walters <walters@verbum.org>
5743 * glib/dbus-binding-tool-glib.c
5744 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5746 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5747 as errno.h and sys/stat.h.
5748 (lose): New function, prints error with
5750 (lose_gerror): Similar, but takes GError for message.
5751 (main): Add --output argument to specify output file to write to,
5752 instead of always printing to stdout. In this mode, determine
5753 timestamps on source files to see whether any are newer than the
5754 target file. If not, exit. Also convert a number of error
5755 messages to use lose (since it's shorter), and switch to using
5756 g_io_channel_shutdown.
5758 2005-02-19 Havoc Pennington <hp@redhat.com>
5760 * glib/dbus-gobject.c
5761 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5763 * glib/dbus-glib.c: fix doxygen warnings
5765 * glib/dbus-gparser.c (parse_annotation): error if an annotation
5766 is found on an <arg>
5768 2005-02-17 Colin Walters <walters@verbum.org>
5770 * glib/dbus-gobject.h: Don't export
5771 _dbus_glib_marshal_dbus_message_to_gvalue_array.
5773 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5774 (invoke_object_method): Handle it.
5776 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5779 2005-02-17 Colin Walters <walters@verbum.org>
5781 * bus/.cvsignore, doc/.cvsignore
5782 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5785 2005-02-17 Colin Walters <walters@verbum.org>
5787 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5788 Rename to DBUS_SERVICE_DBUS.
5789 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5790 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5791 Change the value from "org.freedesktop.Local"
5792 to "org.freedesktop.DBus.Local".
5793 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5794 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5795 DBUS_INTERFACE_INTROSPECTABLE.
5796 Change the value from "org.freedesktop.Introspectable"
5797 to "org.freedesktop.DBus.Introspectable".
5798 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5799 DBUS_INTERFACE_PROPERTIES.
5800 Change the value from "org.freedesktop.Properties"
5801 to "org.freedesktop.DBus.Properties".
5802 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5803 DBUS_INTERFACE_PEER.
5804 Change the value from "org.freedesktop.Peer"
5805 to "org.freedesktop.DBus.Peer".
5806 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
5807 DBUS_INTERFACE_LOCAL.
5808 Change the value from "org.freedesktop.Local"
5809 to "org.freedesktop.DBus.Local".
5811 All other users of those constants have been changed.
5813 * bus/driver.c (bus_driver_handle_introspect): Use constants.
5815 * glib/dbus-gobject.c (handle_introspect): Use constants.
5817 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5819 2005-02-17 Colin Walters <walters@verbum.org>
5821 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5822 (parse_node, parse_interface, parse_method, parse_signal)
5823 (parse_property, parse_annotation): Lose if we're currently in an
5825 (parse_annotation): New function.
5826 (parser_start_element, parser_end_element): Handle annotation.
5827 (parse_method, parse_interface): Remove support for c_name attribute,
5828 switch to annotations.
5830 * glib/dbus-gidl.h (interface_info_get_binding_names)
5831 (method_info_get_binding_names)
5832 (interface_info_get_binding_name, method_info_get_binding_name)
5833 (interface_info_set_binding_name, method_info_set_binding_name):
5835 (interface_info_get_annotations, method_info_get_annotations)
5836 (interface_info_get_annotation, method_info_get_annotation)
5837 (interface_info_add_annotation, method_info_add_annotation):
5840 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5842 (struct MethodInfo): Ditto.
5843 Straightfoward conversion of binding methods into annotation methods
5846 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5848 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5850 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5851 Use new annotation API.
5853 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
5856 * doc/dbus-specification.xml: Discuss introspection annotations,
5857 include list of well-known annotations.
5859 * test/glib/test-service-glib.xml: Make validate against new DTD.
5861 2005-02-17 Colin Walters <walters@verbum.org>
5863 This patch is based on initial work from
5864 Paul Kuliniewicz <kuliniew@purdue.edu>.
5866 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5867 initialization of GValue from dbus type to here.
5868 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5869 for the "glib-genmarshal" program from a DBus type.
5870 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5871 into the C name for it we use in the glib bindings.
5872 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5873 glib C type (not GValue).
5874 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5876 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5877 from dbus-gobject.c.
5879 * glib/dbus-gutils.h: Prototype it.
5881 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5882 (marshal_dbus_message_to_g_marshaller): Use new shared function
5883 dbus_glib_marshal_dbus_message_to_gvalue_array.
5885 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5886 Will be changed once we have annotations.
5888 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5889 GStaticRWLock. Callers updated.
5890 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
5891 (string_table_next): New function for iterating over zero-terminated
5893 (string_table_lookup): New function; retrieves specific entry in
5895 (get_method_data): New function; look up method data in object data chunk.
5896 (object_error_domain_prefix_from_object_info)
5897 (object_error_code_from_object_info): New functions, but not implemented yet.
5898 (method_interface_from_object_info): New function; retrieve interface name.
5899 (method_name_from_object_info): New function; retrieve method name.
5900 (method_arg_info_from_object_info): New function; retrieve argument data.
5901 (arg_iterate): New function; iterates over serialized argument data.
5902 (method_dir_signature_from_object_info): New function; returns a
5903 GString holding type signature for arguments for just one
5904 direction (input or output).
5905 (method_input_signature_from_object_info)
5906 (method_output_signature_from_object_info): New functions.
5907 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5908 converts dbus message arguments into a GValue array. Used for both
5909 signal handling and method invocation.
5910 (struct DBusGlibWriteIterfaceData): New utility structure.
5911 (write_interface): New function; generate introspection XML for
5913 (introspect_interfaces): New function; gathers all interface->methods,
5914 generates introspection XML for them.
5915 (handle_introspect): Invoke introspect_interfaces.
5916 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5917 (lookup_object_and_method): New function; examines an incoming message
5918 and attempts to match it up (via interface, method name, and argument
5919 signature) with a known object and method.
5920 (gerror_domaincode_to_dbus_error_name): New function; converts a
5921 GError domain and code into a DBus error name. Needs GError data
5922 added to object introspection to work well.
5923 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5925 (invoke_object_method): New function to invoke an object method
5926 looked up via lookup_object_and_method. Parses the incoming
5927 message, turns it into a GValue array, then invokes the marshaller
5928 specified in the DBusGMethodInfo. Creates a new message with
5929 either return values or error message as appropriate.
5930 (gobject_message_function): Invoke lookup_object_and_method and
5931 invoke_object_method.
5933 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5934 (enum DBusBindingOutputMode): New enum for binding output modes.
5935 (pretty_print): Print binding names.
5936 (dbus_binding_tool_error_quark): GError bits.
5937 (version): Fix typo.
5938 (main): Create GIOChannel for output. Parse new --mode argument,
5939 possible values are "pretty-print", "glib-server", "glib-client".
5940 Use mode to invoke appropriate function.
5942 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5944 * glib/dbus-glib-tool.h: New header, just includes GError bits
5947 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5948 maps binding style to name.
5949 (struct MethodInfo): Ditto.
5950 (get_hash_keys, get_hash_key): Utility function, returns keys for
5952 (interface_info_new, method_info_new): Initialize bindings.
5953 (interface_info_unref, method_info_unref): Destroy bindings.
5954 (method_info_get_binding_names, method_info_get_binding_name)
5955 (interface_info_get_binding_names, interface_info_get_binding_name):
5956 Functions for retrieving binding names.
5957 (method_info_set_binding_name, interface_info_set_binding_name):
5958 Functions for setting binding names.
5960 * glib/dbus-binding-tool-glib.h: New file, has prototypes
5961 for glib binding generation.
5963 * glib/dbus-binding-tool-glib.c: New file, implements server-side
5964 and client-side glib glue generation.
5966 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5967 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5970 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5971 of using GClosureMarshal directly.
5972 (struct DBusGObjectInfo): Add n_infos member.
5974 * test/glib/test-service-glib.xml: New file; contains introspection data
5975 for MyTestObject used in test-service-glib.c.
5977 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5978 (my_object_do_nothing, my_object_increment, my_object_throw_error)
5979 (my_object_uppercase, my_object_many_args): New test methods.
5980 (main): Use dbus_g_object_class_install_info to include generated object
5983 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5984 as well as client-side bindings.
5986 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5987 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5988 using both the dbus_gproxy stuff directly as well as the generated bindings.
5990 2005-02-15 Havoc Pennington <hp@redhat.com>
5992 * dbus/dbus-connection.c (dbus_connection_dispatch): always
5993 complete a pending call, don't run filters first.
5995 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5996 dbus_pending_call_steal_reply
5998 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5999 _dbus_connection_block_pending_call
6000 (dbus_pending_call_get_reply): change to steal_reply and return a
6003 * dbus/dbus-connection.c
6004 (dbus_connection_send_with_reply_and_block): port to work in terms
6006 (_dbus_connection_block_pending_call): replace block_for_reply
6009 2005-02-14 Havoc Pennington <hp@redhat.com>
6011 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6012 properly handle looking up group information by name; fix
6015 2005-02-13 Havoc Pennington <hp@redhat.com>
6017 * dbus/dbus-connection.c (dbus_connection_return_message)
6018 (dbus_connection_borrow_message): hold dispatch lock while message
6020 (_dbus_connection_block_for_reply): hold dispatch lock while we
6021 block for the reply, so nobody steals our reply
6022 (dbus_connection_pop_message): hold the dispatch lock while we
6025 2005-02-13 Havoc Pennington <hp@redhat.com>
6027 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6028 (_dbus_connection_release_dispatch)
6029 (_dbus_connection_acquire_io_path)
6030 (_dbus_connection_release_io_path): make the mutex and condvar
6031 control access to the "acquired" flag. Drop the connection lock
6032 while waiting on the condvar. Hopefully these are baby steps in
6033 roughly the right direction.
6035 2005-02-13 Havoc Pennington <hp@redhat.com>
6037 * dbus/dbus-connection.c: use separate mutexes for the condition
6038 variables; this is some kind of baseline for sanity, but the
6039 condition variables still aren't used correctly afaict
6041 2005-02-13 Havoc Pennington <hp@redhat.com>
6043 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6046 * dbus/dbus-connection.c
6047 (_dbus_connection_detach_pending_call_unlocked): add this
6049 Initial semi-correct pass through to fix thread locking; there are
6050 still some issues with the condition variable paths I'm pretty
6053 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6056 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6057 rename to add _unlocked
6058 (struct DBusConnection): move "dispatch_acquired" and
6059 "io_path_acquired" to use only one bit each.
6060 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6061 (dbus_connection_set_watch_functions): hacky fix to reentrancy
6062 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
6063 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
6064 (_dbus_connection_remove_timeout)
6065 (_dbus_connection_toggle_timeout): drop lock when calling out to
6066 user functions; done in a hacky/bad way.
6067 (_dbus_connection_send_and_unlock): add a missing unlock
6068 (_dbus_connection_block_for_reply): add a missing unlock
6070 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6071 drop lock in a hacky probably unsafe way to call out to user
6074 2005-02-12 Havoc Pennington <hp@redhat.com>
6076 * tools/dbus-tree-view.c (info_set_func_text): display more
6079 * bus/driver.c (bus_driver_handle_list_services): list the bus
6082 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6084 * glib/dbus-gidl.c (signal_info_get_n_args): new function
6085 (method_info_get_n_args): new function
6087 2005-02-12 Havoc Pennington <hp@redhat.com>
6089 * bus/driver.c (bus_driver_handle_introspect): add introspection
6092 2005-02-12 Havoc Pennington <hp@redhat.com>
6094 * bus/driver.c: put the signature of each bus driver method in the
6095 table of handlers and check it on incoming calls; this isn't
6096 really useful, but going to add introspect support in a minute.
6098 2005-02-11 Joe Shaw <joeshaw@novell.com>
6100 * mono/Connection.cs: The unpredictability of finalizers in mono
6101 prevents us from deterministically disconnecting the filters from
6102 the Service class's finalizer, so move tracking of filters and
6103 matches here. Add API for that.
6105 * mono/Service.cs: Remove the code, add code which calls the
6106 methods now on the Connection class.
6108 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
6110 * python/dbus.py (class Sender): added to support dbus signals better
6111 (Bus::add_signal_receiver): added expand_args parameter which defaults
6112 to True. When expand args is True the signal handler will pass the
6113 message arguments as parameters to the signal handler. If False
6114 revert to previous behavior where the signal handler must get the
6115 argument list from the message. This is to help port applications
6116 like HAL that have a tendancy to send variable length argument lists.
6117 self._match_rule_to_receivers is now a dict of dicts.
6118 (Bus::remove_signal_receiver): pop handler off the dict intead of
6119 removing it from a list
6120 (Bus::_signal_func): change signal handlers so that interface,
6121 signal_name, service, path and message are packed into a Sender
6122 object and that is passed to the handler. If expand_args is True
6123 extract the args list from the message and append it to the parameter
6126 * python/dbus_bindings.pyx.in (class Signature): added to support
6128 (MessageIter::__init__): changed iteration limit to match D-BUS
6129 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
6130 STRUCT and VARIENT type support
6131 (MessageIter::python_value_to_dbus_sig): made recursive to support
6133 (MessageIter::append*): added Signature, dict, tuple
6136 * python/examples/example-client.py: added examples of getting tuples
6139 * python/examples/example-service.py: added examples of sending tuples
6142 * python/examples/example-signal-recipient.py: Fixed to handle new
6143 signal callback format
6145 2005-02-10 Havoc Pennington <hp@redhat.com>
6147 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6148 (call dbus_g_proxy_add_signal)
6150 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6152 (_dbus_server_new_for_domain_socket): escape the path
6154 * dbus/dbus-address.c (dbus_address_escape_value): new
6155 (dbus_address_unescape_value): new
6156 (dbus_parse_address): unescape values
6158 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6160 * doc/dbus-specification.xml: explain how to escape values in
6163 2005-02-10 Havoc Pennington <hp@redhat.com>
6165 * dbus/dbus-message-factory.c (generate_special): modify test to
6166 avoid using a non-basic dict key
6168 * dbus/dbus-marshal-validate-util.c: add test for the below
6170 * doc/dbus-specification.xml: require that dict keys are a basic
6173 * dbus/dbus-marshal-validate.c
6174 (_dbus_validate_signature_with_reason): require that dict key is a
6177 2005-02-10 Havoc Pennington <hp@redhat.com>
6179 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6180 change to be _and_unlock instead of _unlocked
6182 * dbus/dbus-connection.c
6183 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6184 have no_update so we can find this bug quickly in future
6186 2005-02-10 Havoc Pennington <hp@redhat.com>
6188 * dbus/dbus-message-util.c (verify_test_message): tests for string
6191 * dbus/dbus-message.c (dbus_message_append_args_valist): add
6192 support for arrays of string/signature/path
6194 2005-02-10 Joe Shaw <joeshaw@novell.com>
6196 * dbus/dbus-connection.c
6197 (_dbus_connection_queue_received_message_link,
6198 _dbus_connection_message_sent): Add the path to
6200 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
6201 _dbus_connection_send_preallocated_unlocked(), updated the
6202 dispatch status, and unlocks. Fixes a bug where certain
6203 situations (like a broken pipe) could cause a Disconnect message
6204 to not be sent, tricking the bus into thinking a service was still
6205 there when the process had quit.
6206 (_dbus_connection_send_preallocated): Call
6207 _dbus_connection_send_preallocated_and_unlock().
6208 (_dbus_connection_send_and_unlock): Added. Calls
6209 _dbus_connection_send_preallocated_and_unlock().
6210 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6211 (dbus_connection_send_with_reply): Update the dispatch status and
6214 * mono/Service.cs (~Service): Added. Removes the filter so that
6215 we don't get unmanaged code calling back into a GCed delegate.
6216 (RemoveFilter); Added.
6218 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
6220 * dbus/dbus-message.c (dbus_message_iter_open_container):
6221 - Removed check for iterator type being an array because
6222 get_arg_type does not work with writer iterators
6223 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6225 2005-02-07 Havoc Pennington <hp@redhat.com>
6227 * doc/dbus-specification.xml: some more language cleanups; add
6228 stuff about how to deal with invalid protocol and extension
6229 points; add _ to allowed chars in auth commands; add EXTENSION_
6232 2005-02-06 Havoc Pennington <hp@redhat.com>
6234 * s/expected/required/ in a couple places for clarity
6236 2005-02-07 Colin Walters <walters@verbum.org>
6238 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6239 sender or proposed_recipient.
6241 2005-02-06 Havoc Pennington <hp@redhat.com>
6243 * dbus/dbus-message-factory.c (generate_special): more tests
6245 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6246 array length that exceeds the maximum
6248 2005-02-05 Havoc Pennington <hp@redhat.com>
6250 * dbus/dbus-message-factory.c (generate_special): more test cases,
6253 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6254 reason why a signature was invalid
6256 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6257 skip the length of the string before we look at it in validation
6259 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6262 * dbus/dbus-message.c (_dbus_message_loader_new): default
6263 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6265 2005-02-05 Havoc Pennington <hp@redhat.com>
6267 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6268 if the signature of a variant was empty
6269 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6270 struct with no element type)
6272 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6273 mangled messages to break things
6275 2005-02-04 Havoc Pennington <hp@redhat.com>
6277 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6278 g_quark_try_string() so it actually can return 0
6279 (dbus_g_proxy_connect_signal): ditto
6281 2005-02-04 Havoc Pennington <hp@redhat.com>
6283 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6285 (tristring_from_message): assert cleanly on null path/interface
6286 (should not be possible though I decided later)
6287 (dbus_g_proxy_dispose): move proxy manager unregistration here
6288 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6289 g_return_if_fail() checks
6291 2005-02-04 Havoc Pennington <hp@redhat.com>
6293 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6295 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6296 (with some minor changes)
6298 * doc/dbus-specification.xml: add deprecated attribute to
6299 introspection format
6301 2005-01-31 Havoc Pennington <hp@redhat.com>
6303 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6304 think it's sort of right
6306 2005-01-30 Havoc Pennington <hp@redhat.com>
6308 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6310 2005-01-30 Havoc Pennington <hp@redhat.com>
6312 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6314 * autogen.sh: change to autotools 1.9
6316 * glib/dbus-gproxy.c: completely change how signals work
6317 (dbus_g_proxy_add_signal): new function to specify signature of a
6319 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6320 and g_warning if the incoming message has the wrong signature.
6322 2005-01-30 Havoc Pennington <hp@redhat.com>
6324 * tools/dbus-names-model.c (have_names_notify): fix this
6326 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6327 up the string array handling a bit
6329 2005-01-30 Havoc Pennington <hp@redhat.com>
6331 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6332 (dbus_g_pending_call_cancel): new function
6334 * dbus/dbus-glib.h: move GType decls for connection/message here;
6335 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6336 here, just kind of rationalizing how we handle all that
6338 * tools/dbus-names-model.c: new file for a tree model listing the
6341 * tools/dbus-tree-view.c (model_new): use proper typing on the
6344 2005-01-30 Havoc Pennington <hp@redhat.com>
6346 * glib/dbus-gmain.c: add a custom GSource back that just checks
6347 whether the message queue has anything in it; otherwise, there are
6348 cases where we won't see messages in the queue since there was no
6349 IO visible to the glib main loop
6351 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6352 increase default message timeout to 25 seconds
6354 2005-01-30 Havoc Pennington <hp@redhat.com>
6356 * test/glib/test-profile.c (no_bus_stop_server): remove the
6357 warning about the g_warning that I just fixed
6359 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6360 custom source, seems to be a lot easier to understand and work
6363 2005-01-30 Havoc Pennington <hp@redhat.com>
6365 I think this main loop thing is conceptually broken, but here are
6366 some band aids. I'll maybe rewrite it in a minute.
6368 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6369 custom GSource, so don't pass it in; confusing
6370 (gsource_server_finalize, gsource_connection_finalize): add
6371 finalize handlers that remove all the watches.
6373 2005-01-30 Havoc Pennington <hp@redhat.com>
6375 * glib/dbus-gobject.c (introspect_properties): fix the XML
6378 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6379 which effectively detects the use of freed messages
6381 * glib/dbus-gobject.c (handle_introspect): modify and return the
6382 reply message instead of the incoming message
6384 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6385 gee, maybe it should SEND THE XML instead of just making a string
6386 and freeing it again ;-)
6388 * tools/dbus-print-message.c (print_message): improve printing of
6391 * configure.in: add debug-glib.service to the output
6393 2005-01-30 Havoc Pennington <hp@redhat.com>
6395 dbus-viewer introspected and displayed the bus driver
6397 * dbus/dbus-object-tree.c
6398 (object_tree_test_iteration): add tests for a handler registered on "/"
6400 * dbus/dbus-object-tree.c
6401 (_dbus_decompose_path): fix to handle path "/" properly
6402 (run_decompose_tests): add tests for path decomposition
6404 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6407 * glib/dbus-gobject.c (handle_introspect): fix quotes
6409 * test/glib/run-test.sh: support launching the bus, then running
6412 * test/glib/test-service-glib.c (main): put in a trivial gobject
6413 subclass and register it on the connection
6415 * bus/driver.c (bus_driver_handle_introspect): implement
6416 introspection of the bus driver service
6418 * dbus/dbus-protocol.h: add #defines for the XML namespace,
6419 identifiers, doctype decl
6421 * bus/driver.c (bus_driver_handle_get_service_owner): handle
6422 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
6423 returning the service unchanged.
6424 (bus_driver_handle_message): remove old check for reply_serial in
6425 method calls, now the message type deals with that
6426 (bus_driver_handle_message): handle NULL interface
6428 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6430 * glib/dbus-gloader-expat.c (description_load_from_string): allow
6433 * tools/dbus-viewer.c: add support for introspecting a service on
6436 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6437 (dbus_g_pending_call_unref): add
6439 2005-01-29 Havoc Pennington <hp@redhat.com>
6441 * tools/dbus-tree-view.c: add support for displaying properties.
6442 (run dbus-viewer with an introspect xml file as arg, then resize
6443 the window so the tree elements show up, not sure what that is)
6445 * glib/dbus-gobject.c (handle_introspect): return
6446 org.freedesktop.Properties and org.freedesktop.Introspectable
6447 interfaces when we are introspected.
6449 * doc/dbus-specification.xml: allow empty interface name when
6452 2005-01-29 Havoc Pennington <hp@redhat.com>
6454 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6455 though it uses glib, it could be extended for any binding in
6458 * glib/dbus-gobject.c (gobject_message_function): change to the
6459 new way properties work
6461 * dbus/dbus-protocol.h: add the new interfaces
6463 * doc/dbus-specification.xml: document the introspection format,
6464 Introspectable interface, and add an org.freedesktop.Properties
6467 * glib/dbus-gparser.c: add support for a <property> element
6469 * glib/dbus-gidl.c: add PropertyInfo
6471 * glib/dbus-gobject.c (handle_introspect): put the outermost
6472 <node> outside the signal and property descriptions.
6473 (introspect_properties): export properties as <property> rather
6474 than as method calls
6476 2005-01-28 Havoc Pennington <hp@redhat.com>
6478 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6479 related to authentication protocol
6481 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
6483 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6484 - BUS_ACTIVATION -> BUS_STARTER
6485 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6486 - class MessageIter (__init__): Added recursion checking
6487 so we throw a nice error instead of just disconnecting from the
6489 (get): Added arg_type parameter for recursion.
6490 Removed the nil type
6491 Added signiture type placeholder (not implemented)
6492 Added struct type placeholder (not implemented)
6493 Added varient type placeholder (not implemented)
6494 Commented out dict type for now
6495 (get_element_type): renamed from get_array_type
6496 (get_*): changed to use the dbus_message_iter_get_basic API
6497 (get_*_array): removed in favor of recursive get_array method
6498 (get_array): new recursive method which calls get to marshal
6499 the elements of the array
6500 (value_to_dbus_sig): New method returns the corrasponding
6501 dbus signiture to a python value
6502 (append): Comment out dict handling for now
6503 Handle lists with the new recursive API
6504 Comment out None handling for now
6505 (append_nil): removed
6506 (append_*): changed to use dbus_message_iter_append_basic API
6507 (append_*_array): removed in favor of recursive append_array
6509 (__str__): Make it easier to print out recursive iterators
6511 - class Message (__str__): moved type inspection to the
6512 MessageIter class' __str__ method
6513 (get_iter): Added an append parameter wich defaults to False
6514 If True use the new API's to create an append iterator
6516 * python/dbus.py: Update to use new bindings API
6517 - TYPE_ACTIVATION -> TYPE_STARTER
6518 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6519 - class ActivationBus -> class StarterBus
6520 - class RemoteObject (__call__): get an append iterator
6521 - (_dispatch_dbus_method_call): get an append iterator
6522 - class Object (emit_signal): get an append iterator
6524 * python/examples/: Fixed up the examples to work with the new API
6526 2005-01-28 Joe Shaw <joeshaw@novell.com>
6528 * configure.in: Bump version up to 0.30.
6530 * HACKING: Add a release item to bump the version number up after
6533 2005-01-28 Havoc Pennington <hp@redhat.com>
6535 * doc/dbus-specification.xml: update to describe 16-bit types and
6538 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6541 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6544 * dbus/dbus-marshal-recursive.c: implement
6546 2005-01-27 Havoc Pennington <hp@redhat.com>
6548 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6550 * configure.in: find the right type for 16 and 32 bit ints as well
6553 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6554 the 16-bit types so people don't have to stuff them in 32-bit or
6557 2005-01-27 Havoc Pennington <hp@redhat.com>
6559 * dbus/dbus-message.c: byteswap the message if you init an
6560 iterator to read/write from it
6562 * dbus/dbus-marshal-byteswap.c: new file implementing
6563 _dbus_marshal_byteswap()
6565 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6567 2005-01-26 Havoc Pennington <hp@redhat.com>
6569 * dbus/dbus-marshal-validate-util.c: break this out (and fix
6570 build, apparently - nobody noticed?)
6572 2005-01-26 Havoc Pennington <hp@redhat.com>
6574 * dbus/dbus-marshal-recursive.h: remove todo comment
6576 2005-01-25 Joe Shaw <joeshaw@novell.com>
6578 * Land the mono binding changes to conform to the new APIs.
6580 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6581 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6583 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
6584 type code as a string.
6585 (InitAppending): Rename dbus_message_append_iter_init() to
6586 dbus_message_iter_init_append().
6588 * mono/BusDriver.cs: Rename ServiceEventHandler to
6589 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
6590 Rename ServiceOwnerChanged to NameOwnerChanged.
6592 * mono/Connection.cs: Rename BaseService to UniqueName, and the
6595 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
6597 * mono/Service.cs: Rename Exists to HasOwner, internally rename
6598 dbus_bus_acquire_service() to dbus_bus_request_name().
6600 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6601 of Type.UnderlyingSystemType to get the correct element type for
6603 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6604 dbus_message_get_{element|arg}_type() instead of
6605 dbus_message_iter_init_array_iterator().
6606 (Append): Replace dbus_message_iter_append_array() with
6607 dbus_message_iter_open_container() and
6608 dbus_message_iter_close_container().
6610 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
6611 types have been removed.
6613 * mono/DBusType/*.cs: Replace calls of
6614 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6615 but specify the type in the DllImport extern declaration. Ditto
6616 for dbus_message_iter_append_[type]() ->
6617 dbus_message_iter_append_basic().
6619 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6620 NameOwnerChangedHandler.
6622 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
6624 * python/dbus_bindings.pyx.in: Rename of methods and bindings
6625 - get_base_service -> get_unique_name
6626 - bus_get_base_service -> bus_get_unique_name
6627 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6628 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
6629 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6630 - bus_activate_service -> bus_start_service_by_name
6631 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6632 - bus_acquire_service -> bus_request_name
6633 - dbus_bus_acquire_service -> dbus_bus_request_name
6634 - bus_service_exists -> bus_name_has_owner
6635 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6637 * python/dbus.py: Rename of methods
6638 - activate_service -> start_service_by_name
6639 - bus_acquire_service -> bus_request_name
6640 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
6641 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6644 2005-01-24 Joe Shaw <joeshaw@novell.com>
6646 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6647 signature for the method that can't be found.
6649 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6650 the message has any arguments, we need to call
6651 _dbus_type_reader_get_current_type(), not
6652 _dbus_type_reader_has_next().
6654 2005-01-24 Havoc Pennington <hp@redhat.com>
6656 * dbus/dbus-message-factory.c: more testing of message validation
6658 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6661 2005-01-23 Havoc Pennington <hp@redhat.com>
6663 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
6664 get this all working, not many tests in the framework yet though
6666 2005-01-22 Havoc Pennington <hp@redhat.com>
6668 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6669 tutorial, based on work from David Wheeler.
6671 2005-01-21 Havoc Pennington <hp@redhat.com>
6673 * dbus/dbus-bus.c: add more return_if_fail checks
6675 * dbus/dbus-message.c (load_message): have the "no validation"
6676 mode (have to edit the code to toggle the mode for now though)
6678 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6679 skips all validation; I want to use this at least for benchmark
6680 baseline, I'm not sure if it should be a publicly-available switch.
6682 2005-01-21 Havoc Pennington <hp@redhat.com>
6684 * glib/dbus-gmain.c: don't put the GLib bindings in the same
6685 toplevel doxygen group as the low-level API stuff
6687 * dbus/dbus.h: note that libdbus is the low-level API
6689 2005-01-20 Havoc Pennington <hp@redhat.com>
6691 * update-dbus-docs.sh: script to update docs on the web site, only
6692 works for me though. neener.
6694 2005-01-20 Havoc Pennington <hp@redhat.com>
6696 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6697 code can reveal bugs in it
6699 2005-01-20 Havoc Pennington <hp@redhat.com>
6701 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6702 select() version, patches from Tor Lillqvist
6704 2005-01-20 Havoc Pennington <hp@redhat.com>
6706 * doc/dbus-tutorial.xml: replace > with >
6708 * bus/services.c (bus_registry_acquire_service): validate the name
6709 and return a better error if it's no good.
6711 * doc/dbus-specification.xml: note NO_AUTO_START change
6713 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6714 from AUTO_START, we're toggling the default
6716 * bus/dispatch.c: adapt the tests to change of auto-start default
6718 2005-01-18 Havoc Pennington <hp@redhat.com>
6720 * rename dbus-daemon-1 to dbus-daemon throughout
6722 2005-01-18 Havoc Pennington <hp@redhat.com>
6724 * Throughout, grand renaming to strip out the use of "service",
6725 just say "name" instead (or "bus name" when ambiguous). Did not
6726 change the internal code of the message bus itself, only the
6727 programmer-facing API and messages.
6729 * doc/dbus-specification.xml: further update the message bus section
6731 * bus/config-parser.c (all_are_equiv): fix bug using freed string
6734 2005-01-17 Havoc Pennington <hp@redhat.com>
6736 * dbus/dbus-types.h: remove 16-bit types since we don't use them
6739 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6740 "invalid name character" not only non-ASCII
6742 * doc/dbus-specification.xml: further update spec, message bus
6743 parts are still out-of-date but the marshaling etc. stuff is now
6746 2005-01-17 Havoc Pennington <hp@redhat.com>
6748 * doc/dbus-specification.xml: partially update spec
6750 2005-01-17 Havoc Pennington <hp@redhat.com>
6752 * Throughout, align variant bodies according to the contained
6753 type, rather than always to 8. Should save a fair bit of space in
6756 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6757 fix handling of case where p == end
6759 * doc/TODO: remove the dbus_bool_t item and variant alignment items
6761 2005-01-17 Havoc Pennington <hp@redhat.com>
6763 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6765 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6766 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
6767 are marshaling/unmarshaling a boolean.
6769 2005-01-16 Havoc Pennington <hp@redhat.com>
6771 This is about it on what can be disabled/deleted from libdbus
6772 easily, back below 150K anyhow. Deeper cuts are more work than
6773 just turning the code off as I've done here.
6775 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6776 signed int convenience funcs
6778 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6781 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6782 things out of libdbus
6784 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6786 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6787 tests-enabled-only, though it should probably be deleted)
6789 * dbus/dbus-message-util.c: same stuff
6791 * dbus/dbus-auth-util.c: same stuff
6793 2005-01-16 Havoc Pennington <hp@redhat.com>
6795 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6797 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6798 way for stripping down dbus-userdb.c stuff included in libdbus.
6799 Rename _dbus_parse_uid for consistency.
6801 2005-01-16 Havoc Pennington <hp@redhat.com>
6803 * dbus/dbus-internals.c (_dbus_real_assert): print the function
6804 name the assertion failed in
6806 * dbus/dbus-internals.h (_dbus_return_if_fail)
6807 (_dbus_return_val_if_fail): assert that the name of the function
6808 containing the check doesn't start with '_', since we only want to
6809 use checks on public functions
6811 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6812 checks to assertions
6814 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6815 change checks to asserts for private function
6817 * dbus/dbus-message.c (_dbus_message_set_serial): checks
6818 to asserts for private function
6820 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6821 broken assertion that was breaking make check
6822 (_dbus_type_reader_array_is_empty): remove this rather than fix
6823 it, was only used in assertions
6825 2005-01-16 Havoc Pennington <hp@redhat.com>
6827 * test/unused-code-gc.py: hacky script to find code that's used
6828 only by the bus (not libdbus) or used only by tests or not used at
6829 all. It has some false alarms, but looks like we can clean up a
6830 lot of size from libdbus.
6832 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6833 dbus/Makefile.am: initially move 10K of binary size out of libdbus
6835 2005-01-16 Havoc Pennington <hp@redhat.com>
6837 * Add and fix docs according to Doxygen warnings throughout
6840 * dbus/dbus-marshal-recursive.c
6841 (_dbus_type_reader_array_is_empty): change this to just call
6842 array_reader_get_array_len() and make it static
6844 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6846 (dbus_message_iter_init_append): rename from append_iter_init
6848 * dbus/dbus-marshal-recursive.c
6849 (_dbus_type_reader_get_element_type): rename from
6850 _dbus_type_reader_get_array_type
6852 2005-01-15 Havoc Pennington <hp@redhat.com>
6854 * test/glib/test-profile.c (with_bus_server_filter): fix crash
6856 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6857 when DBUS_DISABLE_ASSERT
6858 (_dbus_marshal_set_basic): be sure we align for the string length
6860 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6863 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6864 inline macro version
6865 (_dbus_string_set_byte): provide inline macro version
6867 2005-01-15 Havoc Pennington <hp@redhat.com>
6869 * Land the new message args API and type system.
6871 This patch is huge, but the public API change is not
6872 really large. The set of D-BUS types has changed somewhat,
6873 and the arg "getters" are more geared toward language bindings;
6874 they don't make a copy, etc.
6876 There are also some known issues. See these emails for details
6878 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6879 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6881 * dbus/dbus-marshal-*: all the new stuff
6883 * dbus/dbus-message.c: basically rewritten
6885 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6886 freed blocks to be all non-nul bytes so using freed memory is less
6887 likely to work right
6889 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6890 DBUS_FAIL_MALLOC=N environment variable, so you can do
6891 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6892 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6895 * qt/message.cpp: port to the new message args API
6896 (operator<<): use str.utf8() rather than str.unicode()
6897 (pretty sure this is right from the Qt docs?)
6899 * glib/dbus-gvalue.c: port to the new message args API
6901 * bus/dispatch.c, bus/driver.c: port to the new message args API
6903 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6904 "locked" flag to TRUE and align_offset to 0; I guess we never
6905 looked at these anyhow, but seems cleaner.
6907 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6908 move allocation padding macro to this header; use it to implement
6909 (_DBUS_STRING_STATIC): ability to declare a static string.
6911 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6912 change to return TRUE if the interface is not set.
6914 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6915 to dbus-marshal-validate.[hc]
6917 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6920 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6921 to dbus-marshal-*.[hc]
6923 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6924 function here from dbus-marshal.c
6926 2005-01-12 Joe Shaw <joeshaw@novell.com>
6928 * NEWS: Update for 0.23.
6930 * configure.in: Release 0.23.
6932 2005-01-12 Joe Shaw <joeshaw@novell.com>
6934 * mono/Makefile.am, mono/example/Makefile.am: Always build the
6935 dbus DLL with --debug. Clean up after the .mdb files this leaves
6938 * mono/doc/Makefile.am: Need to uninstall the docs on "make
6941 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6942 is an enum, get the enum's underlying type. Another mono
6945 2005-01-11 Joe Shaw <joeshaw@novell.com>
6947 Patch from Sjoerd Simons <sjoerd@luon.net>
6949 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6950 DESTDIR. It breaks stuff.
6952 2005-01-11 Joe Shaw <joeshaw@novell.com>
6954 Patch from Tambet Ingo <tambet@ximian.com>
6956 * mono/DBusType/Array.cs (Get): Get the underlying element type by
6957 calling type.GetElementType(). The code previously depended on
6958 broken Mono behavior, which was fixed in Mono 1.1.3.
6960 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6961 Activator.CreateInstance() so that the class's constructor is
6962 called with the right parameters.
6964 2005-01-11 Joe Shaw <joeshaw@novell.com>
6966 Patch from Timo Teräs <ext-timo.teras@nokia.com>
6968 * dbus/dbus-connection.c
6969 (_dbus_connection_queue_received_message_link): Call
6970 _dbus_connection_remove_timeout() instead of the _locked()
6971 variant, since it's always called from
6972 _dbus_connection_handle_watch(), which handles the locking.
6973 Removed the _locked() variant since it's no longer used.
6975 2005-01-03 Havoc Pennington <hp@redhat.com>
6977 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6980 2004-12-26 Havoc Pennington <hp@redhat.com>
6982 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6984 2005-01-03 Havoc Pennington <hp@redhat.com>
6986 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6989 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6991 2005-01-02 Havoc Pennington <hp@redhat.com>
6993 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6995 2005-01-01 Havoc Pennington <hp@redhat.com>
6997 * configure.in: add -Wfloat-equal
6999 2005-01-01 Havoc Pennington <hp@redhat.com>
7001 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
7002 for a variety of reasons '==' doesn't do this.
7004 2004-12-31 Havoc Pennington <hp@redhat.com>
7006 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7007 I keep wishing I had
7009 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7011 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7013 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7015 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7016 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7017 dbus-protocol.h. Because they are defines and not enums they are not
7020 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
7022 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7023 dbus_bus_activate_service
7025 * python/dbus.py (Bus.activate_service): activate a service on the
7028 2004-12-24 Havoc Pennington <hp@redhat.com>
7030 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7031 file format has also changed and I haven't adapted to that yet
7033 * Makefile.am: load .gcno files from latest gcc
7035 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
7036 * Patch from Rob Taylor <robtaylor@fastmail.fm>
7038 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7041 * python/dbus.py (get_unix_user): Added binding to
7042 call dbus_bindings.bus_get_unix_user
7044 * python/extract.py: Modified the proto_pat regex to
7045 handle unsigned long
7047 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7049 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7050 better POSIX compliance.
7052 2004-12-19 Havoc Pennington <hp@redhat.com>
7054 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
7055 (_dbus_string_insert_8_aligned): new functions
7057 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7059 2004-12-18 Havoc Pennington <hp@redhat.com>
7061 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7064 * dbus/dbus-message.c: fix a comment, and add a still-unused
7065 not-implemented function
7067 * dbus/dbus-marshal.h: fix comment
7069 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7071 2004-12-17 Joe Shaw <joeshaw@novell.com>
7073 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7074 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7075 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7076 Type.UnderlyingSystemType to get the actual system type
7077 underneath. This code previously depended on the broken Mono
7078 behavior, which was fixed in 1.1.3.
7080 2004-11-27 Havoc Pennington <hp@redhat.com>
7082 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7084 (_dbus_string_get_const_data): inline when asserts are disabled
7086 * dbus/dbus-message.c: record the _dbus_current_generation of
7087 creation so we can complain if dbus_shutdown() is used improperly.
7088 Do this only if checks are enabled.
7090 * dbus/dbus-connection.c: ditto
7092 2004-11-26 Havoc Pennington <hp@redhat.com>
7094 * test/glib/test-profile.c: add with_bus mode to profile echoes
7095 that go through the bus.
7097 * test/glib/run-test.sh: add ability to run test-profile
7099 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7102 2004-11-26 Havoc Pennington <hp@redhat.com>
7104 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7105 thing was implemented
7107 2004-11-26 Havoc Pennington <hp@redhat.com>
7109 * test/glib/test-profile.c: tweak a bit, add support for some
7110 made-up minimal malloc overhead with plain sockets, since in
7111 real life some sort of buffers are unavoidable thus we could
7112 count them in the theoretical best case
7114 2004-11-26 Havoc Pennington <hp@redhat.com>
7116 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7117 where I was trying to cache one too many messages
7119 2004-11-26 Havoc Pennington <hp@redhat.com>
7121 * dbus/dbus-message.c: reimplement message cache as an array which
7122 makes the cache about twice as fast and saves maybe 1.5% overall
7124 2004-11-26 Havoc Pennington <hp@redhat.com>
7126 * dbus/dbus-threads.c (init_global_locks): forgot to put the
7127 message cache lock here
7129 2004-11-26 Havoc Pennington <hp@redhat.com>
7131 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7132 the "char byte_order" next to each other to save 4 bytes
7133 (dbus_message_new_empty_header): reduce preallocation, since the
7134 message cache should achieve a similar effect
7135 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7136 message cache that keeps a few DBusMessage around in a pool,
7137 another 8% speedup or so.
7139 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7141 2004-11-25 Havoc Pennington <hp@redhat.com>
7143 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7144 to write, without reading or blocking, try it before the poll()
7145 and skip the poll() if nothing remains to write. This is about a
7146 3% speedup in the echo client/server
7148 2004-11-25 Havoc Pennington <hp@redhat.com>
7150 The primary change here is to always write() once before adding
7151 the write watch, which gives us about a 10% performance increase.
7153 * dbus/dbus-transport-unix.c: a number of modifications to cope
7154 with removing messages_pending
7155 (check_write_watch): properly handle
7156 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7157 messages_pending stuff
7158 (check_read_watch): properly handle WAITING_FOR_MEMORY and
7160 (unix_handle_watch): after writing, see if the write watch can be
7162 (unix_do_iteration): assert that write_watch/read_watch are
7163 non-NULL rather than testing that they aren't, since they
7164 aren't allowed to be NULL. check_write_watch() at the end so
7165 we add the watch if we did not finish writing (e.g. got EAGAIN)
7167 * dbus/dbus-transport-protected.h: remove messages_pending call,
7168 since it resulted in too much inefficient watch adding/removing;
7169 instead we now require that the transport user does an iteration
7170 after queueing outgoing messages, and after trying the first
7171 write() we add a write watch if we got EAGAIN or exceeded our
7172 max bytes to write per iteration setting
7174 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7177 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7178 freed and then accessed, valgrind flagged this bug, fix it
7180 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7181 as the last valid field plus 1, where really it is equal to the
7182 last valid field. Corrects some message corruption issues.
7184 * dbus/dbus-mainloop.c: verbosity changes
7186 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7187 instead of aborting in one of the test codepaths
7189 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7190 caused not printing the pid ever again if a verbose was missing
7191 the newline at the end
7192 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7194 * dbus/dbus-connection.c: verbosity changes;
7195 (dbus_connection_has_messages_to_send): new function
7196 (_dbus_connection_message_sent): no longer call transport->messages_pending
7197 (_dbus_connection_send_preallocated_unlocked): do one iteration to
7198 try to write() immediately, so we can avoid the write watch. This
7199 is the core purpose of this patchset
7200 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7201 dump the outgoing message queue, so nobody will get confused
7202 trying to send them or thinking stuff is pending to be sent
7204 * bus/test.c: verbosity changes
7206 * bus/driver.c: verbosity/assertion changes
7208 * bus/dispatch.c: a bunch of little tweaks to get it working again
7209 because this patchset changes when/where you need to block.
7211 2004-11-23 Havoc Pennington <hp@redhat.com>
7213 * test/glib/test-profile.c: modify to accept a plain_sockets
7214 argument in which case it will bench plain sockets instead of
7215 libdbus, for comparison purposes.
7217 2004-11-22 Havoc Pennington <hp@redhat.com>
7219 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7220 threads for more time, so sysprof can get a grip on it.
7222 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7225 2004-11-13 Havoc Pennington <hp@redhat.com>
7227 * test/glib/test-profile.c: fix this thing up a bit
7229 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7230 preallocation sizes by a fair bit; not sure if this will be an
7231 overall performance win or not, but it does reduce reallocs.
7233 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7234 the test hack that forced constant realloc if asserts are
7235 disabled, so we can profile sanely. Sprinkle in some
7236 _DBUS_UNLIKELY() which are probably pointless, but before I
7237 noticed the real performance problem I put them in.
7238 (_dbus_string_validate_utf8): micro-optimize this thing a little
7239 bit, though callgrind says it didn't help; then special-case
7240 ascii, which did help a lot; then be sure we detect nul bytes as
7241 invalid, which is a bugfix.
7242 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7243 superstition; use memset to nul the padding instead of a manual
7245 (_dbus_string_get_length): inline this as a
7246 macro; it showed up in the profile because it's used for loop
7249 2004-11-10 Colin Walters <walters@verbum.org>
7251 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7254 2004-11-09 Colin Walters <walters@verbum.org>
7256 * dbus/dbus-string.c (_dbus_string_get_length): New
7257 function, writes DBusString to C buffer.
7259 * dbus/dbus-string.h: Prototype it.
7261 * dbus/dbus-message.c (dbus_message_type_to_string): New
7262 function, converts message type into C string.
7264 * dbus/dbus-message.h: Prototype it.
7266 * bus/selinux.c (bus_selinux_check): Take source pid,
7267 target pid, and audit data. Pass audit data to
7269 (log_audit_callback): New function, appends extra
7271 (bus_selinux_allows_acquire_service): Also take
7272 service name, add it to audit data.
7273 (bus_selinux_allows_send): Also take message
7274 type, interface, method member, error name,
7275 and destination, and add them to audit data.
7276 (log_cb): Initialize func_audit.
7278 * bus/selinux.h (bus_selinux_allows_acquire_service)
7279 (bus_selinux_allows_send): Update prototypes
7281 * bus/services.c (bus_registry_acquire_service): Pass
7282 service name to bus_selinux_allows_acquire_service.
7284 * bus/bus.c (bus_context_check_security_policy): Pass
7285 additional audit data. Move assignment of dest
7288 2004-11-07 Colin Walters <walters@verbum.org>
7290 * dbus/dbus-transport-unix.c (do_authentication): Always
7291 initialize auth_completed.
7293 2004-11-07 Colin Walters <walters@verbum.org>
7295 * bus/bus.c (load_config): Break into three
7296 separate functions: process_config_first_time_only,
7297 process_config_every_time, and process_config_postinit.
7298 (process_config_every_time): Move call of
7299 bus_registry_set_service_context_table into
7300 process_config_postinit.
7301 (process_config_postinit): New function, does
7302 any processing that needs to happen late
7303 in initialization (and also on reload).
7304 (bus_context_new): Instead of calling load_config,
7305 open config parser here and call process_config_first_time_only
7306 and process_config_every_time directly. Later, after
7307 we have forked but before changing UID,
7308 invoke bus_selinux_full_init, and then call
7309 process_config_postinit.
7310 (bus_context_reload_config): As in bus_context_new,
7311 load parse file inside here, and call process_config_every_time
7312 and process_config_postinit.
7314 * bus/services.h, bus/services.c
7315 (bus_registry_set_service_context_table): Rename
7316 from bus_registry_set_sid_table. Take string hash from config
7317 parser, and convert them here into SIDs.
7319 * bus/config-parser.c (struct BusConfigParser): Have
7320 config parser only store a mapping of service->context
7322 (merge_service_context_hash): New function.
7323 (merge_included): Merge context string hashes instead
7324 of using bus_selinux_id_table_union.
7325 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7326 simply create a new string hash.
7327 (bus_config_parser_unref): Unref it.
7328 (start_selinux_child): Simply insert strings into hash,
7329 don't call bus_selinux_id_table_copy_over.
7331 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7332 (bus_selinux_id_table_copy_over): Delete.
7334 2004-11-03 Colin Walters <walters@verbum.org>
7336 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7339 2004-11-03 Colin Walters <walters@verbum.org>
7341 * bus/test-main.c (test_pre_hook): Fix test logic,
7342 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7344 2004-11-02 Colin Walters <walters@redhat.com>
7346 * bus/selinux.c (bus_selinux_init): Split into two functions,
7347 bus_selinux_pre_init and bus_selinux_post_init.
7348 (bus_selinux_pre_init): Just determine whether SELinux is
7350 (bus_selinux_post_init): Do everything else.
7352 * bus/main.c (main): Call bus_selinux_pre_init before parsing
7353 config file, and bus_selinux_post_init after. This ensures that
7354 we don't lose the policyreload notification thread that
7355 bus_selinux_init created before forking previously.
7357 * bus/test-main.c (test_pre_hook): Update for split.
7359 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
7361 Patch from Johan Fischer <linux@fischaz.com>
7363 * mono/doc/Makefile.am (install-data-local): Added directory
7366 2004-10-29 Colin Walters <walters@redhat.com>
7368 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7369 parameter for fd to write pid to.
7371 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7373 * bus/bus.c (bus_context_new): Pass print_pid_fd
7374 to _dbus_become_daemon (bug #1720)
7376 2004-10-29 Colin Walters <walters@redhat.com>
7378 Patch from Ed Catmur <ed@catmur.co.uk>
7380 * mono/doc/Makefile.am (install-data-local): Handle
7383 2004-10-29 Colin Walters <walters@redhat.com>
7385 * bus/.cvsignore, qt/.cvsignore: Update.
7387 2004-10-29 Colin Walters <walters@redhat.com>
7389 Patch from Kristof Vansant <de_lupus@pandora.be>
7391 * configure.in: Detect Slackware.
7392 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7393 * bus/rc.messagebus.in: New file.
7395 2004-10-29 Colin Walters <walters@redhat.com>
7397 * tools/dbus-monitor.c (filter_func): Return
7398 DBUS_HANDLER_RESULT_HANDLED in filter function
7400 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7402 2004-10-29 Colin Walters <walters@redhat.com>
7404 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7406 * bus/services.c (bus_registry_acquire_service):
7407 Correctly retrieve service name from DBusString
7410 2004-10-29 Colin Walters <walters@redhat.com>
7412 * dbus/dbus-glib.h: Update documentation to not
7413 refer to internal APIs.
7415 2004-10-27 Joe Shaw <joeshaw@novell.com>
7417 * mono/Arguments.cs (GetDBusTypeConstructor):
7418 type.UnderlyingSystemType will return "System.Byte" if you do it
7419 on "byte[]", which is not what we want. So check the type.IsArray
7420 property and use System.Array instead.
7422 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
7424 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7425 the DBusUserInfo structure since this is passed into the function.
7426 This would cause a double free when the function that allocated
7427 the structure would try to free it when an error occured.
7429 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7430 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7431 for service activation to avoid 32bit/64bit parallel install issues
7433 2004-10-21 Colin Walters <walters@verbum.org>
7435 * AUTHORS: Fix my email address, the @gnu.org one
7436 has been bouncing for some time. Also add J5.
7438 2004-10-21 Colin Walters <walters@verbum.org>
7440 * dbus/dbus-transport-unix.c (do_authentication): Return
7441 authentication status to callers.
7442 (unix_handle_watch): If we completed authentication this round,
7443 don't do another read. Instead wait until the next iteration,
7444 after we've read any pending data in the auth buffer.
7445 (unix_do_iteration): Ditto.
7446 (unix_handle_watch): Updated for new do_authentication prototype.
7448 2004-10-18 Colin Walters <walters@verbum.org>
7450 * bus/selinux.c (bus_selinux_enabled): Handle
7451 --disable-selinux case.
7453 2004-10-18 Colin Walters <walters@verbum.org>
7455 * bus/selinux.h: Add bus_selinux_enabled.
7457 * bus/selinux.c (bus_selinux_enabled): Implement it.
7459 * bus/config-parser.c (struct include): Add
7460 if_selinux_enabled member.
7461 (start_busconfig_child): Parse if_selinux_enabled
7462 attribute for include.
7463 (bus_config_parser_content): Handle it.
7465 * bus/session.conf.in, bus/system.conf.in: Add
7466 inclusion of context mapping to default config files;
7467 conditional on SELinux being enabled.
7469 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7471 * test/data/invalid-config-files/badselinux-1.conf,
7472 test/data/invalid-config-files/badselinux-2.conf:
7473 Test files for bad syntax.
7475 2004-10-17 Colin Walters <walters@verbum.org>
7477 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7478 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7479 format specifier mismatches.
7481 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
7483 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7486 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7487 pointer (bug #1540, Leonardo Boiko).
7489 2004-09-28 Jon Trowbridge <trow@ximian.com>
7491 * mono/BusDriver.cs: Changed BusDriver struct to remove
7492 the ServiceCreated and ServiceDeleted events and replace them
7493 with the new ServiceOwnerChanged event.
7495 * mono/example/BusListener.cs: Added a new example program,
7496 which listens for and reports any ServiceOwnerChanged events
7499 * mono/example/Makefile.am (DESTDIR): Build changes for the
7500 new BusListener.cs example.
7502 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
7504 * bus/signals.c (bus_match_rule_parse): validate the components of
7505 match rules (bug #1439).
7507 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7509 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
7511 * doc/dbus-specification.xml: document ServiceOwnerChanged
7514 * bus/driver.c, bus/driver.h, bus/services.c: Use
7515 ServiceOwnerChanged signal instead of ServiceCreated and
7518 * bus/dispatch.c: update testcase for the new signal.
7520 2004-09-20 Jon Trowbridge <trow@ximian.com>
7522 Patch from Nat Friedman <nat@novell.com>
7524 * mono/Makefile.am: A number of small build fixes to allow "make
7525 distcheck" to succeed.
7527 * mono/example/Makefile.am: "make distcheck" fixes.
7529 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7532 * test/Makefile.am: "make distcheck" fixes.
7534 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7536 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7538 * doc/busconfig.dtd: update the DTD for the at_console attribute.
7540 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7541 messages after the first one (bug #1389).
7543 * bus/dispatch.c (check_double_hello_message): add a test case for
7544 the double hello message bug.
7545 (check_existent_service_activation): fix check of spawning error.
7547 2004-09-16 David Zeuthen <david@fubar.dk>
7549 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7551 2004-09-12 David Zeuthen <david@fubar.dk>
7553 Patch from Kay Sievers <kay.sievers@vrfy.org>
7555 * bus/bus.c (bus_context_new):
7557 * bus/main.c (usage)
7559 Add commandline option --nofork to override configuration file
7562 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7564 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7565 compilers don't like it (bug #974).
7567 2004-09-04 Harald Fernengel <harry@kdevelop.org>
7569 * qt/connection.*: Applied patch by Jérôme Lodewyck
7570 <lodewyck@clipper.ens.fr> to integrate an existing
7571 connection into the Qt eventloop
7573 2004-08-30 Jon Trowbridge <trow@ximian.com>
7575 * mono/BusDriver.cs: Added. This is a class for interacting with
7576 the org.freedesktop.DBus service.
7578 * mono/Message.cs: Added a mechanism to expose the message that is
7579 currently being dispatched via the static Message.Current
7580 property. Added Message.Sender and Message.Destination
7583 * mono/Handler.cs: Expose the dispatched message via
7584 Message.Current when handling method calls.
7586 * mono/Service.cs: Expose the dispatched message via
7587 Message.Current when handling signal emissions.
7589 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7590 Connection.BaseService property.
7592 2004-08-28 Havoc Pennington <hp@redhat.com>
7594 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7596 More fixes from Steve Grubb
7598 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7599 (_dbus_listen_tcp_socket): fix fd leak
7601 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7602 EINTR to a bit lower in the code
7604 2004-08-26 Jon Trowbridge <trow@ximian.com>
7606 * bus/driver.c (bus_driver_handle_service_exists): Respond with
7607 TRUE if we are inquiring about the existence of the built-in
7608 org.freedesktop.DBus service.
7610 2004-08-25 John Palmieri <johnp@redhat.com>
7611 * bus/config-parser.c:
7612 (struct PolicyType): Add POLICY_CONSOLE
7613 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7614 (start_busconfig_child): Sets up console element when
7615 <policy at_console=""> is encountered in a policy file
7616 (append_rule_from_element): Convert console elements to console
7620 (bus_policy_create_client_policy): Add console rules to the client
7621 policy based on if the client is at the console
7622 (bus_policy_append_console_rule): New function for adding a
7623 console rule to a policy
7624 (bus_policy_merge): Handle console rule merging
7626 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7627 where we check for console user files
7629 * dbus/dbus-sysdeps.c:
7630 (_dbus_file_exists): New function which checks if the given
7632 (_dbus_user_at_console): New function which does the system
7633 specific process of checking if the user is at the console
7635 * dbus/dbus-userdb.c:
7636 (_dbus_is_console_user): New function converts a UID to user name
7637 and then calls the system specific _dbus_user_at_console to
7638 see if the user is at the console and therefor a console user
7640 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
7642 * bus/config-parser.c (set_limit):
7643 * bus/dbus-daemon-1.1.in:
7644 * test/data/valid-config-files/many-rules.conf: set the
7645 max_match_rules_per_connection limt from the config file.
7647 * doc/busconfig.dtd: update the DTD.
7649 * bus/driver.c: remove some unused variables.
7651 2004-08-24 Mikael Hallendal <micke@imendio.com>
7653 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
7654 it's been replaced by dbus_g_bus_get
7656 2004-08-23 Colin Walters <walters@redhat.com>
7658 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7660 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7662 * bus/selinux.c: Create a thread for policy reload notification.
7663 (bus_selinux_get_policy_root): Implement.
7665 * bus/config-parser.c (start_busconfig_child)
7666 (bus_config_parser_content): Support SELinux-root relative
7669 * configure.in <HAVE_SELINUX>: Add -lpthread.
7671 * bus/test-main.c (test_pre_hook, test_post_hook): New.
7672 (test_post_hook): Move memory checking into here.
7673 (test_pre_hook, test_post_hook): Move SELinux checks in
7674 here, but conditional on a DBUS_TEST_SELINUX environment
7675 variable. Unfortunately we can't run the SELinux checks
7676 as a normal user, since they won't have any permissions
7677 for /selinux. So this will have to be tested manually
7678 for now, until we have virtualization for most of
7681 2004-08-23 Havoc Pennington <hp@redhat.com>
7683 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7684 drop supplementary groups, suggested by Steve Grubb
7686 2004-08-20 Colin Walters <walters@redhat.com>
7688 * bus/config-parser.c (start_busconfig_child): Remove some unused
7691 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7694 2004-08-17 Joe Shaw <joeshaw@novell.com>
7696 * configure.in: If --enable-mono is passed in, if we can't find
7699 * mono/Makefile.am: Use /gacutil to install assemblies into the
7702 2004-08-12 Havoc Pennington <hp@redhat.com>
7704 * NEWS: update for 0.22
7706 * configure.in: release 0.22
7708 2004-08-11 Colin Walters <walters@redhat.com>
7710 * tools/dbus-send.c (main, usage): Add --reply-timeout
7713 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
7715 * bus/bus.c (process_config_first_time_only): get rid of an unused
7716 DBusError that was causing a memoy leak (bug #989).
7718 * dbus/dbus-keyring.c, dbus/dbus-message.c:
7719 fix compilation on Solaris/Forte C (bug #974)
7721 * bus/main.c (main): plug two minuscule memleaks.
7723 2004-08-10 Havoc Pennington <hp@redhat.com>
7725 * doc/dbus-tutorial.xml: add some more info on GLib bindings
7727 2004-08-09 Havoc Pennington <hp@redhat.com>
7729 * COPYING: switch to Academic Free License version 2.1 instead of
7730 2.0, to resolve complaints about patent termination clause.
7732 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
7734 * README: added documentation for the --enable-python
7737 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7739 * bus/config-parser.c (bus_config_parser_new): fix an invalid
7740 _unref in the SELinux support.
7742 * doc/busconfig.dtd: update DTD for SELinux support.
7744 * bus/config-loader-libxml.c: fix error handler and parser
7745 initialisation/cleanup. OOM test now works with libxml2 HEAD.
7747 * configure.in: remove the warning about libxml2.
7749 * dbus/dbus-bus.c: silence doxygen warning.
7751 2004-07-31 Colin Walters <walters@redhat.com>
7753 * configure.in: Move #error in SELinux check to its own line.
7755 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7757 * dbus/dbus-internals.h (_DBUS_SET_OOM):
7758 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7761 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7762 broken by the change in the _SET_OOM macros.
7764 2004-07-31 Colin Walters <walters@redhat.com>
7766 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7769 2004-07-31 Colin Walters <walters@redhat.com>
7771 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7772 to correctly detect DBUS__ACQUIRE_SVC. Also add an
7775 2004-07-24 Havoc Pennington <hp@redhat.com>
7777 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7779 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7782 * configure.in: add --enable-selinux
7784 * bus/policy.c (bus_policy_merge): add FIXME to a comment
7786 * bus/main.c (main): initialize and shut down selinux
7788 * bus/connection.c: store SELinux ID on each connection, to avoid
7789 repeated getting of the string context and converting it into
7792 * bus/bus.c (bus_context_get_policy): new accessor, though it
7794 (bus_context_check_security_policy): check whether the security
7795 context of sender connection can send to the security context of
7796 recipient connection
7798 * bus/config-parser.c: add parsing for <selinux> and <associate>
7800 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7801 implement dbus_connection_get_unix_fd()
7803 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7804 function, used by the selinux stuff
7806 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
7808 * bus/config-loader-libxml.c: complete the implementation of
7809 libxml backend for config file loader. Doesn't work with full OOM
7812 * configure.in: change error when selecting libxml into a warning.
7814 * test/data/invalid-config-files: add two non-well-formed XML
7817 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7819 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7820 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7821 be necessary to read all the buffer. (bug #894)
7823 * bus/activation.c (bus_activation_activate_service): fix a
7824 potential assertion failure (bug #896). Small optimization in the
7825 case of auto-activation messages.
7827 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7828 add test case for byte-through-vararg bug (#901). patch by Kimmo
7831 2004-07-28 Anders Carlsson <andersca@gnome.org>
7834 * python/dbus_bindings.pyx.in:
7835 Add dbus.init_gthreads (), allow emit_signal to pass
7836 arguments to the signal.
7838 2004-07-24 Havoc Pennington <hp@redhat.com>
7840 * AUTHORS: add some people, not really comprehensively, let me
7841 know if I missed you
7843 2004-07-24 Havoc Pennington <hp@redhat.com>
7845 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7848 * test/Makefile.am (DIST_SUBDIRS): here also
7850 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7852 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7853 breaking build on Solaris, reported by Farhad Saberi on the ML.
7855 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7856 va_arg invocation to account for integer promotion in the case of
7857 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7859 * bus/services.c (bus_service_remove_owner): fix bug #902, use
7860 _dbus_list_get_first_link, not _dbus_list_get_first.
7862 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7864 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7865 handler functions so that the asserts in _dbus_object_subtree_unref
7868 * dbus/dbus-transport-unix.c (do_reading):
7869 _dbus_transport_queue_messages return value is of type
7870 dbus_bool_t, not DBusDispatchStatus.
7872 2004-07-19 David Zeuthen <david@fubar.dk>
7874 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7877 (check_get_connection_unix_user): Debug says GetProperty; but the
7878 method is called GetConnectionUnixUser
7879 (check_get_connection_unix_process_id): New function
7880 (bus_dispatch_test): Actually call check_get_connection_unix_user();
7881 also call check_get_connection_unix_process_id()
7884 (bus_driver_handle_get_connection_unix_process_id): New function,
7885 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7889 (handle_server_data_external_mech): Set pid from the credentials
7890 obtained from the socket
7892 * dbus/dbus-connection.c:
7893 (dbus_connection_get_unix_process_id): New function
7895 * dbus/dbus-connection.h:
7896 Add prototype for dbus_connection_get_unix_process_id
7898 * dbus/dbus-transport.c:
7899 (_dbus_transport_get_unix_process_id): New function
7901 * dbus/dbus-transport.h:
7902 Add prototype for _dbus_transport_get_unix_process_id
7904 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
7906 * dbus/dbus-message.c: Message counter fix, patch by Christian
7907 Hammond <chipx86@gnupdate.org>
7909 2004-07-18 Seth Nickell <seth@gnome.org>
7912 * python/dbus_bindings.pyx.in:
7913 * python/tests/test-client.py:
7915 Add dbus.ByteArray and dbus_bindings.ByteArray
7916 types so that byte streams can be passed back.
7918 Give jdahlin the heaps of credit that are so
7921 2004-07-12 Seth Nickell <seth@gnome.org>
7925 Add message argument to the default object_method_handler
7928 * python/dbus_bindings.pyx.in:
7930 Automatically return NIL when passed an empty list
7931 (we can't pass back a list since lists are typed
7932 and we don't have any idea what type the the client
7933 intended the list to be... :-( )
7935 2004-07-10 Seth Nickell <seth@gnome.org>
7937 * python/examples/Makefile.am:
7939 Fix distcheck breakage caused by new examples.
7941 2004-07-10 Seth Nickell <seth@gnome.org>
7945 Add "message" argument to service-side dbus.Object
7946 methods. This will break existing services written
7947 using the python bindings, but will allow extraction
7948 of all the message information (e.g. who its from).
7950 Add improved "object oriented" signal handling/emission.
7952 * python/examples/example-service.py:
7956 * python/examples/example-signal-emitter.py:
7957 * python/examples/example-signal-recipient.py:
7959 Two new examples that show how to emit and receive
7960 signals using the new APIs.
7962 * python/examples/example-signals.py:
7963 * python/examples/gconf-proxy-service.py:
7964 * python/examples/gconf-proxy-service2.py:
7966 Add "message" argument to service methods.
7968 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
7970 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7971 * dbus/bus.c (dbus_bus_get_unix_user)
7972 * doc/dbus-specification.xml: implement GetConnectionUnixUser
7973 method of org.freedesktop.DBus interface.
7975 * bus/dispatch.c: test case
7977 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
7979 * python/Makefile.am: switched include directory from glib/ to dbus/
7980 since dbus-glib.h moved
7982 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7984 * configure.in: prevent building the gcj stuff and libxml loader
7985 since they are broken.
7987 2004-06-20 Havoc Pennington <hp@redhat.com>
7989 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
7990 codes from the dbus error names
7992 * glib/dbus-glib.h: move to subdir dbus/ since it's included
7993 as dbus/dbus-glib.h and that breakage is now visible due to
7994 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7996 * glib/dbus-glib.h: s/gproxy/g_proxy/
7998 * dbus/dbus-shared.h: new header to hold stuff shared with
8001 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8004 * glib/dbus-glib.h (dbus_set_g_error): move to
8005 dbus-glib-lowlevel.h
8007 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8008 of stuff to enable this
8010 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8012 * a bunch of other changes with the same basic "separate glib
8013 bindings from dbus.h" theme
8015 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
8017 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8019 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8021 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
8023 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8024 the reply value of the ServiceExists message.
8026 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
8028 * python/dbus_bindings.pyx.in: No longer need to parse path
8029 elements and pass them as arrays of strings. The C API now
8030 accepts plain path strings.
8031 (_build_parsed_path): removed
8033 2004-06-07 Havoc Pennington <hp@redhat.com>
8035 * doc/TODO: remove auto-activation item since it's done; sort
8036 items by importance/milestone
8038 2004-06-07 Havoc Pennington <hp@redhat.com>
8040 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8041 random signature when using REQUIRED_FIELDS (this hack won't work
8044 * dbus/dbus-message.c: change the signature to be a header field,
8045 instead of message->signature special-case string. Incremental
8046 step forward. Then we can fix up code to send the signature in the
8047 message, then fix up code to validate said signature, then fix up
8048 code to not put the typecodes inline, etc.
8049 (load_one_message): don't make up the signature after the fact
8050 (decode_header_data): require signature field for the known
8053 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8055 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8057 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
8059 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8061 * mono/Handler.cs: Updated to follow new path argument for
8062 (un-)registering objects.
8064 * mono/example/Makefile.am:
8066 * configure.in: Bumped required version for mono and use new -pkg
8069 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
8071 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8072 registration functions take the path argument as char* instead of
8075 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8076 split off the path decompostion part of
8077 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8080 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8082 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8084 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8085 machine approach. A state is implemented as a function that
8086 handles incoming events as specified for that state.
8088 * doc/dbus-specification.xml: Update auth protocol state machine
8089 specification to match implementation. Remove some leftover
8092 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8094 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8095 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8098 * Doxyfile.in: remove deprecated options.
8100 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8101 glib/test-thread.h, glib/test-thread-client.c,
8102 glib/test-thread-server.c, glib/test-profile.c,
8103 glib/test-dbus-glib.c: remove these unused files.
8105 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
8107 * dbus/dbus-object-tree.c
8108 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8109 non-fallback handlers (bug #684).
8110 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8111 (find_subtree_recurse): report wether the returned subtree is an
8112 exact match or a "fallback" match higher up in the tree.
8113 (object_tree_test_iteration): update test case.
8115 2004-06-01 Seth Nickell <seth@gnome.org>
8117 * python/dbus_bindings.pyx.in:
8118 * python/tests/test-client.py:
8120 Round off basic type support. Add dicts (yay!), and
8121 remaining array types.
8123 Make MessageIter more general so it works for dicts too.
8125 Mark all loop variables as C integers.
8127 2004-05-31 Havoc Pennington <hp@redhat.com>
8129 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8132 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8134 * glib/dbus-glib-tool.c (main): set up to have a --self-test
8135 option that runs the tests, and start filling in some code
8136 including for starters just dumping the interfaces to stdout
8138 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8140 * test/data/valid-introspection-files/lots-of-types.xml: test of
8141 an example introspection file
8143 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8146 2004-05-31 Seth Nickell <seth@gnome.org>
8148 * python/dbus_bindings.pyx.in:
8149 * python/tests/test-client.py:
8154 Fix string array memory trashing bug... oops...
8156 2004-05-30 Seth Nickell <seth@gnome.org>
8160 Add a nicer-but-less-flexible alternate API for handling
8161 calls to virtual objects in dbus.ObjectTree.
8163 Screw up the argument order to the dbus.Object constructor
8164 for consistency with dbus.ObjectTree (and to make dbus_methods
8165 optional for future extension)
8167 * python/examples/Makefile.am:
8168 * python/examples/gconf-proxy-service.py:
8169 * python/examples/gconf-proxy-service2.py:
8171 Alternate implementation of gconf-proxy-service using the
8172 nicer dbus.ObjectTree API.
8174 * python/examples/example-service.py:
8175 * python/tests/test-server.py
8177 Reverse the argument order to deal with dbus.Object constructor
8180 2004-05-30 Seth Nickell <seth@gnome.org>
8182 * python/examples/example-client.py:
8183 * python/examples/example-service.py:
8185 Take it back. Lists seem to work but they're broken
8186 in the test suite. Make the base examples use
8189 2004-05-30 Seth Nickell <seth@gnome.org>
8191 * python/dbus_bindings.pyx.in:
8192 * python/tests/test-client.py:
8194 Add some more tests and fix errors that crop up.
8195 Unfortunately, currently it seems like marshalling
8196 and unmarshalling of lists is completely broken :-(
8198 2004-05-30 Seth Nickell <seth@gnome.org>
8200 * python/dbus_bindings.pyx.in:
8202 Add support for ObjectPath type.
8206 Refactor message handling code to a common function.
8208 * python/tests/test-client.py:
8209 * python/tests/test-server.py:
8211 Add tests that check to make sure values of all types
8212 can be echoed from a service w/o mangling.
8214 2004-05-29 Seth Nickell <seth@gnome.org>
8218 Add ObjectTree class which allows implementation
8219 of trees of "virtual" objects. Basically the python
8220 wrapper for "register_fallback".
8222 * python/examples/Makefile.am
8223 * python/examples/gconf-proxy-client.py:
8224 * python/examples/gconf-proxy-service.py:
8226 Implement a simple GConf proxy service that supports
8227 get/set on string and int GConf keys using the ObjectTree.
8229 2004-05-29 Seth Nickell <seth@gnome.org>
8232 * python/examples/example-client.py:
8233 * python/examples/example-service.py:
8234 * python/examples/list-system-services.py:
8236 Add SessionBus, SystemBus and ActivationBus classes
8237 so you don't need to know the special little BUS_TYPE
8240 2004-05-29 Havoc Pennington <hp@redhat.com>
8242 * bus/config-parser.c (process_test_valid_subdir): temporarily
8243 stop testing config parser OOM handling, since expat has issues
8244 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8246 * bus/dbus-daemon-1.1.in: change requested_reply to
8247 send_requested_reply/receive_requested_reply so we can send the
8248 replies, not just receive them.
8250 * bus/config-parser.c: parse the new
8251 send_requested_reply/receive_requested_reply
8253 * bus/policy.c (bus_client_policy_check_can_send): add
8254 requested_reply argument and use it
8256 * bus/bus.c (bus_context_check_security_policy): pass through
8257 requested_reply status to message send check
8259 * bus/system.conf.in: adapt to requested_reply change
8261 2004-05-28 Havoc Pennington <hp@redhat.com>
8263 * test/glib/test-service-glib.c (main): remove unused variable
8265 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8267 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8268 from the enum, no longer in use.
8270 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8273 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8274 whether error_name passed in is a valid error name.
8276 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
8278 * dbus/dbus-message.c (dbus_message_get_args): Added support for
8279 OBJECT_PATH and OBJECT_PATH_ARRAY
8281 2004-05-28 Seth Nickell <seth@gnome.org>
8283 * python/examples/Makefile.am:
8285 Forget to add Makefile.am. Do not pass go.
8287 2004-05-28 Michael Meeks <michael@ximian.com>
8289 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
8292 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8294 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8295 (_dbus_message_iter_get_basic_type_array): impl.
8296 drastically simplify ~all relevant _get methods to use these.
8297 (_dbus_message_iter_append_basic_array),
8298 (dbus_message_iter_append_basic): impl
8299 drastically simplify ~all relevant _append methods to use these.
8301 * dbus/dbus-message-builder.c (parse_basic_type)
8302 (parse_basic_array, lookup_basic_type): impl.
8303 (_dbus_message_data_load): prune scads of duplicate /
8306 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
8307 (_dbus_demarshal_basic_type): implement,
8308 (demarshal_and_validate_len/arg): beef up debug.
8309 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8311 2004-05-27 Seth Nickell <seth@gnome.org>
8314 * python/Makefile.am:
8316 Include the example python apps in the tarball.
8318 * python/examples/list-system-services.py
8320 Add a python new example that fetches the list of services
8321 from the system bus.
8323 2004-05-27 Seth Nickell <seth@gnome.org>
8326 * python/dbus_bindings.pyx.in:
8328 Fix failure to notify that a signal was not handled,
8329 resulted in hung functions.
8331 2004-05-25 Colin Walters <walters@redhat.com>
8333 * tools/dbus-monitor.c (main): Monitor all types of messages.
8335 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
8337 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8338 which unregisters the object path and disposes the handler.
8340 2004-05-23 Kristian Høgsberg <krh@redhat.com>
8342 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8344 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8345 operands to && so we call dbus_message_iter_next () for the last
8348 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8350 * dbus/dbus-object-tree.c
8351 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8352 children even if the requested path isn't registered.
8353 (object_tree_test_iteration): test object_tree_list_registered.
8355 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8358 2004-05-20 Kristian Høgsberg <krh@redhat.com>
8360 * doc/TODO: Remove resolved items.
8362 * bus/expirelist.h (struct BusExpireList): remove unused n_items
8365 * bus/connection.c (bus_connections_expect_reply): Enforce the
8366 per-connection limit on pending replies.
8368 Patch from Jon Trowbridge <trow@ximian.com>:
8370 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
8371 up a watch that triggers a config reload when one end of the pipe
8373 (signal_handler): Instead of doing the config reload in our SIGHUP
8374 handler, just write to the reload pipe and let the associated
8375 watch handle the reload when control returns to the main loop.
8377 * bus/driver.c (bus_driver_handle_reload_config): Added.
8378 Implements a ReloadConfig method for requesting a configuration
8379 file reload via the bus driver.
8381 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
8383 * HACKING: Updated release instructions concerning the wiki page.
8385 2004-05-18 Kristian Høgsberg <krh@redhat.com>
8387 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8388 filter against auth->allowed_mechs; we only add allowed mechs in
8389 record_mechanisms().
8391 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8392 ALLOWED_MECHS to auth-script format so we can set the list of
8395 * data/auth/client-out-of-mechanisms.auth-script: New test to
8396 check client disconnects when it is out of mechanisms to try.
8398 * dbus/dbus-auth.c (process_command): Remove check for lines
8399 longer that 1 MB; we only buffer up maximum 16 kB.
8401 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8402 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8403 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8404 assume there might be unused bytes.
8406 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8407 client-out-of-mechs, it is handled in process_reject(). Move check
8408 for max failures to send_rejected(), as it's a server-only thing.
8410 * dbus/dbus-auth.c: Factor out protocol reply code into functions
8411 send_auth(), send_data(), send_rejected(), send_error(),
8412 send_ok(), send_begin() and send_cancel().
8414 2004-05-17 Kristian Høgsberg <krh@redhat.com>
8416 Remove base64 encoding, replace with hex encoding. Original patch
8417 from trow@ximian.com, added error handling.
8419 * dbus/dbus-string.c (_dbus_string_base64_encode)
8420 (_dbus_string_base64_decode): Remove.
8421 (_dbus_string_hex_decode): Add end_return argument so we can
8422 distinguish between OOM and invalid hex encoding.
8423 (_dbus_string_test): Remove base64 tests and add test case for
8426 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8427 Replace base64 with hex.
8429 * test/data/auth/invalid-hex-encoding.auth-script: New test case
8430 for invalid hex encoded data in auth protocol.
8432 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
8434 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8437 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8439 * mono/dbus-sharp.dll.config.in: Added for GAC
8440 * mono/dbus-sharp.snk: Added for GAC
8441 * mono/Assembly.cs.in: Added for GAC
8442 * mono/Makefile.am: Changes for GAC installation
8443 * configure.in: Added refs for dbus-sharp.dll.config.in and
8444 Assembly.cs.in. More fixes for mono testing
8445 * mono/example/Makefile.am: Changed var to CSC
8446 * Makefile.am: Changed flag name to DBUS_USE_CSC
8448 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8450 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8451 * mono/doc/*: Added documentation framework
8452 * configure.in: Added monodoc check
8453 * README: Added description of mono configure flags
8455 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
8457 * doc/dbus-specification.xml: Added a "Required" column to the
8458 header fields table and changed the "zero or more" verbage in
8459 the above paragraph to read "The header must contain the required
8460 named header fields and zero or more of the optional named header
8462 * test/data/invalid-messages/*.message: Added the required PATH
8463 named header field to the tests so that they don't fail on
8464 'Missing path field'
8466 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
8468 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8469 the stack by implicitly defining variable and parameter types and
8470 removing the hack of defining C pointers as python objects and later
8473 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
8475 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8477 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
8479 * mono/DBusType/Dict.cs: Handle empty dicts
8480 * mono/DBusType/Array.cs: Handle empty arrays
8481 * mono/Arguments.cs: Handle empty arguments
8483 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
8485 * dbus-sharp.pc.in: Modified to include include Libs and Requires
8488 2004-04-25 Kristian Høgsberg <krh@redhat.com>
8490 * test/data/valid-messages/standard-*.message: Update message
8491 test scripts to new header field names.
8493 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
8495 * test/break-loader.c (randomly_do_n_things): tracked down buffer
8496 overflow to times_we_did_each_thing array which would chop off the
8497 first character of the failure_dir string. Increased the size of
8498 the array to 7 to reflect the number of random mutation functions
8501 2004-04-21 Kristian Høgsberg <krh@redhat.com>
8503 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8504 unix_server->watch here, it is unreffed in disconnect.
8505 (_dbus_server_new_for_tcp_socket): convert NULL host to
8506 "localhost" here so we don't append NULL to address.
8508 * dbus/dbus-server.c (_dbus_server_test): Add test case for
8509 various addresses, including tcp with no explicit host.
8511 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8513 * dbus/dbus-message.c (decode_header_data, decode_string_field):
8514 fix incorrect setting of .name_offset in the HeaderField (it was
8515 off by two bytes, positioned right after the name and typecode)
8517 * bus/bus.c (bus_context_new, bus_context_unref): test before
8518 calling dbus_server_free_data_slot and _dbus_user_database_unref
8519 in case of an error.
8521 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8524 2004-04-19 Kristian Høgsberg <krh@redhat.com>
8526 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8527 _dbus_poll() instead of select().
8529 2004-04-15 Jon Trowbridge <trow@ximian.com>
8531 * bus/main.c (signal_handler): Reload the configuration files
8533 (main): Set up our SIGHUP handler.
8535 * bus/bus.c (struct BusContext): Store the config file, user and
8536 fork flag in the BusContext.
8537 (process_config_first_time_only): Added. Contains the code
8538 (previously in bus_context_new) for setting up the BusContext from
8539 the BusConfigParser that should only be run the first time the
8540 config files are read.
8541 (process_config_every_time): Added. Contains the code (previously
8542 in bus_context_new) for setting up the BusContext from the
8543 BusConfigParser that should be run every time the config files are
8545 (load_config): Added. Builds a BusConfigParser from the config
8546 files and passes the resulting structure off to
8547 process_config_first_time_only (assuming this is the first time)
8548 and process_config_every_time.
8549 (bus_context_new): All of the config-related code has been moved
8550 to process_config_first_time_only and process_config_every_time.
8551 Now this function just does the non-config-related initializations
8552 and calls load_config.
8553 (bus_context_reload_config): Added.
8555 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
8557 * bus/driver.c (bus_driver_handle_get_service_owner):
8558 implement a GetServiceOwner method.
8559 * doc/dbus-specification.xml: document it.
8560 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8562 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8563 implement, using the bus GetServiceOwner method.
8565 * test/glib/test-dbus-glib.c:
8566 use dbus_gproxy_new_for_service_owner so that we can receive the
8569 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
8571 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8572 dbus/dbus-message.c, dbus/dbus-protocol.h
8573 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8575 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8576 dbus/dbus-message.c, dbus/dbus-protocol.h
8577 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8579 * dbus/dbus-internals.c (_dbus_header_field_to_string):
8580 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8581 DBUS_HEADER_FIELD_SENDER resolves to "sender"
8583 * doc/dbus-specification.xml (Header Fields Table):
8584 s/SERVICE/DESTINATION
8585 s/SENDER_SERVICE/SENDER
8588 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
8590 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8593 2004-04-13 Michael Meeks <michael@ximian.com>
8595 * glib/dbus-gobject.c (handle_introspect): split out
8596 (introspect_properties): this.
8597 (handle_introspect): implement this.
8599 * test/glib/Makefile.am: use the absolute path so the bus
8600 daemon's chdir ("/") doesn't kill us dead.
8602 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8604 2004-04-12 Jon Trowbridge <trow@ximian.com>
8606 * bus/config-parser.c (struct BusConfigParser): Added
8607 included_files field.
8608 (seen_include): Added. Checks whether or not a file has already
8609 been included by any parent BusConfigParser.
8610 (bus_config_parser_new): Copy the parent's included_files.
8611 (include_file): Track which files have been included, and fail on
8612 circular inclusions.
8613 (process_test_valid_subdir): Changed printf to report if we are
8614 testing valid or invalid conf files.
8615 (all_are_equiv): Changed printf to be a bit clearer about
8616 what we are actually doing.
8617 (bus_config_parser_test): Test invalid configuration files.
8619 2004-04-09 Jon Trowbridge <trow@ximian.com>
8621 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8622 argument. If non-null, the newly-constructed BusConfigParser will
8623 be initialized with the parent's BusLimits instead of the default
8625 (include_file): When including a config file, pass in
8626 the current parser as the parent and then copy the BusLimits
8627 from the included BusConfigParser pack to the current parser.
8628 (process_test_valid_subdir): Renamed from process_test_subdir.
8629 (process_test_equiv_subdir): Added. Walks through a directory,
8630 descending into each subdirectory and loading the config files
8631 it finds there. If any subdirectory contains two config files
8632 that don't produce identical BusConfigParser structs, fail.
8633 For now, the BusConfigParser's BusPolicies are not compared.
8634 (bus_config_parser_test): Call both process_test_valid_subdir and
8635 process_test_equiv_subdir.
8637 * bus/config-loader-libxml.c (bus_config_load): Take a parent
8638 argument and pass it along to the call to bus_config_parser_new.
8639 Also made a few small changes to allow this code to compile.
8641 * bus/config-loader-expat.c (bus_config_load): Take a parent
8642 argument and pass it along to the call to bus_config_parser_new.
8644 * bus/bus.c (bus_context_new): Load the config file
8645 with a NULL parent argument.
8647 2004-03-29 Michael Meeks <michael@ximian.com>
8649 * glib/dbus-gobject.c (introspect_properties): split
8650 out, fix mangled 'while' flow control.
8651 (introspect_signals): implement.
8652 (handle_introspect): update.
8654 2004-03-29 Michael Meeks <michael@ximian.com>
8656 * glib/dbus-gobject.c (set_object_property): split out /
8657 re-work, use the property type, and not the message type(!)
8658 (get_object_property): ditto.
8660 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8661 (dbus_gvalue_marshal): make this code re-usable, needed
8662 for signals too, also on both proxy and server side.
8663 Re-write for more efficiency / readability.
8665 2004-03-29 Michael Meeks <michael@ximian.com>
8667 * dbus/dbus-message.c
8668 (dbus_message_new_error_printf): impl.
8670 * dbus/dbus-connection.c
8671 (dbus_connection_unregister_object_path): fix warning.
8673 * configure.in: fix no-mono-installed situation.
8675 2004-03-27 Havoc Pennington <hp@redhat.com>
8677 Patch from Timo Teräs:
8679 * tools/dbus-send.c (main): if --print-reply, assume type is
8680 method call; support boolean type args
8682 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8683 bunch of memleak and logic bugs
8685 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8687 * mono/Arguments.cs:
8688 * mono/Introspector.cs:
8690 * mono/InterfaceProxy.cs:
8692 * mono/ProxyBuilder.cs:
8694 Added InterfaceProxy class to avoid building proxies for every
8698 * dbus-message.c (dbus_message_append_args_valist)
8699 (dbus_message_iter_get_object_path)
8700 (dbus_message_iter_get_object_path_array)
8701 (dbus_message_iter_append_object_path)
8702 (dbus_message_iter_append_object_path_array):
8703 Added object_path iter functions to handle OBJECT_PATH arguments
8705 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8707 First checkin of mono bindings.
8710 Build stuff for the bindings
8711 * dbus-sharp.pc.in: Added for pkgconfig
8713 2004-03-21 Havoc Pennington <hp@redhat.com>
8715 * test/test-service.c (main): remove debug spew
8717 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8719 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8722 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8723 (dbus_message_iter_init_array_iterator)
8724 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8725 indicate whether the iterator is empty
8727 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8730 2004-03-19 Havoc Pennington <hp@redhat.com>
8732 * NEWS: 0.21 updates
8734 * configure.in: 0.21
8736 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8738 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8739 you don't need pyrex to make dist
8741 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8744 2004-03-18 Richard Hult <richard@imendio.com>
8746 * dbus/dbus-message.c (dbus_message_get_auto_activation)
8747 (dbus_message_set_auto_activation): Add doxygen docs.
8749 2004-03-16 Richard Hult <richard@imendio.com>
8751 * bus/activation.c: (bus_activation_service_created),
8752 (bus_activation_send_pending_auto_activation_messages),
8753 (bus_activation_activate_service):
8755 * bus/dispatch.c: (bus_dispatch),
8756 (check_nonexistent_service_auto_activation),
8757 (check_service_auto_activated),
8758 (check_segfault_service_auto_activation),
8759 (check_existent_service_auto_activation), (bus_dispatch_test):
8760 * bus/driver.c: (bus_driver_handle_activate_service):
8761 * bus/services.c: (bus_registry_acquire_service):
8762 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8763 (dbus_message_get_auto_activation):
8764 * dbus/dbus-message.h:
8765 * dbus/dbus-protocol.h: Implement auto-activation.
8767 * doc/dbus-specification.xml: Add auto-activation to the spec.
8769 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
8771 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8772 fix a bug with CUSTOM types.
8774 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8775 a unit test for this bug (used to fail).
8777 2004-03-12 Mikael Hallendal <micke@imendio.com>
8780 (babysitter_watch_callback): notify all pending activations waiting for
8781 the same exec that the activation failed.
8782 (bus_activation_activate_service): shortcut the activation if we
8783 already waiting for the same executable to start up.
8785 2004-03-12 Mikael Hallendal <micke@imendio.com>
8788 - Added service file reloading.
8789 Each service files directory is kept in an hash table in
8790 BusActivation and each BusActivationEntry knows what .service-file it
8791 was read from. So when you try to activate a service the bus will
8792 check if it's been updated, removed or if new .service-files has
8794 - Test code at the bottom for the service file reloading.
8795 * bus/test-main.c: (main):
8797 - added service reloading test.
8798 * dbus/dbus-sysdeps.c:
8799 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8801 2004-03-08 Michael Meeks <michael@ximian.com>
8803 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
8804 bail immediately if disconnected, to avoid busy loop.
8806 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8807 cleanup cut/paste/inefficiency.
8809 2004-03-01 David Zeuthen <david@fubar.dk>
8811 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8812 bug where args were used twice. This bug resulted in a segfault
8813 on a Debian/PPC system when starting the messagebus daemon. Include
8814 dbus-sysdeps.h for DBUS_VA_COPY
8816 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8818 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8819 appropriate va_copy implementation. From GLib
8821 2004-02-24 Joe Shaw <joe@ximian.com>
8823 * bus/services.c (bus_registry_acquire_service): We need to pass
8824 in the service name to dbus_set_error() to prevent a crash.
8826 2003-12-26 Anders Carlsson <andersca@gnome.org>
8828 * AUTHORS: Reveal my True identity.
8830 2003-12-17 Mikael Hallendal <micke@imendio.com>
8832 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8833 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8835 2003-12-13 Mikael Hallendal <micke@imendio.com>
8837 * doc/TODO: Added not about better error check of configuration files.
8839 2003-12-02 Richard Hult <richard@imendio.com>
8841 * Update AFL version to 2.0 throughout the source files to reflect
8842 the update that was done a while ago.
8844 2003-12-02 Richard Hult <richard@imendio.com>
8846 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8847 wrote_dict_key to FALSE on the iter that the dict is appended to,
8848 just like when appending other types. Fixes a bug where a dict
8849 couldn't be put inside a dict.
8850 (dbus_message_iter_append_dict_key): Fix typo in warning message.
8851 (message_iter_test, _dbus_message_test): Add test case for dict
8854 2003-12-01 David Zeuthen <david@fubar.dk>
8856 * python/dbus.py: Add the actual message when calling the reciever
8857 of a signal such that parameters can be inspected. Add the method
8858 remove_signal_receiver
8860 2003-11-26 Mikael Hallendal <micke@imendio.com>
8864 * glib/*.[ch]: Made ref functions return the pointer
8866 2003-11-25 Zack Rusin <zack@kde.org>
8868 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8870 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
8873 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
8874 the Integrator and to better fit with the server,
8876 2003-11-24 Zack Rusin <zack@kde.org>
8878 * qt/connection.h, qt/connection.cpp: removing initDbus method since
8879 the integrator handles it now
8881 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8882 since QTimer wasn't really meant to be used the way DBusTimeout is
8884 2003-11-24 Zack Rusin <zack@kde.org>
8886 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
8887 Integrator class which integrates D-BUS with the Qt event loop,
8889 * qt/connection.h, qt/connection.cpp: Move all the code which
8890 was dealing with D-BUS integration to the Integrator class,
8891 and start using Integrator,
8893 2003-11-23 Zack Rusin <zack@kde.org>
8895 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
8898 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8899 switching namespaces to DBusQt, reworking the class,
8901 * Makefile.cvs: switching dependencies so that it matches KDE
8904 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
8907 2003-11-19 Havoc Pennington <hp@redhat.com>
8911 * configure.in: bump version to 0.20
8913 * configure.in (have_qt): add yet another place to look for qt
8914 (someone hand trolltech a .pc file...)
8916 2003-11-01 Havoc Pennington <hp@redhat.com>
8918 * doc/dbus-specification.xml: add state machine docs on the auth
8919 protocol; just a first draft, I'm sure it's wrong.
8921 2003-10-28 David Zeuthen <david@fubar.dk>
8923 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8924 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8926 2003-10-28 Havoc Pennington <hp@redhat.com>
8928 * dbus/dbus-message.c (get_next_field): delete unused function
8930 2003-10-28 Havoc Pennington <hp@redhat.com>
8932 * bus/expirelist.c (do_expiration_with_current_time): detect
8933 failure of the expire_func due to OOM
8935 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8937 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8938 NoReply error that's now created by the bus when the service exits
8940 2003-10-28 Havoc Pennington <hp@redhat.com>
8942 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8943 tests for set_path, set_interface, set_member, etc.
8945 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8947 * dbus/dbus-message.c (set_string_field): always just delete and
8948 re-append the field; accept NULL for deletion
8949 (re_align_fields_recurse): reimplement
8951 2003-10-26 Havoc Pennington <hp@redhat.com>
8953 * dbus/dbus-connection.c: fix docs to properly describe the
8954 disconnected message
8955 (_dbus_connection_notify_disconnected): remove this function;
8956 we can't synchronously add the disconnected message, we have to
8957 do it after we've queued any remaining real messages
8958 (_dbus_connection_get_dispatch_status_unlocked): queue the
8959 disconnect message only if the transport has finished queueing all
8960 its real messages and is disconnected.
8961 (dbus_connection_disconnect): update the dispatch status here
8963 2003-10-22 Havoc Pennington <hp@redhat.com>
8965 * bus/bus.c (bus_context_check_security_policy): fix up assertion
8967 * bus/connection.c (bus_transaction_send_from_driver): set the
8968 destination to the connection's base service
8970 2003-10-20 Havoc Pennington <hp@redhat.com>
8972 hmm, make check is currently not passing.
8974 * doc/dbus-specification.xml: add requirement that custom type
8975 names follow the same rules as interface names.
8977 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8978 duplication and allow 'c' to be 'custom'; dict is now 'm' for
8981 * doc/dbus-specification.xml: update type codes to match
8982 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8983 CUSTOM. Add type OBJECT_PATH to the spec.
8985 2003-10-17 Havoc Pennington <hp@redhat.com>
8987 * bus/driver.c (create_unique_client_name): use "." as separator
8988 in base service names instead of '-'
8990 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8991 byte at the end of the string
8993 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8994 optimization macros since string validation seems to be a slow
8997 * doc/dbus-specification.xml: restrict valid
8998 service/interface/member/error names. Add test suite code for the
9001 * dbus/dbus-string.c: limit service/interface/member/error names
9004 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9005 format arg to verbose spew
9007 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9008 memory, return instead of g_error
9010 * test/test-service.c (path_message_func): support emitting a
9013 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9014 activation bus type if DBUS_BUS_ACTIVATION was set; default to
9015 assuming the activation bus was the session bus so that services
9016 started manually will still register.
9017 (init_connections_unlocked): fix so that in OOM situation we get
9018 the same semantics when retrying the function
9020 * test/test-service.c (main): change to use path registration, to
9021 test those codepaths; register with DBUS_BUS_ACTIVATION rather
9022 than DBUS_BUS_SESSION
9024 2003-10-16 Havoc Pennington <hp@redhat.com>
9026 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9028 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9029 coverage of the tests
9030 (coverage-report.txt): don't move the .da and .bbg files around
9032 2003-10-16 Havoc Pennington <hp@redhat.com>
9034 * bus/bus.c (struct BusContext): remove struct field I didn't mean
9037 2003-10-16 Havoc Pennington <hp@redhat.com>
9039 * bus/connection.c (bus_pending_reply_expired): either cancel or
9041 (bus_connections_check_reply): use unlink, not remove_link, as we
9042 don't want to free the link; fixes double free mess
9044 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9045 where no reply was received
9047 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9050 * bus/signals.c (match_rule_matches): add special cases for the
9051 bus driver, so you can match on sender/destination for it.
9053 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9054 DBUS_PRINT_BACKTRACE is set
9056 * dbus/dbus-internals.c: add pid to assertion failure messages
9058 * dbus/dbus-connection.c: add message type code to the debug spew
9060 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9061 sender=foo not service=foo
9063 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9064 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
9065 DBUS_ACTIVATION_ADDRESS instead
9067 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9068 DBUS_SYSTEM_BUS_ADDRESS if appropriate
9070 * bus/bus.c (bus_context_new): handle OOM copying bus type into
9073 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9074 (dbus_message_iter_get_object_path_array): new function (half
9075 finished, disabled for the moment)
9077 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9078 DBUS_MESSAGE_TYPE_ERROR
9080 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9081 avoid redirecting stderr to /dev/null
9082 (babysit): close stdin if not doing the "exit_with_session" thing
9084 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9085 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9086 stdout/stdin, so things don't get confused
9088 * bus/system.conf.in: fix to allow replies, I modified .conf
9089 instead of .conf.in again.
9091 2003-10-14 David Zeuthen <david@fubar.dk>
9093 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9094 argtype to arg_type when raising unknown arg type exception.
9095 Changed type list to reflect the changes in dbus-protocol.h so
9096 the bindings actually work.
9098 2003-10-14 Havoc Pennington <hp@redhat.com>
9100 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9101 to have a bug keeping it from outputting the .da files sometimes
9102 (string_get_string): don't append garbage nul bytes to the string.
9104 2003-10-15 Seth Nickell <seth@gnome.org>
9106 * python/Makefile.am:
9108 Include dbus_h_wrapper.h in the dist tarball.
9110 2003-10-14 Havoc Pennington <hp@redhat.com>
9112 * bus/bus.c (bus_context_check_security_policy): revamp this to
9113 work more sanely with new policy-based requested reply setup
9115 * bus/connection.c (bus_transaction_send_from_driver): set bus
9116 driver messages as no reply
9118 * bus/policy.c (bus_client_policy_check_can_receive): handle a
9119 requested_reply attribute on allow/deny rules
9121 * bus/system.conf: add <allow requested_reply="true"/>
9123 * bus/driver.c (bus_driver_handle_message): fix check for replies
9124 sent to the bus driver, which was backward. How did this ever work
9125 at all though? I think I'm missing something.
9127 * dbus/dbus-message.c (decode_header_data): require error and
9128 method return messages to have a reply serial field to be valid
9129 (_dbus_message_loader_queue_messages): break up this function;
9130 validate that reply serial and plain serial are nonzero;
9131 clean up the OOM/error handling.
9132 (get_uint_field): don't return -1 from this
9133 (dbus_message_create_header): fix signed/unsigned bug
9135 * bus/connection.c (bus_connections_expect_reply): save serial of
9136 the incoming message, not reply serial
9138 2003-10-14 Havoc Pennington <hp@redhat.com>
9140 * bus/connection.c: implement pending reply tracking using
9143 * bus/bus.c (bus_context_check_security_policy): verify that a
9144 reply is pending in order to allow a reply to be sent. Deny
9145 messages of unknown type.
9147 * bus/dbus-daemon-1.1.in: update to mention new resource limits
9149 * bus/bus.c (bus_context_get_max_replies_per_connection): new
9150 (bus_context_get_reply_timeout): new
9152 2003-10-13 Seth Nickell <seth@gnome.org>
9154 * python/Makefile.am:
9156 Pass "make distcheck": remove a couple files from DIST_FILES
9157 that weren't included in the final version.
9159 2003-10-12 Havoc Pennington <hp@pobox.com>
9161 Added test code that 1) starts an actual bus daemon and 2) uses
9162 DBusGProxy; fixed bugs that were revealed by the test. Lots
9163 more testing possible, but this is the basic framework.
9165 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9166 empty proxy lists from the proxy list hash
9168 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9169 couple of return_if_fail checks
9171 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9172 to allocate, so everything is cleared to NULL as it should be.
9174 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9175 source as data to dbus_connection_set_timeout_functions() as the
9176 timeout functions expected
9178 * test/glib/run-test.sh: add a little script to start up a message
9179 bus and run tests using it
9181 * tools/dbus-launch.1: updates
9183 * tools/dbus-launch.c (main): add --config-file option
9185 * tools/dbus-launch.c (main): remove confusing else if (runprog)
9186 that could never be reached.
9188 * dbus/dbus-message.c (dbus_message_new_method_return)
9189 (dbus_message_new_error, dbus_message_new_signal): set the
9190 no-reply-expected flag on all these. Redundant, but may
9191 as well be consistent.
9193 2003-10-11 Havoc Pennington <hp@pobox.com>
9195 * test/decode-gcov.c (function_solve_graph): make broken block
9196 graph a nonfatal error since it seems to be broken. Need to debug
9199 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9200 can't just check type > INVALID < LAST anymore
9202 * dbus/dbus-message.c (dbus_message_get_signature): new function
9203 (dbus_message_has_signature): new function
9204 (struct DBusMessage): add signature field (right now it isn't sent
9205 over the wire, just generated on the fly)
9206 (dbus_message_copy): copy the signature, and init strings to
9207 proper length to avoid some reallocs
9208 (dbus_message_iter_init_array_iterator): return void, since it
9210 (dbus_message_iter_init_dict_iterator): return void since it can't fail
9211 (_dbus_message_loader_queue_messages): add silly temporary hack to
9212 fill in message->signature on load
9214 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9215 characters, so they are relatively human-readable.
9217 2003-10-11 Havoc Pennington <hp@pobox.com>
9219 * dbus/dbus-message.c (_dbus_message_test): add more test
9220 coverage, but #if 0 for now since they uncover a bug
9221 not fixed yet; I think in re_align_field_recurse()
9222 (re_align_field_recurse): add FIXME about broken assertion
9224 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9226 * bus/connection.c: share a couple code bits with expirelist.c
9228 * bus/expirelist.h, bus/expirelist.c: implement a generic
9229 expire-items-after-N-seconds facility, was going to share between
9230 expiring connections and replies, decided not to use for expiring
9231 connections for now.
9233 * COPYING: include AFL 2.0 (still need to change all the file headers)
9235 2003-10-09 Havoc Pennington <hp@redhat.com>
9237 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9238 gcc 3.3. Not that we do anything about it yet.
9240 * bus/signals.c (bus_match_rule_parse): impose max length on the
9243 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9245 2003-10-09 Havoc Pennington <hp@redhat.com>
9247 Make matching rules theoretically work (add parser).
9249 * bus/bus.c (bus_context_check_security_policy): fix up to handle
9250 the case where destination is explicitly specified as bus driver
9251 and someone else is eavesdropping.
9253 * bus/policy.c (bus_client_policy_check_can_receive): fix up
9254 definition of eavesdropping and assertion
9256 * tools/dbus-send.c (main): use dbus_message_type_from_string
9258 * bus/signals.c (bus_match_rule_parse): implement
9260 * dbus/dbus-message.c (dbus_message_type_from_string): new
9262 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9264 2003-10-02 Havoc Pennington <hp@pobox.com>
9266 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9267 dbus_gproxy_oneway_call
9269 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
9270 (dbus_server_setup_with_g_main): fix to allow calling them more
9271 than once on the same args
9272 (dbus_bus_get_with_g_main): new function
9274 2003-10-02 Havoc Pennington <hp@redhat.com>
9276 * doc/dbus-tutorial.xml: write some stuff
9278 2003-09-29 Havoc Pennington <hp@pobox.com>
9280 * configure.in: split checks for Doxygen from XML docs, check for
9283 * doc/Makefile.am: XML-ify all the docs, and add a blank
9286 2003-09-29 Havoc Pennington <hp@pobox.com>
9288 * Merge dbus-object-names branch. To see the entire patch
9289 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9290 it's huuuuge though.
9291 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9293 2003-09-28 Havoc Pennington <hp@pobox.com>
9295 * HACKING: update to reflect new server
9297 2003-09-26 Seth Nickell <seth@gnome.org>
9300 * python/examples/example-signals.py:
9302 Start implementing some notions of signals. The API
9303 is really terrible, but they sort of work (with the
9304 exception of being able to filter by service, and to
9305 transmit signals *as* a particular service). Need to
9306 figure out how to make messages come from the service
9309 * python/dbus_bindings.pyx.in:
9311 Removed duplicate message_handler callbacks.
9313 2003-09-25 Havoc Pennington <hp@redhat.com>
9315 * bus/session.conf.in: fix my mess
9317 2003-09-25 Havoc Pennington <hp@pobox.com>
9319 * bus/session.conf.in: fix security policy, reported by Seth Nickell
9321 2003-09-25 Seth Nickell <seth@gnome.org>
9323 * python/examples/example-service.py:
9325 Johan notices complete wrong code in example-service, but
9326 completely wrong in a way that works exactly the same (!).
9327 Johan is confused, how could this possibly work? Example
9328 code fails to serve purpose of making things clear.
9331 2003-09-25 Mark McLoughlin <mark@skynet.ie>
9333 * doc/dbus-specification.sgml: don't require header fields
9334 to be 4-byte aligned and specify that fields should be
9335 distinguished from padding by the fact that zero is not
9338 * doc/TODO: remove re-alignment item and add item to doc
9339 the OBJECT_PATH type.
9341 * dbus/dbus-message.c:
9342 (HeaderField): rename the original member to value_offset
9343 and introduce a name_offset member to keep track of where
9344 the field actually begins.
9345 (adjust_field_offsets): remove.
9346 (append_int_field), (append_uint_field),
9347 (append_string_field): don't align the start of the header
9348 field to a 4-byte boundary.
9349 (get_next_field): impl finding the next marhsalled field
9350 after a given field.
9351 (re_align_field_recurse): impl re-aligning a number of
9352 already marshalled fields.
9353 (delete_field): impl deleting a field of any type and
9354 re-aligning any following fields.
9355 (delete_int_or_uint_field), (delete_string_field): remove.
9356 (set_int_field), (set_uint_field): no need to re-check
9357 that we have the correct type for the field.
9358 (set_string_field): ditto and impl re-aligning any
9360 (decode_header_data): update to take into account that
9361 the fields aren't 4-byte aligned any more and the new
9362 way to distinguish padding from header fields. Also,
9363 don't exit when there is too much header padding.
9364 (process_test_subdir): print the directory.
9365 (_dbus_message_test): add test to make sure a following
9366 field is re-aligned correctly after field deletion.
9368 * dbus/dbus-string.[ch]:
9369 (_dbus_string_insert_bytes): rename from insert_byte and
9370 allow the insert of multiple bytes.
9371 (_dbus_string_test): test inserting multiple bytes.
9373 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9374 warning note to docs about having to re-align any
9375 marshalled values following the string.
9377 * dbus/dbus-message-builder.c:
9378 (append_string_field), (_dbus_message_data_load):
9379 don't align the header field.
9381 * dbus/dbus-auth.c: (process_test_subdir): print the
9384 * test/break-loader.c: (randomly_add_one_byte): upd. for
9387 * test/data/invalid-messages/bad-header-field-alignment.message:
9390 * test/data/valid-messages/unknown-header-field.message: shove
9391 a dict in the unknown field.
9393 2003-09-25 Seth Nickell <seth@gnome.org>
9396 * python/dbus_bindings.pyx.in:
9398 Handle return values.
9400 * python/examples/example-client.py:
9401 * python/examples/example-service.py:
9403 Pass back return values from the service to the client.
9405 2003-09-24 Seth Nickell <seth@gnome.org>
9409 Connect Object methods (when you are sharing an object) up... pass
9410 in a list of methods to be shared. Sharing all the methods just
9411 worked out too weird. You can now create nice Services over the
9414 * python/dbus_bindings.pyx.in:
9416 Keep references to user_data tuples passed into C functions so
9417 Python doesn't garbage collect on us.
9419 Implement MethodReturn and Error subclasses of Message for creating
9420 DBusMessage's of those types.
9422 * python/examples/example-client.py:
9423 * python/examples/example-service.py:
9425 Simple example code showing both how create DBus services and objects,
9426 and how to use them.
9428 2003-09-23 Havoc Pennington <hp@pobox.com>
9430 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9432 2003-09-23 Havoc Pennington <hp@redhat.com>
9434 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9435 (dbus_gproxy_disconnect_signal): implement
9436 (dbus_gproxy_manager_remove_signal_match): implement
9437 (dbus_gproxy_manager_add_signal_match): implement
9438 (dbus_gproxy_oneway_call): implement
9440 2003-09-23 Havoc Pennington <hp@pobox.com>
9442 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9443 subclass. This means dropping the transparent thread safety of the
9444 proxy; you now need a separate proxy per-thread, or your own
9445 locking on the proxy. Probably right anyway.
9446 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9448 2003-09-22 Havoc Pennington <hp@redhat.com>
9450 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9452 2003-09-21 Seth Nickell <seth@gnome.org>
9454 First checkin of the Python bindings.
9456 * python/.cvsignore:
9457 * python/Makefile.am:
9458 * python/dbus_bindings.pyx.in:
9459 * python/dbus_h_wrapper.h:
9461 Pieces for Pyrex to operate on, building a dbus_bindings.so
9462 python module for low-level access to the DBus APIs.
9466 High-level Python module for accessing DBus objects.
9471 Build stuff for the python bindings.
9475 Extra macro needed for finding the Python C header files.
9477 2003-09-21 Havoc Pennington <hp@pobox.com>
9479 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9480 implementing the proxy manager, didn't get very far.
9482 * dbus/dbus-bus.c (dbus_bus_add_match): new
9483 (dbus_bus_remove_match): new
9485 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9486 path_name argument; adjust the other not-yet-implemented
9487 gproxy constructors to be what I think they should be.
9489 2003-09-21 Havoc Pennington <hp@pobox.com>
9491 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9492 by default for message bus connections.
9494 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9495 exit_on_disconnect flag is set and we process the disconnected
9497 (dbus_connection_set_exit_on_disconnect): new function
9499 2003-09-21 Havoc Pennington <hp@pobox.com>
9501 Get matching rules mostly working in the bus; only actually
9502 parsing the rule text remains. However, the client side of
9503 "signal connections" hasn't been started, this patch is only the
9506 * dbus/dispatch.c: fix for the matching rules changes
9508 * bus/driver.c (bus_driver_handle_remove_match)
9509 (bus_driver_handle_add_match): send an ack reply from these
9512 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9513 arguments, reported by Seth Nickell
9515 * bus/config-parser.c (append_rule_from_element): support
9516 eavesdrop=true|false attribute on policies so match rules
9517 can be prevented from snooping on the system bus.
9519 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9520 and "destination" in attribute names; fix some docs bugs;
9521 add eavesdrop=true|false attribute
9523 * bus/driver.c (bus_driver_handle_add_match)
9524 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9527 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9528 rid of broadcast service concept, signals are just always broadcast
9530 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9531 mostly implement matching rules stuff (currently only exposed as signal
9534 2003-09-21 Mark McLoughlin <mark@skynet.ie>
9536 * doc/dbus-specification.sgml: Change the header field name
9537 to be an enum and update the rest of the spec to reference
9538 the fields using the conventinal name.
9540 * dbus/dbus-protocol.h: update to reflect the spec.
9542 * doc/TODO: add item to remove the 4 byte alignment requirement.
9544 * dbus/dbus-message.c: Remove the code to generalise the
9545 header/body length and serial number header fields as named
9546 header fields so we can reference field names using the
9548 (append_int_field), (append_uint_field), (append_string_field):
9549 Append the field name as a byte rather than four chars.
9550 (delete_int_or_uint_field), (delete_string_field): reflect the
9551 fact that the field name and typecode now occupy 4 bytes instead
9553 (decode_string_field), (decode_header_data): update to reflect
9554 protocol changes and move the field specific encoding from
9555 decode_string_field() back into decode_header_data().
9557 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9558 Add utility to aid debugging.
9560 * dbus/dbus-message-builder.c:
9561 (append_string_field), (_dbus_message_data_load): Update to
9562 reflect protocol changes; Change the FIELD_NAME directive
9563 to HEADER_FIELD and allow it to take the field's conventional
9564 name rather than the actual value.
9566 * test/data/*/*.message: Update to use HEADER_FIELD instead
9567 of FIELD_NAME; Always align the header on an 8 byte boundary
9568 *before* updating the header length.
9570 2003-09-15 Havoc Pennington <hp@pobox.com>
9572 * dbus/dbus-pending-call.c: add the get/set object data
9573 boilerplate as for DBusConnection, etc. Use generic object data
9574 for the notify callback.
9576 * glib/dbus-gparser.c (parse_node): parse child nodes
9578 * tools/dbus-viewer.c: more hacking on the dbus-viewer
9580 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9581 contain functions shared between the convenience lib and the
9584 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9585 -export-symbols-regex to the GLib library
9587 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9588 fix the locking in here, and add a default handler for
9589 Introspect() that just returns sub-nodes.
9591 2003-09-14 Havoc Pennington <hp@pobox.com>
9593 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9594 rather than gfoo consistent
9596 * glib/dbus-gproxy.h: delete for now, move contents to
9597 dbus-glib.h, because the include files don't work right since we
9598 aren't in the dbus/ subdir.
9600 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9601 (dbus_gproxy_end_call): finish
9602 (dbus_gproxy_begin_call): finish
9604 * glib/dbus-gmain.c (dbus_set_g_error): new
9606 * glib/dbus-gobject.c (handle_introspect): include information
9607 about child nodes in the introspection
9609 * dbus/dbus-connection.c (dbus_connection_list_registered): new
9610 function to help in implementation of introspection
9612 * dbus/dbus-object-tree.c
9613 (_dbus_object_tree_list_registered_and_unlock): new function
9615 2003-09-12 Havoc Pennington <hp@pobox.com>
9617 * glib/dbus-gidl.h: add common base class for all the foo_info
9620 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9623 * test/Makefile.am: try test srcdir -ef . in addition to test
9624 srcdir = ., one of them should work (yeah lame)
9626 * glib/Makefile.am: build the "idl" parser stuff as a convenience
9629 * glib/dbus-gparser.h: make description_load routines return
9630 NodeInfo* not Parser*
9632 * Makefile.am (SUBDIRS): build test dir after all library dirs
9634 * configure.in: add GTK+ detection
9636 2003-09-07 Havoc Pennington <hp@pobox.com>
9638 * Make Doxygen contented.
9640 2003-09-07 Havoc Pennington <hp@pobox.com>
9642 * doc/dbus-specification.sgml: more updates
9644 2003-09-06 Havoc Pennington <hp@pobox.com>
9646 * doc/dbus-specification.sgml: partial updates
9648 * bus/dbus-daemon-1.1.in: fix the config file docs for the
9649 zillionth time; hopefully I edited the right file this time.
9651 * bus/config-parser.c (append_rule_from_element): support
9652 send_type, send_path, receive_type, receive_path
9654 * bus/policy.c: add message type and path to the list of things
9655 that can be "firewalled"
9657 2003-09-06 Havoc Pennington <hp@pobox.com>
9659 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9660 (dbus_connection_register_object_path): make this not handle
9661 messages to paths below the given path
9663 2003-09-03 Havoc Pennington <hp@pobox.com>
9665 * test/glib/Makefile.am: add this with random glib-linked test
9668 * glib/Makefile.am: remove the random test programs from here,
9669 leave only the unit tests
9671 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
9672 uscore/javacaps conversion, and fix
9673 (get_object_property, set_object_property): change to .NET
9674 convention for mapping props to methods, set_FooBar/get_FooBar,
9675 since one language has such a convention we may as well copy it.
9676 Plus real methods in either getFooBar or get_foo_bar style won't
9677 collide with this convention.
9679 2003-09-01 Havoc Pennington <hp@pobox.com>
9681 * glib/dbus-gparser.c: implement
9683 * glib/dbus-gobject.c: start implementing skeletons support
9685 * configure.in: when disabling checks/assert, also define
9686 G_DISABLE_ASSERT and G_DISABLE_CHECKS
9688 2003-09-01 Havoc Pennington <hp@pobox.com>
9690 * glib/Makefile.am: rearrange a bunch of files and get "make
9691 check" framework set up
9693 2003-08-31 Havoc Pennington <hp@pobox.com>
9695 * fix build with --disable-tests
9697 2003-08-30 Havoc Pennington <hp@pobox.com>
9699 * dbus/dbus-connection.c: purge DBusMessageHandler
9701 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
9702 use callbacks everywhere
9704 2003-08-30 Havoc Pennington <hp@pobox.com>
9706 * test/data/valid-config-files/system.d/test.conf: change to
9707 root for the user so warnings don't get printed
9709 * dbus/dbus-message.c: add dbus_message_get_path,
9710 dbus_message_set_path
9712 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9713 dispatching to a path
9715 * dbus/dbus-string.c (_dbus_string_validate_path): add
9717 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9718 (_dbus_marshal_object_path): implement
9720 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
9721 to contain the path to the target object
9722 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9723 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9725 2003-08-30 Havoc Pennington <hp@pobox.com>
9727 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9729 2003-08-29 Havoc Pennington <hp@pobox.com>
9731 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9733 (struct DBusObjectSubtree): shrink this
9734 a lot, since we may have a lot of them
9735 (_dbus_object_tree_free_all_unlocked): implement
9736 (_dbus_object_tree_dispatch_and_unlock): implement
9738 2003-08-29 Havoc Pennington <hp@pobox.com>
9740 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9742 2003-08-28 Havoc Pennington <hp@pobox.com>
9746 * dbus/dbus-connection.c: port to no ObjectID, create a
9747 DBusObjectTree, rename ObjectTree to ObjectPath in public API
9749 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
9750 everything except UnregisterFunction and MessageFunction
9752 * dbus/dbus-marshal.c: port away from DBusObjectID,
9753 add DBUS_TYPE_OBJECT_PATH
9755 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
9756 dbus/dbus-objectid.[hc]: remove these, we are moving to
9757 path-based object IDs
9759 2003-08-25 Havoc Pennington <hp@pobox.com>
9761 Just noticed that dbus_message_test is hosed, I wonder when I
9762 broke that. I thought make check was passing earlier...
9764 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
9765 container tree, will replace most of dbus-object-registry
9767 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9770 2003-08-19 Havoc Pennington <hp@pobox.com>
9772 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9773 (dbus_message_is_error): fix this function
9775 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9778 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9779 reflect clarified man page
9780 (bus_client_policy_check_can_send): ditto
9782 * bus/session.conf.in: fixup
9784 * bus/system.conf.in: fixup
9786 2003-08-18 Havoc Pennington <hp@redhat.com>
9788 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9790 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9791 dumb bug created earlier (wrong order of args to
9792 decode_header_data())
9794 * tools/dbus-send.c: port
9796 * tools/dbus-print-message.c (print_message): port
9798 * test/data/*messages: port all messages over
9800 * dbus/dbus-message-builder.c: support including
9803 * bus/driver.c: port over
9805 * bus/dispatch.c: port over to new stuff
9807 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9808 rename disconnect signal to "Disconnected"
9810 2003-08-17 Havoc Pennington <hp@pobox.com>
9812 This doesn't compile yet, but syncing up so I can hack on it from
9813 work. What are branches for if not broken code? ;-)
9815 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9816 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9817 DBUS_HEADER_FIELD_ERROR_NAME
9819 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9820 for the interface+member pairs
9821 (string_hash): change to use g_str_hash algorithm
9822 (find_direct_function, find_string_function): refactor these to
9825 * dbus/dbus-message.c: port all of this over to support
9826 interface/member fields instead of name field
9828 * dbus/dbus-object-registry.c: port over
9830 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9831 from _dbus_string_validate_name
9833 * bus/dbus-daemon-1.1: change file format for the
9834 <deny>/<allow> stuff to match new message naming scheme
9836 * bus/policy.c: port over
9838 * bus/config-parser.c: parse new format
9840 2003-08-16 Havoc Pennington <hp@pobox.com>
9842 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9845 * glib/dbus-gproxy.c: some hacking
9847 2003-08-15 Havoc Pennington <hp@redhat.com>
9849 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9851 * dbus/dbus-connection.c
9852 (dbus_connection_send_with_reply_and_block): factor out internals;
9853 change to convert any error replies to DBusError instead of
9854 returning them as a message
9856 2003-08-15 Havoc Pennington <hp@pobox.com>
9858 * dbus/dbus-connection.c,
9859 dbus/dbus-pending-call.c: Finish the pending call stuff
9861 2003-08-14 Havoc Pennington <hp@redhat.com>
9863 * dbus/dbus-pending-call.c: start on new object that will replace
9864 DBusMessageHandler and ReplyHandlerData for tracking outstanding
9867 * dbus/dbus-gproxy.c: start on proxy object used to communicate
9868 with remote interfaces
9870 * dbus/dbus-gidl.c: do the boring boilerplate in here
9872 2003-08-12 Havoc Pennington <hp@pobox.com>
9874 * bus/dispatch.c (bus_dispatch): make this return proper
9875 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9877 * dbus/dbus-errors.c (dbus_set_error): use
9878 _dbus_string_append_printf_valist
9880 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9881 (_dbus_string_append_printf): new
9883 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9886 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9887 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9888 message is unhandled.
9890 2003-08-11 Havoc Pennington <hp@pobox.com>
9892 * bus/test.c (client_disconnect_handler): change to return
9893 HANDLED (would have been REMOVE_MESSAGE)
9895 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9896 HANDLED/NOT_YET_HANDLED instead of
9897 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
9900 2003-08-10 Havoc Pennington <hp@pobox.com>
9902 * tools/dbus-send.c (main): add --type argument, for now
9903 supporting only method_call and signal types.
9905 * tools/dbus-print-message.c: print message type
9907 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9908 init connection->objects
9910 * doc/dbus-specification.sgml: fix sgml
9912 * bus/*.c: port over to object-instance API changes
9914 * test/test-service.c: ditto
9916 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9917 name, we will have to fix up the rest of the code to also handle
9919 (dbus_message_new): generic message-creation call
9920 (set_string_field): allow appending name field
9922 2003-08-06 Havoc Pennington <hp@pobox.com>
9924 * dbus/dbus-object-registry.c: implement signal connection
9927 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9929 * dbus/dbus-internals.c (_dbus_memdup): new function
9931 2003-08-02 Havoc Pennington <hp@pobox.com>
9933 * dbus/dbus-message.c (dbus_message_get_no_reply)
9934 (dbus_message_set_no_reply): add these and remove
9935 set_is_error/get_is_error
9937 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
9938 remove the ERROR flag, since there's now an ERROR type
9940 2003-08-01 Havoc Pennington <hp@pobox.com>
9942 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9945 * dbus/dbus-message.c (dbus_message_get_type): new function
9947 * doc/dbus-specification.sgml: add "type" byte to messages
9949 2003-08-01 Havoc Pennington <hp@pobox.com>
9951 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9952 a message type enum to distinguish kinds of message
9953 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
9954 that need not be replied to
9956 2003-08-01 Havoc Pennington <hp@pobox.com>
9958 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9959 (unpack_8_octets): fix no-64-bit-int bug
9961 * dbus/dbus-object-registry.c (validate_id): validate the
9962 connection ID bits, not just the instance ID.
9964 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9965 the connection-global 33 bits of the object ID
9967 * dbus/dbus-object-registry.c (info_from_entry): fill in
9968 object ID in the new way
9970 * dbus/dbus-objectid.h: rather than high/low bits, specifically
9971 define server/client/instance bits.
9973 2003-07-30 Havoc Pennington <hp@pobox.com>
9975 * dbus/dbus-connection.c (dbus_connection_register_object): fix
9978 2003-07-13 Havoc Pennington <hp@pobox.com>
9980 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9981 fields to DBusObjectVTable and DBusObjectInfo
9983 2003-07-12 Havoc Pennington <hp@pobox.com>
9985 * dbus/dbus-object-registry.c: implement unit test,
9986 fix bugs discovered in process
9988 * dbus/dbus-connection.c: remove handler_table and
9989 register_handler(), add DBusObjectRegistry usage
9991 * dbus/dbus-objectid.c (dbus_object_id_is_null)
9992 (dbus_object_id_set_null): new functions
9994 2003-07-08 Havoc Pennington <hp@pobox.com>
9996 * dbus/dbus-object.c: implement some of this
9998 * dbus/dbus-object-registry.c
9999 (_dbus_object_registry_add_and_unlock): fill in the object_id out
10001 (_dbus_object_registry_new): handle OOM
10003 2003-07-08 Havoc Pennington <hp@pobox.com>
10005 * dbus/dbus-object.h: sketch out an API for registering objects
10006 with a connection, that allows us to use as little as 24 bytes
10007 per object and lets application code represent an object in
10008 any conceivable way.
10010 * dbus/dbus-object-registry.c: implement the hard bits of the
10011 DBusConnection aspect of object API. Not yet wired up.
10013 2003-07-06 Havoc Pennington <hp@pobox.com>
10015 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10016 (_dbus_marshal_object_id): new
10017 (_dbus_demarshal_object_id): new
10018 (_dbus_marshal_get_arg_end_pos): support object ID type, and
10019 consolidate identical switch cases. Don't conditionalize handling
10020 of DBUS_TYPE_UINT64, need to handle the type always.
10021 (_dbus_marshal_validate_arg): consolidate identical cases, and
10022 handle DBUS_TYPE_OBJECT_ID
10024 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10026 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10028 2003-09-28 Havoc Pennington <hp@pobox.com>
10030 * real 0.13 release
10032 2003-09-28 Havoc Pennington <hp@pobox.com>
10034 * doc/Makefile.am (dbus-specification.html): testing a funky hack
10035 to work with Debian db2html
10037 2003-09-28 Havoc Pennington <hp@pobox.com>
10039 * configure.in: 0.13
10041 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10042 stylesheet-images for benefit of Debian
10044 Change back to using filesystem-linked sockets for the system
10045 bus, so only root can create the default system bus address.
10047 * bus/system.conf.in: change to use
10048 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10050 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10053 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10054 here, and AC_DEFINE DBUS_SYSTEM_PATH
10056 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10059 * doc/busconfig.dtd:
10062 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10064 * doc/dbus-specification.sgml:
10065 Add activation reply values.
10067 2003-08-05 Havoc Pennington <hp@redhat.com>
10069 * configure.in: 0.12
10071 2003-08-05 Anders Carlsson <andersca@codefactory.se>
10073 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10074 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10075 (add_watch), (remove_watch), (create_source):
10076 Refcount fds, fixes some reentrancy issues.
10078 2003-07-30 Havoc Pennington <hp@redhat.com>
10080 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10081 bus address to be abstract if we have abstract sockets
10085 2003-07-28 Havoc Pennington <hp@redhat.com>
10087 * bus/messagebus.in: fix to avoid processname/servicename
10088 confusion, from Michael Kearey
10089 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10091 2003-07-23 Havoc Pennington <hp@pobox.com>
10093 * dbus/dbus-message.c (dbus_message_iter_get_named):
10094 fix from Andy Hanton to remove broken "+1"
10096 2003-07-16 Havoc Pennington <hp@pobox.com>
10098 * tools/dbus-launch.c (babysit): close stdout/stderr in the
10099 babysitter process, as suggested by Thomas Leonard, so
10100 an "eval `dbus-launch --exit-with-session`" will actually
10103 2003-07-16 Havoc Pennington <hp@pobox.com>
10105 * configure.in: print out EXPANDED_* variables in the summary at
10106 the end; clean up the code that computes EXPANDED_ variables and
10107 get the ones using exec_prefix right. Should make things work
10108 when you build without --prefix
10110 2003-06-29 Havoc Pennington <hp@pobox.com>
10112 * mono/Test.cs (class Test): fire up a main loop and run it
10114 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10115 done once, the app has to do it
10117 2003-06-26 Havoc Pennington <hp@pobox.com>
10119 * mono/Connection.cs: set up connection with the glib main loop
10121 2003-07-01 Havoc Pennington <hp@redhat.com>
10123 * doc/dbus-specification.sgml: clarify the format of a type code,
10124 change suggested by Jim Blandy
10126 2003-06-29 Miloslav Trmac <mitr@volny.cz>
10129 * tools/Makefile.am: Don't assume srcdir == builddir.
10131 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10132 the allocated block.
10133 (_dbus_memory_test): New function.
10134 * dbus/dbus-test.h: Add _dbus_memory_test ().
10135 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10137 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10139 (dbus_message_new): Remove obsolete @todo.
10141 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10142 (_dbus_marshal_set_uint64): Fix comment.
10144 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10145 hardcode FIELD_REPLY_SERIAL.
10147 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10148 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10150 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10151 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10153 2003-06-24 Havoc Pennington <hp@pobox.com>
10155 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10157 2003-06-23 Anders Carlsson <andersca@codefactory.se>
10163 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10164 * gcj/org/.cvsignore:
10165 * gcj/org/Makefile.am:
10166 * gcj/org/freedesktop/.cvsignore:
10167 * gcj/org/freedesktop/Makefile.am:
10168 * gcj/org/freedesktop/dbus/.cvsignore:
10169 * gcj/org/freedesktop/dbus/Makefile.am:
10170 * gcj/org/freedesktop/dbus/Message.java: (Message),
10172 * gcj/org/freedesktop/dbus/natMessage.cc:
10173 Fix the build system.
10175 2003-06-22 Havoc Pennington <hp@pobox.com>
10177 * mono/Connection.cs: add more bindings
10179 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10182 2003-06-22 Havoc Pennington <hp@pobox.com>
10184 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10185 Start wrapping more stuff.
10187 2003-06-22 Havoc Pennington <hp@pobox.com>
10189 * mono/Message.cs: implement Message.Wrap() that ensures we only
10190 have a single C# wrapper per DBusMessage, assuming it works which
10191 it probably doesn't.
10193 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10194 (dbus_message_free_data_slot): new
10195 (dbus_message_set_data): new
10196 (dbus_message_get_data): new
10198 2003-06-22 Havoc Pennington <hp@pobox.com>
10200 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10201 (_dbus_data_slot_allocator_alloc): rework these to keep a
10202 reference count on each slot and automatically manage a global
10203 slot ID variable passed in by address
10205 * bus/bus.c: convert to new dataslot API
10207 * dbus/dbus-bus.c: convert to new dataslot API
10209 * dbus/dbus-connection.c: convert to new dataslot API
10211 * dbus/dbus-server.c: convert to new dataslot API
10213 * glib/dbus-gmain.c: ditto
10215 * bus/test.c: ditto
10217 * bus/connection.c: ditto
10219 2003-06-22 Anders Carlsson <andersca@codefactory.se>
10221 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10222 after the gcj checks so that the correct configuration tags
10223 will be added to libtool.
10225 * dbus-glib-1.pc.in: No need to specify any includes since
10226 dbus-1.pc.in has those.
10228 2003-06-22 Havoc Pennington <hp@pobox.com>
10230 * mono/*, gcj/*, configure.in, Makefile.am:
10231 Check in makefiles and subdirs for mono and gcj bindings.
10232 Neither binding actually exists, just trying to get through
10233 all the build and other boring bits.
10235 2003-06-21 Philip Blundell <philb@gnu.org>
10237 * tools/dbus-monitor.1: Updated.
10239 * tools/dbus-send.1: Likewise.
10241 2003-06-20 Anders Carlsson <andersca@codefactory.se>
10243 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10244 for hangup and error after checking read so we won't discard
10245 pending data if both hangup and read are set.
10247 2003-06-19 Philip Blundell <philb@gnu.org>
10249 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10251 * tools/dbus-send.c: Accept both --system and --session.
10253 * tools/dbus-monitor.c: Same here.
10255 2003-06-19 Anders Carlsson <andersca@codefactory.se>
10257 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10258 from C++ (Patch by Miloslav Trmac).
10260 2003-06-15 Joe Shaw <joe@assbarn.com>
10262 * configure.in: Check for socklen_t.
10264 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10266 * test/test-segfault.c: Add #include <sys/time.h>
10268 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10269 dbus-launch needs it.
10271 2003-06-09 Havoc Pennington <hp@redhat.com>
10273 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10274 SUN_LEN, it breaks abstract socket usage
10276 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10279 2003-06-04 Havoc Pennington <hp@pobox.com>
10281 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10282 using unix:abstract=/foo, and when listening in a tmpdir
10283 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10285 * dbus/dbus-transport.c (_dbus_transport_open): support
10288 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10289 support abstract sockets
10291 * dbus/dbus-transport-unix.c
10292 (_dbus_transport_new_for_domain_socket): support abstract sockets
10294 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10295 toggle as an argument, implement abstract namespace support
10296 (_dbus_listen_unix_socket): ditto
10298 * configure.in: add --enable-abstract-sockets and implement
10299 a configure check for autodetection of the right value.
10301 2003-06-01 Havoc Pennington <hp@pobox.com>
10303 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10304 in /tmp (though on Linux this will end up being useless,
10305 when we add abstract namespace support)
10307 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10310 2003-05-28 Colin Walters <walters@verbum.org>
10312 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10314 2003-05-18 Anders Carlsson <andersca@codefactory.se>
10316 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10318 2003-05-17 Colin Walters <walters@gnu.org>
10320 * tools/dbus-send.c: Don't exit with an error code if --help was
10321 passed. Default to using the session bus instead of the system
10324 * tools/dbus-launch.c: Ditto.
10326 * tools/dbus-monitor.c: Ditto.
10328 * tools/dbus-send.1: Update with new arguments.
10330 * tools/dbus-launch.c: Emit code to export variables. New
10331 arguments -s and -c to specify shell syntax, and a bit of code to
10332 autodetect syntax. Also, allow specifying a program to run.
10334 * tools/dbus-launch.1: Update with new arguments.
10336 * tools/dbus-send.1: Ditto.
10338 * tools/dbus-monitor.1: Ditto.
10340 2003-05-17 Havoc Pennington <hp@pobox.com>
10342 * bus/config-parser.c (merge_included): merge in policies from
10343 child configuration file.
10345 * bus/policy.c (bus_policy_merge): function to merge two policies
10348 2003-05-16 Havoc Pennington <hp@redhat.com>
10350 * dbus/dbus-connection.c: disable verbose lock spew
10352 * tools/dbus-send.c: add --print-reply command line option
10354 * tools/dbus-print-message.h (print_message): new util function
10355 shared by dbus-send and dbus-monitor
10357 * tools/dbus-monitor.c (handler_func): exit on disconnect
10359 * dbus/dbus-transport-unix.c (do_reading): if the transport is
10360 disconnected, don't try to use the read_watch
10362 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10363 so we can find this bug more easily
10365 2003-05-16 Havoc Pennington <hp@redhat.com>
10367 * bus/policy.c (free_rule_list_func): avoid a crash when passed
10368 NULL as DBusHashTable is annoyingly likely to do.
10370 2003-05-16 Colin Walters <walters@verbum.org>
10372 * tools/dbus-monitor.c: Add --session argument and usage()
10375 * tools/dbus-monitor.1: Update with new --session arg.
10377 * bus/Makefile.am (install-data-hook): Create
10378 $(libdir)/dbus-1.0/services so that the session bus is happy.
10380 2003-05-15 Havoc Pennington <hp@redhat.com>
10382 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10383 on non-x86. ifdef's are evil.
10385 2003-05-15 Havoc Pennington <hp@redhat.com>
10387 * configure.in: 0.11
10391 * bus/Makefile.am (initddir): apparently we are supposed to put
10392 init scripts in /etc/rc.d/init.d not /etc/init.d
10394 * bus/Makefile.am: remove the "you must --enable-tests to make
10395 check" as it broke distcheck
10397 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10399 2003-05-13 James Willcox <jwillcox@gnome.org>
10402 * bus/activation.c: (bus_activation_service_created),
10403 (bus_activation_activate_service):
10404 * bus/driver.c: (bus_driver_send_service_deleted),
10405 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10406 (bus_driver_send_service_acquired),
10407 (bus_driver_send_welcome_message),
10408 (bus_driver_handle_list_services):
10409 * bus/session.conf.in:
10410 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10411 (dbus_bus_service_exists), (dbus_bus_activate_service):
10414 Add some convenience API which lets you activate a service, and did a
10415 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10416 and dbus_message_get_args()
10418 2003-05-11 Havoc Pennington <hp@pobox.com>
10420 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10421 calling _dbus_marshal_validate_arg() for every byte in a byte
10424 * dbus/dbus-message-handler.c: use atomic reference counting to
10425 reduce number of locks slightly; the global lock in here sucks
10427 * dbus/dbus-connection.c
10428 (_dbus_connection_update_dispatch_status_and_unlock): variant of
10429 update_dispatch_status that can be called with lock held; then use
10430 in a couple places to reduce locking/unlocking
10431 (dbus_connection_send): hold the lock over the whole function
10432 instead of acquiring it twice.
10434 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10436 * bus/connection.c (bus_connections_setup_connection): fix access
10437 to already-freed memory.
10439 * dbus/dbus-connection.c: keep a little cache of linked list
10440 nodes, to avoid using the global linked list alloc lock in the
10441 normal send-message case. Instead we just use the connection lock
10442 that we already have to take.
10444 * dbus/dbus-list.c (_dbus_list_find_last): new function
10446 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10447 change to use a struct for the atomic type; fix docs,
10448 they return value before increment, not after increment.
10450 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10451 (_dbus_string_append_8_aligned): new functions to try to
10452 microoptimize this operation.
10453 (reallocate_for_length): break this out of set_length(), to
10454 improve profile info, and also so we can consider inlining the
10457 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10458 strings with some preallocation, cuts down on our calls to realloc
10459 a fair bit. Though if we can get the "move entire string to empty
10460 string" optimization below to kick in here, it would be better.
10462 * dbus/dbus-string.c (_dbus_string_move): just call
10463 _dbus_string_move_len
10464 (_dbus_string_move_len): add a special case for moving
10465 an entire string into an empty string; we can just
10466 swap the string data instead of doing any reallocs.
10467 (_dbus_string_init_preallocated): new function
10469 2003-05-11 Havoc Pennington <hp@pobox.com>
10471 Write a "test-profile" that does echo client-server with threads;
10472 profile reveals lock contention, memcpy/realloc of buffers, and
10473 UTF-8 validation as hot spots. 20% of lock contention eliminated
10474 with dbus_atomic_inc/dec implementation on x86. Much remaining
10475 contention is global mempool locks for GList and DBusList.
10477 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10480 * dbus/dbus-connection.c (struct DBusConnection): use
10481 dbus_atomic_t for the reference count
10483 * dbus/dbus-message.c (struct DBusMessage): declare
10484 dbus_atomic_t values as volatile
10486 * configure.in: code to detect ability to use atomic integer
10487 operations in assembly, from GLib patch
10489 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10490 time, tired of it being wrong in threads and forked processes
10492 * glib/test-profile.c: a little program to bounce messages back
10493 and forth between threads and eat CPU
10495 * dbus/dbus-connection.c: add debug spew macros for debugging
10496 thread locks; include config.h at top; fix deadlock in
10497 dbus_connection_flush()
10499 2003-05-08 Havoc Pennington <hp@pobox.com>
10501 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10502 data from getting written, and there wasn't a good reason to
10505 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10506 dbus_verbose lines in test coverage
10507 (main): add list of functions sorted by # of untested blocks
10508 to the coverage report
10510 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10512 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10514 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10515 extend test coverage
10517 * test/data/auth/cancel.auth-script: test canceling an
10520 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10521 aren't used. in CVS history if we end up needing them.
10523 2003-05-04 Havoc Pennington <hp@pobox.com>
10525 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10528 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10529 function, which assumed length was in # of strings, not bytes
10531 * dbus/dbus-message.c (_dbus_message_test): add tests for some
10534 * dbus/dbus-connection.c
10535 (_dbus_connection_queue_received_message): disable function for
10536 now, we are only using it in test mode
10538 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10539 remove a mistaken FIXME
10541 2003-05-04 Havoc Pennington <hp@pobox.com>
10543 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10544 unlock mutex on successful return, patch from Anders Gustafsson
10546 2003-05-04 Havoc Pennington <hp@pobox.com>
10548 * dbus-glib-1.pc.in (Requires): fix dependencies, from
10551 2003-05-04 Havoc Pennington <hp@pobox.com>
10553 * tools/dbus-launch.c: implement
10555 * bus/main.c (main), bus/bus.c (bus_context_new):
10556 implement --print-pid and --fork
10558 2003-05-03 Havoc Pennington <hp@redhat.com>
10560 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10561 the address had no value, and add to test suite. Fix and
10562 regression test from Miloslav Trmac
10564 2003-05-03 Havoc Pennington <hp@pobox.com>
10566 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10567 watch is invalid when handled
10569 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10570 dbus-launch utility to launch the bus from a shell script. Didn't
10571 actually implement dbus-launch yet, it's just a placeholder still.
10573 2003-05-03 Havoc Pennington <hp@pobox.com>
10575 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10576 daemon; also documents daemon config file, so replaces
10577 doc/config-file.txt. Corrected some stuff from config-file.txt in
10578 the process of moving it.
10580 2003-05-03 Havoc Pennington <hp@pobox.com>
10582 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10585 2003-05-03 Colin Walters <walters@verbum.org>
10587 * dbus/dbus-sysdeps.c (fill_user_info): Test against
10588 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10590 * Makefile.am: Update to use new .pc versioning scheme.
10592 2003-05-02 Havoc Pennington <hp@redhat.com>
10594 * bus/system.conf.in: allow send/receive to/from message bus
10597 2003-04-30 Havoc Pennington <hp@redhat.com>
10599 * configure.in: print a note when building with unit tests and
10602 2003-04-30 Havoc Pennington <hp@redhat.com>
10604 * Makefile.am: add a check-local that complains if you didn't
10605 configure with --enable-tests
10607 2003-04-29 Havoc Pennington <hp@redhat.com>
10609 * glib/dbus-gmain.c: docs cleanups
10611 * dbus/dbus-types.h: add docs on int64 types
10613 * dbus/dbus-memory.c: fix docs to avoid putting private API in
10614 public API docs section
10616 2003-04-29 Havoc Pennington <hp@redhat.com>
10618 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10619 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10620 parallel install API version, not with the D-BUS package version.
10622 * HACKING: move some of README over here
10624 * README: updates, and document API/ABI policy
10626 * configure.in: reindentation
10628 2003-04-29 Havoc Pennington <hp@redhat.com>
10630 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10631 to use this library" to be sure people have the right
10634 2003-04-28 Havoc Pennington <hp@redhat.com>
10636 * configure.in: add --enable-docs which by default is auto yes if
10637 doxygen and db2html found, no otherwise; but can be forced on/off
10639 * doc/Makefile.am: conditionalize whether to build docs on
10642 2003-04-28 Havoc Pennington <hp@redhat.com>
10644 * configure.in: 0.10
10648 * bus/system.conf.in: add <includedir>system.d</includedir>
10650 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10651 username was provided but not uid
10653 * bus/config-parser.c (struct BusConfigParser): keep track of
10654 whether the parser is toplevel or was included; change some
10655 of the error handling if it's included.
10657 2003-04-27 Havoc Pennington <hp@pobox.com>
10661 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10662 report correct status if we finish processing authentication
10663 inside this function.
10665 * bus/activation.c (try_send_activation_failure): use
10666 bus_transaction_send_error_reply
10668 * bus/connection.c (bus_connection_get_groups): return an error
10669 explaining the problem
10671 * bus/bus.c (bus_context_check_security_policy): implement
10672 restriction here that inactive connections can only send the
10673 hello message. Also, allow bus driver to send anything to
10676 * bus/connection.c (bus_connection_complete): create the
10677 BusClientPolicy here instead of on-demand.
10678 (bus_connection_get_policy): don't return an error
10680 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10681 sender field in message being replied to
10683 * bus/bus.c (bus_context_check_security_policy): fix silly typo
10684 causing it to return FALSE always
10686 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10687 we checked sender rather than destination
10689 2003-04-25 Havoc Pennington <hp@redhat.com>
10691 test suite is slightly hosed at the moment, will fix soon
10693 * bus/connection.c (bus_connections_expire_incomplete): fix to
10694 properly disable the timeout when required
10695 (bus_connection_set_name): check whether we can remove incomplete
10696 connections timeout after we complete each connection.
10698 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10699 probably still broken.
10701 * bus/services.c (bus_registry_acquire_service): implement max
10702 number of services owned, and honor allow/deny rules on which
10703 services a connection can own.
10705 * bus/connection.c (bus_connection_get_policy): report errors here
10707 * bus/activation.c: implement limit on number of pending
10710 2003-04-25 Havoc Pennington <hp@redhat.com>
10712 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10713 where we used >= 0 instead of != DBUS_UID_UNSET.
10715 2003-04-25 Havoc Pennington <hp@redhat.com>
10717 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10718 were toggled without add/remove, fix from Anders Gustafsson
10720 2003-04-24 Havoc Pennington <hp@redhat.com>
10722 * test/data/valid-config-files/basic.conf: add <limit> tags to
10725 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10726 <limit> tag in configuration file.
10728 2003-04-24 Havoc Pennington <hp@redhat.com>
10730 * bus/dispatch.c: somehow missed some name_is
10732 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10733 (_dbus_timeout_set_interval): new
10735 * bus/connection.c (bus_connections_setup_connection): record time
10736 when each connection is first set up, and expire them after the
10737 auth timeout passes.
10739 2003-04-24 Havoc Pennington <hp@redhat.com>
10741 * dbus/dbus-message.c (dbus_message_name_is): rename
10742 (dbus_message_service_is): rename
10743 (dbus_message_sender_is): rename
10744 (dbus_message_get_service): rename
10746 2003-04-24 Havoc Pennington <hp@redhat.com>
10748 * configure.in: add --enable-checks
10750 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10752 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10753 to use thread locks.
10754 (_dbus_connection_handler_destroyed_locked): move some private
10755 functions into proper docs group
10757 * dbus/dbus-internals.h: add _dbus_return_if_fail,
10758 _dbus_return_val_if_fail
10760 Throughout: use dbus_return_if_fail
10762 2003-04-23 James Willcox <jwillcox@gnome.org>
10764 * glib/dbus-glib.h:
10765 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10766 (dbus_connection_setup_with_g_main),
10767 (dbus_server_setup_with_g_main):
10768 * glib/test-dbus-glib.c: (main):
10769 * glib/test-thread-client.c: (main):
10770 * glib/test-thread-server.c: (new_connection_callback), (main):
10771 * tools/dbus-monitor.c: (main):
10773 Added a GMainContext argument to dbus_connection_setup_with_g_main()
10774 and dbus_server_setup_with_g_main().
10776 2003-04-20 Havoc Pennington <hp@pobox.com>
10778 * doc/dbus-specification.sgml: document the restrictions on
10779 message and service names
10781 2003-04-22 Havoc Pennington <hp@redhat.com>
10783 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10784 support, and do some code cleanups to share more code and
10785 speed up array marshal/demarshal.
10787 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10789 * configure.in: generate dbus-arch-deps.h
10791 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10794 2003-04-22 Havoc Pennington <hp@redhat.com>
10796 * test/data/valid-messages/opposite-endian.message: fix test
10797 to use proper type for rply field
10799 * test/data/invalid-messages: add tests for below validation
10801 * dbus/dbus-message.c (decode_header_data): validate field types,
10802 and validate that named fields are valid names
10803 (decode_name_field): consider messages in the
10804 org.freedesktop.Local. namespace to be invalid.
10806 * dbus/dbus-string.c (_dbus_string_validate_name): new
10808 2003-04-19 Havoc Pennington <hp@pobox.com>
10810 * bus/driver.c (bus_driver_handle_hello): check limits and
10811 return an error if they are exceeded.
10813 * bus/connection.c: maintain separate lists of active and inactive
10814 connections, and a count of each. Maintain count of completed
10815 connections per user. Implement code to check connection limits.
10817 * dbus/dbus-list.c (_dbus_list_unlink): export
10819 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10820 number of bytes in the message queue for a connection
10822 2003-04-18 Havoc Pennington <hp@pobox.com>
10824 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10826 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10829 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10830 on realloc be sure to update the pointer in the keyring
10832 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10833 offset to avoid writing to unallocated memory
10835 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10836 try the next mechanism, so we properly handle OOM
10838 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10840 (_dbus_keyring_new): fix OOM bug
10841 (_dbus_keyring_new_homedir): always set error; impose a maximum
10842 number of keys we'll load from the file, mostly to speed up the
10843 test suite and make its OOM checks more useful, but also for
10846 * dbus/dbus-auth.c (process_error_server): reject authentication
10847 if we get an error from the client
10848 (process_cancel): on cancel, send REJECTED, per the spec
10849 (process_error_client): send CANCEL if we get an error from the
10852 2003-04-18 Havoc Pennington <hp@pobox.com>
10854 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10857 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10860 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10861 about DBUS_TEST_HOMEDIR once
10863 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10866 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10867 config file so we test the right thing
10869 Throughout: assorted docs improvements
10871 2003-04-18 Havoc Pennington <hp@pobox.com>
10873 * glib/dbus-gmain.c: adapt to watch changes
10875 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10877 * dbus/dbus-server.h: remove dbus_server_handle_watch
10879 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10881 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10882 like DBusTimeout, so we don't need dbus_connection_handle_watch
10885 2003-04-17 Havoc Pennington <hp@redhat.com>
10887 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10888 database usage so it all goes via the DBusUserDatabase cache.
10890 2003-04-17 Havoc Pennington <hp@redhat.com>
10892 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10893 there was an OOM watch we skipped, we always return TRUE so we
10894 iterate again to have a look at it again. Fixes test suite hang.
10895 Code rearrangement also lets us lose some memset and only iterate
10896 over callbacks once.
10898 * bus/driver.c (bus_driver_handle_message): sense of test for
10901 2003-04-16 Havoc Pennington <hp@pobox.com>
10903 * doc/dbus-specification.sgml: make spec say serials are unsigned
10905 * dbus/dbus-message.h: change message serials to unsigned
10907 * dbus/dbus-connection.c: adapt to message serials being unsigned
10909 2003-04-15 Havoc Pennington <hp@pobox.com>
10911 * bus/bus.c: create and keep around a shared DBusUserDatabase
10914 * bus/connection.c (bus_connection_get_groups): don't cache
10915 groups for user in the connection object, since user database
10916 object now does that.
10918 2003-04-16 Havoc Pennington <hp@redhat.com>
10920 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10921 list of size counters
10922 (_dbus_message_loader_putback_message_link): put back a popped link
10924 * dbus/dbus-connection.c
10925 (dbus_connection_set_max_live_messages_size): rename
10927 (dbus_connection_get_outgoing_size): get size of outgoing
10929 (_dbus_connection_set_connection_counter): remove this cruft
10931 2003-04-14 Havoc Pennington <hp@redhat.com>
10933 * dbus/dbus-userdb.c: user database abstraction, mostly to get
10934 caching, but at some point we might want to be able to use a
10935 different database.
10937 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10938 SHA1 conf file to test the sha1 auth mechanism, since the regular
10939 test always uses EXTERNAL when available.
10942 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10943 add conf file that requires use of sha1 auth
10945 2003-04-13 Havoc Pennington <hp@pobox.com>
10947 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10948 from Philip Blundell to send messages and monitor them.
10950 2003-04-13 Havoc Pennington <hp@pobox.com>
10952 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10955 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10958 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10959 fix to only recover unused bytes if we're already authenticated
10960 (_dbus_transport_get_is_authenticated): fix to still mark us
10961 authenticated if there are unused bytes.
10963 * bus/dispatch.c: implement security policy checking
10965 * bus/connection.c (bus_transaction_send_from_driver): new
10967 * bus/bus.c (bus_context_check_security_policy): new
10969 * bus/dispatch.c (send_service_nonexistent_error): delete this,
10970 now we just set the DBusError and it gets converted to an error
10973 * bus/connection.c (allow_user_function): enable code using actual
10974 data from the config file
10976 * bus/policy.c (list_allows_user): handle wildcard rules for
10977 user/group connection perms
10979 2003-04-13 Havoc Pennington <hp@pobox.com>
10981 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10983 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10985 * bus/policy.c (bus_policy_append_mandatory_rule)
10986 (bus_policy_append_default_rule, bus_policy_append_user_rule)
10987 (bus_policy_append_group_rule): new functions
10989 2003-04-12 Havoc Pennington <hp@pobox.com>
10991 * bus/config-parser.c (bus_config_parser_new): fix a memleak
10993 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10994 the pid/gid/uid, just for paranoia.
10996 * test/break-loader.c (randomly_do_n_things): find a byte
10997 containing a type code, and randomly change it to a different
11000 2003-04-12 Havoc Pennington <hp@pobox.com>
11002 * bus/policy.h: change BusPolicy to be the thing from the config
11003 file, and rename old BusPolicy to BusClientPolicy
11005 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11006 match change in how policy works
11008 * dbus/dbus-internals.h: mark assert_not_reached as
11009 __attribute((noreturn))__
11011 2003-04-11 Havoc Pennington <hp@redhat.com>
11013 * doc/dbus-specification.sgml: fix a spot with the wrong name for
11014 the broadcast service. Use boolean return for ServiceExists.
11016 2003-04-11 Havoc Pennington <hp@redhat.com>
11018 * configure.in: add another directory to look for qt in.
11020 2003-04-11 Havoc Pennington <hp@redhat.com>
11022 * AUTHORS: add Colin Walters
11024 2003-04-11 Havoc Pennington <hp@redhat.com>
11028 * configure.in: 0.9
11030 2003-04-11 Havoc Pennington <hp@redhat.com>
11032 * bus/messagebus.in: remove pid file when stopping the
11033 message bus, since the bus won't have privileges to remove it
11036 2003-04-11 Havoc Pennington <hp@redhat.com>
11038 * bus/bus.c (bus_context_new): move credentials change after
11041 2003-04-11 Havoc Pennington <hp@pobox.com>
11043 * test/decode-gcov.c: add "below average functions" to the
11044 coverage report, and change how some of the code works.
11046 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11047 not in the coverage stats.
11049 * test/test-service.c (main): use _dbus_verbose not fprintf in a
11050 couple places so running the test suite doesn't result in megaspam.
11052 2003-04-11 Havoc Pennington <hp@pobox.com>
11054 * bus/dispatch.c (check_existent_service_activation): accept a no
11055 memory error in a place we didn't before
11057 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11058 in case the first one failed," since the test suite is less
11061 2003-04-10 Havoc Pennington <hp@pobox.com>
11063 * bus/dispatch.c (check_segfault_service_activation): add test
11064 for launching an executable that just crashes.
11066 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11067 don't leave a million cores. We'll see how portable this is.
11069 2003-04-10 Havoc Pennington <hp@pobox.com>
11071 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11072 the possible parent failures before we fork, so that we don't
11073 fail to create a babysitter after creating the child.
11075 * bus/activation.c (bus_activation_activate_service): kill child
11076 if we don't successfully complete the activation.
11078 2003-04-10 Havoc Pennington <hp@redhat.com>
11080 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11081 the connection if it's disconnected
11083 * bus/activation.c (bus_activation_service_created): use new
11084 transaction features to roll back removal of pending activation if
11085 we don't successfully create the service after all. Don't remove
11086 pending activation if the function fails.
11088 * dbus/dbus-list.c (_dbus_list_insert_before_link)
11089 (_dbus_list_insert_after_link): new code to facilitate
11092 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11093 new functionality, so we can preallocate the ability to insert
11096 * bus/connection.c (bus_transaction_add_cancel_hook): new function
11097 allowing us to put custom hooks in a transaction to be used for
11098 cancelling said transaction
11100 * doc/dbus-specification.sgml: add some discussion of secondary
11101 service owners, and disallow zero-length service names
11103 * bus/services.c (bus_registry_acquire_service): new function,
11104 splits out part of bus_driver_handle_acquire_service() and fixes
11105 a bug where we didn't remove the service doing the acquiring
11106 from the secondary queue if we failed to remove the current owner
11107 from the front of the queue.
11109 2003-04-10 Alexander Larsson <alexl@redhat.com>
11111 * doc/dbus-specification.sgml:
11112 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11114 2003-04-10 Alexander Larsson <alexl@redhat.com>
11119 Added files to cvsignore
11121 * dbus/dbus-message.h:
11122 * dbus/dbus-message.c: (dbus_message_iter_get_named):
11123 Make get_named() take two out argument and return a boolean.
11124 (dbus_message_iter_get_args_valist):
11125 Update usage of get_named().
11126 (dbus_message_iter_append_byte):
11128 (dbus_message_iter_append_named)
11130 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11133 2003-04-10 Alexander Larsson <alexl@redhat.com>
11135 * dbus/dbus-marshal.[ch]:
11136 Add array_type_pos argument to _dbus_marshal_validate_arg.
11137 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11139 * dbus/dbus-message.[ch]:
11140 Multi-dimensional arrays have full type specification in the
11141 outermost array. Iter code re-arranged to handle this.
11142 Added some more iter tests.
11144 * doc/dbus-specification.sgml:
11147 Update new array encoding description.
11148 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11150 * test/data/invalid-messages/array-with-mixed-types.message:
11151 * test/data/valid-messages/array-of-array-of-uint32.message:
11152 Change to the new array format.
11154 * test/data/invalid-messages/too-short-dict.message:
11157 * test/data/valid-messages/recursive-types.message:
11158 Fix up and extend test.
11160 2003-04-10 Havoc Pennington <hp@pobox.com>
11162 * bus/dispatch.c: lots of fixes
11164 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11165 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11166 that was crack, broke the test service.
11168 * dbus/dbus-transport.c (_dbus_transport_open): fix error
11169 handling to avoid piling up errors if we get a failure on the
11172 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11173 pid in assertion failures.
11175 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11176 to some fixed size of file descriptor array. Don't return TRUE
11177 anytime a timeout exists, that led to lots of busy loop silliness
11180 2003-04-09 Havoc Pennington <hp@redhat.com>
11182 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11183 I'd checked this in earlier but hadn't.
11185 2003-04-09 Havoc Pennington <hp@redhat.com>
11187 * bus/dispatch.c (bus_dispatch_test): get a bit further through
11188 the activation test (man this is getting old!)
11190 2003-04-09 Havoc Pennington <hp@redhat.com>
11192 * test/test-utils.c: use dispatch status function to fix this up
11194 * bus/connection.c (connection_watch_callback): don't dispatch
11196 (connection_timeout_callback): don't dispatch from here
11197 (bus_connections_setup_connection): set the dispatch status function
11198 (bus_connection_disconnected): unset it
11200 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11201 used to add a connection to be dispatched
11202 (_dbus_loop_iterate): do the dispatching at the end of each
11205 * dbus/dbus-connection.c
11206 (dbus_connection_set_dispatch_status_function): new function
11207 allowing us to fix up main loop usage
11208 (_dbus_connection_last_unref): free all the various function
11210 (dbus_connection_dispatch): call the DispatchStatusFunction
11211 whenever this function returns
11212 (dbus_connection_handle_watch): call DispatchStatusFunction
11213 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11214 (reply_handler_timeout): call DispatchStatusFunction
11215 (dbus_connection_flush): call DispatchStatusFunction
11217 2003-04-09 Havoc Pennington <hp@redhat.com>
11219 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11222 * bus/dispatch.c (check_service_activated): fix bug in test
11224 * dbus/dbus-mainloop.c (check_timeout): fix this up
11226 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11227 verbose output so we can sort out output from different processes,
11228 e.g. in the activation case.
11230 2003-04-08 Colin Walters <walters@gnu.org>
11232 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11234 (bus_context_new): Set it.
11235 (bus_context_unref): Use it to delete the pid file.
11237 2003-04-08 Havoc Pennington <hp@redhat.com>
11239 * test/data/invalid-messages/array-with-mixed-types.message:
11240 regression test that fails for the moment
11242 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11243 tests for convenience
11245 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11246 array of nil, it broke things.
11248 * test/data/invalid-messages/array-of-nil.message: regression test
11250 * test/data/valid-messages/array-of-array-of-uint32.message:
11251 happened to write this so added it to suite
11253 2003-04-08 Havoc Pennington <hp@redhat.com>
11255 * bus/driver.c (bus_driver_handle_acquire_service): init
11256 retval/reply before checking name
11258 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11259 recursion depth argument
11261 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11262 in the public struct for future extension
11264 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11267 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11270 * doc/dbus-specification.sgml: fix typo
11272 2003-04-08 Alexander Larsson <alexl@redhat.com>
11274 Implemented recursive types, named types and new-style iters
11277 * glib/test-thread-client.c: (thread_func):
11278 * glib/test-thread-server.c: (handle_test_message):
11279 * test/test-service.c: (handle_echo):
11282 * dbus/Makefile.am:
11283 * dbus/dbus-dict.c:
11284 * dbus/dbus-dict.h:
11288 * dbus/dbus-internals.c: (_dbus_type_to_string):
11289 Update for new types.
11291 * dbus/dbus-marshal.[ch]:
11292 Implement recursive types and the new marshalling format.
11293 Remove hardcoded dict marshalling.
11294 Marshal named types.
11296 * dbus/dbus-message-builder.c:
11298 Remove references to old types
11300 * dbus/dbus-message.[ch]:
11301 New non-refcounted iter API that supports recursive iters.
11302 Use iters for appending, including support for recursive
11304 Add byte and named type support.
11305 Update everything to new marshalling formats.
11306 Add tests for new API.
11308 * dbus/dbus-protocol.h:
11309 Remove old array types.
11310 Add types: BYTE, ARRAY, DICT, NAMED
11312 * dbus/dbus-string.c:
11313 * dbus/dbus-sysdeps.c:
11314 Make parse_double locale safe.
11316 * dbus/dbus-test-main.c:
11319 * dbus/dbus-test.c:
11322 * doc/dbus-specification.sgml:
11325 * test/data/incomplete-messages/missing-body.message:
11326 * test/data/invalid-messages/bad-boolean.message:
11327 * test/data/invalid-messages/bad-boolean-array.message:
11328 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11329 * test/data/invalid-messages/boolean-has-no-value.message-raw:
11330 * test/data/invalid-messages/too-short-dict.message:
11331 * test/data/valid-messages/dict-simple.message:
11332 * test/data/valid-messages/dict.message:
11333 * test/data/valid-messages/emptiness.message:
11334 * test/data/valid-messages/lots-of-arguments.message:
11335 * test/data/valid-messages/no-padding.message:
11336 * test/data/valid-messages/recursive-types.message:
11337 Add missing NAME fields
11338 Fix up dicts & arrays
11340 * test/data/invalid-messages/dict-with-nil-value.message:
11341 Removed, this is not invalid anymore.
11343 * test/data/valid-messages/recursive-types.message:
11344 Add new test for deeply recursive types.
11346 2003-04-07 Havoc Pennington <hp@pobox.com>
11348 * bus/driver.c (bus_driver_handle_acquire_service): return an
11349 error if you try to acquire a service that starts with ':'
11351 2003-04-07 Havoc Pennington <hp@redhat.com>
11353 * doc/dbus-specification.sgml: require that base service names
11354 start with ':' and that the base service is created/deleted
11355 as first and last things a connection does on the bus
11357 * bus/dispatch.c (check_existent_service_activation): lots more
11358 work on the activation test; it doesn't fully pass yet...
11360 * test/test-service.c (main): fix so we don't memleak the
11361 connection to the message bus
11362 (filter_func): accept a message asking us to exit
11364 2003-04-06 Havoc Pennington <hp@pobox.com>
11366 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11369 * configure.in: fixes to Qt detection from Colin Walters
11371 * doc/Makefile.am: Only remove generated docbook dirs if they
11372 exist, from Colin Walters
11374 * dbus/dbus-bus.c: change how we set well-known connections to
11375 NULL, so that it works if a single connection is stored in
11376 two well-known array slots.
11378 * test/Makefile.am: remove a lot of stuff that isn't immediately
11379 useful, it's in CVS history if we want it.
11381 * test/test-service.c: use dbus-mainloop instead of that
11384 2003-04-06 Havoc Pennington <hp@pobox.com>
11386 * dbus/Makefile.am: split lists of sources into stuff that goes in
11387 the library, util functions that go in the lib and are also used
11388 elsewhere, and util functions that are used in tests/daemon but
11389 don't go in the lib.
11391 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11392 here so it can be used in test binaries also
11394 2003-04-06 Havoc Pennington <hp@pobox.com>
11396 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11397 here in the parent process, so we can return an error if it
11398 fails. Also, move some of the code into the child so the parent
11399 is less hosed if we fail midway through.
11401 * bus/bus.c (bus_context_new): move pidfile detection further up
11402 in the function, before we start overwriting sockets and such.
11404 * bus/messagebus.in: adjust this a bit, not sure if it will work.
11406 * configure.in: add --with-system-pid-file and --with-system-socket
11408 2003-04-06 Colin Walters <walters@verbum.org>
11410 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11412 * bus/system.conf.in: Declare a pidfile.
11414 * bus/bus.c (bus_context_new): Test for an existing pid file, and
11415 create one (if appropriate).
11417 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11418 (struct BusConfigParser) [pidfile]: New.
11419 (element_type_to_name, merge_included, start_busconfig_child)
11420 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11421 (bus_config_parser_unref): Free it.
11422 (bus_config_parser_get_pidfile): New function.
11424 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11426 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11428 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11430 * dbus/dbus-sysdeps.h: Prototype it.
11432 2003-04-06 Havoc Pennington <hp@pobox.com>
11434 * bus/bus.c (bus_context_new): print the address in here, rather
11435 than in main(), because we need to do it before forking the daemon
11437 * bus/dispatch.c (send_service_nonexistent_error): set the sender
11438 on the service nonexistent error
11440 * bus/driver.c (bus_driver_handle_acquire_service): set the
11441 sender on the AcquireService reply
11443 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11444 server also listen on a UNIX socket so services can connect to it.
11446 2003-04-06 Havoc Pennington <hp@pobox.com>
11448 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11449 so it detects deadlocks and also we actually init threads when
11452 2003-04-06 Havoc Pennington <hp@pobox.com>
11454 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11455 save the domain socket name, and unlink it when we disconnect the
11456 server. Means that at least when we exit normally, we won't leave
11457 a bunch of junk in /tmp
11459 * dbus/dbus-transport-unix.c
11460 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11461 memory management). (I was making a real change here but then
11464 2003-04-06 Havoc Pennington <hp@pobox.com>
11466 * bus/bus.c (bus_context_new): fix wrong handling of
11467 server_data_slot_unref() in the error case.
11469 * dbus/dbus-internals.h (_dbus_assert): change so it passes
11470 "(condition) != 0" to _dbus_real_assert so that
11471 "_dbus_assert (pointer)" doesn't cause a warning
11473 * bus/main.c (main): accept --print-address option to print out
11474 the message bus address
11476 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11478 * dbus/dbus-transport.c (_dbus_transport_open): special error for
11479 "tmpdir" option to unix: address on client side
11481 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11484 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11485 we can use to create sockets in the test suite.
11487 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11488 cleanly. To be used for testing.
11490 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11492 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11494 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11495 handle trying to call this when there's no servers active
11497 2003-04-05 Havoc Pennington <hp@pobox.com>
11501 * configure.in: 0.8
11503 2003-04-05 Havoc Pennington <hp@pobox.com>
11505 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11506 crash on startup. Need to get "try starting the daemon"
11507 in the test suite I guess. ;-)
11509 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11510 tracked the number of open connections; it's better done in
11511 application-specific code as you want it to span all servers etc.
11513 2003-04-05 Havoc Pennington <hp@pobox.com>
11515 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11516 patch from Colin Walters
11518 2003-04-05 Havoc Pennington <hp@pobox.com>
11520 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11521 reality; in fact multiple mechanisms are allowed.
11523 * dbus/dbus-internals.c (_dbus_real_assert)
11524 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11525 _dbus_assert_not_reached() into functions, so that they don't show
11526 up in basic block counts for test coverage, and don't use up as
11527 much disk space. Does mean slower execution speed though, so
11528 assumes --disable-asserts is the normal production case.
11530 2003-04-05 Havoc Pennington <hp@pobox.com>
11532 * test/Makefile.am (dist-hook): also dist *.in files
11536 * configure.in: 0.7
11538 2003-04-05 Havoc Pennington <hp@pobox.com>
11540 * dbus/dbus-string.c: docs warning
11542 * dbus/dbus-spawn.c: missing docs
11544 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11546 2003-04-05 Havoc Pennington <hp@pobox.com>
11548 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11551 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11552 to -1 once we've reaped the babysitter
11553 (_dbus_babysitter_handle_watch): do as much work as we can, not
11556 * bus/activation.c: add code using DBusBabysitter so that we
11557 handle it when a service fails to start up properly.
11558 (bus_activation_service_created): don't remove the activation
11559 entries as we go, just let them get removed when we free the pending
11560 activation. Unref reply messages after sending them.
11562 2003-04-05 Havoc Pennington <hp@pobox.com>
11564 * test/decode-gcov.c (main): print per-directory stats in the report
11566 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11568 2003-04-05 Havoc Pennington <hp@pobox.com>
11570 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11572 * test/decode-gcov.c: hack up a little program to suck data
11573 out of gcov files. Yes this is sort of silly.
11575 * configure.in: define something in config.h and do an
11576 AM_CONDITIONAL when gcov is enabled
11578 2003-04-04 Havoc Pennington <hp@redhat.com>
11580 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11581 return a "babysitter" object that is used to monitor the status of
11582 the spawned process and reap it when required.
11584 * test/test-segfault.c, test/test-exit.c,
11585 test/test-sleep-forever.c: binaries that do various lame things,
11586 used in the test suite.
11588 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11590 2003-04-03 Havoc Pennington <hp@pobox.com>
11592 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11593 in preparation for modifying it, dbus-sysdeps is getting
11594 a bit unmanageable.
11596 2003-04-03 Havoc Pennington <hp@redhat.com>
11598 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11601 * bus/*.[hc]: adapt to mainloop change
11603 2003-04-03 Havoc Pennington <hp@redhat.com>
11605 * bus/activation.c (load_directory): fix up memleaks
11606 (bus_activation_entry_free): free the entry
11608 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11609 we get one from the message bus; fix memleaks.
11611 * dbus/dbus-message.c (dbus_set_error_from_message): new function
11613 2003-04-03 Havoc Pennington <hp@pobox.com>
11615 * bus/config-parser.c (bus_config_parser_unref): free
11616 list of mechanisms, bug discovered by test suite enhancements
11617 (putting system.conf and session.conf into suite)
11619 * test/Makefile.am, test/test-service.c: add placeholder for a
11620 test service that we'll activate as part of test suite. Doesn't
11623 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11624 setting NULL value, and use system malloc not dbus_malloc()
11625 when we have unavoidable memleakage.
11627 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11628 didn't work, and support DBUS_BUS_ACTIVATION.
11630 * bus/activation.c (child_setup): pass our well-known bus type to
11633 * bus/config-parser.c: support <type> to specify well-known type
11635 * doc/dbus-specification.sgml: document the env variables to
11636 locate well-known buses and find service activator
11638 2003-04-02 Havoc Pennington <hp@redhat.com>
11640 * test/Makefile.am (all-local): add a rule to copy tests to
11641 builddir, so we can have generated tests. Use this to remove the
11642 silly hack for testing system.conf and session.conf. Will use this
11643 shortly to generate .service files pointing to test binaries.
11645 2003-04-02 Havoc Pennington <hp@redhat.com>
11647 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11648 current alloc and needed new length, not max of the doubled
11649 allocation and needed new length. Also, when building tests,
11650 don't do the double-allocation stuff, just realloc every time.
11652 2003-04-02 Havoc Pennington <hp@redhat.com>
11654 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11656 (_dbus_string_get_dirname): new
11657 (_dbus_sysdeps_test): new
11658 (_dbus_directory_open): include dirnames in error messages
11660 * bus/config-parser.c: interpret <include> and <includedir> and
11661 <servicedir> relative to config file location if the given
11662 filename is not absolute.
11664 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11666 2003-04-02 Havoc Pennington <hp@redhat.com>
11668 * bus/connection.c (bus_transaction_send_error_reply): set sender
11669 service for the error, and unref the reply on success
11671 * bus/activation.c: convert to use BusTransaction so OOM can be
11673 (bus_activation_service_created): set sender of the message
11675 2003-04-01 Havoc Pennington <hp@redhat.com>
11677 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11678 <includedir> (at least mostly)
11680 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11681 first, then the user ID
11683 2003-04-01 Havoc Pennington <hp@pobox.com>
11685 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11688 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11690 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11692 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11693 socket 0777, and unlink any existing socket.
11695 * bus/bus.c (bus_context_new): change our UID/GID and fork if
11696 the configuration file so specifies; set up auth mechanism
11699 * bus/config-parser.c (bus_config_parser_content): add support
11700 for <fork> option and fill in code for <auth>
11702 * bus/system.conf.in: add <fork/> to default configuration,
11703 and limit auth mechanisms to EXTERNAL
11705 * doc/config-file.txt (Elements): add <fork>
11707 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11708 (_dbus_change_identity): new function
11710 2003-03-31 Havoc Pennington <hp@redhat.com>
11712 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11713 (_dbus_listen_unix_socket): fix off-by-one error in null
11714 termination spotted by Nalin
11716 2003-03-31 Havoc Pennington <hp@redhat.com>
11718 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11719 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11720 having a real home directory available.
11722 2003-03-31 Havoc Pennington <hp@redhat.com>
11724 * bus/Makefile.am (install-data-hook): create /var/run/dbus
11726 * bus/messagebus.in: add init script for Red Hat /etc/init.d
11728 * configure.in: add support for specifying a style of init script
11731 2003-03-31 Havoc Pennington <hp@redhat.com>
11733 Fix some annoying DBusString API and fix all affected code.
11735 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11736 max_length argument
11737 (_dbus_string_get_data): change to return string instead of using
11739 (_dbus_string_get_const_data): ditto
11740 (_dbus_string_get_data_len): ditto
11741 (_dbus_string_get_const_data_len): ditto
11743 2003-03-31 Havoc Pennington <hp@redhat.com>
11745 * bus/main.c (main): fix up the command line arguments to be nicer
11747 2003-03-31 Havoc Pennington <hp@redhat.com>
11749 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11750 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11751 final location that lands in the config file
11753 * bus/config-loader-expat.c (bus_config_load): fix type of
11754 XML_Parser variable
11756 * doc/TODO: remove TODO item for dbus_bus_get()
11758 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11760 2003-03-31 Havoc Pennington <hp@pobox.com>
11762 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11763 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11764 argument since they are always client side
11766 * dbus/dbus-server.c (dbus_server_get_address): new function
11768 * bus/main.c (main): take the configuration file as an argument.
11770 * test/data/valid-config-files/debug-allow-all.conf: new file to
11771 use with dispatch.c tests for example
11773 * bus/test-main.c (main): require test data dir
11775 * bus/bus.c (bus_context_new): change this to take a
11776 configuration file name as argument
11778 * doc/config-file.txt (Elements): add <servicedir>
11780 * bus/system.conf, bus/session.conf: new files
11782 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11783 well-known socket if none set
11785 * configure.in: create system.conf and session.conf
11787 2003-03-30 Havoc Pennington <hp@pobox.com>
11789 * bus/config-parser.c: hacking
11791 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11792 to shut down, since it could cause weirdness with the DBusList
11795 * dbus/dbus-list.c (_dbus_list_test): add tests for the
11796 link-oriented stack routines
11797 (alloc_link): free the mempool if the first alloc from it fails
11799 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11801 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11803 (_dbus_string_skip_white): new
11805 * doc/config-file.txt (Elements): add <includedir>
11807 2003-03-28 Havoc Pennington <hp@pobox.com>
11809 * dbus/dbus-string.c (_dbus_string_copy_data_len)
11810 (_dbus_string_copy_data): new functions
11812 2003-03-28 Anders Carlsson <andersca@codefactory.se>
11814 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11818 * dbus/dbus-memory.c:
11821 2003-03-28 Havoc Pennington <hp@pobox.com>
11823 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11824 I think it may have just been superstition. Not sure.
11826 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11827 failures that were not being handled.
11829 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11831 * dbus/dbus-memory.c: add ability to set number of mallocs in a
11832 row that will fail on out-of-memory.
11834 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11835 function for testing out-of-memory handling.
11837 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11838 allocation functions, they do map exactly to the expat ones.
11840 2003-03-27 Havoc Pennington <hp@redhat.com>
11842 * bus/config-loader-libxml.c (bus_config_load): add another error
11845 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11848 Add note about automatic service activation.
11850 * doc/dbus-specification.sgml:
11851 Rename the specification and clarify a few things.
11853 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11856 * dbus/dbus-address.c:
11857 * dbus/dbus-dict.c:
11858 * dbus/dbus-marshal.c:
11859 * dbus/dbus-server-debug-pipe.c:
11860 * dbus/dbus-transport-unix.c:
11861 Fix documentation warnings.
11863 2003-03-26 Havoc Pennington <hp@pobox.com>
11865 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11866 after every test so it's quick and easy to see which leaked, and
11867 so we test multiple dbus_shutdown() calls
11869 * configure.in: change configure.in XML stuff to also support
11872 * config-loader-libxml.c: some hacking
11874 * config-loader-expat.c: some hacking
11876 * config-parser.c: some hacking, plus tests
11878 2003-03-25 Havoc Pennington <hp@redhat.com>
11880 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11882 * configure.in: add --with-xml option to specify XML library,
11883 right now only libxml is supported.
11885 * bus/config-loader-libxml.c, config-parser.c: sync some minor
11886 nonworking code between home and work, still just stubs
11888 2003-03-24 Havoc Pennington <hp@redhat.com>
11890 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11893 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11894 NULL argument for "message" if the error is a well-known one,
11895 fill in a generic message in this case.
11897 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11900 * bus/test.c (bus_test_flush_bus): add
11902 * bus/policy.c (bus_policy_test): test code stub
11904 2003-03-24 Havoc Pennington <hp@pobox.com>
11906 * bus/connection.c (bus_connections_setup_connection): set up
11907 the "can this user connect" function, but it always returns
11908 TRUE until we have a config file parser so we can have a config
11909 file that allows connections.
11911 2003-03-23 Havoc Pennington <hp@pobox.com>
11913 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11914 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11915 the mutex, so we can check for proper memory management
11918 * dbus/dbus-dataslot.c: remove the mutex from
11919 DBusDataSlotAllocator and lock it manually when using it,
11920 to simplify fitting it into the global slots framework.
11922 * dbus/dbus-threads.c (init_static_locks): rework how we're
11923 handling global locks so they are easily shut down.
11925 * bus/policy.c (bus_policy_append_rule): fix
11927 * bus/test-main.c (main): check for memleaks
11929 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11930 test suite check for memleaks
11932 * dbus/dbus-memory.c: add support in test mode for tracking
11933 number of outstanding blocks
11935 2003-03-23 Havoc Pennington <hp@pobox.com>
11937 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11940 * dbus/dbus-hash.h: add ULONG hash keys
11942 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11943 (_dbus_get_group_id): new function
11945 2003-03-20 Havoc Pennington <hp@redhat.com>
11947 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11949 (dbus_connection_get_unix_user): new function
11951 2003-03-20 Havoc Pennington <hp@pobox.com>
11953 * bus/connection.c (bus_connection_send_oom_error): assert that
11954 message has a sender
11955 (connection_execute_transaction): ditto
11956 (bus_connection_preallocate_oom_error): fix to set the sender, and
11957 set recipient to the destination service, not the bus driver
11959 * bus/policy.c: hacking
11961 * dbus/dbus-message.c (dbus_message_service_is): new function
11962 (dbus_message_sender_is): new
11964 2003-03-19 Havoc Pennington <hp@redhat.com>
11966 * bus/policy.c: start sketching code for policy restrictions on
11967 what connections can do.
11969 2003-03-18 Havoc Pennington <hp@redhat.com>
11971 * doc/TODO: some notes on high-level todo items. Little nitpick
11972 stuff is all in @todo, so no need to add it here.
11974 * doc/config-file.txt: some notes on how config file might look
11976 2003-03-18 Anders Carlsson <andersca@codefactory.se>
11978 * configure.in: 0.6
11982 2003-03-17 Havoc Pennington <hp@redhat.com>
11984 * dbus/dbus-internals.h: add gcc attributes so that
11985 our printf-style functions warn on bad arguments to
11988 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11991 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11994 2003-03-17 Havoc Pennington <hp@redhat.com>
11996 * bus/test-main.c (main): make it print something as it runs
11997 so make check doesn't look stuck
11999 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12000 from CVS, now obsolete
12002 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12004 * bus/dispatch.c: (bus_dispatch):
12005 Refetch the service name since it may have been reallocated
12006 when dbus_message_set_sender was called.
12008 * dbus/dbus-sysdeps.c: (_dbus_accept):
12009 Add address and address length variables and use them to stop
12010 valgrind from complaining.
12012 2003-03-17 Havoc Pennington <hp@pobox.com>
12014 All tests pass, no memleaks, no valgrind complaints.
12016 * bus/test.c: refcount handler_slot
12018 * bus/connection.c (bus_connections_new): refcount
12019 connection_data_slot
12021 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12022 bytes so that auth scripts pass.
12024 * bus/dispatch.c: init message_handler_slot so it gets allocated
12027 * bus/dispatch.c (message_handler_slot_ref): fix memleak
12029 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12030 dealloc server_pipe_hash when no longer used for benefit of
12033 * dbus/dbus-auth.c (process_command): memleak fix
12035 * bus/dispatch.c (check_hello_message): memleak fix
12037 2003-03-16 Havoc Pennington <hp@pobox.com>
12039 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12041 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12043 * bus/activation.c (bus_activation_activate_service): Append
12044 the pending activation entry to the list of pending activations.
12046 2003-03-16 Havoc Pennington <hp@pobox.com>
12048 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12051 * dbus/dbus-address.c (create_entry): fix OOM handling when
12052 failing to alloc entry->method
12054 2003-03-16 Havoc Pennington <hp@pobox.com>
12056 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12059 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12060 add some missing dbus_set_result
12062 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12063 alloc the DBusMessageHandler
12065 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12066 the transport here, since we call this from the finalizer; it
12067 resulted in a double-finalize.
12069 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12070 where we tried to use transport->connection that was NULL,
12071 happened when transport was disconnected early on due to OOM
12073 * bus/*.c: adapt to handle OOM for watches/timeouts
12075 * dbus/dbus-transport-unix.c: port to handle OOM during
12078 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12079 reference to unused bytes instead of a copy
12081 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12084 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12087 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12090 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12092 * doc/dbus-specification.sgml:
12093 Document reply message for ActivateService.
12095 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12097 * bus/activation.c: (bus_pending_activation_entry_free),
12098 (bus_pending_activation_free), (bus_activation_new),
12099 (bus_activation_unref), (bus_activation_service_created),
12100 (bus_activation_activate_service):
12101 * bus/activation.h:
12102 * bus/bus.c: (bus_context_new):
12103 * bus/desktop-file.c: (new_section):
12104 * bus/driver.c: (bus_driver_send_service_deleted),
12105 (bus_driver_handle_activate_service):
12106 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12108 * dbus/dbus-connection.c:
12109 (dbus_connection_send_with_reply_and_block):
12110 * dbus/dbus-message.c: (dbus_message_append_args_valist):
12111 * dbus/dbus-protocol.h:
12112 Make activation work better. Now pending activations will be queued
12113 and the daemon won't try to activate services that are already registered.
12115 2003-03-16 Havoc Pennington <hp@pobox.com>
12117 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12120 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12121 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12123 2003-03-16 Havoc Pennington <hp@pobox.com>
12125 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12126 this. always run the test suite before commit...
12128 * bus/*: adapt to DBusConnection API changes
12130 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12131 requires renaming stuff to avoid dbus_connection_dispatch name
12134 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12137 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12138 separate from _dbus_message_loader_return_buffer()
12140 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12141 this, because it's now always broken to use; the number of
12142 messages in queue vs. the number still buffered by the message
12143 loader is undefined/meaningless. Should use
12144 dbus_connection_get_dispatch_state().
12145 (dbus_connection_dispatch): rename from
12146 dbus_connection_dispatch_message
12148 2003-03-16 Havoc Pennington <hp@pobox.com>
12150 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12153 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12155 * dbus/dbus-connection.c:
12156 (dbus_connection_send_with_reply_and_block):
12157 Decrease connection->n_incoming when removing an entry
12159 * dbus/dbus-dict.c: (dbus_dict_entry_free),
12160 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12161 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12162 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12163 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12164 (dbus_dict_get_byte_array):
12165 Handle NULL arrays and strings. Also add support for byte arrays.
12167 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12168 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12169 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12170 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12171 (_dbus_demarshal_dict), (demarshal_and_validate_len),
12172 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12173 * dbus/dbus-marshal.h:
12174 Add support for marshalling and demarshalling empty arrays and strings.
12176 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12177 (dbus_message_append_string_array),
12178 (dbus_message_iter_get_boolean),
12179 (dbus_message_iter_get_boolean_array),
12180 (dbus_message_iter_get_int32_array),
12181 (dbus_message_iter_get_uint32_array),
12182 (dbus_message_iter_get_double_array),
12183 (dbus_message_iter_get_byte_array),
12184 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12185 (check_message_handling):
12186 Add support for getting empty arrays and dicts.
12188 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12189 Don't do any validation at all for now, that's better than just checking
12192 * test/data/valid-messages/emptiness.message:
12193 New test message with lots of empty arrays.
12195 2003-03-16 Havoc Pennington <hp@pobox.com>
12197 * dbus/dbus-connection.c
12198 (_dbus_connection_queue_received_message_link): new function that
12199 can't fail due to OOM
12201 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12202 new function pops a message together with a list link
12205 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12206 message queuing functions to avoid needing to alloc memory
12208 2003-03-16 Havoc Pennington <hp@pobox.com>
12210 Oops - test code was only testing failure of around 30 of the
12211 mallocs in the test path, but it turns out there are 500+
12212 mallocs. I believe this was due to misguided linking setup such
12213 that there was one copy of dbus_malloc etc. in the daemon and one
12214 in the shared lib, and only daemon mallocs were tested. In any
12215 case, the test case now tests all 500+ mallocs, and doesn't pass
12216 yet, though there are lots of fixes in this patch.
12218 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12219 this so that it doesn't need to allocate memory, since it
12220 has no way of indicating failure due to OOM (and would be
12221 annoying if it did).
12223 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12225 * bus/Makefile.am: rearrange to create two self-contained
12226 libraries, to avoid having libraries with overlapping symbols.
12227 that was resulting in weirdness, e.g. I'm pretty sure there
12228 were two copies of global static variables.
12230 * dbus/dbus-internals.c: move the malloc debug stuff to
12233 * dbus/dbus-list.c (free_link): free list mempool if it becomes
12236 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12238 * dbus/dbus-address.c (dbus_parse_address): free list nodes
12241 * bus/dispatch.c (bus_dispatch_add_connection): free
12242 message_handler_slot when no longer using it, so
12243 memory leak checkers are happy for the test suite.
12245 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12247 * bus/bus.c (new_connection_callback): disconnect in here if
12248 bus_connections_setup_connection fails.
12250 * bus/connection.c (bus_connections_unref): fix to free the
12252 (bus_connections_setup_connection): if this fails, don't
12253 disconnect the connection, just be sure there are no side
12256 * dbus/dbus-string.c (undo_alignment): unbreak this
12258 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12260 (_dbus_auth_new): fix the order in which we free strings
12263 * bus/connection.c (bus_connection_disconnected): fix to
12264 not send ServiceDeleted multiple times in case of memory
12267 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12268 get the base service name
12269 (dbus_bus_register_client): don't return base service name,
12270 instead store it on the DBusConnection and have an accessor
12272 (dbus_bus_register_client): rename dbus_bus_register()
12274 * bus/dispatch.c (check_hello_message): verify that other
12275 connections on the bus also got the correct results, not
12276 just the one sending hello
12278 2003-03-15 Havoc Pennington <hp@pobox.com>
12280 Make it pass the Hello handling test including all OOM codepaths.
12281 Now to do other messages...
12283 * bus/services.c (bus_service_remove_owner): fix crash when
12284 removing owner from an empty list of owners
12285 (bus_registry_ensure): don't leave service in the list of
12286 a connection's owned services if we fail to put the service
12289 * bus/connection.c (bus_connection_preallocate_oom_error): set
12290 error flag on the OOM error.
12292 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12293 handle _dbus_transport_set_connection failure
12295 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12296 to create watches up front and simply enable/disable them as
12298 (unix_connection_set): this can now fail on OOM
12300 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12301 of enabling/disabling a watch or timeout.
12303 * bus/loop.c (bus_loop_iterate): don't touch disabled
12306 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12308 2003-03-15 Havoc Pennington <hp@pobox.com>
12310 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12311 write useful test code, after all that futzing around ;-)
12313 Test does not yet pass because we can't handle OOM in
12314 _dbus_transport_messages_pending (basically,
12315 dbus_connection_preallocate_send() does not prealloc the write
12316 watch). To fix this, I think we need to add new stuff to
12317 set_watch_functions, namely a SetEnabled function so we can alloc
12318 the watch earlier, then enable it later.
12320 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12321 dbus-memory.c to the convenience lib
12323 * bus/test.c: rename some static functions to keep them clearly
12324 distinct from stuff in connection.c. Handle client disconnection.
12326 2003-03-14 Havoc Pennington <hp@pobox.com>
12328 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12329 transport, tests more of the real codepath. Set up clients
12330 with bus_setup_debug_client.
12332 * bus/test.c (bus_setup_debug_client): function to set up debug
12333 "clients" on the main loop
12335 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12338 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12341 * dbus/dbus-server-debug.c: support a debug server based on pipes
12343 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12344 (_dbus_close): new function
12346 * configure.in: check for socketpair
12348 2003-03-14 Havoc Pennington <hp@redhat.com>
12350 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12353 * dbus/dbus-transport-debug.c: rework this a good bit to be
12354 less complicated. hopefully still works.
12356 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12359 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12362 * dbus/dbus-message.c (dbus_message_copy): rename from
12363 dbus_message_new_from_message, fix it up to copy
12364 all the message fields, add test case
12366 * bus/dispatch.c (bus_dispatch_test): add some more test code,
12367 not quite passing yet
12369 2003-03-14 Havoc Pennington <hp@pobox.com>
12371 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12372 until no work remains" in test code. (the large diff here
12373 is just code movement, no actual changes)
12375 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12376 1, no point waiting around for test code.
12377 (_dbus_server_debug_accept_transport): unref the timeout
12378 after adding it (right?)
12380 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12382 2003-03-13 Havoc Pennington <hp@redhat.com>
12384 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12387 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12390 * dbus/dbus-connection.h: Make AddWatchFunction and
12391 AddTimeoutFunction return a bool so they can fail on out-of-memory
12393 * bus/bus.c (bus_context_new): set up timeout handlers
12395 * bus/connection.c (bus_connections_setup_connection): set up
12398 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12401 * bus/bus.c (bus_context_new): adapt to changes
12403 * bus/connection.c: adapt to changes
12405 * test/watch.c: adapt to DBusWatch changes
12407 * bus/dispatch.c (bus_dispatch_test): started adding this but
12410 2003-03-14 Anders Carlsson <andersca@codefactory.se>
12412 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12414 2003-03-13 Havoc Pennington <hp@pobox.com>
12416 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12417 set up a test framework as for the library
12419 2003-03-12 Havoc Pennington <hp@pobox.com>
12421 Throughout: purge global variables, introduce BusActivation,
12422 BusConnections, BusRegistry, etc. objects instead.
12424 * bus/bus.h, bus/bus.c: introduce BusContext as a global
12427 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12428 going to redo this a bit differently I think
12430 2003-03-12 Havoc Pennington <hp@redhat.com>
12432 Mega-patch that gets the message bus daemon initially handling
12433 out-of-memory. Work still needed. Also lots of random
12434 moving stuff to DBusError instead of ResultCode.
12436 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12438 * dbus/dbus-connection.c
12439 (dbus_connection_send_with_reply_and_block): use DBusError
12441 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12444 * dbus/dbus-connection.c (dbus_connection_send): drop the result
12445 code here, as the only failure possible is OOM.
12447 * bus/connection.c (bus_connection_disconnect):
12448 rename bus_connection_disconnected as it's a notification only
12450 * bus/driver.c (bus_driver_handle_acquire_service): don't free
12451 "name" on get_args failure, should be done by get_args;
12452 don't disconnect client for bad args, just return an error.
12453 (bus_driver_handle_service_exists): ditto
12455 * bus/services.c (bus_services_list): NULL-terminate returned array
12457 * bus/driver.c (bus_driver_send_service_lost)
12458 (bus_driver_send_service_acquired): send messages from driver to a
12459 specific client to the client's unique name, not to the broadcast
12462 * dbus/dbus-message.c (decode_header_data): reject messages that
12463 contain no name field
12464 (_dbus_message_get_client_serial): rename to
12465 dbus_message_get_serial and make public
12466 (_dbus_message_set_serial): rename from set_client_serial
12467 (_dbus_message_set_reply_serial): make public
12468 (_dbus_message_get_reply_serial): make public
12470 * bus/connection.c (bus_connection_foreach): allow stopping
12471 iteration by returning FALSE from foreach function.
12473 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12474 (dbus_connection_free_preallocated_send)
12475 (dbus_connection_preallocate_send): new API for sending a message
12476 without possibility of malloc failure.
12477 (dbus_connection_send_message): rename to just
12478 dbus_connection_send (and same for whole function family)
12480 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12482 * dbus/dbus-sysdeps.c (_dbus_exit): new function
12484 * bus/activation.c: handle/return errors
12486 * dbus/dbus-errors.h: add more DBUS_ERROR #define
12488 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12489 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12490 (_dbus_result_from_errno): move to this file
12492 2003-03-10 Anders Carlsson <andersca@codefactory.se>
12494 * dbus/dbus-marshal.c:
12495 (_dbus_marshal_set_string):
12496 Take a length argument so we can marshal the correct string
12499 (_dbus_marshal_dict), (_dbus_demarshal_dict),
12500 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12501 (_dbus_marshal_test):
12502 * dbus/dbus-marshal.h:
12503 Add support for marshalling and demarshalling dicts.
12505 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12506 Add support for TYPE DICT.
12508 * dbus/dbus-message.c: (set_string_field):
12509 Adjust header padding.
12511 (dbus_message_append_args_valist), (dbus_message_append_dict),
12512 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12513 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12514 (check_message_handling), (check_have_valid_message):
12515 * dbus/dbus-message.h:
12516 Add functions for setting and getting dicts.
12518 * dbus/dbus-protocol.h:
12519 Add DBUS_TYPE_DICT.
12524 * doc/dbus-specification.sgml:
12525 Add information about how dicts are marshalled.
12527 * test/data/invalid-messages/dict-with-nil-value.message:
12528 * test/data/invalid-messages/too-short-dict.message:
12529 * test/data/valid-messages/dict-simple.message:
12530 * test/data/valid-messages/dict.message:
12531 Add sample messages containing dicts.
12533 2003-03-08 Anders Carlsson <andersca@codefactory.se>
12535 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12537 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12539 * dbus/Makefile.am:
12540 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12541 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12542 (dbus_dict_set_int32), (dbus_dict_set_uint32),
12543 (dbus_dict_set_double), (dbus_dict_set_string),
12544 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12545 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12546 (dbus_dict_set_string_array), (_dbus_dict_test):
12547 * dbus/dbus-dict.h:
12548 Fix according to comments from Havoc.
12550 2003-03-06 Michael Meeks <michael@server.home>
12552 * configure.in: if we don't have kde-config, disable have_qt.
12554 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12556 * dbus/Makefile.am:
12559 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12560 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12561 (dbus_dict_remove), (dbus_dict_get_value_type),
12562 (dbus_dict_get_keys), (dbus_dict_put_boolean),
12563 (dbus_dict_put_int32), (dbus_dict_put_uint32),
12564 (dbus_dict_put_double), (dbus_dict_put_string),
12565 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12566 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12567 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12568 (dbus_dict_get_int32), (dbus_dict_get_uint32),
12569 (dbus_dict_get_double), (dbus_dict_get_string),
12570 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12571 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12572 (dbus_dict_get_string_array), (_dbus_dict_test):
12573 * dbus/dbus-dict.h:
12574 Add DBusDict implementation
12576 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12577 * dbus/dbus-test.h:
12578 Add _dbus_dict_test
12580 2003-03-04 Havoc Pennington <hp@pobox.com>
12582 * test/data/auth/*: adapt to changes
12584 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12585 USERID_BASE64 and change USERNAME_BASE64 to put in username not
12588 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12589 more stuff from being in a context name, to make the protocol
12590 simpler to deal with
12592 * dbus/dbus-errors.c (dbus_error_has_name): new function
12593 (dbus_error_is_set): new function
12595 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12596 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12598 * dbus/dbus-connection.c (dbus_connection_flush): also read
12599 messages during a flush operation
12601 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12603 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12605 * configure.in: Check for gethostbyname on Solaris.
12607 * dbus/dbus-transport.c: (_dbus_transport_open):
12608 Remove duplicate "tcp" entry.
12610 * doc/dbus-specification.sgml:
12611 Clarify some things.
12613 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12615 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12616 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12617 (_dbus_keyring_test):
12618 * dbus/dbus-md5.c: (_dbus_md5_compute):
12619 * dbus/dbus-sha.c: (_dbus_sha_compute):
12622 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12624 * README: Add some things.
12626 2003-03-04 Anders Carlsson <andersca@codefactory.se>
12628 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12629 after case DBUS_TYPE_BOOELAN.
12631 2003-03-02 Havoc Pennington <hp@pobox.com>
12633 * test/break-loader.c (randomly_set_extreme_ints): add test that
12634 sets really huge and small integers
12636 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12637 that length of boolean array fits in the string, and that
12638 string has room for boolean value in single-bool case.
12640 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12641 optional value to "ALIGN" command which is what to fill the
12644 * test/data/valid-messages/no-padding.message: add regression
12645 test for the message padding problem
12647 2003-03-02 Havoc Pennington <hp@pobox.com>
12649 * dbus/dbus-message.c (decode_header_data): fix to always init
12650 message_padding, from Benjamin Dauvergne
12652 2003-03-02 Havoc Pennington <hp@pobox.com>
12654 * configure.in: 0.5
12658 2003-03-01 Joe Shaw <joe@assbarn.com>
12660 * configure.in: Check for "struct cmsgcred" and try to access its
12661 members for BSD-like unices.
12663 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12664 _dbus_read_credentials_unix_socket().
12665 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12666 read() for reading the credential byte off the unix socket. Use
12667 struct cmsgcred on systems that support it.
12669 2003-02-27 Alexander Larsson <alexl@redhat.com>
12671 * glib/Makefile.am:
12673 Make gthreads-2.0 dependency optional. Don't build thread test if
12676 2003-02-27 Havoc Pennington <hp@pobox.com>
12678 * dbus/dbus-connection.c
12679 (dbus_connection_send_message_with_reply_and_block): fix doh!
12680 doh! doh! bug that resulted in never removing a reply from the
12681 queue, no wonder we called get_reply_serial so much ;-)
12683 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12684 and client serial instead of demarshaling them every time
12686 2003-02-27 Havoc Pennington <hp@pobox.com>
12688 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12689 more inlined, using dbus-string-private.h, speeds things up
12692 * dbus/dbus-string.c (_dbus_string_free): apply align offset
12693 when freeing the string
12694 (_dbus_string_steal_data): fix for align offset
12695 (undo_alignment): new function
12697 2003-02-26 Havoc Pennington <hp@redhat.com>
12699 All kinds of audit fixes from Owen, plus initial attempt to
12700 handle unaligned memory returned from malloc.
12702 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12703 leave room for align_offset and nul byte
12704 (fixup_alignment): function to track an align_offset and
12705 ensure real->str is aligned
12706 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12707 to allow a nul byte plus align offset
12708 (_dbus_string_lock): fix overflow issue
12709 (_dbus_string_init_const_len): add assertions on sanity of len,
12710 assign allocated to be ALLOCATION_PADDING larger than len
12711 (set_length): fixup the overflow handling
12712 (_dbus_string_get_data_len): fix overflow in assertion
12713 (open_gap): detect overflow in size of gap to be opened
12714 (_dbus_string_lengthen): add overflow check
12715 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12716 (_dbus_string_append): add overflow check
12717 (_dbus_string_append_unichar): overflow
12718 (_dbus_string_delete): fix overflow in assertion
12719 (_dbus_string_copy_len): overflow in assertion
12720 (_dbus_string_replace_len): overflows in assertions
12721 (_dbus_string_find): change to implement in terms of
12722 _dbus_string_find_to
12723 (_dbus_string_find_to): assorted fixage
12724 (_dbus_string_equal_c_str): assert c_str != NULL,
12725 fix logic so the function works
12726 (_dbus_string_ends_with_c_str): fix overflow thingy
12727 (_dbus_string_base64_encode): overflow fix
12728 (_dbus_string_validate_ascii): overflow
12729 (_dbus_string_validate_nul): overflow
12731 2003-02-26 Havoc Pennington <hp@redhat.com>
12733 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12735 2003-02-26 Alexander Larsson <alexl@redhat.com>
12738 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12740 * dbus/dbus-connection.c:
12741 * dbus/dbus-connection.h:
12742 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12743 Add dbus_connection_set_wakeup_main_function and use it when queueing
12744 incoming and outgoing messages.
12747 * dbus/dbus-dataslot.c:
12748 Threadsafe usage of DBusDataSlotAllocator
12750 * dbus/dbus-message.c: (dbus_message_get_args_iter):
12753 * dbus/dbus-server-unix.c:
12756 * glib/dbus-gmain.c:
12757 Implement the new wakeup functions for glib.
12759 * glib/Makefile.am:
12760 * glib/test-thread-client.c:
12761 * glib/test-thread-server.c:
12762 * glib/test-thread.h:
12763 Initial cut at some thread test code. Not really done yet.
12765 2003-02-26 Havoc Pennington <hp@pobox.com>
12767 * dbus/dbus-connection.c
12768 (dbus_connection_send_message_with_reply_and_block): fix crash
12769 where we ref'd the outgoing message instead of the returned reply
12771 * dbus/dbus-transport-unix.c (do_authentication): check read watch
12772 at the end of this function, so if we didn't need to read for
12773 authentication, we reinstall it for receiving messages
12775 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12776 a NULL sender for peer-to-peer case
12778 * dbus/dbus-transport-unix.c (check_read_watch): handle
12779 !authenticated case correctly
12781 * glib/dbus-gmain.c: add support for DBusServer
12783 * dbus/dbus-server.c: add data slot support
12785 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12786 return values and handle errors
12788 * dbus/dbus-dataslot.c: factor out the data slot stuff from
12791 * Doxyfile.in (INPUT): add glib subdir
12793 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12794 setup_with_g_main instead of hookup_with_g_main; write docs
12796 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12798 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12799 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12800 * dbus/dbus-message.c: (dbus_message_append_boolean),
12801 (dbus_message_append_boolean_array),
12802 (dbus_message_get_args_valist), (_dbus_message_test):
12803 * dbus/dbus-message.h:
12804 * doc/dbus-specification.sgml:
12805 Various fixes as pointed out by Havoc.
12807 * test/data/invalid-messages/bad-boolean-array.message:
12808 * test/data/invalid-messages/bad-boolean.message:
12809 Add invalid boolean value test cases.
12811 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12813 * dbus/dbus-internals.c: (_dbus_type_to_string):
12814 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12815 (_dbus_marshal_validate_arg):
12816 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12817 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12818 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12819 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12820 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12821 (dbus_message_iter_get_double),
12822 (dbus_message_iter_get_boolean_array), (message_iter_test):
12823 * dbus/dbus-message.h:
12824 * dbus/dbus-protocol.h:
12825 * doc/dbus-specification.sgml:
12826 * test/data/valid-messages/lots-of-arguments.message:
12827 Add support for boolean and boolean array types.
12829 2003-02-23 Havoc Pennington <hp@pobox.com>
12831 * dbus/dbus-keyring.c: finish most of this implementation and
12834 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12835 these barf if the error isn't cleared to NULL
12837 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12838 (_dbus_create_directory): new function
12840 * dbus/dbus-errors.c (dbus_set_error): fix warning
12842 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12843 (_dbus_string_hex_decode): new function
12844 (test_hex_roundtrip): test code
12846 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12848 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12850 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12851 the save-to-temp/rename trick to atomically write the new file
12852 (_dbus_string_parse_uint): new function
12854 2003-02-22 Havoc Pennington <hp@pobox.com>
12856 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12858 2003-02-22 Havoc Pennington <hp@pobox.com>
12860 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12861 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12863 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12865 * dbus/test/data/sha-1: add US government test suite for SHA-1
12867 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12869 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12870 Make string arrays NULL-terminated.
12872 * dbus/dbus-memory.c: (dbus_free_string_array):
12873 * dbus/dbus-memory.h:
12874 New function for freeing NULL-terminated string arrays.
12876 * dbus/dbus-message-builder.c: (append_quoted_string),
12877 (_dbus_message_data_load):
12878 Add support for array types.
12880 * dbus/dbus-message.c: (check_message_handling):
12881 Add more types as test cases.
12883 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12884 (_dbus_string_parse_double):
12885 Add the start offset to the end offset.
12887 * test/data/valid-messages/lots-of-arguments.message:
12888 New test message with lots of arguments.
12890 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12892 * dbus/dbus-message.c: (dbus_message_append_nil),
12893 (dbus_message_append_int32), (dbus_message_append_uint32),
12894 (dbus_message_append_double), (dbus_message_append_string),
12895 (dbus_message_append_int32_array),
12896 (dbus_message_append_uint32_array),
12897 (dbus_message_append_double_array),
12898 (dbus_message_append_byte_array),
12899 (dbus_message_append_string_array):
12900 Fix all out-of-memory handling in these functions.
12902 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12904 * dbus/dbus-message.c: (dbus_message_append_nil):
12907 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12909 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12910 (dbus_message_append_nil), (dbus_message_append_int32_array),
12911 (dbus_message_append_uint32_array),
12912 (dbus_message_append_double_array),
12913 (dbus_message_append_byte_array),
12914 (dbus_message_append_string_array), (dbus_message_get_args_valist),
12915 (dbus_message_iter_get_int32_array),
12916 (dbus_message_iter_get_uint32_array),
12917 (dbus_message_iter_get_double_array),
12918 (dbus_message_iter_get_byte_array),
12919 (dbus_message_iter_get_string_array):
12921 * dbus/dbus-message.h:
12922 Add functions for appending and getting arrays.
12924 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12926 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12927 element size at least 8 bytes, fixes mempool tests on
12930 2003-02-20 Alexander Larsson <alexl@redhat.com>
12932 * dbus/dbus-transport-unix.c (unix_do_iteration):
12933 Unlock the connection mutex during a blocking select call.
12934 Add todo about how we need a way to wake up the select.
12936 * dbus/dbus-connection-internal.h:
12937 * dbus/dbus-connection.c:
12938 Add _dbus_connection_lock and _dbus_connection_unlock.
12940 2003-02-19 Havoc Pennington <hp@pobox.com>
12942 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12943 Doxyfile.in, not Doxyfile
12945 * dbus/dbus-keyring.c: do some hacking on this
12947 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12949 * dbus/dbus-errors.c (dbus_set_error_const): do not call
12951 (dbus_set_error): remove dbus_error_init, check for message ==
12952 NULL *before* we sprintf into it, and add @todo about including
12953 system headers in this file
12955 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12957 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12959 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12960 get various bits of user information based on either username
12962 (_dbus_homedir_from_username): new function
12964 2003-02-19 Anders Carlsson <andersca@codefactory.se>
12967 Add check for nonposix getpwnam_r
12969 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12970 Align the pool element size to a sizeof (void *) boundary.
12972 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12973 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12974 General Solaris fixes.
12976 * test/data/valid-messages/simplest-manual.message:
12977 Explicitly state that we want little-endian packing.
12979 2003-02-19 Mikael Hallendal <micke@codefactory.se>
12981 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12983 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12984 Added to create a transport connecting using a tcp/ip socket.
12986 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12987 to a tcp socket at given host and port.
12988 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12991 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12993 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12994 Added to create a server listening on a TCP/IP socket.
12996 2003-02-19 Havoc Pennington <hp@pobox.com>
12998 Throughout: mop up all the Doxygen warnings and undocumented
13001 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13002 to search any paths.
13004 * dbus/dbus-threads.c: move global mutex initializers to
13005 dbus-internals.h, multiple prototypes was confusing doxygen
13006 besides being kind of ugly
13008 * Doxyfile (PREDEFINED): have Doxygen define
13009 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13010 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13011 (do not abuse the feature! it's for stuff like the autogenerated
13012 macros in dbus-md5.c, not just for things you don't feel like
13015 2003-02-18 Havoc Pennington <hp@pobox.com>
13017 * dbus/dbus-string.c (_dbus_string_zero): new function
13019 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13020 wrap it in some dbus-friendly API
13022 * dbus/dbus-types.h: add 16-bit types
13024 2003-02-18 Joe Shaw <joe@assbarn.com>
13026 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13027 credentials from our currently running process.
13028 (get_word): Fix a buglet where we were copying the entire length
13029 instead of relative to our position.
13031 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13032 keys on the stack... it's 640k of data.
13034 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13035 read the credentials byte off the socket, even if we don't have
13037 (_dbus_poll): Implement poll() using select() for systems which
13040 * glib/test-dbus-glib.c (main): Print out an error if no
13041 parameters are given.
13043 * test/data/auth/fallback.auth-script: Added. Tests that a client
13044 can fallback to a secondary auth mechanism if the first fails.
13046 2003-02-18 Havoc Pennington <hp@pobox.com>
13048 * AUTHORS: add Alex
13050 2003-02-17 Havoc Pennington <hp@pobox.com>
13052 * doc/dbus-specification.sgml: lots of cosmetic
13053 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13054 env variable to DBUS_BUS_ADDRESS, s/client/application/,
13055 s/server/bus/ (except in authentication section). Add a section
13056 "Message Bus Message Routing"
13058 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
13064 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13066 * doc/dbus-specification.sgml:
13067 Specification updates.
13069 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13071 * bus/activation.c: (bus_activation_init), (child_setup),
13072 (bus_activation_activate_service):
13073 * bus/activation.h:
13074 * bus/main.c: (main):
13075 Set DBUS_ADDRESS environment variable.
13077 * dbus/dbus-errors.c: (dbus_set_error):
13078 Don't use va_copy since that's a C99 feature.
13080 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13081 (_dbus_spawn_async):
13082 * dbus/dbus-sysdeps.h:
13083 Add child_setup_func to _dbus_spawn_async.
13085 * doc/dbus-specification.sgml:
13086 Update specification.
13088 * test/spawn-test.c: (setup_func), (main):
13091 2003-02-17 Alexander Larsson <alexl@redhat.com>
13093 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13096 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13100 * doc/dbus-test-plan.sgml:
13101 Add test plan document.
13103 * test/Makefile.am:
13106 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13108 * dbus/dbus-message.c: (decode_header_data),
13109 (_dbus_message_loader_return_buffer):
13110 Set the header padding amount when loading a message.
13112 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13114 * bus/dispatch.c: (send_one_message):
13115 Only send broadcast messages to registered connections.
13117 * dbus/dbus-message.c: (dbus_message_name_is):
13118 * dbus/dbus-message.h:
13119 New convenience function.
13121 * dbus/dbus-transport-debug.c: (do_reading):
13122 Only dispatch one message per run.
13124 * test/Makefile.am:
13125 * test/bus-test.c: (new_connection_callback), (die),
13126 (test_hello_client1_handler), (test_hello_client2_handler),
13127 (test_hello_replies), (main):
13129 * test/bus-test-loop.[ch]:
13132 2003-02-16 Havoc Pennington <hp@pobox.com>
13134 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13135 backward conditional
13137 2003-02-16 Alexander Larsson <alexl@redhat.com>
13139 * dbus/dbus-connection.c:
13140 Implement sent_message_with_reply. (with_reply_and block is still
13142 Made dispatch_message not lose message if OOM.
13144 * dbus/dbus-errors.h:
13145 Add NoReply error (for reply timeouts).
13147 2003-02-16 Alexander Larsson <alexl@redhat.com>
13149 * dbus/dbus-hash.c (_dbus_hash_table_unref):
13150 Actually free keys and values when destroying hashtable.
13152 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13154 * dbus/dbus-auth.c: (client_try_next_mechanism):
13157 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13158 Return TRUE if there's no thread implementation around.
13160 * glib/dbus-gmain.c: (free_source),
13161 (dbus_connection_hookup_with_g_main):
13162 Make sure to remove the GSource when the connection is finalized.
13164 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13166 * bus/dispatch.c: (bus_dispatch_message_handler):
13167 * dbus/dbus-errors.h:
13168 Return an error if someone tries to send a message to a service
13169 that doesn't exist.
13171 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13173 * bus/activation.c: (load_directory), (bus_activation_init),
13174 (bus_activation_activate_service):
13175 * bus/activation.h:
13177 (bus_driver_handle_activate_service), (bus_driver_handle_message):
13178 More work on the activation handling.
13180 * dbus/dbus-errors.h:
13181 Add some error messages
13183 * dbus/dbus-message.c: (dbus_message_new_error_reply):
13184 * dbus/dbus-message.h:
13185 New function that creates an error message.
13187 * dbus/dbus-protocol.h:
13188 Add ACTIVATE_SERVER message.
13190 * dbus/dbus-server-unix.c: (unix_handle_watch),
13191 (_dbus_server_new_for_domain_socket):
13192 Call _dbus_fd_set_close_on_exec.
13194 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13195 (_dbus_spawn_async), (_dbus_disable_sigpipe),
13196 (_dbus_fd_set_close_on_exec):
13197 * dbus/dbus-sysdeps.h:
13198 Add _dbus_fd_set_close_on exec function. Also add function that checks
13199 that all open fds are set to close-on-exec and warns otherwise.
13201 * dbus/dbus-transport-unix.c:
13202 (_dbus_transport_new_for_domain_socket):
13203 Call _dbus_fd_set_close_on_exec.
13205 2003-02-16 Havoc Pennington <hp@pobox.com>
13207 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13208 allow people to avoid setting SIGPIPE to SIG_IGN
13209 (_dbus_connection_new_for_transport): disable SIGPIPE unless
13210 we've been asked not to
13212 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13214 * dbus/dbus-list.c: (_dbus_list_append_link),
13215 (_dbus_list_prepend_link):
13216 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13220 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13223 * bus/activation.c: (bus_activation_entry_free),
13224 (add_desktop_file_entry), (load_directory), (bus_activation_init):
13225 * bus/activation.h:
13226 * bus/main.c: (main):
13227 Add simple activation support, doesn't work yet though.
13229 2003-02-15 Zack Rusin <zack@kde.org>
13231 * qt/dbus-qthread.cpp: small casting fix
13233 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13235 * dbus/dbus-errors.c: (dbus_set_error):
13236 * dbus/dbus-errors.h:
13237 Add a few errors and make dbus_set_error void.
13239 * dbus/dbus-sysdeps.c:
13240 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13241 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13242 * dbus/dbus-sysdeps.h:
13243 Add _dbus_spawn_async.
13245 * test/spawn-test.c: (main):
13246 Test for _dbus_spawn_async.
13248 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13250 * dbus/dbus-internals.h:
13251 Fix build without tests.
13253 * dbus/dbus-list.c: (alloc_link):
13254 Fix a segfault when a malloc fails.
13256 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13257 (dbus_malloc0), (dbus_realloc):
13258 Add support for malloc debugging.
13260 2003-02-15 Alexander Larsson <alexl@redhat.com>
13262 * dbus/dbus-threads.c:
13263 * dbus/dbus-threads.h:
13264 Add condvars. Remove static mutext from API.
13265 Implement static mutexes by initializing them from threads_init.
13267 * glib/dbus-gthread.c:
13268 * qt/dbus-qthread.cpp:
13269 Update with the thread api changes.
13272 * dbus/dbus-list.c:
13273 * dbus/dbus-list.h:
13274 Turn StaticMutex into normal mutex + init function.
13275 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13276 _dbus_list_append_link, _dbus_list_prepend_link
13279 * dbus/dbus-sysdeps.c:
13280 * dbus/dbus-sysdeps.h:
13281 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13282 _dbus_atomic_dec. Only slow fallback implementation at the moment.
13284 * dbus/dbus-protocol.h:
13285 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13287 * dbus/dbus-message.c:
13288 Make ref/unref atomic.
13291 * dbus/dbus-connection-internal.h:
13292 * dbus/dbus-connection.c:
13293 * dbus/dbus-connection.h:
13295 Change _peek to _borrow,_return & _steal_borrowed.
13296 Change disconnect callback to event.
13297 Make dbus_connection_dispatch_messages reentrant.
13299 * dbus/dbus-transport.c:
13300 Don't ref the connection on calls to the transport
13303 * dbus/dbus-message-handler.c:
13306 * glib/dbus-gmain.c:
13307 Don't use peek_message anymore
13309 * test/Makefile.am:
13310 * test/debug-thread.c:
13311 * test/debug-thread.h:
13312 Simple thread implementation that asserts() on deadlocks in
13313 single-threaded code.
13316 (main) Call debug_threads_init.
13319 Use disconnect message instead of disconnect callback.
13321 * bus/connection.c:
13322 * bus/connection.h:
13323 Don't call dbus_connection_set_disconnect_function. Instead export
13324 bus_connection_disconnect.
13327 Call bus_connection_disconnect when we get a disconnected message.
13329 2003-02-15 Havoc Pennington <hp@pobox.com>
13331 * dbus/dbus-message.c (dbus_message_new): fool around with the
13334 2003-02-14 Havoc Pennington <hp@pobox.com>
13336 * dbus/dbus-mempool.c: fail if the debug functions so indicate
13338 * dbus/dbus-memory.c: fail if the debug functions indicate we
13341 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13342 (_dbus_decrement_fail_alloc_counter): debug functions to
13343 simulate memory allocation failures
13345 2003-02-14 Havoc Pennington <hp@pobox.com>
13347 * dbus/dbus-errors.h (struct DBusError): add a word of padding
13350 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13352 * bus/driver.c: (bus_driver_handle_hello):
13354 * bus/services.c: (bus_service_lookup):
13355 Reorder message sending so we get a more sane order.
13357 * test/bus-test.c: (message_handler):
13360 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13362 * bus/driver.c: (bus_driver_send_service_deleted),
13363 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13364 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13365 (bus_driver_send_welcome_message),
13366 (bus_driver_handle_list_services),
13367 (bus_driver_handle_acquire_service),
13368 (bus_driver_handle_service_exists):
13369 * dbus/dbus-bus.c: (dbus_bus_register_client),
13370 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13371 * dbus/dbus-errors.c: (dbus_result_to_string):
13372 * dbus/dbus-errors.h:
13373 * dbus/dbus-message.c: (dbus_message_append_args),
13374 (dbus_message_append_args_valist), (dbus_message_get_args),
13375 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13376 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13377 (dbus_message_iter_get_byte_array),
13378 (dbus_message_iter_get_string_array), (message_iter_test),
13379 (check_message_handling), (_dbus_message_test):
13380 * dbus/dbus-message.h:
13381 * test/bus-test.c: (main):
13382 Change fields to arguments in messages, so that they won't be
13383 confused with header fields.
13385 * glib/test-dbus-glib.c: (main):
13386 Remove append_fields from hello message.
13388 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13390 * dbus/dbus-errors.c:
13391 * dbus/dbus-message.c:
13392 * dbus/dbus-string.c:
13393 Documentation fixes.
13395 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13397 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13399 Implement support for timeouts in dbus-glib.
13401 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13403 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13404 * dbus/dbus-message.c: (process_test_subdir):
13405 * test/break-loader.c: (find_breaks_based_on):
13406 Plug some memory leaks.
13408 2003-02-13 Richard Hult <rhult@codefactory.se>
13410 * bus/main.c: Fix build.
13412 * dbus/dbus-errors.h:
13413 * dbus/dbus-errors.c: Fix copyright for Anders.
13415 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13420 * bus/connection.c: (bus_connection_foreach):
13423 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13424 (unescape_string), (new_section), (parse_section_start),
13425 (parse_key_value), (report_error), (bus_desktop_file_load),
13426 (bus_desktop_file_get_string):
13427 * bus/desktop-file.h:
13428 Use DBusError for error reporting.
13430 * bus/dispatch.c: (send_one_message),
13431 (bus_dispatch_message_handler):
13432 * bus/driver.c: (bus_driver_send_service_deleted),
13433 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13434 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13435 (bus_driver_send_welcome_message),
13436 (bus_driver_handle_list_services),
13437 (bus_driver_handle_acquire_service),
13438 (bus_driver_handle_service_exists):
13439 * bus/loop.c: (bus_loop_run):
13441 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13443 * bus/utils.c: (bus_wait_for_memory):
13445 New files with general utility functions.
13447 * dbus/dbus-internals.h:
13448 Remove _DBUS_HANDLE_OOM.
13450 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13452 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13453 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13454 * dbus/dbus-errors.h:
13455 Add DBusError structure.
13457 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13459 * test/data/valid-messages/standard-acquire-service.message:
13460 * test/data/valid-messages/standard-hello.message:
13461 * test/data/valid-messages/standard-list-services.message:
13462 * test/data/valid-messages/standard-service-exists.message:
13463 Add some standard messages.
13465 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13467 * bus/driver.c: (bus_driver_send_welcome_message),
13468 (bus_driver_handle_list_services),
13469 (bus_driver_handle_acquire_service),
13470 (bus_driver_handle_service_exists), (bus_driver_handle_message):
13471 Update for API changes in libdbus.
13473 * dbus/dbus-message.c: (dbus_message_new_reply):
13474 * dbus/dbus-message.h:
13475 Remove the name argument. The spec states that replies shouldn't
13478 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13480 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13481 (report_error), (bus_desktop_file_load), (lookup_section),
13482 (lookup_line), (bus_desktop_file_get_raw),
13483 (bus_desktop_file_get_string):
13484 * bus/desktop-file.h:
13485 Some fixes, and new functions for getting a key value from a section.
13487 2003-02-13 Havoc Pennington <hp@pobox.com>
13489 * test/data/auth/fail-after-n-attempts.auth-script: new test
13491 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13494 2003-02-13 Havoc Pennington <hp@pobox.com>
13496 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13497 dbus_credentials_match were backward
13499 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13500 NO_CREDENTIALS and ROOT_CREDENTIALS
13502 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13503 into here. Never process more commands after we've reached an
13504 end state; store further data as unused bytes.
13506 * test/data/auth/*: add more auth tests
13508 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13509 command to match exact string and EXPECT_UNUSED to match unused
13512 * test/Makefile.am (dist-hook): fix to dist all the test stuff
13514 2003-02-12 Havoc Pennington <hp@pobox.com>
13516 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13517 \r off of popped lines
13519 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13522 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13525 2003-02-12 Havoc Pennington <hp@pobox.com>
13527 * dbus/Makefile.am: remove break-loader from the build, since it
13530 * configure.in: add --enable-gcov to turn on coverage profiling
13531 flags and disable optimization
13533 2003-02-10 Havoc Pennington <hp@pobox.com>
13535 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13536 initial cut at test framework for DBusAuth from laptop.
13537 Doesn't quite work yet but it compiles and I need to get
13538 it off the 266mhz laptop. ;-)
13540 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13541 fix a memleak in error case
13543 2003-02-12 Anders Carlsson <andersca@codefactory.se>
13546 * bus/desktop-file.c:
13547 * bus/desktop-file.h:
13548 Add a desktop file parser.
13550 2003-02-11 Zack Rusin <zack@kde.org>
13552 * qt/message.[h|cpp]: sample implementation
13553 of the KDE wrapper for DBusMessage
13555 2003-02-09 Zack Rusin <zack@kde.org>
13557 * test/bus-test.c: make_it_compile
13558 * doc/dbus-specification.sgml: minimal semantic fix
13560 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13566 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13568 * dbus/Makefile.am:
13569 * dbus/dbus-break-loader.c:
13570 * test/Makefile.am:
13571 * test/break-loader.c:
13572 Move dbus-break-loader to test/ and rename it to break-loader.
13574 2003-02-02 Havoc Pennington <hp@pobox.com>
13576 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13577 for code to manage cookies in your home directory
13579 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13581 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13582 to authenticate, then disconnect the client.
13584 2003-02-03 Alexander Larsson <alexl@redhat.com>
13586 * dbus/dbus-message.c (dbus_message_append_fields):
13589 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13591 * doc/dbus-specification.sgml:
13592 Update address format section.
13594 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13596 * test/Makefile.am:
13597 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13598 (message_handler), (new_connection_callback), (loop_quit),
13599 (loop_run), (main):
13602 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13604 * bus/driver.c: (bus_driver_handle_service_exists):
13605 Simplify the code a bit.
13607 * dbus/dbus-bus.c: (dbus_bus_service_exists):
13610 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13613 Add libdbus-daemon.la and link to it.
13615 2003-02-01 James Willcox <jwillcox@gnome.org>
13617 * bus/driver.c: (bus_driver_handle_own_service):
13618 Actually include the service reply code in the message.
13620 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13622 * bus/driver.c: (bus_driver_handle_service_exists):
13623 Don't unref the incoming message.
13625 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13627 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13629 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13631 * dbus/dbus-server.c: (dbus_server_listen):
13632 * dbus/dbus-transport.c: (_dbus_transport_open):
13633 ifdef out the calls to the debug transport and server.
13635 2003-02-02 Alexander Larsson <alexl@redhat.com>
13637 * dbus/dbus-watch.c (dbus_watch_get_flags):
13638 Add note in the docs that ERROR or HANGUP won't be returned
13639 and are assumed always on.
13641 * glib/dbus-gmain.c (add_watch):
13642 Always add IO_ERR | IO_HUP
13644 * dbus/dbus-message.h:
13645 Add semicolon after dbus_message_iter_get_string_array().
13646 Makes qt code build again
13648 2003-02-01 Anders Carlsson <andersca@codefactory.se>
13650 * bus/driver.c: (create_unique_client_name),
13651 (bus_driver_handle_hello):
13652 Don't take a name, just use a numeric id to identify
13655 * dbus/Makefile.am:
13656 * dbus/dbus-bus.c: (dbus_bus_register_client),
13657 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13659 Add new convenience functions for communicating with the bus.
13661 * dbus/dbus-message.h:
13663 * dbus/dbus-protocol.h:
13666 2003-02-01 Alexander Larsson <alexl@redhat.com>
13668 * dbus/dbus-message.c (dbus_message_append_fields):
13669 Add some more doc comments.
13671 2003-02-01 Havoc Pennington <hp@pobox.com>
13673 * dbus/dbus-break-loader.c (randomly_modify_length): change
13674 a 4-byte value in the message as if it were a length
13676 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13677 execute bit on saved files
13679 2003-02-01 Havoc Pennington <hp@pobox.com>
13681 * dbus/dbus-break-loader.c (main): new program to find messages
13682 that break the loader.
13684 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13685 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13687 * dbus/dbus-string.c (_dbus_string_set_byte): new
13689 2003-01-31 Havoc Pennington <hp@pobox.com>
13691 * dbus/dbus-message.c: refactor the test code to be more general,
13692 in preparation for writing a "randomly permute test cases to
13693 try to break the loader" program.
13695 2003-01-31 Havoc Pennington <hp@pobox.com>
13697 * doc/dbus-specification.sgml: work on the specification
13699 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13700 the protocol version of the message.
13702 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13703 no longer specifies that.
13704 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13707 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13708 "break" for DBUS_TYPE_NIL, remove @todo
13710 2003-01-31 Havoc Pennington <hp@pobox.com>
13712 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13713 just set_is_error/get_is_error as this is a commonly-used
13714 function, and write docs.
13716 2003-01-31 Anders Carlsson <andersca@codefactory.se>
13718 * dbus/dbus-address.c: (dbus_address_entry_free):
13719 Free key and value lists.
13721 * dbus/dbus-internals.c: (_dbus_type_to_string):
13722 Add the types we didn't have.
13724 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13725 (_dbus_marshal_validate_arg):
13728 * dbus/dbus-message.c: (dbus_message_set_sender):
13729 Remove todo about being able to set sender to NULL.
13731 (dbus_message_set_is_error_reply),
13732 (dbus_message_get_is_error_reply):
13733 * dbus/dbus-message.h:
13736 * dbus/dbus-protocol.h:
13737 Add error reply flag.
13739 * test/data/valid-messages/opposite-endian.message:
13740 Add NIL type to test.
13742 2003-01-31 Havoc Pennington <hp@pobox.com>
13744 * doc/dbus-specification.sgml: fully specify the header. Add
13745 flags and major protocol version, and change header/body len to
13748 * dbus/dbus-message-builder.c (append_saved_length): append length
13751 * dbus/dbus-message.c (dbus_message_create_header): change header
13752 length and body length to unsigned. Add the new fields from the
13754 (_dbus_message_loader_return_buffer): unsigned header/body len
13756 2003-01-30 Havoc Pennington <hp@pobox.com>
13758 * dbus/dbus-auth.c: rework to use only REJECTED, no
13761 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13762 use REJECTED, suggested by Mark McLoughlin
13764 2003-01-30 Havoc Pennington <hp@pobox.com>
13766 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13767 a better way to report errors here. e.g. "unix address lacks
13768 path" or something. also "no such file" when the path doesn't
13771 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13773 (dbus_parse_address): add @todo about documenting address format,
13774 and allowing , and ; to be escaped
13776 2003-01-30 Anders Carlsson <andersca@codefactory.se>
13778 * dbus/Makefile.am:
13779 Add dbus-address.[ch]
13781 * dbus/dbus-address.c: (dbus_address_entry_free),
13782 (dbus_address_entries_free), (create_entry),
13783 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13784 (dbus_parse_address), (_dbus_address_test):
13785 * dbus/dbus-address.h:
13786 New files for dealing with address parsing.
13788 * dbus/dbus-connection.c:
13789 Document timeout functions.
13791 * dbus/dbus-message.c:
13792 Document dbus_message_new_from_message.
13794 * dbus/dbus-server-debug.c:
13797 * dbus/dbus-server.c: (dbus_server_listen):
13798 Parse address and use correct server implementation.
13800 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13801 * dbus/dbus-string.h:
13802 New function with test.
13804 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13805 * dbus/dbus-test.h:
13808 * dbus/dbus-transport-debug.c:
13811 * dbus/dbus-transport.c: (_dbus_transport_open):
13812 Parse address and use correct transport implementation.
13814 2003-01-30 Havoc Pennington <hp@pobox.com>
13816 * dbus/dbus-message.c: use message->byte_order instead of
13817 DBUS_COMPILER_BYTE_ORDER throughout.
13818 (dbus_message_create_header): pad header to align the
13819 start of the body of the message to 8-byte boundary
13821 * dbus/dbus-marshal.h: make all the demarshalers take const
13822 DBusString arguments.
13824 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13825 validate message args here, so we don't have to do slow validation
13826 later, and so we catch bad messages as they are incoming. Also add
13827 better checks on header_len and body_len. Also fill in
13828 message->byte_order
13830 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13831 implemented properly)
13832 (_dbus_string_validate_nul): new function to check all-nul
13834 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13835 get_arg_end_pos and remove all validation
13836 (_dbus_marshal_validate_arg): actually do validation here.
13838 2003-01-29 Havoc Pennington <hp@pobox.com>
13840 * dbus/dbus-message.c (check_message_handling): fix assertion
13841 failure on set_client_serial
13843 2003-01-28 Havoc Pennington <hp@pobox.com>
13845 * dbus/dbus-server-debug.c: Add doc section comments
13847 * dbus/dbus-transport-debug.c: add doc section comments
13849 2003-01-28 Havoc Pennington <hp@redhat.com>
13851 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13852 the reverse order from how I had it
13853 (_dbus_string_base64_encode): reverse encoding order. I was
13854 basically byteswapping everything during encoding.
13856 2003-01-28 Anders Carlsson <andersca@codefactory.se>
13858 * dbus/dbus-connection-internal.h:
13859 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13860 (_dbus_connection_remove_timeout):
13861 Add functions for adding and removing timeouts.
13863 * dbus/dbus-message.c: (dbus_message_new_from_message):
13864 Add new function that takes a message and creates an exact
13865 copy of it, but with the refcount set to 1.
13866 (check_message_handling):
13869 * dbus/dbus-server-protected.h:
13870 * dbus/dbus-server.c: (_dbus_server_init_base),
13871 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13872 (dbus_server_set_timeout_functions):
13873 (_dbus_server_remove_timeout):
13874 New functions so that a server can add and remove timeouts.
13876 (dbus_server_listen):
13877 Add commented out call to dbus_server_debug_new.
13879 * dbus/dbus-timeout.c: (_dbus_timeout_new):
13880 Actually set the handler, doh.
13882 * dbus/dbus-transport.c: (_dbus_transport_open):
13883 Add commented out call to dbus_transport_debug_client_new.
13885 * dbus/Makefile.am:
13886 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13888 2003-01-28 Havoc Pennington <hp@pobox.com>
13890 * dbus/dbus-message.c (check_message_handling): function to check
13891 on the loaded message, iterates over it etc.
13893 2003-01-28 Havoc Pennington <hp@pobox.com>
13895 * test/Makefile.am (dist-hook): fix make distdir
13897 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13899 2003-01-27 Havoc Pennington <hp@pobox.com>
13901 * dbus/dbus-mempool.c (time_for_size): replace printf with
13904 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13905 empty lines; fix the SAVE_LENGTH stuff to be
13906 START_LENGTH/END_LENGTH so it actually works; couple other
13909 * test/Makefile.am (dist-hook): add dist-hook for .message files
13911 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13912 can be constant or locked.
13913 (_dbus_string_free): allow freeing a const string as
13914 documented/intended
13916 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13918 * dbus/dbus-test-main.c (main): take an argument which is the
13919 directory containing test data
13921 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13922 argument to this and load all the messages in test/data/
13923 checking that they can be loaded or not loaded as appropriate.
13925 2003-01-27 Anders Carlsson <andersca@codefactory.se>
13927 * bus/dispatch.c: (bus_dispatch_message_handler):
13928 Dispatch messages sent to services.
13930 * bus/driver.c: (bus_driver_send_service_deleted),
13931 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13932 (bus_driver_send_service_acquired):
13933 Add helper functions for sending service related messages.
13935 (bus_driver_send_welcome_message):
13936 Send HELLO_REPLY instead of WELCOME.
13938 (bus_driver_handle_list_services):
13939 Send LIST_SERVICES_REPLY instead of SERVICES.
13941 (bus_driver_handle_own_service),
13942 (bus_driver_handle_service_exists):
13943 New message handlers.
13945 (bus_driver_handle_message):
13946 Invoke new message handlers.
13948 (bus_driver_remove_connection):
13949 Don't remove any services here since that's done automatically
13950 by bus_service_remove_owner now.
13953 New function signatures.
13955 * bus/services.c: (bus_service_add_owner):
13956 Send ServiceAcquired message if we're the only primary owner.
13958 (bus_service_remove_owner):
13959 Send ServiceAcquired/ServiceLost messages.
13961 (bus_service_set_prohibit_replacement),
13962 (bus_service_get_prohibit_replacement):
13963 Functions for setting prohibit replacement.
13965 (bus_service_has_owner):
13966 New function that checks if a connection is in the owner queue of
13970 Add new function signatures.
13972 * dbus/dbus-list.c: (_dbus_list_test):
13973 Add tests for _dbus_list_remove_last and traversing the list backwards.
13975 * dbus/dbus-list.h:
13976 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13977 go any further, so return NULL then.
13979 * dbus/dbus-protocol.h:
13980 Add new messages, service flags and service replies.
13982 2003-01-26 Havoc Pennington <hp@pobox.com>
13984 * dbus/dbus-message-builder.c: implement, completely untested.
13986 * test/data/*: add data to be used in testing.
13987 ".message" files are our simple loadable text format.
13988 ".message-raw" will be binary dumps of messages.
13990 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13992 2003-01-26 Havoc Pennington <hp@pobox.com>
13994 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13996 * dbus/dbus-errors.c (dbus_result_to_string): add
13999 * dbus/dbus-message-builder.c: new file, will contain code to load
14000 up messages from files. Not implemented yet.
14002 2003-01-26 Havoc Pennington <hp@pobox.com>
14004 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14005 the sender by setting to NULL
14007 2003-01-26 Havoc Pennington <hp@pobox.com>
14009 The unit tests pass, but otherwise untested. If it breaks, the
14010 tests should have been better. ;-)
14012 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14015 * dbus/dbus-message.c: redo everything so we maintain
14016 message->header as the only copy of the various fields.
14017 This avoids the possibility of out-of-memory in some cases,
14018 for example dbus_message_lock() can't run out of memory anymore,
14019 and avoids extra copying. Figured I may as well go ahead and do
14020 this since it was busted for dbus_message_lock to not return
14021 failure on OOM, and dbus_message_write_header was totally
14022 unchecked for OOM. Also fixed some random other bugs.
14024 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14025 that strings are nul-terminated. Also, end_pos can be equal
14026 to string length just not greater than, I think.
14027 (_dbus_marshal_set_int32): new function
14028 (_dbus_marshal_set_uint32): new function
14029 (_dbus_marshal_set_string): new function
14031 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14032 a warning, init timeout_list to NULL
14033 (dbus_connection_send_message): don't use uninitialized variable
14036 * dbus/dbus-string.c (_dbus_string_replace_len): new function
14038 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14040 * bus/driver.c: (bus_driver_handle_hello),
14041 (bus_driver_send_welcome_message):
14044 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14046 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14047 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14048 (dbus_connection_unref):
14049 * dbus/dbus-marshal.c: (_dbus_marshal_test):
14050 * dbus/dbus-message.c: (dbus_message_unref),
14053 (dbus_message_get_fields):
14054 Remove debugging printout.
14056 (_dbus_message_loader_return_buffer):
14057 Don't store the header string.
14059 (_dbus_message_test):
14062 2003-01-26 Richard Hult <rhult@codefactory.se>
14064 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14065 the file descriptor list, since it can change under us.
14067 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14069 * glib/dbus-gmain.c: (dbus_connection_prepare),
14070 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14071 (remove_watch), (dbus_connection_hookup_with_g_main):
14072 Rewrite the glib handling to use its own GSource instead of a
14073 GIOChannel so we can catch messages put in the queue while waiting
14076 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14079 * bus/connection.c: (connection_disconnect_handler),
14080 (connection_watch_callback), (bus_connection_setup):
14081 * bus/dispatch.c: (send_one_message),
14082 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14083 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14085 * bus/driver.c: (bus_driver_send_service_deleted),
14086 (bus_driver_send_service_created), (bus_driver_handle_hello),
14087 (bus_driver_send_welcome_message),
14088 (bus_driver_handle_list_services), (bus_driver_remove_connection),
14089 (bus_driver_handle_message):
14091 Refactor code, put the message dispatching in its own file. Use
14092 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14095 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14097 * dbus/dbus-internals.h:
14098 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14100 * dbus/dbus-message.c: (dbus_message_get_sender):
14101 * dbus/dbus-message.h:
14102 Implement dbus_message_get_sender.
14104 * dbus/dbus-protocol.h:
14105 Add message and service defines.
14107 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14109 * dbus/dbus-connection.c: (dbus_connection_send_message):
14110 * dbus/dbus-message-internal.h:
14111 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14112 (dbus_message_write_header):
14113 Remove _dbus_messag_unlock and don't set the client serial on a
14114 message if one already exists.
14116 2003-01-24 Havoc Pennington <hp@pobox.com>
14118 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14121 * bus/driver.c (bus_driver_handle_list_services): fix a leak
14124 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14126 * dbus/dbus-list.c: (alloc_link), (free_link):
14127 Use a memory pool for the links.
14129 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14131 * bus/connection.c: (bus_connection_foreach):
14132 * bus/connection.h:
14133 Add new bus_connection_foreach function.
14135 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14136 Add function that broadcasts a message to all clients.
14138 (bus_driver_send_service_created), (bus_driver_handle_hello),
14139 (bus_driver_send_welcome_message),
14140 (bus_driver_handle_list_services), (bus_driver_message_handler):
14141 Implement functions that take care of listing services, and notifying
14142 clients when new services are created.
14144 * bus/services.c: (bus_services_list):
14146 Add new function that returns an array of strings with the currently
14147 registered services.
14149 * glib/dbus-glib.h:
14150 * glib/dbus-gmain.c:
14151 Update copyright year.
14153 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14155 * dbus/dbus-connection.c: (dbus_connection_send_message):
14156 Unlock the message in case it was sent earlier.
14158 (dbus_connection_send_message_with_reply_and_block):
14159 Remove the reply message from the list.
14161 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14162 Set array_len and new_pos correctly.
14164 (_dbus_marshal_test):
14165 Remove debug output.
14167 * dbus/dbus-message-internal.h:
14168 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14169 New function that returns the reply serial.
14171 (_dbus_message_unlock):
14172 New function that unlocks a message and resets its header.
14174 (dbus_message_append_string_array),
14175 (dbus_message_get_fields_valist),
14176 (dbus_message_iter_get_field_type),
14177 (dbus_message_iter_get_string_array),
14178 (dbus_message_get_fields),
14179 (dbus_message_append_fields_valist):
14180 Handle string arrays.
14182 (dbus_message_set_sender):
14183 Make this function public since the bus daemon needs it.
14185 (decode_header_data):
14186 Set the reply serial to -1 initially.
14188 * dbus/dbus-message.h:
14189 Add dbus_message_set_sender.
14191 2003-01-24 Havoc Pennington <hp@pobox.com>
14193 * doc/dbus-specification.sgml: add some stuff
14195 2003-01-22 Havoc Pennington <hp@pobox.com>
14197 * doc/dbus-specification.sgml: Start to document the protocol.
14199 2003-01-22 Havoc Pennington <hp@pobox.com>
14201 * dbus/dbus-connection.c
14202 (dbus_connection_send_message_with_reply_and_block): add some @todo
14204 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14206 2003-01-21 Havoc Pennington <hp@pobox.com>
14208 (patch untested because can't compile)
14210 * bus/driver.c (create_unique_client_name): make this function
14211 never recycle client names. Also, caller should initialize
14214 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14216 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14218 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14219 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14220 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14221 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14222 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14223 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14224 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14225 * dbus/dbus-marshal.h:
14226 * dbus/dbus-protocol.h:
14227 Add support for marshalling and demarshalling integer, double
14230 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14235 * bus/connection.c: (connection_disconnect_handler):
14236 Remove the connection from the bus driver's list.
14238 (connection_watch_callback): Dispatch messages.
14240 (free_connection_data): Free connection name.
14242 (bus_connection_setup): Add connection to the bus driver's list.
14243 (bus_connection_remove_owned_service):
14244 (bus_connection_set_name), (bus_connection_get_name):
14245 Add functions for setting and getting the connection's name.
14247 * bus/connection.h:
14248 Add function headers.
14250 * bus/driver.c: (create_unique_client_name),
14251 (bus_driver_handle_hello_message),
14252 (bus_driver_send_welcome_message), (bus_driver_message_handler),
14253 (bus_driver_add_connection), (bus_driver_remove_connection):
14256 * bus/services.c: (bus_service_free):
14258 New file that handles communication and registreation with the bus
14261 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14263 * dbus/dbus-connection.c: (dbus_connection_send_message):
14264 Add a new client_serial parameter.
14266 (dbus_connection_send_message_with_reply):
14267 Remove a @todo since we've implemented the blocking function.
14269 (dbus_connection_send_message_with_reply_and_block):
14270 New function that sends a message and waits for a reply and
14271 then returns the reply.
14273 * dbus/dbus-connection.h:
14276 * dbus/dbus-errors.c: (dbus_result_to_string):
14277 * dbus/dbus-errors.h:
14278 Add new DBUS_RESULT.
14280 * dbus/dbus-message-internal.h:
14281 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14282 (_dbus_message_set_sender), (dbus_message_write_header),
14283 (dbus_message_new_reply), (decode_header_data),
14284 (_dbus_message_loader_return_buffer), (_dbus_message_test):
14285 * dbus/dbus-message.h:
14286 Add new functions that set the reply serial and sender.
14287 Also marshal and demarshal them correctly and add test.
14289 * dbus/dbus-protocol.h:
14290 Add new DBUS_MESSAGE_TYPE_SENDER.
14292 * glib/dbus-glib.h:
14293 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14294 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14295 (dbus_connection_hookup_with_g_main):
14296 * glib/test-dbus-glib.c: (main):
14297 Rewrite to use GIOChannel and remove the GSource crack.
14299 * test/echo-client.c: (main):
14300 * test/watch.c: (check_messages):
14301 Update for changed APIs
14303 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14305 * dbus/Makefile.am: Add dbus-timeout.[cħ]
14307 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14308 Create a DBusTimeoutList.
14309 (dbus_connection_set_timeout_functions): Add new function to
14310 set timeout callbacks
14312 * dbus/dbus-connection.h: Add public DBusTimeout API.
14314 * dbus/dbus-message.c: (dbus_message_get_service):
14315 * dbus/dbus-message.h: New function.
14317 * dbus/dbus-server.c: Fix small doc typo.
14319 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14321 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14323 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14324 of the string, just as long as specified.
14326 2003-01-19 Havoc Pennington <hp@pobox.com>
14328 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14331 * dbus/dbus-server.c (dbus_server_set_max_connections)
14332 (dbus_server_get_max_connections, dbus_server_get_n_connections):
14333 keep track of current number of connections, and add API for
14334 setting a max (but haven't implemented enforcing the max yet)
14336 2003-01-18 Havoc Pennington <hp@pobox.com>
14338 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14339 reading/writing if read_watch != NULL or write_watch != NULL.
14341 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14342 the message loader code to actually load message->header and
14343 message->body into the newly-created message.
14345 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14348 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14349 (dbus_connection_get_max_message_size)
14350 (dbus_connection_set_max_live_messages_size)
14351 (dbus_connection_get_max_live_messages_size): implement some
14352 resource limitation functions
14354 * dbus/dbus-resources.c: new file implementing some of the
14355 resource limits stuff
14357 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14358 missing docs, add @todo to handle OOM etc.
14360 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14363 2003-01-18 Havoc Pennington <hp@pobox.com>
14365 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14366 connection if it hasn't been already.
14368 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14369 replace with DisconnectFunction.
14371 2003-01-18 Havoc Pennington <hp@pobox.com>
14373 Building --disable-verbose-mode --disable-asserts --disable-tests
14374 cuts the library from 112K to 45K or so
14376 * configure.in: check for varargs macro support,
14377 add --enable-verbose-mode, --enable-asserts.
14379 * dbus/dbus-internals.h (_dbus_assert): support
14380 DBUS_DISABLE_ASSERT
14381 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14383 2003-01-18 Havoc Pennington <hp@pobox.com>
14385 * dbus/dbus-test.c: include config.h so that tests actually run
14387 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14388 so the failure mode when that assumption fails will be plenty
14391 2003-01-18 Havoc Pennington <hp@pobox.com>
14393 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14395 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14398 * test/Makefile.am: don't use special variable "TESTS" for echo-*
14399 since we don't want to use those in make check
14401 2003-01-15 Havoc Pennington <hp@redhat.com>
14407 2003-01-15 Havoc Pennington <hp@redhat.com>
14409 * test/Makefile.am: fix so that test source code ends up in the
14410 distribution on make distcheck
14412 2003-01-15 Havoc Pennington <hp@redhat.com>
14418 2003-01-15 Havoc Pennington <hp@redhat.com>
14420 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14421 fix build when --disable-tests
14423 * Makefile.am (EXTRA_DIST): put HACKING in here
14425 * HACKING: document procedure for making a tarball release.
14427 2003-01-14 Anders Carlsson <andersca@codefactory.se>
14429 * bus/connection.c: (connection_error_handler),
14430 (bus_connection_setup):
14431 * bus/main.c: (main):
14432 Make sure that the DBusConnectionData struct is NULLed
14433 out to prevent a segfault.
14435 * dbus/dbus-errors.c: (dbus_result_to_string):
14436 * dbus/dbus-errors.h:
14437 * dbus/dbus-message.c: (dbus_message_get_fields),
14438 (dbus_message_get_fields_valist), (_dbus_message_test):
14439 * dbus/dbus-message.h:
14440 Make dbus_message_get_fields return a result code so we can
14441 track invalid fields as well as oom.
14443 2003-01-11 Havoc Pennington <hp@pobox.com>
14445 * configure.in: change --enable-test/--enable-ansi action-if-given
14446 to enable_foo=$enableval instead of enable_foo=yes
14448 2003-01-08 Havoc Pennington <hp@pobox.com>
14450 * dbus/dbus-string.c (_dbus_string_align_length): new function
14452 * dbus/dbus-test-main.c: move main() for test app here
14454 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14455 symbol to run tests, because dbus-test isn't in the main
14458 Code review nitpicks.
14460 * dbus/dbus-message.c (dbus_message_write_header): add newlines
14461 for people with narrow emacs ;-). Assert client_serial was filled
14462 in. Assert message->name != NULL.
14463 (dbus_message_append_fields): have "first_field_type" arg separate
14464 from va list, needed for C++ binding that also uses varargs IIRC
14465 and helps with type safety
14466 (dbus_message_new): add @todo about using DBusString to store
14467 service/name internally
14468 (dbus_message_new): don't leak ->service and ->name on OOM later
14470 (dbus_message_unref): free the service name
14471 (dbus_message_get_fields): same change to varargs
14472 i.e. first_field_type
14473 (_dbus_message_loader_return_buffer): assert that the message data
14474 is aligned (if not it's a bug in our code). Put in verbose griping
14475 about why we set corrupted = TRUE.
14476 (decode_header_data): add FIXME that char* is evil. Was going to
14477 add FIXME about evil locale-specific string.h strncmp, but just
14478 switched to wacky string-as-uint32 optimization. Move check for
14479 "no room for field name" above get_const_data_len() to avoid
14480 assertion failure in get_const_data_len if we have trailing 2
14481 bytes or the like. Check for service and name fields being
14482 provided twice. Don't leak service/name on error. Require field
14483 names to be aligned to 4 bytes.
14485 * dbus/dbus-marshal.c: move byte swap stuff to header
14486 (_dbus_pack_int32): uscore-prefix
14487 (_dbus_unpack_int32): uscore-prefix
14488 (_dbus_unpack_uint32): export
14489 (_dbus_demarshal_string): add @todo complaining about use of
14491 (_dbus_marshal_get_field_end_pos): add @todo about bad error
14492 handling allowing corrupt data to go unchecked
14494 2003-01-08 Havoc Pennington <hp@redhat.com>
14496 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14497 to the select() as needed for authentication. (should be using
14498 _dbus_poll() not select, but for another day)
14500 * dbus/dbus.h: include dbus/dbus-protocol.h
14502 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14504 * dbus/Makefile.am (dbusinclude_HEADERS): Install
14507 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14509 * dbus/dbus-internals.c: (_dbus_type_to_string):
14510 New function that returns a string describing a type.
14512 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14513 * dbus/dbus-marshal.h:
14514 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14515 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14516 (dbus_message_iter_get_byte_array):
14517 * dbus/dbus-message.h:
14518 Add new convenience functions for appending and getting message fields.
14519 Also add demarshalling routines for byte arrays.
14521 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14523 * dbus/dbus-connection-internal.h:
14524 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14525 (_dbus_connection_get_next_client_serial),
14526 (dbus_connection_send_message):
14527 * dbus/dbus-internals.h:
14528 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14529 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14530 (_dbus_marshal_uint32), (_dbus_demarshal_double),
14531 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14532 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14533 (_dbus_verbose_bytes), (_dbus_marshal_test):
14534 * dbus/dbus-marshal.h:
14535 * dbus/dbus-message-internal.h:
14536 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14537 (dbus_message_write_header), (_dbus_message_lock),
14538 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14539 (dbus_message_get_name), (dbus_message_append_int32),
14540 (dbus_message_append_uint32), (dbus_message_append_double),
14541 (dbus_message_append_string), (dbus_message_append_byte_array),
14542 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14543 (dbus_message_iter_unref), (dbus_message_iter_has_next),
14544 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14545 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14546 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14547 (decode_header_data), (_dbus_message_loader_return_buffer),
14548 (message_iter_test), (_dbus_message_test):
14549 * dbus/dbus-message.h:
14550 * dbus/dbus-protocol.h:
14551 * dbus/dbus-test.c: (main):
14552 * dbus/dbus-test.h:
14553 * glib/test-dbus-glib.c: (message_handler), (main):
14554 * test/echo-client.c: (main):
14555 * test/watch.c: (check_messages):
14556 Make messages sendable and receivable for real.
14558 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14560 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14561 (_dbus_marshal_string), (_dbus_marshal_byte_array):
14562 * dbus/dbus-message.c: (dbus_message_append_int32),
14563 (dbus_message_append_uint32), (dbus_message_append_double),
14564 (dbus_message_append_string), (dbus_message_append_byte_array):
14565 Handle OOM restoration.
14567 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14569 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14570 (_dbus_demarshal_string), (_dbus_marshal_test):
14571 * dbus/dbus-marshal.h:
14572 * dbus/dbus-message.c: (dbus_message_get_name),
14573 Document these functions.
14575 (dbus_message_append_int32), (dbus_message_append_uint32),
14576 (dbus_message_append_double), (dbus_message_append_string),
14577 (dbus_message_append_byte_array):
14578 * dbus/dbus-message.h:
14579 Add functions for adding message fields of different types.
14581 * dbus/dbus-protocol.h:
14582 Add the different types.
14584 2003-01-05 Havoc Pennington <hp@pobox.com>
14586 * bus/connection.c: implement routines for handling connections,
14587 first thing is keeping a list of owned services on each connection
14588 and setting up watches etc.
14590 * bus/services.c: implement a mapping from service names to lists
14593 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14595 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14596 to use static mutexes for global data
14598 * dbus/dbus-connection.c (dbus_connection_set_data): add new
14599 collection of functions to set/get application-specific data
14600 on the DBusConnection.
14602 2003-01-04 Havoc Pennington <hp@pobox.com>
14604 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14605 (_dbus_poll): new function
14607 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14610 * bus/loop.c: initial code for the daemon main loop
14612 2003-01-04 Havoc Pennington <hp@pobox.com>
14614 * test/watch.c (error_handler): make it safe if the error handler
14615 is called multiple times (if we s/error handler/disconnect
14616 handler/ we should just guarantee it's called only once)
14618 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14619 error handler on disconnect (it's quite possible we should
14620 just change the error handler to a "disconnect handler," I'm
14621 not sure we have any other meaningful errors)
14623 * configure.in: check for getpwnam_r
14625 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14626 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14627 mechanism as in SASL spec, using socket credentials
14629 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14630 (_dbus_send_credentials_unix_socket): new function
14632 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14634 (_dbus_write): only check errno if <0 returned
14635 (_dbus_write_two): ditto
14637 2003-01-02 Anders Carlsson <andersca@codefactory.se>
14639 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14640 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14641 (_dbus_marshal_test):
14642 * dbus/dbus-marshal.h:
14643 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14644 to _dbus_marshal_utf8_string. Also fix some tests.
14646 2002-12-28 Harri Porten <porten@kde.org>
14648 * configure.in: added check for C++ compiler and a very cheesy
14649 check for the Qt integration
14651 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14653 * qt/Makefile.am: added
14655 * qt/.cvsignore: added
14657 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14658 latter, added #ifdef QT_THREAD_SUPPORT guard.
14660 * dbus/Makefile.am: added missing headers for make dist
14662 2002-12-28 Kristian Rietveld <kris@gtk.org>
14664 * dbus/Makefile.am: fixup export-symbols-regex.
14666 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14668 * acinclude.m4: Add this file and put the
14669 PKG_CHECK_MODULE macro in it.
14671 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14673 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14674 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14675 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14676 (_dbus_marshal_test):
14677 Make the demarshalling routines align the pos argument.
14678 Add string marshalling tests and fix the obvious bugs
14681 2002-12-26 Havoc Pennington <hp@pobox.com>
14683 * dbus/dbus-auth.c: fixes fixes fixes
14685 * dbus/dbus-transport-unix.c: wire up support for
14686 encoding/decoding data on the wire
14688 * dbus/dbus-auth.c (_dbus_auth_encode_data)
14689 (_dbus_auth_decode_data): append to target string
14690 instead of nuking it.
14692 2002-12-26 Havoc Pennington <hp@pobox.com>
14694 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14695 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14698 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14699 avoid swap_bytes() overhead (ignoring possible assembly stuff for
14700 now). Main point is because I wanted unpack_uint32 to implement
14701 _dbus_verbose_bytes
14702 (_dbus_verbose_bytes): new function
14704 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14706 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14707 mechanism to handle a corrupt message stream
14708 (_dbus_message_loader_new): fix preallocation to only prealloc,
14711 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14712 (_dbus_string_test): enhance tests for copy/move and fix the
14715 * dbus/dbus-transport-unix.c: Hold references in more places to
14716 avoid reentrancy problems
14718 * dbus/dbus-transport.c: ditto
14720 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14721 leak reference count in no-message case
14723 * test/watch.c (do_mainloop): handle adding/removing watches
14724 during iteration over the watches. Also, ref the connection/server
14725 stored on a watch, so we don't try to mangle a destroyed one.
14727 * dbus/dbus-transport-unix.c (do_authentication): perform
14730 * dbus/dbus-auth.c (get_state): add a state
14731 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14732 (_dbus_auth_get_unused_bytes): append the unused bytes
14733 to the passed in string, rather than prepend
14735 * dbus/dbus-transport.c (_dbus_transport_init_base): create
14736 the auth conversation DBusAuth
14738 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14739 (_dbus_transport_new_for_domain_socket): when creating a
14740 transport, pass in whether it's a client-side or server-side
14741 transport so we know which DBusAuth to create
14743 2002-12-03 Havoc Pennington <hp@pobox.com>
14745 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14746 _after_ finalizing the derived members
14747 (unix_connection_set): unref watch if we fail to add it
14749 * dbus/dbus-connection.c (dbus_connection_unref): delete the
14750 transport first, so that the connection owned by the
14751 transport will be valid as the transport finalizes.
14753 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14754 if necessary, and remove watches from the connection.
14756 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14758 2002-12-26 Anders Carlsson <andersca@codefactory.se>
14760 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14761 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14762 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14763 (_dbus_marshal_test):
14764 * dbus/dbus-marshal.h:
14765 Add string marshal functions and have the demarshal functions
14766 return the new position.
14768 2002-12-25 Havoc Pennington <hp@pobox.com>
14770 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14771 it is a simple protocol that just maps directly to SASL.
14773 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14774 initial implementation, not actually used yet.
14776 * dbus/dbus-string.c (_dbus_string_find): new function
14777 (_dbus_string_equal): new function
14778 (_dbus_string_base64_encode): new function
14779 (_dbus_string_base64_decode): new function
14781 2002-12-25 Anders Carlsson <andersca@codefactory.se>
14783 * dbus/Makefile.am:
14784 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14785 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14786 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14787 (_dbus_demarshal_uint32), (_dbus_marshal_test):
14788 * dbus/dbus-marshal.h:
14789 * dbus/dbus-protocol.h:
14790 * dbus/dbus-test.c: (main):
14791 * dbus/dbus-test.h:
14792 Add un-optimized marshalling/demarshalling routines.
14794 2002-12-25 Harri Porten <porten@kde.org>
14796 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14798 2002-12-24 Zack Rusin <zack@kde.org>
14800 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14801 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14804 2002-12-24 Havoc Pennington <hp@pobox.com>
14806 * glib/dbus-gthread.c: fix include
14808 * glib/dbus-glib.h: rename DBusMessageHandler for now.
14809 I think glib API needs to change, though, as you don't
14810 want to use DBusMessageFunction, you want to use the
14811 DBusMessageHandler object. Probably
14812 dbus_connection_open_with_g_main_loop()
14813 and dbus_connection_setup_g_main_loop() or something like that
14814 (but think of better names...) that just create a connection
14815 that has watch/timeout functions etc. already set up.
14817 * dbus/dbus-connection.c
14818 (dbus_connection_send_message_with_reply): new function just to
14819 show how the message handler helps us deal with replies.
14821 * dbus/dbus-list.c (_dbus_list_remove_last): new function
14823 * dbus/dbus-string.c (_dbus_string_test): free a string that
14826 * dbus/dbus-hash.c: use memory pools for the hash entries
14827 (rebuild_table): be more paranoid about overflow, and
14828 shrink table when we can
14829 (_dbus_hash_test): reduce number of sprintfs and write
14830 valid C89. Add tests for case where we grow and then
14831 shrink the hash table.
14833 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14835 * dbus/dbus-connection.c (dbus_connection_register_handler)
14836 (dbus_connection_unregister_handler): new functions
14838 * dbus/dbus-message.c (dbus_message_get_name): new
14840 * dbus/dbus-list.c: fix docs typo
14842 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14843 an object representing a handler for messages.
14845 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14847 * glib/dbus-glib.h:
14848 * glib/dbus-gthread.c: (dbus_gthread_init):
14849 Don't use the gdbus prefix for public functions.
14851 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14855 Add GLib checks and fixup .pc files
14857 * glib/Makefile.am:
14858 * glib/dbus-glib.h:
14859 * glib/dbus-gmain.c: (gdbus_connection_prepare),
14860 (gdbus_connection_check), (gdbus_connection_dispatch),
14861 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14862 (dbus_connection_gsource_new):
14863 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14864 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14865 * glib/test-dbus-glib.c: (message_handler), (main):
14868 2002-12-15 Harri Porten <porten@kde.org>
14870 * autogen.sh: check for libtoolize before attempting to use it
14872 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14875 * .cvsignore: ignore more stamp files
14877 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14879 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14880 without make install.
14882 2002-12-15 Havoc Pennington <hp@pobox.com>
14884 * dbus/dbus-threads.c: add thread stubs that a higher library
14885 layer can fill in. e.g. the GLib wrapper might fill them in with
14886 GThread stuff. We still need to use this thread API to
14887 thread-safe-ize the library.
14889 2002-12-12 Havoc Pennington <hp@pobox.com>
14891 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14892 below new interfaces and include fewer system headers.
14894 * dbus/dbus-sysdeps.c (_dbus_read): new function
14895 (_dbus_write): new function
14896 (_dbus_write_two): new function
14897 (_dbus_connect_unix_socket): new function
14898 (_dbus_listen_unix_socket): new function
14900 * dbus/dbus-message-internal.h: change interfaces to use
14903 2002-12-11 Havoc Pennington <hp@pobox.com>
14905 * dbus/dbus-types.h: add dbus_unichar
14907 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14909 * dbus/dbus-connection.c (dbus_connection_send_message): return
14912 * dbus/dbus-transport.c: include dbus-watch.h
14914 * dbus/dbus-connection.c: include dbus-message-internal.h
14916 * HACKING: add file with coding guidelines stuff.
14918 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14919 handling here, for security purposes (as in vsftpd). Not actually
14920 using this class yet.
14922 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14923 system/libc usage here, as in vsftpd, for ease of auditing (and
14924 should also simplify portability). Haven't actually moved all the
14925 system/libc usage into here yet.
14927 2002-11-25 Havoc Pennington <hp@pobox.com>
14929 * dbus/dbus-internals.c (_dbus_verbose): fix to not
14930 always print the first verbose message.
14932 2002-11-24 Havoc Pennington <hp@pobox.com>
14934 * test/echo-client.c, test/echo-server.c: cheesy test
14937 * configure.in (AC_CHECK_FUNCS): check for writev
14939 * dbus/dbus-message.c (_dbus_message_get_network_data): new
14942 * dbus/dbus-list.c (_dbus_list_foreach): new function
14944 * dbus/dbus-internals.c (_dbus_verbose): new function
14946 * dbus/dbus-server.c, dbus/dbus-server.h: public object
14947 representing a server that listens for connections.
14949 * dbus/.cvsignore: create
14951 * dbus/dbus-errors.h, dbus/dbus-errors.c:
14952 public API for reporting errors
14954 * dbus/dbus-connection.h, dbus/dbus-connection.c:
14955 public object representing a connection that
14956 sends/receives messages. (Same object used for
14957 both client and server.)
14959 * dbus/dbus-transport.h, dbus/dbus-transport.c:
14960 Basic abstraction for different kinds of stream
14961 that we might read/write messages from.
14963 2002-11-23 Havoc Pennington <hp@pobox.com>
14965 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14968 * dbus/dbus-test.c (main): add list test, and include
14969 dbus-test.h as intended
14971 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14972 (_dbus_hash_table_remove_int): return value indicates
14973 whether the entry existed to remove
14975 * dbus/dbus-list.c: add linked list utility class,
14976 with docs and tests
14978 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14981 2002-11-23 Havoc Pennington <hp@pobox.com>
14983 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14984 DBUS_END_DECLS to nothing, that should fix this once and for all
14986 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14988 * dbus/dbus-message.c, dbus/dbus-hash.c:
14989 add some missing @brief
14991 2002-11-23 Havoc Pennington <hp@pobox.com>
14993 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14994 to avoid confusing Doxygen
14996 * dbus/dbus-hash.c: @} not }@
14998 * dbus/dbus-message.c (struct DBusMessage): split out
15001 2002-11-23 Havoc Pennington <hp@pobox.com>
15003 * configure.in: pile on more warning flags if using gcc
15005 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15006 to document static functions
15008 * configure.in: add summary to end of configure so it
15009 looks nice and attractive
15011 * dbus/dbus-hash.c: finish implementation and write unit
15014 * configure.in: add --enable-tests to enable unit tests
15016 * dbus/dbus-test.c: test program to run unit tests
15017 for all files in dbus/*, initially runs a test for
15020 * dbus/dbus-internals.h: file to hold some internal utility stuff
15022 2002-11-22 Havoc Pennington <hp@redhat.com>
15024 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15025 "ported" away from Tcl
15027 * dbus/dbus-types.h: header for types such as dbus_bool_t
15029 2002-11-22 Havoc Pennington <hp@redhat.com>
15031 * dbus/dbus.h: fixups for doc warnings
15033 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15035 (QUIET): make it quiet so we can see warnings
15037 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15039 2002-11-22 Havoc Pennington <hp@redhat.com>
15041 * Makefile.am: include "Doxyfile" target in all-local
15043 * configure.in: generate the Doxyfile
15045 * Doxyfile.in: move Doxyfile here, so we can use
15046 configure to generate a Doxyfile with the right
15047 version number etc.
15049 2002-11-22 Havoc Pennington <hp@redhat.com>
15051 * dbus/dbus-message.c: move inline docs into .c file
15053 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15054 so all docs are under doc/
15055 (MAN_EXTENSION): generate man pages. Use extension
15056 ".3dbus" which matches ".3qt" on my system,
15057 I guess this is OK, I don't know really.
15058 (FILE_PATTERNS): look for .c files not .h, makes sense
15059 for plain C I think
15061 2002-11-22 Havoc Pennington <hp@pobox.com>
15063 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15064 because any app can be a server, and any app can be a client,
15065 the bus is a special kind of server.
15067 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
15069 * Doxyfile : adding. Still needs Makefile rules to be generated
15070 automatically (just run "doxygen" in the toplevel dir for now to
15073 * dbus/dbus-message.h : Adding sample docs (javadoc since
15074 resembles gtk-doc a little more)
15076 * dbus/dbus.h : Adding sample docs
15078 2002-11-21 Havoc Pennington <hp@redhat.com>
15080 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15081 so we can allow ourselves to include files directly,
15082 instead of having to use dbus.h
15084 * dbus/dbus.h: fill in
15086 * dbus/dbus-message.h: sketch out a sample header file.
15087 Include griping if you include it directly instead of
15090 * dbus/dbus-macros.h: new file with macros for extern "C",
15091 TRUE/FALSE, NULL, etc.
15093 * doc/file-boilerplate.c: put include guards in here
15095 2002-11-21 Havoc Pennington <hp@redhat.com>
15097 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15099 * COPYING: include the GPL as well, and license code
15100 under both AFL and GPL.
15102 2002-11-21 Havoc Pennington <hp@redhat.com>
15104 * acconfig.h: get rid of this
15106 * autogen.sh (run_configure): add --no-configure option
15108 * configure.in: remove AC_ARG_PROGRAM to make
15109 autoconf complain less. add AC_PREREQ.
15110 add AC_DEFINE third arg.
15112 2002-11-21 Anders Carlsson <andersca@codefactory.se>
15115 Fix references so we can distcheck.
15117 2002-11-21 Havoc Pennington <hp@redhat.com>
15119 * Initial module creation