1 2006-11-07 Havoc Pennington <hp@redhat.com>
3 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
4 documentation updates. Bump faq/spec versions (not to 1.0; I don't
5 think the spec will be "finished"/1.0 when we ship the 1.0 library).
7 2006-11-06 John (J5) Palmieri <johnp@redhat.com>
9 * bus/bus.c: Missed patch - pass in the context to the directory watch
11 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
13 * Released D-Bus 1.0 RC 3(0.95)
15 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
17 * bus/activation.c (bus_activation_new): don't fail if we can not read
18 the directory as it may not exist
20 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
22 * bus/config-parser.c (service_dirs_find_dir): use
23 _dbus_list_get_next_link so we don't get stuck in an infinite loop
24 (start_busconfig_child): move processing of standard_session_servicedirs
25 tags here because they have no content
26 (bus_config_parser_content): check we don't have content in
27 standard_session_servicedirs tag
29 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
31 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
32 Packagers need to own this directory
34 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
36 * tools/run-with-tmp-session-bus.sh: fixed script to replace the
37 <standard_session_servicedirs> tag with a <sevicedir> tag that
38 points to the test service directory
40 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
42 * configure.in: Add a check for DIR *dirp->dd_fd
44 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
45 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
46 of both Solaris and Irix
48 2006-11-01 Havoc Pennington <hp@redhat.com>
50 * bus/dbus-daemon.1.in: document standard_session_servicedirs
52 2006-11-01 John (J5) Palmieri <johnp@redhat.com>
54 * configure.in: expose DBUS_DATADIR
56 * bus/config-parser.c: add the standard_session_servicedirs element
58 (bus_config_parser_content): process the standard_session_servicedirs
59 element by getting the standard directories from sysdeps and merging
60 them into the service directory list
61 (test_default_session_servicedirs): make sure we get what we expect
63 * bus/session.conf.in: replace the servicedir tag with the
64 standard_session_servicedirs tag
66 * dbus/dbus-list.h: remove the typedef of DBusList and place it in
67 dbus-sysdeps.h to avoid circular header dependencies
69 * dbus/dbus-sysdeps.h: add the typedef of DBusList
71 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
72 which takes a string of directories delimited by colons, parses them
73 out, appends a suffix and puts them in a list ignoring empty elements
74 (_dbus_get_standard_session_servicedirs): returns the standard
75 directories for a session bus to look for service activation files
76 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and
77 DBUS_DATADIR directories
79 * test/data/valid-config-files/many-rules.conf: add the
80 standard_session_servicedirs tag to the valid config file tests
82 2006-10-30 Havoc Pennington <hp@redhat.com>
84 * tools/dbus-launch.1, doc/TODO: capture intent to change the
85 command line options of dbus-launch a bit post 1.0
87 2006-10-27 Havoc Pennington <hp@redhat.com>
89 * dbus/dbus-connection.c (dbus_connection_open_private): document
90 how to choose shared vs. private connections
92 2006-10-27 Havoc Pennington <hp@redhat.com>
94 * dbus/dbus-test.c: enclose more of the file in the
95 DBUS_BUILD_TESTS check.
97 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
98 DBUS_DISABLE_ASSERT case.
100 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
101 that it only works on the server side
103 * dbus/dbus-bus.c: add a global lock covering the BusData we
104 attach to each connection
105 (internal_bus_get): lock our access to the BusData
106 (dbus_bus_register): lock the entire registration process
107 with _DBUS_LOCK(bus_datas). If we get the lock and
108 registration is already complete, silently return (vs. previous
109 behavior of aborting).
110 (dbus_bus_set_unique_name): lock the BusData
111 (dbus_bus_get_unique_name): lock the BusData
113 2006-10-27 John (J5) Palmieri <johnp@redhat.com>
115 * bus/config-parser.c (service_dirs_find_dir,
116 service_dirs_append_unique_or_free,
117 service_dirs_append_link_unique_or_free): New static methods
118 for only appending unique service directory names into
119 the service directory list
120 (merge_included, bus_config_parser_content): Only add unique
121 service directory names into the list
123 2006-10-27 Havoc Pennington <hp@redhat.com>
125 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
126 variables volatile, suggested by Thiago. Document struct fields.
127 (PTHREAD_CHECK): remove pthread error checking if assertions are
128 disabled, should reduce the no-assertions case to the bare
131 2006-10-26 Havoc Pennington <hp@redhat.com>
133 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
135 (_dbus_pthread_mutex_unlock): make it recursive
136 (_dbus_pthread_condvar_wait): save/restore the recursion count
137 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
139 2006-10-26 Havoc Pennington <hp@redhat.com>
141 * doc/dbus-specification.xml: clarify the UUID text slightly
143 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
144 pthread errors. Add DBusMutexPThread and DBusCondVarPThread
145 in preparation for being able to extend them for e.g. recursive
148 2006-10-26 Havoc Pennington <hp@redhat.com>
150 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how
151 condition variables relate to recursive mutexes.
153 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c,
154 dbus/dbus-threads.c: Split the platforms-specific thread
155 implementations into their own files.
157 * dbus/dbus-sysdeps-pthread.c
158 (_dbus_pthread_condvar_wait_timeout): invert the return value, it
159 was backward. Not that anything uses it.
161 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
163 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
164 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
165 needs to be cleaned up more.
167 * doc/TODO: Add a todo that *BSD hackers should look at cleaning
170 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
172 * configure.in, dbus-1.pc.in: Check to see if thread methods
173 are in glibc or libpthread and add -lpthread to the link stage
176 2006-10-26 Thiago Macieira <thiago@kde.org>
178 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
179 bug 8780: the connection lock is only required while recording
180 the shared connection, so protect only that code
181 section. Don't require connection_lookup_shared to return a
184 2006-10-26 Thiago Macieira <thiago@kde.org>
186 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
187 check if get_machine_uuid() returns NULL before proceeding any
188 further: we can't init the X atoms or create a session file
189 name if there is no machine ID.
190 This solves a crash reported by some users if
191 --exit-with-session was used without --autolaunch=<machine-id>
193 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
195 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
196 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
198 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
199 before we run dbus-launch
201 * configure.in: define TEST_BUS_BINARY to be the full path to
202 dbus-daemon in the build root
204 2006-10-25 Sjoerd Simons <sjoerd@luon.net>
208 * toos/dbus-uuidgen.1:
209 Move the machine-id file to /var/lib/dbus
211 2006-10-24 David Zeuthen <davidz@redhat.com>
213 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
214 _dbus_assert (thread_init_generation != _dbus_current_generation)
215 not _dbus_assert (thread_init_generation == _dbus_current_generation)
217 2006-10-24 Thiago Macieira <thiago@kde.org>
219 * dbus/dbus-sysdeps.h:
220 * dbus/dbus-sysdeps-unix.c: Add function
221 _dbus_make_file_world_readable that chmods a file to 0644.
223 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
224 Avoid writing to the static "argv" array, thereby avoiding a
225 COW on the child process.
227 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
228 call _dbus_make_file_world_readable on the created file.
230 2006-10-23 David Zeuthen <davidz@redhat.com>
232 * dbus/dbus-memory.c: Use atomic variable to protect
233 n_blocks_outstanding otherwise OOM will be reported using SMP on
236 * bus/dispatch.c: Add missing end of line characters
238 * bus/desktop-file.c (parse_section_start, parse_key_value)
239 (bus_desktop_file_load): Propertly handle OOM
241 * dbus/dbus-threads.c (init_uninitialized_locks): Check that
242 thread_init_generation equals _dbus_current_generation, not 0
244 2006-10-22 Havoc Pennington <hp@redhat.com>
246 * dbus/dbus-connection-internal.h: move prototype of
247 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
248 it isn't in a public header and doesn't end up in the DBusBus
251 2006-10-21 Havoc Pennington <hp@redhat.com>
253 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
254 the tarball if packagers want to run it
256 * cleanup-man-pages.sh: Add a script which munges all the internal
257 API man pages out of the Doxygen output. This reduces the size of
258 the installed man pages from 7 to 2 megs, and avoids
259 namespace-polluting pages. Right now (like Doxygen) this script
260 isn't in the build, it's something packagers can do manually.
262 2006-10-21 Havoc Pennington <hp@redhat.com>
264 * dbus/dbus-connection.h: don't include the watch/timeout
265 functions in connection section
267 2006-10-21 Havoc Pennington <hp@redhat.com>
269 * Documentation! Whee! Doxygen now 100% silent. If you make it
270 angry again, you will be punished.
272 2006-10-21 Havoc Pennington <hp@redhat.com>
274 * More documentation - all public API now documented according to
277 2006-10-21 Havoc Pennington <hp@redhat.com>
279 * Document a bunch of undocumented stuff
281 2006-10-21 Havoc Pennington <hp@redhat.com>
283 * Clean up Doxygen group markers for public API so Doxygen finds
284 everything (not comprehensively fixed for private API).
285 Means all remaining Doxygen warnings are just about missing docs
286 and thus pretty simple to resolve.
288 2006-10-21 Havoc Pennington <hp@redhat.com>
290 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
292 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len()
293 as DBUS_GNUC_DEPRECATED
295 2006-10-21 Havoc Pennington <hp@redhat.com>
297 * Move all private API into the private Doxygen group sections of
298 the files, so they don't show up in the public API docs
300 2006-10-21 Havoc Pennington <hp@redhat.com>
302 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around
303 dbus_message_iter_get_array_len().
305 * throughout: documentation improvements.
307 2006-10-20 Havoc Pennington <hp@redhat.com>
309 * doc/TODO: remove the int64 thing from 1.0 since it doesn't
310 matter, and the message-loader-breaker thing since nobody is going
311 to do it. Add an item to 1.0 about supporting recursive locks
312 in dbus_threads_init_default() though, since it should be easy.
314 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
315 Fix this in the !dispatch case to avoid busy-looping after
318 * More misc docs improvements
320 2006-10-19 Havoc Pennington <hp@redhat.com>
322 * more Doxygen-related fixes (lots of moving things from the
323 public to internal section in dbus-connection.c)
325 2006-10-19 Havoc Pennington <hp@redhat.com>
327 * Fix a pile of Doxygen warnings and missing docs
329 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
331 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
332 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext
333 instead of a void *. kqueue uses this to get the context's loop
334 while the other modules ignore the parameter. This allows us to
335 avoid platform conditionals
337 * bus/bus.c (process_config_postinit): Pass in the context to the
340 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
342 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
343 when starting the system bus
345 2006-10-18 John (J5) Palmieri <johnp@redhat.com>
347 * configure.in: More fixups for cross compile (Patch from
348 Marco Pracucci <development at pracucci dot com>)
350 2006-10-17 Havoc Pennington <hp@redhat.com>
352 * tools/dbus-send.c (main): don't close shared connection, fix
355 2006-10-17 Havoc Pennington <hp@redhat.com>
357 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
359 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
360 since realistically it doesn't look like we'll be changing it
363 2006-10-17 Havoc Pennington <hp@redhat.com>
365 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
366 be used for return_if_fail type warnings; prefixes the pid, and
369 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
371 * configure.in: Released 1.0 RC 2(0.94)
372 Add check for -fPIC and enable it if available
374 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
376 * doc/TODO: Remove the check TODO item
378 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
380 * dbus-transport-socket.c (exchange_credentials):
381 Print out more detailed errors if reading or sending
382 credentials fail (Patch from Julio M. Merino Vidal
383 <jmmv at NetBSD dot org>)
385 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
387 * configure.in: when checking for posix getpwnam_r assume true
390 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
392 * configure.in: Check for gethostbyname first before we check for it
393 in libnsl. On gnu systems it is implemeneted
395 2006-10-13 Havoc Pennington <hp@redhat.com>
397 * dbus/dbus-connection.c
398 (dbus_connection_send_with_reply_and_block): fix to handle closed
399 connections, from Tambet Ingo bug #8631
401 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
403 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
405 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
407 * test/name-test/Makefile.am: don't link against both libdbus and
410 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
412 * configure.in: check for dirfd even if it is a macro
413 (Patch from Timothy Redaelli <drizzt at gufi dot org>)
415 2006-10-08 John (J5) Palmieri <johnp@redhat.com>
417 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
418 avoid using dirfd on systems that don't have dirfd
419 (Patch by Brian Cameron <brian dot cameron at sun dot com>)
421 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
423 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from
424 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
426 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
427 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
428 macro because _dbus_abort calls it
430 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
433 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
435 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
436 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>)
438 2006-10-02 Thiago Macieira <thiago@kde.org>
440 * tools/dbus-launch.c (main): make it complain and abort
441 execution in case an unknown option is given. Also, process
442 the '--' argument as the end of arguments.
444 2006-10-01 Havoc Pennington <hp@redhat.com>
446 * tools/dbus-launch.c (print_variables): if no syntax is given,
447 don't print something that's sort-of-half-sh-syntax, just print
448 a plain key-value pairs thing.
450 * tools/dbus-launch-x11.c: use machine ID rather than hostname for
451 the local machine representation (but still have the hostname in
452 the display). Remove the hostname from the display if it is
453 localhost. Change session files to be named
454 ~/.dbus/session-bus/machine-display. Change X atoms to be
455 underscore-prefixed so nobody whines about ICCCM compliance.
456 Otherwise name them the same as the env variables.
457 Change session file format to include key-value pairs and an
458 explanatory comment. Keys are the same as the env variables.
459 (set_address_in_x11): X property format can't depend on
460 sizeof(pid_t) on a particular machine, fix to always be 32 bits
462 * tools/dbus-launch.c: make --autolaunch take a machine id
463 argument. If --autolaunch is used with a program to run, complain
464 for now (but add a FIXME). Also, don't look for existing bus if
465 there's a program to run (but add a FIXME).
467 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
468 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
469 just to get this, and avoids duplicating uuid-reading code).
471 * tools/dbus-launch.1: clarify various things
473 2006-10-01 Havoc Pennington <hp@redhat.com>
475 * test/test-service.c (path_message_func): remove broken extra
476 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
478 * test/test-shell-service.c (path_message_func): same fix
480 * dbus/dbus-connection.c
481 (_dbus_connection_get_dispatch_status_unlocked): break up the
482 function a little for clarity and fix the notification of
483 dbus-bus.c to not require dispatch to be complete
485 * dbus/dbus-connection.c (dbus_connection_unref): improve the
486 warning when you try to finalize an open connection.
488 2006-10-01 Havoc Pennington <hp@redhat.com>
491 (internal_bus_get): only weak ref the connection; this means
492 _dbus_bus_notify_shared_connection_disconnected_unlocked can be
493 called safely in any context
494 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
497 * dbus/dbus-connection.c
498 (_dbus_connection_get_dispatch_status_unlocked): move
499 _dbus_bus_notify_shared_connection_disconnected_unlocked here
500 when queuing Disconnected instead of when the Disconnected message
501 arrives, so dbus_bus_get() won't return closed connections.
503 2006-10-01 Havoc Pennington <hp@redhat.com>
505 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
506 Add a hack to make DBusNewConnectionFunction work right.
508 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
509 the hack here. Also, fix the todo about refcount leak.
511 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
512 and use the hack here
514 * dbus/dbus-connection.c: Kill the "shared" flag vs. the
515 "shareable" flag; this was completely broken, since it meant
516 dbus_connection_open() returned a connection of unknown
517 shared-ness. Now, we always hold a ref on anything opened
520 Move the call to notify dbus-bus.c into
521 connection_forget_shared_unlocked, so libdbus consistently forgets
522 all its knowledge of a connection at once. This exposed numerous
523 places where things were totally broken if we dropped a ref inside
524 get_dispatch_status_unlocked where
525 connection_forget_shared_unlocked was previously, so move
526 connection_forget_shared_unlocked into
527 _dbus_connection_update_dispatch_status_and_unlock. Also move the
528 exit_on_disconnect here.
530 (shared_connections_shutdown): this assumed weak refs to the
531 shared connections; since we have strong refs now, the assertion
532 was failing and stuff was left in the hash. Fix it to close
533 still-open shared connections.
535 * bus/dispatch.c: fixup to use dbus_connection_open_private on the
536 debug pipe connections
538 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
539 dbus-bus.c if the closed connection is in fact shared
540 (_dbus_connection_close_possibly_shared): rename from
541 _dbus_connection_close_internal
542 (dbus_connection_close, dbus_connection_open,
543 dbus_connection_open_private): Improve docs to explain the deal
544 with when you should close or unref or both
547 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
548 from _dbus_bus_check_connection_and_unref_unlocked and modify to
549 loop over all connections
551 * test/test-utils.c (test_connection_shutdown): don't try to close
554 * test/name-test/test-threads-init.c (main): fix warnings in here
556 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
557 env variable to cause blocking waiting for gdb; drop
558 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
561 * configure.in: add -export-dynamic to libtool flags if assertions enabled
562 so _dbus_print_backtrace works.
564 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
565 instead of _dbus_verbose to print the backtrace, and diagnose lack
566 of -rdynamic/-export-dynamic
568 2006-09-30 Havoc Pennington <hp@redhat.com>
570 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
571 (internal_bus_get): fix screwy code formatting. whoever committed
572 that was not paying attention!
574 2006-09-30 Havoc Pennington <hp@redhat.com>
576 * configure.in (LT_CURRENT, LT_AGE): increment current and age to
577 reflect addition of interfaces.
579 * doc/dbus-specification.xml: describe a new
580 org.freedesktop.DBus.Peer.GetMachineId method
582 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
583 (_dbus_string_skip_white, _dbus_string_skip_blank): use new
584 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
586 (_dbus_string_chop_white): new function
588 * bus/connection.c (bus_connections_setup_connection): call
589 dbus_connection_set_route_peer_messages.
591 * dbus/dbus-connection.c
592 (_dbus_connection_peer_filter_unlocked_no_update): modify to
593 support a GetMachineId method.
595 Also, support a new flag to let the bus pass peer methods through
596 to apps on the bus, which can be set with
597 dbus_connection_set_route_peer_messages.
599 Finally, handle and return an error for anything unknown on the
600 Peer interface, which will allow us to extend the Peer interface
601 in the future without fear that we're now intercepting something
602 apps were wanting to see.
604 * tools/dbus-uuidgen.c: a thin wrapper around the functions in
607 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
608 binary here, since most of the code is already in libdbus
610 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
611 uuid from the system config file
613 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
614 (_dbus_read_uuid_file_without_creating)
615 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
616 uuid-related functions, partly factored out from dbus-server.c
618 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
619 DBUS_ERROR_FILE_EXISTS instead of EEXIST
621 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
623 * tools/dbus-cleanup-sockets.1: explain what the point of this
626 * autogen.sh (run_configure): add --config-cache to default
629 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
630 error set/clear assertions when DBUS_DISABLE_CHECKS is defined
632 * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
633 don't try to save address, fixes crash in make check
635 2006-09-30 Thiago Macieira <thiago@kde.org>
637 * configure.in: add DBUS_BINDIR as a #define to C source code.
639 * tools/dbus-launch.c
640 * tools/dbus-launch.h
641 * tools/dbus-launch-x11.c:
642 * tools/dbus-launch.1: Add the --autolaunch option to
643 dbus-launch, which makes it scan for an existing session
644 started with --autolaunch. With that option, it also creates
645 an X11 window and saves the bus address and PID to it.
647 * dbus/dbus-sysdeps.h:
648 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
649 a function that runs "dbus-launch --autolaunch" to retrieve
650 the running D-Bus session address (or start one if none was running)
652 * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
653 address protocol, which tries to get the running session from
657 * dbus/dbus-internals.h: Make "autolaunch:" be the default
658 D-Bus session bus address.
660 * dbus/dbus-connection.c: Fix horrible typo in error message.
662 2006-09-18 John (J5) Palmieri <johnp@redhat.com>
664 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
666 2006-09-17 Havoc Pennington <hp@redhat.com>
668 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
669 fix so that if unix_user_function is set on windows, we still
670 do the default check that the auth identity matches the bus identity
672 2006-09-16 Havoc Pennington <hp@redhat.com>
674 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
675 to _dbus_transport_open_platform_specific,
676 _dbus_transport_open_socket,
677 and _dbus_transport_open_debug_pipe
679 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
681 2006-09-16 Havoc Pennington <hp@redhat.com>
683 Attempt auditing public API to remove all cases where a Unix
684 function returns weird emulated goo to Windows. This probably
685 breaks the bus daemon on Windows, to fix it again we may
686 need to stop processing unix-specific config options on Windows,
687 and may need to add Windows-specific public API or config options.
689 * configure.in (LT_CURRENT, LT_AGE): increment current and age,
690 to reflect added interfaces; should not break soname.
692 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
693 not invoke unix user function on Windows. Kind of a hacky fix, but
694 we don't want a "unix uid" leaking out on Windows.
696 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
697 to get the socket fd on Windows or UNIX
698 (dbus_connection_get_unix_fd): make this always fail on Windows
700 2006-09-16 Havoc Pennington <hp@redhat.com>
702 * dbus/dbus-server.c (dbus_server_listen): change how this works
703 to be able to delegate to a set of handlers that can succeed,
704 fail, or choose not to handle. Allows us to have
705 dbus_server_listen_platform_specific.
707 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
708 factor out the tcp socket stuff to be used on windows, leaving
709 unix domain socket only in dbus-socket-unix.c
711 * dbus/dbus-transport-socket.c
712 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
713 stuff to be used on windows, leaving unix domain socket only
714 in dbus-transport-unix.c
716 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
717 temporary hack to be sure this fails on windows
718 (dbus_connection_get_unix_process_id): ditto
720 2006-09-16 Havoc Pennington <hp@redhat.com>
722 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
723 (_dbus_open_unix_socket, _dbus_open_socket): change API for
724 _dbus_open_socket so the domain/type/protocol from system headers
725 are not required. This is kind of pointless though unless we move
726 part of _dbus_connect_tcp_socket into sysdeps.c instead of
727 sysdeps-unix.c, which would mean adding a wrapper around
729 Also, add DBusError to the socket-opening functions so they
730 don't require use of errno.
732 2006-09-16 Havoc Pennington <hp@redhat.com>
734 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
735 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
737 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
738 Kümmel bug #8249 to make the sysdeps.h read/write/open/close
739 functions specifically for sockets only, and move generic
740 read/write/open/close into unix-specific code.
742 2006-09-14 Havoc Pennington <hp@redhat.com>
744 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
745 complaint about accessing revents when poll returns 0, from Julian Seward.
747 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
749 * Released 1.0 RC 1 (0.93)
751 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
753 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
754 use _dbus_close instead of close
756 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
758 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
759 credentials. Fixes "external" authentication under e.g. NetBSD
760 which does not support any other socket credentials mechanism.
761 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
763 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
765 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
766 dbus_threads_init and be used by the dbus mutex functions to
769 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
771 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
773 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
774 use threadsafe readdir_r instead of readdir
776 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
778 * dbus-threads.c (dbus_threads_init_default): New method for
779 initializing the internal thread implementation (Patch from
780 Alexander Larsson <alexl at redhat dot com>)
782 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
784 * remove a bunch of todo items from the 1.0 list
786 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
788 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
791 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
793 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
794 complex debugging code
796 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
797 between the test suite ifdefs
798 (_dbus_verbose_bytes): return if verbosity is not enabled
800 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
802 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
805 2006-09-10 Havoc Pennington <hp@redhat.com>
807 patch mostly by Peter Kümmel, bug #8211
809 * dbus/dbus-sysdeps-unix.c: new file, which splits out
810 unix-specific stuff in dbus-sysdeps.c
812 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
813 and move unix-specific stuff to dbus-sysdeps-unix.c
815 * configure.in: check HAVE_ERRNO_H
817 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
819 * bus/test-main.c (main): Initialize threading during tests
821 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
822 Unlock connection on error
823 (generate_local_error_message): static method for generating
824 an error message when we don't have a message to reply to
825 (_dbus_connection_block_pending_call): Send a disconnect error
826 instead of just a timeout (NULL) when the bus gets disconnected
827 while blocking for a reply.
829 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
831 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
832 filters (Patch from Kimmo Hämäläinen
833 <kimmo dot hamalainen at nokia dot com>)
835 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
837 * dbus/dbus-connection-internal.h: Add prototype for
838 _dbus_connection_test_get_locks to remove warning
840 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
842 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
843 close child_err_report_pipe[WRITE_END] on exec (Patch from
844 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
846 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
848 * Clean up close calls to use _dbus_close (Patch from
849 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
851 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
854 - Remove pending call locking todo item
855 - dbus_connection_open now holds hard ref. Remove todo item
856 - do proper locking on _dbus_bus_check_connection_and_unref
857 and handle DBUS_BUS_STARTER. Remove todo item
858 - Warn on closing of a shared connection. Remove todo item
860 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
861 dbus/dbus-connection.c: Use the dbus_connection_close_internal
862 so we don't get the warning when closing shared connections
864 * test/test-service.c, test/test-shell-service.c: Applications
865 don't close shared connections themselves so we unref instead of
868 * test/test-utils.c (test_connection_shutdown): Close the connection
870 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
871 _dbus_bus_check_connection_and_unref_unlocked since we only call this
872 method on a locked connection.
873 Make sure we call _dbus_connection_unref_unlocked instead of
874 dbus_connection_unref also.
875 Handle DBUS_BUS_STARTER correctly
877 * dbus/dbus-connection.c (connection_record_shared_unlocked):
878 Mark as shared and hard ref the connection
879 (connection_forget_shared_unlocked): Remove the hard ref from the
881 (_dbus_connection_close_internal_and_unlock): New internal function
882 which takes a locked connection and unlocks it after closing it
883 (_dbus_connection_close_internal): New internal function which acts
884 like the origonal dbus_connection_close method by grabbing a connection
885 lock and calling _dbus_connection_close_internal_and_unlock
886 (dbus_connection_close): Public close method, warns when the app
887 trys to close a shared connection
889 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
892 (bus_driver_generate_introspect_string): New method for populating
893 a DBusString with the introspect data
894 (bus_driver_handle_introspect): Move introspect generation code to
895 bus_driver_generate_introspect_string
898 (introspect): New function which prints out the intropect data and
900 (main): Add a --introspect switch
902 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
904 * doc/TODO: Removed dtd publishing item.
905 It seems the dtd has already been added at
906 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
908 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
910 * doc/TODO, various source files: Audited todo's and FIXME's and
911 prepended the ones we should be looking at with 1.0. Those
912 prepended with 1.0? need clerification or might not be needed
915 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
917 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
918 NULL in the public API (Patch from Kimmo Hämäläinen
919 <kimmo dot hamalainen at nokia dot com>)
921 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
923 * configure.in: Fix for OS-X compile time endian issues (patch from
924 Benjamin Reed <ranger at befunk dot com>)
926 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
928 * configure.in: Check for no-common compiler flag (OS-X fix from
929 Benjamin Reed <ranger at befunk dot com>)
931 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
933 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
934 <fcrozat at mandriva dot com>)
936 2006-08-29 Havoc Pennington <hp@redhat.com>
938 * test/test-service.c (path_message_func): fix lack of return value
940 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
941 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
942 any more sense than on anything else in this file.
943 (_dbus_get_tmpdir): add const to return value, and keep the
944 results of the various getenv around in a static variable.
946 2006-08-29 Havoc Pennington <hp@redhat.com>
948 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
949 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
951 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
953 * test/Makefile.am: change find to use syntax that works with non
956 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
958 * dbus/dbus-transport.c: fix invalid deref when checking if
959 a vtable method exists (Patch from Christian Ehrlicher
960 <ch dot ehrlicher at gmx dot de>)
962 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
964 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
965 test/name-test/Makefile.am: Fixed some issues with getting get dbus
966 to build with builddir != srcdir (Taken from a patch by Bernard Leak
967 <bernard at brenda-arkle dot demon dot co dot uk>)
969 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
971 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
974 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
976 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
977 it works on any system providing this interface, not only FreeBSD.
978 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
980 2006-08-20 Havoc Pennington <hp@redhat.com>
982 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
985 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
989 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
991 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
992 to reflect the init late change
994 * bus/bus.c (bus_context_new): Check user before we fork so we can
995 print out an error message a user will be able to see
997 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
999 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
1001 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1002 Add two more global locks for use on windows platforms. These are
1003 unused on non-windows platforms but are not ifdefed out to avoid
1004 potential bugs (i.e. the few bytes lost does not warrent the extra
1005 maintanence and complexity that having seperate sets of locks would
1008 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1010 * bus/services.c (bus_registry_acquire_service): Return an error
1011 when an application tries to register the org.freedesktop.DBus Bus Name
1013 * bus/services.c (bus_registry_release_service): Return an error
1014 when an application tries to release the org.freedesktop.DBus Bus Name
1016 2006-08-17 Alp Toker <alp@atoker.com>
1018 * doc/dbus-specification.xml: Fix some minor typos.
1020 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
1022 * configure.in: use $with_init_scripts instead of $operating_system
1023 to determine where to store the pid since the init scripts manipulate
1024 the pid file (patch from Marcelo Ricardo Leitner
1025 <marcelo dot leitner at terra dot com dot br>.
1027 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
1029 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1030 static DBusList *uninitialized_condvar_list to support new late
1031 initialization threading model. In this model threads can be initialized
1032 even after the D-Bus API has been used but still needs to be initialized
1033 before the second thread has been started. Mutexes and condvar addresses
1034 are stored in the two static lists and are replaced with actuall locks
1035 when threads are initalized.
1036 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1037 the location into the static list
1038 (_dbus_mutex_free_at_location): New method for removing a mutex location
1039 from the static list and freeing the mutex
1040 (_dbus_condvar_new_at_location): New method for creating a conditional
1041 variable and placing the location into the static list
1042 (_dbus_condvar_free_at_location): New method for removing a conditional
1043 variable location from the static list and freeing the conditional variable
1044 (init_uninitialized_locks): Atomic method which goes through the static
1045 lists of mutex and condvar location and updates them with actuall locks
1046 (init_global_locks): changed to init_locks
1048 * dbus/dbus-connection.c:
1049 (_dbus_connection_test_get_locks): New method for tests to check connections
1050 (_dbus_connection_new_for_transport): Use the new at_location mutex and
1052 (dbus_connection_allocate_data_slot): Pass in the global lock address
1053 to _dbus_data_slot_allocator_alloc
1055 * dbus/dbus-dataslot.c:
1056 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1057 instead of the mutex itself
1059 * dbus/dbus-message.c:
1060 (dbus_message_allocate_data_slot): Pass in the global lock address
1061 to _dbus_data_slot_allocator_alloc
1063 * dbus/dbus-pending-call.c:
1064 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1065 to _dbus_data_slot_allocator_alloc
1067 * dbus/dbus-server.c:
1068 (_dbus_server_init_base): Use the new at_location mutex API
1069 (dbus_server_allocate_data_slot): Pass in the global lock address
1070 to _dbus_data_slot_allocator_alloc
1072 * test/name-test/test-threads-init.c: New test case for late thread
1075 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1077 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1078 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1079 causes compile problems when asserts are turned off
1080 Keeping _dbus_warn for printing out the message so even if
1081 asserts are turned off the user gets the messages that something is
1084 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1086 Patches by Kjartan Maraas <kmaraas at gnome dot org>
1088 * bus/services.c (bus_service_list_queued_owners):
1089 Add a pointer cast to fix compiler warning
1091 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1092 return a NULL instead of FALSE since the return type
1093 is not expecting a boolean
1095 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1096 Remove unused variable
1098 * dbus/dbus-marshal-recursive-util.c (node_new):
1099 return a NULL instead of FALSE since the return type
1100 is not expecting a boolean
1102 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1103 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1104 because we are expecting a pointer not a boolean
1106 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
1107 add void as the parameter so some compilers
1110 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1111 _dbus_transport_new_for_tcp_socket):
1112 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1113 because we are expecting a pointer not a boolean
1115 * test/shell-test.c (test_command_line):
1116 cast the second argument to _dbus_list_append to avoid compiler
1119 * test/test-names.c (main): remove unused variable
1121 * test/test-service.c (check_hello_from_self_reply):
1122 Initialize echo_message and echo_reply to NULL
1124 * test/test-shell-service.c (handle_echo):
1125 Remove unused variable and cast the third parameter passed to
1126 dbus_connection_get_object_path_data to avoid compiler warrnings
1128 * test/name-test/test-names.c (clear_message_queue):
1129 Remove unused function
1131 * test/name-test/test-pending-call-dispatch.c:
1132 Fix format string in printf
1135 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1138 * test/name-test/test-names.c:
1139 Remove test method dbus_bus_connection_get_unique_name because
1140 we already have public method dbus_bus_get_unique_name that
1141 does the exact same thing
1143 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1145 * dbus/dbus-signature.c:
1146 fix typos in Julio's previous patch which cause make check to fail
1148 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1150 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
1151 In any case it was wrong since this is a test checking to see if
1152 address parsing is correct. There was no need to get the true
1155 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1157 * dbus/dbus-macros.h: Revert the addition of stddef.h
1158 as we should not be adding it to library headers
1160 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1162 * dbus/dbus-signature.c:
1163 Fix the unit tests so that they work if assertions are not enabled.
1164 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1166 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1168 * tools/run-with-tmp-session-bus.sh:
1169 * test/name-test/run-test.sh:
1170 Remove bashisms (patch from Julio M. Merino Vidal
1171 <jmmv at NetBSD dot org>)
1173 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1175 * configure.in: add a version (>= 2.6.0) check for libxml2
1177 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1179 * configure.in: make sure the compiler supports -Wfloat-equal
1181 * bus/dir-watch-dnotify.c: move functional code after
1182 variable declerations (C99 fix) (patches from Jens Granseuer
1183 <jensgr at gmx dot net>
1185 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1187 * dbus/dbus-macros.h:
1188 add #include <stddef.h> so that Sun compilers don't complain about
1191 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1193 * dbus/dbus-sysdeps.c:
1194 * dbus/dbus-address.c:
1196 * test/shell-test.c:
1197 don't hardcode tmp directory (patch from Dave Meikle
1198 <dmk at davemeikle dot co dot uk>)
1200 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
1202 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1203 Change an assert to a detailed warning and abort.
1204 When allocator->lock != mutex it indicates that the user has failed
1205 to initalize threads before using the D-Bus library. This warning
1206 helps the user identify the issue and fix their app.
1208 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1210 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1211 with cleanups of bugs found from Coverity reports:
1213 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1214 close the file on error to avoid a leak
1216 * bus/expirelist.c (bus_expire_list_test):
1217 Check for NULL on dbus_new0
1219 * bus/activation.c (update_directory):
1222 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1225 * bus/bus.c (process_config_every_time):
1228 * bus/desktop-file.c (parse_key_value):
1231 * bus/selinux.c (bus_selinux_id_table_insert):
1234 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1236 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1239 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1241 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1244 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1246 * Doxyfile.in: fix the INPUT line so we can generate docs
1247 when sourcedir != builddir (patch from Cygwin Ports maintainer
1248 <yselkowitz at users dot sourceforge dot net>
1250 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1252 * dbus/dbus-sysdeps.h:
1253 * dbus/dbus-sysdeps.c:
1254 * dbus/dbus-string.c:
1255 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1256 GLib's function which does the same thing
1260 * bus/dir-watch-default.c:
1261 * bus/dir-watch-dnotify.c:
1262 * bus/dir-watch-kqueue.c:
1263 Add kqueue directory watching for freebsd and split the directory
1264 watching code into seperate files per method/arch
1265 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1267 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1270 * tools/Makefile.am:
1271 * tools/dbus-launch.c:
1273 allow --with-dbus-daemondir switch to be used to make the
1274 daemon install to a seperate bindir like /usr/libexec
1275 (patch from Brian Cameron <brian dot cameron at sun dot com)
1277 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1279 * bus/Makefile.am (install-data-hook): removed the slash after
1280 $(DESTDIR) so we don't get the double slash which does not work
1281 in windows (patch from Andras Porjesz
1282 <andras dot porjesz at siemens dot com>)
1284 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1286 * dbus/dbus-sysdeps.h:
1287 * dbus/dbus-sysdeps.c:
1288 add _dbus_printf_length (patch from Peter Kümmel
1289 <syntheticpp at gmx dot net>)
1291 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1293 * dbus/dbus-internals.c: unistd.h is not used
1294 (_dbus_verbose_real): only enable verbose printing
1295 if DBUS_VERBOSE environment var is set to '1'
1296 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1298 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1300 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1301 so we still compile on older gcc (patch from Frederic Peters
1302 <fpeters at 0d dot be>
1304 2006-08-04 Havoc Pennington <hp@redhat.com>
1306 * configure.in: add -Wdeclaration-after-statement
1308 * dbus/dbus-connection.c: change all the pending call stuff to
1309 reflect the fact that pending call operations use the connection
1312 * dbus/dbus-pending-call.c: add locking here
1314 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1315 field const consistent with how message field is done
1317 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1321 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1323 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
1324 <in7y118 at public.uni-hamburg dot de> - fix invalid
1325 read/write reported by valgrind
1327 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
1331 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
1333 * dbus/dbus-connection.c:
1334 (_dbus_connection_attach_pending_call_unlocked):
1335 (connection_timeout_and_complete_all_pending_calls_unlocked):
1336 Make sure we set timeout_added on pending calls to FALSE when
1337 we remove the timeout from the connection
1339 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
1341 * Removed some extra bindings stuff lingering around (thanks timo)
1342 * dbus-pendingcall.c (_dbus_pending_call_new):
1343 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1344 when we tried to take a lock on an already locked connection
1346 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1350 2006-07-17 Havoc Pennington <hp@redhat.com>
1352 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1353 ints, reported by Owen Taylor
1355 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1360 * dbus/dbus-marshal-validate.c:
1361 Removed TODO items which were fixed or are no longer relevent
1363 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1365 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1366 Remove stray files from the stripped bindings
1368 2006-07-16 Havoc Pennington <hp@redhat.com>
1370 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1371 Improve the error message on reply timeout
1373 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
1375 * Remove all bindings
1377 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
1379 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1380 and set pending_reply out arg to NULL is connection is disconnected
1381 (connection_timeout_and_complete_all_pending_calls_unlocked): New
1382 static method for cleaning up pending calls on disconnect
1383 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
1384 calls queued timeouts on disconnect
1386 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1389 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
1391 * bus/activation.[ch] (bus_activation_list_services): new function to
1392 get the list of services that can be activated
1394 * bus/dispatch.c: test coverage for the new bus method
1395 ListActivatableNames
1397 * bus/driver.c: new bus method ListActivatableNames to get the list of
1398 services that can be activated
1400 * doc/dbus-specification.xml: ListActivatableNames method documentation
1402 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1403 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1406 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1407 * dbus/dbus-message-factory.c:
1408 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1410 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1411 * dbus/dbus-connection-internal.h:
1412 * dbus/dbus-connection.c:
1413 * file dbus/dbus-pending-call.c:
1414 * dbus/dbus-pending-call.h:
1415 Make DBusPendingCall an opaque type even to D-Bus internals
1417 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1419 * dbus/dbus-connection.h: remove connection_disconnect and replace with
1422 * dbus/dbus-connection.c: include dbus-bus.h
1423 (_dbus_connection_read_write_dispatch): make static
1425 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1427 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1429 (dbus_connection_dispatch): On disconnect unref any shared connections
1431 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1432 for cleaning up shared connections on disconnect
1433 (internal_bus_get): get a hard refrence to shared connections when
1436 * doc/TODO: Remove items which are no longer relevent or have been fixed
1437 Split 1.0 todo items with a 0.90 freeze todo list
1439 2006-06-14 Ross Burton <ross@openedhand.com>
1441 * glib/dbus-gobject.c:
1442 Free a leaking GArray (surely not!) in dbus_g_method_return.
1444 2006-06-14 Ross Burton <ross@openedhand.com>
1446 * tools/Makefile.am:
1447 * tools/dbus-monitor.c:
1448 Don't use the GLib bindings in dbus-monitor (patch from Ralf
1451 2006-06-14 Ross Burton <ross@openedhand.com>
1453 * tools/dbus-print-message.c:
1454 Also print the object path when outputting signals or method calls.
1456 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
1458 * qt/src/Makefile.am: install the qdbus.h header.
1459 This allows people to actually use the installed code.
1461 2006-06-12 Ross Burton <ross@openedhand.com>
1463 * glib/dbus-gproxy.c:
1464 Don't leak a GArray when firing signals (thank Rob Taylor for review).
1466 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1470 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1472 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1473 break pedantic builds. Closes bug 6043 (patch approved by
1474 Havoc back in February).
1476 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1478 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1479 that took a QDBusMessage parameter.
1480 * qt/src/qdbusbus.h: Add a default flag for RequestName.
1481 * qt/tools/dbus.cpp: Don't use automatic call because we might
1482 be calling an async method: request a reply.
1484 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1486 * test/qt/*: Update the testcases, including testing the new
1487 functionality of sending null QByteArray and QString over the
1488 bus. Add new headertest test and restore the old
1489 qdbusxmlparser test.
1491 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1493 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1494 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1496 * qt/examples/Makefile.am:
1497 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1500 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1501 QByteArray() (nulls) over the bus.
1502 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1503 the one that has the signature suffix stripped.
1504 * qt/src/qdbusreply.h: Make some methods const.
1506 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
1508 Patch from Timo Hoenig <thoenig@suse.de>.
1510 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
1511 required during build to EXTRA_DIST.
1512 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1513 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1514 * configure.in: Fix "make dist", take care that the Makefile for
1515 qt/dbus is being generated.
1517 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1519 * bus/bus.c: Fix eavesdropping on method calls
1521 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1524 * dbus/dbus-userdb-util.c:
1525 Add Solaris console owner patch from Artem Kachitchkine
1527 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
1530 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1531 reorganisation. Thanks to Timo Hoenig for pointing this out.
1533 2006-06-06 Robert McQueen <robot101@debian.org>
1535 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1536 call to dbus_g_type_get_struct.
1538 2006-06-06 Robert McQueen <robot101@debian.org>
1540 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1541 pointers were put into a GPtrArray-based specialised collection, and
1542 then freed along with the array. GValues which you add into
1543 collections or maps which have the NOCOPY flag set are assumed to not
1544 belong to the caller, so rather than the existing pointer-stealing
1545 semantics, they are copied instead. Given that the main consumers of
1546 this abstraction are the bindings themselves, I don't think this is
1547 too bad, but others should watch their choice of take vs set_static.
1549 2006-06-06 Robert McQueen <robot101@debian.org>
1551 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1552 of g_slist_prepend not being used. Fixed copying of slist-based
1553 specialised collections, then wrote a test case and found that it was
1554 all broken. Went on to fix iterating and appending too. Good thing
1555 nobody uses this code yet.
1557 2006-06-06 Robert McQueen <robot101@debian.org>
1559 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1560 the iterators use gvalue_take_ptrarray_value (the GValues themselves
1561 are discarded without unsetting, so it makes no difference whether
1562 we take or set_static). Remove cases for G_TYPE_POINTER because
1563 there really is nothing useful we can do with them in our
1564 specialised types - we *need* boxed copy/free functions at the very
1567 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
1569 * qt/dbus: Add directory. I had forgotten to add this
1570 yesterday after the move...
1572 * qt/examples/Makefile.am:
1573 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1575 * qt/tools/Makefile.am:
1576 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1577 Added feature to get and set properties.
1578 Added validation of service, object path and interface names.
1580 * qt/tools/dbusidl2cpp.cpp: Two new features:
1581 1) Allow specifying both the header and the source file names,
1582 by separating them with a colon.
1583 2) Don't write an interface output if the -p switch wasn't
1584 given, but the -a was.
1586 * qt/src/*: Fix usage of Iterators and ConstIterators.
1587 Fix shadowing of variables by other variables (-Wshadow).
1588 Fix keyword-cleanliness in headers.
1589 Fix ASCII-cast (QLatin1String, QLatin1Char).
1590 Fix validation of member names.
1591 Add extra checking of introspection data during XML parsing.
1594 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1597 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1598 qt/dbus/qdbus.h now.
1600 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1602 * configure.in: Make --disable-qt actually do
1603 something. Patch inspired by Zack Rusin.
1605 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1607 * qt/: Update to Subversion r548032.
1608 This includes a big reorganisation of the files inside the
1611 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
1613 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1615 "Failed to connect to socket <host>:<port> <error>" instead of
1616 "Failed to connect to socket <host>: <error>:<port>"
1618 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1619 for a tcp transport.
1621 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
1623 * qt/*: Update the QtDBus bindings up to revision 546310 in
1625 This adds the dbuscpp2xml tool, that parses a C++ header and
1626 outputs a D-BUS Introspection XML.
1628 2006-05-21 Havoc Pennington <hp@redhat.com>
1630 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1631 is not NULL when it shouldn't be. Also a couple of possible fixes
1632 for #4637 though I don't understand why the bug happens, to be
1633 honest... also the object constructor has an assert name != NULL
1634 and the name is only currently NULL for peer-to-peer proxies that
1635 I don't think anyone uses? So it should be asserting.
1636 Anyway, for now at least see if we get an earlier assertion failure.
1638 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1639 apparently broken code to be sure the tests fail and someone
1642 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
1644 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1645 and arrays when they had a single element: has_next returns
1646 false, even before you read the element. So, instead, check
1649 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
1651 * qt/qdbusmessage.cpp:
1652 * qt/qdbustypehelper_p.h:
1653 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1654 the list is a const-reference
1656 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
1658 * Adding old doc patch that never got applied
1660 * dbus/bus.c (dbus_bus_add_match): Add documentation
1662 * doc/dbus-specification.xml: Add documentation for the match rules
1663 and the AddMatch and RemoveMatch methods
1665 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
1667 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1670 * qt/dbusidl2cpp.cpp:
1671 * qt/qdbusabstractadaptor.cpp:
1672 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1673 sibling of the QDBusAbstractAdaptor objects instead of the
1676 * qt/dbusidl2cpp.cpp:
1677 * qt/qdbusabstractinterface.cpp:
1678 * qt/qdbusabstractinterface.h:
1679 * qt/qdbusabstractinterface_p.h:
1680 * qt/qdbusinterface.cpp: Make properties in interfaces
1681 actually work. The code that was generated would not compile,
1682 due to moc calls to functions that did not exist. They now
1685 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
1689 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1690 Thanks to Brad Hards for providing the patch
1692 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1694 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1697 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1699 * qt/examples/dbus.cpp: Enhance error messages and use
1702 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1704 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1705 and disable the copy operators. (r533772, r534746)
1707 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1709 * qt/qdbusabstractinterface.cpp:
1710 * qt/qdbusabstractinterface.h: Change the default call mode to
1711 not use the event loop. Add convenience call() methods that
1712 take a CallMode parameter. (r534042)
1714 * qt/qdbusconnection.h: Change the default call mode to not
1715 use the event loop. (r534042)
1717 * qt/qdbusinterface.cpp:
1718 * qt/qdbusinterface.h: Add a method to tell us if the
1719 interface is valid (since we don't return a null pointer
1722 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1725 * qt/qdbusinternalfilters.cpp: Decouple the introspection
1726 function in two so taht we get the chance to introspect
1727 without having a QDBusMessage (r534102)
1730 * qt/qdbusconnection.cpp:
1731 * qt/qdbusconnection_p.h:
1732 * qt/qdbusintegrator.cpp: Keep a list of our own names to
1733 avoid a round-trip to the server when attempting to introspect
1734 one of our own objects. Also make sure the filter functions
1735 match the empty interface as well. (r534108)
1736 Don't keep the connection names. Instead, trust the unique
1737 connection name (r534111)
1738 Remove event loop usage (r534112)
1740 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1742 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1745 2006-04-28 Robert McQueen <robot101@debian.org>
1747 * glib/dbus-gproxy.c: Fix properties so that they can be given in
1748 any order, making it easier for people who inherit from this
1751 2006-04-28 Robert McQueen <robot101@debian.org>
1753 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1754 of memory from within pointer arrays and lists. Fixes bug #6300.
1756 2006-04-28 Robert McQueen <robot101@debian.org>
1758 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1759 generating struct signatures. Fixes bug #6083.
1761 2006-04-28 Robert McQueen <robot101@debian.org>
1763 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1764 to qdbusconnection_p.moc.
1766 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1768 * README, INSTALL: Doc fixes
1769 Patch from Brad Hards <bradh at frogmouth.net>
1771 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1773 * qt/examples/dbus.cpp: Use the new merged-interface mode for
1774 the dynamic meta object. No need to guess which interface to
1777 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1779 * qt/qdbusconnection_p.h:
1780 * qt/qdbusmetaobject.cpp:
1781 * qt/qdbusmetaobject_p.h:
1782 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1783 for the dynamic meta object. No need to guess which
1785 * qt/qdbusabstractinterface_p.h:
1786 * qt/qdbusconnection.cpp:
1787 * qt/qdbusintegrator.cpp:
1788 * qt/qdbusinterface.cpp:
1789 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1790 Add a QDBusRef that looks and behaves like DCOPRef.
1792 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1794 * dbus/dbus-connection.c: Interfaces are optional in method
1795 calls, so don't give up if the interface parameter is NULL.
1796 Patch reviewed by Havoc Pennington.
1798 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1800 * qt/qdbusreply.h: Add default constructor and operator=
1802 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1803 in public headers (r532952)
1804 * qt/qdbusabstractinterface.cpp:
1805 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1806 make it the default (r532951)
1808 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1810 * dbus/dbus-connection.c: Fix asserts
1811 Patch from Tim Moloney <t.moloney at verizon.net>
1813 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1815 * mono/Connection.cs, mono/Message.cs: Check Target type
1816 Patch from Aaron Bockover (abockover at novell.com)
1818 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1820 * INSTALL: fine-tune the requirements for the Qt4 binding.
1822 2006-04-16 Daniel P. Berrange <dan@berrange.com>
1824 * tools/dbus-print-message.c: Added support for printing of all
1825 remaining data types. Fixed logic for indentation of compound
1828 2006-04-15 Daniel P. Berrange <dan@berrange.com>
1830 * INSTALL: fill out content of file providing DBus specific
1831 build installations, followed by generic Auto* INSTALL file
1834 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1836 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1837 Patch by Stefan Eilers. (r529537)
1839 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1841 * qt/qdbusinternalfilters.cpp: Don't show the parent's
1844 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1846 * qt/Makefile.am: fix the dependency for
1847 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1848 not in qdbusconnection.cpp.
1849 Thanks to Jakub Stachowski <stachowski@hypair.net> for
1852 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1854 * qt/examples/listnames.cpp:
1855 * qt/examples/Makefile.am: Three ways to list the names on the
1858 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1860 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1861 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1863 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1865 Merge from Subversion:
1866 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1867 something that exists (r526315)
1868 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1869 slots/signals (r526316)
1870 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1871 also return an unknown-method error if the parameters don't
1872 match for org.freedesktop.DBus.Properties. (r526842)
1873 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1874 * qt/qdbusintegrator.cpp: Restore the proper order of
1875 delivery: don't make method returns be delivered on priority
1878 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1880 * configure.in qt/Makefile.am: add qt/examples
1881 * qt/examples: Add QtDBus example programs:
1882 - hello: Hello, World
1883 - ping: Simple method-calling program
1884 - pong: Simple object-exporting program (not using adaptors)
1885 - complexping: Interactive method-calling program
1886 (also gets and sets properties).
1887 - complexpong: Sample program exporting methods, signals and
1888 properties, using adaptors.
1889 - dbus: Simple implementation of a generic method-calling
1890 program, similar to 'dbus-send', but with semantics
1892 - chat: Simplistic chat program, implemented using signals
1893 and the system bus. Looks like IRC.
1895 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1897 * configure.in: Detect QtGui (necessary for one of the
1898 example programs). Note: this increases the minimum required
1899 version of Qt to 4.1.3.
1901 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1903 * test/qt/*: Sync with KDE Subversion revision 523647.
1904 Update the testcases to the new API. Remove testcases for
1905 classes that are no longer public or have been removed.
1907 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1910 * dbus/qdbus.h: Sync with KDE Subversion revision
1911 523647. Hopefully, this will be the last of the
1912 source-incompatible changes. Documentation has been improved;
1913 support for QList<basic-types> has been added; QDBusObject is
1914 gone; QDBus(Abstract)Interface is now a QObject with
1915 auto-generated meta-object; QDBusIntrospection is marked
1916 private, since QMetaObject can be used now; lots of bugfixes.
1918 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
1920 Patch from Milosz Derezynski <internalerror at gmail.com>
1923 Output the service directory in the configure summary
1926 Add session_bus_services_dir
1928 2006-03-10 Ross Burton <ross@openedhand.com>
1930 * tools/dbus-print-message.c:
1931 Add support for object paths and signatures.
1933 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
1935 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1937 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1939 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
1940 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1941 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1942 * dbus/dbus-userdb.h: Add function to flush all user/group information
1945 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1947 * qt/dbusidl2cpp.cpp:
1948 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1949 for dcopidl2cpp, found in the KDE installations (or the more
1950 modern kalyptus): generate Qt4 C++ code for the input XML
1951 introspection. Currently no IDL parsing.
1953 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1955 * test/qt/*: Update the self-tests.
1957 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1960 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1961 represents the first feature-complete version of the Qt4
1962 bindings since I took ove maintainership.
1964 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1966 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1967 dir. This is C++, so we can't use the DBus ones.
1969 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1971 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1972 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1974 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1976 * dbus/dbus-connection.c:
1977 (_dbus_connection_block_pending_call):
1978 Check to see if our data has already been read off the connection
1979 by another blocking pending call before we block in poll.
1980 (check_for_reply_and_update_dispatch_unlocked):
1981 Code taken from _dbus_connection_block_pending_call - checks for
1982 an already read reply and updates the dispatch if there is one.
1984 * test/name-test/test-pending-call-dispatch.c:
1985 New test for making sure we don't get stuck polling a
1986 dbus connection which has no data on the socket when
1987 blocking out of order on two or more pending calls.
1989 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
1991 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1992 make/automake don't detect that we're talking about the same
1993 .lo file if I specify the full path to the source files.
1995 2006-02-26 Havoc Pennington <hp@redhat.com>
1997 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1999 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2000 session bus variable is unset, suggest "man dbus-launch" and "man
2001 dbus-daemon" to figure out how to fix the problem
2003 2006-02-25 Havoc Pennington <hp@redhat.com>
2005 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2006 should make this thing use the new glib options parser
2008 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
2010 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2011 .lo files taking moc sources.
2013 2006-02-25 Havoc Pennington <hp@redhat.com>
2015 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2016 and install it as a public header
2018 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2022 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2024 * proxies.py: Fix the callchain
2026 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2028 * patch from Sjoerd Simons <sjoerd at debian.org>:
2030 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
2033 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2034 call _dbus_group_info_free_allocated which causes infinite loop,
2035 correctly call _dbus_group_info_free
2037 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
2039 * qt/qdbusinterface_p.h:
2040 * qt/qdbusinterface.cpp: Use the standard
2041 org.freedesktop.DBus.Method.NoReply annotation for the "async"
2042 calls instead of creating one for us.
2044 * qt/qdbusconnection_p.h:
2045 * qt/qdbusintegrator.cpp: Remove debugging code.
2047 * qt/qdbusintegrator.cpp:
2048 * qt/qdbusmessage.cpp:
2049 * qt/qdbusmessage_p.h:
2050 * qt/qdbusmessage.h: Change the behaviour of automatic
2051 reply-sending: now a reply is always sent, unless the caller
2052 didn't request one or if the user slot has already sent one.
2054 2006-02-16 Robert McQueen <robot101@debian.org>
2056 * configure.in: Patch from Debian packages by Sjoerd Simons
2057 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2058 arguments so it's possible to build both bindings in the
2061 * qt/Makefile.am: Fix truncated value so that make dist works.
2063 2006-02-16 Robert McQueen <robot101@debian.org>
2065 * acinclude.m4, configure.in: Patch from Brad Hards
2066 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2067 improving quoting, re-ordering a few checks, and a few other
2070 2006-02-16 Robert McQueen <robot101@debian.org>
2072 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2073 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2074 assertion that the next element to read from the iter is fixed in
2075 size. This is not the case when you are at the end of the iter,
2076 because the next element type is INVALID.
2078 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2079 a bogus assert which means that you may not initialise a 0-length
2080 string unless you provide a non-NULL pointer. This prevented
2081 you from marshalling messages containing zero-length arrays in
2084 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2085 from Rob to correct bogus asserts when trying to demarshal an
2086 array and get_fixed_array got you 0 elements. Append nothing to
2087 the GArray in this case.
2089 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2090 an empty array via the glib bindings. Without all of the above
2091 patches, this new test fails.
2093 2006-02-16 Robert McQueen <robot101@debian.org>
2095 * glib/dbus-gmain.c: Make the previous commit compile.
2097 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2098 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2099 specify sender_keyword="foo", path_keyword="bar" when adding
2100 a signal listener, so that you can bind to signals generically
2101 but still do something useful in your callback.
2103 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2104 chars so that they're not cast to chars and made negative. Thanks
2105 to Jakub Stachowski for reporting this and testing the fix.
2107 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
2110 * glib/dbus-gmain.h:
2111 (dbus_g_connection_open): new method for openning
2112 a connection to an arbitrary address in the glib bindings
2114 * ChangeLog: checkin last entry which doesn't seem to be commited
2116 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
2118 * tools/dbus-launch.c: Fixed sh syntax output
2120 2006-02-13 Robert McQueen <robot101@debian.org>
2122 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2123 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2124 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2125 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2126 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2127 missing piece of the glib bindings jigsaw puzzle. This modifies
2128 the existing specialised types to have N type parameters (rather
2129 than the current 1 or 2 for arrays and dictionaries respectively).
2130 You can then use this to get a glib type to represent any arbitrary
2131 D-Bus struct type using dbus_g_type_get_struct. The only
2132 implementation of these types is with GValueArrays as before,
2133 but it's now possible to store these in arrays, emit them in
2136 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2138 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2139 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
2140 <thiago.macieira at trolltech.com>
2142 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2144 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2145 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2147 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2149 * bus/connection.c (bus_connections_expect_reply): Make
2150 pending reply limit not common to all connections (Bug #5416)
2151 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2153 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2155 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2157 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2159 * gcj/Makefile.am: point to correct jar command (Bug #4529)
2160 patch from Doug Goldstein <cardoe at gentoo.org>
2162 2006-02-09 Joe Shaw <joeshaw@novell.com>
2164 * mono/Arguments.cs: Fix a magic number in the mono bindings
2165 that doesn't work on 64 bit arches. Patch from Peter Johanson.
2167 2006-01-27 Robert McQueen <robot101@debian.org>
2169 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2170 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2171 when generating the client-side methods, instead of overloading
2172 CSymbol which broke everything horribly. My apologies.
2174 2006-01-27 Robert McQueen <robot101@debian.org>
2176 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2177 by me and Rob Taylor to add a simple_free function to D-Bus map
2178 and collection types, which allows those types which can be freed
2179 with a GDestroyNotify (such as GHashTables and GArrays, but not
2180 GPtrArrays) to be stored as the values in hashtables.
2182 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2183 Patch by Rob Taylor to add nested dicts to the glib tests to check
2184 the above code works, and appears not to leak when called repeatedly.
2186 2006-01-27 Robert McQueen <robot101@debian.org>
2188 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2189 to free a D-Bus allocated string with dbus_free () instead of
2192 2006-01-27 Iain Holmes <iain@openedhand.com>
2194 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2195 method from being called multiple times.
2197 2006-01-19 Robert McQueen <robot101@debian.org>
2199 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2200 <rob.taylor@collabora.co.uk> to add support for generating bindings
2201 to arrays that are represented as GPtrArrays rather than GArrays (ie
2202 size-variable things, such as strings, objects, structs, etc).
2204 2006-01-05 Robert McQueen <robot101@debian.org>
2206 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2207 <ricardo.kekki@movial.fi> to make it possible to inherit from
2208 DBusGProxy, by splitting the DBusGProxy struct into a public part and
2209 a private part, and moving the setting of the DBusGProxyManager into a
2210 connection property, allowing proper GObject construction.
2212 2006-01-05 Robert McQueen <robot101@debian.org>
2214 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2215 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2216 annotations when generating glib client bindings.
2218 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2220 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2222 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2224 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2226 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2228 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2230 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2232 2005-12-19 Ross Burton <ross@openedhand.com>
2234 * doc/dbus-tutorial.xml:
2235 Document the Glib client-side bindings, and list all possible annotations.
2237 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2239 * dbus/bus.c (dbus_bus_release_name): Add documentation
2241 2005-12-06 Robert McQueen <robot101@debian.org>
2243 * python/service.py: s/sucessful/successful/ so we're allocating to
2244 and reading from the same variable. Oops.
2246 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2250 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2252 * test/qt/Makefile.am: build from srcdir
2254 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2255 Note - this code is wrong and needs to be fixed by the Qt binding
2256 developers. The flags should be treated as bitfields and not enums.
2258 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2260 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2262 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
2263 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
2266 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2268 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2269 method for getting messages off the bus in the absence of a
2270 mainloop. This method is much like
2271 dbus_connection_read_write_dispatch except it does not dispatch
2272 the messages to a registered filter function. Instead it
2273 allows a developer to process messages by directly popping
2276 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2278 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
2279 the parser to continue instead of returning error
2280 (bus_desktop_file_load): Do not free parser data when
2281 parse_section_start or parse_key_value fails because it was
2282 already freed by parser_free (patch from Carlos Garcia Campos
2283 <carlosgc at gnome.org>)
2285 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2287 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2288 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2289 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2290 test/test-segfault.c, test/test-utils.c,
2291 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2292 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2293 Various cleanup of dead code and compiler warnings (patch from
2294 Kjartan Maraas <kmaraas at gnome.org>)
2296 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2298 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2299 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2301 2005-11-27 Robert McQueen <robot101@debian.org>
2303 * python/dbus_bindings.pyx: Repair my previous commit which reverted
2304 part of the preceding one. Oops. Merge patch by Johan Hedberg
2305 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2306 on big-endian platforms.
2308 * test/python/test-client.py: Add some 16-bit integers to the test
2311 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
2313 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2314 method return message for property getters
2316 2005-11-27 Robert McQueen <robot101@debian.org>
2318 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2319 with type v of an instance of dbus.Variant(foo, type='x') caused
2320 it to be boxed twice before sending over the bus.
2322 * python/dbus_bindings.pyx, python/service.py,
2323 test/python/test-client.py: Update the constants for the new
2324 request_name flags, and update comments/test cases now that queueing
2325 is the default action.
2327 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2330 - Change version to 0.60 for impending release
2331 - upped the sonames because of ABI and API breakage
2333 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2335 * configure.in: Add test/name-test/Makefile to the generated
2338 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2339 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2340 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2341 not to queue an ower if it can't be the primary owner
2343 * bus/bus.h: Add new internal BusOwner struct
2345 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2346 to bus_registry_ensure and don't set the prohibit_replacement flag
2347 since they are now set per BusOwner and not per name.
2348 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
2349 that returns the list of connections in a name's connection queue
2351 * bus/services.c (struct BusService): remove prohibit_replacement field
2352 (struct BusOwner): new struct for keeping track of queued connections
2353 and their associated flags for the queue
2354 (struct BusRegistry): add a BusOwner memory pool
2355 (bus_registry_new): initialize the BusOwner memory pool
2356 (bus_registry_unref): free the BusOwner memory pool
2357 (_bus_service_find_owner_link): new internal method for
2358 searching the queue for a specific connection
2359 (bus_owner_set_flags): new method for adding setting the flags on a
2361 (bus_owner_new): new method that creates a BusOwner object from the
2362 pool and sets its flags
2363 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2364 (bus_registry_ensure): Add the flags parameter
2365 (bus_registry_acquire_service): Switch from using raw connections to
2366 using the BusOwner struct
2367 Add new state machine for dealing with the new set of flags
2368 (bus_registry_set_service_context_table, struct OwnershipCancelData,
2369 cancel_ownership, free_ownership_cancel_data,
2370 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
2371 restore_ownership, free_ownership_restore_data,
2372 add_restore_ownership_to_transaction): Switch to using BusOwner
2373 instead of raw connections
2374 (bus_service_add_owner): Add flags parameter
2375 Switch to using BusOwner instead of raw connections
2376 Add state machine for dealing with the new set of flags
2377 (bus_service_swap_owner): Swaps the first and second owners in the
2378 queue. Used to make sure proper signals are sent when a service looses
2379 or gains primary ownership. We never insert an owner at the top of the
2380 queue. Instead we insert it in the second position and then swap.
2381 (bus_service_remove_owner): Remove the owner from the queue sending
2382 out the NameLost and NameOwnerChanged signals if the we were the
2384 (bus_service_get_primary_owners_connection): New method that extracts
2385 the connection from the primary owner
2386 (bus_service_get_primary_owner): Returns the BusOwner instead of the
2388 (bus_service_get_allow_replacement): Changed from the old
2389 bus_service_get_prohibit_replacement method. Checks the flags of the
2390 primary owner and returns if it can be replaced or not
2391 (bus_service_set_prohibit_replacement): removed
2392 (bus_service_has_owner): returns TRUE if and owner with
2393 the specified connection exists in the queue
2395 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2396 method that only compiles if tests are enabled. Allows us to get the
2397 unique name of a connection so we can check it against the queue when
2398 doing regression tests
2400 * bus/activation.c (bus_activation_send_pending_auto_activate),
2401 bus/dispatch.c (bus_dispatch),
2402 bus/driver.c (bus_driver_handle_get_service_owner,
2403 bus_driver_handle_get_connection_unix_user,
2404 bus_driver_handle_get_connection_unix_process_id,
2405 bus_driver_handle_get_connection_selinux_security_context),
2406 bus/signals.c (connection_is_primary_owner):
2407 use bus_service_get_primary_owners_connection instead of
2408 bus_service_get_primary_owner
2410 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
2411 _dbus_listen_unix_socket): Calculate the length of the socket
2412 path and use that instead of using a fixed length which was
2413 causing socket names to contain many trailing Nul bytes.
2415 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2416 (dbus_g_method_get_sender): New method for extracting the sender
2417 from a DBusGMethodInvocation
2418 (dbus_g_method_return_get_reply): changed name to
2419 dbus_g_method_get_reply
2420 (dbus_g_method_return_send_reply): changed name to
2421 dbus_g_method_send reply
2423 * doc/dbus-specification.xml: New docs that describe how the new
2424 queueing system works and talks about the changes to the how
2425 we specify socket names
2427 * glib/examples/example-service.c,
2428 glib/examples/example-signal-emitter.c,
2429 glib/examples/statemachine/statemachine-server.c:
2430 Changed the RequestName flags to the new system
2432 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2433 regression test suite for testing various states of the new
2436 2005-11-15 Robert McQueen <robot101@debian.org>
2438 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2439 Taylor to add two methods, dbus_g_method_return_get_reply and
2440 dbus_g_method_return_send_reply, to allow you to get the reply
2441 message from a DBusGMethodInvocation, append arbitrary stuff to it,
2442 and send it. The GLib bindings can't marshal a return value of
2443 something like a(s) if the array is empty - ultimately they should be
2444 made to heed the signature of the out arguments as the Python bindings
2445 now can, but this is a workable interim solution which might have
2448 2005-11-15 Robert McQueen <robot101@debian.org>
2450 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2451 method to org.freedesktop.DBus to release a bus name or give up
2452 waiting in the queue for it.
2454 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2455 dbus_bus_release_name method to send the ReleaseName method calls.
2456 Add constants for the return values to dbus/dbus-shared.h.
2458 * doc/dbus-specification.xml: Document the new ReleaseName method
2459 in the specification.
2461 * python/dbus_bindings.pyx: Add a low-level python binding for the
2462 release name method.
2464 * python/exceptions.py, python/service.py: Make freeing BusName
2465 objects release the name. Add a NameExistsException, and fix a
2466 bug with creating UnknownMethodException.
2468 * test/python/test-client.py: Add tests for freeing BusName
2469 objects causing names to be released.
2471 2005-11-14 Robert McQueen <robot101@debian.org>
2473 * python/service.py: Include the traceback in the error reply when we
2474 send an exception over the bus. _BEST_ _PATCH_ _EVER_
2476 2005-11-14 David Zeuthen <davidz@redhat.com>
2478 Patch from Timo Hoenig <thoenig@suse.de>.
2480 * bus/bus.c: I've recently investigated why the automatic reload
2481 of configuration files does not work as expected.
2483 Currently, reloading configuration files does only work when
2484 running dbus-daemon with --nodaemon. If we are running as daemon
2485 we're hitting a dnotify bug once we fork the process.
2487 We're initializing the dnotify fds before calling fork(). Once
2488 the child process forked it does still have the fds (and they
2489 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2490 getting SIGIO as changes are made to the configuration files.
2492 The attached patch moves the initialization of the dnotify fds to
2493 process_config_postinit(). This is safe for all current code
2494 paths and solves the dnotify disfunction. If we're running
2495 dbus-daemon as daemon the fds for dnotify are now being
2496 initialized after fork() for the child process.
2498 * configure.in: The current configure.in check for dnotify probes
2499 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
2500 match for 'xlinux', too. Additionally I have adapted the configure
2501 option's style to match with the others.
2503 2005-11-14 Robert McQueen <robot101@debian.org>
2505 * python/decorators.py, python/service.py: Add a new argument to the
2506 dbus.service.method decorator called sender_keyword, which if set,
2507 specifies the name of an argument which will be provided the bus
2508 name of the method caller.
2510 * test/python/test-client.py, test/python/test-service.py: Add a
2511 method and test to check the sender_keyword functionality.
2513 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
2515 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
2516 empty reply so blocking calls don't block forever (Patch from Sjoerd
2517 Simons <sjoerd at luon.net>)
2519 * AUTHORS: Add Robert McQueen for his work on the Python
2520 Bindings and other parts of D-Bus
2522 2005-11-07 Robert McQueen <robot101@debian.org>
2524 * python/decorators.py: Change emit_signal function to use the
2525 signature annotation of the signal when marhsalling the arguments from
2526 the service. Fix a bug where the code checking signature length
2527 against argument length referenced the wrong variable.
2529 * python/introspect_parser.py: Avoid adding the type signature of
2530 signal arguments to any methods which occur after them in the
2531 introspection data (!) by making the parser a little more careful
2532 about its current state.
2534 * python/service.py: Remove debug prints from last commit (again :D).
2536 * test/python/test-client.py, test/python/test-service.py: Add test
2537 signals with signature decorators to test the strict marshalling code
2538 gives errors at the right time. Could do with checking the signals
2539 actually get emitted too, given that the test does nothing with
2540 signals at the moment...
2542 2005-11-07 Robert McQueen <robot101@debian.org>
2544 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2545 instances to stop madness of creating new instances representing
2546 the same bus connection all the time, rendering any tracking of
2547 match rules and bus names quite meaningless. Caught a bug where
2548 the private argument to SessionBus() and friends was being passed
2549 in as use_default_mainloop by mistake. Still some problems with
2550 multiple dbus_binding.Connection instances representing the same
2551 low-level connection (eg when you use both SessionBus() and
2552 StarterBus() in same process), but it's a lot better now than it
2555 * python/dbus_bindings.pyx: Add constants with the return values
2556 for bus_request_name().
2558 * python/service.py: Store bus name instances in a per-dbus.Bus cache
2559 and retrieve the same instances for the same name, so deletion can be
2560 done with refcounting. Also now throws some kind of error if you
2561 don't actually get the name you requested, unlike previously...
2563 * test/python/test-client.py: Add tests for instance caching of buses
2564 and bus name objects.
2566 2005-11-04 Robert McQueen <robot101@debian.org>
2568 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2569 marshalling of boolean values. Add some booleans to the values in
2572 * python/decorators.py, python/service.py: Add an 'async_callbacks'
2573 argument to the dbus.service.method decorator, which allows you to
2574 name arguments to take two callback functions for replying with
2575 return values or an exception.
2577 * test/python/test-client.py, test/python/test-service.py: Add test
2578 case using asynchronous method reply functions, both return values and
2579 errors, and from within both the function itself and from a mainloop
2582 * python/decorators.py, python/service.py: Perform checking that the
2583 number of method/signal arguments matches the number of types in the
2584 signature at class loading time, not when you first introspect the
2587 * python/service.py: Remove debug print left by the last commit.
2589 2005-11-03 Robert McQueen <robot101@debian.org>
2591 * python/service.py: Heavy refactoring of method invocation, with
2592 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2593 in favour of a new _message_cb that uses seperate functions for
2594 looking up the method to call, marshalling the return values, and
2595 sending exceptions as errors, and is easier to follow as a
2596 consequence. Fixes some corner cases about returning things that
2597 don't match your declared out_signature, allows exceptions to define
2598 _dbus_error_name and have it be sent over the bus as the error name,
2599 and paves the way for cool stuff like heeding the message no reply
2600 flag, asynchronous method implementations, informing the method of the
2601 sender, and including backtraces in the error messages.
2603 * test/python/test-client.py: Catch and print exceptions thrown in the
2604 async callback tests, rather than passing them to the low-level
2605 bindings to be ignored in a noisy and frustrating manner.
2607 2005-11-03 Robert McQueen <robot101@debian.org>
2609 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2610 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2611 tweak others to be consistent.
2613 * test/python/test-client.py: Tweak output of testInheritance.
2615 2005-10-29 Robert McQueen <robot101@debian.org>
2617 * python/service.py: Major changes to allow multiple inheritance
2618 from classes that define D-Bus interfaces:
2620 1. Create a new Interface class which is the parent class of
2621 Object, and make the ObjectType metaclass into InterfaceType.
2623 2. Patch written with Rob Taylor to replace use of method_vtable
2624 with code that walks the class's __MRO__ (method resolution order)
2625 to behave like Python does when invoking methods and allow
2626 overriding as you'd expect. Code is quite tricky because
2627 we have to find two methods, the one to invoke which has the
2628 right name and isn't decorated with the /wrong/ interface,
2629 and the one to pick up the signatures from which is decorated
2630 with the right interface.
2632 The same caveats apply as to normal multiple inheritance -
2633 this has undefined behaviour if you try and inherit from two
2634 classes that define a method with the same name but are
2635 decorated with different interfaces. You should decorate
2636 your overriding method with the interface you want.
2638 3. Replace grungy introspection XML generation code in the metaclass
2639 with dictionaries that cope correctly with multiple inheritance
2640 and the overriding of methods. This also uses the signature
2641 decorations to provide correct introspection data, including
2642 the debut appearance of the types of your return values. :D
2644 * test/python/test-client.py, test/python/test-service.py: Add a test
2645 case to try invoking an method that overrides one inherited from a
2646 D-Bus interface class.
2648 2005-10-29 Robert McQueen <robot101@debian.org>
2650 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2651 Add checking for the end of struct character when marshalling a
2652 struct in MessageIter.append_strict.
2654 * python/examples/example-service.py,
2655 python/examples/gconf-proxy-service.py,
2656 python/examples/gconf-proxy-service2.py: Update to use gobject
2657 mainloop directly rather than appearing to depend on gtk.
2659 * python/test/test-client.py, python/test/test-server.py: Remove
2660 obsolete and broken test scripts for old bindings. We have up to date
2661 and working tests in test/python/.
2663 2005-10-29 Robert McQueen <robot101@debian.org>
2665 * python/decorators.py: Add optional arguments to the method and
2666 signal decorators to allow you to specify the signature of arguments
2667 and return values. Preserve the doc strings of signal functions in the
2668 decorated version, for pydoc and friends.
2670 * python/dbus_bindings.pyx, python/proxies.py: Replace the
2671 parse_signature_block function with an iterable dbus.Signature()
2672 type. Fix a bug in MessageIter.append_strict where you could append
2673 anything by claiming it was a string.
2675 * python/service.py: Use the out_signature decoration on methods to
2676 marshal return values, meaning you no longer require dbus.Array()
2677 or dbus.Dictionary() to indicate the type when returning empty
2678 arrays or dictionaries. Fix a bug where exceptions which are defined
2679 in __main__ are not turned into error replies.
2681 * test/python/test-client.py, test/python/test-service.py: Add test
2682 for correct marshalling of return values according to out_signature.
2683 Fix a bug in the async call test where the error_handler is missing a
2686 2005-10-29 Robert McQueen <robot101@debian.org>
2688 * glib/Makefile.am, glib/examples/Makefile.am,
2689 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2690 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2692 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2694 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2695 from Ubuntu by Daniel Silverstone to allow specifying match rules on
2698 2005-10-27 Ross Burton <ross@openedhand.com>
2700 * dbus/dbus-marshal-header.c:
2703 * glib/dbus-gobject.c:
2704 Stop compiler warning.
2706 2005-10-25 Ross Burton <ross@openedhand.com>
2709 * dbus/dbus-server-unix.c:
2710 * dbus/dbus-transport-unix.c:
2711 * glib/dbus-gmain.c:
2712 * glib/dbus-gobject.c:
2713 Add some const keywords.
2715 2005-10-25 Ross Burton <ross@openedhand.com>
2717 * doc/dbus-specification.xml:
2718 Document the NoReply annotation.
2720 * glib/dbus-binding-tool-glib.h:
2721 * glib/dbus-binding-tool-glib.c:
2722 Respect the NoReply annotation.
2724 2005-10-24 Robert McQueen <robot101@debian.org>
2726 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2727 derive from unicode instead of str, and encode/decode UTF-8 when
2728 marshalling/unmarshalling bus messages
2730 * python/introspect_parser.py: encode introspection data as UTF-8
2731 before passing the buffer into libxml2
2733 * test/python/test-client.py: add unicode test strings
2735 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2736 ignore generated python test files
2738 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
2740 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2741 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2742 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2744 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2745 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2746 when constructing struct signatures
2748 * python/_dbus.py (Bus): handle private connections using the
2749 private keyword in the constructor. defaults to private=False
2750 (Bus::close): new method to close a connection to the bus
2752 * python/dbus_bindings.pyx (Connection::close): renamed method
2753 was previously called disconnect
2754 (bus_get): now supports getting a private connection
2756 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2757 keyword is set to True. if it is, execute the method without waiting
2759 (ProxyObject::_introspect_execute_queue): new method for executing
2760 all the pending methods that were waiting for the introspect to
2761 finish. this is called when introspect either succeeds or fails
2762 (ProxyObject::_introspect_error_handler): call queued methods
2764 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
2766 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2767 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2769 * python/service.py (Object::_message_cb): handle exceptions correctly
2770 by sending them over the wire to the calling app. This makes sure
2771 the client returns immediately instead of waiting the 15 seconds to
2774 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
2775 Add a test to benchmark how long it takes to introspect a service and
2776 call a method which returns a large element (pretty fast)
2778 * test/python/test-service.py (TestObject::GetComplexArray): new test
2779 method which pushes a lot of data
2781 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2783 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
2784 reclaim memory outside of the loop and use del istead of just setting
2787 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2789 * python/service.py (ObjectType::_reflect_on_signal): Always close
2790 signal tag even when there are no arguments
2792 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2794 * configure.in: Set mono, mono-docs and Qt3 to default
2795 to no instead of auto when building. These bindings do not
2796 have full time maintainers and will not be supported for the
2799 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
2801 patches from Michael Krivoruchko <misha at sun.com>:
2803 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2804 _dbus_connection_message_sent,
2805 _dbus_connection_send_preallocated_unlocked_no_update,
2806 _dbus_connection_pop_message_link_unlocked): handle the case when path
2807 is NULL when calling _dbus_verbose
2809 * configure.in: check for functions getpeerucred and getpeereid
2811 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
2812 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
2813 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
2814 Patch was only tested on Solaris 10 x86 so it might be issues
2815 with other platforms (i.e. BSDs and MacOSX)
2818 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
2820 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
2821 instead of marshal basic so we can handle recursive types in a variant
2823 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2826 * test/glib/test-service-glib.c, test-service-glib.xml
2827 (my_object_echo_variant [EchoVariant],
2828 my_object_process_variant_of_array_of_ints123
2829 [ProcessVariantOfArrayOfInts123]):
2830 Add two test methods
2832 * python/introspect_parser.py: New module for parsing introspect
2835 * python/dbus_bindings.pyx:
2836 (various places): when throwing errors fix to use errormsg instead
2837 of message local variable because Pyrex can get confused with other
2838 message variables (initial patch by Robert McQueen
2839 <robert.mcqueen at collabora.co.uk>)
2840 (MessageIter::parse_signature_block): new method for getting the next
2841 block in a signiture.
2842 (MessageIter::append_strict): new method for appending values strictly
2843 using the passed in signature instead of guessing at the type
2844 (MessageItter:: append_dict, append_struct, append_array): use
2845 signatures to marshal children if the signature is available
2847 * python/exceptions.py (IntrospectionParserException): new exception
2849 * python/proxies.py (ProxyMethod::__call__): Marshal args with
2850 introspected signatures if available, else we fall back to the
2851 old way of doing things.
2852 (ProxyObject::_introspect_reply_handler ): parse introspection data
2854 * python/service.py (ObjectType::_reflect_on_method): Properly
2855 terminate <method> if there are no args in the reflection data
2857 * test/python/test-client.py: add tests for talking with the GLib
2858 test server. This gives us better coverage for introspection since
2859 python to python will always generate arguments as variants. It also
2860 allows us to test the robustness of the GLib bindings and interlanguage
2864 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
2866 * bus/driver.c (bus_driver_handle_introspect): Add signals
2867 to the introspect data. (patch from Daniel P. Berrange
2868 <dan at berrange.com>)
2870 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2872 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2873 _dbus_connection_run_builtin_filters): Changed these to
2874 be unlock_no_update functions and call
2875 _dbus_connection_send_unlocked_no_update instead of
2876 dbus_connection_send to avoid locking errors.
2878 * doc/TODO: Removed the make Ping test TODO
2880 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2882 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2883 We now copy the message from a DBusError and then free
2884 the error object befor throwing the error
2886 * glib/dbus-glib-tool.c: removed extra comma at the end of the
2887 DBusBindingOutputMode enum which was causing a warning.
2888 #include <time.h> so using time_t is explicitly defined
2890 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2892 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2894 (internal_bus_get): new method that take over the heavy lifting
2895 of dbus_bus_get and adds the ability to get a private connection
2897 (dbus_bus_get): wrapper to internal_bus_get that provides the same
2898 interface as in previous versions
2899 (dbus_bus_get_private): new method that is a wrapper to
2900 internal_bus_get to get a private connection to the bus
2903 (dbus_bus_get_private): add as a public libdbus interface
2905 - dbus-1.pc.in: output system_bus_default_address and
2906 sysconfdir variables so apps can use them when compiling
2908 2005-09-23 Harald Fernengel <harry@kdevelop.org>
2909 * dbus/qt: New Qt bindings
2911 2005-09-12 Waldo Bastian <bastian@kde.org>
2913 * dbus/dbus-marshal-validate.c,
2914 doc/dbus-specification.xml, test/Makefile.am,
2915 test/test-names.c: allow hyphens in bus names.
2917 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2919 * test/data/auth/fallback.auth-script: we don't
2920 retry the EXTERNAL method when we know its going
2923 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2925 * dbus/dbus-connection-internal.h: rename
2926 (add|remove|toggle)_(watch|timeout) to unlocked()
2928 * dbus/dbus-connection.c: ditto.
2930 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2931 Update some callers for the renaming.
2933 2005-09-10 Mark McLoughlin <mark@skynet.ie>
2935 * dbus/dbus-auth.c: (record_mechanisms): don't
2936 retry the first auth mechanism because we know
2937 we're just going to get rejected again.
2939 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2940 Fix thinko ... and what a nasty little bugger to
2941 track down you were ...
2943 * dbus/dbus-connection.c:
2944 (_dbus_connection_add_watch),
2945 (_dbus_connection_remove_watch): add note about
2946 these needing the connection to be locked.
2947 (_dbus_connection_get_dispatch_status_unlocked):
2948 set status to DATA_REMAINS when we queue the
2949 disconnected message.
2952 (bus_dispatch): fix warning.
2953 (check_existent_service_no_auto_start):
2954 Expect ChildSignaled error too.
2955 (check_existent_hello_from_self): fix another
2958 2005-09-08 Joe Shaw <joeshaw@novell.com>
2960 Patches from James Willcox <snorp@snorp.net>
2962 * mono/Makefile.am: Add Int16.cs and UInt16.cs
2964 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2965 support array "out" parameters.
2967 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2968 for 16-bit int support.
2970 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
2974 * Patch from Steve Grubb:
2975 - bus/activation.c (bus_activation_service_reload_test): clean up
2977 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
2978 - dbus/dbus-message-factory.c (generate_special): fix a couple of
2979 buffer overflows in the test suite. This is non critical because
2980 it can not be exploited and this code is only run when doing a
2983 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2984 - configure.in: Don't check and link against kdecore, only qt headers
2985 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2986 - gcj/org/freedesktop/dbus/Makefile.am:
2987 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2988 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2989 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2990 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2991 - tools/Makefile.am: Add platform extentions to binaries
2992 (i.e. .exe on windows)
2995 - Make it so if no suitable version of python is found we only
2996 disable building python instead of exiting the configure script
2997 - Require version 2.4 of glib for glib bindings
2998 - Up version to 0.50
3000 * python/__init__.py: Sync version with libdbus to (0,50,0)
3002 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3004 * dbus/dbus-object-tree.c (find_subtree_recurse):
3005 a couple of optimizations (bug #710):
3006 - do a binary search in the tree
3007 - insert a new child at the right place directly, no need for
3009 - do the "double alloc" thing when allocating children
3011 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
3013 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3015 * python/dbus_bindings.pyx: Memory management foo
3016 (global): remove hacky _user_data_references global list
3017 (GIL_safe_cunregister_function_handler): userdata now stuffed into
3018 tuples. Unref user_data
3019 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3020 (Connection::__del__): Remove and replace with __dealloc__ method
3021 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
3022 to keep tuple from being deallocated instead of the global var hack
3023 (Connection::register_object_path): Stuff user_data into a tuple.
3024 Use Py_INCREF to keep tuple from being deallocated instead of the
3026 (Connection::register_fallback): Stuff user_data into a tuple.
3027 Use Py_INCREF to keep tuple from being deallocated instead of the
3029 (GIL_safe_pending_call_notification): Don't unref the message
3030 because it gets unreffed when going out of scope. Py_XDECREF
3032 (PendingCall::__del__): Remove and replace with __dealloc__ method
3033 (PendingCall::set_notify): ref the pending call because we will
3034 need it to stick around for when the notify callback gets called
3035 (Message::__del__): Remove and replace with __dealloc__ method
3037 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
3038 gthreads_init to match up with the dbus call
3040 * python/glib.py (init_threads): Changed to threads_init to match
3041 up with gobject.threads_init(). init_threads is kept for backwards
3042 compat but will most likely be deprecated in the future
3044 * test/python/test-client.py:
3045 - revamp to use Python's unittest functionality
3046 - add async call tests
3047 - setup threads in glib and dbus so we make sure locks are working
3049 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3051 * python/dbus_bindings.pyx
3052 (_pending_call_notification, cunregister_function_handler,
3053 cmessage_function_handler): All callback functions have been rearranged
3054 to workaround a bug in Pyrex when working with the GIL which is Python's
3055 global lock when dealing with threads. They have been split into
3056 a wrapper function (which assumes the name of the old function) and
3057 a _GIL_safe_<function name> function which contains the functionality
3058 of the old function. This ensures that Pyrex does not write code
3059 the lock is released.
3062 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3064 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3065 GIL global lock when calling back into Python
3067 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
3071 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3073 * bus/policy.c (bus_policy_allow_user): change default "user is
3074 allowed" to be "user has same uid as the bus itself"; any
3075 allow/deny rules will override.
3077 * bus/session.conf.in: don't allow all users, since now by default
3078 the user that ran the bus can connect.
3080 2005-08-26 Colin Walters <walters@verbum.org>
3082 * tools/dbus-print-message.c (print_message): Flush stdout
3083 after printing a message, so that redirecting to a file, then
3084 hitting Ctrl-C works.
3086 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
3088 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3089 (EmptyMessage): new class that subclasses Message. This is a workaround
3090 to a Pyrex bug that fails to call __del__ when the Message object goes out
3091 of scope. For some reason subclassing Message fixes this bug
3092 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3093 - s/Message(_create=0)/EmptyMessage everywhere else
3095 * test/python/test-{server|client}.py: add the python/.libs directory
3096 to the lookup path so dbus_bindings and dbus_glib_bindings don't
3097 get picked up from the system
3099 2005-08-25 Colin Walters <walters@verbum.org>
3101 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3102 to Ryan Lortie for the suggestion.
3104 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3106 * test/python: Add python regression test
3108 * configure.in: Add test/python/Makefile
3110 * test/Makefile.am: Add the python directory to SUBDIRS
3112 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3117 (Interface::connect_to_signal): propigate keywords for match on args
3118 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3120 * python/proxies.py (ProxyObject::connect_to_signal):
3121 propigate keywords for match on args
3123 * Makefile.am: point everything to pyexecdir since python borks
3126 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3130 2005-08-23 Colin Walters <walters@verbum.org>
3132 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3134 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3136 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3137 to fix some wranings. We now use dbus_bindings.DBusConnection instead
3138 of defining DBusConnection ourselves.
3140 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
3142 * python/dbus.pth: New path file to fix up problems when installing
3143 c libraries to lib64 and python files to lib.
3145 * python/Makefile.am: install dbus.pth in the correct spot
3147 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
3148 * ChangeLog: clean up my last entry a bit
3150 * doc/introspect.xsl: New stylesheet for converting introspection data
3151 into browser renderable xhtml. Contributed by Lennart Poettering.
3153 * doc/introspect.dtd: Fixups in the introspect format from Lennart
3156 * doc/dbus-tutorial.xml:
3157 - Add Colin Walter to the Authors section for authoring the GLib
3159 - Add descriptions of the new signature and type functionality
3160 in the Python complex type mapping section
3161 - Add a sidenote on the new args matching functionality in
3163 - Fixed up some of the examples to use the gobject.MainLoop
3167 (Bus::_create_args_dict): New. Converts a hash of arg matches
3168 to a more useable format
3169 (Bus::add_signal_receiver): add a **keywords parameter for catching
3170 arg match parameters
3171 (Bus::remove_signal_receiver): add a **keywords parameter for catching
3172 arg match parameters
3174 * python/matchrules.py:
3175 (MatchTree::exec_matches): Check for arg matches
3176 (SignalMatchRule::add_args_match): New method
3177 (SignalMatchRule::execute): Added args_list parameter as an optimization
3178 so we don't have to marshal the args more than once
3179 (SignalMatchRule::match_args_from_list): New method that checks to see
3180 if the rule's arg matches match an argument list. Only arguments
3181 set in the rule are checked.
3182 (SignalMatchRule::match_args_from_rule): New method that checks to see
3183 if the rule's arg matches match another rule's. All args have to match
3184 in order for this method to return true. If either rule has more args
3185 then it is not a match.
3186 (SignalMatchRule::is_match): Add args match
3187 (SignalMatchRule::repr): Add args to the final output if they exist
3189 2005-08-17 Ross Burton <ross@burtonini.com>
3191 * glib/dbus-gproxy.c:
3192 (dbus_g_proxy_call_no_reply): unref the message once sent.
3193 (dbus_g_proxy_call): protect against NULL proxy.
3195 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
3197 * python/__init__.py: Version updated (0, 43, 0)
3199 * python/dbus_bindings.pyx:
3200 - Fixed type objects to have self passed into __init__
3201 - Added the Variant type
3202 - Add the ability to specify types or signatures for Array, Variant
3204 (Connection::send_with_reply_handlers): return a PendingCall object
3205 (_pending_call_notification): handle the case when an error is returned
3206 without an error message in the body
3207 (MessageIter::get_boolean): return True or False instead of an integer
3208 (MessageIter::python_value_to_dbus_sig): add direct checking of types
3209 and add checks for objects with embeded signatures or types (Array,
3210 Variant and Dictionary)
3211 (MessageIter::append_byte): handle case when the value is a dbus.Byte
3212 (MessageIter::append_dict): handle embeded types or signatures
3213 (MessageIter::append_array): handle embeded types or signatures
3214 (MessageIter::append_variant): new method
3216 * python/proxies.py:
3217 (DeferedMethod): New. Dummy executable object used when queuing calls
3218 blocking on introspection data
3219 (ProxyMethod::__call__): add the timeout keyword for specifying longer
3220 or shorter timeouts for method calls
3221 (ProxyObject): Add first pass at an introspection state machine
3222 (ProxyObject::__init__): Add introspect keyword for turing off an on
3224 (ProxyObject::_Introspect): Internal Introspect call that bypasses
3225 the usual mechanisms for sending messages. This is to avoid a deadlock
3226 where the Intospect call would be queued waiting for the Introspect
3228 (ProxyObject::_introspect_reply_handler): New. This method is called
3229 when introspection returns with no error
3230 (ProxyObject::_introspect_error_handler): New. This method is called
3231 when introspection encounters an error
3232 (ProxyObject::__getattr__): Code to handle different introspection
3233 states. Queue async calls or block blocking calls if we are
3234 introspecting. Pass through as normal if we are not or are done with
3237 * python/service.py: Import signal and method from decorators.py
3239 * python/types.py: Add Variant type
3241 2005-08-16 Colin Walters <walters@verbum.org>
3243 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3244 DBusError message is NULL.
3246 2005-08-09 Havoc Pennington <hp@redhat.com>
3248 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3249 malloc'd copy of the name parameter
3251 2005-08-09 Havoc Pennington <hp@redhat.com>
3253 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3254 warning if the reply serial is set to 0
3256 2005-08-04 Colin Walters <walters@verbum.org>
3258 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3259 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3260 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3261 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3262 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3263 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3264 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3265 * glib/dbus-gvalue.h (dbus_g_value_types_init)
3266 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3267 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3269 Prefix name with _ to ensure they're not exported. All callers
3272 * glib/dbus-gvalue.c (typecode_to_gtype)
3273 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3274 (signature_iter_to_g_type_dict)
3275 (signature_iter_to_g_type_array)
3276 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3277 (dbus_gtypes_from_arg_signature):
3278 Move to dbus-gsignature.c.
3280 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3281 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3282 (dbus_binding_tool_output_glib_client): Ditto.
3284 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3285 and dbus-gsignature.h
3287 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3290 2005-08-03 Colin Walters <walters@verbum.org>
3292 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3293 catch any incompatible changes accidentally made.
3295 2005-08-03 Havoc Pennington <hp@redhat.com>
3297 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3298 typo, from Julien Puydt
3300 * bus/connection.c (bus_connection_disconnected): we were always
3301 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3303 2005-08-01 Colin Walters <walters@verbum.org>
3305 Patch from Joe Markus Clarke:
3307 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3310 2005-08-01 Colin Walters <walters@verbum.org>
3312 Patch from Joe Markus Clarke:
3314 * tools/dbus-send.c (main):
3316 Don't use C99 style initializers (bug #3933).
3318 2005-08-01 Colin Walters <walters@verbum.org>
3320 Patch from Joe Markus Clarke:
3322 * glib/dbus-gvalue.c (dbus_g_value_types_init):
3323 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
3324 * glib/dbus-gobject.c (write_interface):
3326 Don't use C99 style initializers (bug #3933).
3328 2005-07-31 Havoc Pennington <hp@redhat.com>
3330 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3331 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3333 2005-07-30 Havoc Pennington <hp@redhat.com>
3335 * fix a bunch of Doxygen warnings and mistakes
3337 2005-07-30 Havoc Pennington <hp@redhat.com>
3339 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3340 DBUS_BUILD_TESTS since it's now used in production code
3342 2005-07-29 Havoc Pennington <hp@redhat.com>
3344 * test/glib/test-profile.c (write_junk): initialize the junk
3345 buffer so valgrind doesn't have a breakdown
3347 2005-07-29 Havoc Pennington <hp@redhat.com>
3349 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3350 (match_rule_matches): remove unused arg
3351 (test_matching): add tests for match_rule_matches()
3353 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3354 do arg0='foo' arg5='bar' in the match rules
3355 (match_rule_matches): don't match if the arg0='foo' doesn't match.
3357 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3359 2005-07-29 Ross Burton <ross@openedhand.com>
3361 * dbus/dbus-connection.c:
3362 Don't create a DBusCondVar which is never used.
3364 2005-07-27 Ross Burton <ross@openedhand.com>
3366 * dbus/dbus-message.c:
3367 Reduce the size of the maximum cached message to 10K.
3369 2005-07-25 Ross Burton <ross@openedhand.com>
3371 * glib/dbus-gproxy.c:
3372 Remove matches when all proxies are unregistered.
3374 2005-07-24 Colin Walters <walters@verbum.org>
3376 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3377 typedata; recursive arrays won't have it.
3379 * test/glib/test-dbus-glib.c:
3380 * test/glib/test-service-glib.c:
3381 * test/glib/test-service-glib.xml: Add recursive arrays tests.
3383 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
3385 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3386 proxies.py, service.py: Cleanup of code after running it through the
3387 pyflakes code checker mostly dealing with undefined names.
3388 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3390 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3392 * NEWS: Update to 0.35.2
3394 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3396 * python/_dbus.py: Remove import of the dbus.services
3397 module as it no longer exists (patch from Dimitur Kirov)
3399 * python/service.py (Object::__init__): Fixed typo
3400 s/name/bus_name (patch from Dimitur Kirov)
3402 * python/examples/example-signal-emitter.py: import dbus.glib
3403 to get the main loop and use glib mainloop instead of gtk so
3404 X doesn't have to be running.
3406 * python/examples/example-signal-recipient.py: import dbus.glib
3407 to get the main loop and use glib mainloop instead of gtk so
3408 X doesn't have to be running. Import the decorators module
3411 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
3412 didn't pick up on but are needed to build
3414 * configure.in: upped version to 0.35.2
3416 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3417 added Colin Walters' SELinux API rename patch from head
3418 s/unix sercurity context/selinux security context/
3420 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
3422 * python/Makefile.am: dbus_binding.pxd.in should be included
3423 in EXTRA_DIST not dbus_binding.pxd
3424 fix up $(srcdir) hopefully for the last time
3426 * NEWS: Update to 0.35.1
3428 2005-07-16 Colin Walters <walters@verbum.org>
3430 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3431 from bus_driver_handle_get_connection_unix_security_context. Update for
3433 (message_handlers): Update for renames.
3435 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3436 _dbus_string_init failure correctly.
3437 (bus_selinux_append_context): Convert SID to context. Append it
3439 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3442 * bus/selinux.h: Update prototype.
3444 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3445 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3447 2005-07-15 Colin Walters <walters@verbum.org>
3449 * doc/TODO: Add note about convenience wrappers.
3451 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3453 * NEWS: Update to 0.35
3455 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3457 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3458 so distcheck doesn't fail
3460 * glib/examples/Makefile.am: Add example-service.xml and
3461 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3463 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3464 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3466 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3467 compiler looks in the right places during distcheck
3469 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3471 * glib/example/Makefile.am: Fix a typo which cause make distcheck
3474 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3476 * python/examples/example-service.py,
3477 python/examples/example-signal-emitter.py: Fixed up examples
3480 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3482 * python/__init__.py: Upped to version (0,42,0) because of
3485 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3487 * ChangeLog: fix date in last entry
3489 * configure.in, bus/system.conf.in: add the ability to configure
3490 the system bus user at compiletime with the --with-dbus-user flag
3491 (patch from Kristof Vansant)
3493 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3495 * bus/dispatch.c, test/test-service.c: Add testcase
3496 for sending messages to oneself (TODO item).
3498 * python/service.py (class Object): Swap ordering of bus_name
3499 and object_path parameters to better support inheritance.
3501 * doc/dbus-tutorial.xml: change Python docs to reflect change
3502 in parameter ordering and fix the inheritance section.
3504 * doc/TODO: remove sending message to oneself TODO item
3506 2005-07-15 Ross Burton <ross@openedhand.com>
3508 * glib/dbus-gproxy.c:
3509 Fix a leak when calling methods via the proxy.
3511 2005-07-15 Colin Walters <walters@verbum.org>
3513 * bus/selinux.c (bus_selinux_append_context): Wrap in
3516 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3518 * python/_dbus.py (Bus::remove_signal_receiver):
3519 don't add a callback to the match if none has been passed in
3521 * python/matchrules.py (SignalMatchTree::remove): if the rule
3522 being matched does not have a callback treat it as a wildcard
3525 * doc/dbus-tutorial.xml: Add Python tutorial
3527 2005-07-14 Colin Walters <walters@verbum.org>
3530 (bus_driver_handle_get_connection_unix_security_context): New function.
3531 (message_handlers): Add.
3533 * bus/selinux.c (bus_selinux_append_context): New function; appends
3534 security context to message.
3536 * bus/selinux.h: Prototype.
3538 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3540 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3542 * bus/activation.c: clean up all tabs to be 8 spaces
3543 (bus_activation_activate_service): make sure we clean up
3546 * bus/dispatch.c: clean up all tabs to be 8 spaces
3547 (check_shell_fail_service_auto_start): New function
3548 tests to make sure we get fail properly when trying to auto start a service
3549 with a faulty command line
3550 (check_shell_service_success_auto_start): New function tests to make sure
3551 auto started services get the arguments on the command line
3553 * test/test-shell-service.c: Added service for testing auto-starting with
3554 command line arguments
3556 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
3557 test/data/valid-service-files/debug-shell-echo-success.service.in:
3558 Added service files for testing auto-starting with command line arguments
3560 * */.cvsignore: added a bunch of generated files to various .cvsignore files
3562 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
3564 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3566 * dbus/Makefile.am: added new files to build.
3568 * bus/activation.c (bus_activation_activate_service): support
3569 activation commands with parameters.
3571 * test/shell-test.c: added test program for the shell parsing
3574 2005-07-13 David Zeuthen <davidz@redhat.com>
3576 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3577 64 bit signed and unsigned parameters
3579 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
3581 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3583 * python/service.py (class Name): renamed BusName to make it clearer
3584 what the object is for (a name on the bus)
3586 * python/examples/example-service.py,
3587 python/examples/example-signal-emitter.py: change the Name object to
3590 2005-07-12 Colin Walters <walters@verbum.org>
3592 Patch from Jim Gettys <Jim.Gettys@hp.com>.
3594 * tools/dbus-launch.c: Include sys/select.h.
3596 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
3597 * python/dbus_bindings.pyx.in: removed
3599 * python/dbus_bindings.pyx: Added.
3600 - Fixed some memleaks (patch from
3601 Sean Meiners <sean.meiners@linspireinc.com>)
3602 - Broke out the #include "dbus_h_wrapper.h" and put it in its
3603 own pxd file (Pyrex definition)
3604 - Broke out glib dependancies into its own pyx module
3606 * python/dbus_bindings.pdx: Added.
3607 - Defines C class Connection for exporting to other modules
3609 * python/dbus_glib_bindings.pyx: Added.
3610 - New module to handle lowlevel dbus-glib mainloop integration
3612 * python/glib.py: Added.
3613 - Registers the glib mainloop when you import this module
3615 * python/services.py: Removed (renamed to service.py)
3617 * python/service.py: Added.
3618 - (class Server): renamed Name
3620 * python/__init__.py: Bump ro version (0,41,0)
3621 -don't import the decorators or service module
3622 by default. These now reside in the dbus.service namespace
3624 * python/_dbus.py (Bus::__init__): Add code run the main loop
3625 setup function on creation
3627 * python/examples/example-service.py,
3628 python/examples/example-signal-emitter.py: update examples
3630 * python/examples/gconf-proxy-service.py,
3631 python/examples/gconf-proxy-service2.py: TODO fix these up
3633 * doc/TODO: Addition
3634 - Added a Python Bindings 1.0 section
3635 - added "Add match on args or match on details to match rules"
3638 2005-07-12 Colin Walters <walters@verbum.org>
3640 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
3641 (statemachine-glue.h):
3642 * glib/examples/Makefile.am (example-service-glue.h)
3643 (example-signal-emitter-glue.h):
3644 * glib/Makefile.am (dbus-glib-error-switch.h):
3645 Add libtool --mode=execute so we use the built library instead
3646 of any installed one.
3648 2005-07-11 Colin Walters <walters@verbum.org>
3650 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3651 (dbus_g_value_types_init): Remove assertion.
3652 (dbus_g_value_get_g_type, dbus_g_value_open)
3653 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3654 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3655 functions related to DBusGValue. Now we marshal/demarshal
3656 structures as GValueArray.
3657 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3659 (signature_iter_to_g_type_array): Don't call
3660 signature_iter_to_g_type_struct.
3661 (signature_iter_to_g_type_struct): Delete.
3662 (dbus_gvalue_to_signature): Delete.
3663 (dbus_gvalue_to_signature): New function with same name as other
3664 one; we can convert structures to signatures.
3665 (demarshal_valuearray): New function.
3666 (get_type_demarshaller): Use it.
3667 (demarshal_recurse): Delete.
3668 (marshal_proxy): New function.
3669 (marshal_map): Warn if we can't determine signature from type.
3670 (marshal_collection_ptrarray): Ditto.
3671 (marshal_collection_array): Ditto.
3672 (get_type_marshaller): Use marshal_valuearray.
3673 (marshal_recurse): Delete.
3674 (_dbus_gvalue_test): Add some tests.
3676 * dbus/dbus-glib.h (struct _DBusGValueIterator):
3677 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3678 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3679 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3680 (dbus_g_value_free): Remove prototypes.
3682 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3685 * glib/examples/example-service.c:
3686 * glib/examples/example-client.c: Implement GetTuple.
3688 * test/glib/test-dbus-glib.c:
3689 * test/glib/test-service-glib.c:
3690 * test/glib/test-service-glib.xml: Add structure tests.
3692 2005-07-10 Colin Walters <walters@verbum.org>
3694 * doc/TODO: Knock off some GLib items with this patch.
3696 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
3697 (_dbus_gvalue_signals_error): New functions.
3699 * glib/dbus-gvalue-utils.h: Prototype them.
3701 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3702 and change to not output const/retval flags for input args. All
3704 (invoke_object_method): Refactor to handle return values. Add
3705 some more comments in various places. Remove debug g_print.
3707 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3709 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3711 (compute_gsignature): New function; refactored from code from
3712 compute_marshaller and compute_marshaller_name. Enhance to
3713 handle return values and async ops more cleanly. Update for
3714 async ops returning NONE instead of BOOLEAN.
3715 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3716 and output appropriate string.
3717 (generate_glue): Handle return value annotation. Also don't dump
3718 constness flag for input arguments.
3720 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3721 files shared between installed library and utilities.
3722 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3723 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3724 binding tool can access gtype utility functions.
3726 * test/glib/test-service-glib.c:
3727 * test/glib/test-service-glib.xml:
3728 * test/glib/test-dbus-glib.c: Add some tests for return values.
3730 2005-07-09 Colin Walters <walters@verbum.org>
3732 * glib/dbus-gparser.c (parse_annotation): Add annotations to
3733 argument if available, not method.
3735 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3736 (invoke_object_method): First, remove some redundant
3737 GValues (object_value, error_value) in favor of working on
3738 array directly. Second, rework constness to be less buggy.
3739 Now we iterate directly over the argument metadata instead
3740 of parallel iterating over output signature and metadata.
3742 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3744 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3745 annotation on input args.
3747 2005-07-09 Colin Walters <walters@verbum.org>
3749 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3752 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3755 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3756 (method_dir_signature_from_object_info): Handle arg_iterate change.
3757 (write_interface): Ditto.
3758 (lookup_object_info): Don't barf if format_version is > 0.
3759 (invoke_object_method): Handle arg constness.
3761 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3762 (arg_info_new): Create.
3763 (arg_info_unref): Destroy.
3764 (arg_info_get_annotations, arg_info_get_annotation)
3765 (arg_info_add_annotation): New functions.
3767 * glib/dbus-gidl.h: Prototype them.
3769 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3770 args, disallow them in properties.
3771 (parse_annotation): Handle arg annotations.
3773 * test/glib/test-service-glib.xml:
3774 * test/glib/test-service-glib.c: Update to make some methods
3777 2005-07-08 Colin Walters <walters@verbum.org>
3779 * test/glib/test-service-glib.xml:
3780 * test/glib/test-service-glib.c:
3781 * test/glib/test-dbus-glib.c: Test a{sv}.
3783 * glib/examples/statemachine/statemachine.c:
3784 * glib/examples/statemachine/statemachine-server.c:
3785 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3786 add progress bar, etc.
3788 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3789 needed anymore due to generic array/map marshalling.
3790 (dbus_g_value_types_init): Don't register basic arrays or the
3792 (dbus_gtype_from_signature_iter): Don't try to recurse into
3794 (dbus_gtype_to_signature): Check collection/map before type
3796 (demarshal_garray_basic): Renamed to demarshal_collection_array.
3797 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3798 generic map creation/append functions instead of hash table
3800 (get_type_demarshaller): Handle maps.
3801 (demarshal_collection): Dispatch on collection type to either
3802 demarshal_collection_ptrarray or demarshal_collection_array.
3803 (get_type_marshaller): Handle maps.
3804 (marshal_collection): Dispatch collection type to either
3805 marshal_collection_ptrarray or marshal_collection_array.
3806 (_dbus_gvalue_test): New test.
3808 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3809 (hash_free_from_gtype): Use it to free GValues.
3810 (hashtable_append): New function.
3811 (ptrarray_append): Fix prototype.
3812 (slist_append): Ditto.
3813 (_dbus_gvalue_utils_test): Extend tests.
3815 * glib/dbus-gtype-specialized.c
3816 (dbus_g_type_specialized_init_append): Renamed from
3817 dbus_g_type_specialized_collection_init_append. Remove const from
3818 value, since we steal it.
3819 (dbus_g_type_specialized_map_append): New function.
3821 * glib/dbus-gtype-specialized.h: Update prototypes.
3822 Add DBusGTypeSpecializedMapAppendFunc.
3824 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3827 * glib/dbus-gtest.h: Prototype it.
3829 2005-07-08 Ross Burton <ross@openedhand.com>
3832 Add DBysGAsyncData for the async bindings.
3834 * glib/dbus-binding-tool-glib.c:
3835 Re-enable the async bindings.
3837 * test/glib/test-dbus-glib.c:
3838 Add a test for the generated async bindings.
3840 2005-07-08 Colin Walters <walters@verbum.org>
3842 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3845 2005-07-08 Colin Walters <walters@verbum.org>
3847 * tools/Makefile.am: Kill of print-introspect in favor of using
3848 dbus-send --print-reply=literal.
3850 * test/glib/test-service-glib.xml:
3851 * test/glib/test-service-glib.c (my_object_get_objs): New test
3854 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3855 (main): Test GetObjs.
3857 * glib/examples/statemachine/Makefile.am:
3858 * glib/examples/statemachine/sm-marshal.list:
3859 * glib/examples/statemachine/statemachine-client.c:
3860 * glib/examples/statemachine/statemachine-server.c:
3861 * glib/examples/statemachine/statemachine-server.xml:
3862 * glib/examples/statemachine/statemachine.c:
3863 * glib/examples/statemachine/statemachine.h:
3864 * glib/examples/statemachine/statemachine.xml:
3868 * glib/examples/example-service.c (main): Move invocation
3869 of dbus_g_object_type_install_info earlier, to emphasize it
3870 should only be done once.
3872 * glib/examples/example-signal-emitter.c (main): Ditto.
3874 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3876 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3877 (dbus_gvalue_marshal): Update prototypes.
3879 * glib/dbus-gvalue.c: Update all marshalling functions to take
3880 const GValue instead of GValue.
3881 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3883 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3885 (dbus_gtype_to_signature): Handle generic collecitons and maps.
3886 Return a newly-allocated string.
3887 (demarshal_proxy, demarshal_object_path, demarshal_object)
3888 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3889 we get the wrong types from message.
3890 (get_type_demarshaller): New function, extracted from
3891 dbus_gvalue_demarshal.
3892 (demarshal_collection): New function, demarshals generic
3894 (dbus_gvalue_demarshal): Just invoke result of
3895 get_type_demarshaller. Throw error if we don't have one.
3896 (marshal_garray_basic): Abort on OOM.
3897 (get_type_marshaller): New function, extracted from
3898 dbus_gvalue_marshal.
3899 (collection_marshal_iterator, marshal_collection): New functions;
3900 implements generic marshalling for an iteratable specialized
3902 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3904 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3906 (ptrarray_value_from_gvalue): Ditto.
3907 (ptrarray_append, ptrarray_free): New functions.
3908 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
3909 (slist_append, slist_end_append, slist_free): New functions.
3910 (dbus_g_type_specialized_builtins_init): Add append fuctions
3911 for GPtrArray and GSList. Register GSList.
3912 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3914 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3916 (dbus_g_type_specialized_collection_init_append)
3917 (dbus_g_type_specialized_collection_append)
3918 (dbus_g_type_specialized_collection_end_append): Prototype.
3919 (DBusGTypeSpecializedCollectionVtable): Add append_func and
3922 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
3923 (dbus_g_type_specialized_collection_append)
3924 (dbus_g_type_specialized_collection_end_append): New functions.
3925 (dbus_g_type_map_value_iterate): Take const GValue.
3926 (dbus_g_type_collection_value_iterate): Ditto.
3928 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3929 _dbus_gvalue_utils_test.
3931 * glib/dbus-gtest.h: Prototype it.
3933 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3934 using uninitialized owner_list.
3935 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3937 (dbus_g_proxy_end_call_internal): Update to use error set
3938 from dbus_gvalue_demarshal instead of setting it here.
3939 (dbus_g_proxy_begin_call): Move return_if_fail here.
3941 * glib/dbus-gobject.c (write_interface): Update for
3942 dbus_gtype_to_signature returning new string.
3944 * configure.in: Add glib/examples/statemachine.
3946 2005-07-08 Joe Shaw <joeshaw@novell.com>
3948 * configure.in: Add a configure option, --with-console-auth-dir
3950 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3951 new setting. Patch from Kay Sievers.
3953 2005-07-06 Colin Walters <walters@verbum.org>
3955 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3956 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3957 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3958 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3959 Delete in favor of dbus_g_proxy_begin_call and
3960 dbus_g_proxy_cancel_call.
3961 (DBusGProxyCall, DBusGProxyCallNotify): New.
3962 (dbus_g_proxy_begin_call): Change prototype to take callback, user
3963 data, and destroy function. This replaces
3964 dbus_g_pending_call_set_notify.
3965 (dbus_g_proxy_cancel_call): Prototype.
3966 (DBusGAsyncData): Delete, shouldn't be needed anymore.
3968 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3970 (struct _DBusGProxyManager): Add bus_proxy member, which is an
3971 internal proxy for calls to the bus. Remove
3972 pending_nameowner_calls, now the internal proxy keeps track.
3973 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3974 pending_nameowner_calls.
3975 (got_name_owner_cb): Update prototype, and use
3976 dbus_g_proxy_end_call.
3977 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3978 (dbus_g_proxy_manager_register): Delete directly libdbus code in
3979 favor of using internal proxy.
3980 (dbus_g_proxy_manager_unregister): Update to use
3981 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3982 (dbus_g_proxy_init): Initialize pending calls map.
3983 (dbus_g_proxy_constructor): New.
3984 (dbus_g_proxy_class_init): Add get/set property functions,
3985 constructor, and add NAME, PATH, and INTERFACE properties.
3986 (cancel_pending_call): New function.
3987 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3989 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3990 (GPendingNotifyClosure): New structure.
3991 (d_pending_call_notify, d_pending_call_free): Moved here from
3993 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3995 (manager_begin_bus_call): New internal function for talking to
3997 (dbus_g_proxy_new): Construct object using GObjet properties.
3998 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3999 Create closure of same, and insert call into map of pending calls.
4000 (dbus_g_proxy_end_call_internal): Take call id instead of pending
4001 call. Look up pending call in current set. Remove it when we've
4003 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4004 (dbus_g_proxy_begin_call): Change API to take callback, user data,
4005 and destroy function directly.
4006 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4007 (dbus_g_proxy_call): Invoke with NULL callback.
4008 (dbus_g_proxy_cancel_call): New function, replaces
4009 dbus_g_pending_call_cancel.
4011 * glib/dbus-gparser.c (validate_signature): Fix call to
4014 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4015 New quark for attaching metadata to GType.
4016 (info_hash): Delete.
4017 (lookup_object_info): Look up using quark.
4018 (dbus_g_object_type_install_info): Check that a type is classed,
4019 not that it's an object. Also just install type data using quark
4020 instead of using global hash.
4022 * glib/dbus-glib.c (dbus_g_pending_call_ref)
4023 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4024 (GPendingNotifyClosure): Delete.
4025 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4026 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4028 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4029 client method generation until we can fix it...
4031 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4032 (load_from_service_thread_func): Ditto.
4034 * tools/dbus-names-model.c (struct NamesModel): Hold
4036 (have_names_notify): Update prototype, use
4037 dbus_g_proxy_cancel_call.
4038 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4040 * tools/dbus-monitor.c (filter_func): Update for print_message
4043 * test/glib/test-dbus-glib.c: Add more tests for async
4044 invocations. Update many begin_call/end_call pairs to just use
4047 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
4048 allows us to dump print-introspect.c.
4050 * tools/dbus-print-message.h (print_message): Add literal argument
4051 to print_message which is intended to allow printing arguments without
4052 metadata like "string=".
4054 * tools/dbus-print-message.c (print_iter): Add literal argument.
4055 (print_message): Allow printing string messages literally.
4057 2005-07-05 Colin Walters <walters@verbum.org>
4059 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4060 Remove value refcount leak, original patch from Jorn Baayen
4061 <jorn@openedhand.com>. Also remove useless extra value in favor
4062 of prepending to value array directly.
4064 2005-07-02 Colin Walters <walters@verbum.org>
4066 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4068 2005-07-01 Colin Walters <walters@verbum.org>
4070 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4072 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4073 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4074 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4075 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4077 2005-06-30 Colin Walters <walters@verbum.org>
4079 * test/glib/test-dbus-glib.c:
4080 * test/glib/test-service-glib.c:
4081 * test/glib/test-service-glib.xml: Update tests for new error
4082 setting bits, also add async tests (patch from Ross Burton).
4084 * test/glib/Makefile.am (test_service_glib_LDADD): Add
4085 DBUS_GLIB_THREADS_LIBS.
4087 * glib/dbus-gproxy.c (get_name_owner)
4088 (dbus_g_pending_call_end_valist): Ditto.
4090 * glib/dbus-gobject.c (error_metadata): New mapping from GError
4091 domain (GQuark) to DBusGErrorInfo.
4092 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4093 quark in error_metadata. Take message interface as default
4094 error message interface.
4095 (gerror_to_dbus_error_message): Pass message interface.
4096 (dbus_set_g_error): Resurrected.
4097 (dbus_g_error_info_free): New function.
4098 (dbus_g_object_type_install_info): Use g_type_class_ref instead
4099 of _peek to actually create the object class if it hasn't been
4101 (dbus_g_error_domain_register): New function.
4103 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4105 * glib/dbus-gparser.c (validate_signature): Ditto.
4107 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4108 (dbus_g_error_domain_register): Prototype.
4110 * glib/dbus-glib.c (dbus_g_error_set): Delete.
4113 2005-06-29 Colin Walters <walters@verbum.org>
4115 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
4116 DBUS_TYPE_G_OBJECT_PATH.
4118 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4119 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4120 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
4121 (dbus_g_object_path_get_g_type): New function.
4122 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4123 to DBUS_TYPE_G_OBJECT_PATH by default.
4124 (demarshal_proxy): Remove unused name variable.
4125 (demarshal_object_path, marshal_object_path): New functions.
4126 (demarshal_proxy_array, marshal_proxy_array): Delete.
4128 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4129 DBUS_TYPE_G_OBJECT_PATH to char *.
4130 (dbus_g_type_get_lookup_function): Map builtin
4131 DBUS_TYPE_G_OBJECT_PATH.
4133 * test/glib/test-dbus-glib.c
4134 * test/glib/test-service-glib.c (my_object_objpath):
4135 Adapt tests to new object path marshalling.
4137 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
4139 * configure.in: force check for Python >= 2.4
4141 2005-06-29 Colin Walters <walters@verbum.org>
4143 Patch from Ross Burton <ross@openedhand.com>
4145 * glib/dbus-gobject.c (invoke_object_method): Unset object
4146 value in all cases, not only in async case.
4148 2005-06-29 Colin Walters <walters@verbum.org>
4150 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4151 name_call for keeping track of any outgoing GetNameOwner call.
4152 Also add for_owner and associated.
4153 (struct _DBusGProxyManager): Add owner_names, which is hash table
4154 that maps a base name to a list of names it owns (that we're
4155 interested in). Add pending_nameowner_calls which is a list of
4156 all outstanding GetNameOwner; avoids us having to iterate over
4157 every proxy. Add unassociated_proxies which keeps track of name
4158 proxies with no associated name owner.
4159 (dbus_g_proxy_manager_unref): Destroy owner_names.
4160 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4162 (find_name_in_info, name_owner_foreach)
4163 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4164 (dbus_g_proxy_manager_monitor_name_owner)
4165 (dbus_g_proxy_manager_unmonitor_name_owner)
4166 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4167 New functions; they manipulate the owner_names mapping.
4168 (got_name_owner_cb): New function.
4169 (get_name_owner): New function, extracted from
4170 dbus_g_proxy_new_for_name_owner.
4171 (dbus_g_proxy_manager_register): For now we need to keep track of
4172 all NameOwnerChanged. Also if the proxy is for a name, if we
4173 don't already know the name owner, queue a new GetNameOwner
4174 request and add it to our list of unassociated proxies. Otherwise
4176 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4177 cancel any pending GetNameOwner call, etc.
4178 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
4179 the owner_names mapping to look up the current names for the
4180 signal source, and dispatch to any proxies for that name.
4181 (dbus_g_proxy_new): Initialize new members.
4182 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4183 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4184 (dbus_g_pending_call_end_valist): New function, extracted from
4185 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
4186 but want to use the GLib infrastructure. Also note how many
4187 arguments in reply were over.
4188 (dbus_g_pending_call_end): New function, just call
4189 dbus_g_pending_call_end_valist.
4190 (dbus_g_proxy_end_call_internal): Just call
4191 dbus_g_pending_call_end_valist.
4193 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4194 of builtin marshaller for STRING_STRING_STRING.
4196 * test/glib/test-dbus-glib.c:
4197 * test/glib/test-service-glib.c:
4198 * test/glib/test-service-glib.xml:
4199 Extend tests to cover name proxies, destruction of owner proxies,
4202 * glib/examples/example-signal-recipient.c
4203 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4205 * tools/dbus-send.c (main): Print D-BUS error name in addition
4208 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
4210 * python/dbus_bindings.pyx.in (cunregister_function_handler,
4211 cmessage_function_handler): Patch from
4212 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4213 by using the Py_GILState_Ensure/Release to synchronize with the
4216 2005-06-28 Ray Strode <rstrode@redhat.com>
4218 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4219 babysitter helper process on last unref, bug #2813.
4221 2005-06-27 Colin Walters <walters@verbum.org>
4223 * test/glib/test-dbus-glib.c:
4224 * test/glib/test-service-glib.c:
4225 * test/glib/test-service-glib.xml:
4226 Test hash table signal emitting.
4228 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4229 types to their fundamental basis types, since this is what
4230 marshallers operate on. Also add an entry for VOID__BOXED.
4231 (dbus_g_object_register_marshaller_array): Convert to fundamental.
4233 2005-06-26 Havoc Pennington <hp@redhat.com>
4235 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4238 2005-06-26 Colin Walters <walters@verbum.org>
4240 * glib/dbus-glib.c (dbus_set_g_error): Delete.
4241 (dbus_g_error_set): New public function from its ashes; used by
4242 both service-side method implementation and GLib bindings
4244 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4245 (_dbus_glib_test): Add some tests.
4247 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4249 * test/glib/test-service-glib.c (my_object_throw_error): Use
4252 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4253 errors thrown by dbus_g_error_set.
4255 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4257 * glib/dbus-gparser.c (validate_signature): Ditto.
4259 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
4260 (dbus_g_proxy_end_call_internal): Ditto.
4262 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4263 converts DBUS_ERROR_x to DBUS_GERROR_x.
4264 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4266 * doc/TODO: Remove error TODO.
4268 * doc/dbus-tutorial.xml: Update with documentation about error
4271 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4272 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4273 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
4275 2005-06-22 Colin Walters <walters@verbum.org>
4277 Patch from Ross Burton <ross@openedhand.com>
4279 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4281 2005-06-20 Colin Walters <walters@verbum.org>
4283 * configure.in: Add glib/examples.
4285 * glib/Makefile.am: Add examples/
4287 * glib/examples/.cvsignore
4288 * glib/examples/Makefile.am
4289 * glib/examples/example-client.c
4290 * glib/examples/example-service.c
4291 * glib/examples/example-service.xml
4292 * glib/examples/example-signal-emitter.c
4293 * glib/examples/example-signal-emitter.xml
4294 * glib/examples/example-signal-recipient.c:
4295 New files; GLib binding examples, ported from
4298 2005-06-20 Colin Walters <walters@verbum.org>
4301 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4304 * glib/dbus-binding-tool-glib.c:
4305 * doc/dbus-tutorial.xml:
4306 * test/glib/test-dbus-glib.c: Update for rename.
4308 2005-06-20 Colin Walters <walters@verbum.org>
4310 Patch suggested by Ross Burton <ross@openedhand.com>
4312 * glib/dbus-gobject.c (export_signals): Free signal name.
4313 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4314 memory leak. Add a bit of documentation.
4315 (dbus_g_method_return_error): Free context, and note we do
4318 2005-06-18 Murray Cumming <murrayc@murrayc.com>
4321 * glib/dbus-gobject.c:
4322 * glib/dbus-gproxy.c:
4323 * glib/dbus-gvalue.c: Predeclare structs as
4324 typedef struct _Something Something instead of
4325 typedef struct Something Something, so we can
4326 redeclare the prototypes. Other GNOME libraries
4329 2005-06-17 Colin Walters <walters@verbum.org>
4331 * tools/dbus-names-model.c (have_names_notify): Fix call
4332 to dbus_g_proxy_end_call.
4334 2005-06-17 Colin Walters <walters@verbum.org>
4336 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4337 spew warnings if we get malformed remote signals.
4339 * glib/dbus-gobject.c (propsig_iterate): New function.
4340 (lookup_object_info): New function, extracted from
4341 lookup_object_and_method.
4342 (introspect_properties, introspect_signals): Delete; these
4343 are merged into write_interface.
4344 (write_interface): Write out signals and properties here;
4345 dump the org.gtk.object stuff and use the interface given
4346 in the introspection data blob. Also fix up property XML.
4347 (lookup_values): New function.
4348 (introspect_interfaces): Gather a mapping from interface to a
4349 list of its methods, signals, and properties, then write out
4351 (lookup_object_and_method): Use lookup_object_info.
4352 (struct DBusGSignalClosure): Add interface.
4353 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4354 we can just use the constant data.
4355 (dbus_g_signal_closure_finalize): Don't free signal name.
4356 (signal_emitter_marshaller): Use interface from signal closure.
4357 (export_signals): Only export signals mentioned in introspection
4359 (dbus_g_connection_register_g_object): Warn if we have no
4360 introspection data for an object.
4361 (funcsig_equal): Remove unused variable.
4362 (dbus_g_object_register_marshaller): Take varargs instead of
4364 (dbus_g_object_register_marshaller_array): New function,
4365 extracted from old dbus_g_object_register_marshaller.
4367 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4368 signals and property data.
4369 (write_quoted_string): New function, extracted from generate_glue.
4370 (generate_glue): Write signals and properties to introspection
4373 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4374 exported_signals and exported_properties.
4375 (dbus_g_object_register_marshaller): Update prototype.
4376 (dbus_g_object_register_marshaller_array): Prototype.
4378 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4380 * test/glib/test-service-glib.c: Add new test signals and method
4383 * test/glib/test-service-glib.xml: Add some test signals.
4385 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4386 and my-object-marshal.h
4387 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4388 my-object-marshal.c.
4389 (my-object-marshal.c, my-object-marshal.h): Implement.
4391 * test/glib/.cvsignore: Update.
4393 * doc/TODO: Remove two GLib TODO items fixed by this
4396 2005-06-16 Colin Walters <walters@verbum.org>
4398 * doc/TODO: Update for GLib bindings.
4400 2005-06-16 Colin Walters <walters@verbum.org>
4402 * glib/dbus-binding-tool-glib.c:
4403 * glib/dbus-gobject.c:
4404 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
4405 from Ross Burton, for his GLib bindings work.
4407 2005-06-16 Colin Walters <walters@verbum.org>
4409 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4410 to iterate instead of walking to G_TYPE_INVALID.
4412 Patch based on a patch from Ryan Gammon.
4414 2005-06-16 Colin Walters <walters@verbum.org>
4416 * bus/bus.c (bus_context_new): Set parser to NULL
4417 after we unref it (Patch from Chris Boscolo, #2174).
4419 2005-06-16 Colin Walters <walters@verbum.org>
4421 * python/dbus_bindings.pyx.in: Import size_t,
4422 __int64_t, __uint64_t, and __signed.
4424 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4425 Define cmsg struct, output it.
4426 (_dbus_read_credentials_unix_socket):
4429 Patch from Joe Markus Clarke for FreeBSD support.
4431 2005-06-16 Colin Walters <walters@verbum.org>
4433 * tools/dbus-send.c (append_array): Use strtok.
4434 (append_dict): New function.
4435 (type_from_name): New function, extracted from main.
4436 (main): Handle sending dicts.
4438 * tools/dbus-print-message.c (print_iter): Print dict
4441 2005-06-16 Colin Walters <walters@verbum.org>
4443 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4444 values as the empty string (#2948).
4446 2005-06-16 Colin Walters <walters@verbum.org>
4449 * mono/doc/Makefile.am:
4450 * test/glib/Makefile.am:
4452 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4454 2005-06-16 Colin Walters <walters@verbum.org>
4456 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4457 header byte order from expected byte order (Patch from Chris Wilson, #3475).
4459 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
4460 Increment pointer after swapping fixed array. Add assertion
4463 2005-06-15 Colin Walters <walters@verbum.org>
4465 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4466 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
4468 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4470 * NEWS: Update to 0.34
4472 2005-06-15 David Zeuthen <davidz@redhat.com>
4474 * configure.in (LT_CURRENT): Revert back to 1 as the library
4475 hasn't changed and we've certainly not committed to protocol
4476 stability yet. All this does is to break ABI. See commit note
4477 from hp@redhat.com 2005-05-05 for details.
4479 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4481 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
4482 (_dbus_connection_run_builtin_filters): New method
4483 (dbus_connection_dispatch): Run the builtin filters which in turn
4484 runs the peer filter which handles Ping messages.
4487 - Ping isn't handled: This patch fixes it
4489 - Add a test case for the Ping message: added TODO item
4491 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4493 * dbus/dbus-message.c:
4494 (dbus_message_has_path): New method
4495 (dbus_message_has_interface): New method
4496 (dbus_message_has_member): New method
4498 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4501 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
4502 the keyring directory is private to the user
4505 - The convenience functions in dbus-bus.h should perhaps have
4506 the signatures that they would have if they were autogenerated
4507 stubs. e.g. the acquire service function. We should also evaluate
4508 which of these functions to include, in light of the fact that
4509 GLib/Qt native stubs will probably also exist.: Punted
4511 - add dbus_message_has_path(), maybe has_member/interface:
4514 - in dbus-keyring.c, enforce that the keyring dir is not
4515 world readable/writable: Fixed in this patch
4517 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4519 * dbus/dbus-marshal-validate.h: Added a new validation
4520 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
4521 out of memory errors when validating signitures
4523 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4524 in places where we previously used DBUS_VALID and a FALSE return
4525 value to indicate OOM
4527 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4528 Use a stack to track the number of elements inside containers. The
4529 stack values are then used to validate that dict entries have only two
4530 elements within them.
4531 (validate_body_helper): check the reason for failure when validating
4534 * dbus/dbus-message.c (load_message): use
4535 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
4536 DBUS_VALID and a FALSE return value to indicate OOM
4538 * doc/TODO: remove "- validate dict entry number of fields" as this
4541 2005-06-14 David Zeuthen <davidz@redhat.com>
4543 * bus/bus.c (process_config_every_time): Drop existing conf-dir
4544 watches (if applicable) and add new watches
4546 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4547 (main): Setup SIGIO signal handler if using D_NOTIFY
4549 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4551 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4552 (merge_included): Also merge conf_dirs list
4553 (bus_config_parser_unref): Clear conf_dirs list
4554 (include_dir): Add directory to conf_dirs list
4555 (bus_config_parser_get_conf_dirs): New function
4557 * bus/dir-watch.[ch]: New files
4559 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4561 * configure.in: Add checks for D_NOTIFY on Linux
4563 2005-06-14 Colin Walters <walters@verbum.org>
4565 * glib/dbus-binding-tool-glib.c:
4566 * glib/dbus-gobject.c:
4567 * glib/dbus-gvalue.c: Fix indentation and brace style.
4569 2005-06-14 Ross Burton <ross@openedhand.com>.
4571 * glib/dbus-glib.h: Make DBusGMethodInvocation
4572 a private structure. Rearrange prototypes a bit.
4574 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4575 documentation for first_arg_type.
4577 * glib/dbus-gobject.c: Move DBusGMethodInvocation
4578 here, add documentation. Move dbus_g_method_return
4579 and dbus_g_method_return_error into public API
4582 2005-06-14 Colin Walters <walters@verbum.org>
4584 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4585 Add missing return statements, noticed by Ross Burton.
4587 2005-06-13 Ross Burton <ross@openedhand.com>.
4589 * glib/dbus-gobject.c: Handle errors on message
4590 demarshalling by sending error message back.
4591 * glib/dbus-gvalue.c: Initialize return variables.
4593 2005-06-13 Colin Walters <walters@verbum.org>
4595 * glib/Makefile.am: Fix thinko in last patch.
4597 2005-06-13 Colin Walters <walters@verbum.org>
4599 * glib/Makefile.am: Move dbus-gtype-specialized.c
4600 and dbus-gtype-specialized.h into a _HEADERS variable,
4603 2005-06-12 Colin Walters <walters@verbum.org>
4605 Async signals and various bugfixes and testing by
4606 Ross Burton <ross@openedhand.com>.
4608 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4609 (dbus_gvalue_genmarshal_name_from_type)
4610 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4611 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4612 (dbus_g_value_types_init, dbus_gtype_from_signature)
4613 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4614 (dbus_gtypes_from_arg_signature): New function prototypes.
4615 (dbus_gvalue_demarshal): Take context and error arguments.
4616 (dbus_gvalue_demarshal_variant): New function.
4617 (dbus_gvalue_demarshal_message): New function.
4618 (dbus_gvalue_store): Delete.
4620 * glib/dbus-gvalue.c:
4622 File has been almost entirely rewritten; now we special-case
4623 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4624 hash tables correctly, etc. Full support for recursive values
4625 is not yet complete.
4627 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4628 argument of signal to G_TYPE_POINTER since we now pass a
4630 (lookup_g_marshaller): Delete in favor of
4631 _dbus_gobject_lookup_marshaller.
4632 (marshal_dbus_message_to_g_marshaller): Use
4633 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4634 to handle remote signal callbacks.
4635 (dbus_g_proxy_new_from_proxy): New function; creates a new
4636 DBusGProxy by copying an existing one.
4637 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4638 (dbus_g_proxy_get_path): New functions.
4639 (dbus_g_proxy_marshal_args_to_message): New function;
4640 factored out of existing code.
4641 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4642 from a varargs array.
4643 (dbus_g_proxy_begin_call_internal): New function.
4644 (dbus_g_proxy_end_call_internal): New function.
4645 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4646 as arguments; simply invoke dbus_g_proxy_begin_call_internal
4647 after collecting args into value array.
4648 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4649 invoke dbus_g_proxy_end_call_internal.
4650 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4652 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4654 (array_free_all): New function.
4655 (dbus_g_proxy_add_signal): Take GTypes.
4657 * glib/dbus-gobject.h:
4658 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4659 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4662 * glib/dbus-gobject.c: Add a global marshal_table hash which
4663 stores mappings from type signatures to marshallers. Change lots
4664 of invocations of dbus_gtype_to_dbus_type to
4665 dbus_gtype_to_signature.
4666 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4667 (introspect_signals): Fix test for query.return_type.
4668 (set_object_property): Update invocation of dbus_gvalue_demarshal.
4669 (invoke_object_method): Many changes. Handle asynchronous
4670 invocations. Convert arguments with
4671 dbus_gvalue_demarshal_message. Handle errors. Use
4672 DBusSignatureIter instead of strlen on args. Handle all arguments
4673 generically. Special-case variants.
4674 (dbus_g_method_return, dbus_g_method_return_error): New function.
4675 (DBusGSignalClosure): New structure, closes over signal
4677 (dbus_g_signal_closure_new): New function.
4678 (dbus_g_signal_closure_finalize): New function.
4679 (signal_emitter_marshaller): New function; is special marshaller
4680 which emits signals on bus.
4681 (export_signals): New function; introspects object signals and
4683 (dbus_g_object_type_install_info): Take GType instead of
4685 (dbus_g_connection_register_g_object): Invoke export_signals.
4686 (dbus_g_connection_lookup_g_object): New function.
4687 (DBusGFuncSignature) New structure; used for mapping type
4688 signatures to marshallers.
4689 (funcsig_hash): New function; hashes DBusGFuncSignature.
4690 (funcsig_equal): New function; compares DBusGFuncSignature.
4691 (_dbus_gobject_lookup_marshaller): New function.
4692 (dbus_g_object_register_marshaller): New function; used to
4693 register a marshaller at runtime for a particular signature.
4695 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4697 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4698 which notes a server method implementation should be
4701 * glib/dbus-binding-tool-glib.c
4702 (dbus_binding_tool_output_glib_server): Call
4703 dbus_g_value_types_init.
4704 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
4706 (dbus_g_type_get_lookup_function): Turn GType into an invocation
4707 of a lookup function.
4708 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4709 (write_untyped_out_args): New method; write output arguments.
4710 (write_formal_declarations_for_direction): Function for
4712 (write_formal_parameters_for_direction): Function for
4713 writing implementations.
4714 (write_typed_args_for_direction): Function for writing
4715 arguments prefixed with GTypes.
4716 (write_async_method_client): Write out async version
4719 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4720 (dbus_g_type_get_marshal_name): Move mapping from GType
4721 to marshal name into here.
4722 (dbus_g_type_get_c_name): Move into here.
4723 (compute_marshaller): Convert signature to type with
4724 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4725 (compute_marshaller_name): Ditto.
4726 (compute_marshaller): Handle async signal annotations.
4727 (gather_marshallers): Return if we don't have a known
4729 (generate_glue): Collect introspection blob here, and
4730 write all of the blob at the end. This allows an object
4731 with multiple interfaces to work.
4732 Mark async methods in introspection blob.
4734 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4735 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4736 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4738 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4739 avoids people accidentally using DBUS_TYPE_* which should
4740 not be necessary anymore.
4741 Do include dbus-gtype-specialized.h, which are utilities
4742 for GLib container types.
4743 Add various #defines for types such as
4744 DBUS_TYPE_G_BOOLEAN_ARRAY.
4745 (DBusGValueIterator, DBusGValue): Define, not fully used
4747 (dbus_g_value_get_g_type): Type for recursive value.
4748 (dbus_g_value_open, dbus_g_value_iterator_get_value)
4749 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4750 (dbus_g_value_free): Prototypes.
4751 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4752 (dbus_g_proxy_set_interface): Prototype.
4753 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4754 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4756 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4758 (DBusGAsyncData, DBusGMethodInvocation): Structures for
4759 doing async invocations.
4760 (dbus_g_method_return, dbus_g_method_return_error):
4762 * doc/dbus-tutorial.xml: Update GLib section.
4764 * tools/dbus-viewer.c (load_child_nodes): Update
4765 for new invocation type of dbus_g_proxy_end_call.
4766 (load_from_service_thread_func): Ditto.
4768 * tools/print-introspect.c (main): Ditto.
4770 * tools/dbus-names-model.c (have_names_notify)
4771 (names_model_reload, names_model_set_connection)
4774 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4775 needed since Python bindings use GLib bindings.
4777 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4778 Add --prefix argument.
4780 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
4781 unneeded --ignore-unsupported arg.
4783 * test/glib/test-service-glib.c:
4784 * test/glib/test-service-glib.xml:
4785 * test/glib/test-dbus-glib.c: Add many more tests.
4787 2005-06-06 David Zeuthen <davidz@redhat.com>
4789 * doc/TODO: Add item about need to remove deprecated functions.
4791 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4793 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4794 to repair the ABI which was broken with the last commit.
4796 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
4798 * dbus/dbus-connection.c, dbus/dbus-connection.h
4799 (dbus_connection_disconnect): renamed to dbus_connection_close
4800 for API symmetry with dbus_connection_open
4801 (_dbus_connection_open_internal):
4802 s/dbus_connection_disconnect/dbus_connection_close
4804 * dbus/dbus-bus.c (dbus_bus_get):
4805 s/dbus_connection_disconnect/dbus_connection_close
4807 * bus/connection.c (bus_connections_unref,
4808 bus_connections_setup_connection, bus_connections_expire_incomplete):
4809 s/dbus_connection_disconnect/dbus_connection_close
4811 * bus/dispatch.c (bus_dispatch, kill_client_connection,
4812 kill_client_connection_unchecked, check_hello_connection):
4813 s/dbus_connection_disconnect/dbus_connection_close
4815 * bus/bus.c (new_connection_callback):
4816 s/dbus_connection_disconnect/dbus_connection_close
4818 * tools/dbus-send.c (main):
4819 s/dbus_connection_disconnect/dbus_connection_close
4821 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4822 s/dbus_connection_disconnect/dbus_connection_close
4824 * test/test-service.c (path_message_func, filter_func):
4825 s/dbus_connection_disconnect/dbus_connection_close
4827 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
4829 2005-05-25 Colin Walters <walters@verbum.org>
4831 * dbus/dbus-protocol.h: Move various bus service #defines such
4832 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4834 * dbus/dbus-shared.h: Various defines moved here.
4835 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4837 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
4839 * python/__init__.py: Python bindings deserve a minor version
4840 update. Upped to (0, 40, 2)
4842 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
4844 * python/decorators.py: add explicitly_pass_message decorator
4845 for passing in the dbus message as keyword for edge case signal
4848 * python/matchrules.py (SignalMatchRule.__repr__): fix output
4849 to conform with what dbus expects for match rules
4850 (SignalMatchRule.execute): add the dbus message as a keyword
4851 if the signal handler has requested it
4853 * python/examples/example/signal-recipient.py: added some more
4854 examples on how to hook up to signals
4856 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
4858 * python/decorators.py: import dbus_bindings
4860 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
4861 SignalMatchNode): new classes that implement wildcard signal
4862 callback matching using a tree lookup. Heavily modified from a
4863 patch sent by Celso Pinto (fd.o bug #3241)
4865 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4866 use new match classes to handle signals.
4868 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
4870 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4872 2005-05-18 Havoc Pennington <hp@redhat.com>
4874 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4875 gettext. Not really worth requiring yet perhaps, but any
4876 production quality 1.0 would require it so we should go ahead and
4877 get things set up. We do have a couple token calls to
4878 bindtextdomain in the code already.
4880 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
4882 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4883 when using recursive g_main_loops
4885 * python/_dbus.py (class Bus): add the ProxyObjectClass
4886 alias for ProxyObject to make it easier for the Twisted
4887 networking framework to integrate dbus.
4889 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4890 alias for ProxyMethod to make it easier for the Twisted
4891 networking framework to integrate dbus.
4893 2005-05-11 Ross Burton <ross@openedhand.com>
4895 * glib/dbus-glib-tool.c: Add --prefix argument.
4896 * glib/dbus-binding-tool-glib.h: Add prefix argument.
4897 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4898 Add prefix argument.
4899 (generate_glue): Pass prefix argument down.
4900 (dbus_binding_tool_output_glib_server): Pass prefix to
4903 2005-05-11 Colin Walters <walters@verbum.org>
4905 * tools/dbus-send.c (append_array): New function.
4906 (append_arg): Broken out from main.
4907 (main): Add cheesy hack to send arrays and variants.
4909 * tools/dbus-print-message.c (print_iter): Broken out
4912 2005-05-11 Colin Walters <walters@verbum.org>
4914 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4915 New function, returns signature string for signature iter.
4916 * dbus/dbus-signature.h: Prototype it.
4917 * dbus/dbus-message.c (dbus_message_iter_get_signature):
4918 New function, returns signature string for message iter.
4919 (dbus_message_iter_get_array_len): New function, returns
4921 (dbus_message_iter_get_fixed_array): Fix assertion; this
4922 function should be used when the iter is pointing to the
4923 contents of an array
4924 * dbus/dbus-message.h: Prototypes.
4925 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4926 New function; returns length of an array.
4927 * dbus/dbus-marshal-recursive.h: Prototype it.
4929 2005-05-11 Colin Walters <walters@verbum.org>
4931 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4934 2005-05-08 Havoc Pennington <hp@redhat.com>
4936 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4937 daemon's pid, not the parent's pid, to the file descriptor.
4938 Reported by Taj Morton.
4940 2005-05-05 Havoc Pennington <hp@redhat.com>
4942 * configure.in (LT_*): add notes on how the libtool versioning
4943 works to save thinking. Increment soname to indicate protocol
4944 breakage (though really the library interface hasn't changed I
4947 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4948 verify the GUID received from server matches what we were
4949 expecting, if we had an expectation
4951 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4952 (_dbus_auth_get_guid_from_server): new function
4953 (send_begin): parse the OK args
4955 * doc/dbus-specification.xml: add GUID to the auth protocol
4957 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
4959 * Fix my name in previous changelog ;)
4961 * python/proxies.py (ProxyObject.__getattr__): add further patch
4962 from Anthony Baxter to throw an AttributeError when python
4963 __special__ functions are called instead of marshling them over
4964 the bus (Bug#1685 comment 3).
4966 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
4968 * python/Makefile.am: changed to use pyexecdir for the binding
4969 shared libraries (Bug#2494)
4971 * python/exceptions.py: bring exceptions over from the bindings
4972 so they can be used in applications (Bug#2036)
4973 Make all exceptions derive from DBusException
4975 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4976 of classes so that print obj doesn't throw an exception (Bug #1685)
4978 2005-05-03 Ross Burton <ross@openedhand.com>
4980 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4981 Return if we get an error during registration. Set up a
4982 weak reference on object to unregister if object is destroyed.
4983 (unregister_gobject): New function.
4985 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
4987 * python/dbus_bindings.pyx.in:
4988 - added new type classes for hinting to the marashaler what type
4989 to send over the wire
4990 - added int16 and uint16 marshalers
4991 - Fixed a bug in the type constants that caused int32 to go out
4992 as uint16 over the wire
4993 * python/dbus.py: split up into different files and renamed _dbus.py
4994 * python/__init__.py, python/_util.py, python/decorators.py,
4995 python/exceptions.py, python/proxies.py, python/services.py,
4996 python/types.py: new files split off from dbus.py
4997 * python/Makefile.am: Add new files, remove dbus.py and
4998 install all python files to <python module dir>/dbus
4999 * python/examples/*: Added #!/usr/bin/env python to the top of
5000 every example. Patch provided by Tatavarty Kalyan
5002 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5004 * NEWS: Update to 0.33
5006 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5008 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5009 method for doing async calls
5010 (_pending_call_notification): New C function for handling pendning call
5012 (set_notify): New method for setting pending call notification
5014 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5015 Async capabilities added to remote method calls
5016 (Sender): class removed
5017 (RemoteService): class removed
5018 (ObjectTree): class removed for now
5019 (RemoteObject): Renamed to ProxyObject
5020 (RemoteMethod): Renamed to ProxyMethod
5021 (method): Decorator added for decorating python methods as dbus methods
5022 (signal): Decorator added for decorating python methods as signal emitters
5023 (ObjectType): Metaclass added for generating introspection data and the
5024 method callback vtable
5025 (Interface): Wrapper class added to wrap objects in a dbus interface
5026 (Object): Uses ObjectType as its metaclass and exports Introspect
5027 of the org.freedesktop.DBus.Introspectable interface
5028 (ValidationException, UnknownMethodException): new exceptions
5030 * python/examples/*: Modified to fit with the new bindings
5032 2005-04-23 Havoc Pennington <hp@redhat.com>
5034 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5035 reported by Tony Houghton
5037 * test/test-service.c (main): test
5038 dbus_connection_get_object_path_data()
5040 * dbus/dbus-object-tree.c (find_handler): be sure we always init
5042 (_dbus_object_tree_get_user_data_unlocked): new function used by
5043 dbus_connection_get_object_path_data()
5044 (do_register): add assertion test for get_user_data_unlocked
5045 (object_tree_test_iteration): more tests
5047 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5048 new function from Dan Reed to let you get the user data from
5049 dbus_connection_register_object_path()
5051 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
5053 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5054 in numerous places that did not account for the NULL terminator
5055 (signature_from_seed): changed the manual string copy loop to
5056 just use strcpy instead
5057 make check should now pass
5059 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
5061 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5062 so that it allows messages that are not signals to pass in
5063 NULL as the interface.
5065 2005-04-18 David Zeuthen <davidz@redhat.com>
5067 * glib/dbus-gmain.c (io_handler_destroy_source):
5068 (timeout_handler_destroy_source, connection_setup_free):
5069 Also unref the source to avoid memory leaks.
5071 2005-04-13 David Zeuthen <davidz@redhat.com>
5073 * bus/config-parser.c (bus_config_parser_new): Bump this to a
5074 more reasonable, yet still totally arbitrary, value :-).
5076 2005-04-13 David Zeuthen <davidz@redhat.com>
5078 * doc/TODO: Added an "important for 1.0" item about selinux
5081 2005-04-13 David Zeuthen <davidz@redhat.com>
5083 * bus/selinux.c: Add c-file-style to top of file
5084 (log_audit_callback): Don't free the data here anymore
5085 (bus_selinux_check): Don't take spid and tpid since appending
5086 that to auxdata may OOM.
5087 (bus_selinux_allows_acquire_service): Handle OOM and signal back
5088 to the caller if we are OOM by taking an error object.
5089 (bus_selinux_allows_send): -do-
5091 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5092 and bus_selinux_allows_send
5094 * bus/bus.c (bus_context_check_security_policy): Pass error and
5095 pass on OOM thrown by bus_selinux_allows_send()
5097 * bus/services.c (bus_registry_acquire_service): Pass error and
5098 pass on OOM thrown by bus_selinux_allows_acquire_service()
5100 2005-04-13 Havoc Pennington <hp@redhat.com>
5102 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5103 message at a time to avoid monopolizing the main loop, bug
5104 #2953 from Benjamin Otte
5106 2005-04-09 Havoc Pennington <hp@redhat.com>
5108 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5109 possible overlap, fix from Daniel Reed
5110 (fixup_alignment): fix signedness warnings
5111 (_dbus_string_append_unichar): ditto
5113 2005-04-09 Havoc Pennington <hp@redhat.com>
5115 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5117 * glib/dbus-glib-tool.c (main): fix warning
5119 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5121 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5122 add a new function that can be used in simple applications that
5123 don't have a main loop and are willing to block
5125 2005-04-05 David Zeuthen <davidz@redhat.com>
5127 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5129 * glib/dbus-gmain.c:
5130 (io_handler_destroy_source): Remove from list of IO handlers
5131 of the ConnectionSetup object
5132 (timeout_handler_destroy_source): -do- for timeout handlers
5133 (io_handler_source_finalized): Don't remove from list since
5134 we now do that in io_handler_destroy_source(). Renamed from
5135 io_handler_source_destroyed
5136 (timeout_handler_source_destroyed): -do- for timeout handlers
5137 (connection_setup_free): It is now safe to iterate over all
5138 IO and timeout handlers as the _destroy_source removes them
5139 from the list synchronously
5141 2005-03-30 Havoc Pennington <hp@redhat.com>
5143 * configure.in: change check to gtk 2.4
5145 * tools/dbus-viewer.c (name_combo_changed_callback): remove
5146 gtk_combo_box_get_active_text() usage to decrement GTK requirement
5149 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5153 * HACKING: Fixed realease instructions. configure.in should be updated to
5154 the next release by the person who made the last release.
5156 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5158 * python/lvalue_cast_post_process.py - removed. Patch has been
5159 submitted to Pyrex maintainers that fixes gcc4.0 errors
5161 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5163 2005-03-24 Daniel Reed <n@ml.org>
5165 * tools/Makefile.am: Make print-introspect and
5166 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5168 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
5170 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5172 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
5173 had in Red Hat packages for a while but for some reason never
5175 (_dbus_is_a_number): New checks if a string
5176 can be converted to a number and does the conversion if it can
5177 (_dbus_user_database_lookup): Add check to see if the given username
5178 is a udi. This allows udi's to be used instead of usernames in the
5180 (_dbus_user_database_lookup_group): Add check to see if the given groupname
5181 is a gdi. This allows gdi's to be used instead of groupnames in the
5184 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
5186 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5187 code so that it compiles with gcc4.0
5189 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5190 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5191 results back to dbus_binding.c
5193 2005-03-20 Colin Walters <walters@verbum.org>
5195 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5197 * configure.in: Require GTK+ 2.6.
5199 2005-03-20 Colin Walters <walters@verbum.org>
5201 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5203 2005-03-17 Tom Parker <palfrey@tevp.net>
5205 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5206 print DBUS_UID_UNSET; instead print passed username. Also
5207 be sure to actually use gid looked up in cache.
5209 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5210 for DBUS_GID_UNSET and groupname.
5212 2005-03-17 Colin Walters <walters@verbum.org>
5214 * bus/print-introspect.c: Move to tools/.
5215 * bus/run-with-tmp-session-bus.sh: Ditto.
5217 * glib/Makefile.am (dbus-glib-bindings.h): Move
5218 generation to tools/Makefile.am.
5220 * test/glib/run-test.sh: Update to handle move
5221 of run-with-tmp-session-bus.sh.
5223 * test/glib/test-service-glib.c: Update to handle
5224 move of dbus-glib-bindings.h.
5226 * tools/print-introspect.c: Moved here
5227 from bus/, and ported to GLib bindings.
5229 * tools/run-with-tmp-session-bus.sh: Moved here
5232 * tools/Makefile.am: Generate dbus-glib-bindings.h
5233 and dbus-bus-introspect.xml here.
5235 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5238 2005-03-17 Colin Walters <walters@verbum.org>
5240 * bus/driver.c (write_args_for_direction): Use
5241 _dbus_string_get_const_data to retrieve string;
5242 _dbus_string_get_const_data_len doesn't actually return
5243 a NULL-terminated substring.
5245 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5246 (main): Change to use org_freedesktop_DBus_request_name
5247 instead of using g_proxy_begin_call/end_call.
5249 2005-03-15 Joe Shaw <joeshaw@novell.com>
5251 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5252 generating the finalizer. Fixes from Ben Maurer.
5254 2005-03-12 Joe Shaw <joeshaw@novell.com>
5256 * mono/BusDriver.cs: Update method names: ListServices
5257 becomes ListNames; GetOwner becomes GetNameOwner.
5259 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5260 onto the eval stack when removing the delegate.
5262 2005-03-12 Joe Shaw <joeshaw@novell.com>
5264 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5265 LT_CURRENT. Set it to the autoconf variable.
5267 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5268 classes that disconnects the signal handler delegate from the
5269 service object. Fixes a big leak of proxy objects on the
5270 client side of things. Patch from Ben Maurer
5271 <bmaurer@ximian.com>
5273 2005-03-12 Colin Walters <walters@verbum.org>
5275 * bus/driver.c (write_args_for_direction): New function,
5276 parses a type signature into arguments and outputs to
5278 (bus_driver_handle_introspect): Use it instead of
5279 hardcoding XML for certain signatures.
5281 * bus/Makefile.am (dbus-bus-introspect.xml): Add
5282 dependency on dbus-daemon.
5284 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5285 argument, pass it to dbus_binding_tool_output_glib_client.
5287 * glib/dbus-binding-tool-glib.c
5288 (generate_client_glue): Protect against multiple inclusion.
5289 (dbus_binding_tool_output_glib_client): Add
5290 G_BEGIN_DECLS/G_END_DECLS.
5292 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5293 Change to just take iface prefix directly.
5294 (write_formal_parameters): Clarify error message.
5295 (check_supported_parameters): New function; checks to see type
5296 signatures of method parameters are supported.
5297 (generate_client_glue): Handle ignore_unsupported flag.
5298 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5301 * glib/Makefile.am (dbus-glib-bindings.h): Pass
5302 --ignore-unsupported by default until glib bindings
5305 2005-03-11 Colin Walters <walters@verbum.org>
5307 * glib/Makefile.am: Generate dbus-glib-bindings.h and
5310 * bus/print-introspect.c: New file; prints introspection
5311 data for a given name and object path.
5313 * bus/run-with-tmp-session-bus.sh: New file, refactored
5314 from test/glib/run-test.sh. Creates a temporary session
5315 bus and runs another program.
5317 * test/glib/run-test.sh: Refactor to invoke
5318 run-with-tmp-session-bus.sh.
5320 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5321 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
5322 macros instead of hardcoding.
5324 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5326 2005-03-11 Joe Shaw <joeshaw@novell.com>
5328 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5329 this unref; it doesn't match up evenly in some codepaths.
5330 (_dbus_connection_block_pending_call): Unref at every exitpoint;
5331 this evenly matches with the ref near the top of this function.
5333 2005-03-09 Joe Shaw <joeshaw@novell.com>
5335 * dbus/dbus-object-tree.c
5336 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5337 and we try to unregister a path that's not registered, still go
5338 through the process of unlocking and don't just return.
5340 2005-03-09 Colin Walters <walters@verbum.org>
5342 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5343 to this are generated for client-side wrappers. Invokes a
5344 D-BUS method and returns reply values.
5346 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5347 function; writes signature string for argument direction.
5348 (write_args_for_direction): Change to pass input values directly
5349 instead of via address, and fix indentation.
5350 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
5351 make generated wrappers inlineable.
5353 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5354 note about using dbus_type_is_fixed.
5356 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5357 dbus/dbus-signature.c as dbus_type_is_fixed.
5359 All callers updated.
5361 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5362 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5364 * dbus/dbus-signature.h: Prototype.
5366 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5369 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5370 appropriate instead of just freeing it.
5371 (main): Free returned strings using g_free.
5373 * test/glib/Makefile.am (test-service-glib-glue.h)
5374 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5376 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5377 simply maps a simple D-BUS type to GType.
5378 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5380 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5381 initialize the value with it.
5382 (dbus_gvalue_binding_type_from_type): Unused, delete.
5383 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5384 various types instead of unmarshalling to value data directly.
5385 Remove can_convert boolean.
5386 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5387 returning directly instead of using can_convert boolean.
5388 (dbus_gvalue_store): New function; not related to D-BUS per-se.
5389 Stores a GValue in a pointer to a value of its corresponding C
5392 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5393 add dbus_gvalue_store.
5395 2005-03-08 Joe Shaw <joeshaw@novell.com>
5397 Fix a bunch of lifecycle and memory management problems
5398 in the mono bindings.
5400 * mono/Arguments.cs (Arguments): Implement IDisposable
5402 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
5403 strictly a static class.
5405 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5406 delegates into this file.
5407 (Connection): Implement IDisposable.
5408 (Dispose): Disconnect the connection and set the raw connection
5409 pointer to IntPtr.Zero.
5410 (~Connection): Call Dispose().
5411 (RegisterObjectPath): Added. Manages the registration of object
5412 paths so we can cleanly disconnect them at dispose/finalize time.
5413 (UnregisterObjectPath): Ditto.
5414 (set_RawConnection): Unregister all of the object paths when
5415 changing the underlying DBusConnection. Add them back onto the
5416 new connection, if any.
5418 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5419 more unmanaged resources anymore, so it's not necessary. Move all
5420 the DBusObjectPathVTable stuff out of here.
5421 (Handler): Save references to our delegates so that they don't get
5422 finalized. Call Connection.RegisterObjectPath() instead of
5423 dbus_connection_register_object_path() directly.
5424 (Message_Called): Dispose the message after we're finished with
5427 * mono/Message.cs (Message): Implement IDisposable.
5428 (Dispose): Dispose the Arguments, and set the RawMessage to
5430 (SendWithReplyAndBlock): We own the ref to the reply that comes
5431 back from dbus_connection_send_with_reply_and_block() so add a
5432 comment about that and unref it after we've constructed a managed
5433 MethodReturn class around it. Fixes a big, big leak.
5435 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5437 (BuildSignalHandler): After we've sent the Signal message, dispose
5439 (BuildMethod): Dispose of the method call and reply messages after
5440 we've sent the message and extracted the data we want from the
5443 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5445 (Service_FilterCalled): Dispose of the message after we're
5448 2005-03-08 Joe Shaw <joeshaw@novell.com>
5450 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5451 After we attach our pending call to the connection, unref
5454 * mono/Connection.cs (set_RawConnection): Disconnect our
5455 filter and match callbacks from the old connection and
5456 reconnect them to the new connection, if any.
5458 * mono/DBusType/Array.cs: "Code" is a static member, so
5459 don't use "this" to refer to it. Fix for stricter checking
5462 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5463 object path that we pass into unmanaged code.
5465 * mono/DBusType/String.cs (Append): Don't leak the string
5466 that we pass into unmanged code.
5468 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
5469 * NEWS: Update for 0.31
5471 * configure.in: Release 0.31
5472 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5474 * qt/Makefile.am: fixed build
5476 * dbus/Makefile.am: soname bump for libdbus
5478 * glib/Makefile.am: soname bump for libdbus-glib
5480 2005-03-05 Havoc Pennington <hp@redhat.com>
5482 * dbus/dbus-sysdeps.c:
5483 (pseudorandom_generate_random_bytes_buffer): fix to have no return
5485 (_dbus_generate_random_bytes_buffer): fix return value
5487 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5488 checks actually work, from Tom Parker <fdo@tevp.net>
5490 2005-03-01 Colin Walters <walters@verbum.org>
5492 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5493 functions copied from dbus-glib-tool.c.
5494 (main): Convert lots of error code to use them.
5495 Also add some testing for introspection bits.
5497 2005-03-01 Colin Walters <walters@verbum.org>
5499 * doc/TODO: Remove introspection signature TODO.
5501 2005-02-27 Colin Walters <walters@verbum.org>
5503 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5504 Change return value to const char * instead of int so we can do
5506 (struct PropertyInfo, struct ArgInfo): Store char *.
5507 (property_info_new, arg_info_new): Update parameters, strdup.
5508 (property_info_unref, arg_info_unref): Free.
5510 * glib/dbus-gidl.h: Update prototypes.
5512 * glib/dbus-gparser.c (basic_type_from_string): Delete.
5513 (validate_signature): New function, just validates signature and
5515 (parse_property, parse_arg): Invoke validate_signature. Store
5516 signature instead of just type code.
5518 * glib/dbus-gvalue.c (base_type_from_signature): New utility
5519 function to return a primary type for a signature, dropping
5520 information about types in container types.
5521 (dbus_gvalue_genmarshal_name_from_type)
5522 (dbus_gvalue_binding_type_from_type)
5523 (dbus_gvalue_ctype_from_type): Update to take full signature
5524 instead of type code.
5525 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5527 * glib/dbus-gvalue.h: Update prototypes for above.
5529 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5530 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5531 (introspect_properties, introspect_signals, write_interface):
5532 Update to handle signatures, and remove usage of
5533 _dbus_gutils_type_to_string.
5534 (handle_introspect): Print out type codes instead of e.g. "string"
5535 in hardcoded introspection XML; also use x_AS_STRING constants
5536 instead of hardcoding in string.
5538 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5539 to string. Remove usage of _dbus_gutils_type_to_string.
5541 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5543 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5546 * glib/dbus-binding-tool-glib.c (compute_marshaller)
5547 (compute_marshaller_name, generate_glue): Handle signature change
5549 (write_formal_parameters, write_args_for_direction): Ditto, and
5552 * tools/dbus-tree-view.c (type_to_string): Delete.
5553 (info_set_func_text): Update to print full signatures.
5555 * test/glib/test-service-glib.xml: Change types to new
5556 introspection format.
5558 2005-02-26 Havoc Pennington <hp@redhat.com>
5560 * doc/TODO: remove the "guid" item
5562 * test/glib/test-profile.c (no_bus_thread_func): use open_private
5563 (with_bus_thread_func): use open_private
5565 * dbus/dbus-connection.c (dbus_connection_open_private): new
5566 function that works like the old dbus_connection_open()
5567 (dbus_connection_open): now returns an existing connection if
5570 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5571 through the GUID to the transport
5573 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5574 GUID in hex-encoded form.
5576 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5577 pass GUID argument in to the transport
5579 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5582 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5584 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5586 2005-02-25 Havoc Pennington <hp@redhat.com>
5588 * doc/dbus-specification.xml: document the GUID thing
5590 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5591 globally unique ID for the server, and put a "guid=hexencoded"
5592 field in the address
5594 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5596 * dbus/dbus-message.c: ditto
5598 * dbus/dbus-dataslot.c: ditto
5600 * dbus/dbus-list.c: ditto
5602 * dbus/dbus-internals.h: wait, just include
5603 dbus-threads-internal.h here
5605 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5608 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5610 2005-02-24 Colin Walters <walters@verbum.org>
5612 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5614 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
5616 * glib/Makefile.am: added dbus-gobject.h to sources list
5617 so distcheck doesn't fail
5619 2005-02-24 Havoc Pennington <hp@redhat.com>
5621 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5622 you must disconnect before unref, since locking and other things
5623 are screwed up otherwise. Fix assorted other locking stuff.
5625 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5628 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5629 into a private header and don't export from the library
5631 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5633 2005-02-24 Colin Walters <walters@verbum.org>
5635 * dbus/dbus-signature.c: New file; implements various functions
5636 related to type signatures. Includes an interator for parsing,
5637 validation functions.
5638 (dbus_type_is_basic): Moved here from
5639 dbus-marshal-basic.c:_dbus_type_is_basic.
5640 (dbus_type_is_container): Moved here from
5641 dbus-marshal-basic.c:_dbus_type_is_container.
5643 All callers of _dbus_type_is_container and _dbus_type_is_basic
5644 updated, and include dbus-signature.h.
5646 * dbus/dbus-signature.h: New file; prototypes for the above.
5648 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5651 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5652 function factored out of _dbus_first_type_in_signature.
5653 (_dbus_first_type_in_signature_c_str): New function; returns first
5654 type code for a type signature character.
5656 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5657 handle function moves.
5659 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5661 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5662 function; skips to next complete type in type signature.
5663 Implemented using previous skip_one_complete_type. Now
5664 skip_one_complete_type just delegates to
5665 _dbus_type_signature_next.
5667 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5669 (_dbus_type_is_container): Ditto.
5671 * doc/dbus-specification.xml: Update introspection sample to
5672 use real type signatures.
5674 * dbus/dbus-test.h: Prototype signature test.
5676 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5679 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5681 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
5683 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5684 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5686 2005-02-21 Colin Walters <walters@verbum.org>
5688 * dbus/dbus-test-main.c (main): Take optional specific test
5691 * dbus/dbus-test.c (run_test): New function, runs a test function
5692 with no data directory.
5693 (run_data_test): Like above, but takes data directory.
5694 (dbus_internal_do_not_use_run_tests): Take
5695 specific test argument. Replace lots of cut n' paste code
5696 with run_test and run_data_test.
5698 * dbus/dbus-test.h: Update prototype for
5699 dbus_internal_do_not_use_run_tests.
5701 2005-02-20 Havoc Pennington <hp@redhat.com>
5703 Fix bugs reported by Daniel P. Berrange
5705 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5706 (protected_change_watch): new function
5707 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5708 (_dbus_server_add_watch): change to work like the
5709 dbus-connection.c equivalents; like those, probably kind of
5710 busted, but should at least mostly work for now
5711 (dbus_server_disconnect): drop the lock if we were already
5712 disconnected, patch from Daniel P. Berrange
5714 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
5715 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5718 * doc/TODO: todo about unscrewing this mess
5720 2005-02-19 Colin Walters <walters@verbum.org>
5722 * glib/dbus-binding-tool-glib.c
5723 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5725 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5726 as errno.h and sys/stat.h.
5727 (lose): New function, prints error with
5729 (lose_gerror): Similar, but takes GError for message.
5730 (main): Add --output argument to specify output file to write to,
5731 instead of always printing to stdout. In this mode, determine
5732 timestamps on source files to see whether any are newer than the
5733 target file. If not, exit. Also convert a number of error
5734 messages to use lose (since it's shorter), and switch to using
5735 g_io_channel_shutdown.
5737 2005-02-19 Havoc Pennington <hp@redhat.com>
5739 * glib/dbus-gobject.c
5740 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5742 * glib/dbus-glib.c: fix doxygen warnings
5744 * glib/dbus-gparser.c (parse_annotation): error if an annotation
5745 is found on an <arg>
5747 2005-02-17 Colin Walters <walters@verbum.org>
5749 * glib/dbus-gobject.h: Don't export
5750 _dbus_glib_marshal_dbus_message_to_gvalue_array.
5752 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5753 (invoke_object_method): Handle it.
5755 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5758 2005-02-17 Colin Walters <walters@verbum.org>
5760 * bus/.cvsignore, doc/.cvsignore
5761 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5764 2005-02-17 Colin Walters <walters@verbum.org>
5766 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5767 Rename to DBUS_SERVICE_DBUS.
5768 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5769 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5770 Change the value from "org.freedesktop.Local"
5771 to "org.freedesktop.DBus.Local".
5772 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5773 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5774 DBUS_INTERFACE_INTROSPECTABLE.
5775 Change the value from "org.freedesktop.Introspectable"
5776 to "org.freedesktop.DBus.Introspectable".
5777 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5778 DBUS_INTERFACE_PROPERTIES.
5779 Change the value from "org.freedesktop.Properties"
5780 to "org.freedesktop.DBus.Properties".
5781 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5782 DBUS_INTERFACE_PEER.
5783 Change the value from "org.freedesktop.Peer"
5784 to "org.freedesktop.DBus.Peer".
5785 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
5786 DBUS_INTERFACE_LOCAL.
5787 Change the value from "org.freedesktop.Local"
5788 to "org.freedesktop.DBus.Local".
5790 All other users of those constants have been changed.
5792 * bus/driver.c (bus_driver_handle_introspect): Use constants.
5794 * glib/dbus-gobject.c (handle_introspect): Use constants.
5796 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5798 2005-02-17 Colin Walters <walters@verbum.org>
5800 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5801 (parse_node, parse_interface, parse_method, parse_signal)
5802 (parse_property, parse_annotation): Lose if we're currently in an
5804 (parse_annotation): New function.
5805 (parser_start_element, parser_end_element): Handle annotation.
5806 (parse_method, parse_interface): Remove support for c_name attribute,
5807 switch to annotations.
5809 * glib/dbus-gidl.h (interface_info_get_binding_names)
5810 (method_info_get_binding_names)
5811 (interface_info_get_binding_name, method_info_get_binding_name)
5812 (interface_info_set_binding_name, method_info_set_binding_name):
5814 (interface_info_get_annotations, method_info_get_annotations)
5815 (interface_info_get_annotation, method_info_get_annotation)
5816 (interface_info_add_annotation, method_info_add_annotation):
5819 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5821 (struct MethodInfo): Ditto.
5822 Straightfoward conversion of binding methods into annotation methods
5825 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5827 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5829 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5830 Use new annotation API.
5832 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
5835 * doc/dbus-specification.xml: Discuss introspection annotations,
5836 include list of well-known annotations.
5838 * test/glib/test-service-glib.xml: Make validate against new DTD.
5840 2005-02-17 Colin Walters <walters@verbum.org>
5842 This patch is based on initial work from
5843 Paul Kuliniewicz <kuliniew@purdue.edu>.
5845 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5846 initialization of GValue from dbus type to here.
5847 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5848 for the "glib-genmarshal" program from a DBus type.
5849 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5850 into the C name for it we use in the glib bindings.
5851 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5852 glib C type (not GValue).
5853 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5855 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5856 from dbus-gobject.c.
5858 * glib/dbus-gutils.h: Prototype it.
5860 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5861 (marshal_dbus_message_to_g_marshaller): Use new shared function
5862 dbus_glib_marshal_dbus_message_to_gvalue_array.
5864 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5865 Will be changed once we have annotations.
5867 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5868 GStaticRWLock. Callers updated.
5869 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
5870 (string_table_next): New function for iterating over zero-terminated
5872 (string_table_lookup): New function; retrieves specific entry in
5874 (get_method_data): New function; look up method data in object data chunk.
5875 (object_error_domain_prefix_from_object_info)
5876 (object_error_code_from_object_info): New functions, but not implemented yet.
5877 (method_interface_from_object_info): New function; retrieve interface name.
5878 (method_name_from_object_info): New function; retrieve method name.
5879 (method_arg_info_from_object_info): New function; retrieve argument data.
5880 (arg_iterate): New function; iterates over serialized argument data.
5881 (method_dir_signature_from_object_info): New function; returns a
5882 GString holding type signature for arguments for just one
5883 direction (input or output).
5884 (method_input_signature_from_object_info)
5885 (method_output_signature_from_object_info): New functions.
5886 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5887 converts dbus message arguments into a GValue array. Used for both
5888 signal handling and method invocation.
5889 (struct DBusGlibWriteIterfaceData): New utility structure.
5890 (write_interface): New function; generate introspection XML for
5892 (introspect_interfaces): New function; gathers all interface->methods,
5893 generates introspection XML for them.
5894 (handle_introspect): Invoke introspect_interfaces.
5895 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5896 (lookup_object_and_method): New function; examines an incoming message
5897 and attempts to match it up (via interface, method name, and argument
5898 signature) with a known object and method.
5899 (gerror_domaincode_to_dbus_error_name): New function; converts a
5900 GError domain and code into a DBus error name. Needs GError data
5901 added to object introspection to work well.
5902 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5904 (invoke_object_method): New function to invoke an object method
5905 looked up via lookup_object_and_method. Parses the incoming
5906 message, turns it into a GValue array, then invokes the marshaller
5907 specified in the DBusGMethodInfo. Creates a new message with
5908 either return values or error message as appropriate.
5909 (gobject_message_function): Invoke lookup_object_and_method and
5910 invoke_object_method.
5912 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5913 (enum DBusBindingOutputMode): New enum for binding output modes.
5914 (pretty_print): Print binding names.
5915 (dbus_binding_tool_error_quark): GError bits.
5916 (version): Fix typo.
5917 (main): Create GIOChannel for output. Parse new --mode argument,
5918 possible values are "pretty-print", "glib-server", "glib-client".
5919 Use mode to invoke appropriate function.
5921 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5923 * glib/dbus-glib-tool.h: New header, just includes GError bits
5926 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5927 maps binding style to name.
5928 (struct MethodInfo): Ditto.
5929 (get_hash_keys, get_hash_key): Utility function, returns keys for
5931 (interface_info_new, method_info_new): Initialize bindings.
5932 (interface_info_unref, method_info_unref): Destroy bindings.
5933 (method_info_get_binding_names, method_info_get_binding_name)
5934 (interface_info_get_binding_names, interface_info_get_binding_name):
5935 Functions for retrieving binding names.
5936 (method_info_set_binding_name, interface_info_set_binding_name):
5937 Functions for setting binding names.
5939 * glib/dbus-binding-tool-glib.h: New file, has prototypes
5940 for glib binding generation.
5942 * glib/dbus-binding-tool-glib.c: New file, implements server-side
5943 and client-side glib glue generation.
5945 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5946 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5949 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5950 of using GClosureMarshal directly.
5951 (struct DBusGObjectInfo): Add n_infos member.
5953 * test/glib/test-service-glib.xml: New file; contains introspection data
5954 for MyTestObject used in test-service-glib.c.
5956 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5957 (my_object_do_nothing, my_object_increment, my_object_throw_error)
5958 (my_object_uppercase, my_object_many_args): New test methods.
5959 (main): Use dbus_g_object_class_install_info to include generated object
5962 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5963 as well as client-side bindings.
5965 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5966 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5967 using both the dbus_gproxy stuff directly as well as the generated bindings.
5969 2005-02-15 Havoc Pennington <hp@redhat.com>
5971 * dbus/dbus-connection.c (dbus_connection_dispatch): always
5972 complete a pending call, don't run filters first.
5974 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5975 dbus_pending_call_steal_reply
5977 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5978 _dbus_connection_block_pending_call
5979 (dbus_pending_call_get_reply): change to steal_reply and return a
5982 * dbus/dbus-connection.c
5983 (dbus_connection_send_with_reply_and_block): port to work in terms
5985 (_dbus_connection_block_pending_call): replace block_for_reply
5988 2005-02-14 Havoc Pennington <hp@redhat.com>
5990 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5991 properly handle looking up group information by name; fix
5994 2005-02-13 Havoc Pennington <hp@redhat.com>
5996 * dbus/dbus-connection.c (dbus_connection_return_message)
5997 (dbus_connection_borrow_message): hold dispatch lock while message
5999 (_dbus_connection_block_for_reply): hold dispatch lock while we
6000 block for the reply, so nobody steals our reply
6001 (dbus_connection_pop_message): hold the dispatch lock while we
6004 2005-02-13 Havoc Pennington <hp@redhat.com>
6006 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6007 (_dbus_connection_release_dispatch)
6008 (_dbus_connection_acquire_io_path)
6009 (_dbus_connection_release_io_path): make the mutex and condvar
6010 control access to the "acquired" flag. Drop the connection lock
6011 while waiting on the condvar. Hopefully these are baby steps in
6012 roughly the right direction.
6014 2005-02-13 Havoc Pennington <hp@redhat.com>
6016 * dbus/dbus-connection.c: use separate mutexes for the condition
6017 variables; this is some kind of baseline for sanity, but the
6018 condition variables still aren't used correctly afaict
6020 2005-02-13 Havoc Pennington <hp@redhat.com>
6022 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6025 * dbus/dbus-connection.c
6026 (_dbus_connection_detach_pending_call_unlocked): add this
6028 Initial semi-correct pass through to fix thread locking; there are
6029 still some issues with the condition variable paths I'm pretty
6032 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6035 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6036 rename to add _unlocked
6037 (struct DBusConnection): move "dispatch_acquired" and
6038 "io_path_acquired" to use only one bit each.
6039 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6040 (dbus_connection_set_watch_functions): hacky fix to reentrancy
6041 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
6042 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
6043 (_dbus_connection_remove_timeout)
6044 (_dbus_connection_toggle_timeout): drop lock when calling out to
6045 user functions; done in a hacky/bad way.
6046 (_dbus_connection_send_and_unlock): add a missing unlock
6047 (_dbus_connection_block_for_reply): add a missing unlock
6049 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6050 drop lock in a hacky probably unsafe way to call out to user
6053 2005-02-12 Havoc Pennington <hp@redhat.com>
6055 * tools/dbus-tree-view.c (info_set_func_text): display more
6058 * bus/driver.c (bus_driver_handle_list_services): list the bus
6061 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6063 * glib/dbus-gidl.c (signal_info_get_n_args): new function
6064 (method_info_get_n_args): new function
6066 2005-02-12 Havoc Pennington <hp@redhat.com>
6068 * bus/driver.c (bus_driver_handle_introspect): add introspection
6071 2005-02-12 Havoc Pennington <hp@redhat.com>
6073 * bus/driver.c: put the signature of each bus driver method in the
6074 table of handlers and check it on incoming calls; this isn't
6075 really useful, but going to add introspect support in a minute.
6077 2005-02-11 Joe Shaw <joeshaw@novell.com>
6079 * mono/Connection.cs: The unpredictability of finalizers in mono
6080 prevents us from deterministically disconnecting the filters from
6081 the Service class's finalizer, so move tracking of filters and
6082 matches here. Add API for that.
6084 * mono/Service.cs: Remove the code, add code which calls the
6085 methods now on the Connection class.
6087 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
6089 * python/dbus.py (class Sender): added to support dbus signals better
6090 (Bus::add_signal_receiver): added expand_args parameter which defaults
6091 to True. When expand args is True the signal handler will pass the
6092 message arguments as parameters to the signal handler. If False
6093 revert to previous behavior where the signal handler must get the
6094 argument list from the message. This is to help port applications
6095 like HAL that have a tendancy to send variable length argument lists.
6096 self._match_rule_to_receivers is now a dict of dicts.
6097 (Bus::remove_signal_receiver): pop handler off the dict intead of
6098 removing it from a list
6099 (Bus::_signal_func): change signal handlers so that interface,
6100 signal_name, service, path and message are packed into a Sender
6101 object and that is passed to the handler. If expand_args is True
6102 extract the args list from the message and append it to the parameter
6105 * python/dbus_bindings.pyx.in (class Signature): added to support
6107 (MessageIter::__init__): changed iteration limit to match D-BUS
6108 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
6109 STRUCT and VARIENT type support
6110 (MessageIter::python_value_to_dbus_sig): made recursive to support
6112 (MessageIter::append*): added Signature, dict, tuple
6115 * python/examples/example-client.py: added examples of getting tuples
6118 * python/examples/example-service.py: added examples of sending tuples
6121 * python/examples/example-signal-recipient.py: Fixed to handle new
6122 signal callback format
6124 2005-02-10 Havoc Pennington <hp@redhat.com>
6126 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6127 (call dbus_g_proxy_add_signal)
6129 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6131 (_dbus_server_new_for_domain_socket): escape the path
6133 * dbus/dbus-address.c (dbus_address_escape_value): new
6134 (dbus_address_unescape_value): new
6135 (dbus_parse_address): unescape values
6137 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6139 * doc/dbus-specification.xml: explain how to escape values in
6142 2005-02-10 Havoc Pennington <hp@redhat.com>
6144 * dbus/dbus-message-factory.c (generate_special): modify test to
6145 avoid using a non-basic dict key
6147 * dbus/dbus-marshal-validate-util.c: add test for the below
6149 * doc/dbus-specification.xml: require that dict keys are a basic
6152 * dbus/dbus-marshal-validate.c
6153 (_dbus_validate_signature_with_reason): require that dict key is a
6156 2005-02-10 Havoc Pennington <hp@redhat.com>
6158 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6159 change to be _and_unlock instead of _unlocked
6161 * dbus/dbus-connection.c
6162 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6163 have no_update so we can find this bug quickly in future
6165 2005-02-10 Havoc Pennington <hp@redhat.com>
6167 * dbus/dbus-message-util.c (verify_test_message): tests for string
6170 * dbus/dbus-message.c (dbus_message_append_args_valist): add
6171 support for arrays of string/signature/path
6173 2005-02-10 Joe Shaw <joeshaw@novell.com>
6175 * dbus/dbus-connection.c
6176 (_dbus_connection_queue_received_message_link,
6177 _dbus_connection_message_sent): Add the path to
6179 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
6180 _dbus_connection_send_preallocated_unlocked(), updated the
6181 dispatch status, and unlocks. Fixes a bug where certain
6182 situations (like a broken pipe) could cause a Disconnect message
6183 to not be sent, tricking the bus into thinking a service was still
6184 there when the process had quit.
6185 (_dbus_connection_send_preallocated): Call
6186 _dbus_connection_send_preallocated_and_unlock().
6187 (_dbus_connection_send_and_unlock): Added. Calls
6188 _dbus_connection_send_preallocated_and_unlock().
6189 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6190 (dbus_connection_send_with_reply): Update the dispatch status and
6193 * mono/Service.cs (~Service): Added. Removes the filter so that
6194 we don't get unmanaged code calling back into a GCed delegate.
6195 (RemoveFilter); Added.
6197 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
6199 * dbus/dbus-message.c (dbus_message_iter_open_container):
6200 - Removed check for iterator type being an array because
6201 get_arg_type does not work with writer iterators
6202 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6204 2005-02-07 Havoc Pennington <hp@redhat.com>
6206 * doc/dbus-specification.xml: some more language cleanups; add
6207 stuff about how to deal with invalid protocol and extension
6208 points; add _ to allowed chars in auth commands; add EXTENSION_
6211 2005-02-06 Havoc Pennington <hp@redhat.com>
6213 * s/expected/required/ in a couple places for clarity
6215 2005-02-07 Colin Walters <walters@verbum.org>
6217 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6218 sender or proposed_recipient.
6220 2005-02-06 Havoc Pennington <hp@redhat.com>
6222 * dbus/dbus-message-factory.c (generate_special): more tests
6224 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6225 array length that exceeds the maximum
6227 2005-02-05 Havoc Pennington <hp@redhat.com>
6229 * dbus/dbus-message-factory.c (generate_special): more test cases,
6232 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6233 reason why a signature was invalid
6235 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6236 skip the length of the string before we look at it in validation
6238 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6241 * dbus/dbus-message.c (_dbus_message_loader_new): default
6242 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6244 2005-02-05 Havoc Pennington <hp@redhat.com>
6246 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6247 if the signature of a variant was empty
6248 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6249 struct with no element type)
6251 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6252 mangled messages to break things
6254 2005-02-04 Havoc Pennington <hp@redhat.com>
6256 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6257 g_quark_try_string() so it actually can return 0
6258 (dbus_g_proxy_connect_signal): ditto
6260 2005-02-04 Havoc Pennington <hp@redhat.com>
6262 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6264 (tristring_from_message): assert cleanly on null path/interface
6265 (should not be possible though I decided later)
6266 (dbus_g_proxy_dispose): move proxy manager unregistration here
6267 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6268 g_return_if_fail() checks
6270 2005-02-04 Havoc Pennington <hp@redhat.com>
6272 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6274 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6275 (with some minor changes)
6277 * doc/dbus-specification.xml: add deprecated attribute to
6278 introspection format
6280 2005-01-31 Havoc Pennington <hp@redhat.com>
6282 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6283 think it's sort of right
6285 2005-01-30 Havoc Pennington <hp@redhat.com>
6287 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6289 2005-01-30 Havoc Pennington <hp@redhat.com>
6291 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6293 * autogen.sh: change to autotools 1.9
6295 * glib/dbus-gproxy.c: completely change how signals work
6296 (dbus_g_proxy_add_signal): new function to specify signature of a
6298 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6299 and g_warning if the incoming message has the wrong signature.
6301 2005-01-30 Havoc Pennington <hp@redhat.com>
6303 * tools/dbus-names-model.c (have_names_notify): fix this
6305 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6306 up the string array handling a bit
6308 2005-01-30 Havoc Pennington <hp@redhat.com>
6310 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6311 (dbus_g_pending_call_cancel): new function
6313 * dbus/dbus-glib.h: move GType decls for connection/message here;
6314 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6315 here, just kind of rationalizing how we handle all that
6317 * tools/dbus-names-model.c: new file for a tree model listing the
6320 * tools/dbus-tree-view.c (model_new): use proper typing on the
6323 2005-01-30 Havoc Pennington <hp@redhat.com>
6325 * glib/dbus-gmain.c: add a custom GSource back that just checks
6326 whether the message queue has anything in it; otherwise, there are
6327 cases where we won't see messages in the queue since there was no
6328 IO visible to the glib main loop
6330 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6331 increase default message timeout to 25 seconds
6333 2005-01-30 Havoc Pennington <hp@redhat.com>
6335 * test/glib/test-profile.c (no_bus_stop_server): remove the
6336 warning about the g_warning that I just fixed
6338 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6339 custom source, seems to be a lot easier to understand and work
6342 2005-01-30 Havoc Pennington <hp@redhat.com>
6344 I think this main loop thing is conceptually broken, but here are
6345 some band aids. I'll maybe rewrite it in a minute.
6347 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6348 custom GSource, so don't pass it in; confusing
6349 (gsource_server_finalize, gsource_connection_finalize): add
6350 finalize handlers that remove all the watches.
6352 2005-01-30 Havoc Pennington <hp@redhat.com>
6354 * glib/dbus-gobject.c (introspect_properties): fix the XML
6357 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6358 which effectively detects the use of freed messages
6360 * glib/dbus-gobject.c (handle_introspect): modify and return the
6361 reply message instead of the incoming message
6363 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6364 gee, maybe it should SEND THE XML instead of just making a string
6365 and freeing it again ;-)
6367 * tools/dbus-print-message.c (print_message): improve printing of
6370 * configure.in: add debug-glib.service to the output
6372 2005-01-30 Havoc Pennington <hp@redhat.com>
6374 dbus-viewer introspected and displayed the bus driver
6376 * dbus/dbus-object-tree.c
6377 (object_tree_test_iteration): add tests for a handler registered on "/"
6379 * dbus/dbus-object-tree.c
6380 (_dbus_decompose_path): fix to handle path "/" properly
6381 (run_decompose_tests): add tests for path decomposition
6383 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6386 * glib/dbus-gobject.c (handle_introspect): fix quotes
6388 * test/glib/run-test.sh: support launching the bus, then running
6391 * test/glib/test-service-glib.c (main): put in a trivial gobject
6392 subclass and register it on the connection
6394 * bus/driver.c (bus_driver_handle_introspect): implement
6395 introspection of the bus driver service
6397 * dbus/dbus-protocol.h: add #defines for the XML namespace,
6398 identifiers, doctype decl
6400 * bus/driver.c (bus_driver_handle_get_service_owner): handle
6401 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
6402 returning the service unchanged.
6403 (bus_driver_handle_message): remove old check for reply_serial in
6404 method calls, now the message type deals with that
6405 (bus_driver_handle_message): handle NULL interface
6407 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6409 * glib/dbus-gloader-expat.c (description_load_from_string): allow
6412 * tools/dbus-viewer.c: add support for introspecting a service on
6415 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6416 (dbus_g_pending_call_unref): add
6418 2005-01-29 Havoc Pennington <hp@redhat.com>
6420 * tools/dbus-tree-view.c: add support for displaying properties.
6421 (run dbus-viewer with an introspect xml file as arg, then resize
6422 the window so the tree elements show up, not sure what that is)
6424 * glib/dbus-gobject.c (handle_introspect): return
6425 org.freedesktop.Properties and org.freedesktop.Introspectable
6426 interfaces when we are introspected.
6428 * doc/dbus-specification.xml: allow empty interface name when
6431 2005-01-29 Havoc Pennington <hp@redhat.com>
6433 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6434 though it uses glib, it could be extended for any binding in
6437 * glib/dbus-gobject.c (gobject_message_function): change to the
6438 new way properties work
6440 * dbus/dbus-protocol.h: add the new interfaces
6442 * doc/dbus-specification.xml: document the introspection format,
6443 Introspectable interface, and add an org.freedesktop.Properties
6446 * glib/dbus-gparser.c: add support for a <property> element
6448 * glib/dbus-gidl.c: add PropertyInfo
6450 * glib/dbus-gobject.c (handle_introspect): put the outermost
6451 <node> outside the signal and property descriptions.
6452 (introspect_properties): export properties as <property> rather
6453 than as method calls
6455 2005-01-28 Havoc Pennington <hp@redhat.com>
6457 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6458 related to authentication protocol
6460 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
6462 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6463 - BUS_ACTIVATION -> BUS_STARTER
6464 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6465 - class MessageIter (__init__): Added recursion checking
6466 so we throw a nice error instead of just disconnecting from the
6468 (get): Added arg_type parameter for recursion.
6469 Removed the nil type
6470 Added signiture type placeholder (not implemented)
6471 Added struct type placeholder (not implemented)
6472 Added varient type placeholder (not implemented)
6473 Commented out dict type for now
6474 (get_element_type): renamed from get_array_type
6475 (get_*): changed to use the dbus_message_iter_get_basic API
6476 (get_*_array): removed in favor of recursive get_array method
6477 (get_array): new recursive method which calls get to marshal
6478 the elements of the array
6479 (value_to_dbus_sig): New method returns the corrasponding
6480 dbus signiture to a python value
6481 (append): Comment out dict handling for now
6482 Handle lists with the new recursive API
6483 Comment out None handling for now
6484 (append_nil): removed
6485 (append_*): changed to use dbus_message_iter_append_basic API
6486 (append_*_array): removed in favor of recursive append_array
6488 (__str__): Make it easier to print out recursive iterators
6490 - class Message (__str__): moved type inspection to the
6491 MessageIter class' __str__ method
6492 (get_iter): Added an append parameter wich defaults to False
6493 If True use the new API's to create an append iterator
6495 * python/dbus.py: Update to use new bindings API
6496 - TYPE_ACTIVATION -> TYPE_STARTER
6497 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6498 - class ActivationBus -> class StarterBus
6499 - class RemoteObject (__call__): get an append iterator
6500 - (_dispatch_dbus_method_call): get an append iterator
6501 - class Object (emit_signal): get an append iterator
6503 * python/examples/: Fixed up the examples to work with the new API
6505 2005-01-28 Joe Shaw <joeshaw@novell.com>
6507 * configure.in: Bump version up to 0.30.
6509 * HACKING: Add a release item to bump the version number up after
6512 2005-01-28 Havoc Pennington <hp@redhat.com>
6514 * doc/dbus-specification.xml: update to describe 16-bit types and
6517 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6520 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6523 * dbus/dbus-marshal-recursive.c: implement
6525 2005-01-27 Havoc Pennington <hp@redhat.com>
6527 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6529 * configure.in: find the right type for 16 and 32 bit ints as well
6532 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6533 the 16-bit types so people don't have to stuff them in 32-bit or
6536 2005-01-27 Havoc Pennington <hp@redhat.com>
6538 * dbus/dbus-message.c: byteswap the message if you init an
6539 iterator to read/write from it
6541 * dbus/dbus-marshal-byteswap.c: new file implementing
6542 _dbus_marshal_byteswap()
6544 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6546 2005-01-26 Havoc Pennington <hp@redhat.com>
6548 * dbus/dbus-marshal-validate-util.c: break this out (and fix
6549 build, apparently - nobody noticed?)
6551 2005-01-26 Havoc Pennington <hp@redhat.com>
6553 * dbus/dbus-marshal-recursive.h: remove todo comment
6555 2005-01-25 Joe Shaw <joeshaw@novell.com>
6557 * Land the mono binding changes to conform to the new APIs.
6559 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6560 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6562 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
6563 type code as a string.
6564 (InitAppending): Rename dbus_message_append_iter_init() to
6565 dbus_message_iter_init_append().
6567 * mono/BusDriver.cs: Rename ServiceEventHandler to
6568 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
6569 Rename ServiceOwnerChanged to NameOwnerChanged.
6571 * mono/Connection.cs: Rename BaseService to UniqueName, and the
6574 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
6576 * mono/Service.cs: Rename Exists to HasOwner, internally rename
6577 dbus_bus_acquire_service() to dbus_bus_request_name().
6579 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6580 of Type.UnderlyingSystemType to get the correct element type for
6582 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6583 dbus_message_get_{element|arg}_type() instead of
6584 dbus_message_iter_init_array_iterator().
6585 (Append): Replace dbus_message_iter_append_array() with
6586 dbus_message_iter_open_container() and
6587 dbus_message_iter_close_container().
6589 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
6590 types have been removed.
6592 * mono/DBusType/*.cs: Replace calls of
6593 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6594 but specify the type in the DllImport extern declaration. Ditto
6595 for dbus_message_iter_append_[type]() ->
6596 dbus_message_iter_append_basic().
6598 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6599 NameOwnerChangedHandler.
6601 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
6603 * python/dbus_bindings.pyx.in: Rename of methods and bindings
6604 - get_base_service -> get_unique_name
6605 - bus_get_base_service -> bus_get_unique_name
6606 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6607 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
6608 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6609 - bus_activate_service -> bus_start_service_by_name
6610 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6611 - bus_acquire_service -> bus_request_name
6612 - dbus_bus_acquire_service -> dbus_bus_request_name
6613 - bus_service_exists -> bus_name_has_owner
6614 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6616 * python/dbus.py: Rename of methods
6617 - activate_service -> start_service_by_name
6618 - bus_acquire_service -> bus_request_name
6619 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
6620 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6623 2005-01-24 Joe Shaw <joeshaw@novell.com>
6625 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6626 signature for the method that can't be found.
6628 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6629 the message has any arguments, we need to call
6630 _dbus_type_reader_get_current_type(), not
6631 _dbus_type_reader_has_next().
6633 2005-01-24 Havoc Pennington <hp@redhat.com>
6635 * dbus/dbus-message-factory.c: more testing of message validation
6637 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6640 2005-01-23 Havoc Pennington <hp@redhat.com>
6642 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
6643 get this all working, not many tests in the framework yet though
6645 2005-01-22 Havoc Pennington <hp@redhat.com>
6647 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6648 tutorial, based on work from David Wheeler.
6650 2005-01-21 Havoc Pennington <hp@redhat.com>
6652 * dbus/dbus-bus.c: add more return_if_fail checks
6654 * dbus/dbus-message.c (load_message): have the "no validation"
6655 mode (have to edit the code to toggle the mode for now though)
6657 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6658 skips all validation; I want to use this at least for benchmark
6659 baseline, I'm not sure if it should be a publicly-available switch.
6661 2005-01-21 Havoc Pennington <hp@redhat.com>
6663 * glib/dbus-gmain.c: don't put the GLib bindings in the same
6664 toplevel doxygen group as the low-level API stuff
6666 * dbus/dbus.h: note that libdbus is the low-level API
6668 2005-01-20 Havoc Pennington <hp@redhat.com>
6670 * update-dbus-docs.sh: script to update docs on the web site, only
6671 works for me though. neener.
6673 2005-01-20 Havoc Pennington <hp@redhat.com>
6675 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6676 code can reveal bugs in it
6678 2005-01-20 Havoc Pennington <hp@redhat.com>
6680 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6681 select() version, patches from Tor Lillqvist
6683 2005-01-20 Havoc Pennington <hp@redhat.com>
6685 * doc/dbus-tutorial.xml: replace > with >
6687 * bus/services.c (bus_registry_acquire_service): validate the name
6688 and return a better error if it's no good.
6690 * doc/dbus-specification.xml: note NO_AUTO_START change
6692 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6693 from AUTO_START, we're toggling the default
6695 * bus/dispatch.c: adapt the tests to change of auto-start default
6697 2005-01-18 Havoc Pennington <hp@redhat.com>
6699 * rename dbus-daemon-1 to dbus-daemon throughout
6701 2005-01-18 Havoc Pennington <hp@redhat.com>
6703 * Throughout, grand renaming to strip out the use of "service",
6704 just say "name" instead (or "bus name" when ambiguous). Did not
6705 change the internal code of the message bus itself, only the
6706 programmer-facing API and messages.
6708 * doc/dbus-specification.xml: further update the message bus section
6710 * bus/config-parser.c (all_are_equiv): fix bug using freed string
6713 2005-01-17 Havoc Pennington <hp@redhat.com>
6715 * dbus/dbus-types.h: remove 16-bit types since we don't use them
6718 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6719 "invalid name character" not only non-ASCII
6721 * doc/dbus-specification.xml: further update spec, message bus
6722 parts are still out-of-date but the marshaling etc. stuff is now
6725 2005-01-17 Havoc Pennington <hp@redhat.com>
6727 * doc/dbus-specification.xml: partially update spec
6729 2005-01-17 Havoc Pennington <hp@redhat.com>
6731 * Throughout, align variant bodies according to the contained
6732 type, rather than always to 8. Should save a fair bit of space in
6735 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6736 fix handling of case where p == end
6738 * doc/TODO: remove the dbus_bool_t item and variant alignment items
6740 2005-01-17 Havoc Pennington <hp@redhat.com>
6742 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6744 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6745 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
6746 are marshaling/unmarshaling a boolean.
6748 2005-01-16 Havoc Pennington <hp@redhat.com>
6750 This is about it on what can be disabled/deleted from libdbus
6751 easily, back below 150K anyhow. Deeper cuts are more work than
6752 just turning the code off as I've done here.
6754 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6755 signed int convenience funcs
6757 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6760 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6761 things out of libdbus
6763 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6765 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6766 tests-enabled-only, though it should probably be deleted)
6768 * dbus/dbus-message-util.c: same stuff
6770 * dbus/dbus-auth-util.c: same stuff
6772 2005-01-16 Havoc Pennington <hp@redhat.com>
6774 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6776 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6777 way for stripping down dbus-userdb.c stuff included in libdbus.
6778 Rename _dbus_parse_uid for consistency.
6780 2005-01-16 Havoc Pennington <hp@redhat.com>
6782 * dbus/dbus-internals.c (_dbus_real_assert): print the function
6783 name the assertion failed in
6785 * dbus/dbus-internals.h (_dbus_return_if_fail)
6786 (_dbus_return_val_if_fail): assert that the name of the function
6787 containing the check doesn't start with '_', since we only want to
6788 use checks on public functions
6790 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6791 checks to assertions
6793 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6794 change checks to asserts for private function
6796 * dbus/dbus-message.c (_dbus_message_set_serial): checks
6797 to asserts for private function
6799 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6800 broken assertion that was breaking make check
6801 (_dbus_type_reader_array_is_empty): remove this rather than fix
6802 it, was only used in assertions
6804 2005-01-16 Havoc Pennington <hp@redhat.com>
6806 * test/unused-code-gc.py: hacky script to find code that's used
6807 only by the bus (not libdbus) or used only by tests or not used at
6808 all. It has some false alarms, but looks like we can clean up a
6809 lot of size from libdbus.
6811 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6812 dbus/Makefile.am: initially move 10K of binary size out of libdbus
6814 2005-01-16 Havoc Pennington <hp@redhat.com>
6816 * Add and fix docs according to Doxygen warnings throughout
6819 * dbus/dbus-marshal-recursive.c
6820 (_dbus_type_reader_array_is_empty): change this to just call
6821 array_reader_get_array_len() and make it static
6823 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6825 (dbus_message_iter_init_append): rename from append_iter_init
6827 * dbus/dbus-marshal-recursive.c
6828 (_dbus_type_reader_get_element_type): rename from
6829 _dbus_type_reader_get_array_type
6831 2005-01-15 Havoc Pennington <hp@redhat.com>
6833 * test/glib/test-profile.c (with_bus_server_filter): fix crash
6835 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6836 when DBUS_DISABLE_ASSERT
6837 (_dbus_marshal_set_basic): be sure we align for the string length
6839 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6842 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6843 inline macro version
6844 (_dbus_string_set_byte): provide inline macro version
6846 2005-01-15 Havoc Pennington <hp@redhat.com>
6848 * Land the new message args API and type system.
6850 This patch is huge, but the public API change is not
6851 really large. The set of D-BUS types has changed somewhat,
6852 and the arg "getters" are more geared toward language bindings;
6853 they don't make a copy, etc.
6855 There are also some known issues. See these emails for details
6857 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6858 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6860 * dbus/dbus-marshal-*: all the new stuff
6862 * dbus/dbus-message.c: basically rewritten
6864 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6865 freed blocks to be all non-nul bytes so using freed memory is less
6866 likely to work right
6868 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6869 DBUS_FAIL_MALLOC=N environment variable, so you can do
6870 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6871 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6874 * qt/message.cpp: port to the new message args API
6875 (operator<<): use str.utf8() rather than str.unicode()
6876 (pretty sure this is right from the Qt docs?)
6878 * glib/dbus-gvalue.c: port to the new message args API
6880 * bus/dispatch.c, bus/driver.c: port to the new message args API
6882 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6883 "locked" flag to TRUE and align_offset to 0; I guess we never
6884 looked at these anyhow, but seems cleaner.
6886 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6887 move allocation padding macro to this header; use it to implement
6888 (_DBUS_STRING_STATIC): ability to declare a static string.
6890 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6891 change to return TRUE if the interface is not set.
6893 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6894 to dbus-marshal-validate.[hc]
6896 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6899 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6900 to dbus-marshal-*.[hc]
6902 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6903 function here from dbus-marshal.c
6905 2005-01-12 Joe Shaw <joeshaw@novell.com>
6907 * NEWS: Update for 0.23.
6909 * configure.in: Release 0.23.
6911 2005-01-12 Joe Shaw <joeshaw@novell.com>
6913 * mono/Makefile.am, mono/example/Makefile.am: Always build the
6914 dbus DLL with --debug. Clean up after the .mdb files this leaves
6917 * mono/doc/Makefile.am: Need to uninstall the docs on "make
6920 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6921 is an enum, get the enum's underlying type. Another mono
6924 2005-01-11 Joe Shaw <joeshaw@novell.com>
6926 Patch from Sjoerd Simons <sjoerd@luon.net>
6928 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6929 DESTDIR. It breaks stuff.
6931 2005-01-11 Joe Shaw <joeshaw@novell.com>
6933 Patch from Tambet Ingo <tambet@ximian.com>
6935 * mono/DBusType/Array.cs (Get): Get the underlying element type by
6936 calling type.GetElementType(). The code previously depended on
6937 broken Mono behavior, which was fixed in Mono 1.1.3.
6939 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6940 Activator.CreateInstance() so that the class's constructor is
6941 called with the right parameters.
6943 2005-01-11 Joe Shaw <joeshaw@novell.com>
6945 Patch from Timo Teräs <ext-timo.teras@nokia.com>
6947 * dbus/dbus-connection.c
6948 (_dbus_connection_queue_received_message_link): Call
6949 _dbus_connection_remove_timeout() instead of the _locked()
6950 variant, since it's always called from
6951 _dbus_connection_handle_watch(), which handles the locking.
6952 Removed the _locked() variant since it's no longer used.
6954 2005-01-03 Havoc Pennington <hp@redhat.com>
6956 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6959 2004-12-26 Havoc Pennington <hp@redhat.com>
6961 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6963 2005-01-03 Havoc Pennington <hp@redhat.com>
6965 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6968 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6970 2005-01-02 Havoc Pennington <hp@redhat.com>
6972 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6974 2005-01-01 Havoc Pennington <hp@redhat.com>
6976 * configure.in: add -Wfloat-equal
6978 2005-01-01 Havoc Pennington <hp@redhat.com>
6980 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
6981 for a variety of reasons '==' doesn't do this.
6983 2004-12-31 Havoc Pennington <hp@redhat.com>
6985 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6986 I keep wishing I had
6988 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6990 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6992 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6994 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6995 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6996 dbus-protocol.h. Because they are defines and not enums they are not
6999 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
7001 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7002 dbus_bus_activate_service
7004 * python/dbus.py (Bus.activate_service): activate a service on the
7007 2004-12-24 Havoc Pennington <hp@redhat.com>
7009 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7010 file format has also changed and I haven't adapted to that yet
7012 * Makefile.am: load .gcno files from latest gcc
7014 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
7015 * Patch from Rob Taylor <robtaylor@fastmail.fm>
7017 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7020 * python/dbus.py (get_unix_user): Added binding to
7021 call dbus_bindings.bus_get_unix_user
7023 * python/extract.py: Modified the proto_pat regex to
7024 handle unsigned long
7026 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7028 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7029 better POSIX compliance.
7031 2004-12-19 Havoc Pennington <hp@redhat.com>
7033 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
7034 (_dbus_string_insert_8_aligned): new functions
7036 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7038 2004-12-18 Havoc Pennington <hp@redhat.com>
7040 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7043 * dbus/dbus-message.c: fix a comment, and add a still-unused
7044 not-implemented function
7046 * dbus/dbus-marshal.h: fix comment
7048 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7050 2004-12-17 Joe Shaw <joeshaw@novell.com>
7052 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7053 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7054 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7055 Type.UnderlyingSystemType to get the actual system type
7056 underneath. This code previously depended on the broken Mono
7057 behavior, which was fixed in 1.1.3.
7059 2004-11-27 Havoc Pennington <hp@redhat.com>
7061 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7063 (_dbus_string_get_const_data): inline when asserts are disabled
7065 * dbus/dbus-message.c: record the _dbus_current_generation of
7066 creation so we can complain if dbus_shutdown() is used improperly.
7067 Do this only if checks are enabled.
7069 * dbus/dbus-connection.c: ditto
7071 2004-11-26 Havoc Pennington <hp@redhat.com>
7073 * test/glib/test-profile.c: add with_bus mode to profile echoes
7074 that go through the bus.
7076 * test/glib/run-test.sh: add ability to run test-profile
7078 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7081 2004-11-26 Havoc Pennington <hp@redhat.com>
7083 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7084 thing was implemented
7086 2004-11-26 Havoc Pennington <hp@redhat.com>
7088 * test/glib/test-profile.c: tweak a bit, add support for some
7089 made-up minimal malloc overhead with plain sockets, since in
7090 real life some sort of buffers are unavoidable thus we could
7091 count them in the theoretical best case
7093 2004-11-26 Havoc Pennington <hp@redhat.com>
7095 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7096 where I was trying to cache one too many messages
7098 2004-11-26 Havoc Pennington <hp@redhat.com>
7100 * dbus/dbus-message.c: reimplement message cache as an array which
7101 makes the cache about twice as fast and saves maybe 1.5% overall
7103 2004-11-26 Havoc Pennington <hp@redhat.com>
7105 * dbus/dbus-threads.c (init_global_locks): forgot to put the
7106 message cache lock here
7108 2004-11-26 Havoc Pennington <hp@redhat.com>
7110 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7111 the "char byte_order" next to each other to save 4 bytes
7112 (dbus_message_new_empty_header): reduce preallocation, since the
7113 message cache should achieve a similar effect
7114 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7115 message cache that keeps a few DBusMessage around in a pool,
7116 another 8% speedup or so.
7118 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7120 2004-11-25 Havoc Pennington <hp@redhat.com>
7122 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7123 to write, without reading or blocking, try it before the poll()
7124 and skip the poll() if nothing remains to write. This is about a
7125 3% speedup in the echo client/server
7127 2004-11-25 Havoc Pennington <hp@redhat.com>
7129 The primary change here is to always write() once before adding
7130 the write watch, which gives us about a 10% performance increase.
7132 * dbus/dbus-transport-unix.c: a number of modifications to cope
7133 with removing messages_pending
7134 (check_write_watch): properly handle
7135 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7136 messages_pending stuff
7137 (check_read_watch): properly handle WAITING_FOR_MEMORY and
7139 (unix_handle_watch): after writing, see if the write watch can be
7141 (unix_do_iteration): assert that write_watch/read_watch are
7142 non-NULL rather than testing that they aren't, since they
7143 aren't allowed to be NULL. check_write_watch() at the end so
7144 we add the watch if we did not finish writing (e.g. got EAGAIN)
7146 * dbus/dbus-transport-protected.h: remove messages_pending call,
7147 since it resulted in too much inefficient watch adding/removing;
7148 instead we now require that the transport user does an iteration
7149 after queueing outgoing messages, and after trying the first
7150 write() we add a write watch if we got EAGAIN or exceeded our
7151 max bytes to write per iteration setting
7153 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7156 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7157 freed and then accessed, valgrind flagged this bug, fix it
7159 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7160 as the last valid field plus 1, where really it is equal to the
7161 last valid field. Corrects some message corruption issues.
7163 * dbus/dbus-mainloop.c: verbosity changes
7165 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7166 instead of aborting in one of the test codepaths
7168 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7169 caused not printing the pid ever again if a verbose was missing
7170 the newline at the end
7171 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7173 * dbus/dbus-connection.c: verbosity changes;
7174 (dbus_connection_has_messages_to_send): new function
7175 (_dbus_connection_message_sent): no longer call transport->messages_pending
7176 (_dbus_connection_send_preallocated_unlocked): do one iteration to
7177 try to write() immediately, so we can avoid the write watch. This
7178 is the core purpose of this patchset
7179 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7180 dump the outgoing message queue, so nobody will get confused
7181 trying to send them or thinking stuff is pending to be sent
7183 * bus/test.c: verbosity changes
7185 * bus/driver.c: verbosity/assertion changes
7187 * bus/dispatch.c: a bunch of little tweaks to get it working again
7188 because this patchset changes when/where you need to block.
7190 2004-11-23 Havoc Pennington <hp@redhat.com>
7192 * test/glib/test-profile.c: modify to accept a plain_sockets
7193 argument in which case it will bench plain sockets instead of
7194 libdbus, for comparison purposes.
7196 2004-11-22 Havoc Pennington <hp@redhat.com>
7198 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7199 threads for more time, so sysprof can get a grip on it.
7201 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7204 2004-11-13 Havoc Pennington <hp@redhat.com>
7206 * test/glib/test-profile.c: fix this thing up a bit
7208 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7209 preallocation sizes by a fair bit; not sure if this will be an
7210 overall performance win or not, but it does reduce reallocs.
7212 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7213 the test hack that forced constant realloc if asserts are
7214 disabled, so we can profile sanely. Sprinkle in some
7215 _DBUS_UNLIKELY() which are probably pointless, but before I
7216 noticed the real performance problem I put them in.
7217 (_dbus_string_validate_utf8): micro-optimize this thing a little
7218 bit, though callgrind says it didn't help; then special-case
7219 ascii, which did help a lot; then be sure we detect nul bytes as
7220 invalid, which is a bugfix.
7221 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7222 superstition; use memset to nul the padding instead of a manual
7224 (_dbus_string_get_length): inline this as a
7225 macro; it showed up in the profile because it's used for loop
7228 2004-11-10 Colin Walters <walters@verbum.org>
7230 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7233 2004-11-09 Colin Walters <walters@verbum.org>
7235 * dbus/dbus-string.c (_dbus_string_get_length): New
7236 function, writes DBusString to C buffer.
7238 * dbus/dbus-string.h: Prototype it.
7240 * dbus/dbus-message.c (dbus_message_type_to_string): New
7241 function, converts message type into C string.
7243 * dbus/dbus-message.h: Prototype it.
7245 * bus/selinux.c (bus_selinux_check): Take source pid,
7246 target pid, and audit data. Pass audit data to
7248 (log_audit_callback): New function, appends extra
7250 (bus_selinux_allows_acquire_service): Also take
7251 service name, add it to audit data.
7252 (bus_selinux_allows_send): Also take message
7253 type, interface, method member, error name,
7254 and destination, and add them to audit data.
7255 (log_cb): Initialize func_audit.
7257 * bus/selinux.h (bus_selinux_allows_acquire_service)
7258 (bus_selinux_allows_send): Update prototypes
7260 * bus/services.c (bus_registry_acquire_service): Pass
7261 service name to bus_selinux_allows_acquire_service.
7263 * bus/bus.c (bus_context_check_security_policy): Pass
7264 additional audit data. Move assignment of dest
7267 2004-11-07 Colin Walters <walters@verbum.org>
7269 * dbus/dbus-transport-unix.c (do_authentication): Always
7270 initialize auth_completed.
7272 2004-11-07 Colin Walters <walters@verbum.org>
7274 * bus/bus.c (load_config): Break into three
7275 separate functions: process_config_first_time_only,
7276 process_config_every_time, and process_config_postinit.
7277 (process_config_every_time): Move call of
7278 bus_registry_set_service_context_table into
7279 process_config_postinit.
7280 (process_config_postinit): New function, does
7281 any processing that needs to happen late
7282 in initialization (and also on reload).
7283 (bus_context_new): Instead of calling load_config,
7284 open config parser here and call process_config_first_time_only
7285 and process_config_every_time directly. Later, after
7286 we have forked but before changing UID,
7287 invoke bus_selinux_full_init, and then call
7288 process_config_postinit.
7289 (bus_context_reload_config): As in bus_context_new,
7290 load parse file inside here, and call process_config_every_time
7291 and process_config_postinit.
7293 * bus/services.h, bus/services.c
7294 (bus_registry_set_service_context_table): Rename
7295 from bus_registry_set_sid_table. Take string hash from config
7296 parser, and convert them here into SIDs.
7298 * bus/config-parser.c (struct BusConfigParser): Have
7299 config parser only store a mapping of service->context
7301 (merge_service_context_hash): New function.
7302 (merge_included): Merge context string hashes instead
7303 of using bus_selinux_id_table_union.
7304 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7305 simply create a new string hash.
7306 (bus_config_parser_unref): Unref it.
7307 (start_selinux_child): Simply insert strings into hash,
7308 don't call bus_selinux_id_table_copy_over.
7310 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7311 (bus_selinux_id_table_copy_over): Delete.
7313 2004-11-03 Colin Walters <walters@verbum.org>
7315 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7318 2004-11-03 Colin Walters <walters@verbum.org>
7320 * bus/test-main.c (test_pre_hook): Fix test logic,
7321 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7323 2004-11-02 Colin Walters <walters@redhat.com>
7325 * bus/selinux.c (bus_selinux_init): Split into two functions,
7326 bus_selinux_pre_init and bus_selinux_post_init.
7327 (bus_selinux_pre_init): Just determine whether SELinux is
7329 (bus_selinux_post_init): Do everything else.
7331 * bus/main.c (main): Call bus_selinux_pre_init before parsing
7332 config file, and bus_selinux_post_init after. This ensures that
7333 we don't lose the policyreload notification thread that
7334 bus_selinux_init created before forking previously.
7336 * bus/test-main.c (test_pre_hook): Update for split.
7338 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
7340 Patch from Johan Fischer <linux@fischaz.com>
7342 * mono/doc/Makefile.am (install-data-local): Added directory
7345 2004-10-29 Colin Walters <walters@redhat.com>
7347 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7348 parameter for fd to write pid to.
7350 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7352 * bus/bus.c (bus_context_new): Pass print_pid_fd
7353 to _dbus_become_daemon (bug #1720)
7355 2004-10-29 Colin Walters <walters@redhat.com>
7357 Patch from Ed Catmur <ed@catmur.co.uk>
7359 * mono/doc/Makefile.am (install-data-local): Handle
7362 2004-10-29 Colin Walters <walters@redhat.com>
7364 * bus/.cvsignore, qt/.cvsignore: Update.
7366 2004-10-29 Colin Walters <walters@redhat.com>
7368 Patch from Kristof Vansant <de_lupus@pandora.be>
7370 * configure.in: Detect Slackware.
7371 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7372 * bus/rc.messagebus.in: New file.
7374 2004-10-29 Colin Walters <walters@redhat.com>
7376 * tools/dbus-monitor.c (filter_func): Return
7377 DBUS_HANDLER_RESULT_HANDLED in filter function
7379 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7381 2004-10-29 Colin Walters <walters@redhat.com>
7383 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7385 * bus/services.c (bus_registry_acquire_service):
7386 Correctly retrieve service name from DBusString
7389 2004-10-29 Colin Walters <walters@redhat.com>
7391 * dbus/dbus-glib.h: Update documentation to not
7392 refer to internal APIs.
7394 2004-10-27 Joe Shaw <joeshaw@novell.com>
7396 * mono/Arguments.cs (GetDBusTypeConstructor):
7397 type.UnderlyingSystemType will return "System.Byte" if you do it
7398 on "byte[]", which is not what we want. So check the type.IsArray
7399 property and use System.Array instead.
7401 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
7403 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7404 the DBusUserInfo structure since this is passed into the function.
7405 This would cause a double free when the function that allocated
7406 the structure would try to free it when an error occured.
7408 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7409 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7410 for service activation to avoid 32bit/64bit parallel install issues
7412 2004-10-21 Colin Walters <walters@verbum.org>
7414 * AUTHORS: Fix my email address, the @gnu.org one
7415 has been bouncing for some time. Also add J5.
7417 2004-10-21 Colin Walters <walters@verbum.org>
7419 * dbus/dbus-transport-unix.c (do_authentication): Return
7420 authentication status to callers.
7421 (unix_handle_watch): If we completed authentication this round,
7422 don't do another read. Instead wait until the next iteration,
7423 after we've read any pending data in the auth buffer.
7424 (unix_do_iteration): Ditto.
7425 (unix_handle_watch): Updated for new do_authentication prototype.
7427 2004-10-18 Colin Walters <walters@verbum.org>
7429 * bus/selinux.c (bus_selinux_enabled): Handle
7430 --disable-selinux case.
7432 2004-10-18 Colin Walters <walters@verbum.org>
7434 * bus/selinux.h: Add bus_selinux_enabled.
7436 * bus/selinux.c (bus_selinux_enabled): Implement it.
7438 * bus/config-parser.c (struct include): Add
7439 if_selinux_enabled member.
7440 (start_busconfig_child): Parse if_selinux_enabled
7441 attribute for include.
7442 (bus_config_parser_content): Handle it.
7444 * bus/session.conf.in, bus/system.conf.in: Add
7445 inclusion of context mapping to default config files;
7446 conditional on SELinux being enabled.
7448 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7450 * test/data/invalid-config-files/badselinux-1.conf,
7451 test/data/invalid-config-files/badselinux-2.conf:
7452 Test files for bad syntax.
7454 2004-10-17 Colin Walters <walters@verbum.org>
7456 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7457 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7458 format specifier mismatches.
7460 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
7462 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7465 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7466 pointer (bug #1540, Leonardo Boiko).
7468 2004-09-28 Jon Trowbridge <trow@ximian.com>
7470 * mono/BusDriver.cs: Changed BusDriver struct to remove
7471 the ServiceCreated and ServiceDeleted events and replace them
7472 with the new ServiceOwnerChanged event.
7474 * mono/example/BusListener.cs: Added a new example program,
7475 which listens for and reports any ServiceOwnerChanged events
7478 * mono/example/Makefile.am (DESTDIR): Build changes for the
7479 new BusListener.cs example.
7481 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
7483 * bus/signals.c (bus_match_rule_parse): validate the components of
7484 match rules (bug #1439).
7486 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7488 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
7490 * doc/dbus-specification.xml: document ServiceOwnerChanged
7493 * bus/driver.c, bus/driver.h, bus/services.c: Use
7494 ServiceOwnerChanged signal instead of ServiceCreated and
7497 * bus/dispatch.c: update testcase for the new signal.
7499 2004-09-20 Jon Trowbridge <trow@ximian.com>
7501 Patch from Nat Friedman <nat@novell.com>
7503 * mono/Makefile.am: A number of small build fixes to allow "make
7504 distcheck" to succeed.
7506 * mono/example/Makefile.am: "make distcheck" fixes.
7508 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7511 * test/Makefile.am: "make distcheck" fixes.
7513 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7515 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7517 * doc/busconfig.dtd: update the DTD for the at_console attribute.
7519 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7520 messages after the first one (bug #1389).
7522 * bus/dispatch.c (check_double_hello_message): add a test case for
7523 the double hello message bug.
7524 (check_existent_service_activation): fix check of spawning error.
7526 2004-09-16 David Zeuthen <david@fubar.dk>
7528 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7530 2004-09-12 David Zeuthen <david@fubar.dk>
7532 Patch from Kay Sievers <kay.sievers@vrfy.org>
7534 * bus/bus.c (bus_context_new):
7536 * bus/main.c (usage)
7538 Add commandline option --nofork to override configuration file
7541 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7543 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7544 compilers don't like it (bug #974).
7546 2004-09-04 Harald Fernengel <harry@kdevelop.org>
7548 * qt/connection.*: Applied patch by Jérôme Lodewyck
7549 <lodewyck@clipper.ens.fr> to integrate an existing
7550 connection into the Qt eventloop
7552 2004-08-30 Jon Trowbridge <trow@ximian.com>
7554 * mono/BusDriver.cs: Added. This is a class for interacting with
7555 the org.freedesktop.DBus service.
7557 * mono/Message.cs: Added a mechanism to expose the message that is
7558 currently being dispatched via the static Message.Current
7559 property. Added Message.Sender and Message.Destination
7562 * mono/Handler.cs: Expose the dispatched message via
7563 Message.Current when handling method calls.
7565 * mono/Service.cs: Expose the dispatched message via
7566 Message.Current when handling signal emissions.
7568 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7569 Connection.BaseService property.
7571 2004-08-28 Havoc Pennington <hp@redhat.com>
7573 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7575 More fixes from Steve Grubb
7577 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7578 (_dbus_listen_tcp_socket): fix fd leak
7580 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7581 EINTR to a bit lower in the code
7583 2004-08-26 Jon Trowbridge <trow@ximian.com>
7585 * bus/driver.c (bus_driver_handle_service_exists): Respond with
7586 TRUE if we are inquiring about the existence of the built-in
7587 org.freedesktop.DBus service.
7589 2004-08-25 John Palmieri <johnp@redhat.com>
7590 * bus/config-parser.c:
7591 (struct PolicyType): Add POLICY_CONSOLE
7592 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7593 (start_busconfig_child): Sets up console element when
7594 <policy at_console=""> is encountered in a policy file
7595 (append_rule_from_element): Convert console elements to console
7599 (bus_policy_create_client_policy): Add console rules to the client
7600 policy based on if the client is at the console
7601 (bus_policy_append_console_rule): New function for adding a
7602 console rule to a policy
7603 (bus_policy_merge): Handle console rule merging
7605 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7606 where we check for console user files
7608 * dbus/dbus-sysdeps.c:
7609 (_dbus_file_exists): New function which checks if the given
7611 (_dbus_user_at_console): New function which does the system
7612 specific process of checking if the user is at the console
7614 * dbus/dbus-userdb.c:
7615 (_dbus_is_console_user): New function converts a UID to user name
7616 and then calls the system specific _dbus_user_at_console to
7617 see if the user is at the console and therefor a console user
7619 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
7621 * bus/config-parser.c (set_limit):
7622 * bus/dbus-daemon-1.1.in:
7623 * test/data/valid-config-files/many-rules.conf: set the
7624 max_match_rules_per_connection limt from the config file.
7626 * doc/busconfig.dtd: update the DTD.
7628 * bus/driver.c: remove some unused variables.
7630 2004-08-24 Mikael Hallendal <micke@imendio.com>
7632 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
7633 it's been replaced by dbus_g_bus_get
7635 2004-08-23 Colin Walters <walters@redhat.com>
7637 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7639 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7641 * bus/selinux.c: Create a thread for policy reload notification.
7642 (bus_selinux_get_policy_root): Implement.
7644 * bus/config-parser.c (start_busconfig_child)
7645 (bus_config_parser_content): Support SELinux-root relative
7648 * configure.in <HAVE_SELINUX>: Add -lpthread.
7650 * bus/test-main.c (test_pre_hook, test_post_hook): New.
7651 (test_post_hook): Move memory checking into here.
7652 (test_pre_hook, test_post_hook): Move SELinux checks in
7653 here, but conditional on a DBUS_TEST_SELINUX environment
7654 variable. Unfortunately we can't run the SELinux checks
7655 as a normal user, since they won't have any permissions
7656 for /selinux. So this will have to be tested manually
7657 for now, until we have virtualization for most of
7660 2004-08-23 Havoc Pennington <hp@redhat.com>
7662 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7663 drop supplementary groups, suggested by Steve Grubb
7665 2004-08-20 Colin Walters <walters@redhat.com>
7667 * bus/config-parser.c (start_busconfig_child): Remove some unused
7670 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7673 2004-08-17 Joe Shaw <joeshaw@novell.com>
7675 * configure.in: If --enable-mono is passed in, if we can't find
7678 * mono/Makefile.am: Use /gacutil to install assemblies into the
7681 2004-08-12 Havoc Pennington <hp@redhat.com>
7683 * NEWS: update for 0.22
7685 * configure.in: release 0.22
7687 2004-08-11 Colin Walters <walters@redhat.com>
7689 * tools/dbus-send.c (main, usage): Add --reply-timeout
7692 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
7694 * bus/bus.c (process_config_first_time_only): get rid of an unused
7695 DBusError that was causing a memoy leak (bug #989).
7697 * dbus/dbus-keyring.c, dbus/dbus-message.c:
7698 fix compilation on Solaris/Forte C (bug #974)
7700 * bus/main.c (main): plug two minuscule memleaks.
7702 2004-08-10 Havoc Pennington <hp@redhat.com>
7704 * doc/dbus-tutorial.xml: add some more info on GLib bindings
7706 2004-08-09 Havoc Pennington <hp@redhat.com>
7708 * COPYING: switch to Academic Free License version 2.1 instead of
7709 2.0, to resolve complaints about patent termination clause.
7711 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
7713 * README: added documentation for the --enable-python
7716 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7718 * bus/config-parser.c (bus_config_parser_new): fix an invalid
7719 _unref in the SELinux support.
7721 * doc/busconfig.dtd: update DTD for SELinux support.
7723 * bus/config-loader-libxml.c: fix error handler and parser
7724 initialisation/cleanup. OOM test now works with libxml2 HEAD.
7726 * configure.in: remove the warning about libxml2.
7728 * dbus/dbus-bus.c: silence doxygen warning.
7730 2004-07-31 Colin Walters <walters@redhat.com>
7732 * configure.in: Move #error in SELinux check to its own line.
7734 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7736 * dbus/dbus-internals.h (_DBUS_SET_OOM):
7737 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7740 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7741 broken by the change in the _SET_OOM macros.
7743 2004-07-31 Colin Walters <walters@redhat.com>
7745 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7748 2004-07-31 Colin Walters <walters@redhat.com>
7750 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7751 to correctly detect DBUS__ACQUIRE_SVC. Also add an
7754 2004-07-24 Havoc Pennington <hp@redhat.com>
7756 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7758 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7761 * configure.in: add --enable-selinux
7763 * bus/policy.c (bus_policy_merge): add FIXME to a comment
7765 * bus/main.c (main): initialize and shut down selinux
7767 * bus/connection.c: store SELinux ID on each connection, to avoid
7768 repeated getting of the string context and converting it into
7771 * bus/bus.c (bus_context_get_policy): new accessor, though it
7773 (bus_context_check_security_policy): check whether the security
7774 context of sender connection can send to the security context of
7775 recipient connection
7777 * bus/config-parser.c: add parsing for <selinux> and <associate>
7779 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7780 implement dbus_connection_get_unix_fd()
7782 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7783 function, used by the selinux stuff
7785 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
7787 * bus/config-loader-libxml.c: complete the implementation of
7788 libxml backend for config file loader. Doesn't work with full OOM
7791 * configure.in: change error when selecting libxml into a warning.
7793 * test/data/invalid-config-files: add two non-well-formed XML
7796 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7798 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7799 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7800 be necessary to read all the buffer. (bug #894)
7802 * bus/activation.c (bus_activation_activate_service): fix a
7803 potential assertion failure (bug #896). Small optimization in the
7804 case of auto-activation messages.
7806 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7807 add test case for byte-through-vararg bug (#901). patch by Kimmo
7810 2004-07-28 Anders Carlsson <andersca@gnome.org>
7813 * python/dbus_bindings.pyx.in:
7814 Add dbus.init_gthreads (), allow emit_signal to pass
7815 arguments to the signal.
7817 2004-07-24 Havoc Pennington <hp@redhat.com>
7819 * AUTHORS: add some people, not really comprehensively, let me
7820 know if I missed you
7822 2004-07-24 Havoc Pennington <hp@redhat.com>
7824 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7827 * test/Makefile.am (DIST_SUBDIRS): here also
7829 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7831 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7832 breaking build on Solaris, reported by Farhad Saberi on the ML.
7834 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7835 va_arg invocation to account for integer promotion in the case of
7836 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7838 * bus/services.c (bus_service_remove_owner): fix bug #902, use
7839 _dbus_list_get_first_link, not _dbus_list_get_first.
7841 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7843 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7844 handler functions so that the asserts in _dbus_object_subtree_unref
7847 * dbus/dbus-transport-unix.c (do_reading):
7848 _dbus_transport_queue_messages return value is of type
7849 dbus_bool_t, not DBusDispatchStatus.
7851 2004-07-19 David Zeuthen <david@fubar.dk>
7853 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7856 (check_get_connection_unix_user): Debug says GetProperty; but the
7857 method is called GetConnectionUnixUser
7858 (check_get_connection_unix_process_id): New function
7859 (bus_dispatch_test): Actually call check_get_connection_unix_user();
7860 also call check_get_connection_unix_process_id()
7863 (bus_driver_handle_get_connection_unix_process_id): New function,
7864 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7868 (handle_server_data_external_mech): Set pid from the credentials
7869 obtained from the socket
7871 * dbus/dbus-connection.c:
7872 (dbus_connection_get_unix_process_id): New function
7874 * dbus/dbus-connection.h:
7875 Add prototype for dbus_connection_get_unix_process_id
7877 * dbus/dbus-transport.c:
7878 (_dbus_transport_get_unix_process_id): New function
7880 * dbus/dbus-transport.h:
7881 Add prototype for _dbus_transport_get_unix_process_id
7883 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
7885 * dbus/dbus-message.c: Message counter fix, patch by Christian
7886 Hammond <chipx86@gnupdate.org>
7888 2004-07-18 Seth Nickell <seth@gnome.org>
7891 * python/dbus_bindings.pyx.in:
7892 * python/tests/test-client.py:
7894 Add dbus.ByteArray and dbus_bindings.ByteArray
7895 types so that byte streams can be passed back.
7897 Give jdahlin the heaps of credit that are so
7900 2004-07-12 Seth Nickell <seth@gnome.org>
7904 Add message argument to the default object_method_handler
7907 * python/dbus_bindings.pyx.in:
7909 Automatically return NIL when passed an empty list
7910 (we can't pass back a list since lists are typed
7911 and we don't have any idea what type the the client
7912 intended the list to be... :-( )
7914 2004-07-10 Seth Nickell <seth@gnome.org>
7916 * python/examples/Makefile.am:
7918 Fix distcheck breakage caused by new examples.
7920 2004-07-10 Seth Nickell <seth@gnome.org>
7924 Add "message" argument to service-side dbus.Object
7925 methods. This will break existing services written
7926 using the python bindings, but will allow extraction
7927 of all the message information (e.g. who its from).
7929 Add improved "object oriented" signal handling/emission.
7931 * python/examples/example-service.py:
7935 * python/examples/example-signal-emitter.py:
7936 * python/examples/example-signal-recipient.py:
7938 Two new examples that show how to emit and receive
7939 signals using the new APIs.
7941 * python/examples/example-signals.py:
7942 * python/examples/gconf-proxy-service.py:
7943 * python/examples/gconf-proxy-service2.py:
7945 Add "message" argument to service methods.
7947 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
7949 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7950 * dbus/bus.c (dbus_bus_get_unix_user)
7951 * doc/dbus-specification.xml: implement GetConnectionUnixUser
7952 method of org.freedesktop.DBus interface.
7954 * bus/dispatch.c: test case
7956 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
7958 * python/Makefile.am: switched include directory from glib/ to dbus/
7959 since dbus-glib.h moved
7961 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7963 * configure.in: prevent building the gcj stuff and libxml loader
7964 since they are broken.
7966 2004-06-20 Havoc Pennington <hp@redhat.com>
7968 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
7969 codes from the dbus error names
7971 * glib/dbus-glib.h: move to subdir dbus/ since it's included
7972 as dbus/dbus-glib.h and that breakage is now visible due to
7973 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7975 * glib/dbus-glib.h: s/gproxy/g_proxy/
7977 * dbus/dbus-shared.h: new header to hold stuff shared with
7980 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7983 * glib/dbus-glib.h (dbus_set_g_error): move to
7984 dbus-glib-lowlevel.h
7986 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7987 of stuff to enable this
7989 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7991 * a bunch of other changes with the same basic "separate glib
7992 bindings from dbus.h" theme
7994 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
7996 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7998 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8000 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
8002 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8003 the reply value of the ServiceExists message.
8005 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
8007 * python/dbus_bindings.pyx.in: No longer need to parse path
8008 elements and pass them as arrays of strings. The C API now
8009 accepts plain path strings.
8010 (_build_parsed_path): removed
8012 2004-06-07 Havoc Pennington <hp@redhat.com>
8014 * doc/TODO: remove auto-activation item since it's done; sort
8015 items by importance/milestone
8017 2004-06-07 Havoc Pennington <hp@redhat.com>
8019 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8020 random signature when using REQUIRED_FIELDS (this hack won't work
8023 * dbus/dbus-message.c: change the signature to be a header field,
8024 instead of message->signature special-case string. Incremental
8025 step forward. Then we can fix up code to send the signature in the
8026 message, then fix up code to validate said signature, then fix up
8027 code to not put the typecodes inline, etc.
8028 (load_one_message): don't make up the signature after the fact
8029 (decode_header_data): require signature field for the known
8032 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8034 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8036 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
8038 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8040 * mono/Handler.cs: Updated to follow new path argument for
8041 (un-)registering objects.
8043 * mono/example/Makefile.am:
8045 * configure.in: Bumped required version for mono and use new -pkg
8048 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
8050 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8051 registration functions take the path argument as char* instead of
8054 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8055 split off the path decompostion part of
8056 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8059 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8061 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8063 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8064 machine approach. A state is implemented as a function that
8065 handles incoming events as specified for that state.
8067 * doc/dbus-specification.xml: Update auth protocol state machine
8068 specification to match implementation. Remove some leftover
8071 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8073 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8074 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8077 * Doxyfile.in: remove deprecated options.
8079 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8080 glib/test-thread.h, glib/test-thread-client.c,
8081 glib/test-thread-server.c, glib/test-profile.c,
8082 glib/test-dbus-glib.c: remove these unused files.
8084 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
8086 * dbus/dbus-object-tree.c
8087 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8088 non-fallback handlers (bug #684).
8089 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8090 (find_subtree_recurse): report wether the returned subtree is an
8091 exact match or a "fallback" match higher up in the tree.
8092 (object_tree_test_iteration): update test case.
8094 2004-06-01 Seth Nickell <seth@gnome.org>
8096 * python/dbus_bindings.pyx.in:
8097 * python/tests/test-client.py:
8099 Round off basic type support. Add dicts (yay!), and
8100 remaining array types.
8102 Make MessageIter more general so it works for dicts too.
8104 Mark all loop variables as C integers.
8106 2004-05-31 Havoc Pennington <hp@redhat.com>
8108 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8111 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8113 * glib/dbus-glib-tool.c (main): set up to have a --self-test
8114 option that runs the tests, and start filling in some code
8115 including for starters just dumping the interfaces to stdout
8117 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8119 * test/data/valid-introspection-files/lots-of-types.xml: test of
8120 an example introspection file
8122 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8125 2004-05-31 Seth Nickell <seth@gnome.org>
8127 * python/dbus_bindings.pyx.in:
8128 * python/tests/test-client.py:
8133 Fix string array memory trashing bug... oops...
8135 2004-05-30 Seth Nickell <seth@gnome.org>
8139 Add a nicer-but-less-flexible alternate API for handling
8140 calls to virtual objects in dbus.ObjectTree.
8142 Screw up the argument order to the dbus.Object constructor
8143 for consistency with dbus.ObjectTree (and to make dbus_methods
8144 optional for future extension)
8146 * python/examples/Makefile.am:
8147 * python/examples/gconf-proxy-service.py:
8148 * python/examples/gconf-proxy-service2.py:
8150 Alternate implementation of gconf-proxy-service using the
8151 nicer dbus.ObjectTree API.
8153 * python/examples/example-service.py:
8154 * python/tests/test-server.py
8156 Reverse the argument order to deal with dbus.Object constructor
8159 2004-05-30 Seth Nickell <seth@gnome.org>
8161 * python/examples/example-client.py:
8162 * python/examples/example-service.py:
8164 Take it back. Lists seem to work but they're broken
8165 in the test suite. Make the base examples use
8168 2004-05-30 Seth Nickell <seth@gnome.org>
8170 * python/dbus_bindings.pyx.in:
8171 * python/tests/test-client.py:
8173 Add some more tests and fix errors that crop up.
8174 Unfortunately, currently it seems like marshalling
8175 and unmarshalling of lists is completely broken :-(
8177 2004-05-30 Seth Nickell <seth@gnome.org>
8179 * python/dbus_bindings.pyx.in:
8181 Add support for ObjectPath type.
8185 Refactor message handling code to a common function.
8187 * python/tests/test-client.py:
8188 * python/tests/test-server.py:
8190 Add tests that check to make sure values of all types
8191 can be echoed from a service w/o mangling.
8193 2004-05-29 Seth Nickell <seth@gnome.org>
8197 Add ObjectTree class which allows implementation
8198 of trees of "virtual" objects. Basically the python
8199 wrapper for "register_fallback".
8201 * python/examples/Makefile.am
8202 * python/examples/gconf-proxy-client.py:
8203 * python/examples/gconf-proxy-service.py:
8205 Implement a simple GConf proxy service that supports
8206 get/set on string and int GConf keys using the ObjectTree.
8208 2004-05-29 Seth Nickell <seth@gnome.org>
8211 * python/examples/example-client.py:
8212 * python/examples/example-service.py:
8213 * python/examples/list-system-services.py:
8215 Add SessionBus, SystemBus and ActivationBus classes
8216 so you don't need to know the special little BUS_TYPE
8219 2004-05-29 Havoc Pennington <hp@redhat.com>
8221 * bus/config-parser.c (process_test_valid_subdir): temporarily
8222 stop testing config parser OOM handling, since expat has issues
8223 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8225 * bus/dbus-daemon-1.1.in: change requested_reply to
8226 send_requested_reply/receive_requested_reply so we can send the
8227 replies, not just receive them.
8229 * bus/config-parser.c: parse the new
8230 send_requested_reply/receive_requested_reply
8232 * bus/policy.c (bus_client_policy_check_can_send): add
8233 requested_reply argument and use it
8235 * bus/bus.c (bus_context_check_security_policy): pass through
8236 requested_reply status to message send check
8238 * bus/system.conf.in: adapt to requested_reply change
8240 2004-05-28 Havoc Pennington <hp@redhat.com>
8242 * test/glib/test-service-glib.c (main): remove unused variable
8244 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8246 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8247 from the enum, no longer in use.
8249 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8252 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8253 whether error_name passed in is a valid error name.
8255 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
8257 * dbus/dbus-message.c (dbus_message_get_args): Added support for
8258 OBJECT_PATH and OBJECT_PATH_ARRAY
8260 2004-05-28 Seth Nickell <seth@gnome.org>
8262 * python/examples/Makefile.am:
8264 Forget to add Makefile.am. Do not pass go.
8266 2004-05-28 Michael Meeks <michael@ximian.com>
8268 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
8271 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8273 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8274 (_dbus_message_iter_get_basic_type_array): impl.
8275 drastically simplify ~all relevant _get methods to use these.
8276 (_dbus_message_iter_append_basic_array),
8277 (dbus_message_iter_append_basic): impl
8278 drastically simplify ~all relevant _append methods to use these.
8280 * dbus/dbus-message-builder.c (parse_basic_type)
8281 (parse_basic_array, lookup_basic_type): impl.
8282 (_dbus_message_data_load): prune scads of duplicate /
8285 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
8286 (_dbus_demarshal_basic_type): implement,
8287 (demarshal_and_validate_len/arg): beef up debug.
8288 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8290 2004-05-27 Seth Nickell <seth@gnome.org>
8293 * python/Makefile.am:
8295 Include the example python apps in the tarball.
8297 * python/examples/list-system-services.py
8299 Add a python new example that fetches the list of services
8300 from the system bus.
8302 2004-05-27 Seth Nickell <seth@gnome.org>
8305 * python/dbus_bindings.pyx.in:
8307 Fix failure to notify that a signal was not handled,
8308 resulted in hung functions.
8310 2004-05-25 Colin Walters <walters@redhat.com>
8312 * tools/dbus-monitor.c (main): Monitor all types of messages.
8314 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
8316 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8317 which unregisters the object path and disposes the handler.
8319 2004-05-23 Kristian Høgsberg <krh@redhat.com>
8321 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8323 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8324 operands to && so we call dbus_message_iter_next () for the last
8327 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8329 * dbus/dbus-object-tree.c
8330 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8331 children even if the requested path isn't registered.
8332 (object_tree_test_iteration): test object_tree_list_registered.
8334 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8337 2004-05-20 Kristian Høgsberg <krh@redhat.com>
8339 * doc/TODO: Remove resolved items.
8341 * bus/expirelist.h (struct BusExpireList): remove unused n_items
8344 * bus/connection.c (bus_connections_expect_reply): Enforce the
8345 per-connection limit on pending replies.
8347 Patch from Jon Trowbridge <trow@ximian.com>:
8349 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
8350 up a watch that triggers a config reload when one end of the pipe
8352 (signal_handler): Instead of doing the config reload in our SIGHUP
8353 handler, just write to the reload pipe and let the associated
8354 watch handle the reload when control returns to the main loop.
8356 * bus/driver.c (bus_driver_handle_reload_config): Added.
8357 Implements a ReloadConfig method for requesting a configuration
8358 file reload via the bus driver.
8360 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
8362 * HACKING: Updated release instructions concerning the wiki page.
8364 2004-05-18 Kristian Høgsberg <krh@redhat.com>
8366 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8367 filter against auth->allowed_mechs; we only add allowed mechs in
8368 record_mechanisms().
8370 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8371 ALLOWED_MECHS to auth-script format so we can set the list of
8374 * data/auth/client-out-of-mechanisms.auth-script: New test to
8375 check client disconnects when it is out of mechanisms to try.
8377 * dbus/dbus-auth.c (process_command): Remove check for lines
8378 longer that 1 MB; we only buffer up maximum 16 kB.
8380 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8381 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8382 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8383 assume there might be unused bytes.
8385 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8386 client-out-of-mechs, it is handled in process_reject(). Move check
8387 for max failures to send_rejected(), as it's a server-only thing.
8389 * dbus/dbus-auth.c: Factor out protocol reply code into functions
8390 send_auth(), send_data(), send_rejected(), send_error(),
8391 send_ok(), send_begin() and send_cancel().
8393 2004-05-17 Kristian Høgsberg <krh@redhat.com>
8395 Remove base64 encoding, replace with hex encoding. Original patch
8396 from trow@ximian.com, added error handling.
8398 * dbus/dbus-string.c (_dbus_string_base64_encode)
8399 (_dbus_string_base64_decode): Remove.
8400 (_dbus_string_hex_decode): Add end_return argument so we can
8401 distinguish between OOM and invalid hex encoding.
8402 (_dbus_string_test): Remove base64 tests and add test case for
8405 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8406 Replace base64 with hex.
8408 * test/data/auth/invalid-hex-encoding.auth-script: New test case
8409 for invalid hex encoded data in auth protocol.
8411 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
8413 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8416 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8418 * mono/dbus-sharp.dll.config.in: Added for GAC
8419 * mono/dbus-sharp.snk: Added for GAC
8420 * mono/Assembly.cs.in: Added for GAC
8421 * mono/Makefile.am: Changes for GAC installation
8422 * configure.in: Added refs for dbus-sharp.dll.config.in and
8423 Assembly.cs.in. More fixes for mono testing
8424 * mono/example/Makefile.am: Changed var to CSC
8425 * Makefile.am: Changed flag name to DBUS_USE_CSC
8427 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8429 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8430 * mono/doc/*: Added documentation framework
8431 * configure.in: Added monodoc check
8432 * README: Added description of mono configure flags
8434 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
8436 * doc/dbus-specification.xml: Added a "Required" column to the
8437 header fields table and changed the "zero or more" verbage in
8438 the above paragraph to read "The header must contain the required
8439 named header fields and zero or more of the optional named header
8441 * test/data/invalid-messages/*.message: Added the required PATH
8442 named header field to the tests so that they don't fail on
8443 'Missing path field'
8445 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
8447 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8448 the stack by implicitly defining variable and parameter types and
8449 removing the hack of defining C pointers as python objects and later
8452 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
8454 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8456 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
8458 * mono/DBusType/Dict.cs: Handle empty dicts
8459 * mono/DBusType/Array.cs: Handle empty arrays
8460 * mono/Arguments.cs: Handle empty arguments
8462 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
8464 * dbus-sharp.pc.in: Modified to include include Libs and Requires
8467 2004-04-25 Kristian Høgsberg <krh@redhat.com>
8469 * test/data/valid-messages/standard-*.message: Update message
8470 test scripts to new header field names.
8472 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
8474 * test/break-loader.c (randomly_do_n_things): tracked down buffer
8475 overflow to times_we_did_each_thing array which would chop off the
8476 first character of the failure_dir string. Increased the size of
8477 the array to 7 to reflect the number of random mutation functions
8480 2004-04-21 Kristian Høgsberg <krh@redhat.com>
8482 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8483 unix_server->watch here, it is unreffed in disconnect.
8484 (_dbus_server_new_for_tcp_socket): convert NULL host to
8485 "localhost" here so we don't append NULL to address.
8487 * dbus/dbus-server.c (_dbus_server_test): Add test case for
8488 various addresses, including tcp with no explicit host.
8490 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8492 * dbus/dbus-message.c (decode_header_data, decode_string_field):
8493 fix incorrect setting of .name_offset in the HeaderField (it was
8494 off by two bytes, positioned right after the name and typecode)
8496 * bus/bus.c (bus_context_new, bus_context_unref): test before
8497 calling dbus_server_free_data_slot and _dbus_user_database_unref
8498 in case of an error.
8500 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8503 2004-04-19 Kristian Høgsberg <krh@redhat.com>
8505 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8506 _dbus_poll() instead of select().
8508 2004-04-15 Jon Trowbridge <trow@ximian.com>
8510 * bus/main.c (signal_handler): Reload the configuration files
8512 (main): Set up our SIGHUP handler.
8514 * bus/bus.c (struct BusContext): Store the config file, user and
8515 fork flag in the BusContext.
8516 (process_config_first_time_only): Added. Contains the code
8517 (previously in bus_context_new) for setting up the BusContext from
8518 the BusConfigParser that should only be run the first time the
8519 config files are read.
8520 (process_config_every_time): Added. Contains the code (previously
8521 in bus_context_new) for setting up the BusContext from the
8522 BusConfigParser that should be run every time the config files are
8524 (load_config): Added. Builds a BusConfigParser from the config
8525 files and passes the resulting structure off to
8526 process_config_first_time_only (assuming this is the first time)
8527 and process_config_every_time.
8528 (bus_context_new): All of the config-related code has been moved
8529 to process_config_first_time_only and process_config_every_time.
8530 Now this function just does the non-config-related initializations
8531 and calls load_config.
8532 (bus_context_reload_config): Added.
8534 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
8536 * bus/driver.c (bus_driver_handle_get_service_owner):
8537 implement a GetServiceOwner method.
8538 * doc/dbus-specification.xml: document it.
8539 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8541 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8542 implement, using the bus GetServiceOwner method.
8544 * test/glib/test-dbus-glib.c:
8545 use dbus_gproxy_new_for_service_owner so that we can receive the
8548 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
8550 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8551 dbus/dbus-message.c, dbus/dbus-protocol.h
8552 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8554 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8555 dbus/dbus-message.c, dbus/dbus-protocol.h
8556 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8558 * dbus/dbus-internals.c (_dbus_header_field_to_string):
8559 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8560 DBUS_HEADER_FIELD_SENDER resolves to "sender"
8562 * doc/dbus-specification.xml (Header Fields Table):
8563 s/SERVICE/DESTINATION
8564 s/SENDER_SERVICE/SENDER
8567 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
8569 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8572 2004-04-13 Michael Meeks <michael@ximian.com>
8574 * glib/dbus-gobject.c (handle_introspect): split out
8575 (introspect_properties): this.
8576 (handle_introspect): implement this.
8578 * test/glib/Makefile.am: use the absolute path so the bus
8579 daemon's chdir ("/") doesn't kill us dead.
8581 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8583 2004-04-12 Jon Trowbridge <trow@ximian.com>
8585 * bus/config-parser.c (struct BusConfigParser): Added
8586 included_files field.
8587 (seen_include): Added. Checks whether or not a file has already
8588 been included by any parent BusConfigParser.
8589 (bus_config_parser_new): Copy the parent's included_files.
8590 (include_file): Track which files have been included, and fail on
8591 circular inclusions.
8592 (process_test_valid_subdir): Changed printf to report if we are
8593 testing valid or invalid conf files.
8594 (all_are_equiv): Changed printf to be a bit clearer about
8595 what we are actually doing.
8596 (bus_config_parser_test): Test invalid configuration files.
8598 2004-04-09 Jon Trowbridge <trow@ximian.com>
8600 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8601 argument. If non-null, the newly-constructed BusConfigParser will
8602 be initialized with the parent's BusLimits instead of the default
8604 (include_file): When including a config file, pass in
8605 the current parser as the parent and then copy the BusLimits
8606 from the included BusConfigParser pack to the current parser.
8607 (process_test_valid_subdir): Renamed from process_test_subdir.
8608 (process_test_equiv_subdir): Added. Walks through a directory,
8609 descending into each subdirectory and loading the config files
8610 it finds there. If any subdirectory contains two config files
8611 that don't produce identical BusConfigParser structs, fail.
8612 For now, the BusConfigParser's BusPolicies are not compared.
8613 (bus_config_parser_test): Call both process_test_valid_subdir and
8614 process_test_equiv_subdir.
8616 * bus/config-loader-libxml.c (bus_config_load): Take a parent
8617 argument and pass it along to the call to bus_config_parser_new.
8618 Also made a few small changes to allow this code to compile.
8620 * bus/config-loader-expat.c (bus_config_load): Take a parent
8621 argument and pass it along to the call to bus_config_parser_new.
8623 * bus/bus.c (bus_context_new): Load the config file
8624 with a NULL parent argument.
8626 2004-03-29 Michael Meeks <michael@ximian.com>
8628 * glib/dbus-gobject.c (introspect_properties): split
8629 out, fix mangled 'while' flow control.
8630 (introspect_signals): implement.
8631 (handle_introspect): update.
8633 2004-03-29 Michael Meeks <michael@ximian.com>
8635 * glib/dbus-gobject.c (set_object_property): split out /
8636 re-work, use the property type, and not the message type(!)
8637 (get_object_property): ditto.
8639 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8640 (dbus_gvalue_marshal): make this code re-usable, needed
8641 for signals too, also on both proxy and server side.
8642 Re-write for more efficiency / readability.
8644 2004-03-29 Michael Meeks <michael@ximian.com>
8646 * dbus/dbus-message.c
8647 (dbus_message_new_error_printf): impl.
8649 * dbus/dbus-connection.c
8650 (dbus_connection_unregister_object_path): fix warning.
8652 * configure.in: fix no-mono-installed situation.
8654 2004-03-27 Havoc Pennington <hp@redhat.com>
8656 Patch from Timo Teräs:
8658 * tools/dbus-send.c (main): if --print-reply, assume type is
8659 method call; support boolean type args
8661 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8662 bunch of memleak and logic bugs
8664 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8666 * mono/Arguments.cs:
8667 * mono/Introspector.cs:
8669 * mono/InterfaceProxy.cs:
8671 * mono/ProxyBuilder.cs:
8673 Added InterfaceProxy class to avoid building proxies for every
8677 * dbus-message.c (dbus_message_append_args_valist)
8678 (dbus_message_iter_get_object_path)
8679 (dbus_message_iter_get_object_path_array)
8680 (dbus_message_iter_append_object_path)
8681 (dbus_message_iter_append_object_path_array):
8682 Added object_path iter functions to handle OBJECT_PATH arguments
8684 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8686 First checkin of mono bindings.
8689 Build stuff for the bindings
8690 * dbus-sharp.pc.in: Added for pkgconfig
8692 2004-03-21 Havoc Pennington <hp@redhat.com>
8694 * test/test-service.c (main): remove debug spew
8696 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8698 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8701 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8702 (dbus_message_iter_init_array_iterator)
8703 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8704 indicate whether the iterator is empty
8706 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8709 2004-03-19 Havoc Pennington <hp@redhat.com>
8711 * NEWS: 0.21 updates
8713 * configure.in: 0.21
8715 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8717 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8718 you don't need pyrex to make dist
8720 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8723 2004-03-18 Richard Hult <richard@imendio.com>
8725 * dbus/dbus-message.c (dbus_message_get_auto_activation)
8726 (dbus_message_set_auto_activation): Add doxygen docs.
8728 2004-03-16 Richard Hult <richard@imendio.com>
8730 * bus/activation.c: (bus_activation_service_created),
8731 (bus_activation_send_pending_auto_activation_messages),
8732 (bus_activation_activate_service):
8734 * bus/dispatch.c: (bus_dispatch),
8735 (check_nonexistent_service_auto_activation),
8736 (check_service_auto_activated),
8737 (check_segfault_service_auto_activation),
8738 (check_existent_service_auto_activation), (bus_dispatch_test):
8739 * bus/driver.c: (bus_driver_handle_activate_service):
8740 * bus/services.c: (bus_registry_acquire_service):
8741 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8742 (dbus_message_get_auto_activation):
8743 * dbus/dbus-message.h:
8744 * dbus/dbus-protocol.h: Implement auto-activation.
8746 * doc/dbus-specification.xml: Add auto-activation to the spec.
8748 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
8750 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8751 fix a bug with CUSTOM types.
8753 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8754 a unit test for this bug (used to fail).
8756 2004-03-12 Mikael Hallendal <micke@imendio.com>
8759 (babysitter_watch_callback): notify all pending activations waiting for
8760 the same exec that the activation failed.
8761 (bus_activation_activate_service): shortcut the activation if we
8762 already waiting for the same executable to start up.
8764 2004-03-12 Mikael Hallendal <micke@imendio.com>
8767 - Added service file reloading.
8768 Each service files directory is kept in an hash table in
8769 BusActivation and each BusActivationEntry knows what .service-file it
8770 was read from. So when you try to activate a service the bus will
8771 check if it's been updated, removed or if new .service-files has
8773 - Test code at the bottom for the service file reloading.
8774 * bus/test-main.c: (main):
8776 - added service reloading test.
8777 * dbus/dbus-sysdeps.c:
8778 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8780 2004-03-08 Michael Meeks <michael@ximian.com>
8782 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
8783 bail immediately if disconnected, to avoid busy loop.
8785 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8786 cleanup cut/paste/inefficiency.
8788 2004-03-01 David Zeuthen <david@fubar.dk>
8790 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8791 bug where args were used twice. This bug resulted in a segfault
8792 on a Debian/PPC system when starting the messagebus daemon. Include
8793 dbus-sysdeps.h for DBUS_VA_COPY
8795 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8797 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8798 appropriate va_copy implementation. From GLib
8800 2004-02-24 Joe Shaw <joe@ximian.com>
8802 * bus/services.c (bus_registry_acquire_service): We need to pass
8803 in the service name to dbus_set_error() to prevent a crash.
8805 2003-12-26 Anders Carlsson <andersca@gnome.org>
8807 * AUTHORS: Reveal my True identity.
8809 2003-12-17 Mikael Hallendal <micke@imendio.com>
8811 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8812 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8814 2003-12-13 Mikael Hallendal <micke@imendio.com>
8816 * doc/TODO: Added not about better error check of configuration files.
8818 2003-12-02 Richard Hult <richard@imendio.com>
8820 * Update AFL version to 2.0 throughout the source files to reflect
8821 the update that was done a while ago.
8823 2003-12-02 Richard Hult <richard@imendio.com>
8825 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8826 wrote_dict_key to FALSE on the iter that the dict is appended to,
8827 just like when appending other types. Fixes a bug where a dict
8828 couldn't be put inside a dict.
8829 (dbus_message_iter_append_dict_key): Fix typo in warning message.
8830 (message_iter_test, _dbus_message_test): Add test case for dict
8833 2003-12-01 David Zeuthen <david@fubar.dk>
8835 * python/dbus.py: Add the actual message when calling the reciever
8836 of a signal such that parameters can be inspected. Add the method
8837 remove_signal_receiver
8839 2003-11-26 Mikael Hallendal <micke@imendio.com>
8843 * glib/*.[ch]: Made ref functions return the pointer
8845 2003-11-25 Zack Rusin <zack@kde.org>
8847 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8849 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
8852 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
8853 the Integrator and to better fit with the server,
8855 2003-11-24 Zack Rusin <zack@kde.org>
8857 * qt/connection.h, qt/connection.cpp: removing initDbus method since
8858 the integrator handles it now
8860 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8861 since QTimer wasn't really meant to be used the way DBusTimeout is
8863 2003-11-24 Zack Rusin <zack@kde.org>
8865 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
8866 Integrator class which integrates D-BUS with the Qt event loop,
8868 * qt/connection.h, qt/connection.cpp: Move all the code which
8869 was dealing with D-BUS integration to the Integrator class,
8870 and start using Integrator,
8872 2003-11-23 Zack Rusin <zack@kde.org>
8874 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
8877 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8878 switching namespaces to DBusQt, reworking the class,
8880 * Makefile.cvs: switching dependencies so that it matches KDE
8883 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
8886 2003-11-19 Havoc Pennington <hp@redhat.com>
8890 * configure.in: bump version to 0.20
8892 * configure.in (have_qt): add yet another place to look for qt
8893 (someone hand trolltech a .pc file...)
8895 2003-11-01 Havoc Pennington <hp@redhat.com>
8897 * doc/dbus-specification.xml: add state machine docs on the auth
8898 protocol; just a first draft, I'm sure it's wrong.
8900 2003-10-28 David Zeuthen <david@fubar.dk>
8902 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8903 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8905 2003-10-28 Havoc Pennington <hp@redhat.com>
8907 * dbus/dbus-message.c (get_next_field): delete unused function
8909 2003-10-28 Havoc Pennington <hp@redhat.com>
8911 * bus/expirelist.c (do_expiration_with_current_time): detect
8912 failure of the expire_func due to OOM
8914 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8916 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8917 NoReply error that's now created by the bus when the service exits
8919 2003-10-28 Havoc Pennington <hp@redhat.com>
8921 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8922 tests for set_path, set_interface, set_member, etc.
8924 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8926 * dbus/dbus-message.c (set_string_field): always just delete and
8927 re-append the field; accept NULL for deletion
8928 (re_align_fields_recurse): reimplement
8930 2003-10-26 Havoc Pennington <hp@redhat.com>
8932 * dbus/dbus-connection.c: fix docs to properly describe the
8933 disconnected message
8934 (_dbus_connection_notify_disconnected): remove this function;
8935 we can't synchronously add the disconnected message, we have to
8936 do it after we've queued any remaining real messages
8937 (_dbus_connection_get_dispatch_status_unlocked): queue the
8938 disconnect message only if the transport has finished queueing all
8939 its real messages and is disconnected.
8940 (dbus_connection_disconnect): update the dispatch status here
8942 2003-10-22 Havoc Pennington <hp@redhat.com>
8944 * bus/bus.c (bus_context_check_security_policy): fix up assertion
8946 * bus/connection.c (bus_transaction_send_from_driver): set the
8947 destination to the connection's base service
8949 2003-10-20 Havoc Pennington <hp@redhat.com>
8951 hmm, make check is currently not passing.
8953 * doc/dbus-specification.xml: add requirement that custom type
8954 names follow the same rules as interface names.
8956 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8957 duplication and allow 'c' to be 'custom'; dict is now 'm' for
8960 * doc/dbus-specification.xml: update type codes to match
8961 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8962 CUSTOM. Add type OBJECT_PATH to the spec.
8964 2003-10-17 Havoc Pennington <hp@redhat.com>
8966 * bus/driver.c (create_unique_client_name): use "." as separator
8967 in base service names instead of '-'
8969 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8970 byte at the end of the string
8972 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8973 optimization macros since string validation seems to be a slow
8976 * doc/dbus-specification.xml: restrict valid
8977 service/interface/member/error names. Add test suite code for the
8980 * dbus/dbus-string.c: limit service/interface/member/error names
8983 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8984 format arg to verbose spew
8986 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8987 memory, return instead of g_error
8989 * test/test-service.c (path_message_func): support emitting a
8992 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8993 activation bus type if DBUS_BUS_ACTIVATION was set; default to
8994 assuming the activation bus was the session bus so that services
8995 started manually will still register.
8996 (init_connections_unlocked): fix so that in OOM situation we get
8997 the same semantics when retrying the function
8999 * test/test-service.c (main): change to use path registration, to
9000 test those codepaths; register with DBUS_BUS_ACTIVATION rather
9001 than DBUS_BUS_SESSION
9003 2003-10-16 Havoc Pennington <hp@redhat.com>
9005 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9007 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9008 coverage of the tests
9009 (coverage-report.txt): don't move the .da and .bbg files around
9011 2003-10-16 Havoc Pennington <hp@redhat.com>
9013 * bus/bus.c (struct BusContext): remove struct field I didn't mean
9016 2003-10-16 Havoc Pennington <hp@redhat.com>
9018 * bus/connection.c (bus_pending_reply_expired): either cancel or
9020 (bus_connections_check_reply): use unlink, not remove_link, as we
9021 don't want to free the link; fixes double free mess
9023 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9024 where no reply was received
9026 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9029 * bus/signals.c (match_rule_matches): add special cases for the
9030 bus driver, so you can match on sender/destination for it.
9032 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9033 DBUS_PRINT_BACKTRACE is set
9035 * dbus/dbus-internals.c: add pid to assertion failure messages
9037 * dbus/dbus-connection.c: add message type code to the debug spew
9039 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9040 sender=foo not service=foo
9042 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9043 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
9044 DBUS_ACTIVATION_ADDRESS instead
9046 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9047 DBUS_SYSTEM_BUS_ADDRESS if appropriate
9049 * bus/bus.c (bus_context_new): handle OOM copying bus type into
9052 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9053 (dbus_message_iter_get_object_path_array): new function (half
9054 finished, disabled for the moment)
9056 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9057 DBUS_MESSAGE_TYPE_ERROR
9059 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9060 avoid redirecting stderr to /dev/null
9061 (babysit): close stdin if not doing the "exit_with_session" thing
9063 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9064 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9065 stdout/stdin, so things don't get confused
9067 * bus/system.conf.in: fix to allow replies, I modified .conf
9068 instead of .conf.in again.
9070 2003-10-14 David Zeuthen <david@fubar.dk>
9072 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9073 argtype to arg_type when raising unknown arg type exception.
9074 Changed type list to reflect the changes in dbus-protocol.h so
9075 the bindings actually work.
9077 2003-10-14 Havoc Pennington <hp@redhat.com>
9079 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9080 to have a bug keeping it from outputting the .da files sometimes
9081 (string_get_string): don't append garbage nul bytes to the string.
9083 2003-10-15 Seth Nickell <seth@gnome.org>
9085 * python/Makefile.am:
9087 Include dbus_h_wrapper.h in the dist tarball.
9089 2003-10-14 Havoc Pennington <hp@redhat.com>
9091 * bus/bus.c (bus_context_check_security_policy): revamp this to
9092 work more sanely with new policy-based requested reply setup
9094 * bus/connection.c (bus_transaction_send_from_driver): set bus
9095 driver messages as no reply
9097 * bus/policy.c (bus_client_policy_check_can_receive): handle a
9098 requested_reply attribute on allow/deny rules
9100 * bus/system.conf: add <allow requested_reply="true"/>
9102 * bus/driver.c (bus_driver_handle_message): fix check for replies
9103 sent to the bus driver, which was backward. How did this ever work
9104 at all though? I think I'm missing something.
9106 * dbus/dbus-message.c (decode_header_data): require error and
9107 method return messages to have a reply serial field to be valid
9108 (_dbus_message_loader_queue_messages): break up this function;
9109 validate that reply serial and plain serial are nonzero;
9110 clean up the OOM/error handling.
9111 (get_uint_field): don't return -1 from this
9112 (dbus_message_create_header): fix signed/unsigned bug
9114 * bus/connection.c (bus_connections_expect_reply): save serial of
9115 the incoming message, not reply serial
9117 2003-10-14 Havoc Pennington <hp@redhat.com>
9119 * bus/connection.c: implement pending reply tracking using
9122 * bus/bus.c (bus_context_check_security_policy): verify that a
9123 reply is pending in order to allow a reply to be sent. Deny
9124 messages of unknown type.
9126 * bus/dbus-daemon-1.1.in: update to mention new resource limits
9128 * bus/bus.c (bus_context_get_max_replies_per_connection): new
9129 (bus_context_get_reply_timeout): new
9131 2003-10-13 Seth Nickell <seth@gnome.org>
9133 * python/Makefile.am:
9135 Pass "make distcheck": remove a couple files from DIST_FILES
9136 that weren't included in the final version.
9138 2003-10-12 Havoc Pennington <hp@pobox.com>
9140 Added test code that 1) starts an actual bus daemon and 2) uses
9141 DBusGProxy; fixed bugs that were revealed by the test. Lots
9142 more testing possible, but this is the basic framework.
9144 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9145 empty proxy lists from the proxy list hash
9147 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9148 couple of return_if_fail checks
9150 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9151 to allocate, so everything is cleared to NULL as it should be.
9153 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9154 source as data to dbus_connection_set_timeout_functions() as the
9155 timeout functions expected
9157 * test/glib/run-test.sh: add a little script to start up a message
9158 bus and run tests using it
9160 * tools/dbus-launch.1: updates
9162 * tools/dbus-launch.c (main): add --config-file option
9164 * tools/dbus-launch.c (main): remove confusing else if (runprog)
9165 that could never be reached.
9167 * dbus/dbus-message.c (dbus_message_new_method_return)
9168 (dbus_message_new_error, dbus_message_new_signal): set the
9169 no-reply-expected flag on all these. Redundant, but may
9170 as well be consistent.
9172 2003-10-11 Havoc Pennington <hp@pobox.com>
9174 * test/decode-gcov.c (function_solve_graph): make broken block
9175 graph a nonfatal error since it seems to be broken. Need to debug
9178 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9179 can't just check type > INVALID < LAST anymore
9181 * dbus/dbus-message.c (dbus_message_get_signature): new function
9182 (dbus_message_has_signature): new function
9183 (struct DBusMessage): add signature field (right now it isn't sent
9184 over the wire, just generated on the fly)
9185 (dbus_message_copy): copy the signature, and init strings to
9186 proper length to avoid some reallocs
9187 (dbus_message_iter_init_array_iterator): return void, since it
9189 (dbus_message_iter_init_dict_iterator): return void since it can't fail
9190 (_dbus_message_loader_queue_messages): add silly temporary hack to
9191 fill in message->signature on load
9193 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9194 characters, so they are relatively human-readable.
9196 2003-10-11 Havoc Pennington <hp@pobox.com>
9198 * dbus/dbus-message.c (_dbus_message_test): add more test
9199 coverage, but #if 0 for now since they uncover a bug
9200 not fixed yet; I think in re_align_field_recurse()
9201 (re_align_field_recurse): add FIXME about broken assertion
9203 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9205 * bus/connection.c: share a couple code bits with expirelist.c
9207 * bus/expirelist.h, bus/expirelist.c: implement a generic
9208 expire-items-after-N-seconds facility, was going to share between
9209 expiring connections and replies, decided not to use for expiring
9210 connections for now.
9212 * COPYING: include AFL 2.0 (still need to change all the file headers)
9214 2003-10-09 Havoc Pennington <hp@redhat.com>
9216 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9217 gcc 3.3. Not that we do anything about it yet.
9219 * bus/signals.c (bus_match_rule_parse): impose max length on the
9222 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9224 2003-10-09 Havoc Pennington <hp@redhat.com>
9226 Make matching rules theoretically work (add parser).
9228 * bus/bus.c (bus_context_check_security_policy): fix up to handle
9229 the case where destination is explicitly specified as bus driver
9230 and someone else is eavesdropping.
9232 * bus/policy.c (bus_client_policy_check_can_receive): fix up
9233 definition of eavesdropping and assertion
9235 * tools/dbus-send.c (main): use dbus_message_type_from_string
9237 * bus/signals.c (bus_match_rule_parse): implement
9239 * dbus/dbus-message.c (dbus_message_type_from_string): new
9241 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9243 2003-10-02 Havoc Pennington <hp@pobox.com>
9245 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9246 dbus_gproxy_oneway_call
9248 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
9249 (dbus_server_setup_with_g_main): fix to allow calling them more
9250 than once on the same args
9251 (dbus_bus_get_with_g_main): new function
9253 2003-10-02 Havoc Pennington <hp@redhat.com>
9255 * doc/dbus-tutorial.xml: write some stuff
9257 2003-09-29 Havoc Pennington <hp@pobox.com>
9259 * configure.in: split checks for Doxygen from XML docs, check for
9262 * doc/Makefile.am: XML-ify all the docs, and add a blank
9265 2003-09-29 Havoc Pennington <hp@pobox.com>
9267 * Merge dbus-object-names branch. To see the entire patch
9268 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9269 it's huuuuge though.
9270 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9272 2003-09-28 Havoc Pennington <hp@pobox.com>
9274 * HACKING: update to reflect new server
9276 2003-09-26 Seth Nickell <seth@gnome.org>
9279 * python/examples/example-signals.py:
9281 Start implementing some notions of signals. The API
9282 is really terrible, but they sort of work (with the
9283 exception of being able to filter by service, and to
9284 transmit signals *as* a particular service). Need to
9285 figure out how to make messages come from the service
9288 * python/dbus_bindings.pyx.in:
9290 Removed duplicate message_handler callbacks.
9292 2003-09-25 Havoc Pennington <hp@redhat.com>
9294 * bus/session.conf.in: fix my mess
9296 2003-09-25 Havoc Pennington <hp@pobox.com>
9298 * bus/session.conf.in: fix security policy, reported by Seth Nickell
9300 2003-09-25 Seth Nickell <seth@gnome.org>
9302 * python/examples/example-service.py:
9304 Johan notices complete wrong code in example-service, but
9305 completely wrong in a way that works exactly the same (!).
9306 Johan is confused, how could this possibly work? Example
9307 code fails to serve purpose of making things clear.
9310 2003-09-25 Mark McLoughlin <mark@skynet.ie>
9312 * doc/dbus-specification.sgml: don't require header fields
9313 to be 4-byte aligned and specify that fields should be
9314 distinguished from padding by the fact that zero is not
9317 * doc/TODO: remove re-alignment item and add item to doc
9318 the OBJECT_PATH type.
9320 * dbus/dbus-message.c:
9321 (HeaderField): rename the original member to value_offset
9322 and introduce a name_offset member to keep track of where
9323 the field actually begins.
9324 (adjust_field_offsets): remove.
9325 (append_int_field), (append_uint_field),
9326 (append_string_field): don't align the start of the header
9327 field to a 4-byte boundary.
9328 (get_next_field): impl finding the next marhsalled field
9329 after a given field.
9330 (re_align_field_recurse): impl re-aligning a number of
9331 already marshalled fields.
9332 (delete_field): impl deleting a field of any type and
9333 re-aligning any following fields.
9334 (delete_int_or_uint_field), (delete_string_field): remove.
9335 (set_int_field), (set_uint_field): no need to re-check
9336 that we have the correct type for the field.
9337 (set_string_field): ditto and impl re-aligning any
9339 (decode_header_data): update to take into account that
9340 the fields aren't 4-byte aligned any more and the new
9341 way to distinguish padding from header fields. Also,
9342 don't exit when there is too much header padding.
9343 (process_test_subdir): print the directory.
9344 (_dbus_message_test): add test to make sure a following
9345 field is re-aligned correctly after field deletion.
9347 * dbus/dbus-string.[ch]:
9348 (_dbus_string_insert_bytes): rename from insert_byte and
9349 allow the insert of multiple bytes.
9350 (_dbus_string_test): test inserting multiple bytes.
9352 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9353 warning note to docs about having to re-align any
9354 marshalled values following the string.
9356 * dbus/dbus-message-builder.c:
9357 (append_string_field), (_dbus_message_data_load):
9358 don't align the header field.
9360 * dbus/dbus-auth.c: (process_test_subdir): print the
9363 * test/break-loader.c: (randomly_add_one_byte): upd. for
9366 * test/data/invalid-messages/bad-header-field-alignment.message:
9369 * test/data/valid-messages/unknown-header-field.message: shove
9370 a dict in the unknown field.
9372 2003-09-25 Seth Nickell <seth@gnome.org>
9375 * python/dbus_bindings.pyx.in:
9377 Handle return values.
9379 * python/examples/example-client.py:
9380 * python/examples/example-service.py:
9382 Pass back return values from the service to the client.
9384 2003-09-24 Seth Nickell <seth@gnome.org>
9388 Connect Object methods (when you are sharing an object) up... pass
9389 in a list of methods to be shared. Sharing all the methods just
9390 worked out too weird. You can now create nice Services over the
9393 * python/dbus_bindings.pyx.in:
9395 Keep references to user_data tuples passed into C functions so
9396 Python doesn't garbage collect on us.
9398 Implement MethodReturn and Error subclasses of Message for creating
9399 DBusMessage's of those types.
9401 * python/examples/example-client.py:
9402 * python/examples/example-service.py:
9404 Simple example code showing both how create DBus services and objects,
9405 and how to use them.
9407 2003-09-23 Havoc Pennington <hp@pobox.com>
9409 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9411 2003-09-23 Havoc Pennington <hp@redhat.com>
9413 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9414 (dbus_gproxy_disconnect_signal): implement
9415 (dbus_gproxy_manager_remove_signal_match): implement
9416 (dbus_gproxy_manager_add_signal_match): implement
9417 (dbus_gproxy_oneway_call): implement
9419 2003-09-23 Havoc Pennington <hp@pobox.com>
9421 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9422 subclass. This means dropping the transparent thread safety of the
9423 proxy; you now need a separate proxy per-thread, or your own
9424 locking on the proxy. Probably right anyway.
9425 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9427 2003-09-22 Havoc Pennington <hp@redhat.com>
9429 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9431 2003-09-21 Seth Nickell <seth@gnome.org>
9433 First checkin of the Python bindings.
9435 * python/.cvsignore:
9436 * python/Makefile.am:
9437 * python/dbus_bindings.pyx.in:
9438 * python/dbus_h_wrapper.h:
9440 Pieces for Pyrex to operate on, building a dbus_bindings.so
9441 python module for low-level access to the DBus APIs.
9445 High-level Python module for accessing DBus objects.
9450 Build stuff for the python bindings.
9454 Extra macro needed for finding the Python C header files.
9456 2003-09-21 Havoc Pennington <hp@pobox.com>
9458 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9459 implementing the proxy manager, didn't get very far.
9461 * dbus/dbus-bus.c (dbus_bus_add_match): new
9462 (dbus_bus_remove_match): new
9464 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9465 path_name argument; adjust the other not-yet-implemented
9466 gproxy constructors to be what I think they should be.
9468 2003-09-21 Havoc Pennington <hp@pobox.com>
9470 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9471 by default for message bus connections.
9473 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9474 exit_on_disconnect flag is set and we process the disconnected
9476 (dbus_connection_set_exit_on_disconnect): new function
9478 2003-09-21 Havoc Pennington <hp@pobox.com>
9480 Get matching rules mostly working in the bus; only actually
9481 parsing the rule text remains. However, the client side of
9482 "signal connections" hasn't been started, this patch is only the
9485 * dbus/dispatch.c: fix for the matching rules changes
9487 * bus/driver.c (bus_driver_handle_remove_match)
9488 (bus_driver_handle_add_match): send an ack reply from these
9491 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9492 arguments, reported by Seth Nickell
9494 * bus/config-parser.c (append_rule_from_element): support
9495 eavesdrop=true|false attribute on policies so match rules
9496 can be prevented from snooping on the system bus.
9498 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9499 and "destination" in attribute names; fix some docs bugs;
9500 add eavesdrop=true|false attribute
9502 * bus/driver.c (bus_driver_handle_add_match)
9503 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9506 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9507 rid of broadcast service concept, signals are just always broadcast
9509 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9510 mostly implement matching rules stuff (currently only exposed as signal
9513 2003-09-21 Mark McLoughlin <mark@skynet.ie>
9515 * doc/dbus-specification.sgml: Change the header field name
9516 to be an enum and update the rest of the spec to reference
9517 the fields using the conventinal name.
9519 * dbus/dbus-protocol.h: update to reflect the spec.
9521 * doc/TODO: add item to remove the 4 byte alignment requirement.
9523 * dbus/dbus-message.c: Remove the code to generalise the
9524 header/body length and serial number header fields as named
9525 header fields so we can reference field names using the
9527 (append_int_field), (append_uint_field), (append_string_field):
9528 Append the field name as a byte rather than four chars.
9529 (delete_int_or_uint_field), (delete_string_field): reflect the
9530 fact that the field name and typecode now occupy 4 bytes instead
9532 (decode_string_field), (decode_header_data): update to reflect
9533 protocol changes and move the field specific encoding from
9534 decode_string_field() back into decode_header_data().
9536 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9537 Add utility to aid debugging.
9539 * dbus/dbus-message-builder.c:
9540 (append_string_field), (_dbus_message_data_load): Update to
9541 reflect protocol changes; Change the FIELD_NAME directive
9542 to HEADER_FIELD and allow it to take the field's conventional
9543 name rather than the actual value.
9545 * test/data/*/*.message: Update to use HEADER_FIELD instead
9546 of FIELD_NAME; Always align the header on an 8 byte boundary
9547 *before* updating the header length.
9549 2003-09-15 Havoc Pennington <hp@pobox.com>
9551 * dbus/dbus-pending-call.c: add the get/set object data
9552 boilerplate as for DBusConnection, etc. Use generic object data
9553 for the notify callback.
9555 * glib/dbus-gparser.c (parse_node): parse child nodes
9557 * tools/dbus-viewer.c: more hacking on the dbus-viewer
9559 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9560 contain functions shared between the convenience lib and the
9563 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9564 -export-symbols-regex to the GLib library
9566 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9567 fix the locking in here, and add a default handler for
9568 Introspect() that just returns sub-nodes.
9570 2003-09-14 Havoc Pennington <hp@pobox.com>
9572 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9573 rather than gfoo consistent
9575 * glib/dbus-gproxy.h: delete for now, move contents to
9576 dbus-glib.h, because the include files don't work right since we
9577 aren't in the dbus/ subdir.
9579 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9580 (dbus_gproxy_end_call): finish
9581 (dbus_gproxy_begin_call): finish
9583 * glib/dbus-gmain.c (dbus_set_g_error): new
9585 * glib/dbus-gobject.c (handle_introspect): include information
9586 about child nodes in the introspection
9588 * dbus/dbus-connection.c (dbus_connection_list_registered): new
9589 function to help in implementation of introspection
9591 * dbus/dbus-object-tree.c
9592 (_dbus_object_tree_list_registered_and_unlock): new function
9594 2003-09-12 Havoc Pennington <hp@pobox.com>
9596 * glib/dbus-gidl.h: add common base class for all the foo_info
9599 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9602 * test/Makefile.am: try test srcdir -ef . in addition to test
9603 srcdir = ., one of them should work (yeah lame)
9605 * glib/Makefile.am: build the "idl" parser stuff as a convenience
9608 * glib/dbus-gparser.h: make description_load routines return
9609 NodeInfo* not Parser*
9611 * Makefile.am (SUBDIRS): build test dir after all library dirs
9613 * configure.in: add GTK+ detection
9615 2003-09-07 Havoc Pennington <hp@pobox.com>
9617 * Make Doxygen contented.
9619 2003-09-07 Havoc Pennington <hp@pobox.com>
9621 * doc/dbus-specification.sgml: more updates
9623 2003-09-06 Havoc Pennington <hp@pobox.com>
9625 * doc/dbus-specification.sgml: partial updates
9627 * bus/dbus-daemon-1.1.in: fix the config file docs for the
9628 zillionth time; hopefully I edited the right file this time.
9630 * bus/config-parser.c (append_rule_from_element): support
9631 send_type, send_path, receive_type, receive_path
9633 * bus/policy.c: add message type and path to the list of things
9634 that can be "firewalled"
9636 2003-09-06 Havoc Pennington <hp@pobox.com>
9638 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9639 (dbus_connection_register_object_path): make this not handle
9640 messages to paths below the given path
9642 2003-09-03 Havoc Pennington <hp@pobox.com>
9644 * test/glib/Makefile.am: add this with random glib-linked test
9647 * glib/Makefile.am: remove the random test programs from here,
9648 leave only the unit tests
9650 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
9651 uscore/javacaps conversion, and fix
9652 (get_object_property, set_object_property): change to .NET
9653 convention for mapping props to methods, set_FooBar/get_FooBar,
9654 since one language has such a convention we may as well copy it.
9655 Plus real methods in either getFooBar or get_foo_bar style won't
9656 collide with this convention.
9658 2003-09-01 Havoc Pennington <hp@pobox.com>
9660 * glib/dbus-gparser.c: implement
9662 * glib/dbus-gobject.c: start implementing skeletons support
9664 * configure.in: when disabling checks/assert, also define
9665 G_DISABLE_ASSERT and G_DISABLE_CHECKS
9667 2003-09-01 Havoc Pennington <hp@pobox.com>
9669 * glib/Makefile.am: rearrange a bunch of files and get "make
9670 check" framework set up
9672 2003-08-31 Havoc Pennington <hp@pobox.com>
9674 * fix build with --disable-tests
9676 2003-08-30 Havoc Pennington <hp@pobox.com>
9678 * dbus/dbus-connection.c: purge DBusMessageHandler
9680 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
9681 use callbacks everywhere
9683 2003-08-30 Havoc Pennington <hp@pobox.com>
9685 * test/data/valid-config-files/system.d/test.conf: change to
9686 root for the user so warnings don't get printed
9688 * dbus/dbus-message.c: add dbus_message_get_path,
9689 dbus_message_set_path
9691 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9692 dispatching to a path
9694 * dbus/dbus-string.c (_dbus_string_validate_path): add
9696 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9697 (_dbus_marshal_object_path): implement
9699 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
9700 to contain the path to the target object
9701 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9702 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9704 2003-08-30 Havoc Pennington <hp@pobox.com>
9706 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9708 2003-08-29 Havoc Pennington <hp@pobox.com>
9710 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9712 (struct DBusObjectSubtree): shrink this
9713 a lot, since we may have a lot of them
9714 (_dbus_object_tree_free_all_unlocked): implement
9715 (_dbus_object_tree_dispatch_and_unlock): implement
9717 2003-08-29 Havoc Pennington <hp@pobox.com>
9719 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9721 2003-08-28 Havoc Pennington <hp@pobox.com>
9725 * dbus/dbus-connection.c: port to no ObjectID, create a
9726 DBusObjectTree, rename ObjectTree to ObjectPath in public API
9728 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
9729 everything except UnregisterFunction and MessageFunction
9731 * dbus/dbus-marshal.c: port away from DBusObjectID,
9732 add DBUS_TYPE_OBJECT_PATH
9734 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
9735 dbus/dbus-objectid.[hc]: remove these, we are moving to
9736 path-based object IDs
9738 2003-08-25 Havoc Pennington <hp@pobox.com>
9740 Just noticed that dbus_message_test is hosed, I wonder when I
9741 broke that. I thought make check was passing earlier...
9743 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
9744 container tree, will replace most of dbus-object-registry
9746 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9749 2003-08-19 Havoc Pennington <hp@pobox.com>
9751 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9752 (dbus_message_is_error): fix this function
9754 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9757 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9758 reflect clarified man page
9759 (bus_client_policy_check_can_send): ditto
9761 * bus/session.conf.in: fixup
9763 * bus/system.conf.in: fixup
9765 2003-08-18 Havoc Pennington <hp@redhat.com>
9767 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9769 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9770 dumb bug created earlier (wrong order of args to
9771 decode_header_data())
9773 * tools/dbus-send.c: port
9775 * tools/dbus-print-message.c (print_message): port
9777 * test/data/*messages: port all messages over
9779 * dbus/dbus-message-builder.c: support including
9782 * bus/driver.c: port over
9784 * bus/dispatch.c: port over to new stuff
9786 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9787 rename disconnect signal to "Disconnected"
9789 2003-08-17 Havoc Pennington <hp@pobox.com>
9791 This doesn't compile yet, but syncing up so I can hack on it from
9792 work. What are branches for if not broken code? ;-)
9794 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9795 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9796 DBUS_HEADER_FIELD_ERROR_NAME
9798 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9799 for the interface+member pairs
9800 (string_hash): change to use g_str_hash algorithm
9801 (find_direct_function, find_string_function): refactor these to
9804 * dbus/dbus-message.c: port all of this over to support
9805 interface/member fields instead of name field
9807 * dbus/dbus-object-registry.c: port over
9809 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9810 from _dbus_string_validate_name
9812 * bus/dbus-daemon-1.1: change file format for the
9813 <deny>/<allow> stuff to match new message naming scheme
9815 * bus/policy.c: port over
9817 * bus/config-parser.c: parse new format
9819 2003-08-16 Havoc Pennington <hp@pobox.com>
9821 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9824 * glib/dbus-gproxy.c: some hacking
9826 2003-08-15 Havoc Pennington <hp@redhat.com>
9828 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9830 * dbus/dbus-connection.c
9831 (dbus_connection_send_with_reply_and_block): factor out internals;
9832 change to convert any error replies to DBusError instead of
9833 returning them as a message
9835 2003-08-15 Havoc Pennington <hp@pobox.com>
9837 * dbus/dbus-connection.c,
9838 dbus/dbus-pending-call.c: Finish the pending call stuff
9840 2003-08-14 Havoc Pennington <hp@redhat.com>
9842 * dbus/dbus-pending-call.c: start on new object that will replace
9843 DBusMessageHandler and ReplyHandlerData for tracking outstanding
9846 * dbus/dbus-gproxy.c: start on proxy object used to communicate
9847 with remote interfaces
9849 * dbus/dbus-gidl.c: do the boring boilerplate in here
9851 2003-08-12 Havoc Pennington <hp@pobox.com>
9853 * bus/dispatch.c (bus_dispatch): make this return proper
9854 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9856 * dbus/dbus-errors.c (dbus_set_error): use
9857 _dbus_string_append_printf_valist
9859 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9860 (_dbus_string_append_printf): new
9862 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9865 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9866 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9867 message is unhandled.
9869 2003-08-11 Havoc Pennington <hp@pobox.com>
9871 * bus/test.c (client_disconnect_handler): change to return
9872 HANDLED (would have been REMOVE_MESSAGE)
9874 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9875 HANDLED/NOT_YET_HANDLED instead of
9876 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
9879 2003-08-10 Havoc Pennington <hp@pobox.com>
9881 * tools/dbus-send.c (main): add --type argument, for now
9882 supporting only method_call and signal types.
9884 * tools/dbus-print-message.c: print message type
9886 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9887 init connection->objects
9889 * doc/dbus-specification.sgml: fix sgml
9891 * bus/*.c: port over to object-instance API changes
9893 * test/test-service.c: ditto
9895 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9896 name, we will have to fix up the rest of the code to also handle
9898 (dbus_message_new): generic message-creation call
9899 (set_string_field): allow appending name field
9901 2003-08-06 Havoc Pennington <hp@pobox.com>
9903 * dbus/dbus-object-registry.c: implement signal connection
9906 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9908 * dbus/dbus-internals.c (_dbus_memdup): new function
9910 2003-08-02 Havoc Pennington <hp@pobox.com>
9912 * dbus/dbus-message.c (dbus_message_get_no_reply)
9913 (dbus_message_set_no_reply): add these and remove
9914 set_is_error/get_is_error
9916 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
9917 remove the ERROR flag, since there's now an ERROR type
9919 2003-08-01 Havoc Pennington <hp@pobox.com>
9921 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9924 * dbus/dbus-message.c (dbus_message_get_type): new function
9926 * doc/dbus-specification.sgml: add "type" byte to messages
9928 2003-08-01 Havoc Pennington <hp@pobox.com>
9930 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9931 a message type enum to distinguish kinds of message
9932 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
9933 that need not be replied to
9935 2003-08-01 Havoc Pennington <hp@pobox.com>
9937 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9938 (unpack_8_octets): fix no-64-bit-int bug
9940 * dbus/dbus-object-registry.c (validate_id): validate the
9941 connection ID bits, not just the instance ID.
9943 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9944 the connection-global 33 bits of the object ID
9946 * dbus/dbus-object-registry.c (info_from_entry): fill in
9947 object ID in the new way
9949 * dbus/dbus-objectid.h: rather than high/low bits, specifically
9950 define server/client/instance bits.
9952 2003-07-30 Havoc Pennington <hp@pobox.com>
9954 * dbus/dbus-connection.c (dbus_connection_register_object): fix
9957 2003-07-13 Havoc Pennington <hp@pobox.com>
9959 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9960 fields to DBusObjectVTable and DBusObjectInfo
9962 2003-07-12 Havoc Pennington <hp@pobox.com>
9964 * dbus/dbus-object-registry.c: implement unit test,
9965 fix bugs discovered in process
9967 * dbus/dbus-connection.c: remove handler_table and
9968 register_handler(), add DBusObjectRegistry usage
9970 * dbus/dbus-objectid.c (dbus_object_id_is_null)
9971 (dbus_object_id_set_null): new functions
9973 2003-07-08 Havoc Pennington <hp@pobox.com>
9975 * dbus/dbus-object.c: implement some of this
9977 * dbus/dbus-object-registry.c
9978 (_dbus_object_registry_add_and_unlock): fill in the object_id out
9980 (_dbus_object_registry_new): handle OOM
9982 2003-07-08 Havoc Pennington <hp@pobox.com>
9984 * dbus/dbus-object.h: sketch out an API for registering objects
9985 with a connection, that allows us to use as little as 24 bytes
9986 per object and lets application code represent an object in
9987 any conceivable way.
9989 * dbus/dbus-object-registry.c: implement the hard bits of the
9990 DBusConnection aspect of object API. Not yet wired up.
9992 2003-07-06 Havoc Pennington <hp@pobox.com>
9994 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9995 (_dbus_marshal_object_id): new
9996 (_dbus_demarshal_object_id): new
9997 (_dbus_marshal_get_arg_end_pos): support object ID type, and
9998 consolidate identical switch cases. Don't conditionalize handling
9999 of DBUS_TYPE_UINT64, need to handle the type always.
10000 (_dbus_marshal_validate_arg): consolidate identical cases, and
10001 handle DBUS_TYPE_OBJECT_ID
10003 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10005 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10007 2003-09-28 Havoc Pennington <hp@pobox.com>
10009 * real 0.13 release
10011 2003-09-28 Havoc Pennington <hp@pobox.com>
10013 * doc/Makefile.am (dbus-specification.html): testing a funky hack
10014 to work with Debian db2html
10016 2003-09-28 Havoc Pennington <hp@pobox.com>
10018 * configure.in: 0.13
10020 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10021 stylesheet-images for benefit of Debian
10023 Change back to using filesystem-linked sockets for the system
10024 bus, so only root can create the default system bus address.
10026 * bus/system.conf.in: change to use
10027 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10029 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10032 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10033 here, and AC_DEFINE DBUS_SYSTEM_PATH
10035 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10038 * doc/busconfig.dtd:
10041 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10043 * doc/dbus-specification.sgml:
10044 Add activation reply values.
10046 2003-08-05 Havoc Pennington <hp@redhat.com>
10048 * configure.in: 0.12
10050 2003-08-05 Anders Carlsson <andersca@codefactory.se>
10052 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10053 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10054 (add_watch), (remove_watch), (create_source):
10055 Refcount fds, fixes some reentrancy issues.
10057 2003-07-30 Havoc Pennington <hp@redhat.com>
10059 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10060 bus address to be abstract if we have abstract sockets
10064 2003-07-28 Havoc Pennington <hp@redhat.com>
10066 * bus/messagebus.in: fix to avoid processname/servicename
10067 confusion, from Michael Kearey
10068 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10070 2003-07-23 Havoc Pennington <hp@pobox.com>
10072 * dbus/dbus-message.c (dbus_message_iter_get_named):
10073 fix from Andy Hanton to remove broken "+1"
10075 2003-07-16 Havoc Pennington <hp@pobox.com>
10077 * tools/dbus-launch.c (babysit): close stdout/stderr in the
10078 babysitter process, as suggested by Thomas Leonard, so
10079 an "eval `dbus-launch --exit-with-session`" will actually
10082 2003-07-16 Havoc Pennington <hp@pobox.com>
10084 * configure.in: print out EXPANDED_* variables in the summary at
10085 the end; clean up the code that computes EXPANDED_ variables and
10086 get the ones using exec_prefix right. Should make things work
10087 when you build without --prefix
10089 2003-06-29 Havoc Pennington <hp@pobox.com>
10091 * mono/Test.cs (class Test): fire up a main loop and run it
10093 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10094 done once, the app has to do it
10096 2003-06-26 Havoc Pennington <hp@pobox.com>
10098 * mono/Connection.cs: set up connection with the glib main loop
10100 2003-07-01 Havoc Pennington <hp@redhat.com>
10102 * doc/dbus-specification.sgml: clarify the format of a type code,
10103 change suggested by Jim Blandy
10105 2003-06-29 Miloslav Trmac <mitr@volny.cz>
10108 * tools/Makefile.am: Don't assume srcdir == builddir.
10110 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10111 the allocated block.
10112 (_dbus_memory_test): New function.
10113 * dbus/dbus-test.h: Add _dbus_memory_test ().
10114 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10116 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10118 (dbus_message_new): Remove obsolete @todo.
10120 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10121 (_dbus_marshal_set_uint64): Fix comment.
10123 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10124 hardcode FIELD_REPLY_SERIAL.
10126 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10127 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10129 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10130 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10132 2003-06-24 Havoc Pennington <hp@pobox.com>
10134 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10136 2003-06-23 Anders Carlsson <andersca@codefactory.se>
10142 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10143 * gcj/org/.cvsignore:
10144 * gcj/org/Makefile.am:
10145 * gcj/org/freedesktop/.cvsignore:
10146 * gcj/org/freedesktop/Makefile.am:
10147 * gcj/org/freedesktop/dbus/.cvsignore:
10148 * gcj/org/freedesktop/dbus/Makefile.am:
10149 * gcj/org/freedesktop/dbus/Message.java: (Message),
10151 * gcj/org/freedesktop/dbus/natMessage.cc:
10152 Fix the build system.
10154 2003-06-22 Havoc Pennington <hp@pobox.com>
10156 * mono/Connection.cs: add more bindings
10158 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10161 2003-06-22 Havoc Pennington <hp@pobox.com>
10163 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10164 Start wrapping more stuff.
10166 2003-06-22 Havoc Pennington <hp@pobox.com>
10168 * mono/Message.cs: implement Message.Wrap() that ensures we only
10169 have a single C# wrapper per DBusMessage, assuming it works which
10170 it probably doesn't.
10172 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10173 (dbus_message_free_data_slot): new
10174 (dbus_message_set_data): new
10175 (dbus_message_get_data): new
10177 2003-06-22 Havoc Pennington <hp@pobox.com>
10179 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10180 (_dbus_data_slot_allocator_alloc): rework these to keep a
10181 reference count on each slot and automatically manage a global
10182 slot ID variable passed in by address
10184 * bus/bus.c: convert to new dataslot API
10186 * dbus/dbus-bus.c: convert to new dataslot API
10188 * dbus/dbus-connection.c: convert to new dataslot API
10190 * dbus/dbus-server.c: convert to new dataslot API
10192 * glib/dbus-gmain.c: ditto
10194 * bus/test.c: ditto
10196 * bus/connection.c: ditto
10198 2003-06-22 Anders Carlsson <andersca@codefactory.se>
10200 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10201 after the gcj checks so that the correct configuration tags
10202 will be added to libtool.
10204 * dbus-glib-1.pc.in: No need to specify any includes since
10205 dbus-1.pc.in has those.
10207 2003-06-22 Havoc Pennington <hp@pobox.com>
10209 * mono/*, gcj/*, configure.in, Makefile.am:
10210 Check in makefiles and subdirs for mono and gcj bindings.
10211 Neither binding actually exists, just trying to get through
10212 all the build and other boring bits.
10214 2003-06-21 Philip Blundell <philb@gnu.org>
10216 * tools/dbus-monitor.1: Updated.
10218 * tools/dbus-send.1: Likewise.
10220 2003-06-20 Anders Carlsson <andersca@codefactory.se>
10222 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10223 for hangup and error after checking read so we won't discard
10224 pending data if both hangup and read are set.
10226 2003-06-19 Philip Blundell <philb@gnu.org>
10228 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10230 * tools/dbus-send.c: Accept both --system and --session.
10232 * tools/dbus-monitor.c: Same here.
10234 2003-06-19 Anders Carlsson <andersca@codefactory.se>
10236 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10237 from C++ (Patch by Miloslav Trmac).
10239 2003-06-15 Joe Shaw <joe@assbarn.com>
10241 * configure.in: Check for socklen_t.
10243 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10245 * test/test-segfault.c: Add #include <sys/time.h>
10247 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10248 dbus-launch needs it.
10250 2003-06-09 Havoc Pennington <hp@redhat.com>
10252 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10253 SUN_LEN, it breaks abstract socket usage
10255 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10258 2003-06-04 Havoc Pennington <hp@pobox.com>
10260 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10261 using unix:abstract=/foo, and when listening in a tmpdir
10262 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10264 * dbus/dbus-transport.c (_dbus_transport_open): support
10267 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10268 support abstract sockets
10270 * dbus/dbus-transport-unix.c
10271 (_dbus_transport_new_for_domain_socket): support abstract sockets
10273 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10274 toggle as an argument, implement abstract namespace support
10275 (_dbus_listen_unix_socket): ditto
10277 * configure.in: add --enable-abstract-sockets and implement
10278 a configure check for autodetection of the right value.
10280 2003-06-01 Havoc Pennington <hp@pobox.com>
10282 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10283 in /tmp (though on Linux this will end up being useless,
10284 when we add abstract namespace support)
10286 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10289 2003-05-28 Colin Walters <walters@verbum.org>
10291 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10293 2003-05-18 Anders Carlsson <andersca@codefactory.se>
10295 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10297 2003-05-17 Colin Walters <walters@gnu.org>
10299 * tools/dbus-send.c: Don't exit with an error code if --help was
10300 passed. Default to using the session bus instead of the system
10303 * tools/dbus-launch.c: Ditto.
10305 * tools/dbus-monitor.c: Ditto.
10307 * tools/dbus-send.1: Update with new arguments.
10309 * tools/dbus-launch.c: Emit code to export variables. New
10310 arguments -s and -c to specify shell syntax, and a bit of code to
10311 autodetect syntax. Also, allow specifying a program to run.
10313 * tools/dbus-launch.1: Update with new arguments.
10315 * tools/dbus-send.1: Ditto.
10317 * tools/dbus-monitor.1: Ditto.
10319 2003-05-17 Havoc Pennington <hp@pobox.com>
10321 * bus/config-parser.c (merge_included): merge in policies from
10322 child configuration file.
10324 * bus/policy.c (bus_policy_merge): function to merge two policies
10327 2003-05-16 Havoc Pennington <hp@redhat.com>
10329 * dbus/dbus-connection.c: disable verbose lock spew
10331 * tools/dbus-send.c: add --print-reply command line option
10333 * tools/dbus-print-message.h (print_message): new util function
10334 shared by dbus-send and dbus-monitor
10336 * tools/dbus-monitor.c (handler_func): exit on disconnect
10338 * dbus/dbus-transport-unix.c (do_reading): if the transport is
10339 disconnected, don't try to use the read_watch
10341 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10342 so we can find this bug more easily
10344 2003-05-16 Havoc Pennington <hp@redhat.com>
10346 * bus/policy.c (free_rule_list_func): avoid a crash when passed
10347 NULL as DBusHashTable is annoyingly likely to do.
10349 2003-05-16 Colin Walters <walters@verbum.org>
10351 * tools/dbus-monitor.c: Add --session argument and usage()
10354 * tools/dbus-monitor.1: Update with new --session arg.
10356 * bus/Makefile.am (install-data-hook): Create
10357 $(libdir)/dbus-1.0/services so that the session bus is happy.
10359 2003-05-15 Havoc Pennington <hp@redhat.com>
10361 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10362 on non-x86. ifdef's are evil.
10364 2003-05-15 Havoc Pennington <hp@redhat.com>
10366 * configure.in: 0.11
10370 * bus/Makefile.am (initddir): apparently we are supposed to put
10371 init scripts in /etc/rc.d/init.d not /etc/init.d
10373 * bus/Makefile.am: remove the "you must --enable-tests to make
10374 check" as it broke distcheck
10376 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10378 2003-05-13 James Willcox <jwillcox@gnome.org>
10381 * bus/activation.c: (bus_activation_service_created),
10382 (bus_activation_activate_service):
10383 * bus/driver.c: (bus_driver_send_service_deleted),
10384 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10385 (bus_driver_send_service_acquired),
10386 (bus_driver_send_welcome_message),
10387 (bus_driver_handle_list_services):
10388 * bus/session.conf.in:
10389 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10390 (dbus_bus_service_exists), (dbus_bus_activate_service):
10393 Add some convenience API which lets you activate a service, and did a
10394 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10395 and dbus_message_get_args()
10397 2003-05-11 Havoc Pennington <hp@pobox.com>
10399 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10400 calling _dbus_marshal_validate_arg() for every byte in a byte
10403 * dbus/dbus-message-handler.c: use atomic reference counting to
10404 reduce number of locks slightly; the global lock in here sucks
10406 * dbus/dbus-connection.c
10407 (_dbus_connection_update_dispatch_status_and_unlock): variant of
10408 update_dispatch_status that can be called with lock held; then use
10409 in a couple places to reduce locking/unlocking
10410 (dbus_connection_send): hold the lock over the whole function
10411 instead of acquiring it twice.
10413 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10415 * bus/connection.c (bus_connections_setup_connection): fix access
10416 to already-freed memory.
10418 * dbus/dbus-connection.c: keep a little cache of linked list
10419 nodes, to avoid using the global linked list alloc lock in the
10420 normal send-message case. Instead we just use the connection lock
10421 that we already have to take.
10423 * dbus/dbus-list.c (_dbus_list_find_last): new function
10425 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10426 change to use a struct for the atomic type; fix docs,
10427 they return value before increment, not after increment.
10429 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10430 (_dbus_string_append_8_aligned): new functions to try to
10431 microoptimize this operation.
10432 (reallocate_for_length): break this out of set_length(), to
10433 improve profile info, and also so we can consider inlining the
10436 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10437 strings with some preallocation, cuts down on our calls to realloc
10438 a fair bit. Though if we can get the "move entire string to empty
10439 string" optimization below to kick in here, it would be better.
10441 * dbus/dbus-string.c (_dbus_string_move): just call
10442 _dbus_string_move_len
10443 (_dbus_string_move_len): add a special case for moving
10444 an entire string into an empty string; we can just
10445 swap the string data instead of doing any reallocs.
10446 (_dbus_string_init_preallocated): new function
10448 2003-05-11 Havoc Pennington <hp@pobox.com>
10450 Write a "test-profile" that does echo client-server with threads;
10451 profile reveals lock contention, memcpy/realloc of buffers, and
10452 UTF-8 validation as hot spots. 20% of lock contention eliminated
10453 with dbus_atomic_inc/dec implementation on x86. Much remaining
10454 contention is global mempool locks for GList and DBusList.
10456 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10459 * dbus/dbus-connection.c (struct DBusConnection): use
10460 dbus_atomic_t for the reference count
10462 * dbus/dbus-message.c (struct DBusMessage): declare
10463 dbus_atomic_t values as volatile
10465 * configure.in: code to detect ability to use atomic integer
10466 operations in assembly, from GLib patch
10468 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10469 time, tired of it being wrong in threads and forked processes
10471 * glib/test-profile.c: a little program to bounce messages back
10472 and forth between threads and eat CPU
10474 * dbus/dbus-connection.c: add debug spew macros for debugging
10475 thread locks; include config.h at top; fix deadlock in
10476 dbus_connection_flush()
10478 2003-05-08 Havoc Pennington <hp@pobox.com>
10480 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10481 data from getting written, and there wasn't a good reason to
10484 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10485 dbus_verbose lines in test coverage
10486 (main): add list of functions sorted by # of untested blocks
10487 to the coverage report
10489 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10491 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10493 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10494 extend test coverage
10496 * test/data/auth/cancel.auth-script: test canceling an
10499 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10500 aren't used. in CVS history if we end up needing them.
10502 2003-05-04 Havoc Pennington <hp@pobox.com>
10504 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10507 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10508 function, which assumed length was in # of strings, not bytes
10510 * dbus/dbus-message.c (_dbus_message_test): add tests for some
10513 * dbus/dbus-connection.c
10514 (_dbus_connection_queue_received_message): disable function for
10515 now, we are only using it in test mode
10517 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10518 remove a mistaken FIXME
10520 2003-05-04 Havoc Pennington <hp@pobox.com>
10522 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10523 unlock mutex on successful return, patch from Anders Gustafsson
10525 2003-05-04 Havoc Pennington <hp@pobox.com>
10527 * dbus-glib-1.pc.in (Requires): fix dependencies, from
10530 2003-05-04 Havoc Pennington <hp@pobox.com>
10532 * tools/dbus-launch.c: implement
10534 * bus/main.c (main), bus/bus.c (bus_context_new):
10535 implement --print-pid and --fork
10537 2003-05-03 Havoc Pennington <hp@redhat.com>
10539 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10540 the address had no value, and add to test suite. Fix and
10541 regression test from Miloslav Trmac
10543 2003-05-03 Havoc Pennington <hp@pobox.com>
10545 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10546 watch is invalid when handled
10548 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10549 dbus-launch utility to launch the bus from a shell script. Didn't
10550 actually implement dbus-launch yet, it's just a placeholder still.
10552 2003-05-03 Havoc Pennington <hp@pobox.com>
10554 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10555 daemon; also documents daemon config file, so replaces
10556 doc/config-file.txt. Corrected some stuff from config-file.txt in
10557 the process of moving it.
10559 2003-05-03 Havoc Pennington <hp@pobox.com>
10561 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10564 2003-05-03 Colin Walters <walters@verbum.org>
10566 * dbus/dbus-sysdeps.c (fill_user_info): Test against
10567 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10569 * Makefile.am: Update to use new .pc versioning scheme.
10571 2003-05-02 Havoc Pennington <hp@redhat.com>
10573 * bus/system.conf.in: allow send/receive to/from message bus
10576 2003-04-30 Havoc Pennington <hp@redhat.com>
10578 * configure.in: print a note when building with unit tests and
10581 2003-04-30 Havoc Pennington <hp@redhat.com>
10583 * Makefile.am: add a check-local that complains if you didn't
10584 configure with --enable-tests
10586 2003-04-29 Havoc Pennington <hp@redhat.com>
10588 * glib/dbus-gmain.c: docs cleanups
10590 * dbus/dbus-types.h: add docs on int64 types
10592 * dbus/dbus-memory.c: fix docs to avoid putting private API in
10593 public API docs section
10595 2003-04-29 Havoc Pennington <hp@redhat.com>
10597 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10598 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10599 parallel install API version, not with the D-BUS package version.
10601 * HACKING: move some of README over here
10603 * README: updates, and document API/ABI policy
10605 * configure.in: reindentation
10607 2003-04-29 Havoc Pennington <hp@redhat.com>
10609 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10610 to use this library" to be sure people have the right
10613 2003-04-28 Havoc Pennington <hp@redhat.com>
10615 * configure.in: add --enable-docs which by default is auto yes if
10616 doxygen and db2html found, no otherwise; but can be forced on/off
10618 * doc/Makefile.am: conditionalize whether to build docs on
10621 2003-04-28 Havoc Pennington <hp@redhat.com>
10623 * configure.in: 0.10
10627 * bus/system.conf.in: add <includedir>system.d</includedir>
10629 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10630 username was provided but not uid
10632 * bus/config-parser.c (struct BusConfigParser): keep track of
10633 whether the parser is toplevel or was included; change some
10634 of the error handling if it's included.
10636 2003-04-27 Havoc Pennington <hp@pobox.com>
10640 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10641 report correct status if we finish processing authentication
10642 inside this function.
10644 * bus/activation.c (try_send_activation_failure): use
10645 bus_transaction_send_error_reply
10647 * bus/connection.c (bus_connection_get_groups): return an error
10648 explaining the problem
10650 * bus/bus.c (bus_context_check_security_policy): implement
10651 restriction here that inactive connections can only send the
10652 hello message. Also, allow bus driver to send anything to
10655 * bus/connection.c (bus_connection_complete): create the
10656 BusClientPolicy here instead of on-demand.
10657 (bus_connection_get_policy): don't return an error
10659 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10660 sender field in message being replied to
10662 * bus/bus.c (bus_context_check_security_policy): fix silly typo
10663 causing it to return FALSE always
10665 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10666 we checked sender rather than destination
10668 2003-04-25 Havoc Pennington <hp@redhat.com>
10670 test suite is slightly hosed at the moment, will fix soon
10672 * bus/connection.c (bus_connections_expire_incomplete): fix to
10673 properly disable the timeout when required
10674 (bus_connection_set_name): check whether we can remove incomplete
10675 connections timeout after we complete each connection.
10677 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10678 probably still broken.
10680 * bus/services.c (bus_registry_acquire_service): implement max
10681 number of services owned, and honor allow/deny rules on which
10682 services a connection can own.
10684 * bus/connection.c (bus_connection_get_policy): report errors here
10686 * bus/activation.c: implement limit on number of pending
10689 2003-04-25 Havoc Pennington <hp@redhat.com>
10691 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10692 where we used >= 0 instead of != DBUS_UID_UNSET.
10694 2003-04-25 Havoc Pennington <hp@redhat.com>
10696 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10697 were toggled without add/remove, fix from Anders Gustafsson
10699 2003-04-24 Havoc Pennington <hp@redhat.com>
10701 * test/data/valid-config-files/basic.conf: add <limit> tags to
10704 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10705 <limit> tag in configuration file.
10707 2003-04-24 Havoc Pennington <hp@redhat.com>
10709 * bus/dispatch.c: somehow missed some name_is
10711 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10712 (_dbus_timeout_set_interval): new
10714 * bus/connection.c (bus_connections_setup_connection): record time
10715 when each connection is first set up, and expire them after the
10716 auth timeout passes.
10718 2003-04-24 Havoc Pennington <hp@redhat.com>
10720 * dbus/dbus-message.c (dbus_message_name_is): rename
10721 (dbus_message_service_is): rename
10722 (dbus_message_sender_is): rename
10723 (dbus_message_get_service): rename
10725 2003-04-24 Havoc Pennington <hp@redhat.com>
10727 * configure.in: add --enable-checks
10729 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10731 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10732 to use thread locks.
10733 (_dbus_connection_handler_destroyed_locked): move some private
10734 functions into proper docs group
10736 * dbus/dbus-internals.h: add _dbus_return_if_fail,
10737 _dbus_return_val_if_fail
10739 Throughout: use dbus_return_if_fail
10741 2003-04-23 James Willcox <jwillcox@gnome.org>
10743 * glib/dbus-glib.h:
10744 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10745 (dbus_connection_setup_with_g_main),
10746 (dbus_server_setup_with_g_main):
10747 * glib/test-dbus-glib.c: (main):
10748 * glib/test-thread-client.c: (main):
10749 * glib/test-thread-server.c: (new_connection_callback), (main):
10750 * tools/dbus-monitor.c: (main):
10752 Added a GMainContext argument to dbus_connection_setup_with_g_main()
10753 and dbus_server_setup_with_g_main().
10755 2003-04-20 Havoc Pennington <hp@pobox.com>
10757 * doc/dbus-specification.sgml: document the restrictions on
10758 message and service names
10760 2003-04-22 Havoc Pennington <hp@redhat.com>
10762 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10763 support, and do some code cleanups to share more code and
10764 speed up array marshal/demarshal.
10766 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10768 * configure.in: generate dbus-arch-deps.h
10770 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10773 2003-04-22 Havoc Pennington <hp@redhat.com>
10775 * test/data/valid-messages/opposite-endian.message: fix test
10776 to use proper type for rply field
10778 * test/data/invalid-messages: add tests for below validation
10780 * dbus/dbus-message.c (decode_header_data): validate field types,
10781 and validate that named fields are valid names
10782 (decode_name_field): consider messages in the
10783 org.freedesktop.Local. namespace to be invalid.
10785 * dbus/dbus-string.c (_dbus_string_validate_name): new
10787 2003-04-19 Havoc Pennington <hp@pobox.com>
10789 * bus/driver.c (bus_driver_handle_hello): check limits and
10790 return an error if they are exceeded.
10792 * bus/connection.c: maintain separate lists of active and inactive
10793 connections, and a count of each. Maintain count of completed
10794 connections per user. Implement code to check connection limits.
10796 * dbus/dbus-list.c (_dbus_list_unlink): export
10798 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10799 number of bytes in the message queue for a connection
10801 2003-04-18 Havoc Pennington <hp@pobox.com>
10803 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10805 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10808 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10809 on realloc be sure to update the pointer in the keyring
10811 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10812 offset to avoid writing to unallocated memory
10814 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10815 try the next mechanism, so we properly handle OOM
10817 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10819 (_dbus_keyring_new): fix OOM bug
10820 (_dbus_keyring_new_homedir): always set error; impose a maximum
10821 number of keys we'll load from the file, mostly to speed up the
10822 test suite and make its OOM checks more useful, but also for
10825 * dbus/dbus-auth.c (process_error_server): reject authentication
10826 if we get an error from the client
10827 (process_cancel): on cancel, send REJECTED, per the spec
10828 (process_error_client): send CANCEL if we get an error from the
10831 2003-04-18 Havoc Pennington <hp@pobox.com>
10833 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10836 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10839 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10840 about DBUS_TEST_HOMEDIR once
10842 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10845 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10846 config file so we test the right thing
10848 Throughout: assorted docs improvements
10850 2003-04-18 Havoc Pennington <hp@pobox.com>
10852 * glib/dbus-gmain.c: adapt to watch changes
10854 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10856 * dbus/dbus-server.h: remove dbus_server_handle_watch
10858 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10860 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10861 like DBusTimeout, so we don't need dbus_connection_handle_watch
10864 2003-04-17 Havoc Pennington <hp@redhat.com>
10866 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10867 database usage so it all goes via the DBusUserDatabase cache.
10869 2003-04-17 Havoc Pennington <hp@redhat.com>
10871 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10872 there was an OOM watch we skipped, we always return TRUE so we
10873 iterate again to have a look at it again. Fixes test suite hang.
10874 Code rearrangement also lets us lose some memset and only iterate
10875 over callbacks once.
10877 * bus/driver.c (bus_driver_handle_message): sense of test for
10880 2003-04-16 Havoc Pennington <hp@pobox.com>
10882 * doc/dbus-specification.sgml: make spec say serials are unsigned
10884 * dbus/dbus-message.h: change message serials to unsigned
10886 * dbus/dbus-connection.c: adapt to message serials being unsigned
10888 2003-04-15 Havoc Pennington <hp@pobox.com>
10890 * bus/bus.c: create and keep around a shared DBusUserDatabase
10893 * bus/connection.c (bus_connection_get_groups): don't cache
10894 groups for user in the connection object, since user database
10895 object now does that.
10897 2003-04-16 Havoc Pennington <hp@redhat.com>
10899 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10900 list of size counters
10901 (_dbus_message_loader_putback_message_link): put back a popped link
10903 * dbus/dbus-connection.c
10904 (dbus_connection_set_max_live_messages_size): rename
10906 (dbus_connection_get_outgoing_size): get size of outgoing
10908 (_dbus_connection_set_connection_counter): remove this cruft
10910 2003-04-14 Havoc Pennington <hp@redhat.com>
10912 * dbus/dbus-userdb.c: user database abstraction, mostly to get
10913 caching, but at some point we might want to be able to use a
10914 different database.
10916 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10917 SHA1 conf file to test the sha1 auth mechanism, since the regular
10918 test always uses EXTERNAL when available.
10921 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10922 add conf file that requires use of sha1 auth
10924 2003-04-13 Havoc Pennington <hp@pobox.com>
10926 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10927 from Philip Blundell to send messages and monitor them.
10929 2003-04-13 Havoc Pennington <hp@pobox.com>
10931 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10934 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10937 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10938 fix to only recover unused bytes if we're already authenticated
10939 (_dbus_transport_get_is_authenticated): fix to still mark us
10940 authenticated if there are unused bytes.
10942 * bus/dispatch.c: implement security policy checking
10944 * bus/connection.c (bus_transaction_send_from_driver): new
10946 * bus/bus.c (bus_context_check_security_policy): new
10948 * bus/dispatch.c (send_service_nonexistent_error): delete this,
10949 now we just set the DBusError and it gets converted to an error
10952 * bus/connection.c (allow_user_function): enable code using actual
10953 data from the config file
10955 * bus/policy.c (list_allows_user): handle wildcard rules for
10956 user/group connection perms
10958 2003-04-13 Havoc Pennington <hp@pobox.com>
10960 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10962 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10964 * bus/policy.c (bus_policy_append_mandatory_rule)
10965 (bus_policy_append_default_rule, bus_policy_append_user_rule)
10966 (bus_policy_append_group_rule): new functions
10968 2003-04-12 Havoc Pennington <hp@pobox.com>
10970 * bus/config-parser.c (bus_config_parser_new): fix a memleak
10972 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10973 the pid/gid/uid, just for paranoia.
10975 * test/break-loader.c (randomly_do_n_things): find a byte
10976 containing a type code, and randomly change it to a different
10979 2003-04-12 Havoc Pennington <hp@pobox.com>
10981 * bus/policy.h: change BusPolicy to be the thing from the config
10982 file, and rename old BusPolicy to BusClientPolicy
10984 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10985 match change in how policy works
10987 * dbus/dbus-internals.h: mark assert_not_reached as
10988 __attribute((noreturn))__
10990 2003-04-11 Havoc Pennington <hp@redhat.com>
10992 * doc/dbus-specification.sgml: fix a spot with the wrong name for
10993 the broadcast service. Use boolean return for ServiceExists.
10995 2003-04-11 Havoc Pennington <hp@redhat.com>
10997 * configure.in: add another directory to look for qt in.
10999 2003-04-11 Havoc Pennington <hp@redhat.com>
11001 * AUTHORS: add Colin Walters
11003 2003-04-11 Havoc Pennington <hp@redhat.com>
11007 * configure.in: 0.9
11009 2003-04-11 Havoc Pennington <hp@redhat.com>
11011 * bus/messagebus.in: remove pid file when stopping the
11012 message bus, since the bus won't have privileges to remove it
11015 2003-04-11 Havoc Pennington <hp@redhat.com>
11017 * bus/bus.c (bus_context_new): move credentials change after
11020 2003-04-11 Havoc Pennington <hp@pobox.com>
11022 * test/decode-gcov.c: add "below average functions" to the
11023 coverage report, and change how some of the code works.
11025 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11026 not in the coverage stats.
11028 * test/test-service.c (main): use _dbus_verbose not fprintf in a
11029 couple places so running the test suite doesn't result in megaspam.
11031 2003-04-11 Havoc Pennington <hp@pobox.com>
11033 * bus/dispatch.c (check_existent_service_activation): accept a no
11034 memory error in a place we didn't before
11036 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11037 in case the first one failed," since the test suite is less
11040 2003-04-10 Havoc Pennington <hp@pobox.com>
11042 * bus/dispatch.c (check_segfault_service_activation): add test
11043 for launching an executable that just crashes.
11045 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11046 don't leave a million cores. We'll see how portable this is.
11048 2003-04-10 Havoc Pennington <hp@pobox.com>
11050 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11051 the possible parent failures before we fork, so that we don't
11052 fail to create a babysitter after creating the child.
11054 * bus/activation.c (bus_activation_activate_service): kill child
11055 if we don't successfully complete the activation.
11057 2003-04-10 Havoc Pennington <hp@redhat.com>
11059 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11060 the connection if it's disconnected
11062 * bus/activation.c (bus_activation_service_created): use new
11063 transaction features to roll back removal of pending activation if
11064 we don't successfully create the service after all. Don't remove
11065 pending activation if the function fails.
11067 * dbus/dbus-list.c (_dbus_list_insert_before_link)
11068 (_dbus_list_insert_after_link): new code to facilitate
11071 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11072 new functionality, so we can preallocate the ability to insert
11075 * bus/connection.c (bus_transaction_add_cancel_hook): new function
11076 allowing us to put custom hooks in a transaction to be used for
11077 cancelling said transaction
11079 * doc/dbus-specification.sgml: add some discussion of secondary
11080 service owners, and disallow zero-length service names
11082 * bus/services.c (bus_registry_acquire_service): new function,
11083 splits out part of bus_driver_handle_acquire_service() and fixes
11084 a bug where we didn't remove the service doing the acquiring
11085 from the secondary queue if we failed to remove the current owner
11086 from the front of the queue.
11088 2003-04-10 Alexander Larsson <alexl@redhat.com>
11090 * doc/dbus-specification.sgml:
11091 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11093 2003-04-10 Alexander Larsson <alexl@redhat.com>
11098 Added files to cvsignore
11100 * dbus/dbus-message.h:
11101 * dbus/dbus-message.c: (dbus_message_iter_get_named):
11102 Make get_named() take two out argument and return a boolean.
11103 (dbus_message_iter_get_args_valist):
11104 Update usage of get_named().
11105 (dbus_message_iter_append_byte):
11107 (dbus_message_iter_append_named)
11109 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11112 2003-04-10 Alexander Larsson <alexl@redhat.com>
11114 * dbus/dbus-marshal.[ch]:
11115 Add array_type_pos argument to _dbus_marshal_validate_arg.
11116 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11118 * dbus/dbus-message.[ch]:
11119 Multi-dimensional arrays have full type specification in the
11120 outermost array. Iter code re-arranged to handle this.
11121 Added some more iter tests.
11123 * doc/dbus-specification.sgml:
11126 Update new array encoding description.
11127 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11129 * test/data/invalid-messages/array-with-mixed-types.message:
11130 * test/data/valid-messages/array-of-array-of-uint32.message:
11131 Change to the new array format.
11133 * test/data/invalid-messages/too-short-dict.message:
11136 * test/data/valid-messages/recursive-types.message:
11137 Fix up and extend test.
11139 2003-04-10 Havoc Pennington <hp@pobox.com>
11141 * bus/dispatch.c: lots of fixes
11143 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11144 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11145 that was crack, broke the test service.
11147 * dbus/dbus-transport.c (_dbus_transport_open): fix error
11148 handling to avoid piling up errors if we get a failure on the
11151 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11152 pid in assertion failures.
11154 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11155 to some fixed size of file descriptor array. Don't return TRUE
11156 anytime a timeout exists, that led to lots of busy loop silliness
11159 2003-04-09 Havoc Pennington <hp@redhat.com>
11161 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11162 I'd checked this in earlier but hadn't.
11164 2003-04-09 Havoc Pennington <hp@redhat.com>
11166 * bus/dispatch.c (bus_dispatch_test): get a bit further through
11167 the activation test (man this is getting old!)
11169 2003-04-09 Havoc Pennington <hp@redhat.com>
11171 * test/test-utils.c: use dispatch status function to fix this up
11173 * bus/connection.c (connection_watch_callback): don't dispatch
11175 (connection_timeout_callback): don't dispatch from here
11176 (bus_connections_setup_connection): set the dispatch status function
11177 (bus_connection_disconnected): unset it
11179 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11180 used to add a connection to be dispatched
11181 (_dbus_loop_iterate): do the dispatching at the end of each
11184 * dbus/dbus-connection.c
11185 (dbus_connection_set_dispatch_status_function): new function
11186 allowing us to fix up main loop usage
11187 (_dbus_connection_last_unref): free all the various function
11189 (dbus_connection_dispatch): call the DispatchStatusFunction
11190 whenever this function returns
11191 (dbus_connection_handle_watch): call DispatchStatusFunction
11192 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11193 (reply_handler_timeout): call DispatchStatusFunction
11194 (dbus_connection_flush): call DispatchStatusFunction
11196 2003-04-09 Havoc Pennington <hp@redhat.com>
11198 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11201 * bus/dispatch.c (check_service_activated): fix bug in test
11203 * dbus/dbus-mainloop.c (check_timeout): fix this up
11205 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11206 verbose output so we can sort out output from different processes,
11207 e.g. in the activation case.
11209 2003-04-08 Colin Walters <walters@gnu.org>
11211 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11213 (bus_context_new): Set it.
11214 (bus_context_unref): Use it to delete the pid file.
11216 2003-04-08 Havoc Pennington <hp@redhat.com>
11218 * test/data/invalid-messages/array-with-mixed-types.message:
11219 regression test that fails for the moment
11221 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11222 tests for convenience
11224 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11225 array of nil, it broke things.
11227 * test/data/invalid-messages/array-of-nil.message: regression test
11229 * test/data/valid-messages/array-of-array-of-uint32.message:
11230 happened to write this so added it to suite
11232 2003-04-08 Havoc Pennington <hp@redhat.com>
11234 * bus/driver.c (bus_driver_handle_acquire_service): init
11235 retval/reply before checking name
11237 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11238 recursion depth argument
11240 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11241 in the public struct for future extension
11243 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11246 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11249 * doc/dbus-specification.sgml: fix typo
11251 2003-04-08 Alexander Larsson <alexl@redhat.com>
11253 Implemented recursive types, named types and new-style iters
11256 * glib/test-thread-client.c: (thread_func):
11257 * glib/test-thread-server.c: (handle_test_message):
11258 * test/test-service.c: (handle_echo):
11261 * dbus/Makefile.am:
11262 * dbus/dbus-dict.c:
11263 * dbus/dbus-dict.h:
11267 * dbus/dbus-internals.c: (_dbus_type_to_string):
11268 Update for new types.
11270 * dbus/dbus-marshal.[ch]:
11271 Implement recursive types and the new marshalling format.
11272 Remove hardcoded dict marshalling.
11273 Marshal named types.
11275 * dbus/dbus-message-builder.c:
11277 Remove references to old types
11279 * dbus/dbus-message.[ch]:
11280 New non-refcounted iter API that supports recursive iters.
11281 Use iters for appending, including support for recursive
11283 Add byte and named type support.
11284 Update everything to new marshalling formats.
11285 Add tests for new API.
11287 * dbus/dbus-protocol.h:
11288 Remove old array types.
11289 Add types: BYTE, ARRAY, DICT, NAMED
11291 * dbus/dbus-string.c:
11292 * dbus/dbus-sysdeps.c:
11293 Make parse_double locale safe.
11295 * dbus/dbus-test-main.c:
11298 * dbus/dbus-test.c:
11301 * doc/dbus-specification.sgml:
11304 * test/data/incomplete-messages/missing-body.message:
11305 * test/data/invalid-messages/bad-boolean.message:
11306 * test/data/invalid-messages/bad-boolean-array.message:
11307 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11308 * test/data/invalid-messages/boolean-has-no-value.message-raw:
11309 * test/data/invalid-messages/too-short-dict.message:
11310 * test/data/valid-messages/dict-simple.message:
11311 * test/data/valid-messages/dict.message:
11312 * test/data/valid-messages/emptiness.message:
11313 * test/data/valid-messages/lots-of-arguments.message:
11314 * test/data/valid-messages/no-padding.message:
11315 * test/data/valid-messages/recursive-types.message:
11316 Add missing NAME fields
11317 Fix up dicts & arrays
11319 * test/data/invalid-messages/dict-with-nil-value.message:
11320 Removed, this is not invalid anymore.
11322 * test/data/valid-messages/recursive-types.message:
11323 Add new test for deeply recursive types.
11325 2003-04-07 Havoc Pennington <hp@pobox.com>
11327 * bus/driver.c (bus_driver_handle_acquire_service): return an
11328 error if you try to acquire a service that starts with ':'
11330 2003-04-07 Havoc Pennington <hp@redhat.com>
11332 * doc/dbus-specification.sgml: require that base service names
11333 start with ':' and that the base service is created/deleted
11334 as first and last things a connection does on the bus
11336 * bus/dispatch.c (check_existent_service_activation): lots more
11337 work on the activation test; it doesn't fully pass yet...
11339 * test/test-service.c (main): fix so we don't memleak the
11340 connection to the message bus
11341 (filter_func): accept a message asking us to exit
11343 2003-04-06 Havoc Pennington <hp@pobox.com>
11345 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11348 * configure.in: fixes to Qt detection from Colin Walters
11350 * doc/Makefile.am: Only remove generated docbook dirs if they
11351 exist, from Colin Walters
11353 * dbus/dbus-bus.c: change how we set well-known connections to
11354 NULL, so that it works if a single connection is stored in
11355 two well-known array slots.
11357 * test/Makefile.am: remove a lot of stuff that isn't immediately
11358 useful, it's in CVS history if we want it.
11360 * test/test-service.c: use dbus-mainloop instead of that
11363 2003-04-06 Havoc Pennington <hp@pobox.com>
11365 * dbus/Makefile.am: split lists of sources into stuff that goes in
11366 the library, util functions that go in the lib and are also used
11367 elsewhere, and util functions that are used in tests/daemon but
11368 don't go in the lib.
11370 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11371 here so it can be used in test binaries also
11373 2003-04-06 Havoc Pennington <hp@pobox.com>
11375 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11376 here in the parent process, so we can return an error if it
11377 fails. Also, move some of the code into the child so the parent
11378 is less hosed if we fail midway through.
11380 * bus/bus.c (bus_context_new): move pidfile detection further up
11381 in the function, before we start overwriting sockets and such.
11383 * bus/messagebus.in: adjust this a bit, not sure if it will work.
11385 * configure.in: add --with-system-pid-file and --with-system-socket
11387 2003-04-06 Colin Walters <walters@verbum.org>
11389 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11391 * bus/system.conf.in: Declare a pidfile.
11393 * bus/bus.c (bus_context_new): Test for an existing pid file, and
11394 create one (if appropriate).
11396 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11397 (struct BusConfigParser) [pidfile]: New.
11398 (element_type_to_name, merge_included, start_busconfig_child)
11399 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11400 (bus_config_parser_unref): Free it.
11401 (bus_config_parser_get_pidfile): New function.
11403 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11405 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11407 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11409 * dbus/dbus-sysdeps.h: Prototype it.
11411 2003-04-06 Havoc Pennington <hp@pobox.com>
11413 * bus/bus.c (bus_context_new): print the address in here, rather
11414 than in main(), because we need to do it before forking the daemon
11416 * bus/dispatch.c (send_service_nonexistent_error): set the sender
11417 on the service nonexistent error
11419 * bus/driver.c (bus_driver_handle_acquire_service): set the
11420 sender on the AcquireService reply
11422 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11423 server also listen on a UNIX socket so services can connect to it.
11425 2003-04-06 Havoc Pennington <hp@pobox.com>
11427 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11428 so it detects deadlocks and also we actually init threads when
11431 2003-04-06 Havoc Pennington <hp@pobox.com>
11433 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11434 save the domain socket name, and unlink it when we disconnect the
11435 server. Means that at least when we exit normally, we won't leave
11436 a bunch of junk in /tmp
11438 * dbus/dbus-transport-unix.c
11439 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11440 memory management). (I was making a real change here but then
11443 2003-04-06 Havoc Pennington <hp@pobox.com>
11445 * bus/bus.c (bus_context_new): fix wrong handling of
11446 server_data_slot_unref() in the error case.
11448 * dbus/dbus-internals.h (_dbus_assert): change so it passes
11449 "(condition) != 0" to _dbus_real_assert so that
11450 "_dbus_assert (pointer)" doesn't cause a warning
11452 * bus/main.c (main): accept --print-address option to print out
11453 the message bus address
11455 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11457 * dbus/dbus-transport.c (_dbus_transport_open): special error for
11458 "tmpdir" option to unix: address on client side
11460 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11463 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11464 we can use to create sockets in the test suite.
11466 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11467 cleanly. To be used for testing.
11469 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11471 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11473 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11474 handle trying to call this when there's no servers active
11476 2003-04-05 Havoc Pennington <hp@pobox.com>
11480 * configure.in: 0.8
11482 2003-04-05 Havoc Pennington <hp@pobox.com>
11484 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11485 crash on startup. Need to get "try starting the daemon"
11486 in the test suite I guess. ;-)
11488 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11489 tracked the number of open connections; it's better done in
11490 application-specific code as you want it to span all servers etc.
11492 2003-04-05 Havoc Pennington <hp@pobox.com>
11494 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11495 patch from Colin Walters
11497 2003-04-05 Havoc Pennington <hp@pobox.com>
11499 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11500 reality; in fact multiple mechanisms are allowed.
11502 * dbus/dbus-internals.c (_dbus_real_assert)
11503 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11504 _dbus_assert_not_reached() into functions, so that they don't show
11505 up in basic block counts for test coverage, and don't use up as
11506 much disk space. Does mean slower execution speed though, so
11507 assumes --disable-asserts is the normal production case.
11509 2003-04-05 Havoc Pennington <hp@pobox.com>
11511 * test/Makefile.am (dist-hook): also dist *.in files
11515 * configure.in: 0.7
11517 2003-04-05 Havoc Pennington <hp@pobox.com>
11519 * dbus/dbus-string.c: docs warning
11521 * dbus/dbus-spawn.c: missing docs
11523 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11525 2003-04-05 Havoc Pennington <hp@pobox.com>
11527 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11530 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11531 to -1 once we've reaped the babysitter
11532 (_dbus_babysitter_handle_watch): do as much work as we can, not
11535 * bus/activation.c: add code using DBusBabysitter so that we
11536 handle it when a service fails to start up properly.
11537 (bus_activation_service_created): don't remove the activation
11538 entries as we go, just let them get removed when we free the pending
11539 activation. Unref reply messages after sending them.
11541 2003-04-05 Havoc Pennington <hp@pobox.com>
11543 * test/decode-gcov.c (main): print per-directory stats in the report
11545 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11547 2003-04-05 Havoc Pennington <hp@pobox.com>
11549 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11551 * test/decode-gcov.c: hack up a little program to suck data
11552 out of gcov files. Yes this is sort of silly.
11554 * configure.in: define something in config.h and do an
11555 AM_CONDITIONAL when gcov is enabled
11557 2003-04-04 Havoc Pennington <hp@redhat.com>
11559 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11560 return a "babysitter" object that is used to monitor the status of
11561 the spawned process and reap it when required.
11563 * test/test-segfault.c, test/test-exit.c,
11564 test/test-sleep-forever.c: binaries that do various lame things,
11565 used in the test suite.
11567 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11569 2003-04-03 Havoc Pennington <hp@pobox.com>
11571 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11572 in preparation for modifying it, dbus-sysdeps is getting
11573 a bit unmanageable.
11575 2003-04-03 Havoc Pennington <hp@redhat.com>
11577 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11580 * bus/*.[hc]: adapt to mainloop change
11582 2003-04-03 Havoc Pennington <hp@redhat.com>
11584 * bus/activation.c (load_directory): fix up memleaks
11585 (bus_activation_entry_free): free the entry
11587 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11588 we get one from the message bus; fix memleaks.
11590 * dbus/dbus-message.c (dbus_set_error_from_message): new function
11592 2003-04-03 Havoc Pennington <hp@pobox.com>
11594 * bus/config-parser.c (bus_config_parser_unref): free
11595 list of mechanisms, bug discovered by test suite enhancements
11596 (putting system.conf and session.conf into suite)
11598 * test/Makefile.am, test/test-service.c: add placeholder for a
11599 test service that we'll activate as part of test suite. Doesn't
11602 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11603 setting NULL value, and use system malloc not dbus_malloc()
11604 when we have unavoidable memleakage.
11606 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11607 didn't work, and support DBUS_BUS_ACTIVATION.
11609 * bus/activation.c (child_setup): pass our well-known bus type to
11612 * bus/config-parser.c: support <type> to specify well-known type
11614 * doc/dbus-specification.sgml: document the env variables to
11615 locate well-known buses and find service activator
11617 2003-04-02 Havoc Pennington <hp@redhat.com>
11619 * test/Makefile.am (all-local): add a rule to copy tests to
11620 builddir, so we can have generated tests. Use this to remove the
11621 silly hack for testing system.conf and session.conf. Will use this
11622 shortly to generate .service files pointing to test binaries.
11624 2003-04-02 Havoc Pennington <hp@redhat.com>
11626 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11627 current alloc and needed new length, not max of the doubled
11628 allocation and needed new length. Also, when building tests,
11629 don't do the double-allocation stuff, just realloc every time.
11631 2003-04-02 Havoc Pennington <hp@redhat.com>
11633 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11635 (_dbus_string_get_dirname): new
11636 (_dbus_sysdeps_test): new
11637 (_dbus_directory_open): include dirnames in error messages
11639 * bus/config-parser.c: interpret <include> and <includedir> and
11640 <servicedir> relative to config file location if the given
11641 filename is not absolute.
11643 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11645 2003-04-02 Havoc Pennington <hp@redhat.com>
11647 * bus/connection.c (bus_transaction_send_error_reply): set sender
11648 service for the error, and unref the reply on success
11650 * bus/activation.c: convert to use BusTransaction so OOM can be
11652 (bus_activation_service_created): set sender of the message
11654 2003-04-01 Havoc Pennington <hp@redhat.com>
11656 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11657 <includedir> (at least mostly)
11659 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11660 first, then the user ID
11662 2003-04-01 Havoc Pennington <hp@pobox.com>
11664 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11667 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11669 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11671 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11672 socket 0777, and unlink any existing socket.
11674 * bus/bus.c (bus_context_new): change our UID/GID and fork if
11675 the configuration file so specifies; set up auth mechanism
11678 * bus/config-parser.c (bus_config_parser_content): add support
11679 for <fork> option and fill in code for <auth>
11681 * bus/system.conf.in: add <fork/> to default configuration,
11682 and limit auth mechanisms to EXTERNAL
11684 * doc/config-file.txt (Elements): add <fork>
11686 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11687 (_dbus_change_identity): new function
11689 2003-03-31 Havoc Pennington <hp@redhat.com>
11691 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11692 (_dbus_listen_unix_socket): fix off-by-one error in null
11693 termination spotted by Nalin
11695 2003-03-31 Havoc Pennington <hp@redhat.com>
11697 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11698 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11699 having a real home directory available.
11701 2003-03-31 Havoc Pennington <hp@redhat.com>
11703 * bus/Makefile.am (install-data-hook): create /var/run/dbus
11705 * bus/messagebus.in: add init script for Red Hat /etc/init.d
11707 * configure.in: add support for specifying a style of init script
11710 2003-03-31 Havoc Pennington <hp@redhat.com>
11712 Fix some annoying DBusString API and fix all affected code.
11714 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11715 max_length argument
11716 (_dbus_string_get_data): change to return string instead of using
11718 (_dbus_string_get_const_data): ditto
11719 (_dbus_string_get_data_len): ditto
11720 (_dbus_string_get_const_data_len): ditto
11722 2003-03-31 Havoc Pennington <hp@redhat.com>
11724 * bus/main.c (main): fix up the command line arguments to be nicer
11726 2003-03-31 Havoc Pennington <hp@redhat.com>
11728 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11729 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11730 final location that lands in the config file
11732 * bus/config-loader-expat.c (bus_config_load): fix type of
11733 XML_Parser variable
11735 * doc/TODO: remove TODO item for dbus_bus_get()
11737 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11739 2003-03-31 Havoc Pennington <hp@pobox.com>
11741 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11742 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11743 argument since they are always client side
11745 * dbus/dbus-server.c (dbus_server_get_address): new function
11747 * bus/main.c (main): take the configuration file as an argument.
11749 * test/data/valid-config-files/debug-allow-all.conf: new file to
11750 use with dispatch.c tests for example
11752 * bus/test-main.c (main): require test data dir
11754 * bus/bus.c (bus_context_new): change this to take a
11755 configuration file name as argument
11757 * doc/config-file.txt (Elements): add <servicedir>
11759 * bus/system.conf, bus/session.conf: new files
11761 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11762 well-known socket if none set
11764 * configure.in: create system.conf and session.conf
11766 2003-03-30 Havoc Pennington <hp@pobox.com>
11768 * bus/config-parser.c: hacking
11770 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11771 to shut down, since it could cause weirdness with the DBusList
11774 * dbus/dbus-list.c (_dbus_list_test): add tests for the
11775 link-oriented stack routines
11776 (alloc_link): free the mempool if the first alloc from it fails
11778 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11780 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11782 (_dbus_string_skip_white): new
11784 * doc/config-file.txt (Elements): add <includedir>
11786 2003-03-28 Havoc Pennington <hp@pobox.com>
11788 * dbus/dbus-string.c (_dbus_string_copy_data_len)
11789 (_dbus_string_copy_data): new functions
11791 2003-03-28 Anders Carlsson <andersca@codefactory.se>
11793 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11797 * dbus/dbus-memory.c:
11800 2003-03-28 Havoc Pennington <hp@pobox.com>
11802 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11803 I think it may have just been superstition. Not sure.
11805 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11806 failures that were not being handled.
11808 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11810 * dbus/dbus-memory.c: add ability to set number of mallocs in a
11811 row that will fail on out-of-memory.
11813 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11814 function for testing out-of-memory handling.
11816 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11817 allocation functions, they do map exactly to the expat ones.
11819 2003-03-27 Havoc Pennington <hp@redhat.com>
11821 * bus/config-loader-libxml.c (bus_config_load): add another error
11824 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11827 Add note about automatic service activation.
11829 * doc/dbus-specification.sgml:
11830 Rename the specification and clarify a few things.
11832 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11835 * dbus/dbus-address.c:
11836 * dbus/dbus-dict.c:
11837 * dbus/dbus-marshal.c:
11838 * dbus/dbus-server-debug-pipe.c:
11839 * dbus/dbus-transport-unix.c:
11840 Fix documentation warnings.
11842 2003-03-26 Havoc Pennington <hp@pobox.com>
11844 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11845 after every test so it's quick and easy to see which leaked, and
11846 so we test multiple dbus_shutdown() calls
11848 * configure.in: change configure.in XML stuff to also support
11851 * config-loader-libxml.c: some hacking
11853 * config-loader-expat.c: some hacking
11855 * config-parser.c: some hacking, plus tests
11857 2003-03-25 Havoc Pennington <hp@redhat.com>
11859 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11861 * configure.in: add --with-xml option to specify XML library,
11862 right now only libxml is supported.
11864 * bus/config-loader-libxml.c, config-parser.c: sync some minor
11865 nonworking code between home and work, still just stubs
11867 2003-03-24 Havoc Pennington <hp@redhat.com>
11869 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11872 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11873 NULL argument for "message" if the error is a well-known one,
11874 fill in a generic message in this case.
11876 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11879 * bus/test.c (bus_test_flush_bus): add
11881 * bus/policy.c (bus_policy_test): test code stub
11883 2003-03-24 Havoc Pennington <hp@pobox.com>
11885 * bus/connection.c (bus_connections_setup_connection): set up
11886 the "can this user connect" function, but it always returns
11887 TRUE until we have a config file parser so we can have a config
11888 file that allows connections.
11890 2003-03-23 Havoc Pennington <hp@pobox.com>
11892 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11893 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11894 the mutex, so we can check for proper memory management
11897 * dbus/dbus-dataslot.c: remove the mutex from
11898 DBusDataSlotAllocator and lock it manually when using it,
11899 to simplify fitting it into the global slots framework.
11901 * dbus/dbus-threads.c (init_static_locks): rework how we're
11902 handling global locks so they are easily shut down.
11904 * bus/policy.c (bus_policy_append_rule): fix
11906 * bus/test-main.c (main): check for memleaks
11908 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11909 test suite check for memleaks
11911 * dbus/dbus-memory.c: add support in test mode for tracking
11912 number of outstanding blocks
11914 2003-03-23 Havoc Pennington <hp@pobox.com>
11916 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11919 * dbus/dbus-hash.h: add ULONG hash keys
11921 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11922 (_dbus_get_group_id): new function
11924 2003-03-20 Havoc Pennington <hp@redhat.com>
11926 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11928 (dbus_connection_get_unix_user): new function
11930 2003-03-20 Havoc Pennington <hp@pobox.com>
11932 * bus/connection.c (bus_connection_send_oom_error): assert that
11933 message has a sender
11934 (connection_execute_transaction): ditto
11935 (bus_connection_preallocate_oom_error): fix to set the sender, and
11936 set recipient to the destination service, not the bus driver
11938 * bus/policy.c: hacking
11940 * dbus/dbus-message.c (dbus_message_service_is): new function
11941 (dbus_message_sender_is): new
11943 2003-03-19 Havoc Pennington <hp@redhat.com>
11945 * bus/policy.c: start sketching code for policy restrictions on
11946 what connections can do.
11948 2003-03-18 Havoc Pennington <hp@redhat.com>
11950 * doc/TODO: some notes on high-level todo items. Little nitpick
11951 stuff is all in @todo, so no need to add it here.
11953 * doc/config-file.txt: some notes on how config file might look
11955 2003-03-18 Anders Carlsson <andersca@codefactory.se>
11957 * configure.in: 0.6
11961 2003-03-17 Havoc Pennington <hp@redhat.com>
11963 * dbus/dbus-internals.h: add gcc attributes so that
11964 our printf-style functions warn on bad arguments to
11967 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11970 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11973 2003-03-17 Havoc Pennington <hp@redhat.com>
11975 * bus/test-main.c (main): make it print something as it runs
11976 so make check doesn't look stuck
11978 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11979 from CVS, now obsolete
11981 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11983 * bus/dispatch.c: (bus_dispatch):
11984 Refetch the service name since it may have been reallocated
11985 when dbus_message_set_sender was called.
11987 * dbus/dbus-sysdeps.c: (_dbus_accept):
11988 Add address and address length variables and use them to stop
11989 valgrind from complaining.
11991 2003-03-17 Havoc Pennington <hp@pobox.com>
11993 All tests pass, no memleaks, no valgrind complaints.
11995 * bus/test.c: refcount handler_slot
11997 * bus/connection.c (bus_connections_new): refcount
11998 connection_data_slot
12000 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12001 bytes so that auth scripts pass.
12003 * bus/dispatch.c: init message_handler_slot so it gets allocated
12006 * bus/dispatch.c (message_handler_slot_ref): fix memleak
12008 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12009 dealloc server_pipe_hash when no longer used for benefit of
12012 * dbus/dbus-auth.c (process_command): memleak fix
12014 * bus/dispatch.c (check_hello_message): memleak fix
12016 2003-03-16 Havoc Pennington <hp@pobox.com>
12018 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12020 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12022 * bus/activation.c (bus_activation_activate_service): Append
12023 the pending activation entry to the list of pending activations.
12025 2003-03-16 Havoc Pennington <hp@pobox.com>
12027 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12030 * dbus/dbus-address.c (create_entry): fix OOM handling when
12031 failing to alloc entry->method
12033 2003-03-16 Havoc Pennington <hp@pobox.com>
12035 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12038 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12039 add some missing dbus_set_result
12041 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12042 alloc the DBusMessageHandler
12044 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12045 the transport here, since we call this from the finalizer; it
12046 resulted in a double-finalize.
12048 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12049 where we tried to use transport->connection that was NULL,
12050 happened when transport was disconnected early on due to OOM
12052 * bus/*.c: adapt to handle OOM for watches/timeouts
12054 * dbus/dbus-transport-unix.c: port to handle OOM during
12057 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12058 reference to unused bytes instead of a copy
12060 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12063 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12066 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12069 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12071 * doc/dbus-specification.sgml:
12072 Document reply message for ActivateService.
12074 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12076 * bus/activation.c: (bus_pending_activation_entry_free),
12077 (bus_pending_activation_free), (bus_activation_new),
12078 (bus_activation_unref), (bus_activation_service_created),
12079 (bus_activation_activate_service):
12080 * bus/activation.h:
12081 * bus/bus.c: (bus_context_new):
12082 * bus/desktop-file.c: (new_section):
12083 * bus/driver.c: (bus_driver_send_service_deleted),
12084 (bus_driver_handle_activate_service):
12085 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12087 * dbus/dbus-connection.c:
12088 (dbus_connection_send_with_reply_and_block):
12089 * dbus/dbus-message.c: (dbus_message_append_args_valist):
12090 * dbus/dbus-protocol.h:
12091 Make activation work better. Now pending activations will be queued
12092 and the daemon won't try to activate services that are already registered.
12094 2003-03-16 Havoc Pennington <hp@pobox.com>
12096 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12099 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12100 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12102 2003-03-16 Havoc Pennington <hp@pobox.com>
12104 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12105 this. always run the test suite before commit...
12107 * bus/*: adapt to DBusConnection API changes
12109 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12110 requires renaming stuff to avoid dbus_connection_dispatch name
12113 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12116 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12117 separate from _dbus_message_loader_return_buffer()
12119 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12120 this, because it's now always broken to use; the number of
12121 messages in queue vs. the number still buffered by the message
12122 loader is undefined/meaningless. Should use
12123 dbus_connection_get_dispatch_state().
12124 (dbus_connection_dispatch): rename from
12125 dbus_connection_dispatch_message
12127 2003-03-16 Havoc Pennington <hp@pobox.com>
12129 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12132 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12134 * dbus/dbus-connection.c:
12135 (dbus_connection_send_with_reply_and_block):
12136 Decrease connection->n_incoming when removing an entry
12138 * dbus/dbus-dict.c: (dbus_dict_entry_free),
12139 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12140 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12141 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12142 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12143 (dbus_dict_get_byte_array):
12144 Handle NULL arrays and strings. Also add support for byte arrays.
12146 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12147 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12148 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12149 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12150 (_dbus_demarshal_dict), (demarshal_and_validate_len),
12151 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12152 * dbus/dbus-marshal.h:
12153 Add support for marshalling and demarshalling empty arrays and strings.
12155 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12156 (dbus_message_append_string_array),
12157 (dbus_message_iter_get_boolean),
12158 (dbus_message_iter_get_boolean_array),
12159 (dbus_message_iter_get_int32_array),
12160 (dbus_message_iter_get_uint32_array),
12161 (dbus_message_iter_get_double_array),
12162 (dbus_message_iter_get_byte_array),
12163 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12164 (check_message_handling):
12165 Add support for getting empty arrays and dicts.
12167 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12168 Don't do any validation at all for now, that's better than just checking
12171 * test/data/valid-messages/emptiness.message:
12172 New test message with lots of empty arrays.
12174 2003-03-16 Havoc Pennington <hp@pobox.com>
12176 * dbus/dbus-connection.c
12177 (_dbus_connection_queue_received_message_link): new function that
12178 can't fail due to OOM
12180 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12181 new function pops a message together with a list link
12184 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12185 message queuing functions to avoid needing to alloc memory
12187 2003-03-16 Havoc Pennington <hp@pobox.com>
12189 Oops - test code was only testing failure of around 30 of the
12190 mallocs in the test path, but it turns out there are 500+
12191 mallocs. I believe this was due to misguided linking setup such
12192 that there was one copy of dbus_malloc etc. in the daemon and one
12193 in the shared lib, and only daemon mallocs were tested. In any
12194 case, the test case now tests all 500+ mallocs, and doesn't pass
12195 yet, though there are lots of fixes in this patch.
12197 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12198 this so that it doesn't need to allocate memory, since it
12199 has no way of indicating failure due to OOM (and would be
12200 annoying if it did).
12202 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12204 * bus/Makefile.am: rearrange to create two self-contained
12205 libraries, to avoid having libraries with overlapping symbols.
12206 that was resulting in weirdness, e.g. I'm pretty sure there
12207 were two copies of global static variables.
12209 * dbus/dbus-internals.c: move the malloc debug stuff to
12212 * dbus/dbus-list.c (free_link): free list mempool if it becomes
12215 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12217 * dbus/dbus-address.c (dbus_parse_address): free list nodes
12220 * bus/dispatch.c (bus_dispatch_add_connection): free
12221 message_handler_slot when no longer using it, so
12222 memory leak checkers are happy for the test suite.
12224 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12226 * bus/bus.c (new_connection_callback): disconnect in here if
12227 bus_connections_setup_connection fails.
12229 * bus/connection.c (bus_connections_unref): fix to free the
12231 (bus_connections_setup_connection): if this fails, don't
12232 disconnect the connection, just be sure there are no side
12235 * dbus/dbus-string.c (undo_alignment): unbreak this
12237 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12239 (_dbus_auth_new): fix the order in which we free strings
12242 * bus/connection.c (bus_connection_disconnected): fix to
12243 not send ServiceDeleted multiple times in case of memory
12246 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12247 get the base service name
12248 (dbus_bus_register_client): don't return base service name,
12249 instead store it on the DBusConnection and have an accessor
12251 (dbus_bus_register_client): rename dbus_bus_register()
12253 * bus/dispatch.c (check_hello_message): verify that other
12254 connections on the bus also got the correct results, not
12255 just the one sending hello
12257 2003-03-15 Havoc Pennington <hp@pobox.com>
12259 Make it pass the Hello handling test including all OOM codepaths.
12260 Now to do other messages...
12262 * bus/services.c (bus_service_remove_owner): fix crash when
12263 removing owner from an empty list of owners
12264 (bus_registry_ensure): don't leave service in the list of
12265 a connection's owned services if we fail to put the service
12268 * bus/connection.c (bus_connection_preallocate_oom_error): set
12269 error flag on the OOM error.
12271 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12272 handle _dbus_transport_set_connection failure
12274 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12275 to create watches up front and simply enable/disable them as
12277 (unix_connection_set): this can now fail on OOM
12279 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12280 of enabling/disabling a watch or timeout.
12282 * bus/loop.c (bus_loop_iterate): don't touch disabled
12285 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12287 2003-03-15 Havoc Pennington <hp@pobox.com>
12289 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12290 write useful test code, after all that futzing around ;-)
12292 Test does not yet pass because we can't handle OOM in
12293 _dbus_transport_messages_pending (basically,
12294 dbus_connection_preallocate_send() does not prealloc the write
12295 watch). To fix this, I think we need to add new stuff to
12296 set_watch_functions, namely a SetEnabled function so we can alloc
12297 the watch earlier, then enable it later.
12299 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12300 dbus-memory.c to the convenience lib
12302 * bus/test.c: rename some static functions to keep them clearly
12303 distinct from stuff in connection.c. Handle client disconnection.
12305 2003-03-14 Havoc Pennington <hp@pobox.com>
12307 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12308 transport, tests more of the real codepath. Set up clients
12309 with bus_setup_debug_client.
12311 * bus/test.c (bus_setup_debug_client): function to set up debug
12312 "clients" on the main loop
12314 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12317 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12320 * dbus/dbus-server-debug.c: support a debug server based on pipes
12322 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12323 (_dbus_close): new function
12325 * configure.in: check for socketpair
12327 2003-03-14 Havoc Pennington <hp@redhat.com>
12329 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12332 * dbus/dbus-transport-debug.c: rework this a good bit to be
12333 less complicated. hopefully still works.
12335 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12338 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12341 * dbus/dbus-message.c (dbus_message_copy): rename from
12342 dbus_message_new_from_message, fix it up to copy
12343 all the message fields, add test case
12345 * bus/dispatch.c (bus_dispatch_test): add some more test code,
12346 not quite passing yet
12348 2003-03-14 Havoc Pennington <hp@pobox.com>
12350 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12351 until no work remains" in test code. (the large diff here
12352 is just code movement, no actual changes)
12354 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12355 1, no point waiting around for test code.
12356 (_dbus_server_debug_accept_transport): unref the timeout
12357 after adding it (right?)
12359 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12361 2003-03-13 Havoc Pennington <hp@redhat.com>
12363 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12366 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12369 * dbus/dbus-connection.h: Make AddWatchFunction and
12370 AddTimeoutFunction return a bool so they can fail on out-of-memory
12372 * bus/bus.c (bus_context_new): set up timeout handlers
12374 * bus/connection.c (bus_connections_setup_connection): set up
12377 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12380 * bus/bus.c (bus_context_new): adapt to changes
12382 * bus/connection.c: adapt to changes
12384 * test/watch.c: adapt to DBusWatch changes
12386 * bus/dispatch.c (bus_dispatch_test): started adding this but
12389 2003-03-14 Anders Carlsson <andersca@codefactory.se>
12391 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12393 2003-03-13 Havoc Pennington <hp@pobox.com>
12395 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12396 set up a test framework as for the library
12398 2003-03-12 Havoc Pennington <hp@pobox.com>
12400 Throughout: purge global variables, introduce BusActivation,
12401 BusConnections, BusRegistry, etc. objects instead.
12403 * bus/bus.h, bus/bus.c: introduce BusContext as a global
12406 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12407 going to redo this a bit differently I think
12409 2003-03-12 Havoc Pennington <hp@redhat.com>
12411 Mega-patch that gets the message bus daemon initially handling
12412 out-of-memory. Work still needed. Also lots of random
12413 moving stuff to DBusError instead of ResultCode.
12415 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12417 * dbus/dbus-connection.c
12418 (dbus_connection_send_with_reply_and_block): use DBusError
12420 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12423 * dbus/dbus-connection.c (dbus_connection_send): drop the result
12424 code here, as the only failure possible is OOM.
12426 * bus/connection.c (bus_connection_disconnect):
12427 rename bus_connection_disconnected as it's a notification only
12429 * bus/driver.c (bus_driver_handle_acquire_service): don't free
12430 "name" on get_args failure, should be done by get_args;
12431 don't disconnect client for bad args, just return an error.
12432 (bus_driver_handle_service_exists): ditto
12434 * bus/services.c (bus_services_list): NULL-terminate returned array
12436 * bus/driver.c (bus_driver_send_service_lost)
12437 (bus_driver_send_service_acquired): send messages from driver to a
12438 specific client to the client's unique name, not to the broadcast
12441 * dbus/dbus-message.c (decode_header_data): reject messages that
12442 contain no name field
12443 (_dbus_message_get_client_serial): rename to
12444 dbus_message_get_serial and make public
12445 (_dbus_message_set_serial): rename from set_client_serial
12446 (_dbus_message_set_reply_serial): make public
12447 (_dbus_message_get_reply_serial): make public
12449 * bus/connection.c (bus_connection_foreach): allow stopping
12450 iteration by returning FALSE from foreach function.
12452 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12453 (dbus_connection_free_preallocated_send)
12454 (dbus_connection_preallocate_send): new API for sending a message
12455 without possibility of malloc failure.
12456 (dbus_connection_send_message): rename to just
12457 dbus_connection_send (and same for whole function family)
12459 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12461 * dbus/dbus-sysdeps.c (_dbus_exit): new function
12463 * bus/activation.c: handle/return errors
12465 * dbus/dbus-errors.h: add more DBUS_ERROR #define
12467 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12468 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12469 (_dbus_result_from_errno): move to this file
12471 2003-03-10 Anders Carlsson <andersca@codefactory.se>
12473 * dbus/dbus-marshal.c:
12474 (_dbus_marshal_set_string):
12475 Take a length argument so we can marshal the correct string
12478 (_dbus_marshal_dict), (_dbus_demarshal_dict),
12479 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12480 (_dbus_marshal_test):
12481 * dbus/dbus-marshal.h:
12482 Add support for marshalling and demarshalling dicts.
12484 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12485 Add support for TYPE DICT.
12487 * dbus/dbus-message.c: (set_string_field):
12488 Adjust header padding.
12490 (dbus_message_append_args_valist), (dbus_message_append_dict),
12491 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12492 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12493 (check_message_handling), (check_have_valid_message):
12494 * dbus/dbus-message.h:
12495 Add functions for setting and getting dicts.
12497 * dbus/dbus-protocol.h:
12498 Add DBUS_TYPE_DICT.
12503 * doc/dbus-specification.sgml:
12504 Add information about how dicts are marshalled.
12506 * test/data/invalid-messages/dict-with-nil-value.message:
12507 * test/data/invalid-messages/too-short-dict.message:
12508 * test/data/valid-messages/dict-simple.message:
12509 * test/data/valid-messages/dict.message:
12510 Add sample messages containing dicts.
12512 2003-03-08 Anders Carlsson <andersca@codefactory.se>
12514 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12516 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12518 * dbus/Makefile.am:
12519 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12520 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12521 (dbus_dict_set_int32), (dbus_dict_set_uint32),
12522 (dbus_dict_set_double), (dbus_dict_set_string),
12523 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12524 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12525 (dbus_dict_set_string_array), (_dbus_dict_test):
12526 * dbus/dbus-dict.h:
12527 Fix according to comments from Havoc.
12529 2003-03-06 Michael Meeks <michael@server.home>
12531 * configure.in: if we don't have kde-config, disable have_qt.
12533 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12535 * dbus/Makefile.am:
12538 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12539 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12540 (dbus_dict_remove), (dbus_dict_get_value_type),
12541 (dbus_dict_get_keys), (dbus_dict_put_boolean),
12542 (dbus_dict_put_int32), (dbus_dict_put_uint32),
12543 (dbus_dict_put_double), (dbus_dict_put_string),
12544 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12545 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12546 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12547 (dbus_dict_get_int32), (dbus_dict_get_uint32),
12548 (dbus_dict_get_double), (dbus_dict_get_string),
12549 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12550 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12551 (dbus_dict_get_string_array), (_dbus_dict_test):
12552 * dbus/dbus-dict.h:
12553 Add DBusDict implementation
12555 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12556 * dbus/dbus-test.h:
12557 Add _dbus_dict_test
12559 2003-03-04 Havoc Pennington <hp@pobox.com>
12561 * test/data/auth/*: adapt to changes
12563 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12564 USERID_BASE64 and change USERNAME_BASE64 to put in username not
12567 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12568 more stuff from being in a context name, to make the protocol
12569 simpler to deal with
12571 * dbus/dbus-errors.c (dbus_error_has_name): new function
12572 (dbus_error_is_set): new function
12574 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12575 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12577 * dbus/dbus-connection.c (dbus_connection_flush): also read
12578 messages during a flush operation
12580 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12582 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12584 * configure.in: Check for gethostbyname on Solaris.
12586 * dbus/dbus-transport.c: (_dbus_transport_open):
12587 Remove duplicate "tcp" entry.
12589 * doc/dbus-specification.sgml:
12590 Clarify some things.
12592 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12594 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12595 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12596 (_dbus_keyring_test):
12597 * dbus/dbus-md5.c: (_dbus_md5_compute):
12598 * dbus/dbus-sha.c: (_dbus_sha_compute):
12601 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12603 * README: Add some things.
12605 2003-03-04 Anders Carlsson <andersca@codefactory.se>
12607 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12608 after case DBUS_TYPE_BOOELAN.
12610 2003-03-02 Havoc Pennington <hp@pobox.com>
12612 * test/break-loader.c (randomly_set_extreme_ints): add test that
12613 sets really huge and small integers
12615 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12616 that length of boolean array fits in the string, and that
12617 string has room for boolean value in single-bool case.
12619 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12620 optional value to "ALIGN" command which is what to fill the
12623 * test/data/valid-messages/no-padding.message: add regression
12624 test for the message padding problem
12626 2003-03-02 Havoc Pennington <hp@pobox.com>
12628 * dbus/dbus-message.c (decode_header_data): fix to always init
12629 message_padding, from Benjamin Dauvergne
12631 2003-03-02 Havoc Pennington <hp@pobox.com>
12633 * configure.in: 0.5
12637 2003-03-01 Joe Shaw <joe@assbarn.com>
12639 * configure.in: Check for "struct cmsgcred" and try to access its
12640 members for BSD-like unices.
12642 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12643 _dbus_read_credentials_unix_socket().
12644 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12645 read() for reading the credential byte off the unix socket. Use
12646 struct cmsgcred on systems that support it.
12648 2003-02-27 Alexander Larsson <alexl@redhat.com>
12650 * glib/Makefile.am:
12652 Make gthreads-2.0 dependency optional. Don't build thread test if
12655 2003-02-27 Havoc Pennington <hp@pobox.com>
12657 * dbus/dbus-connection.c
12658 (dbus_connection_send_message_with_reply_and_block): fix doh!
12659 doh! doh! bug that resulted in never removing a reply from the
12660 queue, no wonder we called get_reply_serial so much ;-)
12662 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12663 and client serial instead of demarshaling them every time
12665 2003-02-27 Havoc Pennington <hp@pobox.com>
12667 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12668 more inlined, using dbus-string-private.h, speeds things up
12671 * dbus/dbus-string.c (_dbus_string_free): apply align offset
12672 when freeing the string
12673 (_dbus_string_steal_data): fix for align offset
12674 (undo_alignment): new function
12676 2003-02-26 Havoc Pennington <hp@redhat.com>
12678 All kinds of audit fixes from Owen, plus initial attempt to
12679 handle unaligned memory returned from malloc.
12681 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12682 leave room for align_offset and nul byte
12683 (fixup_alignment): function to track an align_offset and
12684 ensure real->str is aligned
12685 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12686 to allow a nul byte plus align offset
12687 (_dbus_string_lock): fix overflow issue
12688 (_dbus_string_init_const_len): add assertions on sanity of len,
12689 assign allocated to be ALLOCATION_PADDING larger than len
12690 (set_length): fixup the overflow handling
12691 (_dbus_string_get_data_len): fix overflow in assertion
12692 (open_gap): detect overflow in size of gap to be opened
12693 (_dbus_string_lengthen): add overflow check
12694 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12695 (_dbus_string_append): add overflow check
12696 (_dbus_string_append_unichar): overflow
12697 (_dbus_string_delete): fix overflow in assertion
12698 (_dbus_string_copy_len): overflow in assertion
12699 (_dbus_string_replace_len): overflows in assertions
12700 (_dbus_string_find): change to implement in terms of
12701 _dbus_string_find_to
12702 (_dbus_string_find_to): assorted fixage
12703 (_dbus_string_equal_c_str): assert c_str != NULL,
12704 fix logic so the function works
12705 (_dbus_string_ends_with_c_str): fix overflow thingy
12706 (_dbus_string_base64_encode): overflow fix
12707 (_dbus_string_validate_ascii): overflow
12708 (_dbus_string_validate_nul): overflow
12710 2003-02-26 Havoc Pennington <hp@redhat.com>
12712 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12714 2003-02-26 Alexander Larsson <alexl@redhat.com>
12717 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12719 * dbus/dbus-connection.c:
12720 * dbus/dbus-connection.h:
12721 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12722 Add dbus_connection_set_wakeup_main_function and use it when queueing
12723 incoming and outgoing messages.
12726 * dbus/dbus-dataslot.c:
12727 Threadsafe usage of DBusDataSlotAllocator
12729 * dbus/dbus-message.c: (dbus_message_get_args_iter):
12732 * dbus/dbus-server-unix.c:
12735 * glib/dbus-gmain.c:
12736 Implement the new wakeup functions for glib.
12738 * glib/Makefile.am:
12739 * glib/test-thread-client.c:
12740 * glib/test-thread-server.c:
12741 * glib/test-thread.h:
12742 Initial cut at some thread test code. Not really done yet.
12744 2003-02-26 Havoc Pennington <hp@pobox.com>
12746 * dbus/dbus-connection.c
12747 (dbus_connection_send_message_with_reply_and_block): fix crash
12748 where we ref'd the outgoing message instead of the returned reply
12750 * dbus/dbus-transport-unix.c (do_authentication): check read watch
12751 at the end of this function, so if we didn't need to read for
12752 authentication, we reinstall it for receiving messages
12754 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12755 a NULL sender for peer-to-peer case
12757 * dbus/dbus-transport-unix.c (check_read_watch): handle
12758 !authenticated case correctly
12760 * glib/dbus-gmain.c: add support for DBusServer
12762 * dbus/dbus-server.c: add data slot support
12764 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12765 return values and handle errors
12767 * dbus/dbus-dataslot.c: factor out the data slot stuff from
12770 * Doxyfile.in (INPUT): add glib subdir
12772 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12773 setup_with_g_main instead of hookup_with_g_main; write docs
12775 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12777 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12778 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12779 * dbus/dbus-message.c: (dbus_message_append_boolean),
12780 (dbus_message_append_boolean_array),
12781 (dbus_message_get_args_valist), (_dbus_message_test):
12782 * dbus/dbus-message.h:
12783 * doc/dbus-specification.sgml:
12784 Various fixes as pointed out by Havoc.
12786 * test/data/invalid-messages/bad-boolean-array.message:
12787 * test/data/invalid-messages/bad-boolean.message:
12788 Add invalid boolean value test cases.
12790 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12792 * dbus/dbus-internals.c: (_dbus_type_to_string):
12793 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12794 (_dbus_marshal_validate_arg):
12795 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12796 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12797 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12798 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12799 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12800 (dbus_message_iter_get_double),
12801 (dbus_message_iter_get_boolean_array), (message_iter_test):
12802 * dbus/dbus-message.h:
12803 * dbus/dbus-protocol.h:
12804 * doc/dbus-specification.sgml:
12805 * test/data/valid-messages/lots-of-arguments.message:
12806 Add support for boolean and boolean array types.
12808 2003-02-23 Havoc Pennington <hp@pobox.com>
12810 * dbus/dbus-keyring.c: finish most of this implementation and
12813 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12814 these barf if the error isn't cleared to NULL
12816 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12817 (_dbus_create_directory): new function
12819 * dbus/dbus-errors.c (dbus_set_error): fix warning
12821 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12822 (_dbus_string_hex_decode): new function
12823 (test_hex_roundtrip): test code
12825 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12827 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12829 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12830 the save-to-temp/rename trick to atomically write the new file
12831 (_dbus_string_parse_uint): new function
12833 2003-02-22 Havoc Pennington <hp@pobox.com>
12835 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12837 2003-02-22 Havoc Pennington <hp@pobox.com>
12839 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12840 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12842 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12844 * dbus/test/data/sha-1: add US government test suite for SHA-1
12846 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12848 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12849 Make string arrays NULL-terminated.
12851 * dbus/dbus-memory.c: (dbus_free_string_array):
12852 * dbus/dbus-memory.h:
12853 New function for freeing NULL-terminated string arrays.
12855 * dbus/dbus-message-builder.c: (append_quoted_string),
12856 (_dbus_message_data_load):
12857 Add support for array types.
12859 * dbus/dbus-message.c: (check_message_handling):
12860 Add more types as test cases.
12862 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12863 (_dbus_string_parse_double):
12864 Add the start offset to the end offset.
12866 * test/data/valid-messages/lots-of-arguments.message:
12867 New test message with lots of arguments.
12869 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12871 * dbus/dbus-message.c: (dbus_message_append_nil),
12872 (dbus_message_append_int32), (dbus_message_append_uint32),
12873 (dbus_message_append_double), (dbus_message_append_string),
12874 (dbus_message_append_int32_array),
12875 (dbus_message_append_uint32_array),
12876 (dbus_message_append_double_array),
12877 (dbus_message_append_byte_array),
12878 (dbus_message_append_string_array):
12879 Fix all out-of-memory handling in these functions.
12881 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12883 * dbus/dbus-message.c: (dbus_message_append_nil):
12886 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12888 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12889 (dbus_message_append_nil), (dbus_message_append_int32_array),
12890 (dbus_message_append_uint32_array),
12891 (dbus_message_append_double_array),
12892 (dbus_message_append_byte_array),
12893 (dbus_message_append_string_array), (dbus_message_get_args_valist),
12894 (dbus_message_iter_get_int32_array),
12895 (dbus_message_iter_get_uint32_array),
12896 (dbus_message_iter_get_double_array),
12897 (dbus_message_iter_get_byte_array),
12898 (dbus_message_iter_get_string_array):
12900 * dbus/dbus-message.h:
12901 Add functions for appending and getting arrays.
12903 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12905 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12906 element size at least 8 bytes, fixes mempool tests on
12909 2003-02-20 Alexander Larsson <alexl@redhat.com>
12911 * dbus/dbus-transport-unix.c (unix_do_iteration):
12912 Unlock the connection mutex during a blocking select call.
12913 Add todo about how we need a way to wake up the select.
12915 * dbus/dbus-connection-internal.h:
12916 * dbus/dbus-connection.c:
12917 Add _dbus_connection_lock and _dbus_connection_unlock.
12919 2003-02-19 Havoc Pennington <hp@pobox.com>
12921 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12922 Doxyfile.in, not Doxyfile
12924 * dbus/dbus-keyring.c: do some hacking on this
12926 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12928 * dbus/dbus-errors.c (dbus_set_error_const): do not call
12930 (dbus_set_error): remove dbus_error_init, check for message ==
12931 NULL *before* we sprintf into it, and add @todo about including
12932 system headers in this file
12934 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12936 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12938 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12939 get various bits of user information based on either username
12941 (_dbus_homedir_from_username): new function
12943 2003-02-19 Anders Carlsson <andersca@codefactory.se>
12946 Add check for nonposix getpwnam_r
12948 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12949 Align the pool element size to a sizeof (void *) boundary.
12951 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12952 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12953 General Solaris fixes.
12955 * test/data/valid-messages/simplest-manual.message:
12956 Explicitly state that we want little-endian packing.
12958 2003-02-19 Mikael Hallendal <micke@codefactory.se>
12960 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12962 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12963 Added to create a transport connecting using a tcp/ip socket.
12965 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12966 to a tcp socket at given host and port.
12967 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12970 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12972 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12973 Added to create a server listening on a TCP/IP socket.
12975 2003-02-19 Havoc Pennington <hp@pobox.com>
12977 Throughout: mop up all the Doxygen warnings and undocumented
12980 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12981 to search any paths.
12983 * dbus/dbus-threads.c: move global mutex initializers to
12984 dbus-internals.h, multiple prototypes was confusing doxygen
12985 besides being kind of ugly
12987 * Doxyfile (PREDEFINED): have Doxygen define
12988 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12989 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12990 (do not abuse the feature! it's for stuff like the autogenerated
12991 macros in dbus-md5.c, not just for things you don't feel like
12994 2003-02-18 Havoc Pennington <hp@pobox.com>
12996 * dbus/dbus-string.c (_dbus_string_zero): new function
12998 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12999 wrap it in some dbus-friendly API
13001 * dbus/dbus-types.h: add 16-bit types
13003 2003-02-18 Joe Shaw <joe@assbarn.com>
13005 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13006 credentials from our currently running process.
13007 (get_word): Fix a buglet where we were copying the entire length
13008 instead of relative to our position.
13010 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13011 keys on the stack... it's 640k of data.
13013 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13014 read the credentials byte off the socket, even if we don't have
13016 (_dbus_poll): Implement poll() using select() for systems which
13019 * glib/test-dbus-glib.c (main): Print out an error if no
13020 parameters are given.
13022 * test/data/auth/fallback.auth-script: Added. Tests that a client
13023 can fallback to a secondary auth mechanism if the first fails.
13025 2003-02-18 Havoc Pennington <hp@pobox.com>
13027 * AUTHORS: add Alex
13029 2003-02-17 Havoc Pennington <hp@pobox.com>
13031 * doc/dbus-specification.sgml: lots of cosmetic
13032 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13033 env variable to DBUS_BUS_ADDRESS, s/client/application/,
13034 s/server/bus/ (except in authentication section). Add a section
13035 "Message Bus Message Routing"
13037 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
13043 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13045 * doc/dbus-specification.sgml:
13046 Specification updates.
13048 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13050 * bus/activation.c: (bus_activation_init), (child_setup),
13051 (bus_activation_activate_service):
13052 * bus/activation.h:
13053 * bus/main.c: (main):
13054 Set DBUS_ADDRESS environment variable.
13056 * dbus/dbus-errors.c: (dbus_set_error):
13057 Don't use va_copy since that's a C99 feature.
13059 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13060 (_dbus_spawn_async):
13061 * dbus/dbus-sysdeps.h:
13062 Add child_setup_func to _dbus_spawn_async.
13064 * doc/dbus-specification.sgml:
13065 Update specification.
13067 * test/spawn-test.c: (setup_func), (main):
13070 2003-02-17 Alexander Larsson <alexl@redhat.com>
13072 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13075 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13079 * doc/dbus-test-plan.sgml:
13080 Add test plan document.
13082 * test/Makefile.am:
13085 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13087 * dbus/dbus-message.c: (decode_header_data),
13088 (_dbus_message_loader_return_buffer):
13089 Set the header padding amount when loading a message.
13091 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13093 * bus/dispatch.c: (send_one_message):
13094 Only send broadcast messages to registered connections.
13096 * dbus/dbus-message.c: (dbus_message_name_is):
13097 * dbus/dbus-message.h:
13098 New convenience function.
13100 * dbus/dbus-transport-debug.c: (do_reading):
13101 Only dispatch one message per run.
13103 * test/Makefile.am:
13104 * test/bus-test.c: (new_connection_callback), (die),
13105 (test_hello_client1_handler), (test_hello_client2_handler),
13106 (test_hello_replies), (main):
13108 * test/bus-test-loop.[ch]:
13111 2003-02-16 Havoc Pennington <hp@pobox.com>
13113 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13114 backward conditional
13116 2003-02-16 Alexander Larsson <alexl@redhat.com>
13118 * dbus/dbus-connection.c:
13119 Implement sent_message_with_reply. (with_reply_and block is still
13121 Made dispatch_message not lose message if OOM.
13123 * dbus/dbus-errors.h:
13124 Add NoReply error (for reply timeouts).
13126 2003-02-16 Alexander Larsson <alexl@redhat.com>
13128 * dbus/dbus-hash.c (_dbus_hash_table_unref):
13129 Actually free keys and values when destroying hashtable.
13131 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13133 * dbus/dbus-auth.c: (client_try_next_mechanism):
13136 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13137 Return TRUE if there's no thread implementation around.
13139 * glib/dbus-gmain.c: (free_source),
13140 (dbus_connection_hookup_with_g_main):
13141 Make sure to remove the GSource when the connection is finalized.
13143 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13145 * bus/dispatch.c: (bus_dispatch_message_handler):
13146 * dbus/dbus-errors.h:
13147 Return an error if someone tries to send a message to a service
13148 that doesn't exist.
13150 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13152 * bus/activation.c: (load_directory), (bus_activation_init),
13153 (bus_activation_activate_service):
13154 * bus/activation.h:
13156 (bus_driver_handle_activate_service), (bus_driver_handle_message):
13157 More work on the activation handling.
13159 * dbus/dbus-errors.h:
13160 Add some error messages
13162 * dbus/dbus-message.c: (dbus_message_new_error_reply):
13163 * dbus/dbus-message.h:
13164 New function that creates an error message.
13166 * dbus/dbus-protocol.h:
13167 Add ACTIVATE_SERVER message.
13169 * dbus/dbus-server-unix.c: (unix_handle_watch),
13170 (_dbus_server_new_for_domain_socket):
13171 Call _dbus_fd_set_close_on_exec.
13173 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13174 (_dbus_spawn_async), (_dbus_disable_sigpipe),
13175 (_dbus_fd_set_close_on_exec):
13176 * dbus/dbus-sysdeps.h:
13177 Add _dbus_fd_set_close_on exec function. Also add function that checks
13178 that all open fds are set to close-on-exec and warns otherwise.
13180 * dbus/dbus-transport-unix.c:
13181 (_dbus_transport_new_for_domain_socket):
13182 Call _dbus_fd_set_close_on_exec.
13184 2003-02-16 Havoc Pennington <hp@pobox.com>
13186 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13187 allow people to avoid setting SIGPIPE to SIG_IGN
13188 (_dbus_connection_new_for_transport): disable SIGPIPE unless
13189 we've been asked not to
13191 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13193 * dbus/dbus-list.c: (_dbus_list_append_link),
13194 (_dbus_list_prepend_link):
13195 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13199 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13202 * bus/activation.c: (bus_activation_entry_free),
13203 (add_desktop_file_entry), (load_directory), (bus_activation_init):
13204 * bus/activation.h:
13205 * bus/main.c: (main):
13206 Add simple activation support, doesn't work yet though.
13208 2003-02-15 Zack Rusin <zack@kde.org>
13210 * qt/dbus-qthread.cpp: small casting fix
13212 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13214 * dbus/dbus-errors.c: (dbus_set_error):
13215 * dbus/dbus-errors.h:
13216 Add a few errors and make dbus_set_error void.
13218 * dbus/dbus-sysdeps.c:
13219 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13220 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13221 * dbus/dbus-sysdeps.h:
13222 Add _dbus_spawn_async.
13224 * test/spawn-test.c: (main):
13225 Test for _dbus_spawn_async.
13227 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13229 * dbus/dbus-internals.h:
13230 Fix build without tests.
13232 * dbus/dbus-list.c: (alloc_link):
13233 Fix a segfault when a malloc fails.
13235 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13236 (dbus_malloc0), (dbus_realloc):
13237 Add support for malloc debugging.
13239 2003-02-15 Alexander Larsson <alexl@redhat.com>
13241 * dbus/dbus-threads.c:
13242 * dbus/dbus-threads.h:
13243 Add condvars. Remove static mutext from API.
13244 Implement static mutexes by initializing them from threads_init.
13246 * glib/dbus-gthread.c:
13247 * qt/dbus-qthread.cpp:
13248 Update with the thread api changes.
13251 * dbus/dbus-list.c:
13252 * dbus/dbus-list.h:
13253 Turn StaticMutex into normal mutex + init function.
13254 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13255 _dbus_list_append_link, _dbus_list_prepend_link
13258 * dbus/dbus-sysdeps.c:
13259 * dbus/dbus-sysdeps.h:
13260 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13261 _dbus_atomic_dec. Only slow fallback implementation at the moment.
13263 * dbus/dbus-protocol.h:
13264 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13266 * dbus/dbus-message.c:
13267 Make ref/unref atomic.
13270 * dbus/dbus-connection-internal.h:
13271 * dbus/dbus-connection.c:
13272 * dbus/dbus-connection.h:
13274 Change _peek to _borrow,_return & _steal_borrowed.
13275 Change disconnect callback to event.
13276 Make dbus_connection_dispatch_messages reentrant.
13278 * dbus/dbus-transport.c:
13279 Don't ref the connection on calls to the transport
13282 * dbus/dbus-message-handler.c:
13285 * glib/dbus-gmain.c:
13286 Don't use peek_message anymore
13288 * test/Makefile.am:
13289 * test/debug-thread.c:
13290 * test/debug-thread.h:
13291 Simple thread implementation that asserts() on deadlocks in
13292 single-threaded code.
13295 (main) Call debug_threads_init.
13298 Use disconnect message instead of disconnect callback.
13300 * bus/connection.c:
13301 * bus/connection.h:
13302 Don't call dbus_connection_set_disconnect_function. Instead export
13303 bus_connection_disconnect.
13306 Call bus_connection_disconnect when we get a disconnected message.
13308 2003-02-15 Havoc Pennington <hp@pobox.com>
13310 * dbus/dbus-message.c (dbus_message_new): fool around with the
13313 2003-02-14 Havoc Pennington <hp@pobox.com>
13315 * dbus/dbus-mempool.c: fail if the debug functions so indicate
13317 * dbus/dbus-memory.c: fail if the debug functions indicate we
13320 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13321 (_dbus_decrement_fail_alloc_counter): debug functions to
13322 simulate memory allocation failures
13324 2003-02-14 Havoc Pennington <hp@pobox.com>
13326 * dbus/dbus-errors.h (struct DBusError): add a word of padding
13329 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13331 * bus/driver.c: (bus_driver_handle_hello):
13333 * bus/services.c: (bus_service_lookup):
13334 Reorder message sending so we get a more sane order.
13336 * test/bus-test.c: (message_handler):
13339 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13341 * bus/driver.c: (bus_driver_send_service_deleted),
13342 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13343 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13344 (bus_driver_send_welcome_message),
13345 (bus_driver_handle_list_services),
13346 (bus_driver_handle_acquire_service),
13347 (bus_driver_handle_service_exists):
13348 * dbus/dbus-bus.c: (dbus_bus_register_client),
13349 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13350 * dbus/dbus-errors.c: (dbus_result_to_string):
13351 * dbus/dbus-errors.h:
13352 * dbus/dbus-message.c: (dbus_message_append_args),
13353 (dbus_message_append_args_valist), (dbus_message_get_args),
13354 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13355 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13356 (dbus_message_iter_get_byte_array),
13357 (dbus_message_iter_get_string_array), (message_iter_test),
13358 (check_message_handling), (_dbus_message_test):
13359 * dbus/dbus-message.h:
13360 * test/bus-test.c: (main):
13361 Change fields to arguments in messages, so that they won't be
13362 confused with header fields.
13364 * glib/test-dbus-glib.c: (main):
13365 Remove append_fields from hello message.
13367 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13369 * dbus/dbus-errors.c:
13370 * dbus/dbus-message.c:
13371 * dbus/dbus-string.c:
13372 Documentation fixes.
13374 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13376 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13378 Implement support for timeouts in dbus-glib.
13380 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13382 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13383 * dbus/dbus-message.c: (process_test_subdir):
13384 * test/break-loader.c: (find_breaks_based_on):
13385 Plug some memory leaks.
13387 2003-02-13 Richard Hult <rhult@codefactory.se>
13389 * bus/main.c: Fix build.
13391 * dbus/dbus-errors.h:
13392 * dbus/dbus-errors.c: Fix copyright for Anders.
13394 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13399 * bus/connection.c: (bus_connection_foreach):
13402 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13403 (unescape_string), (new_section), (parse_section_start),
13404 (parse_key_value), (report_error), (bus_desktop_file_load),
13405 (bus_desktop_file_get_string):
13406 * bus/desktop-file.h:
13407 Use DBusError for error reporting.
13409 * bus/dispatch.c: (send_one_message),
13410 (bus_dispatch_message_handler):
13411 * bus/driver.c: (bus_driver_send_service_deleted),
13412 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13413 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13414 (bus_driver_send_welcome_message),
13415 (bus_driver_handle_list_services),
13416 (bus_driver_handle_acquire_service),
13417 (bus_driver_handle_service_exists):
13418 * bus/loop.c: (bus_loop_run):
13420 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13422 * bus/utils.c: (bus_wait_for_memory):
13424 New files with general utility functions.
13426 * dbus/dbus-internals.h:
13427 Remove _DBUS_HANDLE_OOM.
13429 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13431 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13432 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13433 * dbus/dbus-errors.h:
13434 Add DBusError structure.
13436 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13438 * test/data/valid-messages/standard-acquire-service.message:
13439 * test/data/valid-messages/standard-hello.message:
13440 * test/data/valid-messages/standard-list-services.message:
13441 * test/data/valid-messages/standard-service-exists.message:
13442 Add some standard messages.
13444 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13446 * bus/driver.c: (bus_driver_send_welcome_message),
13447 (bus_driver_handle_list_services),
13448 (bus_driver_handle_acquire_service),
13449 (bus_driver_handle_service_exists), (bus_driver_handle_message):
13450 Update for API changes in libdbus.
13452 * dbus/dbus-message.c: (dbus_message_new_reply):
13453 * dbus/dbus-message.h:
13454 Remove the name argument. The spec states that replies shouldn't
13457 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13459 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13460 (report_error), (bus_desktop_file_load), (lookup_section),
13461 (lookup_line), (bus_desktop_file_get_raw),
13462 (bus_desktop_file_get_string):
13463 * bus/desktop-file.h:
13464 Some fixes, and new functions for getting a key value from a section.
13466 2003-02-13 Havoc Pennington <hp@pobox.com>
13468 * test/data/auth/fail-after-n-attempts.auth-script: new test
13470 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13473 2003-02-13 Havoc Pennington <hp@pobox.com>
13475 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13476 dbus_credentials_match were backward
13478 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13479 NO_CREDENTIALS and ROOT_CREDENTIALS
13481 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13482 into here. Never process more commands after we've reached an
13483 end state; store further data as unused bytes.
13485 * test/data/auth/*: add more auth tests
13487 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13488 command to match exact string and EXPECT_UNUSED to match unused
13491 * test/Makefile.am (dist-hook): fix to dist all the test stuff
13493 2003-02-12 Havoc Pennington <hp@pobox.com>
13495 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13496 \r off of popped lines
13498 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13501 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13504 2003-02-12 Havoc Pennington <hp@pobox.com>
13506 * dbus/Makefile.am: remove break-loader from the build, since it
13509 * configure.in: add --enable-gcov to turn on coverage profiling
13510 flags and disable optimization
13512 2003-02-10 Havoc Pennington <hp@pobox.com>
13514 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13515 initial cut at test framework for DBusAuth from laptop.
13516 Doesn't quite work yet but it compiles and I need to get
13517 it off the 266mhz laptop. ;-)
13519 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13520 fix a memleak in error case
13522 2003-02-12 Anders Carlsson <andersca@codefactory.se>
13525 * bus/desktop-file.c:
13526 * bus/desktop-file.h:
13527 Add a desktop file parser.
13529 2003-02-11 Zack Rusin <zack@kde.org>
13531 * qt/message.[h|cpp]: sample implementation
13532 of the KDE wrapper for DBusMessage
13534 2003-02-09 Zack Rusin <zack@kde.org>
13536 * test/bus-test.c: make_it_compile
13537 * doc/dbus-specification.sgml: minimal semantic fix
13539 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13545 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13547 * dbus/Makefile.am:
13548 * dbus/dbus-break-loader.c:
13549 * test/Makefile.am:
13550 * test/break-loader.c:
13551 Move dbus-break-loader to test/ and rename it to break-loader.
13553 2003-02-02 Havoc Pennington <hp@pobox.com>
13555 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13556 for code to manage cookies in your home directory
13558 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13560 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13561 to authenticate, then disconnect the client.
13563 2003-02-03 Alexander Larsson <alexl@redhat.com>
13565 * dbus/dbus-message.c (dbus_message_append_fields):
13568 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13570 * doc/dbus-specification.sgml:
13571 Update address format section.
13573 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13575 * test/Makefile.am:
13576 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13577 (message_handler), (new_connection_callback), (loop_quit),
13578 (loop_run), (main):
13581 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13583 * bus/driver.c: (bus_driver_handle_service_exists):
13584 Simplify the code a bit.
13586 * dbus/dbus-bus.c: (dbus_bus_service_exists):
13589 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13592 Add libdbus-daemon.la and link to it.
13594 2003-02-01 James Willcox <jwillcox@gnome.org>
13596 * bus/driver.c: (bus_driver_handle_own_service):
13597 Actually include the service reply code in the message.
13599 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13601 * bus/driver.c: (bus_driver_handle_service_exists):
13602 Don't unref the incoming message.
13604 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13606 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13608 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13610 * dbus/dbus-server.c: (dbus_server_listen):
13611 * dbus/dbus-transport.c: (_dbus_transport_open):
13612 ifdef out the calls to the debug transport and server.
13614 2003-02-02 Alexander Larsson <alexl@redhat.com>
13616 * dbus/dbus-watch.c (dbus_watch_get_flags):
13617 Add note in the docs that ERROR or HANGUP won't be returned
13618 and are assumed always on.
13620 * glib/dbus-gmain.c (add_watch):
13621 Always add IO_ERR | IO_HUP
13623 * dbus/dbus-message.h:
13624 Add semicolon after dbus_message_iter_get_string_array().
13625 Makes qt code build again
13627 2003-02-01 Anders Carlsson <andersca@codefactory.se>
13629 * bus/driver.c: (create_unique_client_name),
13630 (bus_driver_handle_hello):
13631 Don't take a name, just use a numeric id to identify
13634 * dbus/Makefile.am:
13635 * dbus/dbus-bus.c: (dbus_bus_register_client),
13636 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13638 Add new convenience functions for communicating with the bus.
13640 * dbus/dbus-message.h:
13642 * dbus/dbus-protocol.h:
13645 2003-02-01 Alexander Larsson <alexl@redhat.com>
13647 * dbus/dbus-message.c (dbus_message_append_fields):
13648 Add some more doc comments.
13650 2003-02-01 Havoc Pennington <hp@pobox.com>
13652 * dbus/dbus-break-loader.c (randomly_modify_length): change
13653 a 4-byte value in the message as if it were a length
13655 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13656 execute bit on saved files
13658 2003-02-01 Havoc Pennington <hp@pobox.com>
13660 * dbus/dbus-break-loader.c (main): new program to find messages
13661 that break the loader.
13663 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13664 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13666 * dbus/dbus-string.c (_dbus_string_set_byte): new
13668 2003-01-31 Havoc Pennington <hp@pobox.com>
13670 * dbus/dbus-message.c: refactor the test code to be more general,
13671 in preparation for writing a "randomly permute test cases to
13672 try to break the loader" program.
13674 2003-01-31 Havoc Pennington <hp@pobox.com>
13676 * doc/dbus-specification.sgml: work on the specification
13678 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13679 the protocol version of the message.
13681 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13682 no longer specifies that.
13683 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13686 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13687 "break" for DBUS_TYPE_NIL, remove @todo
13689 2003-01-31 Havoc Pennington <hp@pobox.com>
13691 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13692 just set_is_error/get_is_error as this is a commonly-used
13693 function, and write docs.
13695 2003-01-31 Anders Carlsson <andersca@codefactory.se>
13697 * dbus/dbus-address.c: (dbus_address_entry_free):
13698 Free key and value lists.
13700 * dbus/dbus-internals.c: (_dbus_type_to_string):
13701 Add the types we didn't have.
13703 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13704 (_dbus_marshal_validate_arg):
13707 * dbus/dbus-message.c: (dbus_message_set_sender):
13708 Remove todo about being able to set sender to NULL.
13710 (dbus_message_set_is_error_reply),
13711 (dbus_message_get_is_error_reply):
13712 * dbus/dbus-message.h:
13715 * dbus/dbus-protocol.h:
13716 Add error reply flag.
13718 * test/data/valid-messages/opposite-endian.message:
13719 Add NIL type to test.
13721 2003-01-31 Havoc Pennington <hp@pobox.com>
13723 * doc/dbus-specification.sgml: fully specify the header. Add
13724 flags and major protocol version, and change header/body len to
13727 * dbus/dbus-message-builder.c (append_saved_length): append length
13730 * dbus/dbus-message.c (dbus_message_create_header): change header
13731 length and body length to unsigned. Add the new fields from the
13733 (_dbus_message_loader_return_buffer): unsigned header/body len
13735 2003-01-30 Havoc Pennington <hp@pobox.com>
13737 * dbus/dbus-auth.c: rework to use only REJECTED, no
13740 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13741 use REJECTED, suggested by Mark McLoughlin
13743 2003-01-30 Havoc Pennington <hp@pobox.com>
13745 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13746 a better way to report errors here. e.g. "unix address lacks
13747 path" or something. also "no such file" when the path doesn't
13750 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13752 (dbus_parse_address): add @todo about documenting address format,
13753 and allowing , and ; to be escaped
13755 2003-01-30 Anders Carlsson <andersca@codefactory.se>
13757 * dbus/Makefile.am:
13758 Add dbus-address.[ch]
13760 * dbus/dbus-address.c: (dbus_address_entry_free),
13761 (dbus_address_entries_free), (create_entry),
13762 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13763 (dbus_parse_address), (_dbus_address_test):
13764 * dbus/dbus-address.h:
13765 New files for dealing with address parsing.
13767 * dbus/dbus-connection.c:
13768 Document timeout functions.
13770 * dbus/dbus-message.c:
13771 Document dbus_message_new_from_message.
13773 * dbus/dbus-server-debug.c:
13776 * dbus/dbus-server.c: (dbus_server_listen):
13777 Parse address and use correct server implementation.
13779 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13780 * dbus/dbus-string.h:
13781 New function with test.
13783 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13784 * dbus/dbus-test.h:
13787 * dbus/dbus-transport-debug.c:
13790 * dbus/dbus-transport.c: (_dbus_transport_open):
13791 Parse address and use correct transport implementation.
13793 2003-01-30 Havoc Pennington <hp@pobox.com>
13795 * dbus/dbus-message.c: use message->byte_order instead of
13796 DBUS_COMPILER_BYTE_ORDER throughout.
13797 (dbus_message_create_header): pad header to align the
13798 start of the body of the message to 8-byte boundary
13800 * dbus/dbus-marshal.h: make all the demarshalers take const
13801 DBusString arguments.
13803 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13804 validate message args here, so we don't have to do slow validation
13805 later, and so we catch bad messages as they are incoming. Also add
13806 better checks on header_len and body_len. Also fill in
13807 message->byte_order
13809 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13810 implemented properly)
13811 (_dbus_string_validate_nul): new function to check all-nul
13813 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13814 get_arg_end_pos and remove all validation
13815 (_dbus_marshal_validate_arg): actually do validation here.
13817 2003-01-29 Havoc Pennington <hp@pobox.com>
13819 * dbus/dbus-message.c (check_message_handling): fix assertion
13820 failure on set_client_serial
13822 2003-01-28 Havoc Pennington <hp@pobox.com>
13824 * dbus/dbus-server-debug.c: Add doc section comments
13826 * dbus/dbus-transport-debug.c: add doc section comments
13828 2003-01-28 Havoc Pennington <hp@redhat.com>
13830 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13831 the reverse order from how I had it
13832 (_dbus_string_base64_encode): reverse encoding order. I was
13833 basically byteswapping everything during encoding.
13835 2003-01-28 Anders Carlsson <andersca@codefactory.se>
13837 * dbus/dbus-connection-internal.h:
13838 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13839 (_dbus_connection_remove_timeout):
13840 Add functions for adding and removing timeouts.
13842 * dbus/dbus-message.c: (dbus_message_new_from_message):
13843 Add new function that takes a message and creates an exact
13844 copy of it, but with the refcount set to 1.
13845 (check_message_handling):
13848 * dbus/dbus-server-protected.h:
13849 * dbus/dbus-server.c: (_dbus_server_init_base),
13850 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13851 (dbus_server_set_timeout_functions):
13852 (_dbus_server_remove_timeout):
13853 New functions so that a server can add and remove timeouts.
13855 (dbus_server_listen):
13856 Add commented out call to dbus_server_debug_new.
13858 * dbus/dbus-timeout.c: (_dbus_timeout_new):
13859 Actually set the handler, doh.
13861 * dbus/dbus-transport.c: (_dbus_transport_open):
13862 Add commented out call to dbus_transport_debug_client_new.
13864 * dbus/Makefile.am:
13865 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13867 2003-01-28 Havoc Pennington <hp@pobox.com>
13869 * dbus/dbus-message.c (check_message_handling): function to check
13870 on the loaded message, iterates over it etc.
13872 2003-01-28 Havoc Pennington <hp@pobox.com>
13874 * test/Makefile.am (dist-hook): fix make distdir
13876 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13878 2003-01-27 Havoc Pennington <hp@pobox.com>
13880 * dbus/dbus-mempool.c (time_for_size): replace printf with
13883 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13884 empty lines; fix the SAVE_LENGTH stuff to be
13885 START_LENGTH/END_LENGTH so it actually works; couple other
13888 * test/Makefile.am (dist-hook): add dist-hook for .message files
13890 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13891 can be constant or locked.
13892 (_dbus_string_free): allow freeing a const string as
13893 documented/intended
13895 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13897 * dbus/dbus-test-main.c (main): take an argument which is the
13898 directory containing test data
13900 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13901 argument to this and load all the messages in test/data/
13902 checking that they can be loaded or not loaded as appropriate.
13904 2003-01-27 Anders Carlsson <andersca@codefactory.se>
13906 * bus/dispatch.c: (bus_dispatch_message_handler):
13907 Dispatch messages sent to services.
13909 * bus/driver.c: (bus_driver_send_service_deleted),
13910 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13911 (bus_driver_send_service_acquired):
13912 Add helper functions for sending service related messages.
13914 (bus_driver_send_welcome_message):
13915 Send HELLO_REPLY instead of WELCOME.
13917 (bus_driver_handle_list_services):
13918 Send LIST_SERVICES_REPLY instead of SERVICES.
13920 (bus_driver_handle_own_service),
13921 (bus_driver_handle_service_exists):
13922 New message handlers.
13924 (bus_driver_handle_message):
13925 Invoke new message handlers.
13927 (bus_driver_remove_connection):
13928 Don't remove any services here since that's done automatically
13929 by bus_service_remove_owner now.
13932 New function signatures.
13934 * bus/services.c: (bus_service_add_owner):
13935 Send ServiceAcquired message if we're the only primary owner.
13937 (bus_service_remove_owner):
13938 Send ServiceAcquired/ServiceLost messages.
13940 (bus_service_set_prohibit_replacement),
13941 (bus_service_get_prohibit_replacement):
13942 Functions for setting prohibit replacement.
13944 (bus_service_has_owner):
13945 New function that checks if a connection is in the owner queue of
13949 Add new function signatures.
13951 * dbus/dbus-list.c: (_dbus_list_test):
13952 Add tests for _dbus_list_remove_last and traversing the list backwards.
13954 * dbus/dbus-list.h:
13955 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13956 go any further, so return NULL then.
13958 * dbus/dbus-protocol.h:
13959 Add new messages, service flags and service replies.
13961 2003-01-26 Havoc Pennington <hp@pobox.com>
13963 * dbus/dbus-message-builder.c: implement, completely untested.
13965 * test/data/*: add data to be used in testing.
13966 ".message" files are our simple loadable text format.
13967 ".message-raw" will be binary dumps of messages.
13969 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13971 2003-01-26 Havoc Pennington <hp@pobox.com>
13973 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13975 * dbus/dbus-errors.c (dbus_result_to_string): add
13978 * dbus/dbus-message-builder.c: new file, will contain code to load
13979 up messages from files. Not implemented yet.
13981 2003-01-26 Havoc Pennington <hp@pobox.com>
13983 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13984 the sender by setting to NULL
13986 2003-01-26 Havoc Pennington <hp@pobox.com>
13988 The unit tests pass, but otherwise untested. If it breaks, the
13989 tests should have been better. ;-)
13991 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13994 * dbus/dbus-message.c: redo everything so we maintain
13995 message->header as the only copy of the various fields.
13996 This avoids the possibility of out-of-memory in some cases,
13997 for example dbus_message_lock() can't run out of memory anymore,
13998 and avoids extra copying. Figured I may as well go ahead and do
13999 this since it was busted for dbus_message_lock to not return
14000 failure on OOM, and dbus_message_write_header was totally
14001 unchecked for OOM. Also fixed some random other bugs.
14003 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14004 that strings are nul-terminated. Also, end_pos can be equal
14005 to string length just not greater than, I think.
14006 (_dbus_marshal_set_int32): new function
14007 (_dbus_marshal_set_uint32): new function
14008 (_dbus_marshal_set_string): new function
14010 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14011 a warning, init timeout_list to NULL
14012 (dbus_connection_send_message): don't use uninitialized variable
14015 * dbus/dbus-string.c (_dbus_string_replace_len): new function
14017 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14019 * bus/driver.c: (bus_driver_handle_hello),
14020 (bus_driver_send_welcome_message):
14023 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14025 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14026 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14027 (dbus_connection_unref):
14028 * dbus/dbus-marshal.c: (_dbus_marshal_test):
14029 * dbus/dbus-message.c: (dbus_message_unref),
14032 (dbus_message_get_fields):
14033 Remove debugging printout.
14035 (_dbus_message_loader_return_buffer):
14036 Don't store the header string.
14038 (_dbus_message_test):
14041 2003-01-26 Richard Hult <rhult@codefactory.se>
14043 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14044 the file descriptor list, since it can change under us.
14046 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14048 * glib/dbus-gmain.c: (dbus_connection_prepare),
14049 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14050 (remove_watch), (dbus_connection_hookup_with_g_main):
14051 Rewrite the glib handling to use its own GSource instead of a
14052 GIOChannel so we can catch messages put in the queue while waiting
14055 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14058 * bus/connection.c: (connection_disconnect_handler),
14059 (connection_watch_callback), (bus_connection_setup):
14060 * bus/dispatch.c: (send_one_message),
14061 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14062 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14064 * bus/driver.c: (bus_driver_send_service_deleted),
14065 (bus_driver_send_service_created), (bus_driver_handle_hello),
14066 (bus_driver_send_welcome_message),
14067 (bus_driver_handle_list_services), (bus_driver_remove_connection),
14068 (bus_driver_handle_message):
14070 Refactor code, put the message dispatching in its own file. Use
14071 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14074 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14076 * dbus/dbus-internals.h:
14077 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14079 * dbus/dbus-message.c: (dbus_message_get_sender):
14080 * dbus/dbus-message.h:
14081 Implement dbus_message_get_sender.
14083 * dbus/dbus-protocol.h:
14084 Add message and service defines.
14086 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14088 * dbus/dbus-connection.c: (dbus_connection_send_message):
14089 * dbus/dbus-message-internal.h:
14090 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14091 (dbus_message_write_header):
14092 Remove _dbus_messag_unlock and don't set the client serial on a
14093 message if one already exists.
14095 2003-01-24 Havoc Pennington <hp@pobox.com>
14097 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14100 * bus/driver.c (bus_driver_handle_list_services): fix a leak
14103 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14105 * dbus/dbus-list.c: (alloc_link), (free_link):
14106 Use a memory pool for the links.
14108 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14110 * bus/connection.c: (bus_connection_foreach):
14111 * bus/connection.h:
14112 Add new bus_connection_foreach function.
14114 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14115 Add function that broadcasts a message to all clients.
14117 (bus_driver_send_service_created), (bus_driver_handle_hello),
14118 (bus_driver_send_welcome_message),
14119 (bus_driver_handle_list_services), (bus_driver_message_handler):
14120 Implement functions that take care of listing services, and notifying
14121 clients when new services are created.
14123 * bus/services.c: (bus_services_list):
14125 Add new function that returns an array of strings with the currently
14126 registered services.
14128 * glib/dbus-glib.h:
14129 * glib/dbus-gmain.c:
14130 Update copyright year.
14132 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14134 * dbus/dbus-connection.c: (dbus_connection_send_message):
14135 Unlock the message in case it was sent earlier.
14137 (dbus_connection_send_message_with_reply_and_block):
14138 Remove the reply message from the list.
14140 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14141 Set array_len and new_pos correctly.
14143 (_dbus_marshal_test):
14144 Remove debug output.
14146 * dbus/dbus-message-internal.h:
14147 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14148 New function that returns the reply serial.
14150 (_dbus_message_unlock):
14151 New function that unlocks a message and resets its header.
14153 (dbus_message_append_string_array),
14154 (dbus_message_get_fields_valist),
14155 (dbus_message_iter_get_field_type),
14156 (dbus_message_iter_get_string_array),
14157 (dbus_message_get_fields),
14158 (dbus_message_append_fields_valist):
14159 Handle string arrays.
14161 (dbus_message_set_sender):
14162 Make this function public since the bus daemon needs it.
14164 (decode_header_data):
14165 Set the reply serial to -1 initially.
14167 * dbus/dbus-message.h:
14168 Add dbus_message_set_sender.
14170 2003-01-24 Havoc Pennington <hp@pobox.com>
14172 * doc/dbus-specification.sgml: add some stuff
14174 2003-01-22 Havoc Pennington <hp@pobox.com>
14176 * doc/dbus-specification.sgml: Start to document the protocol.
14178 2003-01-22 Havoc Pennington <hp@pobox.com>
14180 * dbus/dbus-connection.c
14181 (dbus_connection_send_message_with_reply_and_block): add some @todo
14183 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14185 2003-01-21 Havoc Pennington <hp@pobox.com>
14187 (patch untested because can't compile)
14189 * bus/driver.c (create_unique_client_name): make this function
14190 never recycle client names. Also, caller should initialize
14193 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14195 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14197 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14198 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14199 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14200 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14201 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14202 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14203 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14204 * dbus/dbus-marshal.h:
14205 * dbus/dbus-protocol.h:
14206 Add support for marshalling and demarshalling integer, double
14209 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14214 * bus/connection.c: (connection_disconnect_handler):
14215 Remove the connection from the bus driver's list.
14217 (connection_watch_callback): Dispatch messages.
14219 (free_connection_data): Free connection name.
14221 (bus_connection_setup): Add connection to the bus driver's list.
14222 (bus_connection_remove_owned_service):
14223 (bus_connection_set_name), (bus_connection_get_name):
14224 Add functions for setting and getting the connection's name.
14226 * bus/connection.h:
14227 Add function headers.
14229 * bus/driver.c: (create_unique_client_name),
14230 (bus_driver_handle_hello_message),
14231 (bus_driver_send_welcome_message), (bus_driver_message_handler),
14232 (bus_driver_add_connection), (bus_driver_remove_connection):
14235 * bus/services.c: (bus_service_free):
14237 New file that handles communication and registreation with the bus
14240 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14242 * dbus/dbus-connection.c: (dbus_connection_send_message):
14243 Add a new client_serial parameter.
14245 (dbus_connection_send_message_with_reply):
14246 Remove a @todo since we've implemented the blocking function.
14248 (dbus_connection_send_message_with_reply_and_block):
14249 New function that sends a message and waits for a reply and
14250 then returns the reply.
14252 * dbus/dbus-connection.h:
14255 * dbus/dbus-errors.c: (dbus_result_to_string):
14256 * dbus/dbus-errors.h:
14257 Add new DBUS_RESULT.
14259 * dbus/dbus-message-internal.h:
14260 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14261 (_dbus_message_set_sender), (dbus_message_write_header),
14262 (dbus_message_new_reply), (decode_header_data),
14263 (_dbus_message_loader_return_buffer), (_dbus_message_test):
14264 * dbus/dbus-message.h:
14265 Add new functions that set the reply serial and sender.
14266 Also marshal and demarshal them correctly and add test.
14268 * dbus/dbus-protocol.h:
14269 Add new DBUS_MESSAGE_TYPE_SENDER.
14271 * glib/dbus-glib.h:
14272 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14273 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14274 (dbus_connection_hookup_with_g_main):
14275 * glib/test-dbus-glib.c: (main):
14276 Rewrite to use GIOChannel and remove the GSource crack.
14278 * test/echo-client.c: (main):
14279 * test/watch.c: (check_messages):
14280 Update for changed APIs
14282 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14284 * dbus/Makefile.am: Add dbus-timeout.[cħ]
14286 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14287 Create a DBusTimeoutList.
14288 (dbus_connection_set_timeout_functions): Add new function to
14289 set timeout callbacks
14291 * dbus/dbus-connection.h: Add public DBusTimeout API.
14293 * dbus/dbus-message.c: (dbus_message_get_service):
14294 * dbus/dbus-message.h: New function.
14296 * dbus/dbus-server.c: Fix small doc typo.
14298 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14300 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14302 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14303 of the string, just as long as specified.
14305 2003-01-19 Havoc Pennington <hp@pobox.com>
14307 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14310 * dbus/dbus-server.c (dbus_server_set_max_connections)
14311 (dbus_server_get_max_connections, dbus_server_get_n_connections):
14312 keep track of current number of connections, and add API for
14313 setting a max (but haven't implemented enforcing the max yet)
14315 2003-01-18 Havoc Pennington <hp@pobox.com>
14317 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14318 reading/writing if read_watch != NULL or write_watch != NULL.
14320 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14321 the message loader code to actually load message->header and
14322 message->body into the newly-created message.
14324 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14327 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14328 (dbus_connection_get_max_message_size)
14329 (dbus_connection_set_max_live_messages_size)
14330 (dbus_connection_get_max_live_messages_size): implement some
14331 resource limitation functions
14333 * dbus/dbus-resources.c: new file implementing some of the
14334 resource limits stuff
14336 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14337 missing docs, add @todo to handle OOM etc.
14339 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14342 2003-01-18 Havoc Pennington <hp@pobox.com>
14344 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14345 connection if it hasn't been already.
14347 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14348 replace with DisconnectFunction.
14350 2003-01-18 Havoc Pennington <hp@pobox.com>
14352 Building --disable-verbose-mode --disable-asserts --disable-tests
14353 cuts the library from 112K to 45K or so
14355 * configure.in: check for varargs macro support,
14356 add --enable-verbose-mode, --enable-asserts.
14358 * dbus/dbus-internals.h (_dbus_assert): support
14359 DBUS_DISABLE_ASSERT
14360 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14362 2003-01-18 Havoc Pennington <hp@pobox.com>
14364 * dbus/dbus-test.c: include config.h so that tests actually run
14366 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14367 so the failure mode when that assumption fails will be plenty
14370 2003-01-18 Havoc Pennington <hp@pobox.com>
14372 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14374 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14377 * test/Makefile.am: don't use special variable "TESTS" for echo-*
14378 since we don't want to use those in make check
14380 2003-01-15 Havoc Pennington <hp@redhat.com>
14386 2003-01-15 Havoc Pennington <hp@redhat.com>
14388 * test/Makefile.am: fix so that test source code ends up in the
14389 distribution on make distcheck
14391 2003-01-15 Havoc Pennington <hp@redhat.com>
14397 2003-01-15 Havoc Pennington <hp@redhat.com>
14399 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14400 fix build when --disable-tests
14402 * Makefile.am (EXTRA_DIST): put HACKING in here
14404 * HACKING: document procedure for making a tarball release.
14406 2003-01-14 Anders Carlsson <andersca@codefactory.se>
14408 * bus/connection.c: (connection_error_handler),
14409 (bus_connection_setup):
14410 * bus/main.c: (main):
14411 Make sure that the DBusConnectionData struct is NULLed
14412 out to prevent a segfault.
14414 * dbus/dbus-errors.c: (dbus_result_to_string):
14415 * dbus/dbus-errors.h:
14416 * dbus/dbus-message.c: (dbus_message_get_fields),
14417 (dbus_message_get_fields_valist), (_dbus_message_test):
14418 * dbus/dbus-message.h:
14419 Make dbus_message_get_fields return a result code so we can
14420 track invalid fields as well as oom.
14422 2003-01-11 Havoc Pennington <hp@pobox.com>
14424 * configure.in: change --enable-test/--enable-ansi action-if-given
14425 to enable_foo=$enableval instead of enable_foo=yes
14427 2003-01-08 Havoc Pennington <hp@pobox.com>
14429 * dbus/dbus-string.c (_dbus_string_align_length): new function
14431 * dbus/dbus-test-main.c: move main() for test app here
14433 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14434 symbol to run tests, because dbus-test isn't in the main
14437 Code review nitpicks.
14439 * dbus/dbus-message.c (dbus_message_write_header): add newlines
14440 for people with narrow emacs ;-). Assert client_serial was filled
14441 in. Assert message->name != NULL.
14442 (dbus_message_append_fields): have "first_field_type" arg separate
14443 from va list, needed for C++ binding that also uses varargs IIRC
14444 and helps with type safety
14445 (dbus_message_new): add @todo about using DBusString to store
14446 service/name internally
14447 (dbus_message_new): don't leak ->service and ->name on OOM later
14449 (dbus_message_unref): free the service name
14450 (dbus_message_get_fields): same change to varargs
14451 i.e. first_field_type
14452 (_dbus_message_loader_return_buffer): assert that the message data
14453 is aligned (if not it's a bug in our code). Put in verbose griping
14454 about why we set corrupted = TRUE.
14455 (decode_header_data): add FIXME that char* is evil. Was going to
14456 add FIXME about evil locale-specific string.h strncmp, but just
14457 switched to wacky string-as-uint32 optimization. Move check for
14458 "no room for field name" above get_const_data_len() to avoid
14459 assertion failure in get_const_data_len if we have trailing 2
14460 bytes or the like. Check for service and name fields being
14461 provided twice. Don't leak service/name on error. Require field
14462 names to be aligned to 4 bytes.
14464 * dbus/dbus-marshal.c: move byte swap stuff to header
14465 (_dbus_pack_int32): uscore-prefix
14466 (_dbus_unpack_int32): uscore-prefix
14467 (_dbus_unpack_uint32): export
14468 (_dbus_demarshal_string): add @todo complaining about use of
14470 (_dbus_marshal_get_field_end_pos): add @todo about bad error
14471 handling allowing corrupt data to go unchecked
14473 2003-01-08 Havoc Pennington <hp@redhat.com>
14475 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14476 to the select() as needed for authentication. (should be using
14477 _dbus_poll() not select, but for another day)
14479 * dbus/dbus.h: include dbus/dbus-protocol.h
14481 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14483 * dbus/Makefile.am (dbusinclude_HEADERS): Install
14486 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14488 * dbus/dbus-internals.c: (_dbus_type_to_string):
14489 New function that returns a string describing a type.
14491 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14492 * dbus/dbus-marshal.h:
14493 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14494 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14495 (dbus_message_iter_get_byte_array):
14496 * dbus/dbus-message.h:
14497 Add new convenience functions for appending and getting message fields.
14498 Also add demarshalling routines for byte arrays.
14500 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14502 * dbus/dbus-connection-internal.h:
14503 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14504 (_dbus_connection_get_next_client_serial),
14505 (dbus_connection_send_message):
14506 * dbus/dbus-internals.h:
14507 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14508 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14509 (_dbus_marshal_uint32), (_dbus_demarshal_double),
14510 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14511 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14512 (_dbus_verbose_bytes), (_dbus_marshal_test):
14513 * dbus/dbus-marshal.h:
14514 * dbus/dbus-message-internal.h:
14515 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14516 (dbus_message_write_header), (_dbus_message_lock),
14517 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14518 (dbus_message_get_name), (dbus_message_append_int32),
14519 (dbus_message_append_uint32), (dbus_message_append_double),
14520 (dbus_message_append_string), (dbus_message_append_byte_array),
14521 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14522 (dbus_message_iter_unref), (dbus_message_iter_has_next),
14523 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14524 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14525 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14526 (decode_header_data), (_dbus_message_loader_return_buffer),
14527 (message_iter_test), (_dbus_message_test):
14528 * dbus/dbus-message.h:
14529 * dbus/dbus-protocol.h:
14530 * dbus/dbus-test.c: (main):
14531 * dbus/dbus-test.h:
14532 * glib/test-dbus-glib.c: (message_handler), (main):
14533 * test/echo-client.c: (main):
14534 * test/watch.c: (check_messages):
14535 Make messages sendable and receivable for real.
14537 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14539 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14540 (_dbus_marshal_string), (_dbus_marshal_byte_array):
14541 * dbus/dbus-message.c: (dbus_message_append_int32),
14542 (dbus_message_append_uint32), (dbus_message_append_double),
14543 (dbus_message_append_string), (dbus_message_append_byte_array):
14544 Handle OOM restoration.
14546 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14548 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14549 (_dbus_demarshal_string), (_dbus_marshal_test):
14550 * dbus/dbus-marshal.h:
14551 * dbus/dbus-message.c: (dbus_message_get_name),
14552 Document these functions.
14554 (dbus_message_append_int32), (dbus_message_append_uint32),
14555 (dbus_message_append_double), (dbus_message_append_string),
14556 (dbus_message_append_byte_array):
14557 * dbus/dbus-message.h:
14558 Add functions for adding message fields of different types.
14560 * dbus/dbus-protocol.h:
14561 Add the different types.
14563 2003-01-05 Havoc Pennington <hp@pobox.com>
14565 * bus/connection.c: implement routines for handling connections,
14566 first thing is keeping a list of owned services on each connection
14567 and setting up watches etc.
14569 * bus/services.c: implement a mapping from service names to lists
14572 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14574 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14575 to use static mutexes for global data
14577 * dbus/dbus-connection.c (dbus_connection_set_data): add new
14578 collection of functions to set/get application-specific data
14579 on the DBusConnection.
14581 2003-01-04 Havoc Pennington <hp@pobox.com>
14583 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14584 (_dbus_poll): new function
14586 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14589 * bus/loop.c: initial code for the daemon main loop
14591 2003-01-04 Havoc Pennington <hp@pobox.com>
14593 * test/watch.c (error_handler): make it safe if the error handler
14594 is called multiple times (if we s/error handler/disconnect
14595 handler/ we should just guarantee it's called only once)
14597 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14598 error handler on disconnect (it's quite possible we should
14599 just change the error handler to a "disconnect handler," I'm
14600 not sure we have any other meaningful errors)
14602 * configure.in: check for getpwnam_r
14604 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14605 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14606 mechanism as in SASL spec, using socket credentials
14608 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14609 (_dbus_send_credentials_unix_socket): new function
14611 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14613 (_dbus_write): only check errno if <0 returned
14614 (_dbus_write_two): ditto
14616 2003-01-02 Anders Carlsson <andersca@codefactory.se>
14618 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14619 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14620 (_dbus_marshal_test):
14621 * dbus/dbus-marshal.h:
14622 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14623 to _dbus_marshal_utf8_string. Also fix some tests.
14625 2002-12-28 Harri Porten <porten@kde.org>
14627 * configure.in: added check for C++ compiler and a very cheesy
14628 check for the Qt integration
14630 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14632 * qt/Makefile.am: added
14634 * qt/.cvsignore: added
14636 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14637 latter, added #ifdef QT_THREAD_SUPPORT guard.
14639 * dbus/Makefile.am: added missing headers for make dist
14641 2002-12-28 Kristian Rietveld <kris@gtk.org>
14643 * dbus/Makefile.am: fixup export-symbols-regex.
14645 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14647 * acinclude.m4: Add this file and put the
14648 PKG_CHECK_MODULE macro in it.
14650 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14652 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14653 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14654 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14655 (_dbus_marshal_test):
14656 Make the demarshalling routines align the pos argument.
14657 Add string marshalling tests and fix the obvious bugs
14660 2002-12-26 Havoc Pennington <hp@pobox.com>
14662 * dbus/dbus-auth.c: fixes fixes fixes
14664 * dbus/dbus-transport-unix.c: wire up support for
14665 encoding/decoding data on the wire
14667 * dbus/dbus-auth.c (_dbus_auth_encode_data)
14668 (_dbus_auth_decode_data): append to target string
14669 instead of nuking it.
14671 2002-12-26 Havoc Pennington <hp@pobox.com>
14673 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14674 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14677 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14678 avoid swap_bytes() overhead (ignoring possible assembly stuff for
14679 now). Main point is because I wanted unpack_uint32 to implement
14680 _dbus_verbose_bytes
14681 (_dbus_verbose_bytes): new function
14683 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14685 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14686 mechanism to handle a corrupt message stream
14687 (_dbus_message_loader_new): fix preallocation to only prealloc,
14690 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14691 (_dbus_string_test): enhance tests for copy/move and fix the
14694 * dbus/dbus-transport-unix.c: Hold references in more places to
14695 avoid reentrancy problems
14697 * dbus/dbus-transport.c: ditto
14699 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14700 leak reference count in no-message case
14702 * test/watch.c (do_mainloop): handle adding/removing watches
14703 during iteration over the watches. Also, ref the connection/server
14704 stored on a watch, so we don't try to mangle a destroyed one.
14706 * dbus/dbus-transport-unix.c (do_authentication): perform
14709 * dbus/dbus-auth.c (get_state): add a state
14710 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14711 (_dbus_auth_get_unused_bytes): append the unused bytes
14712 to the passed in string, rather than prepend
14714 * dbus/dbus-transport.c (_dbus_transport_init_base): create
14715 the auth conversation DBusAuth
14717 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14718 (_dbus_transport_new_for_domain_socket): when creating a
14719 transport, pass in whether it's a client-side or server-side
14720 transport so we know which DBusAuth to create
14722 2002-12-03 Havoc Pennington <hp@pobox.com>
14724 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14725 _after_ finalizing the derived members
14726 (unix_connection_set): unref watch if we fail to add it
14728 * dbus/dbus-connection.c (dbus_connection_unref): delete the
14729 transport first, so that the connection owned by the
14730 transport will be valid as the transport finalizes.
14732 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14733 if necessary, and remove watches from the connection.
14735 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14737 2002-12-26 Anders Carlsson <andersca@codefactory.se>
14739 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14740 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14741 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14742 (_dbus_marshal_test):
14743 * dbus/dbus-marshal.h:
14744 Add string marshal functions and have the demarshal functions
14745 return the new position.
14747 2002-12-25 Havoc Pennington <hp@pobox.com>
14749 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14750 it is a simple protocol that just maps directly to SASL.
14752 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14753 initial implementation, not actually used yet.
14755 * dbus/dbus-string.c (_dbus_string_find): new function
14756 (_dbus_string_equal): new function
14757 (_dbus_string_base64_encode): new function
14758 (_dbus_string_base64_decode): new function
14760 2002-12-25 Anders Carlsson <andersca@codefactory.se>
14762 * dbus/Makefile.am:
14763 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14764 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14765 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14766 (_dbus_demarshal_uint32), (_dbus_marshal_test):
14767 * dbus/dbus-marshal.h:
14768 * dbus/dbus-protocol.h:
14769 * dbus/dbus-test.c: (main):
14770 * dbus/dbus-test.h:
14771 Add un-optimized marshalling/demarshalling routines.
14773 2002-12-25 Harri Porten <porten@kde.org>
14775 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14777 2002-12-24 Zack Rusin <zack@kde.org>
14779 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14780 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14783 2002-12-24 Havoc Pennington <hp@pobox.com>
14785 * glib/dbus-gthread.c: fix include
14787 * glib/dbus-glib.h: rename DBusMessageHandler for now.
14788 I think glib API needs to change, though, as you don't
14789 want to use DBusMessageFunction, you want to use the
14790 DBusMessageHandler object. Probably
14791 dbus_connection_open_with_g_main_loop()
14792 and dbus_connection_setup_g_main_loop() or something like that
14793 (but think of better names...) that just create a connection
14794 that has watch/timeout functions etc. already set up.
14796 * dbus/dbus-connection.c
14797 (dbus_connection_send_message_with_reply): new function just to
14798 show how the message handler helps us deal with replies.
14800 * dbus/dbus-list.c (_dbus_list_remove_last): new function
14802 * dbus/dbus-string.c (_dbus_string_test): free a string that
14805 * dbus/dbus-hash.c: use memory pools for the hash entries
14806 (rebuild_table): be more paranoid about overflow, and
14807 shrink table when we can
14808 (_dbus_hash_test): reduce number of sprintfs and write
14809 valid C89. Add tests for case where we grow and then
14810 shrink the hash table.
14812 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14814 * dbus/dbus-connection.c (dbus_connection_register_handler)
14815 (dbus_connection_unregister_handler): new functions
14817 * dbus/dbus-message.c (dbus_message_get_name): new
14819 * dbus/dbus-list.c: fix docs typo
14821 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14822 an object representing a handler for messages.
14824 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14826 * glib/dbus-glib.h:
14827 * glib/dbus-gthread.c: (dbus_gthread_init):
14828 Don't use the gdbus prefix for public functions.
14830 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14834 Add GLib checks and fixup .pc files
14836 * glib/Makefile.am:
14837 * glib/dbus-glib.h:
14838 * glib/dbus-gmain.c: (gdbus_connection_prepare),
14839 (gdbus_connection_check), (gdbus_connection_dispatch),
14840 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14841 (dbus_connection_gsource_new):
14842 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14843 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14844 * glib/test-dbus-glib.c: (message_handler), (main):
14847 2002-12-15 Harri Porten <porten@kde.org>
14849 * autogen.sh: check for libtoolize before attempting to use it
14851 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14854 * .cvsignore: ignore more stamp files
14856 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14858 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14859 without make install.
14861 2002-12-15 Havoc Pennington <hp@pobox.com>
14863 * dbus/dbus-threads.c: add thread stubs that a higher library
14864 layer can fill in. e.g. the GLib wrapper might fill them in with
14865 GThread stuff. We still need to use this thread API to
14866 thread-safe-ize the library.
14868 2002-12-12 Havoc Pennington <hp@pobox.com>
14870 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14871 below new interfaces and include fewer system headers.
14873 * dbus/dbus-sysdeps.c (_dbus_read): new function
14874 (_dbus_write): new function
14875 (_dbus_write_two): new function
14876 (_dbus_connect_unix_socket): new function
14877 (_dbus_listen_unix_socket): new function
14879 * dbus/dbus-message-internal.h: change interfaces to use
14882 2002-12-11 Havoc Pennington <hp@pobox.com>
14884 * dbus/dbus-types.h: add dbus_unichar
14886 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14888 * dbus/dbus-connection.c (dbus_connection_send_message): return
14891 * dbus/dbus-transport.c: include dbus-watch.h
14893 * dbus/dbus-connection.c: include dbus-message-internal.h
14895 * HACKING: add file with coding guidelines stuff.
14897 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14898 handling here, for security purposes (as in vsftpd). Not actually
14899 using this class yet.
14901 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14902 system/libc usage here, as in vsftpd, for ease of auditing (and
14903 should also simplify portability). Haven't actually moved all the
14904 system/libc usage into here yet.
14906 2002-11-25 Havoc Pennington <hp@pobox.com>
14908 * dbus/dbus-internals.c (_dbus_verbose): fix to not
14909 always print the first verbose message.
14911 2002-11-24 Havoc Pennington <hp@pobox.com>
14913 * test/echo-client.c, test/echo-server.c: cheesy test
14916 * configure.in (AC_CHECK_FUNCS): check for writev
14918 * dbus/dbus-message.c (_dbus_message_get_network_data): new
14921 * dbus/dbus-list.c (_dbus_list_foreach): new function
14923 * dbus/dbus-internals.c (_dbus_verbose): new function
14925 * dbus/dbus-server.c, dbus/dbus-server.h: public object
14926 representing a server that listens for connections.
14928 * dbus/.cvsignore: create
14930 * dbus/dbus-errors.h, dbus/dbus-errors.c:
14931 public API for reporting errors
14933 * dbus/dbus-connection.h, dbus/dbus-connection.c:
14934 public object representing a connection that
14935 sends/receives messages. (Same object used for
14936 both client and server.)
14938 * dbus/dbus-transport.h, dbus/dbus-transport.c:
14939 Basic abstraction for different kinds of stream
14940 that we might read/write messages from.
14942 2002-11-23 Havoc Pennington <hp@pobox.com>
14944 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14947 * dbus/dbus-test.c (main): add list test, and include
14948 dbus-test.h as intended
14950 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14951 (_dbus_hash_table_remove_int): return value indicates
14952 whether the entry existed to remove
14954 * dbus/dbus-list.c: add linked list utility class,
14955 with docs and tests
14957 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14960 2002-11-23 Havoc Pennington <hp@pobox.com>
14962 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14963 DBUS_END_DECLS to nothing, that should fix this once and for all
14965 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14967 * dbus/dbus-message.c, dbus/dbus-hash.c:
14968 add some missing @brief
14970 2002-11-23 Havoc Pennington <hp@pobox.com>
14972 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14973 to avoid confusing Doxygen
14975 * dbus/dbus-hash.c: @} not }@
14977 * dbus/dbus-message.c (struct DBusMessage): split out
14980 2002-11-23 Havoc Pennington <hp@pobox.com>
14982 * configure.in: pile on more warning flags if using gcc
14984 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14985 to document static functions
14987 * configure.in: add summary to end of configure so it
14988 looks nice and attractive
14990 * dbus/dbus-hash.c: finish implementation and write unit
14993 * configure.in: add --enable-tests to enable unit tests
14995 * dbus/dbus-test.c: test program to run unit tests
14996 for all files in dbus/*, initially runs a test for
14999 * dbus/dbus-internals.h: file to hold some internal utility stuff
15001 2002-11-22 Havoc Pennington <hp@redhat.com>
15003 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15004 "ported" away from Tcl
15006 * dbus/dbus-types.h: header for types such as dbus_bool_t
15008 2002-11-22 Havoc Pennington <hp@redhat.com>
15010 * dbus/dbus.h: fixups for doc warnings
15012 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15014 (QUIET): make it quiet so we can see warnings
15016 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15018 2002-11-22 Havoc Pennington <hp@redhat.com>
15020 * Makefile.am: include "Doxyfile" target in all-local
15022 * configure.in: generate the Doxyfile
15024 * Doxyfile.in: move Doxyfile here, so we can use
15025 configure to generate a Doxyfile with the right
15026 version number etc.
15028 2002-11-22 Havoc Pennington <hp@redhat.com>
15030 * dbus/dbus-message.c: move inline docs into .c file
15032 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15033 so all docs are under doc/
15034 (MAN_EXTENSION): generate man pages. Use extension
15035 ".3dbus" which matches ".3qt" on my system,
15036 I guess this is OK, I don't know really.
15037 (FILE_PATTERNS): look for .c files not .h, makes sense
15038 for plain C I think
15040 2002-11-22 Havoc Pennington <hp@pobox.com>
15042 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15043 because any app can be a server, and any app can be a client,
15044 the bus is a special kind of server.
15046 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
15048 * Doxyfile : adding. Still needs Makefile rules to be generated
15049 automatically (just run "doxygen" in the toplevel dir for now to
15052 * dbus/dbus-message.h : Adding sample docs (javadoc since
15053 resembles gtk-doc a little more)
15055 * dbus/dbus.h : Adding sample docs
15057 2002-11-21 Havoc Pennington <hp@redhat.com>
15059 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15060 so we can allow ourselves to include files directly,
15061 instead of having to use dbus.h
15063 * dbus/dbus.h: fill in
15065 * dbus/dbus-message.h: sketch out a sample header file.
15066 Include griping if you include it directly instead of
15069 * dbus/dbus-macros.h: new file with macros for extern "C",
15070 TRUE/FALSE, NULL, etc.
15072 * doc/file-boilerplate.c: put include guards in here
15074 2002-11-21 Havoc Pennington <hp@redhat.com>
15076 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15078 * COPYING: include the GPL as well, and license code
15079 under both AFL and GPL.
15081 2002-11-21 Havoc Pennington <hp@redhat.com>
15083 * acconfig.h: get rid of this
15085 * autogen.sh (run_configure): add --no-configure option
15087 * configure.in: remove AC_ARG_PROGRAM to make
15088 autoconf complain less. add AC_PREREQ.
15089 add AC_DEFINE third arg.
15091 2002-11-21 Anders Carlsson <andersca@codefactory.se>
15094 Fix references so we can distcheck.
15096 2002-11-21 Havoc Pennington <hp@redhat.com>
15098 * Initial module creation