1 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
5 2006-11-08 Havoc Pennington <hp@redhat.com>
7 * doc/dbus-specification.xml: add a note about protocol stability
9 * doc/TODO: Remove "important for 1.0" section, replace with
10 "important for 1.2" section
12 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
14 * README: remove some of the out of date flags
16 * doc/TODO: Remove todo items which are done
18 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
20 * tools/dbus-monitor.c: Handle sigint so we flush stdout
21 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
23 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
25 * tools/dbus-monitor.1: update the manpage for dbus-monitor
26 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
28 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
30 * AUTHORS: Update with all people listed in the ChangeLog
32 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
34 * tools/dbus-monitor.c: add profiling tools to dbus-monitor
35 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
37 2006-11-07 Havoc Pennington <hp@redhat.com>
39 * HACKING: Update release instructions to include stuff about
40 stable releases, branching, etc. May not be totally correct,
41 please fix if needed, but keep instructions up-to-date so we do
42 each stable release consistently in the future.
44 2006-11-07 Havoc Pennington <hp@redhat.com>
46 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
47 documentation updates. Bump faq/spec versions (not to 1.0; I don't
48 think the spec will be "finished"/1.0 when we ship the 1.0 library).
50 2006-11-06 John (J5) Palmieri <johnp@redhat.com>
52 * bus/bus.c: Missed patch - pass in the context to the directory watch
54 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
56 * Released D-Bus 1.0 RC 3(0.95)
58 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
60 * bus/activation.c (bus_activation_new): don't fail if we can not read
61 the directory as it may not exist
63 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
65 * bus/config-parser.c (service_dirs_find_dir): use
66 _dbus_list_get_next_link so we don't get stuck in an infinite loop
67 (start_busconfig_child): move processing of standard_session_servicedirs
68 tags here because they have no content
69 (bus_config_parser_content): check we don't have content in
70 standard_session_servicedirs tag
72 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
74 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
75 Packagers need to own this directory
77 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
79 * tools/run-with-tmp-session-bus.sh: fixed script to replace the
80 <standard_session_servicedirs> tag with a <sevicedir> tag that
81 points to the test service directory
83 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
85 * configure.in: Add a check for DIR *dirp->dd_fd
87 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
88 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
89 of both Solaris and Irix
91 2006-11-01 Havoc Pennington <hp@redhat.com>
93 * bus/dbus-daemon.1.in: document standard_session_servicedirs
95 2006-11-01 John (J5) Palmieri <johnp@redhat.com>
97 * configure.in: expose DBUS_DATADIR
99 * bus/config-parser.c: add the standard_session_servicedirs element
101 (bus_config_parser_content): process the standard_session_servicedirs
102 element by getting the standard directories from sysdeps and merging
103 them into the service directory list
104 (test_default_session_servicedirs): make sure we get what we expect
106 * bus/session.conf.in: replace the servicedir tag with the
107 standard_session_servicedirs tag
109 * dbus/dbus-list.h: remove the typedef of DBusList and place it in
110 dbus-sysdeps.h to avoid circular header dependencies
112 * dbus/dbus-sysdeps.h: add the typedef of DBusList
114 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
115 which takes a string of directories delimited by colons, parses them
116 out, appends a suffix and puts them in a list ignoring empty elements
117 (_dbus_get_standard_session_servicedirs): returns the standard
118 directories for a session bus to look for service activation files
119 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and
120 DBUS_DATADIR directories
122 * test/data/valid-config-files/many-rules.conf: add the
123 standard_session_servicedirs tag to the valid config file tests
125 2006-10-30 Havoc Pennington <hp@redhat.com>
127 * tools/dbus-launch.1, doc/TODO: capture intent to change the
128 command line options of dbus-launch a bit post 1.0
130 2006-10-27 Havoc Pennington <hp@redhat.com>
132 * dbus/dbus-connection.c (dbus_connection_open_private): document
133 how to choose shared vs. private connections
135 2006-10-27 Havoc Pennington <hp@redhat.com>
137 * dbus/dbus-test.c: enclose more of the file in the
138 DBUS_BUILD_TESTS check.
140 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
141 DBUS_DISABLE_ASSERT case.
143 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
144 that it only works on the server side
146 * dbus/dbus-bus.c: add a global lock covering the BusData we
147 attach to each connection
148 (internal_bus_get): lock our access to the BusData
149 (dbus_bus_register): lock the entire registration process
150 with _DBUS_LOCK(bus_datas). If we get the lock and
151 registration is already complete, silently return (vs. previous
152 behavior of aborting).
153 (dbus_bus_set_unique_name): lock the BusData
154 (dbus_bus_get_unique_name): lock the BusData
156 2006-10-27 John (J5) Palmieri <johnp@redhat.com>
158 * bus/config-parser.c (service_dirs_find_dir,
159 service_dirs_append_unique_or_free,
160 service_dirs_append_link_unique_or_free): New static methods
161 for only appending unique service directory names into
162 the service directory list
163 (merge_included, bus_config_parser_content): Only add unique
164 service directory names into the list
166 2006-10-27 Havoc Pennington <hp@redhat.com>
168 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
169 variables volatile, suggested by Thiago. Document struct fields.
170 (PTHREAD_CHECK): remove pthread error checking if assertions are
171 disabled, should reduce the no-assertions case to the bare
174 2006-10-26 Havoc Pennington <hp@redhat.com>
176 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
178 (_dbus_pthread_mutex_unlock): make it recursive
179 (_dbus_pthread_condvar_wait): save/restore the recursion count
180 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
182 2006-10-26 Havoc Pennington <hp@redhat.com>
184 * doc/dbus-specification.xml: clarify the UUID text slightly
186 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
187 pthread errors. Add DBusMutexPThread and DBusCondVarPThread
188 in preparation for being able to extend them for e.g. recursive
191 2006-10-26 Havoc Pennington <hp@redhat.com>
193 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how
194 condition variables relate to recursive mutexes.
196 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c,
197 dbus/dbus-threads.c: Split the platforms-specific thread
198 implementations into their own files.
200 * dbus/dbus-sysdeps-pthread.c
201 (_dbus_pthread_condvar_wait_timeout): invert the return value, it
202 was backward. Not that anything uses it.
204 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
206 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
207 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
208 needs to be cleaned up more.
210 * doc/TODO: Add a todo that *BSD hackers should look at cleaning
213 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
215 * configure.in, dbus-1.pc.in: Check to see if thread methods
216 are in glibc or libpthread and add -lpthread to the link stage
219 2006-10-26 Thiago Macieira <thiago@kde.org>
221 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
222 bug 8780: the connection lock is only required while recording
223 the shared connection, so protect only that code
224 section. Don't require connection_lookup_shared to return a
227 2006-10-26 Thiago Macieira <thiago@kde.org>
229 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
230 check if get_machine_uuid() returns NULL before proceeding any
231 further: we can't init the X atoms or create a session file
232 name if there is no machine ID.
233 This solves a crash reported by some users if
234 --exit-with-session was used without --autolaunch=<machine-id>
236 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
238 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
239 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
241 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
242 before we run dbus-launch
244 * configure.in: define TEST_BUS_BINARY to be the full path to
245 dbus-daemon in the build root
247 2006-10-25 Sjoerd Simons <sjoerd@luon.net>
251 * toos/dbus-uuidgen.1:
252 Move the machine-id file to /var/lib/dbus
254 2006-10-24 David Zeuthen <davidz@redhat.com>
256 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
257 _dbus_assert (thread_init_generation != _dbus_current_generation)
258 not _dbus_assert (thread_init_generation == _dbus_current_generation)
260 2006-10-24 Thiago Macieira <thiago@kde.org>
262 * dbus/dbus-sysdeps.h:
263 * dbus/dbus-sysdeps-unix.c: Add function
264 _dbus_make_file_world_readable that chmods a file to 0644.
266 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
267 Avoid writing to the static "argv" array, thereby avoiding a
268 COW on the child process.
270 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
271 call _dbus_make_file_world_readable on the created file.
273 2006-10-23 David Zeuthen <davidz@redhat.com>
275 * dbus/dbus-memory.c: Use atomic variable to protect
276 n_blocks_outstanding otherwise OOM will be reported using SMP on
279 * bus/dispatch.c: Add missing end of line characters
281 * bus/desktop-file.c (parse_section_start, parse_key_value)
282 (bus_desktop_file_load): Propertly handle OOM
284 * dbus/dbus-threads.c (init_uninitialized_locks): Check that
285 thread_init_generation equals _dbus_current_generation, not 0
287 2006-10-22 Havoc Pennington <hp@redhat.com>
289 * dbus/dbus-connection-internal.h: move prototype of
290 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
291 it isn't in a public header and doesn't end up in the DBusBus
294 2006-10-21 Havoc Pennington <hp@redhat.com>
296 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
297 the tarball if packagers want to run it
299 * cleanup-man-pages.sh: Add a script which munges all the internal
300 API man pages out of the Doxygen output. This reduces the size of
301 the installed man pages from 7 to 2 megs, and avoids
302 namespace-polluting pages. Right now (like Doxygen) this script
303 isn't in the build, it's something packagers can do manually.
305 2006-10-21 Havoc Pennington <hp@redhat.com>
307 * dbus/dbus-connection.h: don't include the watch/timeout
308 functions in connection section
310 2006-10-21 Havoc Pennington <hp@redhat.com>
312 * Documentation! Whee! Doxygen now 100% silent. If you make it
313 angry again, you will be punished.
315 2006-10-21 Havoc Pennington <hp@redhat.com>
317 * More documentation - all public API now documented according to
320 2006-10-21 Havoc Pennington <hp@redhat.com>
322 * Document a bunch of undocumented stuff
324 2006-10-21 Havoc Pennington <hp@redhat.com>
326 * Clean up Doxygen group markers for public API so Doxygen finds
327 everything (not comprehensively fixed for private API).
328 Means all remaining Doxygen warnings are just about missing docs
329 and thus pretty simple to resolve.
331 2006-10-21 Havoc Pennington <hp@redhat.com>
333 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
335 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len()
336 as DBUS_GNUC_DEPRECATED
338 2006-10-21 Havoc Pennington <hp@redhat.com>
340 * Move all private API into the private Doxygen group sections of
341 the files, so they don't show up in the public API docs
343 2006-10-21 Havoc Pennington <hp@redhat.com>
345 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around
346 dbus_message_iter_get_array_len().
348 * throughout: documentation improvements.
350 2006-10-20 Havoc Pennington <hp@redhat.com>
352 * doc/TODO: remove the int64 thing from 1.0 since it doesn't
353 matter, and the message-loader-breaker thing since nobody is going
354 to do it. Add an item to 1.0 about supporting recursive locks
355 in dbus_threads_init_default() though, since it should be easy.
357 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
358 Fix this in the !dispatch case to avoid busy-looping after
361 * More misc docs improvements
363 2006-10-19 Havoc Pennington <hp@redhat.com>
365 * more Doxygen-related fixes (lots of moving things from the
366 public to internal section in dbus-connection.c)
368 2006-10-19 Havoc Pennington <hp@redhat.com>
370 * Fix a pile of Doxygen warnings and missing docs
372 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
374 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
375 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext
376 instead of a void *. kqueue uses this to get the context's loop
377 while the other modules ignore the parameter. This allows us to
378 avoid platform conditionals
380 * bus/bus.c (process_config_postinit): Pass in the context to the
383 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
385 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
386 when starting the system bus
388 2006-10-18 John (J5) Palmieri <johnp@redhat.com>
390 * configure.in: More fixups for cross compile (Patch from
391 Marco Pracucci <development at pracucci dot com>)
393 2006-10-17 Havoc Pennington <hp@redhat.com>
395 * tools/dbus-send.c (main): don't close shared connection, fix
398 2006-10-17 Havoc Pennington <hp@redhat.com>
400 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
402 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
403 since realistically it doesn't look like we'll be changing it
406 2006-10-17 Havoc Pennington <hp@redhat.com>
408 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
409 be used for return_if_fail type warnings; prefixes the pid, and
412 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
414 * configure.in: Released 1.0 RC 2(0.94)
415 Add check for -fPIC and enable it if available
417 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
419 * doc/TODO: Remove the check TODO item
421 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
423 * dbus-transport-socket.c (exchange_credentials):
424 Print out more detailed errors if reading or sending
425 credentials fail (Patch from Julio M. Merino Vidal
426 <jmmv at NetBSD dot org>)
428 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
430 * configure.in: when checking for posix getpwnam_r assume true
433 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
435 * configure.in: Check for gethostbyname first before we check for it
436 in libnsl. On gnu systems it is implemeneted
438 2006-10-13 Havoc Pennington <hp@redhat.com>
440 * dbus/dbus-connection.c
441 (dbus_connection_send_with_reply_and_block): fix to handle closed
442 connections, from Tambet Ingo bug #8631
444 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
446 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
448 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
450 * test/name-test/Makefile.am: don't link against both libdbus and
453 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
455 * configure.in: check for dirfd even if it is a macro
456 (Patch from Timothy Redaelli <drizzt at gufi dot org>)
458 2006-10-08 John (J5) Palmieri <johnp@redhat.com>
460 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
461 avoid using dirfd on systems that don't have dirfd
462 (Patch by Brian Cameron <brian dot cameron at sun dot com>)
464 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
466 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from
467 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
469 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
470 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
471 macro because _dbus_abort calls it
473 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
476 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
478 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
479 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>)
481 2006-10-02 Thiago Macieira <thiago@kde.org>
483 * tools/dbus-launch.c (main): make it complain and abort
484 execution in case an unknown option is given. Also, process
485 the '--' argument as the end of arguments.
487 2006-10-01 Havoc Pennington <hp@redhat.com>
489 * tools/dbus-launch.c (print_variables): if no syntax is given,
490 don't print something that's sort-of-half-sh-syntax, just print
491 a plain key-value pairs thing.
493 * tools/dbus-launch-x11.c: use machine ID rather than hostname for
494 the local machine representation (but still have the hostname in
495 the display). Remove the hostname from the display if it is
496 localhost. Change session files to be named
497 ~/.dbus/session-bus/machine-display. Change X atoms to be
498 underscore-prefixed so nobody whines about ICCCM compliance.
499 Otherwise name them the same as the env variables.
500 Change session file format to include key-value pairs and an
501 explanatory comment. Keys are the same as the env variables.
502 (set_address_in_x11): X property format can't depend on
503 sizeof(pid_t) on a particular machine, fix to always be 32 bits
505 * tools/dbus-launch.c: make --autolaunch take a machine id
506 argument. If --autolaunch is used with a program to run, complain
507 for now (but add a FIXME). Also, don't look for existing bus if
508 there's a program to run (but add a FIXME).
510 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
511 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
512 just to get this, and avoids duplicating uuid-reading code).
514 * tools/dbus-launch.1: clarify various things
516 2006-10-01 Havoc Pennington <hp@redhat.com>
518 * test/test-service.c (path_message_func): remove broken extra
519 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
521 * test/test-shell-service.c (path_message_func): same fix
523 * dbus/dbus-connection.c
524 (_dbus_connection_get_dispatch_status_unlocked): break up the
525 function a little for clarity and fix the notification of
526 dbus-bus.c to not require dispatch to be complete
528 * dbus/dbus-connection.c (dbus_connection_unref): improve the
529 warning when you try to finalize an open connection.
531 2006-10-01 Havoc Pennington <hp@redhat.com>
534 (internal_bus_get): only weak ref the connection; this means
535 _dbus_bus_notify_shared_connection_disconnected_unlocked can be
536 called safely in any context
537 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
540 * dbus/dbus-connection.c
541 (_dbus_connection_get_dispatch_status_unlocked): move
542 _dbus_bus_notify_shared_connection_disconnected_unlocked here
543 when queuing Disconnected instead of when the Disconnected message
544 arrives, so dbus_bus_get() won't return closed connections.
546 2006-10-01 Havoc Pennington <hp@redhat.com>
548 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
549 Add a hack to make DBusNewConnectionFunction work right.
551 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
552 the hack here. Also, fix the todo about refcount leak.
554 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
555 and use the hack here
557 * dbus/dbus-connection.c: Kill the "shared" flag vs. the
558 "shareable" flag; this was completely broken, since it meant
559 dbus_connection_open() returned a connection of unknown
560 shared-ness. Now, we always hold a ref on anything opened
563 Move the call to notify dbus-bus.c into
564 connection_forget_shared_unlocked, so libdbus consistently forgets
565 all its knowledge of a connection at once. This exposed numerous
566 places where things were totally broken if we dropped a ref inside
567 get_dispatch_status_unlocked where
568 connection_forget_shared_unlocked was previously, so move
569 connection_forget_shared_unlocked into
570 _dbus_connection_update_dispatch_status_and_unlock. Also move the
571 exit_on_disconnect here.
573 (shared_connections_shutdown): this assumed weak refs to the
574 shared connections; since we have strong refs now, the assertion
575 was failing and stuff was left in the hash. Fix it to close
576 still-open shared connections.
578 * bus/dispatch.c: fixup to use dbus_connection_open_private on the
579 debug pipe connections
581 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
582 dbus-bus.c if the closed connection is in fact shared
583 (_dbus_connection_close_possibly_shared): rename from
584 _dbus_connection_close_internal
585 (dbus_connection_close, dbus_connection_open,
586 dbus_connection_open_private): Improve docs to explain the deal
587 with when you should close or unref or both
590 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
591 from _dbus_bus_check_connection_and_unref_unlocked and modify to
592 loop over all connections
594 * test/test-utils.c (test_connection_shutdown): don't try to close
597 * test/name-test/test-threads-init.c (main): fix warnings in here
599 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
600 env variable to cause blocking waiting for gdb; drop
601 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
604 * configure.in: add -export-dynamic to libtool flags if assertions enabled
605 so _dbus_print_backtrace works.
607 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
608 instead of _dbus_verbose to print the backtrace, and diagnose lack
609 of -rdynamic/-export-dynamic
611 2006-09-30 Havoc Pennington <hp@redhat.com>
613 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
614 (internal_bus_get): fix screwy code formatting. whoever committed
615 that was not paying attention!
617 2006-09-30 Havoc Pennington <hp@redhat.com>
619 * configure.in (LT_CURRENT, LT_AGE): increment current and age to
620 reflect addition of interfaces.
622 * doc/dbus-specification.xml: describe a new
623 org.freedesktop.DBus.Peer.GetMachineId method
625 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
626 (_dbus_string_skip_white, _dbus_string_skip_blank): use new
627 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
629 (_dbus_string_chop_white): new function
631 * bus/connection.c (bus_connections_setup_connection): call
632 dbus_connection_set_route_peer_messages.
634 * dbus/dbus-connection.c
635 (_dbus_connection_peer_filter_unlocked_no_update): modify to
636 support a GetMachineId method.
638 Also, support a new flag to let the bus pass peer methods through
639 to apps on the bus, which can be set with
640 dbus_connection_set_route_peer_messages.
642 Finally, handle and return an error for anything unknown on the
643 Peer interface, which will allow us to extend the Peer interface
644 in the future without fear that we're now intercepting something
645 apps were wanting to see.
647 * tools/dbus-uuidgen.c: a thin wrapper around the functions in
650 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
651 binary here, since most of the code is already in libdbus
653 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
654 uuid from the system config file
656 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
657 (_dbus_read_uuid_file_without_creating)
658 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
659 uuid-related functions, partly factored out from dbus-server.c
661 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
662 DBUS_ERROR_FILE_EXISTS instead of EEXIST
664 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
666 * tools/dbus-cleanup-sockets.1: explain what the point of this
669 * autogen.sh (run_configure): add --config-cache to default
672 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
673 error set/clear assertions when DBUS_DISABLE_CHECKS is defined
675 * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
676 don't try to save address, fixes crash in make check
678 2006-09-30 Thiago Macieira <thiago@kde.org>
680 * configure.in: add DBUS_BINDIR as a #define to C source code.
682 * tools/dbus-launch.c
683 * tools/dbus-launch.h
684 * tools/dbus-launch-x11.c:
685 * tools/dbus-launch.1: Add the --autolaunch option to
686 dbus-launch, which makes it scan for an existing session
687 started with --autolaunch. With that option, it also creates
688 an X11 window and saves the bus address and PID to it.
690 * dbus/dbus-sysdeps.h:
691 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
692 a function that runs "dbus-launch --autolaunch" to retrieve
693 the running D-Bus session address (or start one if none was running)
695 * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
696 address protocol, which tries to get the running session from
700 * dbus/dbus-internals.h: Make "autolaunch:" be the default
701 D-Bus session bus address.
703 * dbus/dbus-connection.c: Fix horrible typo in error message.
705 2006-09-18 John (J5) Palmieri <johnp@redhat.com>
707 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
709 2006-09-17 Havoc Pennington <hp@redhat.com>
711 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
712 fix so that if unix_user_function is set on windows, we still
713 do the default check that the auth identity matches the bus identity
715 2006-09-16 Havoc Pennington <hp@redhat.com>
717 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
718 to _dbus_transport_open_platform_specific,
719 _dbus_transport_open_socket,
720 and _dbus_transport_open_debug_pipe
722 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
724 2006-09-16 Havoc Pennington <hp@redhat.com>
726 Attempt auditing public API to remove all cases where a Unix
727 function returns weird emulated goo to Windows. This probably
728 breaks the bus daemon on Windows, to fix it again we may
729 need to stop processing unix-specific config options on Windows,
730 and may need to add Windows-specific public API or config options.
732 * configure.in (LT_CURRENT, LT_AGE): increment current and age,
733 to reflect added interfaces; should not break soname.
735 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
736 not invoke unix user function on Windows. Kind of a hacky fix, but
737 we don't want a "unix uid" leaking out on Windows.
739 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
740 to get the socket fd on Windows or UNIX
741 (dbus_connection_get_unix_fd): make this always fail on Windows
743 2006-09-16 Havoc Pennington <hp@redhat.com>
745 * dbus/dbus-server.c (dbus_server_listen): change how this works
746 to be able to delegate to a set of handlers that can succeed,
747 fail, or choose not to handle. Allows us to have
748 dbus_server_listen_platform_specific.
750 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
751 factor out the tcp socket stuff to be used on windows, leaving
752 unix domain socket only in dbus-socket-unix.c
754 * dbus/dbus-transport-socket.c
755 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
756 stuff to be used on windows, leaving unix domain socket only
757 in dbus-transport-unix.c
759 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
760 temporary hack to be sure this fails on windows
761 (dbus_connection_get_unix_process_id): ditto
763 2006-09-16 Havoc Pennington <hp@redhat.com>
765 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
766 (_dbus_open_unix_socket, _dbus_open_socket): change API for
767 _dbus_open_socket so the domain/type/protocol from system headers
768 are not required. This is kind of pointless though unless we move
769 part of _dbus_connect_tcp_socket into sysdeps.c instead of
770 sysdeps-unix.c, which would mean adding a wrapper around
772 Also, add DBusError to the socket-opening functions so they
773 don't require use of errno.
775 2006-09-16 Havoc Pennington <hp@redhat.com>
777 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
778 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
780 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
781 Kümmel bug #8249 to make the sysdeps.h read/write/open/close
782 functions specifically for sockets only, and move generic
783 read/write/open/close into unix-specific code.
785 2006-09-14 Havoc Pennington <hp@redhat.com>
787 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
788 complaint about accessing revents when poll returns 0, from Julian Seward.
790 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
792 * Released 1.0 RC 1 (0.93)
794 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
796 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
797 use _dbus_close instead of close
799 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
801 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
802 credentials. Fixes "external" authentication under e.g. NetBSD
803 which does not support any other socket credentials mechanism.
804 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
806 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
808 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
809 dbus_threads_init and be used by the dbus mutex functions to
812 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
814 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
816 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
817 use threadsafe readdir_r instead of readdir
819 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
821 * dbus-threads.c (dbus_threads_init_default): New method for
822 initializing the internal thread implementation (Patch from
823 Alexander Larsson <alexl at redhat dot com>)
825 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
827 * remove a bunch of todo items from the 1.0 list
829 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
831 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
834 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
836 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
837 complex debugging code
839 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
840 between the test suite ifdefs
841 (_dbus_verbose_bytes): return if verbosity is not enabled
843 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
845 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
848 2006-09-10 Havoc Pennington <hp@redhat.com>
850 patch mostly by Peter Kümmel, bug #8211
852 * dbus/dbus-sysdeps-unix.c: new file, which splits out
853 unix-specific stuff in dbus-sysdeps.c
855 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
856 and move unix-specific stuff to dbus-sysdeps-unix.c
858 * configure.in: check HAVE_ERRNO_H
860 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
862 * bus/test-main.c (main): Initialize threading during tests
864 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
865 Unlock connection on error
866 (generate_local_error_message): static method for generating
867 an error message when we don't have a message to reply to
868 (_dbus_connection_block_pending_call): Send a disconnect error
869 instead of just a timeout (NULL) when the bus gets disconnected
870 while blocking for a reply.
872 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
874 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
875 filters (Patch from Kimmo Hämäläinen
876 <kimmo dot hamalainen at nokia dot com>)
878 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
880 * dbus/dbus-connection-internal.h: Add prototype for
881 _dbus_connection_test_get_locks to remove warning
883 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
885 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
886 close child_err_report_pipe[WRITE_END] on exec (Patch from
887 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
889 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
891 * Clean up close calls to use _dbus_close (Patch from
892 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
894 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
897 - Remove pending call locking todo item
898 - dbus_connection_open now holds hard ref. Remove todo item
899 - do proper locking on _dbus_bus_check_connection_and_unref
900 and handle DBUS_BUS_STARTER. Remove todo item
901 - Warn on closing of a shared connection. Remove todo item
903 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
904 dbus/dbus-connection.c: Use the dbus_connection_close_internal
905 so we don't get the warning when closing shared connections
907 * test/test-service.c, test/test-shell-service.c: Applications
908 don't close shared connections themselves so we unref instead of
911 * test/test-utils.c (test_connection_shutdown): Close the connection
913 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
914 _dbus_bus_check_connection_and_unref_unlocked since we only call this
915 method on a locked connection.
916 Make sure we call _dbus_connection_unref_unlocked instead of
917 dbus_connection_unref also.
918 Handle DBUS_BUS_STARTER correctly
920 * dbus/dbus-connection.c (connection_record_shared_unlocked):
921 Mark as shared and hard ref the connection
922 (connection_forget_shared_unlocked): Remove the hard ref from the
924 (_dbus_connection_close_internal_and_unlock): New internal function
925 which takes a locked connection and unlocks it after closing it
926 (_dbus_connection_close_internal): New internal function which acts
927 like the origonal dbus_connection_close method by grabbing a connection
928 lock and calling _dbus_connection_close_internal_and_unlock
929 (dbus_connection_close): Public close method, warns when the app
930 trys to close a shared connection
932 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
935 (bus_driver_generate_introspect_string): New method for populating
936 a DBusString with the introspect data
937 (bus_driver_handle_introspect): Move introspect generation code to
938 bus_driver_generate_introspect_string
941 (introspect): New function which prints out the intropect data and
943 (main): Add a --introspect switch
945 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
947 * doc/TODO: Removed dtd publishing item.
948 It seems the dtd has already been added at
949 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
951 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
953 * doc/TODO, various source files: Audited todo's and FIXME's and
954 prepended the ones we should be looking at with 1.0. Those
955 prepended with 1.0? need clerification or might not be needed
958 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
960 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
961 NULL in the public API (Patch from Kimmo Hämäläinen
962 <kimmo dot hamalainen at nokia dot com>)
964 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
966 * configure.in: Fix for OS-X compile time endian issues (patch from
967 Benjamin Reed <ranger at befunk dot com>)
969 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
971 * configure.in: Check for no-common compiler flag (OS-X fix from
972 Benjamin Reed <ranger at befunk dot com>)
974 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
976 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
977 <fcrozat at mandriva dot com>)
979 2006-08-29 Havoc Pennington <hp@redhat.com>
981 * test/test-service.c (path_message_func): fix lack of return value
983 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
984 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
985 any more sense than on anything else in this file.
986 (_dbus_get_tmpdir): add const to return value, and keep the
987 results of the various getenv around in a static variable.
989 2006-08-29 Havoc Pennington <hp@redhat.com>
991 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
992 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
994 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
996 * test/Makefile.am: change find to use syntax that works with non
999 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1001 * dbus/dbus-transport.c: fix invalid deref when checking if
1002 a vtable method exists (Patch from Christian Ehrlicher
1003 <ch dot ehrlicher at gmx dot de>)
1005 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1007 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
1008 test/name-test/Makefile.am: Fixed some issues with getting get dbus
1009 to build with builddir != srcdir (Taken from a patch by Bernard Leak
1010 <bernard at brenda-arkle dot demon dot co dot uk>)
1012 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1014 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1017 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1019 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1020 it works on any system providing this interface, not only FreeBSD.
1021 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1023 2006-08-20 Havoc Pennington <hp@redhat.com>
1025 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1028 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1032 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1034 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1035 to reflect the init late change
1037 * bus/bus.c (bus_context_new): Check user before we fork so we can
1038 print out an error message a user will be able to see
1040 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1042 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
1044 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1045 Add two more global locks for use on windows platforms. These are
1046 unused on non-windows platforms but are not ifdefed out to avoid
1047 potential bugs (i.e. the few bytes lost does not warrent the extra
1048 maintanence and complexity that having seperate sets of locks would
1051 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1053 * bus/services.c (bus_registry_acquire_service): Return an error
1054 when an application tries to register the org.freedesktop.DBus Bus Name
1056 * bus/services.c (bus_registry_release_service): Return an error
1057 when an application tries to release the org.freedesktop.DBus Bus Name
1059 2006-08-17 Alp Toker <alp@atoker.com>
1061 * doc/dbus-specification.xml: Fix some minor typos.
1063 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
1065 * configure.in: use $with_init_scripts instead of $operating_system
1066 to determine where to store the pid since the init scripts manipulate
1067 the pid file (patch from Marcelo Ricardo Leitner
1068 <marcelo dot leitner at terra dot com dot br>.
1070 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
1072 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1073 static DBusList *uninitialized_condvar_list to support new late
1074 initialization threading model. In this model threads can be initialized
1075 even after the D-Bus API has been used but still needs to be initialized
1076 before the second thread has been started. Mutexes and condvar addresses
1077 are stored in the two static lists and are replaced with actuall locks
1078 when threads are initalized.
1079 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1080 the location into the static list
1081 (_dbus_mutex_free_at_location): New method for removing a mutex location
1082 from the static list and freeing the mutex
1083 (_dbus_condvar_new_at_location): New method for creating a conditional
1084 variable and placing the location into the static list
1085 (_dbus_condvar_free_at_location): New method for removing a conditional
1086 variable location from the static list and freeing the conditional variable
1087 (init_uninitialized_locks): Atomic method which goes through the static
1088 lists of mutex and condvar location and updates them with actuall locks
1089 (init_global_locks): changed to init_locks
1091 * dbus/dbus-connection.c:
1092 (_dbus_connection_test_get_locks): New method for tests to check connections
1093 (_dbus_connection_new_for_transport): Use the new at_location mutex and
1095 (dbus_connection_allocate_data_slot): Pass in the global lock address
1096 to _dbus_data_slot_allocator_alloc
1098 * dbus/dbus-dataslot.c:
1099 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1100 instead of the mutex itself
1102 * dbus/dbus-message.c:
1103 (dbus_message_allocate_data_slot): Pass in the global lock address
1104 to _dbus_data_slot_allocator_alloc
1106 * dbus/dbus-pending-call.c:
1107 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1108 to _dbus_data_slot_allocator_alloc
1110 * dbus/dbus-server.c:
1111 (_dbus_server_init_base): Use the new at_location mutex API
1112 (dbus_server_allocate_data_slot): Pass in the global lock address
1113 to _dbus_data_slot_allocator_alloc
1115 * test/name-test/test-threads-init.c: New test case for late thread
1118 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1120 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1121 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1122 causes compile problems when asserts are turned off
1123 Keeping _dbus_warn for printing out the message so even if
1124 asserts are turned off the user gets the messages that something is
1127 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1129 Patches by Kjartan Maraas <kmaraas at gnome dot org>
1131 * bus/services.c (bus_service_list_queued_owners):
1132 Add a pointer cast to fix compiler warning
1134 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1135 return a NULL instead of FALSE since the return type
1136 is not expecting a boolean
1138 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1139 Remove unused variable
1141 * dbus/dbus-marshal-recursive-util.c (node_new):
1142 return a NULL instead of FALSE since the return type
1143 is not expecting a boolean
1145 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1146 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1147 because we are expecting a pointer not a boolean
1149 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
1150 add void as the parameter so some compilers
1153 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1154 _dbus_transport_new_for_tcp_socket):
1155 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1156 because we are expecting a pointer not a boolean
1158 * test/shell-test.c (test_command_line):
1159 cast the second argument to _dbus_list_append to avoid compiler
1162 * test/test-names.c (main): remove unused variable
1164 * test/test-service.c (check_hello_from_self_reply):
1165 Initialize echo_message and echo_reply to NULL
1167 * test/test-shell-service.c (handle_echo):
1168 Remove unused variable and cast the third parameter passed to
1169 dbus_connection_get_object_path_data to avoid compiler warrnings
1171 * test/name-test/test-names.c (clear_message_queue):
1172 Remove unused function
1174 * test/name-test/test-pending-call-dispatch.c:
1175 Fix format string in printf
1178 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1181 * test/name-test/test-names.c:
1182 Remove test method dbus_bus_connection_get_unique_name because
1183 we already have public method dbus_bus_get_unique_name that
1184 does the exact same thing
1186 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1188 * dbus/dbus-signature.c:
1189 fix typos in Julio's previous patch which cause make check to fail
1191 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1193 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
1194 In any case it was wrong since this is a test checking to see if
1195 address parsing is correct. There was no need to get the true
1198 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1200 * dbus/dbus-macros.h: Revert the addition of stddef.h
1201 as we should not be adding it to library headers
1203 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1205 * dbus/dbus-signature.c:
1206 Fix the unit tests so that they work if assertions are not enabled.
1207 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1209 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1211 * tools/run-with-tmp-session-bus.sh:
1212 * test/name-test/run-test.sh:
1213 Remove bashisms (patch from Julio M. Merino Vidal
1214 <jmmv at NetBSD dot org>)
1216 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1218 * configure.in: add a version (>= 2.6.0) check for libxml2
1220 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1222 * configure.in: make sure the compiler supports -Wfloat-equal
1224 * bus/dir-watch-dnotify.c: move functional code after
1225 variable declerations (C99 fix) (patches from Jens Granseuer
1226 <jensgr at gmx dot net>
1228 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1230 * dbus/dbus-macros.h:
1231 add #include <stddef.h> so that Sun compilers don't complain about
1234 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1236 * dbus/dbus-sysdeps.c:
1237 * dbus/dbus-address.c:
1239 * test/shell-test.c:
1240 don't hardcode tmp directory (patch from Dave Meikle
1241 <dmk at davemeikle dot co dot uk>)
1243 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
1245 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1246 Change an assert to a detailed warning and abort.
1247 When allocator->lock != mutex it indicates that the user has failed
1248 to initalize threads before using the D-Bus library. This warning
1249 helps the user identify the issue and fix their app.
1251 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1253 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1254 with cleanups of bugs found from Coverity reports:
1256 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1257 close the file on error to avoid a leak
1259 * bus/expirelist.c (bus_expire_list_test):
1260 Check for NULL on dbus_new0
1262 * bus/activation.c (update_directory):
1265 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1268 * bus/bus.c (process_config_every_time):
1271 * bus/desktop-file.c (parse_key_value):
1274 * bus/selinux.c (bus_selinux_id_table_insert):
1277 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1279 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1282 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1284 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1287 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1289 * Doxyfile.in: fix the INPUT line so we can generate docs
1290 when sourcedir != builddir (patch from Cygwin Ports maintainer
1291 <yselkowitz at users dot sourceforge dot net>
1293 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1295 * dbus/dbus-sysdeps.h:
1296 * dbus/dbus-sysdeps.c:
1297 * dbus/dbus-string.c:
1298 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1299 GLib's function which does the same thing
1303 * bus/dir-watch-default.c:
1304 * bus/dir-watch-dnotify.c:
1305 * bus/dir-watch-kqueue.c:
1306 Add kqueue directory watching for freebsd and split the directory
1307 watching code into seperate files per method/arch
1308 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1310 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1313 * tools/Makefile.am:
1314 * tools/dbus-launch.c:
1316 allow --with-dbus-daemondir switch to be used to make the
1317 daemon install to a seperate bindir like /usr/libexec
1318 (patch from Brian Cameron <brian dot cameron at sun dot com)
1320 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1322 * bus/Makefile.am (install-data-hook): removed the slash after
1323 $(DESTDIR) so we don't get the double slash which does not work
1324 in windows (patch from Andras Porjesz
1325 <andras dot porjesz at siemens dot com>)
1327 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1329 * dbus/dbus-sysdeps.h:
1330 * dbus/dbus-sysdeps.c:
1331 add _dbus_printf_length (patch from Peter Kümmel
1332 <syntheticpp at gmx dot net>)
1334 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1336 * dbus/dbus-internals.c: unistd.h is not used
1337 (_dbus_verbose_real): only enable verbose printing
1338 if DBUS_VERBOSE environment var is set to '1'
1339 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1341 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1343 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1344 so we still compile on older gcc (patch from Frederic Peters
1345 <fpeters at 0d dot be>
1347 2006-08-04 Havoc Pennington <hp@redhat.com>
1349 * configure.in: add -Wdeclaration-after-statement
1351 * dbus/dbus-connection.c: change all the pending call stuff to
1352 reflect the fact that pending call operations use the connection
1355 * dbus/dbus-pending-call.c: add locking here
1357 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1358 field const consistent with how message field is done
1360 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1364 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1366 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
1367 <in7y118 at public.uni-hamburg dot de> - fix invalid
1368 read/write reported by valgrind
1370 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
1374 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
1376 * dbus/dbus-connection.c:
1377 (_dbus_connection_attach_pending_call_unlocked):
1378 (connection_timeout_and_complete_all_pending_calls_unlocked):
1379 Make sure we set timeout_added on pending calls to FALSE when
1380 we remove the timeout from the connection
1382 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
1384 * Removed some extra bindings stuff lingering around (thanks timo)
1385 * dbus-pendingcall.c (_dbus_pending_call_new):
1386 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1387 when we tried to take a lock on an already locked connection
1389 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1393 2006-07-17 Havoc Pennington <hp@redhat.com>
1395 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1396 ints, reported by Owen Taylor
1398 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1403 * dbus/dbus-marshal-validate.c:
1404 Removed TODO items which were fixed or are no longer relevent
1406 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1408 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1409 Remove stray files from the stripped bindings
1411 2006-07-16 Havoc Pennington <hp@redhat.com>
1413 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1414 Improve the error message on reply timeout
1416 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
1418 * Remove all bindings
1420 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
1422 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1423 and set pending_reply out arg to NULL is connection is disconnected
1424 (connection_timeout_and_complete_all_pending_calls_unlocked): New
1425 static method for cleaning up pending calls on disconnect
1426 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
1427 calls queued timeouts on disconnect
1429 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1432 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
1434 * bus/activation.[ch] (bus_activation_list_services): new function to
1435 get the list of services that can be activated
1437 * bus/dispatch.c: test coverage for the new bus method
1438 ListActivatableNames
1440 * bus/driver.c: new bus method ListActivatableNames to get the list of
1441 services that can be activated
1443 * doc/dbus-specification.xml: ListActivatableNames method documentation
1445 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1446 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1449 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1450 * dbus/dbus-message-factory.c:
1451 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1453 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1454 * dbus/dbus-connection-internal.h:
1455 * dbus/dbus-connection.c:
1456 * file dbus/dbus-pending-call.c:
1457 * dbus/dbus-pending-call.h:
1458 Make DBusPendingCall an opaque type even to D-Bus internals
1460 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1462 * dbus/dbus-connection.h: remove connection_disconnect and replace with
1465 * dbus/dbus-connection.c: include dbus-bus.h
1466 (_dbus_connection_read_write_dispatch): make static
1468 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1470 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1472 (dbus_connection_dispatch): On disconnect unref any shared connections
1474 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1475 for cleaning up shared connections on disconnect
1476 (internal_bus_get): get a hard refrence to shared connections when
1479 * doc/TODO: Remove items which are no longer relevent or have been fixed
1480 Split 1.0 todo items with a 0.90 freeze todo list
1482 2006-06-14 Ross Burton <ross@openedhand.com>
1484 * glib/dbus-gobject.c:
1485 Free a leaking GArray (surely not!) in dbus_g_method_return.
1487 2006-06-14 Ross Burton <ross@openedhand.com>
1489 * tools/Makefile.am:
1490 * tools/dbus-monitor.c:
1491 Don't use the GLib bindings in dbus-monitor (patch from Ralf
1494 2006-06-14 Ross Burton <ross@openedhand.com>
1496 * tools/dbus-print-message.c:
1497 Also print the object path when outputting signals or method calls.
1499 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
1501 * qt/src/Makefile.am: install the qdbus.h header.
1502 This allows people to actually use the installed code.
1504 2006-06-12 Ross Burton <ross@openedhand.com>
1506 * glib/dbus-gproxy.c:
1507 Don't leak a GArray when firing signals (thank Rob Taylor for review).
1509 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1513 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1515 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1516 break pedantic builds. Closes bug 6043 (patch approved by
1517 Havoc back in February).
1519 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1521 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1522 that took a QDBusMessage parameter.
1523 * qt/src/qdbusbus.h: Add a default flag for RequestName.
1524 * qt/tools/dbus.cpp: Don't use automatic call because we might
1525 be calling an async method: request a reply.
1527 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1529 * test/qt/*: Update the testcases, including testing the new
1530 functionality of sending null QByteArray and QString over the
1531 bus. Add new headertest test and restore the old
1532 qdbusxmlparser test.
1534 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1536 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1537 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1539 * qt/examples/Makefile.am:
1540 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1543 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1544 QByteArray() (nulls) over the bus.
1545 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1546 the one that has the signature suffix stripped.
1547 * qt/src/qdbusreply.h: Make some methods const.
1549 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
1551 Patch from Timo Hoenig <thoenig@suse.de>.
1553 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
1554 required during build to EXTRA_DIST.
1555 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1556 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1557 * configure.in: Fix "make dist", take care that the Makefile for
1558 qt/dbus is being generated.
1560 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1562 * bus/bus.c: Fix eavesdropping on method calls
1564 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1567 * dbus/dbus-userdb-util.c:
1568 Add Solaris console owner patch from Artem Kachitchkine
1570 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
1573 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1574 reorganisation. Thanks to Timo Hoenig for pointing this out.
1576 2006-06-06 Robert McQueen <robot101@debian.org>
1578 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1579 call to dbus_g_type_get_struct.
1581 2006-06-06 Robert McQueen <robot101@debian.org>
1583 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1584 pointers were put into a GPtrArray-based specialised collection, and
1585 then freed along with the array. GValues which you add into
1586 collections or maps which have the NOCOPY flag set are assumed to not
1587 belong to the caller, so rather than the existing pointer-stealing
1588 semantics, they are copied instead. Given that the main consumers of
1589 this abstraction are the bindings themselves, I don't think this is
1590 too bad, but others should watch their choice of take vs set_static.
1592 2006-06-06 Robert McQueen <robot101@debian.org>
1594 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1595 of g_slist_prepend not being used. Fixed copying of slist-based
1596 specialised collections, then wrote a test case and found that it was
1597 all broken. Went on to fix iterating and appending too. Good thing
1598 nobody uses this code yet.
1600 2006-06-06 Robert McQueen <robot101@debian.org>
1602 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1603 the iterators use gvalue_take_ptrarray_value (the GValues themselves
1604 are discarded without unsetting, so it makes no difference whether
1605 we take or set_static). Remove cases for G_TYPE_POINTER because
1606 there really is nothing useful we can do with them in our
1607 specialised types - we *need* boxed copy/free functions at the very
1610 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
1612 * qt/dbus: Add directory. I had forgotten to add this
1613 yesterday after the move...
1615 * qt/examples/Makefile.am:
1616 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1618 * qt/tools/Makefile.am:
1619 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1620 Added feature to get and set properties.
1621 Added validation of service, object path and interface names.
1623 * qt/tools/dbusidl2cpp.cpp: Two new features:
1624 1) Allow specifying both the header and the source file names,
1625 by separating them with a colon.
1626 2) Don't write an interface output if the -p switch wasn't
1627 given, but the -a was.
1629 * qt/src/*: Fix usage of Iterators and ConstIterators.
1630 Fix shadowing of variables by other variables (-Wshadow).
1631 Fix keyword-cleanliness in headers.
1632 Fix ASCII-cast (QLatin1String, QLatin1Char).
1633 Fix validation of member names.
1634 Add extra checking of introspection data during XML parsing.
1637 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1640 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1641 qt/dbus/qdbus.h now.
1643 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1645 * configure.in: Make --disable-qt actually do
1646 something. Patch inspired by Zack Rusin.
1648 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1650 * qt/: Update to Subversion r548032.
1651 This includes a big reorganisation of the files inside the
1654 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
1656 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1658 "Failed to connect to socket <host>:<port> <error>" instead of
1659 "Failed to connect to socket <host>: <error>:<port>"
1661 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1662 for a tcp transport.
1664 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
1666 * qt/*: Update the QtDBus bindings up to revision 546310 in
1668 This adds the dbuscpp2xml tool, that parses a C++ header and
1669 outputs a D-BUS Introspection XML.
1671 2006-05-21 Havoc Pennington <hp@redhat.com>
1673 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1674 is not NULL when it shouldn't be. Also a couple of possible fixes
1675 for #4637 though I don't understand why the bug happens, to be
1676 honest... also the object constructor has an assert name != NULL
1677 and the name is only currently NULL for peer-to-peer proxies that
1678 I don't think anyone uses? So it should be asserting.
1679 Anyway, for now at least see if we get an earlier assertion failure.
1681 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1682 apparently broken code to be sure the tests fail and someone
1685 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
1687 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1688 and arrays when they had a single element: has_next returns
1689 false, even before you read the element. So, instead, check
1692 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
1694 * qt/qdbusmessage.cpp:
1695 * qt/qdbustypehelper_p.h:
1696 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1697 the list is a const-reference
1699 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
1701 * Adding old doc patch that never got applied
1703 * dbus/bus.c (dbus_bus_add_match): Add documentation
1705 * doc/dbus-specification.xml: Add documentation for the match rules
1706 and the AddMatch and RemoveMatch methods
1708 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
1710 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1713 * qt/dbusidl2cpp.cpp:
1714 * qt/qdbusabstractadaptor.cpp:
1715 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1716 sibling of the QDBusAbstractAdaptor objects instead of the
1719 * qt/dbusidl2cpp.cpp:
1720 * qt/qdbusabstractinterface.cpp:
1721 * qt/qdbusabstractinterface.h:
1722 * qt/qdbusabstractinterface_p.h:
1723 * qt/qdbusinterface.cpp: Make properties in interfaces
1724 actually work. The code that was generated would not compile,
1725 due to moc calls to functions that did not exist. They now
1728 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
1732 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1733 Thanks to Brad Hards for providing the patch
1735 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1737 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1740 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1742 * qt/examples/dbus.cpp: Enhance error messages and use
1745 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1747 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1748 and disable the copy operators. (r533772, r534746)
1750 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1752 * qt/qdbusabstractinterface.cpp:
1753 * qt/qdbusabstractinterface.h: Change the default call mode to
1754 not use the event loop. Add convenience call() methods that
1755 take a CallMode parameter. (r534042)
1757 * qt/qdbusconnection.h: Change the default call mode to not
1758 use the event loop. (r534042)
1760 * qt/qdbusinterface.cpp:
1761 * qt/qdbusinterface.h: Add a method to tell us if the
1762 interface is valid (since we don't return a null pointer
1765 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1768 * qt/qdbusinternalfilters.cpp: Decouple the introspection
1769 function in two so taht we get the chance to introspect
1770 without having a QDBusMessage (r534102)
1773 * qt/qdbusconnection.cpp:
1774 * qt/qdbusconnection_p.h:
1775 * qt/qdbusintegrator.cpp: Keep a list of our own names to
1776 avoid a round-trip to the server when attempting to introspect
1777 one of our own objects. Also make sure the filter functions
1778 match the empty interface as well. (r534108)
1779 Don't keep the connection names. Instead, trust the unique
1780 connection name (r534111)
1781 Remove event loop usage (r534112)
1783 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1785 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1788 2006-04-28 Robert McQueen <robot101@debian.org>
1790 * glib/dbus-gproxy.c: Fix properties so that they can be given in
1791 any order, making it easier for people who inherit from this
1794 2006-04-28 Robert McQueen <robot101@debian.org>
1796 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1797 of memory from within pointer arrays and lists. Fixes bug #6300.
1799 2006-04-28 Robert McQueen <robot101@debian.org>
1801 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1802 generating struct signatures. Fixes bug #6083.
1804 2006-04-28 Robert McQueen <robot101@debian.org>
1806 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1807 to qdbusconnection_p.moc.
1809 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1811 * README, INSTALL: Doc fixes
1812 Patch from Brad Hards <bradh at frogmouth.net>
1814 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1816 * qt/examples/dbus.cpp: Use the new merged-interface mode for
1817 the dynamic meta object. No need to guess which interface to
1820 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1822 * qt/qdbusconnection_p.h:
1823 * qt/qdbusmetaobject.cpp:
1824 * qt/qdbusmetaobject_p.h:
1825 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1826 for the dynamic meta object. No need to guess which
1828 * qt/qdbusabstractinterface_p.h:
1829 * qt/qdbusconnection.cpp:
1830 * qt/qdbusintegrator.cpp:
1831 * qt/qdbusinterface.cpp:
1832 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1833 Add a QDBusRef that looks and behaves like DCOPRef.
1835 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1837 * dbus/dbus-connection.c: Interfaces are optional in method
1838 calls, so don't give up if the interface parameter is NULL.
1839 Patch reviewed by Havoc Pennington.
1841 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1843 * qt/qdbusreply.h: Add default constructor and operator=
1845 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1846 in public headers (r532952)
1847 * qt/qdbusabstractinterface.cpp:
1848 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1849 make it the default (r532951)
1851 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1853 * dbus/dbus-connection.c: Fix asserts
1854 Patch from Tim Moloney <t.moloney at verizon.net>
1856 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1858 * mono/Connection.cs, mono/Message.cs: Check Target type
1859 Patch from Aaron Bockover (abockover at novell.com)
1861 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1863 * INSTALL: fine-tune the requirements for the Qt4 binding.
1865 2006-04-16 Daniel P. Berrange <dan@berrange.com>
1867 * tools/dbus-print-message.c: Added support for printing of all
1868 remaining data types. Fixed logic for indentation of compound
1871 2006-04-15 Daniel P. Berrange <dan@berrange.com>
1873 * INSTALL: fill out content of file providing DBus specific
1874 build installations, followed by generic Auto* INSTALL file
1877 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1879 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1880 Patch by Stefan Eilers. (r529537)
1882 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1884 * qt/qdbusinternalfilters.cpp: Don't show the parent's
1887 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1889 * qt/Makefile.am: fix the dependency for
1890 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1891 not in qdbusconnection.cpp.
1892 Thanks to Jakub Stachowski <stachowski@hypair.net> for
1895 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1897 * qt/examples/listnames.cpp:
1898 * qt/examples/Makefile.am: Three ways to list the names on the
1901 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1903 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1904 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1906 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1908 Merge from Subversion:
1909 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1910 something that exists (r526315)
1911 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1912 slots/signals (r526316)
1913 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1914 also return an unknown-method error if the parameters don't
1915 match for org.freedesktop.DBus.Properties. (r526842)
1916 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1917 * qt/qdbusintegrator.cpp: Restore the proper order of
1918 delivery: don't make method returns be delivered on priority
1921 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1923 * configure.in qt/Makefile.am: add qt/examples
1924 * qt/examples: Add QtDBus example programs:
1925 - hello: Hello, World
1926 - ping: Simple method-calling program
1927 - pong: Simple object-exporting program (not using adaptors)
1928 - complexping: Interactive method-calling program
1929 (also gets and sets properties).
1930 - complexpong: Sample program exporting methods, signals and
1931 properties, using adaptors.
1932 - dbus: Simple implementation of a generic method-calling
1933 program, similar to 'dbus-send', but with semantics
1935 - chat: Simplistic chat program, implemented using signals
1936 and the system bus. Looks like IRC.
1938 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1940 * configure.in: Detect QtGui (necessary for one of the
1941 example programs). Note: this increases the minimum required
1942 version of Qt to 4.1.3.
1944 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1946 * test/qt/*: Sync with KDE Subversion revision 523647.
1947 Update the testcases to the new API. Remove testcases for
1948 classes that are no longer public or have been removed.
1950 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1953 * dbus/qdbus.h: Sync with KDE Subversion revision
1954 523647. Hopefully, this will be the last of the
1955 source-incompatible changes. Documentation has been improved;
1956 support for QList<basic-types> has been added; QDBusObject is
1957 gone; QDBus(Abstract)Interface is now a QObject with
1958 auto-generated meta-object; QDBusIntrospection is marked
1959 private, since QMetaObject can be used now; lots of bugfixes.
1961 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
1963 Patch from Milosz Derezynski <internalerror at gmail.com>
1966 Output the service directory in the configure summary
1969 Add session_bus_services_dir
1971 2006-03-10 Ross Burton <ross@openedhand.com>
1973 * tools/dbus-print-message.c:
1974 Add support for object paths and signatures.
1976 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
1978 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1980 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1982 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
1983 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1984 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1985 * dbus/dbus-userdb.h: Add function to flush all user/group information
1988 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1990 * qt/dbusidl2cpp.cpp:
1991 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1992 for dcopidl2cpp, found in the KDE installations (or the more
1993 modern kalyptus): generate Qt4 C++ code for the input XML
1994 introspection. Currently no IDL parsing.
1996 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1998 * test/qt/*: Update the self-tests.
2000 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2003 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2004 represents the first feature-complete version of the Qt4
2005 bindings since I took ove maintainership.
2007 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2009 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2010 dir. This is C++, so we can't use the DBus ones.
2012 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
2014 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2015 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2017 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
2019 * dbus/dbus-connection.c:
2020 (_dbus_connection_block_pending_call):
2021 Check to see if our data has already been read off the connection
2022 by another blocking pending call before we block in poll.
2023 (check_for_reply_and_update_dispatch_unlocked):
2024 Code taken from _dbus_connection_block_pending_call - checks for
2025 an already read reply and updates the dispatch if there is one.
2027 * test/name-test/test-pending-call-dispatch.c:
2028 New test for making sure we don't get stuck polling a
2029 dbus connection which has no data on the socket when
2030 blocking out of order on two or more pending calls.
2032 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
2034 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2035 make/automake don't detect that we're talking about the same
2036 .lo file if I specify the full path to the source files.
2038 2006-02-26 Havoc Pennington <hp@redhat.com>
2040 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2042 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2043 session bus variable is unset, suggest "man dbus-launch" and "man
2044 dbus-daemon" to figure out how to fix the problem
2046 2006-02-25 Havoc Pennington <hp@redhat.com>
2048 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2049 should make this thing use the new glib options parser
2051 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
2053 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2054 .lo files taking moc sources.
2056 2006-02-25 Havoc Pennington <hp@redhat.com>
2058 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2059 and install it as a public header
2061 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2065 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2067 * proxies.py: Fix the callchain
2069 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2071 * patch from Sjoerd Simons <sjoerd at debian.org>:
2073 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
2076 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2077 call _dbus_group_info_free_allocated which causes infinite loop,
2078 correctly call _dbus_group_info_free
2080 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
2082 * qt/qdbusinterface_p.h:
2083 * qt/qdbusinterface.cpp: Use the standard
2084 org.freedesktop.DBus.Method.NoReply annotation for the "async"
2085 calls instead of creating one for us.
2087 * qt/qdbusconnection_p.h:
2088 * qt/qdbusintegrator.cpp: Remove debugging code.
2090 * qt/qdbusintegrator.cpp:
2091 * qt/qdbusmessage.cpp:
2092 * qt/qdbusmessage_p.h:
2093 * qt/qdbusmessage.h: Change the behaviour of automatic
2094 reply-sending: now a reply is always sent, unless the caller
2095 didn't request one or if the user slot has already sent one.
2097 2006-02-16 Robert McQueen <robot101@debian.org>
2099 * configure.in: Patch from Debian packages by Sjoerd Simons
2100 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2101 arguments so it's possible to build both bindings in the
2104 * qt/Makefile.am: Fix truncated value so that make dist works.
2106 2006-02-16 Robert McQueen <robot101@debian.org>
2108 * acinclude.m4, configure.in: Patch from Brad Hards
2109 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2110 improving quoting, re-ordering a few checks, and a few other
2113 2006-02-16 Robert McQueen <robot101@debian.org>
2115 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2116 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2117 assertion that the next element to read from the iter is fixed in
2118 size. This is not the case when you are at the end of the iter,
2119 because the next element type is INVALID.
2121 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2122 a bogus assert which means that you may not initialise a 0-length
2123 string unless you provide a non-NULL pointer. This prevented
2124 you from marshalling messages containing zero-length arrays in
2127 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2128 from Rob to correct bogus asserts when trying to demarshal an
2129 array and get_fixed_array got you 0 elements. Append nothing to
2130 the GArray in this case.
2132 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2133 an empty array via the glib bindings. Without all of the above
2134 patches, this new test fails.
2136 2006-02-16 Robert McQueen <robot101@debian.org>
2138 * glib/dbus-gmain.c: Make the previous commit compile.
2140 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2141 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2142 specify sender_keyword="foo", path_keyword="bar" when adding
2143 a signal listener, so that you can bind to signals generically
2144 but still do something useful in your callback.
2146 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2147 chars so that they're not cast to chars and made negative. Thanks
2148 to Jakub Stachowski for reporting this and testing the fix.
2150 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
2153 * glib/dbus-gmain.h:
2154 (dbus_g_connection_open): new method for openning
2155 a connection to an arbitrary address in the glib bindings
2157 * ChangeLog: checkin last entry which doesn't seem to be commited
2159 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
2161 * tools/dbus-launch.c: Fixed sh syntax output
2163 2006-02-13 Robert McQueen <robot101@debian.org>
2165 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2166 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2167 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2168 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2169 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2170 missing piece of the glib bindings jigsaw puzzle. This modifies
2171 the existing specialised types to have N type parameters (rather
2172 than the current 1 or 2 for arrays and dictionaries respectively).
2173 You can then use this to get a glib type to represent any arbitrary
2174 D-Bus struct type using dbus_g_type_get_struct. The only
2175 implementation of these types is with GValueArrays as before,
2176 but it's now possible to store these in arrays, emit them in
2179 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2181 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2182 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
2183 <thiago.macieira at trolltech.com>
2185 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2187 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2188 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2190 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2192 * bus/connection.c (bus_connections_expect_reply): Make
2193 pending reply limit not common to all connections (Bug #5416)
2194 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2196 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2198 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2200 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2202 * gcj/Makefile.am: point to correct jar command (Bug #4529)
2203 patch from Doug Goldstein <cardoe at gentoo.org>
2205 2006-02-09 Joe Shaw <joeshaw@novell.com>
2207 * mono/Arguments.cs: Fix a magic number in the mono bindings
2208 that doesn't work on 64 bit arches. Patch from Peter Johanson.
2210 2006-01-27 Robert McQueen <robot101@debian.org>
2212 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2213 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2214 when generating the client-side methods, instead of overloading
2215 CSymbol which broke everything horribly. My apologies.
2217 2006-01-27 Robert McQueen <robot101@debian.org>
2219 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2220 by me and Rob Taylor to add a simple_free function to D-Bus map
2221 and collection types, which allows those types which can be freed
2222 with a GDestroyNotify (such as GHashTables and GArrays, but not
2223 GPtrArrays) to be stored as the values in hashtables.
2225 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2226 Patch by Rob Taylor to add nested dicts to the glib tests to check
2227 the above code works, and appears not to leak when called repeatedly.
2229 2006-01-27 Robert McQueen <robot101@debian.org>
2231 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2232 to free a D-Bus allocated string with dbus_free () instead of
2235 2006-01-27 Iain Holmes <iain@openedhand.com>
2237 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2238 method from being called multiple times.
2240 2006-01-19 Robert McQueen <robot101@debian.org>
2242 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2243 <rob.taylor@collabora.co.uk> to add support for generating bindings
2244 to arrays that are represented as GPtrArrays rather than GArrays (ie
2245 size-variable things, such as strings, objects, structs, etc).
2247 2006-01-05 Robert McQueen <robot101@debian.org>
2249 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2250 <ricardo.kekki@movial.fi> to make it possible to inherit from
2251 DBusGProxy, by splitting the DBusGProxy struct into a public part and
2252 a private part, and moving the setting of the DBusGProxyManager into a
2253 connection property, allowing proper GObject construction.
2255 2006-01-05 Robert McQueen <robot101@debian.org>
2257 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2258 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2259 annotations when generating glib client bindings.
2261 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2263 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2265 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2267 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2269 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2271 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2273 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2275 2005-12-19 Ross Burton <ross@openedhand.com>
2277 * doc/dbus-tutorial.xml:
2278 Document the Glib client-side bindings, and list all possible annotations.
2280 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2282 * dbus/bus.c (dbus_bus_release_name): Add documentation
2284 2005-12-06 Robert McQueen <robot101@debian.org>
2286 * python/service.py: s/sucessful/successful/ so we're allocating to
2287 and reading from the same variable. Oops.
2289 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2293 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2295 * test/qt/Makefile.am: build from srcdir
2297 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2298 Note - this code is wrong and needs to be fixed by the Qt binding
2299 developers. The flags should be treated as bitfields and not enums.
2301 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2303 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2305 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
2306 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
2309 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2311 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2312 method for getting messages off the bus in the absence of a
2313 mainloop. This method is much like
2314 dbus_connection_read_write_dispatch except it does not dispatch
2315 the messages to a registered filter function. Instead it
2316 allows a developer to process messages by directly popping
2319 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2321 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
2322 the parser to continue instead of returning error
2323 (bus_desktop_file_load): Do not free parser data when
2324 parse_section_start or parse_key_value fails because it was
2325 already freed by parser_free (patch from Carlos Garcia Campos
2326 <carlosgc at gnome.org>)
2328 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2330 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2331 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2332 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2333 test/test-segfault.c, test/test-utils.c,
2334 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2335 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2336 Various cleanup of dead code and compiler warnings (patch from
2337 Kjartan Maraas <kmaraas at gnome.org>)
2339 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2341 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2342 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2344 2005-11-27 Robert McQueen <robot101@debian.org>
2346 * python/dbus_bindings.pyx: Repair my previous commit which reverted
2347 part of the preceding one. Oops. Merge patch by Johan Hedberg
2348 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2349 on big-endian platforms.
2351 * test/python/test-client.py: Add some 16-bit integers to the test
2354 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
2356 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2357 method return message for property getters
2359 2005-11-27 Robert McQueen <robot101@debian.org>
2361 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2362 with type v of an instance of dbus.Variant(foo, type='x') caused
2363 it to be boxed twice before sending over the bus.
2365 * python/dbus_bindings.pyx, python/service.py,
2366 test/python/test-client.py: Update the constants for the new
2367 request_name flags, and update comments/test cases now that queueing
2368 is the default action.
2370 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2373 - Change version to 0.60 for impending release
2374 - upped the sonames because of ABI and API breakage
2376 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2378 * configure.in: Add test/name-test/Makefile to the generated
2381 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2382 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2383 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2384 not to queue an ower if it can't be the primary owner
2386 * bus/bus.h: Add new internal BusOwner struct
2388 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2389 to bus_registry_ensure and don't set the prohibit_replacement flag
2390 since they are now set per BusOwner and not per name.
2391 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
2392 that returns the list of connections in a name's connection queue
2394 * bus/services.c (struct BusService): remove prohibit_replacement field
2395 (struct BusOwner): new struct for keeping track of queued connections
2396 and their associated flags for the queue
2397 (struct BusRegistry): add a BusOwner memory pool
2398 (bus_registry_new): initialize the BusOwner memory pool
2399 (bus_registry_unref): free the BusOwner memory pool
2400 (_bus_service_find_owner_link): new internal method for
2401 searching the queue for a specific connection
2402 (bus_owner_set_flags): new method for adding setting the flags on a
2404 (bus_owner_new): new method that creates a BusOwner object from the
2405 pool and sets its flags
2406 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2407 (bus_registry_ensure): Add the flags parameter
2408 (bus_registry_acquire_service): Switch from using raw connections to
2409 using the BusOwner struct
2410 Add new state machine for dealing with the new set of flags
2411 (bus_registry_set_service_context_table, struct OwnershipCancelData,
2412 cancel_ownership, free_ownership_cancel_data,
2413 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
2414 restore_ownership, free_ownership_restore_data,
2415 add_restore_ownership_to_transaction): Switch to using BusOwner
2416 instead of raw connections
2417 (bus_service_add_owner): Add flags parameter
2418 Switch to using BusOwner instead of raw connections
2419 Add state machine for dealing with the new set of flags
2420 (bus_service_swap_owner): Swaps the first and second owners in the
2421 queue. Used to make sure proper signals are sent when a service looses
2422 or gains primary ownership. We never insert an owner at the top of the
2423 queue. Instead we insert it in the second position and then swap.
2424 (bus_service_remove_owner): Remove the owner from the queue sending
2425 out the NameLost and NameOwnerChanged signals if the we were the
2427 (bus_service_get_primary_owners_connection): New method that extracts
2428 the connection from the primary owner
2429 (bus_service_get_primary_owner): Returns the BusOwner instead of the
2431 (bus_service_get_allow_replacement): Changed from the old
2432 bus_service_get_prohibit_replacement method. Checks the flags of the
2433 primary owner and returns if it can be replaced or not
2434 (bus_service_set_prohibit_replacement): removed
2435 (bus_service_has_owner): returns TRUE if and owner with
2436 the specified connection exists in the queue
2438 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2439 method that only compiles if tests are enabled. Allows us to get the
2440 unique name of a connection so we can check it against the queue when
2441 doing regression tests
2443 * bus/activation.c (bus_activation_send_pending_auto_activate),
2444 bus/dispatch.c (bus_dispatch),
2445 bus/driver.c (bus_driver_handle_get_service_owner,
2446 bus_driver_handle_get_connection_unix_user,
2447 bus_driver_handle_get_connection_unix_process_id,
2448 bus_driver_handle_get_connection_selinux_security_context),
2449 bus/signals.c (connection_is_primary_owner):
2450 use bus_service_get_primary_owners_connection instead of
2451 bus_service_get_primary_owner
2453 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
2454 _dbus_listen_unix_socket): Calculate the length of the socket
2455 path and use that instead of using a fixed length which was
2456 causing socket names to contain many trailing Nul bytes.
2458 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2459 (dbus_g_method_get_sender): New method for extracting the sender
2460 from a DBusGMethodInvocation
2461 (dbus_g_method_return_get_reply): changed name to
2462 dbus_g_method_get_reply
2463 (dbus_g_method_return_send_reply): changed name to
2464 dbus_g_method_send reply
2466 * doc/dbus-specification.xml: New docs that describe how the new
2467 queueing system works and talks about the changes to the how
2468 we specify socket names
2470 * glib/examples/example-service.c,
2471 glib/examples/example-signal-emitter.c,
2472 glib/examples/statemachine/statemachine-server.c:
2473 Changed the RequestName flags to the new system
2475 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2476 regression test suite for testing various states of the new
2479 2005-11-15 Robert McQueen <robot101@debian.org>
2481 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2482 Taylor to add two methods, dbus_g_method_return_get_reply and
2483 dbus_g_method_return_send_reply, to allow you to get the reply
2484 message from a DBusGMethodInvocation, append arbitrary stuff to it,
2485 and send it. The GLib bindings can't marshal a return value of
2486 something like a(s) if the array is empty - ultimately they should be
2487 made to heed the signature of the out arguments as the Python bindings
2488 now can, but this is a workable interim solution which might have
2491 2005-11-15 Robert McQueen <robot101@debian.org>
2493 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2494 method to org.freedesktop.DBus to release a bus name or give up
2495 waiting in the queue for it.
2497 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2498 dbus_bus_release_name method to send the ReleaseName method calls.
2499 Add constants for the return values to dbus/dbus-shared.h.
2501 * doc/dbus-specification.xml: Document the new ReleaseName method
2502 in the specification.
2504 * python/dbus_bindings.pyx: Add a low-level python binding for the
2505 release name method.
2507 * python/exceptions.py, python/service.py: Make freeing BusName
2508 objects release the name. Add a NameExistsException, and fix a
2509 bug with creating UnknownMethodException.
2511 * test/python/test-client.py: Add tests for freeing BusName
2512 objects causing names to be released.
2514 2005-11-14 Robert McQueen <robot101@debian.org>
2516 * python/service.py: Include the traceback in the error reply when we
2517 send an exception over the bus. _BEST_ _PATCH_ _EVER_
2519 2005-11-14 David Zeuthen <davidz@redhat.com>
2521 Patch from Timo Hoenig <thoenig@suse.de>.
2523 * bus/bus.c: I've recently investigated why the automatic reload
2524 of configuration files does not work as expected.
2526 Currently, reloading configuration files does only work when
2527 running dbus-daemon with --nodaemon. If we are running as daemon
2528 we're hitting a dnotify bug once we fork the process.
2530 We're initializing the dnotify fds before calling fork(). Once
2531 the child process forked it does still have the fds (and they
2532 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2533 getting SIGIO as changes are made to the configuration files.
2535 The attached patch moves the initialization of the dnotify fds to
2536 process_config_postinit(). This is safe for all current code
2537 paths and solves the dnotify disfunction. If we're running
2538 dbus-daemon as daemon the fds for dnotify are now being
2539 initialized after fork() for the child process.
2541 * configure.in: The current configure.in check for dnotify probes
2542 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
2543 match for 'xlinux', too. Additionally I have adapted the configure
2544 option's style to match with the others.
2546 2005-11-14 Robert McQueen <robot101@debian.org>
2548 * python/decorators.py, python/service.py: Add a new argument to the
2549 dbus.service.method decorator called sender_keyword, which if set,
2550 specifies the name of an argument which will be provided the bus
2551 name of the method caller.
2553 * test/python/test-client.py, test/python/test-service.py: Add a
2554 method and test to check the sender_keyword functionality.
2556 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
2558 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
2559 empty reply so blocking calls don't block forever (Patch from Sjoerd
2560 Simons <sjoerd at luon.net>)
2562 * AUTHORS: Add Robert McQueen for his work on the Python
2563 Bindings and other parts of D-Bus
2565 2005-11-07 Robert McQueen <robot101@debian.org>
2567 * python/decorators.py: Change emit_signal function to use the
2568 signature annotation of the signal when marhsalling the arguments from
2569 the service. Fix a bug where the code checking signature length
2570 against argument length referenced the wrong variable.
2572 * python/introspect_parser.py: Avoid adding the type signature of
2573 signal arguments to any methods which occur after them in the
2574 introspection data (!) by making the parser a little more careful
2575 about its current state.
2577 * python/service.py: Remove debug prints from last commit (again :D).
2579 * test/python/test-client.py, test/python/test-service.py: Add test
2580 signals with signature decorators to test the strict marshalling code
2581 gives errors at the right time. Could do with checking the signals
2582 actually get emitted too, given that the test does nothing with
2583 signals at the moment...
2585 2005-11-07 Robert McQueen <robot101@debian.org>
2587 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2588 instances to stop madness of creating new instances representing
2589 the same bus connection all the time, rendering any tracking of
2590 match rules and bus names quite meaningless. Caught a bug where
2591 the private argument to SessionBus() and friends was being passed
2592 in as use_default_mainloop by mistake. Still some problems with
2593 multiple dbus_binding.Connection instances representing the same
2594 low-level connection (eg when you use both SessionBus() and
2595 StarterBus() in same process), but it's a lot better now than it
2598 * python/dbus_bindings.pyx: Add constants with the return values
2599 for bus_request_name().
2601 * python/service.py: Store bus name instances in a per-dbus.Bus cache
2602 and retrieve the same instances for the same name, so deletion can be
2603 done with refcounting. Also now throws some kind of error if you
2604 don't actually get the name you requested, unlike previously...
2606 * test/python/test-client.py: Add tests for instance caching of buses
2607 and bus name objects.
2609 2005-11-04 Robert McQueen <robot101@debian.org>
2611 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2612 marshalling of boolean values. Add some booleans to the values in
2615 * python/decorators.py, python/service.py: Add an 'async_callbacks'
2616 argument to the dbus.service.method decorator, which allows you to
2617 name arguments to take two callback functions for replying with
2618 return values or an exception.
2620 * test/python/test-client.py, test/python/test-service.py: Add test
2621 case using asynchronous method reply functions, both return values and
2622 errors, and from within both the function itself and from a mainloop
2625 * python/decorators.py, python/service.py: Perform checking that the
2626 number of method/signal arguments matches the number of types in the
2627 signature at class loading time, not when you first introspect the
2630 * python/service.py: Remove debug print left by the last commit.
2632 2005-11-03 Robert McQueen <robot101@debian.org>
2634 * python/service.py: Heavy refactoring of method invocation, with
2635 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2636 in favour of a new _message_cb that uses seperate functions for
2637 looking up the method to call, marshalling the return values, and
2638 sending exceptions as errors, and is easier to follow as a
2639 consequence. Fixes some corner cases about returning things that
2640 don't match your declared out_signature, allows exceptions to define
2641 _dbus_error_name and have it be sent over the bus as the error name,
2642 and paves the way for cool stuff like heeding the message no reply
2643 flag, asynchronous method implementations, informing the method of the
2644 sender, and including backtraces in the error messages.
2646 * test/python/test-client.py: Catch and print exceptions thrown in the
2647 async callback tests, rather than passing them to the low-level
2648 bindings to be ignored in a noisy and frustrating manner.
2650 2005-11-03 Robert McQueen <robot101@debian.org>
2652 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2653 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2654 tweak others to be consistent.
2656 * test/python/test-client.py: Tweak output of testInheritance.
2658 2005-10-29 Robert McQueen <robot101@debian.org>
2660 * python/service.py: Major changes to allow multiple inheritance
2661 from classes that define D-Bus interfaces:
2663 1. Create a new Interface class which is the parent class of
2664 Object, and make the ObjectType metaclass into InterfaceType.
2666 2. Patch written with Rob Taylor to replace use of method_vtable
2667 with code that walks the class's __MRO__ (method resolution order)
2668 to behave like Python does when invoking methods and allow
2669 overriding as you'd expect. Code is quite tricky because
2670 we have to find two methods, the one to invoke which has the
2671 right name and isn't decorated with the /wrong/ interface,
2672 and the one to pick up the signatures from which is decorated
2673 with the right interface.
2675 The same caveats apply as to normal multiple inheritance -
2676 this has undefined behaviour if you try and inherit from two
2677 classes that define a method with the same name but are
2678 decorated with different interfaces. You should decorate
2679 your overriding method with the interface you want.
2681 3. Replace grungy introspection XML generation code in the metaclass
2682 with dictionaries that cope correctly with multiple inheritance
2683 and the overriding of methods. This also uses the signature
2684 decorations to provide correct introspection data, including
2685 the debut appearance of the types of your return values. :D
2687 * test/python/test-client.py, test/python/test-service.py: Add a test
2688 case to try invoking an method that overrides one inherited from a
2689 D-Bus interface class.
2691 2005-10-29 Robert McQueen <robot101@debian.org>
2693 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2694 Add checking for the end of struct character when marshalling a
2695 struct in MessageIter.append_strict.
2697 * python/examples/example-service.py,
2698 python/examples/gconf-proxy-service.py,
2699 python/examples/gconf-proxy-service2.py: Update to use gobject
2700 mainloop directly rather than appearing to depend on gtk.
2702 * python/test/test-client.py, python/test/test-server.py: Remove
2703 obsolete and broken test scripts for old bindings. We have up to date
2704 and working tests in test/python/.
2706 2005-10-29 Robert McQueen <robot101@debian.org>
2708 * python/decorators.py: Add optional arguments to the method and
2709 signal decorators to allow you to specify the signature of arguments
2710 and return values. Preserve the doc strings of signal functions in the
2711 decorated version, for pydoc and friends.
2713 * python/dbus_bindings.pyx, python/proxies.py: Replace the
2714 parse_signature_block function with an iterable dbus.Signature()
2715 type. Fix a bug in MessageIter.append_strict where you could append
2716 anything by claiming it was a string.
2718 * python/service.py: Use the out_signature decoration on methods to
2719 marshal return values, meaning you no longer require dbus.Array()
2720 or dbus.Dictionary() to indicate the type when returning empty
2721 arrays or dictionaries. Fix a bug where exceptions which are defined
2722 in __main__ are not turned into error replies.
2724 * test/python/test-client.py, test/python/test-service.py: Add test
2725 for correct marshalling of return values according to out_signature.
2726 Fix a bug in the async call test where the error_handler is missing a
2729 2005-10-29 Robert McQueen <robot101@debian.org>
2731 * glib/Makefile.am, glib/examples/Makefile.am,
2732 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2733 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2735 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2737 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2738 from Ubuntu by Daniel Silverstone to allow specifying match rules on
2741 2005-10-27 Ross Burton <ross@openedhand.com>
2743 * dbus/dbus-marshal-header.c:
2746 * glib/dbus-gobject.c:
2747 Stop compiler warning.
2749 2005-10-25 Ross Burton <ross@openedhand.com>
2752 * dbus/dbus-server-unix.c:
2753 * dbus/dbus-transport-unix.c:
2754 * glib/dbus-gmain.c:
2755 * glib/dbus-gobject.c:
2756 Add some const keywords.
2758 2005-10-25 Ross Burton <ross@openedhand.com>
2760 * doc/dbus-specification.xml:
2761 Document the NoReply annotation.
2763 * glib/dbus-binding-tool-glib.h:
2764 * glib/dbus-binding-tool-glib.c:
2765 Respect the NoReply annotation.
2767 2005-10-24 Robert McQueen <robot101@debian.org>
2769 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2770 derive from unicode instead of str, and encode/decode UTF-8 when
2771 marshalling/unmarshalling bus messages
2773 * python/introspect_parser.py: encode introspection data as UTF-8
2774 before passing the buffer into libxml2
2776 * test/python/test-client.py: add unicode test strings
2778 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2779 ignore generated python test files
2781 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
2783 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2784 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2785 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2787 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2788 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2789 when constructing struct signatures
2791 * python/_dbus.py (Bus): handle private connections using the
2792 private keyword in the constructor. defaults to private=False
2793 (Bus::close): new method to close a connection to the bus
2795 * python/dbus_bindings.pyx (Connection::close): renamed method
2796 was previously called disconnect
2797 (bus_get): now supports getting a private connection
2799 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2800 keyword is set to True. if it is, execute the method without waiting
2802 (ProxyObject::_introspect_execute_queue): new method for executing
2803 all the pending methods that were waiting for the introspect to
2804 finish. this is called when introspect either succeeds or fails
2805 (ProxyObject::_introspect_error_handler): call queued methods
2807 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
2809 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2810 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2812 * python/service.py (Object::_message_cb): handle exceptions correctly
2813 by sending them over the wire to the calling app. This makes sure
2814 the client returns immediately instead of waiting the 15 seconds to
2817 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
2818 Add a test to benchmark how long it takes to introspect a service and
2819 call a method which returns a large element (pretty fast)
2821 * test/python/test-service.py (TestObject::GetComplexArray): new test
2822 method which pushes a lot of data
2824 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2826 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
2827 reclaim memory outside of the loop and use del istead of just setting
2830 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2832 * python/service.py (ObjectType::_reflect_on_signal): Always close
2833 signal tag even when there are no arguments
2835 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2837 * configure.in: Set mono, mono-docs and Qt3 to default
2838 to no instead of auto when building. These bindings do not
2839 have full time maintainers and will not be supported for the
2842 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
2844 patches from Michael Krivoruchko <misha at sun.com>:
2846 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2847 _dbus_connection_message_sent,
2848 _dbus_connection_send_preallocated_unlocked_no_update,
2849 _dbus_connection_pop_message_link_unlocked): handle the case when path
2850 is NULL when calling _dbus_verbose
2852 * configure.in: check for functions getpeerucred and getpeereid
2854 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
2855 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
2856 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
2857 Patch was only tested on Solaris 10 x86 so it might be issues
2858 with other platforms (i.e. BSDs and MacOSX)
2861 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
2863 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
2864 instead of marshal basic so we can handle recursive types in a variant
2866 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2869 * test/glib/test-service-glib.c, test-service-glib.xml
2870 (my_object_echo_variant [EchoVariant],
2871 my_object_process_variant_of_array_of_ints123
2872 [ProcessVariantOfArrayOfInts123]):
2873 Add two test methods
2875 * python/introspect_parser.py: New module for parsing introspect
2878 * python/dbus_bindings.pyx:
2879 (various places): when throwing errors fix to use errormsg instead
2880 of message local variable because Pyrex can get confused with other
2881 message variables (initial patch by Robert McQueen
2882 <robert.mcqueen at collabora.co.uk>)
2883 (MessageIter::parse_signature_block): new method for getting the next
2884 block in a signiture.
2885 (MessageIter::append_strict): new method for appending values strictly
2886 using the passed in signature instead of guessing at the type
2887 (MessageItter:: append_dict, append_struct, append_array): use
2888 signatures to marshal children if the signature is available
2890 * python/exceptions.py (IntrospectionParserException): new exception
2892 * python/proxies.py (ProxyMethod::__call__): Marshal args with
2893 introspected signatures if available, else we fall back to the
2894 old way of doing things.
2895 (ProxyObject::_introspect_reply_handler ): parse introspection data
2897 * python/service.py (ObjectType::_reflect_on_method): Properly
2898 terminate <method> if there are no args in the reflection data
2900 * test/python/test-client.py: add tests for talking with the GLib
2901 test server. This gives us better coverage for introspection since
2902 python to python will always generate arguments as variants. It also
2903 allows us to test the robustness of the GLib bindings and interlanguage
2907 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
2909 * bus/driver.c (bus_driver_handle_introspect): Add signals
2910 to the introspect data. (patch from Daniel P. Berrange
2911 <dan at berrange.com>)
2913 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2915 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2916 _dbus_connection_run_builtin_filters): Changed these to
2917 be unlock_no_update functions and call
2918 _dbus_connection_send_unlocked_no_update instead of
2919 dbus_connection_send to avoid locking errors.
2921 * doc/TODO: Removed the make Ping test TODO
2923 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2925 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2926 We now copy the message from a DBusError and then free
2927 the error object befor throwing the error
2929 * glib/dbus-glib-tool.c: removed extra comma at the end of the
2930 DBusBindingOutputMode enum which was causing a warning.
2931 #include <time.h> so using time_t is explicitly defined
2933 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2935 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2937 (internal_bus_get): new method that take over the heavy lifting
2938 of dbus_bus_get and adds the ability to get a private connection
2940 (dbus_bus_get): wrapper to internal_bus_get that provides the same
2941 interface as in previous versions
2942 (dbus_bus_get_private): new method that is a wrapper to
2943 internal_bus_get to get a private connection to the bus
2946 (dbus_bus_get_private): add as a public libdbus interface
2948 - dbus-1.pc.in: output system_bus_default_address and
2949 sysconfdir variables so apps can use them when compiling
2951 2005-09-23 Harald Fernengel <harry@kdevelop.org>
2952 * dbus/qt: New Qt bindings
2954 2005-09-12 Waldo Bastian <bastian@kde.org>
2956 * dbus/dbus-marshal-validate.c,
2957 doc/dbus-specification.xml, test/Makefile.am,
2958 test/test-names.c: allow hyphens in bus names.
2960 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2962 * test/data/auth/fallback.auth-script: we don't
2963 retry the EXTERNAL method when we know its going
2966 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2968 * dbus/dbus-connection-internal.h: rename
2969 (add|remove|toggle)_(watch|timeout) to unlocked()
2971 * dbus/dbus-connection.c: ditto.
2973 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2974 Update some callers for the renaming.
2976 2005-09-10 Mark McLoughlin <mark@skynet.ie>
2978 * dbus/dbus-auth.c: (record_mechanisms): don't
2979 retry the first auth mechanism because we know
2980 we're just going to get rejected again.
2982 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2983 Fix thinko ... and what a nasty little bugger to
2984 track down you were ...
2986 * dbus/dbus-connection.c:
2987 (_dbus_connection_add_watch),
2988 (_dbus_connection_remove_watch): add note about
2989 these needing the connection to be locked.
2990 (_dbus_connection_get_dispatch_status_unlocked):
2991 set status to DATA_REMAINS when we queue the
2992 disconnected message.
2995 (bus_dispatch): fix warning.
2996 (check_existent_service_no_auto_start):
2997 Expect ChildSignaled error too.
2998 (check_existent_hello_from_self): fix another
3001 2005-09-08 Joe Shaw <joeshaw@novell.com>
3003 Patches from James Willcox <snorp@snorp.net>
3005 * mono/Makefile.am: Add Int16.cs and UInt16.cs
3007 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3008 support array "out" parameters.
3010 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3011 for 16-bit int support.
3013 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
3017 * Patch from Steve Grubb:
3018 - bus/activation.c (bus_activation_service_reload_test): clean up
3020 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
3021 - dbus/dbus-message-factory.c (generate_special): fix a couple of
3022 buffer overflows in the test suite. This is non critical because
3023 it can not be exploited and this code is only run when doing a
3026 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3027 - configure.in: Don't check and link against kdecore, only qt headers
3028 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3029 - gcj/org/freedesktop/dbus/Makefile.am:
3030 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3031 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3032 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3033 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3034 - tools/Makefile.am: Add platform extentions to binaries
3035 (i.e. .exe on windows)
3038 - Make it so if no suitable version of python is found we only
3039 disable building python instead of exiting the configure script
3040 - Require version 2.4 of glib for glib bindings
3041 - Up version to 0.50
3043 * python/__init__.py: Sync version with libdbus to (0,50,0)
3045 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3047 * dbus/dbus-object-tree.c (find_subtree_recurse):
3048 a couple of optimizations (bug #710):
3049 - do a binary search in the tree
3050 - insert a new child at the right place directly, no need for
3052 - do the "double alloc" thing when allocating children
3054 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
3056 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3058 * python/dbus_bindings.pyx: Memory management foo
3059 (global): remove hacky _user_data_references global list
3060 (GIL_safe_cunregister_function_handler): userdata now stuffed into
3061 tuples. Unref user_data
3062 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3063 (Connection::__del__): Remove and replace with __dealloc__ method
3064 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
3065 to keep tuple from being deallocated instead of the global var hack
3066 (Connection::register_object_path): Stuff user_data into a tuple.
3067 Use Py_INCREF to keep tuple from being deallocated instead of the
3069 (Connection::register_fallback): Stuff user_data into a tuple.
3070 Use Py_INCREF to keep tuple from being deallocated instead of the
3072 (GIL_safe_pending_call_notification): Don't unref the message
3073 because it gets unreffed when going out of scope. Py_XDECREF
3075 (PendingCall::__del__): Remove and replace with __dealloc__ method
3076 (PendingCall::set_notify): ref the pending call because we will
3077 need it to stick around for when the notify callback gets called
3078 (Message::__del__): Remove and replace with __dealloc__ method
3080 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
3081 gthreads_init to match up with the dbus call
3083 * python/glib.py (init_threads): Changed to threads_init to match
3084 up with gobject.threads_init(). init_threads is kept for backwards
3085 compat but will most likely be deprecated in the future
3087 * test/python/test-client.py:
3088 - revamp to use Python's unittest functionality
3089 - add async call tests
3090 - setup threads in glib and dbus so we make sure locks are working
3092 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3094 * python/dbus_bindings.pyx
3095 (_pending_call_notification, cunregister_function_handler,
3096 cmessage_function_handler): All callback functions have been rearranged
3097 to workaround a bug in Pyrex when working with the GIL which is Python's
3098 global lock when dealing with threads. They have been split into
3099 a wrapper function (which assumes the name of the old function) and
3100 a _GIL_safe_<function name> function which contains the functionality
3101 of the old function. This ensures that Pyrex does not write code
3102 the lock is released.
3105 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3107 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3108 GIL global lock when calling back into Python
3110 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
3114 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3116 * bus/policy.c (bus_policy_allow_user): change default "user is
3117 allowed" to be "user has same uid as the bus itself"; any
3118 allow/deny rules will override.
3120 * bus/session.conf.in: don't allow all users, since now by default
3121 the user that ran the bus can connect.
3123 2005-08-26 Colin Walters <walters@verbum.org>
3125 * tools/dbus-print-message.c (print_message): Flush stdout
3126 after printing a message, so that redirecting to a file, then
3127 hitting Ctrl-C works.
3129 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
3131 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3132 (EmptyMessage): new class that subclasses Message. This is a workaround
3133 to a Pyrex bug that fails to call __del__ when the Message object goes out
3134 of scope. For some reason subclassing Message fixes this bug
3135 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3136 - s/Message(_create=0)/EmptyMessage everywhere else
3138 * test/python/test-{server|client}.py: add the python/.libs directory
3139 to the lookup path so dbus_bindings and dbus_glib_bindings don't
3140 get picked up from the system
3142 2005-08-25 Colin Walters <walters@verbum.org>
3144 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3145 to Ryan Lortie for the suggestion.
3147 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3149 * test/python: Add python regression test
3151 * configure.in: Add test/python/Makefile
3153 * test/Makefile.am: Add the python directory to SUBDIRS
3155 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3160 (Interface::connect_to_signal): propigate keywords for match on args
3161 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3163 * python/proxies.py (ProxyObject::connect_to_signal):
3164 propigate keywords for match on args
3166 * Makefile.am: point everything to pyexecdir since python borks
3169 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3173 2005-08-23 Colin Walters <walters@verbum.org>
3175 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3177 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3179 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3180 to fix some wranings. We now use dbus_bindings.DBusConnection instead
3181 of defining DBusConnection ourselves.
3183 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
3185 * python/dbus.pth: New path file to fix up problems when installing
3186 c libraries to lib64 and python files to lib.
3188 * python/Makefile.am: install dbus.pth in the correct spot
3190 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
3191 * ChangeLog: clean up my last entry a bit
3193 * doc/introspect.xsl: New stylesheet for converting introspection data
3194 into browser renderable xhtml. Contributed by Lennart Poettering.
3196 * doc/introspect.dtd: Fixups in the introspect format from Lennart
3199 * doc/dbus-tutorial.xml:
3200 - Add Colin Walter to the Authors section for authoring the GLib
3202 - Add descriptions of the new signature and type functionality
3203 in the Python complex type mapping section
3204 - Add a sidenote on the new args matching functionality in
3206 - Fixed up some of the examples to use the gobject.MainLoop
3210 (Bus::_create_args_dict): New. Converts a hash of arg matches
3211 to a more useable format
3212 (Bus::add_signal_receiver): add a **keywords parameter for catching
3213 arg match parameters
3214 (Bus::remove_signal_receiver): add a **keywords parameter for catching
3215 arg match parameters
3217 * python/matchrules.py:
3218 (MatchTree::exec_matches): Check for arg matches
3219 (SignalMatchRule::add_args_match): New method
3220 (SignalMatchRule::execute): Added args_list parameter as an optimization
3221 so we don't have to marshal the args more than once
3222 (SignalMatchRule::match_args_from_list): New method that checks to see
3223 if the rule's arg matches match an argument list. Only arguments
3224 set in the rule are checked.
3225 (SignalMatchRule::match_args_from_rule): New method that checks to see
3226 if the rule's arg matches match another rule's. All args have to match
3227 in order for this method to return true. If either rule has more args
3228 then it is not a match.
3229 (SignalMatchRule::is_match): Add args match
3230 (SignalMatchRule::repr): Add args to the final output if they exist
3232 2005-08-17 Ross Burton <ross@burtonini.com>
3234 * glib/dbus-gproxy.c:
3235 (dbus_g_proxy_call_no_reply): unref the message once sent.
3236 (dbus_g_proxy_call): protect against NULL proxy.
3238 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
3240 * python/__init__.py: Version updated (0, 43, 0)
3242 * python/dbus_bindings.pyx:
3243 - Fixed type objects to have self passed into __init__
3244 - Added the Variant type
3245 - Add the ability to specify types or signatures for Array, Variant
3247 (Connection::send_with_reply_handlers): return a PendingCall object
3248 (_pending_call_notification): handle the case when an error is returned
3249 without an error message in the body
3250 (MessageIter::get_boolean): return True or False instead of an integer
3251 (MessageIter::python_value_to_dbus_sig): add direct checking of types
3252 and add checks for objects with embeded signatures or types (Array,
3253 Variant and Dictionary)
3254 (MessageIter::append_byte): handle case when the value is a dbus.Byte
3255 (MessageIter::append_dict): handle embeded types or signatures
3256 (MessageIter::append_array): handle embeded types or signatures
3257 (MessageIter::append_variant): new method
3259 * python/proxies.py:
3260 (DeferedMethod): New. Dummy executable object used when queuing calls
3261 blocking on introspection data
3262 (ProxyMethod::__call__): add the timeout keyword for specifying longer
3263 or shorter timeouts for method calls
3264 (ProxyObject): Add first pass at an introspection state machine
3265 (ProxyObject::__init__): Add introspect keyword for turing off an on
3267 (ProxyObject::_Introspect): Internal Introspect call that bypasses
3268 the usual mechanisms for sending messages. This is to avoid a deadlock
3269 where the Intospect call would be queued waiting for the Introspect
3271 (ProxyObject::_introspect_reply_handler): New. This method is called
3272 when introspection returns with no error
3273 (ProxyObject::_introspect_error_handler): New. This method is called
3274 when introspection encounters an error
3275 (ProxyObject::__getattr__): Code to handle different introspection
3276 states. Queue async calls or block blocking calls if we are
3277 introspecting. Pass through as normal if we are not or are done with
3280 * python/service.py: Import signal and method from decorators.py
3282 * python/types.py: Add Variant type
3284 2005-08-16 Colin Walters <walters@verbum.org>
3286 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3287 DBusError message is NULL.
3289 2005-08-09 Havoc Pennington <hp@redhat.com>
3291 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3292 malloc'd copy of the name parameter
3294 2005-08-09 Havoc Pennington <hp@redhat.com>
3296 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3297 warning if the reply serial is set to 0
3299 2005-08-04 Colin Walters <walters@verbum.org>
3301 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3302 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3303 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3304 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3305 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3306 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3307 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3308 * glib/dbus-gvalue.h (dbus_g_value_types_init)
3309 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3310 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3312 Prefix name with _ to ensure they're not exported. All callers
3315 * glib/dbus-gvalue.c (typecode_to_gtype)
3316 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3317 (signature_iter_to_g_type_dict)
3318 (signature_iter_to_g_type_array)
3319 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3320 (dbus_gtypes_from_arg_signature):
3321 Move to dbus-gsignature.c.
3323 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3324 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3325 (dbus_binding_tool_output_glib_client): Ditto.
3327 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3328 and dbus-gsignature.h
3330 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3333 2005-08-03 Colin Walters <walters@verbum.org>
3335 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3336 catch any incompatible changes accidentally made.
3338 2005-08-03 Havoc Pennington <hp@redhat.com>
3340 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3341 typo, from Julien Puydt
3343 * bus/connection.c (bus_connection_disconnected): we were always
3344 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3346 2005-08-01 Colin Walters <walters@verbum.org>
3348 Patch from Joe Markus Clarke:
3350 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3353 2005-08-01 Colin Walters <walters@verbum.org>
3355 Patch from Joe Markus Clarke:
3357 * tools/dbus-send.c (main):
3359 Don't use C99 style initializers (bug #3933).
3361 2005-08-01 Colin Walters <walters@verbum.org>
3363 Patch from Joe Markus Clarke:
3365 * glib/dbus-gvalue.c (dbus_g_value_types_init):
3366 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
3367 * glib/dbus-gobject.c (write_interface):
3369 Don't use C99 style initializers (bug #3933).
3371 2005-07-31 Havoc Pennington <hp@redhat.com>
3373 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3374 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3376 2005-07-30 Havoc Pennington <hp@redhat.com>
3378 * fix a bunch of Doxygen warnings and mistakes
3380 2005-07-30 Havoc Pennington <hp@redhat.com>
3382 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3383 DBUS_BUILD_TESTS since it's now used in production code
3385 2005-07-29 Havoc Pennington <hp@redhat.com>
3387 * test/glib/test-profile.c (write_junk): initialize the junk
3388 buffer so valgrind doesn't have a breakdown
3390 2005-07-29 Havoc Pennington <hp@redhat.com>
3392 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3393 (match_rule_matches): remove unused arg
3394 (test_matching): add tests for match_rule_matches()
3396 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3397 do arg0='foo' arg5='bar' in the match rules
3398 (match_rule_matches): don't match if the arg0='foo' doesn't match.
3400 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3402 2005-07-29 Ross Burton <ross@openedhand.com>
3404 * dbus/dbus-connection.c:
3405 Don't create a DBusCondVar which is never used.
3407 2005-07-27 Ross Burton <ross@openedhand.com>
3409 * dbus/dbus-message.c:
3410 Reduce the size of the maximum cached message to 10K.
3412 2005-07-25 Ross Burton <ross@openedhand.com>
3414 * glib/dbus-gproxy.c:
3415 Remove matches when all proxies are unregistered.
3417 2005-07-24 Colin Walters <walters@verbum.org>
3419 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3420 typedata; recursive arrays won't have it.
3422 * test/glib/test-dbus-glib.c:
3423 * test/glib/test-service-glib.c:
3424 * test/glib/test-service-glib.xml: Add recursive arrays tests.
3426 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
3428 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3429 proxies.py, service.py: Cleanup of code after running it through the
3430 pyflakes code checker mostly dealing with undefined names.
3431 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3433 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3435 * NEWS: Update to 0.35.2
3437 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3439 * python/_dbus.py: Remove import of the dbus.services
3440 module as it no longer exists (patch from Dimitur Kirov)
3442 * python/service.py (Object::__init__): Fixed typo
3443 s/name/bus_name (patch from Dimitur Kirov)
3445 * python/examples/example-signal-emitter.py: import dbus.glib
3446 to get the main loop and use glib mainloop instead of gtk so
3447 X doesn't have to be running.
3449 * python/examples/example-signal-recipient.py: import dbus.glib
3450 to get the main loop and use glib mainloop instead of gtk so
3451 X doesn't have to be running. Import the decorators module
3454 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
3455 didn't pick up on but are needed to build
3457 * configure.in: upped version to 0.35.2
3459 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3460 added Colin Walters' SELinux API rename patch from head
3461 s/unix sercurity context/selinux security context/
3463 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
3465 * python/Makefile.am: dbus_binding.pxd.in should be included
3466 in EXTRA_DIST not dbus_binding.pxd
3467 fix up $(srcdir) hopefully for the last time
3469 * NEWS: Update to 0.35.1
3471 2005-07-16 Colin Walters <walters@verbum.org>
3473 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3474 from bus_driver_handle_get_connection_unix_security_context. Update for
3476 (message_handlers): Update for renames.
3478 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3479 _dbus_string_init failure correctly.
3480 (bus_selinux_append_context): Convert SID to context. Append it
3482 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3485 * bus/selinux.h: Update prototype.
3487 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3488 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3490 2005-07-15 Colin Walters <walters@verbum.org>
3492 * doc/TODO: Add note about convenience wrappers.
3494 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3496 * NEWS: Update to 0.35
3498 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3500 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3501 so distcheck doesn't fail
3503 * glib/examples/Makefile.am: Add example-service.xml and
3504 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3506 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3507 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3509 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3510 compiler looks in the right places during distcheck
3512 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3514 * glib/example/Makefile.am: Fix a typo which cause make distcheck
3517 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3519 * python/examples/example-service.py,
3520 python/examples/example-signal-emitter.py: Fixed up examples
3523 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3525 * python/__init__.py: Upped to version (0,42,0) because of
3528 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3530 * ChangeLog: fix date in last entry
3532 * configure.in, bus/system.conf.in: add the ability to configure
3533 the system bus user at compiletime with the --with-dbus-user flag
3534 (patch from Kristof Vansant)
3536 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3538 * bus/dispatch.c, test/test-service.c: Add testcase
3539 for sending messages to oneself (TODO item).
3541 * python/service.py (class Object): Swap ordering of bus_name
3542 and object_path parameters to better support inheritance.
3544 * doc/dbus-tutorial.xml: change Python docs to reflect change
3545 in parameter ordering and fix the inheritance section.
3547 * doc/TODO: remove sending message to oneself TODO item
3549 2005-07-15 Ross Burton <ross@openedhand.com>
3551 * glib/dbus-gproxy.c:
3552 Fix a leak when calling methods via the proxy.
3554 2005-07-15 Colin Walters <walters@verbum.org>
3556 * bus/selinux.c (bus_selinux_append_context): Wrap in
3559 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3561 * python/_dbus.py (Bus::remove_signal_receiver):
3562 don't add a callback to the match if none has been passed in
3564 * python/matchrules.py (SignalMatchTree::remove): if the rule
3565 being matched does not have a callback treat it as a wildcard
3568 * doc/dbus-tutorial.xml: Add Python tutorial
3570 2005-07-14 Colin Walters <walters@verbum.org>
3573 (bus_driver_handle_get_connection_unix_security_context): New function.
3574 (message_handlers): Add.
3576 * bus/selinux.c (bus_selinux_append_context): New function; appends
3577 security context to message.
3579 * bus/selinux.h: Prototype.
3581 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3583 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3585 * bus/activation.c: clean up all tabs to be 8 spaces
3586 (bus_activation_activate_service): make sure we clean up
3589 * bus/dispatch.c: clean up all tabs to be 8 spaces
3590 (check_shell_fail_service_auto_start): New function
3591 tests to make sure we get fail properly when trying to auto start a service
3592 with a faulty command line
3593 (check_shell_service_success_auto_start): New function tests to make sure
3594 auto started services get the arguments on the command line
3596 * test/test-shell-service.c: Added service for testing auto-starting with
3597 command line arguments
3599 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
3600 test/data/valid-service-files/debug-shell-echo-success.service.in:
3601 Added service files for testing auto-starting with command line arguments
3603 * */.cvsignore: added a bunch of generated files to various .cvsignore files
3605 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
3607 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3609 * dbus/Makefile.am: added new files to build.
3611 * bus/activation.c (bus_activation_activate_service): support
3612 activation commands with parameters.
3614 * test/shell-test.c: added test program for the shell parsing
3617 2005-07-13 David Zeuthen <davidz@redhat.com>
3619 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3620 64 bit signed and unsigned parameters
3622 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
3624 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3626 * python/service.py (class Name): renamed BusName to make it clearer
3627 what the object is for (a name on the bus)
3629 * python/examples/example-service.py,
3630 python/examples/example-signal-emitter.py: change the Name object to
3633 2005-07-12 Colin Walters <walters@verbum.org>
3635 Patch from Jim Gettys <Jim.Gettys@hp.com>.
3637 * tools/dbus-launch.c: Include sys/select.h.
3639 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
3640 * python/dbus_bindings.pyx.in: removed
3642 * python/dbus_bindings.pyx: Added.
3643 - Fixed some memleaks (patch from
3644 Sean Meiners <sean.meiners@linspireinc.com>)
3645 - Broke out the #include "dbus_h_wrapper.h" and put it in its
3646 own pxd file (Pyrex definition)
3647 - Broke out glib dependancies into its own pyx module
3649 * python/dbus_bindings.pdx: Added.
3650 - Defines C class Connection for exporting to other modules
3652 * python/dbus_glib_bindings.pyx: Added.
3653 - New module to handle lowlevel dbus-glib mainloop integration
3655 * python/glib.py: Added.
3656 - Registers the glib mainloop when you import this module
3658 * python/services.py: Removed (renamed to service.py)
3660 * python/service.py: Added.
3661 - (class Server): renamed Name
3663 * python/__init__.py: Bump ro version (0,41,0)
3664 -don't import the decorators or service module
3665 by default. These now reside in the dbus.service namespace
3667 * python/_dbus.py (Bus::__init__): Add code run the main loop
3668 setup function on creation
3670 * python/examples/example-service.py,
3671 python/examples/example-signal-emitter.py: update examples
3673 * python/examples/gconf-proxy-service.py,
3674 python/examples/gconf-proxy-service2.py: TODO fix these up
3676 * doc/TODO: Addition
3677 - Added a Python Bindings 1.0 section
3678 - added "Add match on args or match on details to match rules"
3681 2005-07-12 Colin Walters <walters@verbum.org>
3683 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
3684 (statemachine-glue.h):
3685 * glib/examples/Makefile.am (example-service-glue.h)
3686 (example-signal-emitter-glue.h):
3687 * glib/Makefile.am (dbus-glib-error-switch.h):
3688 Add libtool --mode=execute so we use the built library instead
3689 of any installed one.
3691 2005-07-11 Colin Walters <walters@verbum.org>
3693 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3694 (dbus_g_value_types_init): Remove assertion.
3695 (dbus_g_value_get_g_type, dbus_g_value_open)
3696 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3697 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3698 functions related to DBusGValue. Now we marshal/demarshal
3699 structures as GValueArray.
3700 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3702 (signature_iter_to_g_type_array): Don't call
3703 signature_iter_to_g_type_struct.
3704 (signature_iter_to_g_type_struct): Delete.
3705 (dbus_gvalue_to_signature): Delete.
3706 (dbus_gvalue_to_signature): New function with same name as other
3707 one; we can convert structures to signatures.
3708 (demarshal_valuearray): New function.
3709 (get_type_demarshaller): Use it.
3710 (demarshal_recurse): Delete.
3711 (marshal_proxy): New function.
3712 (marshal_map): Warn if we can't determine signature from type.
3713 (marshal_collection_ptrarray): Ditto.
3714 (marshal_collection_array): Ditto.
3715 (get_type_marshaller): Use marshal_valuearray.
3716 (marshal_recurse): Delete.
3717 (_dbus_gvalue_test): Add some tests.
3719 * dbus/dbus-glib.h (struct _DBusGValueIterator):
3720 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3721 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3722 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3723 (dbus_g_value_free): Remove prototypes.
3725 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3728 * glib/examples/example-service.c:
3729 * glib/examples/example-client.c: Implement GetTuple.
3731 * test/glib/test-dbus-glib.c:
3732 * test/glib/test-service-glib.c:
3733 * test/glib/test-service-glib.xml: Add structure tests.
3735 2005-07-10 Colin Walters <walters@verbum.org>
3737 * doc/TODO: Knock off some GLib items with this patch.
3739 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
3740 (_dbus_gvalue_signals_error): New functions.
3742 * glib/dbus-gvalue-utils.h: Prototype them.
3744 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3745 and change to not output const/retval flags for input args. All
3747 (invoke_object_method): Refactor to handle return values. Add
3748 some more comments in various places. Remove debug g_print.
3750 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3752 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3754 (compute_gsignature): New function; refactored from code from
3755 compute_marshaller and compute_marshaller_name. Enhance to
3756 handle return values and async ops more cleanly. Update for
3757 async ops returning NONE instead of BOOLEAN.
3758 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3759 and output appropriate string.
3760 (generate_glue): Handle return value annotation. Also don't dump
3761 constness flag for input arguments.
3763 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3764 files shared between installed library and utilities.
3765 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3766 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3767 binding tool can access gtype utility functions.
3769 * test/glib/test-service-glib.c:
3770 * test/glib/test-service-glib.xml:
3771 * test/glib/test-dbus-glib.c: Add some tests for return values.
3773 2005-07-09 Colin Walters <walters@verbum.org>
3775 * glib/dbus-gparser.c (parse_annotation): Add annotations to
3776 argument if available, not method.
3778 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3779 (invoke_object_method): First, remove some redundant
3780 GValues (object_value, error_value) in favor of working on
3781 array directly. Second, rework constness to be less buggy.
3782 Now we iterate directly over the argument metadata instead
3783 of parallel iterating over output signature and metadata.
3785 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3787 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3788 annotation on input args.
3790 2005-07-09 Colin Walters <walters@verbum.org>
3792 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3795 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3798 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3799 (method_dir_signature_from_object_info): Handle arg_iterate change.
3800 (write_interface): Ditto.
3801 (lookup_object_info): Don't barf if format_version is > 0.
3802 (invoke_object_method): Handle arg constness.
3804 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3805 (arg_info_new): Create.
3806 (arg_info_unref): Destroy.
3807 (arg_info_get_annotations, arg_info_get_annotation)
3808 (arg_info_add_annotation): New functions.
3810 * glib/dbus-gidl.h: Prototype them.
3812 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3813 args, disallow them in properties.
3814 (parse_annotation): Handle arg annotations.
3816 * test/glib/test-service-glib.xml:
3817 * test/glib/test-service-glib.c: Update to make some methods
3820 2005-07-08 Colin Walters <walters@verbum.org>
3822 * test/glib/test-service-glib.xml:
3823 * test/glib/test-service-glib.c:
3824 * test/glib/test-dbus-glib.c: Test a{sv}.
3826 * glib/examples/statemachine/statemachine.c:
3827 * glib/examples/statemachine/statemachine-server.c:
3828 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3829 add progress bar, etc.
3831 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3832 needed anymore due to generic array/map marshalling.
3833 (dbus_g_value_types_init): Don't register basic arrays or the
3835 (dbus_gtype_from_signature_iter): Don't try to recurse into
3837 (dbus_gtype_to_signature): Check collection/map before type
3839 (demarshal_garray_basic): Renamed to demarshal_collection_array.
3840 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3841 generic map creation/append functions instead of hash table
3843 (get_type_demarshaller): Handle maps.
3844 (demarshal_collection): Dispatch on collection type to either
3845 demarshal_collection_ptrarray or demarshal_collection_array.
3846 (get_type_marshaller): Handle maps.
3847 (marshal_collection): Dispatch collection type to either
3848 marshal_collection_ptrarray or marshal_collection_array.
3849 (_dbus_gvalue_test): New test.
3851 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3852 (hash_free_from_gtype): Use it to free GValues.
3853 (hashtable_append): New function.
3854 (ptrarray_append): Fix prototype.
3855 (slist_append): Ditto.
3856 (_dbus_gvalue_utils_test): Extend tests.
3858 * glib/dbus-gtype-specialized.c
3859 (dbus_g_type_specialized_init_append): Renamed from
3860 dbus_g_type_specialized_collection_init_append. Remove const from
3861 value, since we steal it.
3862 (dbus_g_type_specialized_map_append): New function.
3864 * glib/dbus-gtype-specialized.h: Update prototypes.
3865 Add DBusGTypeSpecializedMapAppendFunc.
3867 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3870 * glib/dbus-gtest.h: Prototype it.
3872 2005-07-08 Ross Burton <ross@openedhand.com>
3875 Add DBysGAsyncData for the async bindings.
3877 * glib/dbus-binding-tool-glib.c:
3878 Re-enable the async bindings.
3880 * test/glib/test-dbus-glib.c:
3881 Add a test for the generated async bindings.
3883 2005-07-08 Colin Walters <walters@verbum.org>
3885 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3888 2005-07-08 Colin Walters <walters@verbum.org>
3890 * tools/Makefile.am: Kill of print-introspect in favor of using
3891 dbus-send --print-reply=literal.
3893 * test/glib/test-service-glib.xml:
3894 * test/glib/test-service-glib.c (my_object_get_objs): New test
3897 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3898 (main): Test GetObjs.
3900 * glib/examples/statemachine/Makefile.am:
3901 * glib/examples/statemachine/sm-marshal.list:
3902 * glib/examples/statemachine/statemachine-client.c:
3903 * glib/examples/statemachine/statemachine-server.c:
3904 * glib/examples/statemachine/statemachine-server.xml:
3905 * glib/examples/statemachine/statemachine.c:
3906 * glib/examples/statemachine/statemachine.h:
3907 * glib/examples/statemachine/statemachine.xml:
3911 * glib/examples/example-service.c (main): Move invocation
3912 of dbus_g_object_type_install_info earlier, to emphasize it
3913 should only be done once.
3915 * glib/examples/example-signal-emitter.c (main): Ditto.
3917 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3919 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3920 (dbus_gvalue_marshal): Update prototypes.
3922 * glib/dbus-gvalue.c: Update all marshalling functions to take
3923 const GValue instead of GValue.
3924 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3926 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3928 (dbus_gtype_to_signature): Handle generic collecitons and maps.
3929 Return a newly-allocated string.
3930 (demarshal_proxy, demarshal_object_path, demarshal_object)
3931 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3932 we get the wrong types from message.
3933 (get_type_demarshaller): New function, extracted from
3934 dbus_gvalue_demarshal.
3935 (demarshal_collection): New function, demarshals generic
3937 (dbus_gvalue_demarshal): Just invoke result of
3938 get_type_demarshaller. Throw error if we don't have one.
3939 (marshal_garray_basic): Abort on OOM.
3940 (get_type_marshaller): New function, extracted from
3941 dbus_gvalue_marshal.
3942 (collection_marshal_iterator, marshal_collection): New functions;
3943 implements generic marshalling for an iteratable specialized
3945 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3947 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3949 (ptrarray_value_from_gvalue): Ditto.
3950 (ptrarray_append, ptrarray_free): New functions.
3951 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
3952 (slist_append, slist_end_append, slist_free): New functions.
3953 (dbus_g_type_specialized_builtins_init): Add append fuctions
3954 for GPtrArray and GSList. Register GSList.
3955 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3957 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3959 (dbus_g_type_specialized_collection_init_append)
3960 (dbus_g_type_specialized_collection_append)
3961 (dbus_g_type_specialized_collection_end_append): Prototype.
3962 (DBusGTypeSpecializedCollectionVtable): Add append_func and
3965 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
3966 (dbus_g_type_specialized_collection_append)
3967 (dbus_g_type_specialized_collection_end_append): New functions.
3968 (dbus_g_type_map_value_iterate): Take const GValue.
3969 (dbus_g_type_collection_value_iterate): Ditto.
3971 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3972 _dbus_gvalue_utils_test.
3974 * glib/dbus-gtest.h: Prototype it.
3976 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3977 using uninitialized owner_list.
3978 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3980 (dbus_g_proxy_end_call_internal): Update to use error set
3981 from dbus_gvalue_demarshal instead of setting it here.
3982 (dbus_g_proxy_begin_call): Move return_if_fail here.
3984 * glib/dbus-gobject.c (write_interface): Update for
3985 dbus_gtype_to_signature returning new string.
3987 * configure.in: Add glib/examples/statemachine.
3989 2005-07-08 Joe Shaw <joeshaw@novell.com>
3991 * configure.in: Add a configure option, --with-console-auth-dir
3993 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3994 new setting. Patch from Kay Sievers.
3996 2005-07-06 Colin Walters <walters@verbum.org>
3998 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3999 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4000 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4001 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4002 Delete in favor of dbus_g_proxy_begin_call and
4003 dbus_g_proxy_cancel_call.
4004 (DBusGProxyCall, DBusGProxyCallNotify): New.
4005 (dbus_g_proxy_begin_call): Change prototype to take callback, user
4006 data, and destroy function. This replaces
4007 dbus_g_pending_call_set_notify.
4008 (dbus_g_proxy_cancel_call): Prototype.
4009 (DBusGAsyncData): Delete, shouldn't be needed anymore.
4011 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4013 (struct _DBusGProxyManager): Add bus_proxy member, which is an
4014 internal proxy for calls to the bus. Remove
4015 pending_nameowner_calls, now the internal proxy keeps track.
4016 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4017 pending_nameowner_calls.
4018 (got_name_owner_cb): Update prototype, and use
4019 dbus_g_proxy_end_call.
4020 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4021 (dbus_g_proxy_manager_register): Delete directly libdbus code in
4022 favor of using internal proxy.
4023 (dbus_g_proxy_manager_unregister): Update to use
4024 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4025 (dbus_g_proxy_init): Initialize pending calls map.
4026 (dbus_g_proxy_constructor): New.
4027 (dbus_g_proxy_class_init): Add get/set property functions,
4028 constructor, and add NAME, PATH, and INTERFACE properties.
4029 (cancel_pending_call): New function.
4030 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4032 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4033 (GPendingNotifyClosure): New structure.
4034 (d_pending_call_notify, d_pending_call_free): Moved here from
4036 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4038 (manager_begin_bus_call): New internal function for talking to
4040 (dbus_g_proxy_new): Construct object using GObjet properties.
4041 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4042 Create closure of same, and insert call into map of pending calls.
4043 (dbus_g_proxy_end_call_internal): Take call id instead of pending
4044 call. Look up pending call in current set. Remove it when we've
4046 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4047 (dbus_g_proxy_begin_call): Change API to take callback, user data,
4048 and destroy function directly.
4049 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4050 (dbus_g_proxy_call): Invoke with NULL callback.
4051 (dbus_g_proxy_cancel_call): New function, replaces
4052 dbus_g_pending_call_cancel.
4054 * glib/dbus-gparser.c (validate_signature): Fix call to
4057 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4058 New quark for attaching metadata to GType.
4059 (info_hash): Delete.
4060 (lookup_object_info): Look up using quark.
4061 (dbus_g_object_type_install_info): Check that a type is classed,
4062 not that it's an object. Also just install type data using quark
4063 instead of using global hash.
4065 * glib/dbus-glib.c (dbus_g_pending_call_ref)
4066 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4067 (GPendingNotifyClosure): Delete.
4068 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4069 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4071 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4072 client method generation until we can fix it...
4074 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4075 (load_from_service_thread_func): Ditto.
4077 * tools/dbus-names-model.c (struct NamesModel): Hold
4079 (have_names_notify): Update prototype, use
4080 dbus_g_proxy_cancel_call.
4081 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4083 * tools/dbus-monitor.c (filter_func): Update for print_message
4086 * test/glib/test-dbus-glib.c: Add more tests for async
4087 invocations. Update many begin_call/end_call pairs to just use
4090 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
4091 allows us to dump print-introspect.c.
4093 * tools/dbus-print-message.h (print_message): Add literal argument
4094 to print_message which is intended to allow printing arguments without
4095 metadata like "string=".
4097 * tools/dbus-print-message.c (print_iter): Add literal argument.
4098 (print_message): Allow printing string messages literally.
4100 2005-07-05 Colin Walters <walters@verbum.org>
4102 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4103 Remove value refcount leak, original patch from Jorn Baayen
4104 <jorn@openedhand.com>. Also remove useless extra value in favor
4105 of prepending to value array directly.
4107 2005-07-02 Colin Walters <walters@verbum.org>
4109 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4111 2005-07-01 Colin Walters <walters@verbum.org>
4113 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4115 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4116 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4117 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4118 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4120 2005-06-30 Colin Walters <walters@verbum.org>
4122 * test/glib/test-dbus-glib.c:
4123 * test/glib/test-service-glib.c:
4124 * test/glib/test-service-glib.xml: Update tests for new error
4125 setting bits, also add async tests (patch from Ross Burton).
4127 * test/glib/Makefile.am (test_service_glib_LDADD): Add
4128 DBUS_GLIB_THREADS_LIBS.
4130 * glib/dbus-gproxy.c (get_name_owner)
4131 (dbus_g_pending_call_end_valist): Ditto.
4133 * glib/dbus-gobject.c (error_metadata): New mapping from GError
4134 domain (GQuark) to DBusGErrorInfo.
4135 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4136 quark in error_metadata. Take message interface as default
4137 error message interface.
4138 (gerror_to_dbus_error_message): Pass message interface.
4139 (dbus_set_g_error): Resurrected.
4140 (dbus_g_error_info_free): New function.
4141 (dbus_g_object_type_install_info): Use g_type_class_ref instead
4142 of _peek to actually create the object class if it hasn't been
4144 (dbus_g_error_domain_register): New function.
4146 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4148 * glib/dbus-gparser.c (validate_signature): Ditto.
4150 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4151 (dbus_g_error_domain_register): Prototype.
4153 * glib/dbus-glib.c (dbus_g_error_set): Delete.
4156 2005-06-29 Colin Walters <walters@verbum.org>
4158 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
4159 DBUS_TYPE_G_OBJECT_PATH.
4161 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4162 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4163 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
4164 (dbus_g_object_path_get_g_type): New function.
4165 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4166 to DBUS_TYPE_G_OBJECT_PATH by default.
4167 (demarshal_proxy): Remove unused name variable.
4168 (demarshal_object_path, marshal_object_path): New functions.
4169 (demarshal_proxy_array, marshal_proxy_array): Delete.
4171 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4172 DBUS_TYPE_G_OBJECT_PATH to char *.
4173 (dbus_g_type_get_lookup_function): Map builtin
4174 DBUS_TYPE_G_OBJECT_PATH.
4176 * test/glib/test-dbus-glib.c
4177 * test/glib/test-service-glib.c (my_object_objpath):
4178 Adapt tests to new object path marshalling.
4180 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
4182 * configure.in: force check for Python >= 2.4
4184 2005-06-29 Colin Walters <walters@verbum.org>
4186 Patch from Ross Burton <ross@openedhand.com>
4188 * glib/dbus-gobject.c (invoke_object_method): Unset object
4189 value in all cases, not only in async case.
4191 2005-06-29 Colin Walters <walters@verbum.org>
4193 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4194 name_call for keeping track of any outgoing GetNameOwner call.
4195 Also add for_owner and associated.
4196 (struct _DBusGProxyManager): Add owner_names, which is hash table
4197 that maps a base name to a list of names it owns (that we're
4198 interested in). Add pending_nameowner_calls which is a list of
4199 all outstanding GetNameOwner; avoids us having to iterate over
4200 every proxy. Add unassociated_proxies which keeps track of name
4201 proxies with no associated name owner.
4202 (dbus_g_proxy_manager_unref): Destroy owner_names.
4203 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4205 (find_name_in_info, name_owner_foreach)
4206 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4207 (dbus_g_proxy_manager_monitor_name_owner)
4208 (dbus_g_proxy_manager_unmonitor_name_owner)
4209 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4210 New functions; they manipulate the owner_names mapping.
4211 (got_name_owner_cb): New function.
4212 (get_name_owner): New function, extracted from
4213 dbus_g_proxy_new_for_name_owner.
4214 (dbus_g_proxy_manager_register): For now we need to keep track of
4215 all NameOwnerChanged. Also if the proxy is for a name, if we
4216 don't already know the name owner, queue a new GetNameOwner
4217 request and add it to our list of unassociated proxies. Otherwise
4219 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4220 cancel any pending GetNameOwner call, etc.
4221 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
4222 the owner_names mapping to look up the current names for the
4223 signal source, and dispatch to any proxies for that name.
4224 (dbus_g_proxy_new): Initialize new members.
4225 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4226 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4227 (dbus_g_pending_call_end_valist): New function, extracted from
4228 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
4229 but want to use the GLib infrastructure. Also note how many
4230 arguments in reply were over.
4231 (dbus_g_pending_call_end): New function, just call
4232 dbus_g_pending_call_end_valist.
4233 (dbus_g_proxy_end_call_internal): Just call
4234 dbus_g_pending_call_end_valist.
4236 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4237 of builtin marshaller for STRING_STRING_STRING.
4239 * test/glib/test-dbus-glib.c:
4240 * test/glib/test-service-glib.c:
4241 * test/glib/test-service-glib.xml:
4242 Extend tests to cover name proxies, destruction of owner proxies,
4245 * glib/examples/example-signal-recipient.c
4246 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4248 * tools/dbus-send.c (main): Print D-BUS error name in addition
4251 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
4253 * python/dbus_bindings.pyx.in (cunregister_function_handler,
4254 cmessage_function_handler): Patch from
4255 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4256 by using the Py_GILState_Ensure/Release to synchronize with the
4259 2005-06-28 Ray Strode <rstrode@redhat.com>
4261 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4262 babysitter helper process on last unref, bug #2813.
4264 2005-06-27 Colin Walters <walters@verbum.org>
4266 * test/glib/test-dbus-glib.c:
4267 * test/glib/test-service-glib.c:
4268 * test/glib/test-service-glib.xml:
4269 Test hash table signal emitting.
4271 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4272 types to their fundamental basis types, since this is what
4273 marshallers operate on. Also add an entry for VOID__BOXED.
4274 (dbus_g_object_register_marshaller_array): Convert to fundamental.
4276 2005-06-26 Havoc Pennington <hp@redhat.com>
4278 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4281 2005-06-26 Colin Walters <walters@verbum.org>
4283 * glib/dbus-glib.c (dbus_set_g_error): Delete.
4284 (dbus_g_error_set): New public function from its ashes; used by
4285 both service-side method implementation and GLib bindings
4287 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4288 (_dbus_glib_test): Add some tests.
4290 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4292 * test/glib/test-service-glib.c (my_object_throw_error): Use
4295 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4296 errors thrown by dbus_g_error_set.
4298 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4300 * glib/dbus-gparser.c (validate_signature): Ditto.
4302 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
4303 (dbus_g_proxy_end_call_internal): Ditto.
4305 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4306 converts DBUS_ERROR_x to DBUS_GERROR_x.
4307 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4309 * doc/TODO: Remove error TODO.
4311 * doc/dbus-tutorial.xml: Update with documentation about error
4314 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4315 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4316 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
4318 2005-06-22 Colin Walters <walters@verbum.org>
4320 Patch from Ross Burton <ross@openedhand.com>
4322 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4324 2005-06-20 Colin Walters <walters@verbum.org>
4326 * configure.in: Add glib/examples.
4328 * glib/Makefile.am: Add examples/
4330 * glib/examples/.cvsignore
4331 * glib/examples/Makefile.am
4332 * glib/examples/example-client.c
4333 * glib/examples/example-service.c
4334 * glib/examples/example-service.xml
4335 * glib/examples/example-signal-emitter.c
4336 * glib/examples/example-signal-emitter.xml
4337 * glib/examples/example-signal-recipient.c:
4338 New files; GLib binding examples, ported from
4341 2005-06-20 Colin Walters <walters@verbum.org>
4344 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4347 * glib/dbus-binding-tool-glib.c:
4348 * doc/dbus-tutorial.xml:
4349 * test/glib/test-dbus-glib.c: Update for rename.
4351 2005-06-20 Colin Walters <walters@verbum.org>
4353 Patch suggested by Ross Burton <ross@openedhand.com>
4355 * glib/dbus-gobject.c (export_signals): Free signal name.
4356 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4357 memory leak. Add a bit of documentation.
4358 (dbus_g_method_return_error): Free context, and note we do
4361 2005-06-18 Murray Cumming <murrayc@murrayc.com>
4364 * glib/dbus-gobject.c:
4365 * glib/dbus-gproxy.c:
4366 * glib/dbus-gvalue.c: Predeclare structs as
4367 typedef struct _Something Something instead of
4368 typedef struct Something Something, so we can
4369 redeclare the prototypes. Other GNOME libraries
4372 2005-06-17 Colin Walters <walters@verbum.org>
4374 * tools/dbus-names-model.c (have_names_notify): Fix call
4375 to dbus_g_proxy_end_call.
4377 2005-06-17 Colin Walters <walters@verbum.org>
4379 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4380 spew warnings if we get malformed remote signals.
4382 * glib/dbus-gobject.c (propsig_iterate): New function.
4383 (lookup_object_info): New function, extracted from
4384 lookup_object_and_method.
4385 (introspect_properties, introspect_signals): Delete; these
4386 are merged into write_interface.
4387 (write_interface): Write out signals and properties here;
4388 dump the org.gtk.object stuff and use the interface given
4389 in the introspection data blob. Also fix up property XML.
4390 (lookup_values): New function.
4391 (introspect_interfaces): Gather a mapping from interface to a
4392 list of its methods, signals, and properties, then write out
4394 (lookup_object_and_method): Use lookup_object_info.
4395 (struct DBusGSignalClosure): Add interface.
4396 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4397 we can just use the constant data.
4398 (dbus_g_signal_closure_finalize): Don't free signal name.
4399 (signal_emitter_marshaller): Use interface from signal closure.
4400 (export_signals): Only export signals mentioned in introspection
4402 (dbus_g_connection_register_g_object): Warn if we have no
4403 introspection data for an object.
4404 (funcsig_equal): Remove unused variable.
4405 (dbus_g_object_register_marshaller): Take varargs instead of
4407 (dbus_g_object_register_marshaller_array): New function,
4408 extracted from old dbus_g_object_register_marshaller.
4410 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4411 signals and property data.
4412 (write_quoted_string): New function, extracted from generate_glue.
4413 (generate_glue): Write signals and properties to introspection
4416 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4417 exported_signals and exported_properties.
4418 (dbus_g_object_register_marshaller): Update prototype.
4419 (dbus_g_object_register_marshaller_array): Prototype.
4421 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4423 * test/glib/test-service-glib.c: Add new test signals and method
4426 * test/glib/test-service-glib.xml: Add some test signals.
4428 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4429 and my-object-marshal.h
4430 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4431 my-object-marshal.c.
4432 (my-object-marshal.c, my-object-marshal.h): Implement.
4434 * test/glib/.cvsignore: Update.
4436 * doc/TODO: Remove two GLib TODO items fixed by this
4439 2005-06-16 Colin Walters <walters@verbum.org>
4441 * doc/TODO: Update for GLib bindings.
4443 2005-06-16 Colin Walters <walters@verbum.org>
4445 * glib/dbus-binding-tool-glib.c:
4446 * glib/dbus-gobject.c:
4447 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
4448 from Ross Burton, for his GLib bindings work.
4450 2005-06-16 Colin Walters <walters@verbum.org>
4452 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4453 to iterate instead of walking to G_TYPE_INVALID.
4455 Patch based on a patch from Ryan Gammon.
4457 2005-06-16 Colin Walters <walters@verbum.org>
4459 * bus/bus.c (bus_context_new): Set parser to NULL
4460 after we unref it (Patch from Chris Boscolo, #2174).
4462 2005-06-16 Colin Walters <walters@verbum.org>
4464 * python/dbus_bindings.pyx.in: Import size_t,
4465 __int64_t, __uint64_t, and __signed.
4467 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4468 Define cmsg struct, output it.
4469 (_dbus_read_credentials_unix_socket):
4472 Patch from Joe Markus Clarke for FreeBSD support.
4474 2005-06-16 Colin Walters <walters@verbum.org>
4476 * tools/dbus-send.c (append_array): Use strtok.
4477 (append_dict): New function.
4478 (type_from_name): New function, extracted from main.
4479 (main): Handle sending dicts.
4481 * tools/dbus-print-message.c (print_iter): Print dict
4484 2005-06-16 Colin Walters <walters@verbum.org>
4486 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4487 values as the empty string (#2948).
4489 2005-06-16 Colin Walters <walters@verbum.org>
4492 * mono/doc/Makefile.am:
4493 * test/glib/Makefile.am:
4495 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4497 2005-06-16 Colin Walters <walters@verbum.org>
4499 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4500 header byte order from expected byte order (Patch from Chris Wilson, #3475).
4502 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
4503 Increment pointer after swapping fixed array. Add assertion
4506 2005-06-15 Colin Walters <walters@verbum.org>
4508 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4509 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
4511 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4513 * NEWS: Update to 0.34
4515 2005-06-15 David Zeuthen <davidz@redhat.com>
4517 * configure.in (LT_CURRENT): Revert back to 1 as the library
4518 hasn't changed and we've certainly not committed to protocol
4519 stability yet. All this does is to break ABI. See commit note
4520 from hp@redhat.com 2005-05-05 for details.
4522 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4524 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
4525 (_dbus_connection_run_builtin_filters): New method
4526 (dbus_connection_dispatch): Run the builtin filters which in turn
4527 runs the peer filter which handles Ping messages.
4530 - Ping isn't handled: This patch fixes it
4532 - Add a test case for the Ping message: added TODO item
4534 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4536 * dbus/dbus-message.c:
4537 (dbus_message_has_path): New method
4538 (dbus_message_has_interface): New method
4539 (dbus_message_has_member): New method
4541 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4544 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
4545 the keyring directory is private to the user
4548 - The convenience functions in dbus-bus.h should perhaps have
4549 the signatures that they would have if they were autogenerated
4550 stubs. e.g. the acquire service function. We should also evaluate
4551 which of these functions to include, in light of the fact that
4552 GLib/Qt native stubs will probably also exist.: Punted
4554 - add dbus_message_has_path(), maybe has_member/interface:
4557 - in dbus-keyring.c, enforce that the keyring dir is not
4558 world readable/writable: Fixed in this patch
4560 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4562 * dbus/dbus-marshal-validate.h: Added a new validation
4563 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
4564 out of memory errors when validating signitures
4566 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4567 in places where we previously used DBUS_VALID and a FALSE return
4568 value to indicate OOM
4570 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4571 Use a stack to track the number of elements inside containers. The
4572 stack values are then used to validate that dict entries have only two
4573 elements within them.
4574 (validate_body_helper): check the reason for failure when validating
4577 * dbus/dbus-message.c (load_message): use
4578 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
4579 DBUS_VALID and a FALSE return value to indicate OOM
4581 * doc/TODO: remove "- validate dict entry number of fields" as this
4584 2005-06-14 David Zeuthen <davidz@redhat.com>
4586 * bus/bus.c (process_config_every_time): Drop existing conf-dir
4587 watches (if applicable) and add new watches
4589 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4590 (main): Setup SIGIO signal handler if using D_NOTIFY
4592 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4594 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4595 (merge_included): Also merge conf_dirs list
4596 (bus_config_parser_unref): Clear conf_dirs list
4597 (include_dir): Add directory to conf_dirs list
4598 (bus_config_parser_get_conf_dirs): New function
4600 * bus/dir-watch.[ch]: New files
4602 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4604 * configure.in: Add checks for D_NOTIFY on Linux
4606 2005-06-14 Colin Walters <walters@verbum.org>
4608 * glib/dbus-binding-tool-glib.c:
4609 * glib/dbus-gobject.c:
4610 * glib/dbus-gvalue.c: Fix indentation and brace style.
4612 2005-06-14 Ross Burton <ross@openedhand.com>.
4614 * glib/dbus-glib.h: Make DBusGMethodInvocation
4615 a private structure. Rearrange prototypes a bit.
4617 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4618 documentation for first_arg_type.
4620 * glib/dbus-gobject.c: Move DBusGMethodInvocation
4621 here, add documentation. Move dbus_g_method_return
4622 and dbus_g_method_return_error into public API
4625 2005-06-14 Colin Walters <walters@verbum.org>
4627 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4628 Add missing return statements, noticed by Ross Burton.
4630 2005-06-13 Ross Burton <ross@openedhand.com>.
4632 * glib/dbus-gobject.c: Handle errors on message
4633 demarshalling by sending error message back.
4634 * glib/dbus-gvalue.c: Initialize return variables.
4636 2005-06-13 Colin Walters <walters@verbum.org>
4638 * glib/Makefile.am: Fix thinko in last patch.
4640 2005-06-13 Colin Walters <walters@verbum.org>
4642 * glib/Makefile.am: Move dbus-gtype-specialized.c
4643 and dbus-gtype-specialized.h into a _HEADERS variable,
4646 2005-06-12 Colin Walters <walters@verbum.org>
4648 Async signals and various bugfixes and testing by
4649 Ross Burton <ross@openedhand.com>.
4651 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4652 (dbus_gvalue_genmarshal_name_from_type)
4653 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4654 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4655 (dbus_g_value_types_init, dbus_gtype_from_signature)
4656 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4657 (dbus_gtypes_from_arg_signature): New function prototypes.
4658 (dbus_gvalue_demarshal): Take context and error arguments.
4659 (dbus_gvalue_demarshal_variant): New function.
4660 (dbus_gvalue_demarshal_message): New function.
4661 (dbus_gvalue_store): Delete.
4663 * glib/dbus-gvalue.c:
4665 File has been almost entirely rewritten; now we special-case
4666 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4667 hash tables correctly, etc. Full support for recursive values
4668 is not yet complete.
4670 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4671 argument of signal to G_TYPE_POINTER since we now pass a
4673 (lookup_g_marshaller): Delete in favor of
4674 _dbus_gobject_lookup_marshaller.
4675 (marshal_dbus_message_to_g_marshaller): Use
4676 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4677 to handle remote signal callbacks.
4678 (dbus_g_proxy_new_from_proxy): New function; creates a new
4679 DBusGProxy by copying an existing one.
4680 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4681 (dbus_g_proxy_get_path): New functions.
4682 (dbus_g_proxy_marshal_args_to_message): New function;
4683 factored out of existing code.
4684 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4685 from a varargs array.
4686 (dbus_g_proxy_begin_call_internal): New function.
4687 (dbus_g_proxy_end_call_internal): New function.
4688 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4689 as arguments; simply invoke dbus_g_proxy_begin_call_internal
4690 after collecting args into value array.
4691 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4692 invoke dbus_g_proxy_end_call_internal.
4693 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4695 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4697 (array_free_all): New function.
4698 (dbus_g_proxy_add_signal): Take GTypes.
4700 * glib/dbus-gobject.h:
4701 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4702 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4705 * glib/dbus-gobject.c: Add a global marshal_table hash which
4706 stores mappings from type signatures to marshallers. Change lots
4707 of invocations of dbus_gtype_to_dbus_type to
4708 dbus_gtype_to_signature.
4709 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4710 (introspect_signals): Fix test for query.return_type.
4711 (set_object_property): Update invocation of dbus_gvalue_demarshal.
4712 (invoke_object_method): Many changes. Handle asynchronous
4713 invocations. Convert arguments with
4714 dbus_gvalue_demarshal_message. Handle errors. Use
4715 DBusSignatureIter instead of strlen on args. Handle all arguments
4716 generically. Special-case variants.
4717 (dbus_g_method_return, dbus_g_method_return_error): New function.
4718 (DBusGSignalClosure): New structure, closes over signal
4720 (dbus_g_signal_closure_new): New function.
4721 (dbus_g_signal_closure_finalize): New function.
4722 (signal_emitter_marshaller): New function; is special marshaller
4723 which emits signals on bus.
4724 (export_signals): New function; introspects object signals and
4726 (dbus_g_object_type_install_info): Take GType instead of
4728 (dbus_g_connection_register_g_object): Invoke export_signals.
4729 (dbus_g_connection_lookup_g_object): New function.
4730 (DBusGFuncSignature) New structure; used for mapping type
4731 signatures to marshallers.
4732 (funcsig_hash): New function; hashes DBusGFuncSignature.
4733 (funcsig_equal): New function; compares DBusGFuncSignature.
4734 (_dbus_gobject_lookup_marshaller): New function.
4735 (dbus_g_object_register_marshaller): New function; used to
4736 register a marshaller at runtime for a particular signature.
4738 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4740 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4741 which notes a server method implementation should be
4744 * glib/dbus-binding-tool-glib.c
4745 (dbus_binding_tool_output_glib_server): Call
4746 dbus_g_value_types_init.
4747 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
4749 (dbus_g_type_get_lookup_function): Turn GType into an invocation
4750 of a lookup function.
4751 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4752 (write_untyped_out_args): New method; write output arguments.
4753 (write_formal_declarations_for_direction): Function for
4755 (write_formal_parameters_for_direction): Function for
4756 writing implementations.
4757 (write_typed_args_for_direction): Function for writing
4758 arguments prefixed with GTypes.
4759 (write_async_method_client): Write out async version
4762 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4763 (dbus_g_type_get_marshal_name): Move mapping from GType
4764 to marshal name into here.
4765 (dbus_g_type_get_c_name): Move into here.
4766 (compute_marshaller): Convert signature to type with
4767 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4768 (compute_marshaller_name): Ditto.
4769 (compute_marshaller): Handle async signal annotations.
4770 (gather_marshallers): Return if we don't have a known
4772 (generate_glue): Collect introspection blob here, and
4773 write all of the blob at the end. This allows an object
4774 with multiple interfaces to work.
4775 Mark async methods in introspection blob.
4777 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4778 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4779 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4781 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4782 avoids people accidentally using DBUS_TYPE_* which should
4783 not be necessary anymore.
4784 Do include dbus-gtype-specialized.h, which are utilities
4785 for GLib container types.
4786 Add various #defines for types such as
4787 DBUS_TYPE_G_BOOLEAN_ARRAY.
4788 (DBusGValueIterator, DBusGValue): Define, not fully used
4790 (dbus_g_value_get_g_type): Type for recursive value.
4791 (dbus_g_value_open, dbus_g_value_iterator_get_value)
4792 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4793 (dbus_g_value_free): Prototypes.
4794 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4795 (dbus_g_proxy_set_interface): Prototype.
4796 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4797 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4799 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4801 (DBusGAsyncData, DBusGMethodInvocation): Structures for
4802 doing async invocations.
4803 (dbus_g_method_return, dbus_g_method_return_error):
4805 * doc/dbus-tutorial.xml: Update GLib section.
4807 * tools/dbus-viewer.c (load_child_nodes): Update
4808 for new invocation type of dbus_g_proxy_end_call.
4809 (load_from_service_thread_func): Ditto.
4811 * tools/print-introspect.c (main): Ditto.
4813 * tools/dbus-names-model.c (have_names_notify)
4814 (names_model_reload, names_model_set_connection)
4817 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4818 needed since Python bindings use GLib bindings.
4820 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4821 Add --prefix argument.
4823 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
4824 unneeded --ignore-unsupported arg.
4826 * test/glib/test-service-glib.c:
4827 * test/glib/test-service-glib.xml:
4828 * test/glib/test-dbus-glib.c: Add many more tests.
4830 2005-06-06 David Zeuthen <davidz@redhat.com>
4832 * doc/TODO: Add item about need to remove deprecated functions.
4834 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4836 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4837 to repair the ABI which was broken with the last commit.
4839 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
4841 * dbus/dbus-connection.c, dbus/dbus-connection.h
4842 (dbus_connection_disconnect): renamed to dbus_connection_close
4843 for API symmetry with dbus_connection_open
4844 (_dbus_connection_open_internal):
4845 s/dbus_connection_disconnect/dbus_connection_close
4847 * dbus/dbus-bus.c (dbus_bus_get):
4848 s/dbus_connection_disconnect/dbus_connection_close
4850 * bus/connection.c (bus_connections_unref,
4851 bus_connections_setup_connection, bus_connections_expire_incomplete):
4852 s/dbus_connection_disconnect/dbus_connection_close
4854 * bus/dispatch.c (bus_dispatch, kill_client_connection,
4855 kill_client_connection_unchecked, check_hello_connection):
4856 s/dbus_connection_disconnect/dbus_connection_close
4858 * bus/bus.c (new_connection_callback):
4859 s/dbus_connection_disconnect/dbus_connection_close
4861 * tools/dbus-send.c (main):
4862 s/dbus_connection_disconnect/dbus_connection_close
4864 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4865 s/dbus_connection_disconnect/dbus_connection_close
4867 * test/test-service.c (path_message_func, filter_func):
4868 s/dbus_connection_disconnect/dbus_connection_close
4870 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
4872 2005-05-25 Colin Walters <walters@verbum.org>
4874 * dbus/dbus-protocol.h: Move various bus service #defines such
4875 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4877 * dbus/dbus-shared.h: Various defines moved here.
4878 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4880 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
4882 * python/__init__.py: Python bindings deserve a minor version
4883 update. Upped to (0, 40, 2)
4885 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
4887 * python/decorators.py: add explicitly_pass_message decorator
4888 for passing in the dbus message as keyword for edge case signal
4891 * python/matchrules.py (SignalMatchRule.__repr__): fix output
4892 to conform with what dbus expects for match rules
4893 (SignalMatchRule.execute): add the dbus message as a keyword
4894 if the signal handler has requested it
4896 * python/examples/example/signal-recipient.py: added some more
4897 examples on how to hook up to signals
4899 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
4901 * python/decorators.py: import dbus_bindings
4903 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
4904 SignalMatchNode): new classes that implement wildcard signal
4905 callback matching using a tree lookup. Heavily modified from a
4906 patch sent by Celso Pinto (fd.o bug #3241)
4908 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4909 use new match classes to handle signals.
4911 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
4913 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4915 2005-05-18 Havoc Pennington <hp@redhat.com>
4917 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4918 gettext. Not really worth requiring yet perhaps, but any
4919 production quality 1.0 would require it so we should go ahead and
4920 get things set up. We do have a couple token calls to
4921 bindtextdomain in the code already.
4923 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
4925 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4926 when using recursive g_main_loops
4928 * python/_dbus.py (class Bus): add the ProxyObjectClass
4929 alias for ProxyObject to make it easier for the Twisted
4930 networking framework to integrate dbus.
4932 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4933 alias for ProxyMethod to make it easier for the Twisted
4934 networking framework to integrate dbus.
4936 2005-05-11 Ross Burton <ross@openedhand.com>
4938 * glib/dbus-glib-tool.c: Add --prefix argument.
4939 * glib/dbus-binding-tool-glib.h: Add prefix argument.
4940 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4941 Add prefix argument.
4942 (generate_glue): Pass prefix argument down.
4943 (dbus_binding_tool_output_glib_server): Pass prefix to
4946 2005-05-11 Colin Walters <walters@verbum.org>
4948 * tools/dbus-send.c (append_array): New function.
4949 (append_arg): Broken out from main.
4950 (main): Add cheesy hack to send arrays and variants.
4952 * tools/dbus-print-message.c (print_iter): Broken out
4955 2005-05-11 Colin Walters <walters@verbum.org>
4957 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4958 New function, returns signature string for signature iter.
4959 * dbus/dbus-signature.h: Prototype it.
4960 * dbus/dbus-message.c (dbus_message_iter_get_signature):
4961 New function, returns signature string for message iter.
4962 (dbus_message_iter_get_array_len): New function, returns
4964 (dbus_message_iter_get_fixed_array): Fix assertion; this
4965 function should be used when the iter is pointing to the
4966 contents of an array
4967 * dbus/dbus-message.h: Prototypes.
4968 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4969 New function; returns length of an array.
4970 * dbus/dbus-marshal-recursive.h: Prototype it.
4972 2005-05-11 Colin Walters <walters@verbum.org>
4974 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4977 2005-05-08 Havoc Pennington <hp@redhat.com>
4979 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4980 daemon's pid, not the parent's pid, to the file descriptor.
4981 Reported by Taj Morton.
4983 2005-05-05 Havoc Pennington <hp@redhat.com>
4985 * configure.in (LT_*): add notes on how the libtool versioning
4986 works to save thinking. Increment soname to indicate protocol
4987 breakage (though really the library interface hasn't changed I
4990 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4991 verify the GUID received from server matches what we were
4992 expecting, if we had an expectation
4994 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4995 (_dbus_auth_get_guid_from_server): new function
4996 (send_begin): parse the OK args
4998 * doc/dbus-specification.xml: add GUID to the auth protocol
5000 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
5002 * Fix my name in previous changelog ;)
5004 * python/proxies.py (ProxyObject.__getattr__): add further patch
5005 from Anthony Baxter to throw an AttributeError when python
5006 __special__ functions are called instead of marshling them over
5007 the bus (Bug#1685 comment 3).
5009 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
5011 * python/Makefile.am: changed to use pyexecdir for the binding
5012 shared libraries (Bug#2494)
5014 * python/exceptions.py: bring exceptions over from the bindings
5015 so they can be used in applications (Bug#2036)
5016 Make all exceptions derive from DBusException
5018 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5019 of classes so that print obj doesn't throw an exception (Bug #1685)
5021 2005-05-03 Ross Burton <ross@openedhand.com>
5023 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5024 Return if we get an error during registration. Set up a
5025 weak reference on object to unregister if object is destroyed.
5026 (unregister_gobject): New function.
5028 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
5030 * python/dbus_bindings.pyx.in:
5031 - added new type classes for hinting to the marashaler what type
5032 to send over the wire
5033 - added int16 and uint16 marshalers
5034 - Fixed a bug in the type constants that caused int32 to go out
5035 as uint16 over the wire
5036 * python/dbus.py: split up into different files and renamed _dbus.py
5037 * python/__init__.py, python/_util.py, python/decorators.py,
5038 python/exceptions.py, python/proxies.py, python/services.py,
5039 python/types.py: new files split off from dbus.py
5040 * python/Makefile.am: Add new files, remove dbus.py and
5041 install all python files to <python module dir>/dbus
5042 * python/examples/*: Added #!/usr/bin/env python to the top of
5043 every example. Patch provided by Tatavarty Kalyan
5045 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5047 * NEWS: Update to 0.33
5049 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5051 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5052 method for doing async calls
5053 (_pending_call_notification): New C function for handling pendning call
5055 (set_notify): New method for setting pending call notification
5057 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5058 Async capabilities added to remote method calls
5059 (Sender): class removed
5060 (RemoteService): class removed
5061 (ObjectTree): class removed for now
5062 (RemoteObject): Renamed to ProxyObject
5063 (RemoteMethod): Renamed to ProxyMethod
5064 (method): Decorator added for decorating python methods as dbus methods
5065 (signal): Decorator added for decorating python methods as signal emitters
5066 (ObjectType): Metaclass added for generating introspection data and the
5067 method callback vtable
5068 (Interface): Wrapper class added to wrap objects in a dbus interface
5069 (Object): Uses ObjectType as its metaclass and exports Introspect
5070 of the org.freedesktop.DBus.Introspectable interface
5071 (ValidationException, UnknownMethodException): new exceptions
5073 * python/examples/*: Modified to fit with the new bindings
5075 2005-04-23 Havoc Pennington <hp@redhat.com>
5077 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5078 reported by Tony Houghton
5080 * test/test-service.c (main): test
5081 dbus_connection_get_object_path_data()
5083 * dbus/dbus-object-tree.c (find_handler): be sure we always init
5085 (_dbus_object_tree_get_user_data_unlocked): new function used by
5086 dbus_connection_get_object_path_data()
5087 (do_register): add assertion test for get_user_data_unlocked
5088 (object_tree_test_iteration): more tests
5090 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5091 new function from Dan Reed to let you get the user data from
5092 dbus_connection_register_object_path()
5094 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
5096 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5097 in numerous places that did not account for the NULL terminator
5098 (signature_from_seed): changed the manual string copy loop to
5099 just use strcpy instead
5100 make check should now pass
5102 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
5104 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5105 so that it allows messages that are not signals to pass in
5106 NULL as the interface.
5108 2005-04-18 David Zeuthen <davidz@redhat.com>
5110 * glib/dbus-gmain.c (io_handler_destroy_source):
5111 (timeout_handler_destroy_source, connection_setup_free):
5112 Also unref the source to avoid memory leaks.
5114 2005-04-13 David Zeuthen <davidz@redhat.com>
5116 * bus/config-parser.c (bus_config_parser_new): Bump this to a
5117 more reasonable, yet still totally arbitrary, value :-).
5119 2005-04-13 David Zeuthen <davidz@redhat.com>
5121 * doc/TODO: Added an "important for 1.0" item about selinux
5124 2005-04-13 David Zeuthen <davidz@redhat.com>
5126 * bus/selinux.c: Add c-file-style to top of file
5127 (log_audit_callback): Don't free the data here anymore
5128 (bus_selinux_check): Don't take spid and tpid since appending
5129 that to auxdata may OOM.
5130 (bus_selinux_allows_acquire_service): Handle OOM and signal back
5131 to the caller if we are OOM by taking an error object.
5132 (bus_selinux_allows_send): -do-
5134 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5135 and bus_selinux_allows_send
5137 * bus/bus.c (bus_context_check_security_policy): Pass error and
5138 pass on OOM thrown by bus_selinux_allows_send()
5140 * bus/services.c (bus_registry_acquire_service): Pass error and
5141 pass on OOM thrown by bus_selinux_allows_acquire_service()
5143 2005-04-13 Havoc Pennington <hp@redhat.com>
5145 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5146 message at a time to avoid monopolizing the main loop, bug
5147 #2953 from Benjamin Otte
5149 2005-04-09 Havoc Pennington <hp@redhat.com>
5151 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5152 possible overlap, fix from Daniel Reed
5153 (fixup_alignment): fix signedness warnings
5154 (_dbus_string_append_unichar): ditto
5156 2005-04-09 Havoc Pennington <hp@redhat.com>
5158 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5160 * glib/dbus-glib-tool.c (main): fix warning
5162 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5164 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5165 add a new function that can be used in simple applications that
5166 don't have a main loop and are willing to block
5168 2005-04-05 David Zeuthen <davidz@redhat.com>
5170 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5172 * glib/dbus-gmain.c:
5173 (io_handler_destroy_source): Remove from list of IO handlers
5174 of the ConnectionSetup object
5175 (timeout_handler_destroy_source): -do- for timeout handlers
5176 (io_handler_source_finalized): Don't remove from list since
5177 we now do that in io_handler_destroy_source(). Renamed from
5178 io_handler_source_destroyed
5179 (timeout_handler_source_destroyed): -do- for timeout handlers
5180 (connection_setup_free): It is now safe to iterate over all
5181 IO and timeout handlers as the _destroy_source removes them
5182 from the list synchronously
5184 2005-03-30 Havoc Pennington <hp@redhat.com>
5186 * configure.in: change check to gtk 2.4
5188 * tools/dbus-viewer.c (name_combo_changed_callback): remove
5189 gtk_combo_box_get_active_text() usage to decrement GTK requirement
5192 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5196 * HACKING: Fixed realease instructions. configure.in should be updated to
5197 the next release by the person who made the last release.
5199 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5201 * python/lvalue_cast_post_process.py - removed. Patch has been
5202 submitted to Pyrex maintainers that fixes gcc4.0 errors
5204 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5206 2005-03-24 Daniel Reed <n@ml.org>
5208 * tools/Makefile.am: Make print-introspect and
5209 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5211 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
5213 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5215 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
5216 had in Red Hat packages for a while but for some reason never
5218 (_dbus_is_a_number): New checks if a string
5219 can be converted to a number and does the conversion if it can
5220 (_dbus_user_database_lookup): Add check to see if the given username
5221 is a udi. This allows udi's to be used instead of usernames in the
5223 (_dbus_user_database_lookup_group): Add check to see if the given groupname
5224 is a gdi. This allows gdi's to be used instead of groupnames in the
5227 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
5229 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5230 code so that it compiles with gcc4.0
5232 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5233 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5234 results back to dbus_binding.c
5236 2005-03-20 Colin Walters <walters@verbum.org>
5238 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5240 * configure.in: Require GTK+ 2.6.
5242 2005-03-20 Colin Walters <walters@verbum.org>
5244 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5246 2005-03-17 Tom Parker <palfrey@tevp.net>
5248 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5249 print DBUS_UID_UNSET; instead print passed username. Also
5250 be sure to actually use gid looked up in cache.
5252 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5253 for DBUS_GID_UNSET and groupname.
5255 2005-03-17 Colin Walters <walters@verbum.org>
5257 * bus/print-introspect.c: Move to tools/.
5258 * bus/run-with-tmp-session-bus.sh: Ditto.
5260 * glib/Makefile.am (dbus-glib-bindings.h): Move
5261 generation to tools/Makefile.am.
5263 * test/glib/run-test.sh: Update to handle move
5264 of run-with-tmp-session-bus.sh.
5266 * test/glib/test-service-glib.c: Update to handle
5267 move of dbus-glib-bindings.h.
5269 * tools/print-introspect.c: Moved here
5270 from bus/, and ported to GLib bindings.
5272 * tools/run-with-tmp-session-bus.sh: Moved here
5275 * tools/Makefile.am: Generate dbus-glib-bindings.h
5276 and dbus-bus-introspect.xml here.
5278 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5281 2005-03-17 Colin Walters <walters@verbum.org>
5283 * bus/driver.c (write_args_for_direction): Use
5284 _dbus_string_get_const_data to retrieve string;
5285 _dbus_string_get_const_data_len doesn't actually return
5286 a NULL-terminated substring.
5288 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5289 (main): Change to use org_freedesktop_DBus_request_name
5290 instead of using g_proxy_begin_call/end_call.
5292 2005-03-15 Joe Shaw <joeshaw@novell.com>
5294 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5295 generating the finalizer. Fixes from Ben Maurer.
5297 2005-03-12 Joe Shaw <joeshaw@novell.com>
5299 * mono/BusDriver.cs: Update method names: ListServices
5300 becomes ListNames; GetOwner becomes GetNameOwner.
5302 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5303 onto the eval stack when removing the delegate.
5305 2005-03-12 Joe Shaw <joeshaw@novell.com>
5307 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5308 LT_CURRENT. Set it to the autoconf variable.
5310 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5311 classes that disconnects the signal handler delegate from the
5312 service object. Fixes a big leak of proxy objects on the
5313 client side of things. Patch from Ben Maurer
5314 <bmaurer@ximian.com>
5316 2005-03-12 Colin Walters <walters@verbum.org>
5318 * bus/driver.c (write_args_for_direction): New function,
5319 parses a type signature into arguments and outputs to
5321 (bus_driver_handle_introspect): Use it instead of
5322 hardcoding XML for certain signatures.
5324 * bus/Makefile.am (dbus-bus-introspect.xml): Add
5325 dependency on dbus-daemon.
5327 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5328 argument, pass it to dbus_binding_tool_output_glib_client.
5330 * glib/dbus-binding-tool-glib.c
5331 (generate_client_glue): Protect against multiple inclusion.
5332 (dbus_binding_tool_output_glib_client): Add
5333 G_BEGIN_DECLS/G_END_DECLS.
5335 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5336 Change to just take iface prefix directly.
5337 (write_formal_parameters): Clarify error message.
5338 (check_supported_parameters): New function; checks to see type
5339 signatures of method parameters are supported.
5340 (generate_client_glue): Handle ignore_unsupported flag.
5341 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5344 * glib/Makefile.am (dbus-glib-bindings.h): Pass
5345 --ignore-unsupported by default until glib bindings
5348 2005-03-11 Colin Walters <walters@verbum.org>
5350 * glib/Makefile.am: Generate dbus-glib-bindings.h and
5353 * bus/print-introspect.c: New file; prints introspection
5354 data for a given name and object path.
5356 * bus/run-with-tmp-session-bus.sh: New file, refactored
5357 from test/glib/run-test.sh. Creates a temporary session
5358 bus and runs another program.
5360 * test/glib/run-test.sh: Refactor to invoke
5361 run-with-tmp-session-bus.sh.
5363 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5364 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
5365 macros instead of hardcoding.
5367 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5369 2005-03-11 Joe Shaw <joeshaw@novell.com>
5371 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5372 this unref; it doesn't match up evenly in some codepaths.
5373 (_dbus_connection_block_pending_call): Unref at every exitpoint;
5374 this evenly matches with the ref near the top of this function.
5376 2005-03-09 Joe Shaw <joeshaw@novell.com>
5378 * dbus/dbus-object-tree.c
5379 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5380 and we try to unregister a path that's not registered, still go
5381 through the process of unlocking and don't just return.
5383 2005-03-09 Colin Walters <walters@verbum.org>
5385 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5386 to this are generated for client-side wrappers. Invokes a
5387 D-BUS method and returns reply values.
5389 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5390 function; writes signature string for argument direction.
5391 (write_args_for_direction): Change to pass input values directly
5392 instead of via address, and fix indentation.
5393 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
5394 make generated wrappers inlineable.
5396 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5397 note about using dbus_type_is_fixed.
5399 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5400 dbus/dbus-signature.c as dbus_type_is_fixed.
5402 All callers updated.
5404 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5405 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5407 * dbus/dbus-signature.h: Prototype.
5409 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5412 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5413 appropriate instead of just freeing it.
5414 (main): Free returned strings using g_free.
5416 * test/glib/Makefile.am (test-service-glib-glue.h)
5417 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5419 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5420 simply maps a simple D-BUS type to GType.
5421 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5423 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5424 initialize the value with it.
5425 (dbus_gvalue_binding_type_from_type): Unused, delete.
5426 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5427 various types instead of unmarshalling to value data directly.
5428 Remove can_convert boolean.
5429 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5430 returning directly instead of using can_convert boolean.
5431 (dbus_gvalue_store): New function; not related to D-BUS per-se.
5432 Stores a GValue in a pointer to a value of its corresponding C
5435 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5436 add dbus_gvalue_store.
5438 2005-03-08 Joe Shaw <joeshaw@novell.com>
5440 Fix a bunch of lifecycle and memory management problems
5441 in the mono bindings.
5443 * mono/Arguments.cs (Arguments): Implement IDisposable
5445 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
5446 strictly a static class.
5448 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5449 delegates into this file.
5450 (Connection): Implement IDisposable.
5451 (Dispose): Disconnect the connection and set the raw connection
5452 pointer to IntPtr.Zero.
5453 (~Connection): Call Dispose().
5454 (RegisterObjectPath): Added. Manages the registration of object
5455 paths so we can cleanly disconnect them at dispose/finalize time.
5456 (UnregisterObjectPath): Ditto.
5457 (set_RawConnection): Unregister all of the object paths when
5458 changing the underlying DBusConnection. Add them back onto the
5459 new connection, if any.
5461 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5462 more unmanaged resources anymore, so it's not necessary. Move all
5463 the DBusObjectPathVTable stuff out of here.
5464 (Handler): Save references to our delegates so that they don't get
5465 finalized. Call Connection.RegisterObjectPath() instead of
5466 dbus_connection_register_object_path() directly.
5467 (Message_Called): Dispose the message after we're finished with
5470 * mono/Message.cs (Message): Implement IDisposable.
5471 (Dispose): Dispose the Arguments, and set the RawMessage to
5473 (SendWithReplyAndBlock): We own the ref to the reply that comes
5474 back from dbus_connection_send_with_reply_and_block() so add a
5475 comment about that and unref it after we've constructed a managed
5476 MethodReturn class around it. Fixes a big, big leak.
5478 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5480 (BuildSignalHandler): After we've sent the Signal message, dispose
5482 (BuildMethod): Dispose of the method call and reply messages after
5483 we've sent the message and extracted the data we want from the
5486 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5488 (Service_FilterCalled): Dispose of the message after we're
5491 2005-03-08 Joe Shaw <joeshaw@novell.com>
5493 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5494 After we attach our pending call to the connection, unref
5497 * mono/Connection.cs (set_RawConnection): Disconnect our
5498 filter and match callbacks from the old connection and
5499 reconnect them to the new connection, if any.
5501 * mono/DBusType/Array.cs: "Code" is a static member, so
5502 don't use "this" to refer to it. Fix for stricter checking
5505 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5506 object path that we pass into unmanaged code.
5508 * mono/DBusType/String.cs (Append): Don't leak the string
5509 that we pass into unmanged code.
5511 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
5512 * NEWS: Update for 0.31
5514 * configure.in: Release 0.31
5515 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5517 * qt/Makefile.am: fixed build
5519 * dbus/Makefile.am: soname bump for libdbus
5521 * glib/Makefile.am: soname bump for libdbus-glib
5523 2005-03-05 Havoc Pennington <hp@redhat.com>
5525 * dbus/dbus-sysdeps.c:
5526 (pseudorandom_generate_random_bytes_buffer): fix to have no return
5528 (_dbus_generate_random_bytes_buffer): fix return value
5530 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5531 checks actually work, from Tom Parker <fdo@tevp.net>
5533 2005-03-01 Colin Walters <walters@verbum.org>
5535 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5536 functions copied from dbus-glib-tool.c.
5537 (main): Convert lots of error code to use them.
5538 Also add some testing for introspection bits.
5540 2005-03-01 Colin Walters <walters@verbum.org>
5542 * doc/TODO: Remove introspection signature TODO.
5544 2005-02-27 Colin Walters <walters@verbum.org>
5546 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5547 Change return value to const char * instead of int so we can do
5549 (struct PropertyInfo, struct ArgInfo): Store char *.
5550 (property_info_new, arg_info_new): Update parameters, strdup.
5551 (property_info_unref, arg_info_unref): Free.
5553 * glib/dbus-gidl.h: Update prototypes.
5555 * glib/dbus-gparser.c (basic_type_from_string): Delete.
5556 (validate_signature): New function, just validates signature and
5558 (parse_property, parse_arg): Invoke validate_signature. Store
5559 signature instead of just type code.
5561 * glib/dbus-gvalue.c (base_type_from_signature): New utility
5562 function to return a primary type for a signature, dropping
5563 information about types in container types.
5564 (dbus_gvalue_genmarshal_name_from_type)
5565 (dbus_gvalue_binding_type_from_type)
5566 (dbus_gvalue_ctype_from_type): Update to take full signature
5567 instead of type code.
5568 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5570 * glib/dbus-gvalue.h: Update prototypes for above.
5572 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5573 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5574 (introspect_properties, introspect_signals, write_interface):
5575 Update to handle signatures, and remove usage of
5576 _dbus_gutils_type_to_string.
5577 (handle_introspect): Print out type codes instead of e.g. "string"
5578 in hardcoded introspection XML; also use x_AS_STRING constants
5579 instead of hardcoding in string.
5581 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5582 to string. Remove usage of _dbus_gutils_type_to_string.
5584 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5586 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5589 * glib/dbus-binding-tool-glib.c (compute_marshaller)
5590 (compute_marshaller_name, generate_glue): Handle signature change
5592 (write_formal_parameters, write_args_for_direction): Ditto, and
5595 * tools/dbus-tree-view.c (type_to_string): Delete.
5596 (info_set_func_text): Update to print full signatures.
5598 * test/glib/test-service-glib.xml: Change types to new
5599 introspection format.
5601 2005-02-26 Havoc Pennington <hp@redhat.com>
5603 * doc/TODO: remove the "guid" item
5605 * test/glib/test-profile.c (no_bus_thread_func): use open_private
5606 (with_bus_thread_func): use open_private
5608 * dbus/dbus-connection.c (dbus_connection_open_private): new
5609 function that works like the old dbus_connection_open()
5610 (dbus_connection_open): now returns an existing connection if
5613 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5614 through the GUID to the transport
5616 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5617 GUID in hex-encoded form.
5619 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5620 pass GUID argument in to the transport
5622 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5625 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5627 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5629 2005-02-25 Havoc Pennington <hp@redhat.com>
5631 * doc/dbus-specification.xml: document the GUID thing
5633 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5634 globally unique ID for the server, and put a "guid=hexencoded"
5635 field in the address
5637 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5639 * dbus/dbus-message.c: ditto
5641 * dbus/dbus-dataslot.c: ditto
5643 * dbus/dbus-list.c: ditto
5645 * dbus/dbus-internals.h: wait, just include
5646 dbus-threads-internal.h here
5648 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5651 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5653 2005-02-24 Colin Walters <walters@verbum.org>
5655 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5657 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
5659 * glib/Makefile.am: added dbus-gobject.h to sources list
5660 so distcheck doesn't fail
5662 2005-02-24 Havoc Pennington <hp@redhat.com>
5664 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5665 you must disconnect before unref, since locking and other things
5666 are screwed up otherwise. Fix assorted other locking stuff.
5668 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5671 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5672 into a private header and don't export from the library
5674 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5676 2005-02-24 Colin Walters <walters@verbum.org>
5678 * dbus/dbus-signature.c: New file; implements various functions
5679 related to type signatures. Includes an interator for parsing,
5680 validation functions.
5681 (dbus_type_is_basic): Moved here from
5682 dbus-marshal-basic.c:_dbus_type_is_basic.
5683 (dbus_type_is_container): Moved here from
5684 dbus-marshal-basic.c:_dbus_type_is_container.
5686 All callers of _dbus_type_is_container and _dbus_type_is_basic
5687 updated, and include dbus-signature.h.
5689 * dbus/dbus-signature.h: New file; prototypes for the above.
5691 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5694 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5695 function factored out of _dbus_first_type_in_signature.
5696 (_dbus_first_type_in_signature_c_str): New function; returns first
5697 type code for a type signature character.
5699 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5700 handle function moves.
5702 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5704 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5705 function; skips to next complete type in type signature.
5706 Implemented using previous skip_one_complete_type. Now
5707 skip_one_complete_type just delegates to
5708 _dbus_type_signature_next.
5710 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5712 (_dbus_type_is_container): Ditto.
5714 * doc/dbus-specification.xml: Update introspection sample to
5715 use real type signatures.
5717 * dbus/dbus-test.h: Prototype signature test.
5719 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5722 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5724 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
5726 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5727 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5729 2005-02-21 Colin Walters <walters@verbum.org>
5731 * dbus/dbus-test-main.c (main): Take optional specific test
5734 * dbus/dbus-test.c (run_test): New function, runs a test function
5735 with no data directory.
5736 (run_data_test): Like above, but takes data directory.
5737 (dbus_internal_do_not_use_run_tests): Take
5738 specific test argument. Replace lots of cut n' paste code
5739 with run_test and run_data_test.
5741 * dbus/dbus-test.h: Update prototype for
5742 dbus_internal_do_not_use_run_tests.
5744 2005-02-20 Havoc Pennington <hp@redhat.com>
5746 Fix bugs reported by Daniel P. Berrange
5748 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5749 (protected_change_watch): new function
5750 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5751 (_dbus_server_add_watch): change to work like the
5752 dbus-connection.c equivalents; like those, probably kind of
5753 busted, but should at least mostly work for now
5754 (dbus_server_disconnect): drop the lock if we were already
5755 disconnected, patch from Daniel P. Berrange
5757 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
5758 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5761 * doc/TODO: todo about unscrewing this mess
5763 2005-02-19 Colin Walters <walters@verbum.org>
5765 * glib/dbus-binding-tool-glib.c
5766 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5768 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5769 as errno.h and sys/stat.h.
5770 (lose): New function, prints error with
5772 (lose_gerror): Similar, but takes GError for message.
5773 (main): Add --output argument to specify output file to write to,
5774 instead of always printing to stdout. In this mode, determine
5775 timestamps on source files to see whether any are newer than the
5776 target file. If not, exit. Also convert a number of error
5777 messages to use lose (since it's shorter), and switch to using
5778 g_io_channel_shutdown.
5780 2005-02-19 Havoc Pennington <hp@redhat.com>
5782 * glib/dbus-gobject.c
5783 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5785 * glib/dbus-glib.c: fix doxygen warnings
5787 * glib/dbus-gparser.c (parse_annotation): error if an annotation
5788 is found on an <arg>
5790 2005-02-17 Colin Walters <walters@verbum.org>
5792 * glib/dbus-gobject.h: Don't export
5793 _dbus_glib_marshal_dbus_message_to_gvalue_array.
5795 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5796 (invoke_object_method): Handle it.
5798 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5801 2005-02-17 Colin Walters <walters@verbum.org>
5803 * bus/.cvsignore, doc/.cvsignore
5804 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5807 2005-02-17 Colin Walters <walters@verbum.org>
5809 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5810 Rename to DBUS_SERVICE_DBUS.
5811 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5812 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5813 Change the value from "org.freedesktop.Local"
5814 to "org.freedesktop.DBus.Local".
5815 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5816 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5817 DBUS_INTERFACE_INTROSPECTABLE.
5818 Change the value from "org.freedesktop.Introspectable"
5819 to "org.freedesktop.DBus.Introspectable".
5820 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5821 DBUS_INTERFACE_PROPERTIES.
5822 Change the value from "org.freedesktop.Properties"
5823 to "org.freedesktop.DBus.Properties".
5824 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5825 DBUS_INTERFACE_PEER.
5826 Change the value from "org.freedesktop.Peer"
5827 to "org.freedesktop.DBus.Peer".
5828 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
5829 DBUS_INTERFACE_LOCAL.
5830 Change the value from "org.freedesktop.Local"
5831 to "org.freedesktop.DBus.Local".
5833 All other users of those constants have been changed.
5835 * bus/driver.c (bus_driver_handle_introspect): Use constants.
5837 * glib/dbus-gobject.c (handle_introspect): Use constants.
5839 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5841 2005-02-17 Colin Walters <walters@verbum.org>
5843 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5844 (parse_node, parse_interface, parse_method, parse_signal)
5845 (parse_property, parse_annotation): Lose if we're currently in an
5847 (parse_annotation): New function.
5848 (parser_start_element, parser_end_element): Handle annotation.
5849 (parse_method, parse_interface): Remove support for c_name attribute,
5850 switch to annotations.
5852 * glib/dbus-gidl.h (interface_info_get_binding_names)
5853 (method_info_get_binding_names)
5854 (interface_info_get_binding_name, method_info_get_binding_name)
5855 (interface_info_set_binding_name, method_info_set_binding_name):
5857 (interface_info_get_annotations, method_info_get_annotations)
5858 (interface_info_get_annotation, method_info_get_annotation)
5859 (interface_info_add_annotation, method_info_add_annotation):
5862 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5864 (struct MethodInfo): Ditto.
5865 Straightfoward conversion of binding methods into annotation methods
5868 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5870 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5872 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5873 Use new annotation API.
5875 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
5878 * doc/dbus-specification.xml: Discuss introspection annotations,
5879 include list of well-known annotations.
5881 * test/glib/test-service-glib.xml: Make validate against new DTD.
5883 2005-02-17 Colin Walters <walters@verbum.org>
5885 This patch is based on initial work from
5886 Paul Kuliniewicz <kuliniew@purdue.edu>.
5888 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5889 initialization of GValue from dbus type to here.
5890 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5891 for the "glib-genmarshal" program from a DBus type.
5892 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5893 into the C name for it we use in the glib bindings.
5894 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5895 glib C type (not GValue).
5896 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5898 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5899 from dbus-gobject.c.
5901 * glib/dbus-gutils.h: Prototype it.
5903 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5904 (marshal_dbus_message_to_g_marshaller): Use new shared function
5905 dbus_glib_marshal_dbus_message_to_gvalue_array.
5907 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5908 Will be changed once we have annotations.
5910 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5911 GStaticRWLock. Callers updated.
5912 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
5913 (string_table_next): New function for iterating over zero-terminated
5915 (string_table_lookup): New function; retrieves specific entry in
5917 (get_method_data): New function; look up method data in object data chunk.
5918 (object_error_domain_prefix_from_object_info)
5919 (object_error_code_from_object_info): New functions, but not implemented yet.
5920 (method_interface_from_object_info): New function; retrieve interface name.
5921 (method_name_from_object_info): New function; retrieve method name.
5922 (method_arg_info_from_object_info): New function; retrieve argument data.
5923 (arg_iterate): New function; iterates over serialized argument data.
5924 (method_dir_signature_from_object_info): New function; returns a
5925 GString holding type signature for arguments for just one
5926 direction (input or output).
5927 (method_input_signature_from_object_info)
5928 (method_output_signature_from_object_info): New functions.
5929 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5930 converts dbus message arguments into a GValue array. Used for both
5931 signal handling and method invocation.
5932 (struct DBusGlibWriteIterfaceData): New utility structure.
5933 (write_interface): New function; generate introspection XML for
5935 (introspect_interfaces): New function; gathers all interface->methods,
5936 generates introspection XML for them.
5937 (handle_introspect): Invoke introspect_interfaces.
5938 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5939 (lookup_object_and_method): New function; examines an incoming message
5940 and attempts to match it up (via interface, method name, and argument
5941 signature) with a known object and method.
5942 (gerror_domaincode_to_dbus_error_name): New function; converts a
5943 GError domain and code into a DBus error name. Needs GError data
5944 added to object introspection to work well.
5945 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5947 (invoke_object_method): New function to invoke an object method
5948 looked up via lookup_object_and_method. Parses the incoming
5949 message, turns it into a GValue array, then invokes the marshaller
5950 specified in the DBusGMethodInfo. Creates a new message with
5951 either return values or error message as appropriate.
5952 (gobject_message_function): Invoke lookup_object_and_method and
5953 invoke_object_method.
5955 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5956 (enum DBusBindingOutputMode): New enum for binding output modes.
5957 (pretty_print): Print binding names.
5958 (dbus_binding_tool_error_quark): GError bits.
5959 (version): Fix typo.
5960 (main): Create GIOChannel for output. Parse new --mode argument,
5961 possible values are "pretty-print", "glib-server", "glib-client".
5962 Use mode to invoke appropriate function.
5964 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5966 * glib/dbus-glib-tool.h: New header, just includes GError bits
5969 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5970 maps binding style to name.
5971 (struct MethodInfo): Ditto.
5972 (get_hash_keys, get_hash_key): Utility function, returns keys for
5974 (interface_info_new, method_info_new): Initialize bindings.
5975 (interface_info_unref, method_info_unref): Destroy bindings.
5976 (method_info_get_binding_names, method_info_get_binding_name)
5977 (interface_info_get_binding_names, interface_info_get_binding_name):
5978 Functions for retrieving binding names.
5979 (method_info_set_binding_name, interface_info_set_binding_name):
5980 Functions for setting binding names.
5982 * glib/dbus-binding-tool-glib.h: New file, has prototypes
5983 for glib binding generation.
5985 * glib/dbus-binding-tool-glib.c: New file, implements server-side
5986 and client-side glib glue generation.
5988 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5989 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5992 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5993 of using GClosureMarshal directly.
5994 (struct DBusGObjectInfo): Add n_infos member.
5996 * test/glib/test-service-glib.xml: New file; contains introspection data
5997 for MyTestObject used in test-service-glib.c.
5999 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6000 (my_object_do_nothing, my_object_increment, my_object_throw_error)
6001 (my_object_uppercase, my_object_many_args): New test methods.
6002 (main): Use dbus_g_object_class_install_info to include generated object
6005 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6006 as well as client-side bindings.
6008 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6009 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6010 using both the dbus_gproxy stuff directly as well as the generated bindings.
6012 2005-02-15 Havoc Pennington <hp@redhat.com>
6014 * dbus/dbus-connection.c (dbus_connection_dispatch): always
6015 complete a pending call, don't run filters first.
6017 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6018 dbus_pending_call_steal_reply
6020 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6021 _dbus_connection_block_pending_call
6022 (dbus_pending_call_get_reply): change to steal_reply and return a
6025 * dbus/dbus-connection.c
6026 (dbus_connection_send_with_reply_and_block): port to work in terms
6028 (_dbus_connection_block_pending_call): replace block_for_reply
6031 2005-02-14 Havoc Pennington <hp@redhat.com>
6033 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6034 properly handle looking up group information by name; fix
6037 2005-02-13 Havoc Pennington <hp@redhat.com>
6039 * dbus/dbus-connection.c (dbus_connection_return_message)
6040 (dbus_connection_borrow_message): hold dispatch lock while message
6042 (_dbus_connection_block_for_reply): hold dispatch lock while we
6043 block for the reply, so nobody steals our reply
6044 (dbus_connection_pop_message): hold the dispatch lock while we
6047 2005-02-13 Havoc Pennington <hp@redhat.com>
6049 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6050 (_dbus_connection_release_dispatch)
6051 (_dbus_connection_acquire_io_path)
6052 (_dbus_connection_release_io_path): make the mutex and condvar
6053 control access to the "acquired" flag. Drop the connection lock
6054 while waiting on the condvar. Hopefully these are baby steps in
6055 roughly the right direction.
6057 2005-02-13 Havoc Pennington <hp@redhat.com>
6059 * dbus/dbus-connection.c: use separate mutexes for the condition
6060 variables; this is some kind of baseline for sanity, but the
6061 condition variables still aren't used correctly afaict
6063 2005-02-13 Havoc Pennington <hp@redhat.com>
6065 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6068 * dbus/dbus-connection.c
6069 (_dbus_connection_detach_pending_call_unlocked): add this
6071 Initial semi-correct pass through to fix thread locking; there are
6072 still some issues with the condition variable paths I'm pretty
6075 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6078 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6079 rename to add _unlocked
6080 (struct DBusConnection): move "dispatch_acquired" and
6081 "io_path_acquired" to use only one bit each.
6082 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6083 (dbus_connection_set_watch_functions): hacky fix to reentrancy
6084 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
6085 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
6086 (_dbus_connection_remove_timeout)
6087 (_dbus_connection_toggle_timeout): drop lock when calling out to
6088 user functions; done in a hacky/bad way.
6089 (_dbus_connection_send_and_unlock): add a missing unlock
6090 (_dbus_connection_block_for_reply): add a missing unlock
6092 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6093 drop lock in a hacky probably unsafe way to call out to user
6096 2005-02-12 Havoc Pennington <hp@redhat.com>
6098 * tools/dbus-tree-view.c (info_set_func_text): display more
6101 * bus/driver.c (bus_driver_handle_list_services): list the bus
6104 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6106 * glib/dbus-gidl.c (signal_info_get_n_args): new function
6107 (method_info_get_n_args): new function
6109 2005-02-12 Havoc Pennington <hp@redhat.com>
6111 * bus/driver.c (bus_driver_handle_introspect): add introspection
6114 2005-02-12 Havoc Pennington <hp@redhat.com>
6116 * bus/driver.c: put the signature of each bus driver method in the
6117 table of handlers and check it on incoming calls; this isn't
6118 really useful, but going to add introspect support in a minute.
6120 2005-02-11 Joe Shaw <joeshaw@novell.com>
6122 * mono/Connection.cs: The unpredictability of finalizers in mono
6123 prevents us from deterministically disconnecting the filters from
6124 the Service class's finalizer, so move tracking of filters and
6125 matches here. Add API for that.
6127 * mono/Service.cs: Remove the code, add code which calls the
6128 methods now on the Connection class.
6130 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
6132 * python/dbus.py (class Sender): added to support dbus signals better
6133 (Bus::add_signal_receiver): added expand_args parameter which defaults
6134 to True. When expand args is True the signal handler will pass the
6135 message arguments as parameters to the signal handler. If False
6136 revert to previous behavior where the signal handler must get the
6137 argument list from the message. This is to help port applications
6138 like HAL that have a tendancy to send variable length argument lists.
6139 self._match_rule_to_receivers is now a dict of dicts.
6140 (Bus::remove_signal_receiver): pop handler off the dict intead of
6141 removing it from a list
6142 (Bus::_signal_func): change signal handlers so that interface,
6143 signal_name, service, path and message are packed into a Sender
6144 object and that is passed to the handler. If expand_args is True
6145 extract the args list from the message and append it to the parameter
6148 * python/dbus_bindings.pyx.in (class Signature): added to support
6150 (MessageIter::__init__): changed iteration limit to match D-BUS
6151 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
6152 STRUCT and VARIENT type support
6153 (MessageIter::python_value_to_dbus_sig): made recursive to support
6155 (MessageIter::append*): added Signature, dict, tuple
6158 * python/examples/example-client.py: added examples of getting tuples
6161 * python/examples/example-service.py: added examples of sending tuples
6164 * python/examples/example-signal-recipient.py: Fixed to handle new
6165 signal callback format
6167 2005-02-10 Havoc Pennington <hp@redhat.com>
6169 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6170 (call dbus_g_proxy_add_signal)
6172 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6174 (_dbus_server_new_for_domain_socket): escape the path
6176 * dbus/dbus-address.c (dbus_address_escape_value): new
6177 (dbus_address_unescape_value): new
6178 (dbus_parse_address): unescape values
6180 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6182 * doc/dbus-specification.xml: explain how to escape values in
6185 2005-02-10 Havoc Pennington <hp@redhat.com>
6187 * dbus/dbus-message-factory.c (generate_special): modify test to
6188 avoid using a non-basic dict key
6190 * dbus/dbus-marshal-validate-util.c: add test for the below
6192 * doc/dbus-specification.xml: require that dict keys are a basic
6195 * dbus/dbus-marshal-validate.c
6196 (_dbus_validate_signature_with_reason): require that dict key is a
6199 2005-02-10 Havoc Pennington <hp@redhat.com>
6201 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6202 change to be _and_unlock instead of _unlocked
6204 * dbus/dbus-connection.c
6205 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6206 have no_update so we can find this bug quickly in future
6208 2005-02-10 Havoc Pennington <hp@redhat.com>
6210 * dbus/dbus-message-util.c (verify_test_message): tests for string
6213 * dbus/dbus-message.c (dbus_message_append_args_valist): add
6214 support for arrays of string/signature/path
6216 2005-02-10 Joe Shaw <joeshaw@novell.com>
6218 * dbus/dbus-connection.c
6219 (_dbus_connection_queue_received_message_link,
6220 _dbus_connection_message_sent): Add the path to
6222 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
6223 _dbus_connection_send_preallocated_unlocked(), updated the
6224 dispatch status, and unlocks. Fixes a bug where certain
6225 situations (like a broken pipe) could cause a Disconnect message
6226 to not be sent, tricking the bus into thinking a service was still
6227 there when the process had quit.
6228 (_dbus_connection_send_preallocated): Call
6229 _dbus_connection_send_preallocated_and_unlock().
6230 (_dbus_connection_send_and_unlock): Added. Calls
6231 _dbus_connection_send_preallocated_and_unlock().
6232 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6233 (dbus_connection_send_with_reply): Update the dispatch status and
6236 * mono/Service.cs (~Service): Added. Removes the filter so that
6237 we don't get unmanaged code calling back into a GCed delegate.
6238 (RemoveFilter); Added.
6240 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
6242 * dbus/dbus-message.c (dbus_message_iter_open_container):
6243 - Removed check for iterator type being an array because
6244 get_arg_type does not work with writer iterators
6245 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6247 2005-02-07 Havoc Pennington <hp@redhat.com>
6249 * doc/dbus-specification.xml: some more language cleanups; add
6250 stuff about how to deal with invalid protocol and extension
6251 points; add _ to allowed chars in auth commands; add EXTENSION_
6254 2005-02-06 Havoc Pennington <hp@redhat.com>
6256 * s/expected/required/ in a couple places for clarity
6258 2005-02-07 Colin Walters <walters@verbum.org>
6260 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6261 sender or proposed_recipient.
6263 2005-02-06 Havoc Pennington <hp@redhat.com>
6265 * dbus/dbus-message-factory.c (generate_special): more tests
6267 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6268 array length that exceeds the maximum
6270 2005-02-05 Havoc Pennington <hp@redhat.com>
6272 * dbus/dbus-message-factory.c (generate_special): more test cases,
6275 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6276 reason why a signature was invalid
6278 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6279 skip the length of the string before we look at it in validation
6281 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6284 * dbus/dbus-message.c (_dbus_message_loader_new): default
6285 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6287 2005-02-05 Havoc Pennington <hp@redhat.com>
6289 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6290 if the signature of a variant was empty
6291 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6292 struct with no element type)
6294 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6295 mangled messages to break things
6297 2005-02-04 Havoc Pennington <hp@redhat.com>
6299 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6300 g_quark_try_string() so it actually can return 0
6301 (dbus_g_proxy_connect_signal): ditto
6303 2005-02-04 Havoc Pennington <hp@redhat.com>
6305 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6307 (tristring_from_message): assert cleanly on null path/interface
6308 (should not be possible though I decided later)
6309 (dbus_g_proxy_dispose): move proxy manager unregistration here
6310 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6311 g_return_if_fail() checks
6313 2005-02-04 Havoc Pennington <hp@redhat.com>
6315 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6317 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6318 (with some minor changes)
6320 * doc/dbus-specification.xml: add deprecated attribute to
6321 introspection format
6323 2005-01-31 Havoc Pennington <hp@redhat.com>
6325 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6326 think it's sort of right
6328 2005-01-30 Havoc Pennington <hp@redhat.com>
6330 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6332 2005-01-30 Havoc Pennington <hp@redhat.com>
6334 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6336 * autogen.sh: change to autotools 1.9
6338 * glib/dbus-gproxy.c: completely change how signals work
6339 (dbus_g_proxy_add_signal): new function to specify signature of a
6341 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6342 and g_warning if the incoming message has the wrong signature.
6344 2005-01-30 Havoc Pennington <hp@redhat.com>
6346 * tools/dbus-names-model.c (have_names_notify): fix this
6348 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6349 up the string array handling a bit
6351 2005-01-30 Havoc Pennington <hp@redhat.com>
6353 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6354 (dbus_g_pending_call_cancel): new function
6356 * dbus/dbus-glib.h: move GType decls for connection/message here;
6357 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6358 here, just kind of rationalizing how we handle all that
6360 * tools/dbus-names-model.c: new file for a tree model listing the
6363 * tools/dbus-tree-view.c (model_new): use proper typing on the
6366 2005-01-30 Havoc Pennington <hp@redhat.com>
6368 * glib/dbus-gmain.c: add a custom GSource back that just checks
6369 whether the message queue has anything in it; otherwise, there are
6370 cases where we won't see messages in the queue since there was no
6371 IO visible to the glib main loop
6373 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6374 increase default message timeout to 25 seconds
6376 2005-01-30 Havoc Pennington <hp@redhat.com>
6378 * test/glib/test-profile.c (no_bus_stop_server): remove the
6379 warning about the g_warning that I just fixed
6381 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6382 custom source, seems to be a lot easier to understand and work
6385 2005-01-30 Havoc Pennington <hp@redhat.com>
6387 I think this main loop thing is conceptually broken, but here are
6388 some band aids. I'll maybe rewrite it in a minute.
6390 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6391 custom GSource, so don't pass it in; confusing
6392 (gsource_server_finalize, gsource_connection_finalize): add
6393 finalize handlers that remove all the watches.
6395 2005-01-30 Havoc Pennington <hp@redhat.com>
6397 * glib/dbus-gobject.c (introspect_properties): fix the XML
6400 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6401 which effectively detects the use of freed messages
6403 * glib/dbus-gobject.c (handle_introspect): modify and return the
6404 reply message instead of the incoming message
6406 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6407 gee, maybe it should SEND THE XML instead of just making a string
6408 and freeing it again ;-)
6410 * tools/dbus-print-message.c (print_message): improve printing of
6413 * configure.in: add debug-glib.service to the output
6415 2005-01-30 Havoc Pennington <hp@redhat.com>
6417 dbus-viewer introspected and displayed the bus driver
6419 * dbus/dbus-object-tree.c
6420 (object_tree_test_iteration): add tests for a handler registered on "/"
6422 * dbus/dbus-object-tree.c
6423 (_dbus_decompose_path): fix to handle path "/" properly
6424 (run_decompose_tests): add tests for path decomposition
6426 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6429 * glib/dbus-gobject.c (handle_introspect): fix quotes
6431 * test/glib/run-test.sh: support launching the bus, then running
6434 * test/glib/test-service-glib.c (main): put in a trivial gobject
6435 subclass and register it on the connection
6437 * bus/driver.c (bus_driver_handle_introspect): implement
6438 introspection of the bus driver service
6440 * dbus/dbus-protocol.h: add #defines for the XML namespace,
6441 identifiers, doctype decl
6443 * bus/driver.c (bus_driver_handle_get_service_owner): handle
6444 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
6445 returning the service unchanged.
6446 (bus_driver_handle_message): remove old check for reply_serial in
6447 method calls, now the message type deals with that
6448 (bus_driver_handle_message): handle NULL interface
6450 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6452 * glib/dbus-gloader-expat.c (description_load_from_string): allow
6455 * tools/dbus-viewer.c: add support for introspecting a service on
6458 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6459 (dbus_g_pending_call_unref): add
6461 2005-01-29 Havoc Pennington <hp@redhat.com>
6463 * tools/dbus-tree-view.c: add support for displaying properties.
6464 (run dbus-viewer with an introspect xml file as arg, then resize
6465 the window so the tree elements show up, not sure what that is)
6467 * glib/dbus-gobject.c (handle_introspect): return
6468 org.freedesktop.Properties and org.freedesktop.Introspectable
6469 interfaces when we are introspected.
6471 * doc/dbus-specification.xml: allow empty interface name when
6474 2005-01-29 Havoc Pennington <hp@redhat.com>
6476 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6477 though it uses glib, it could be extended for any binding in
6480 * glib/dbus-gobject.c (gobject_message_function): change to the
6481 new way properties work
6483 * dbus/dbus-protocol.h: add the new interfaces
6485 * doc/dbus-specification.xml: document the introspection format,
6486 Introspectable interface, and add an org.freedesktop.Properties
6489 * glib/dbus-gparser.c: add support for a <property> element
6491 * glib/dbus-gidl.c: add PropertyInfo
6493 * glib/dbus-gobject.c (handle_introspect): put the outermost
6494 <node> outside the signal and property descriptions.
6495 (introspect_properties): export properties as <property> rather
6496 than as method calls
6498 2005-01-28 Havoc Pennington <hp@redhat.com>
6500 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6501 related to authentication protocol
6503 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
6505 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6506 - BUS_ACTIVATION -> BUS_STARTER
6507 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6508 - class MessageIter (__init__): Added recursion checking
6509 so we throw a nice error instead of just disconnecting from the
6511 (get): Added arg_type parameter for recursion.
6512 Removed the nil type
6513 Added signiture type placeholder (not implemented)
6514 Added struct type placeholder (not implemented)
6515 Added varient type placeholder (not implemented)
6516 Commented out dict type for now
6517 (get_element_type): renamed from get_array_type
6518 (get_*): changed to use the dbus_message_iter_get_basic API
6519 (get_*_array): removed in favor of recursive get_array method
6520 (get_array): new recursive method which calls get to marshal
6521 the elements of the array
6522 (value_to_dbus_sig): New method returns the corrasponding
6523 dbus signiture to a python value
6524 (append): Comment out dict handling for now
6525 Handle lists with the new recursive API
6526 Comment out None handling for now
6527 (append_nil): removed
6528 (append_*): changed to use dbus_message_iter_append_basic API
6529 (append_*_array): removed in favor of recursive append_array
6531 (__str__): Make it easier to print out recursive iterators
6533 - class Message (__str__): moved type inspection to the
6534 MessageIter class' __str__ method
6535 (get_iter): Added an append parameter wich defaults to False
6536 If True use the new API's to create an append iterator
6538 * python/dbus.py: Update to use new bindings API
6539 - TYPE_ACTIVATION -> TYPE_STARTER
6540 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6541 - class ActivationBus -> class StarterBus
6542 - class RemoteObject (__call__): get an append iterator
6543 - (_dispatch_dbus_method_call): get an append iterator
6544 - class Object (emit_signal): get an append iterator
6546 * python/examples/: Fixed up the examples to work with the new API
6548 2005-01-28 Joe Shaw <joeshaw@novell.com>
6550 * configure.in: Bump version up to 0.30.
6552 * HACKING: Add a release item to bump the version number up after
6555 2005-01-28 Havoc Pennington <hp@redhat.com>
6557 * doc/dbus-specification.xml: update to describe 16-bit types and
6560 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6563 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6566 * dbus/dbus-marshal-recursive.c: implement
6568 2005-01-27 Havoc Pennington <hp@redhat.com>
6570 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6572 * configure.in: find the right type for 16 and 32 bit ints as well
6575 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6576 the 16-bit types so people don't have to stuff them in 32-bit or
6579 2005-01-27 Havoc Pennington <hp@redhat.com>
6581 * dbus/dbus-message.c: byteswap the message if you init an
6582 iterator to read/write from it
6584 * dbus/dbus-marshal-byteswap.c: new file implementing
6585 _dbus_marshal_byteswap()
6587 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6589 2005-01-26 Havoc Pennington <hp@redhat.com>
6591 * dbus/dbus-marshal-validate-util.c: break this out (and fix
6592 build, apparently - nobody noticed?)
6594 2005-01-26 Havoc Pennington <hp@redhat.com>
6596 * dbus/dbus-marshal-recursive.h: remove todo comment
6598 2005-01-25 Joe Shaw <joeshaw@novell.com>
6600 * Land the mono binding changes to conform to the new APIs.
6602 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6603 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6605 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
6606 type code as a string.
6607 (InitAppending): Rename dbus_message_append_iter_init() to
6608 dbus_message_iter_init_append().
6610 * mono/BusDriver.cs: Rename ServiceEventHandler to
6611 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
6612 Rename ServiceOwnerChanged to NameOwnerChanged.
6614 * mono/Connection.cs: Rename BaseService to UniqueName, and the
6617 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
6619 * mono/Service.cs: Rename Exists to HasOwner, internally rename
6620 dbus_bus_acquire_service() to dbus_bus_request_name().
6622 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6623 of Type.UnderlyingSystemType to get the correct element type for
6625 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6626 dbus_message_get_{element|arg}_type() instead of
6627 dbus_message_iter_init_array_iterator().
6628 (Append): Replace dbus_message_iter_append_array() with
6629 dbus_message_iter_open_container() and
6630 dbus_message_iter_close_container().
6632 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
6633 types have been removed.
6635 * mono/DBusType/*.cs: Replace calls of
6636 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6637 but specify the type in the DllImport extern declaration. Ditto
6638 for dbus_message_iter_append_[type]() ->
6639 dbus_message_iter_append_basic().
6641 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6642 NameOwnerChangedHandler.
6644 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
6646 * python/dbus_bindings.pyx.in: Rename of methods and bindings
6647 - get_base_service -> get_unique_name
6648 - bus_get_base_service -> bus_get_unique_name
6649 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6650 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
6651 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6652 - bus_activate_service -> bus_start_service_by_name
6653 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6654 - bus_acquire_service -> bus_request_name
6655 - dbus_bus_acquire_service -> dbus_bus_request_name
6656 - bus_service_exists -> bus_name_has_owner
6657 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6659 * python/dbus.py: Rename of methods
6660 - activate_service -> start_service_by_name
6661 - bus_acquire_service -> bus_request_name
6662 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
6663 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6666 2005-01-24 Joe Shaw <joeshaw@novell.com>
6668 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6669 signature for the method that can't be found.
6671 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6672 the message has any arguments, we need to call
6673 _dbus_type_reader_get_current_type(), not
6674 _dbus_type_reader_has_next().
6676 2005-01-24 Havoc Pennington <hp@redhat.com>
6678 * dbus/dbus-message-factory.c: more testing of message validation
6680 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6683 2005-01-23 Havoc Pennington <hp@redhat.com>
6685 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
6686 get this all working, not many tests in the framework yet though
6688 2005-01-22 Havoc Pennington <hp@redhat.com>
6690 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6691 tutorial, based on work from David Wheeler.
6693 2005-01-21 Havoc Pennington <hp@redhat.com>
6695 * dbus/dbus-bus.c: add more return_if_fail checks
6697 * dbus/dbus-message.c (load_message): have the "no validation"
6698 mode (have to edit the code to toggle the mode for now though)
6700 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6701 skips all validation; I want to use this at least for benchmark
6702 baseline, I'm not sure if it should be a publicly-available switch.
6704 2005-01-21 Havoc Pennington <hp@redhat.com>
6706 * glib/dbus-gmain.c: don't put the GLib bindings in the same
6707 toplevel doxygen group as the low-level API stuff
6709 * dbus/dbus.h: note that libdbus is the low-level API
6711 2005-01-20 Havoc Pennington <hp@redhat.com>
6713 * update-dbus-docs.sh: script to update docs on the web site, only
6714 works for me though. neener.
6716 2005-01-20 Havoc Pennington <hp@redhat.com>
6718 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6719 code can reveal bugs in it
6721 2005-01-20 Havoc Pennington <hp@redhat.com>
6723 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6724 select() version, patches from Tor Lillqvist
6726 2005-01-20 Havoc Pennington <hp@redhat.com>
6728 * doc/dbus-tutorial.xml: replace > with >
6730 * bus/services.c (bus_registry_acquire_service): validate the name
6731 and return a better error if it's no good.
6733 * doc/dbus-specification.xml: note NO_AUTO_START change
6735 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6736 from AUTO_START, we're toggling the default
6738 * bus/dispatch.c: adapt the tests to change of auto-start default
6740 2005-01-18 Havoc Pennington <hp@redhat.com>
6742 * rename dbus-daemon-1 to dbus-daemon throughout
6744 2005-01-18 Havoc Pennington <hp@redhat.com>
6746 * Throughout, grand renaming to strip out the use of "service",
6747 just say "name" instead (or "bus name" when ambiguous). Did not
6748 change the internal code of the message bus itself, only the
6749 programmer-facing API and messages.
6751 * doc/dbus-specification.xml: further update the message bus section
6753 * bus/config-parser.c (all_are_equiv): fix bug using freed string
6756 2005-01-17 Havoc Pennington <hp@redhat.com>
6758 * dbus/dbus-types.h: remove 16-bit types since we don't use them
6761 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6762 "invalid name character" not only non-ASCII
6764 * doc/dbus-specification.xml: further update spec, message bus
6765 parts are still out-of-date but the marshaling etc. stuff is now
6768 2005-01-17 Havoc Pennington <hp@redhat.com>
6770 * doc/dbus-specification.xml: partially update spec
6772 2005-01-17 Havoc Pennington <hp@redhat.com>
6774 * Throughout, align variant bodies according to the contained
6775 type, rather than always to 8. Should save a fair bit of space in
6778 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6779 fix handling of case where p == end
6781 * doc/TODO: remove the dbus_bool_t item and variant alignment items
6783 2005-01-17 Havoc Pennington <hp@redhat.com>
6785 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6787 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6788 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
6789 are marshaling/unmarshaling a boolean.
6791 2005-01-16 Havoc Pennington <hp@redhat.com>
6793 This is about it on what can be disabled/deleted from libdbus
6794 easily, back below 150K anyhow. Deeper cuts are more work than
6795 just turning the code off as I've done here.
6797 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6798 signed int convenience funcs
6800 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6803 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6804 things out of libdbus
6806 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6808 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6809 tests-enabled-only, though it should probably be deleted)
6811 * dbus/dbus-message-util.c: same stuff
6813 * dbus/dbus-auth-util.c: same stuff
6815 2005-01-16 Havoc Pennington <hp@redhat.com>
6817 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6819 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6820 way for stripping down dbus-userdb.c stuff included in libdbus.
6821 Rename _dbus_parse_uid for consistency.
6823 2005-01-16 Havoc Pennington <hp@redhat.com>
6825 * dbus/dbus-internals.c (_dbus_real_assert): print the function
6826 name the assertion failed in
6828 * dbus/dbus-internals.h (_dbus_return_if_fail)
6829 (_dbus_return_val_if_fail): assert that the name of the function
6830 containing the check doesn't start with '_', since we only want to
6831 use checks on public functions
6833 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6834 checks to assertions
6836 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6837 change checks to asserts for private function
6839 * dbus/dbus-message.c (_dbus_message_set_serial): checks
6840 to asserts for private function
6842 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6843 broken assertion that was breaking make check
6844 (_dbus_type_reader_array_is_empty): remove this rather than fix
6845 it, was only used in assertions
6847 2005-01-16 Havoc Pennington <hp@redhat.com>
6849 * test/unused-code-gc.py: hacky script to find code that's used
6850 only by the bus (not libdbus) or used only by tests or not used at
6851 all. It has some false alarms, but looks like we can clean up a
6852 lot of size from libdbus.
6854 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6855 dbus/Makefile.am: initially move 10K of binary size out of libdbus
6857 2005-01-16 Havoc Pennington <hp@redhat.com>
6859 * Add and fix docs according to Doxygen warnings throughout
6862 * dbus/dbus-marshal-recursive.c
6863 (_dbus_type_reader_array_is_empty): change this to just call
6864 array_reader_get_array_len() and make it static
6866 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6868 (dbus_message_iter_init_append): rename from append_iter_init
6870 * dbus/dbus-marshal-recursive.c
6871 (_dbus_type_reader_get_element_type): rename from
6872 _dbus_type_reader_get_array_type
6874 2005-01-15 Havoc Pennington <hp@redhat.com>
6876 * test/glib/test-profile.c (with_bus_server_filter): fix crash
6878 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6879 when DBUS_DISABLE_ASSERT
6880 (_dbus_marshal_set_basic): be sure we align for the string length
6882 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6885 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6886 inline macro version
6887 (_dbus_string_set_byte): provide inline macro version
6889 2005-01-15 Havoc Pennington <hp@redhat.com>
6891 * Land the new message args API and type system.
6893 This patch is huge, but the public API change is not
6894 really large. The set of D-BUS types has changed somewhat,
6895 and the arg "getters" are more geared toward language bindings;
6896 they don't make a copy, etc.
6898 There are also some known issues. See these emails for details
6900 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6901 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6903 * dbus/dbus-marshal-*: all the new stuff
6905 * dbus/dbus-message.c: basically rewritten
6907 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6908 freed blocks to be all non-nul bytes so using freed memory is less
6909 likely to work right
6911 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6912 DBUS_FAIL_MALLOC=N environment variable, so you can do
6913 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6914 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6917 * qt/message.cpp: port to the new message args API
6918 (operator<<): use str.utf8() rather than str.unicode()
6919 (pretty sure this is right from the Qt docs?)
6921 * glib/dbus-gvalue.c: port to the new message args API
6923 * bus/dispatch.c, bus/driver.c: port to the new message args API
6925 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6926 "locked" flag to TRUE and align_offset to 0; I guess we never
6927 looked at these anyhow, but seems cleaner.
6929 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6930 move allocation padding macro to this header; use it to implement
6931 (_DBUS_STRING_STATIC): ability to declare a static string.
6933 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6934 change to return TRUE if the interface is not set.
6936 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6937 to dbus-marshal-validate.[hc]
6939 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6942 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6943 to dbus-marshal-*.[hc]
6945 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6946 function here from dbus-marshal.c
6948 2005-01-12 Joe Shaw <joeshaw@novell.com>
6950 * NEWS: Update for 0.23.
6952 * configure.in: Release 0.23.
6954 2005-01-12 Joe Shaw <joeshaw@novell.com>
6956 * mono/Makefile.am, mono/example/Makefile.am: Always build the
6957 dbus DLL with --debug. Clean up after the .mdb files this leaves
6960 * mono/doc/Makefile.am: Need to uninstall the docs on "make
6963 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6964 is an enum, get the enum's underlying type. Another mono
6967 2005-01-11 Joe Shaw <joeshaw@novell.com>
6969 Patch from Sjoerd Simons <sjoerd@luon.net>
6971 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6972 DESTDIR. It breaks stuff.
6974 2005-01-11 Joe Shaw <joeshaw@novell.com>
6976 Patch from Tambet Ingo <tambet@ximian.com>
6978 * mono/DBusType/Array.cs (Get): Get the underlying element type by
6979 calling type.GetElementType(). The code previously depended on
6980 broken Mono behavior, which was fixed in Mono 1.1.3.
6982 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6983 Activator.CreateInstance() so that the class's constructor is
6984 called with the right parameters.
6986 2005-01-11 Joe Shaw <joeshaw@novell.com>
6988 Patch from Timo Teräs <ext-timo.teras@nokia.com>
6990 * dbus/dbus-connection.c
6991 (_dbus_connection_queue_received_message_link): Call
6992 _dbus_connection_remove_timeout() instead of the _locked()
6993 variant, since it's always called from
6994 _dbus_connection_handle_watch(), which handles the locking.
6995 Removed the _locked() variant since it's no longer used.
6997 2005-01-03 Havoc Pennington <hp@redhat.com>
6999 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7002 2004-12-26 Havoc Pennington <hp@redhat.com>
7004 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7006 2005-01-03 Havoc Pennington <hp@redhat.com>
7008 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7011 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7013 2005-01-02 Havoc Pennington <hp@redhat.com>
7015 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7017 2005-01-01 Havoc Pennington <hp@redhat.com>
7019 * configure.in: add -Wfloat-equal
7021 2005-01-01 Havoc Pennington <hp@redhat.com>
7023 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
7024 for a variety of reasons '==' doesn't do this.
7026 2004-12-31 Havoc Pennington <hp@redhat.com>
7028 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7029 I keep wishing I had
7031 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7033 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7035 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7037 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7038 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7039 dbus-protocol.h. Because they are defines and not enums they are not
7042 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
7044 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7045 dbus_bus_activate_service
7047 * python/dbus.py (Bus.activate_service): activate a service on the
7050 2004-12-24 Havoc Pennington <hp@redhat.com>
7052 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7053 file format has also changed and I haven't adapted to that yet
7055 * Makefile.am: load .gcno files from latest gcc
7057 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
7058 * Patch from Rob Taylor <robtaylor@fastmail.fm>
7060 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7063 * python/dbus.py (get_unix_user): Added binding to
7064 call dbus_bindings.bus_get_unix_user
7066 * python/extract.py: Modified the proto_pat regex to
7067 handle unsigned long
7069 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7071 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7072 better POSIX compliance.
7074 2004-12-19 Havoc Pennington <hp@redhat.com>
7076 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
7077 (_dbus_string_insert_8_aligned): new functions
7079 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7081 2004-12-18 Havoc Pennington <hp@redhat.com>
7083 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7086 * dbus/dbus-message.c: fix a comment, and add a still-unused
7087 not-implemented function
7089 * dbus/dbus-marshal.h: fix comment
7091 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7093 2004-12-17 Joe Shaw <joeshaw@novell.com>
7095 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7096 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7097 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7098 Type.UnderlyingSystemType to get the actual system type
7099 underneath. This code previously depended on the broken Mono
7100 behavior, which was fixed in 1.1.3.
7102 2004-11-27 Havoc Pennington <hp@redhat.com>
7104 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7106 (_dbus_string_get_const_data): inline when asserts are disabled
7108 * dbus/dbus-message.c: record the _dbus_current_generation of
7109 creation so we can complain if dbus_shutdown() is used improperly.
7110 Do this only if checks are enabled.
7112 * dbus/dbus-connection.c: ditto
7114 2004-11-26 Havoc Pennington <hp@redhat.com>
7116 * test/glib/test-profile.c: add with_bus mode to profile echoes
7117 that go through the bus.
7119 * test/glib/run-test.sh: add ability to run test-profile
7121 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7124 2004-11-26 Havoc Pennington <hp@redhat.com>
7126 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7127 thing was implemented
7129 2004-11-26 Havoc Pennington <hp@redhat.com>
7131 * test/glib/test-profile.c: tweak a bit, add support for some
7132 made-up minimal malloc overhead with plain sockets, since in
7133 real life some sort of buffers are unavoidable thus we could
7134 count them in the theoretical best case
7136 2004-11-26 Havoc Pennington <hp@redhat.com>
7138 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7139 where I was trying to cache one too many messages
7141 2004-11-26 Havoc Pennington <hp@redhat.com>
7143 * dbus/dbus-message.c: reimplement message cache as an array which
7144 makes the cache about twice as fast and saves maybe 1.5% overall
7146 2004-11-26 Havoc Pennington <hp@redhat.com>
7148 * dbus/dbus-threads.c (init_global_locks): forgot to put the
7149 message cache lock here
7151 2004-11-26 Havoc Pennington <hp@redhat.com>
7153 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7154 the "char byte_order" next to each other to save 4 bytes
7155 (dbus_message_new_empty_header): reduce preallocation, since the
7156 message cache should achieve a similar effect
7157 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7158 message cache that keeps a few DBusMessage around in a pool,
7159 another 8% speedup or so.
7161 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7163 2004-11-25 Havoc Pennington <hp@redhat.com>
7165 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7166 to write, without reading or blocking, try it before the poll()
7167 and skip the poll() if nothing remains to write. This is about a
7168 3% speedup in the echo client/server
7170 2004-11-25 Havoc Pennington <hp@redhat.com>
7172 The primary change here is to always write() once before adding
7173 the write watch, which gives us about a 10% performance increase.
7175 * dbus/dbus-transport-unix.c: a number of modifications to cope
7176 with removing messages_pending
7177 (check_write_watch): properly handle
7178 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7179 messages_pending stuff
7180 (check_read_watch): properly handle WAITING_FOR_MEMORY and
7182 (unix_handle_watch): after writing, see if the write watch can be
7184 (unix_do_iteration): assert that write_watch/read_watch are
7185 non-NULL rather than testing that they aren't, since they
7186 aren't allowed to be NULL. check_write_watch() at the end so
7187 we add the watch if we did not finish writing (e.g. got EAGAIN)
7189 * dbus/dbus-transport-protected.h: remove messages_pending call,
7190 since it resulted in too much inefficient watch adding/removing;
7191 instead we now require that the transport user does an iteration
7192 after queueing outgoing messages, and after trying the first
7193 write() we add a write watch if we got EAGAIN or exceeded our
7194 max bytes to write per iteration setting
7196 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7199 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7200 freed and then accessed, valgrind flagged this bug, fix it
7202 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7203 as the last valid field plus 1, where really it is equal to the
7204 last valid field. Corrects some message corruption issues.
7206 * dbus/dbus-mainloop.c: verbosity changes
7208 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7209 instead of aborting in one of the test codepaths
7211 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7212 caused not printing the pid ever again if a verbose was missing
7213 the newline at the end
7214 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7216 * dbus/dbus-connection.c: verbosity changes;
7217 (dbus_connection_has_messages_to_send): new function
7218 (_dbus_connection_message_sent): no longer call transport->messages_pending
7219 (_dbus_connection_send_preallocated_unlocked): do one iteration to
7220 try to write() immediately, so we can avoid the write watch. This
7221 is the core purpose of this patchset
7222 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7223 dump the outgoing message queue, so nobody will get confused
7224 trying to send them or thinking stuff is pending to be sent
7226 * bus/test.c: verbosity changes
7228 * bus/driver.c: verbosity/assertion changes
7230 * bus/dispatch.c: a bunch of little tweaks to get it working again
7231 because this patchset changes when/where you need to block.
7233 2004-11-23 Havoc Pennington <hp@redhat.com>
7235 * test/glib/test-profile.c: modify to accept a plain_sockets
7236 argument in which case it will bench plain sockets instead of
7237 libdbus, for comparison purposes.
7239 2004-11-22 Havoc Pennington <hp@redhat.com>
7241 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7242 threads for more time, so sysprof can get a grip on it.
7244 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7247 2004-11-13 Havoc Pennington <hp@redhat.com>
7249 * test/glib/test-profile.c: fix this thing up a bit
7251 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7252 preallocation sizes by a fair bit; not sure if this will be an
7253 overall performance win or not, but it does reduce reallocs.
7255 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7256 the test hack that forced constant realloc if asserts are
7257 disabled, so we can profile sanely. Sprinkle in some
7258 _DBUS_UNLIKELY() which are probably pointless, but before I
7259 noticed the real performance problem I put them in.
7260 (_dbus_string_validate_utf8): micro-optimize this thing a little
7261 bit, though callgrind says it didn't help; then special-case
7262 ascii, which did help a lot; then be sure we detect nul bytes as
7263 invalid, which is a bugfix.
7264 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7265 superstition; use memset to nul the padding instead of a manual
7267 (_dbus_string_get_length): inline this as a
7268 macro; it showed up in the profile because it's used for loop
7271 2004-11-10 Colin Walters <walters@verbum.org>
7273 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7276 2004-11-09 Colin Walters <walters@verbum.org>
7278 * dbus/dbus-string.c (_dbus_string_get_length): New
7279 function, writes DBusString to C buffer.
7281 * dbus/dbus-string.h: Prototype it.
7283 * dbus/dbus-message.c (dbus_message_type_to_string): New
7284 function, converts message type into C string.
7286 * dbus/dbus-message.h: Prototype it.
7288 * bus/selinux.c (bus_selinux_check): Take source pid,
7289 target pid, and audit data. Pass audit data to
7291 (log_audit_callback): New function, appends extra
7293 (bus_selinux_allows_acquire_service): Also take
7294 service name, add it to audit data.
7295 (bus_selinux_allows_send): Also take message
7296 type, interface, method member, error name,
7297 and destination, and add them to audit data.
7298 (log_cb): Initialize func_audit.
7300 * bus/selinux.h (bus_selinux_allows_acquire_service)
7301 (bus_selinux_allows_send): Update prototypes
7303 * bus/services.c (bus_registry_acquire_service): Pass
7304 service name to bus_selinux_allows_acquire_service.
7306 * bus/bus.c (bus_context_check_security_policy): Pass
7307 additional audit data. Move assignment of dest
7310 2004-11-07 Colin Walters <walters@verbum.org>
7312 * dbus/dbus-transport-unix.c (do_authentication): Always
7313 initialize auth_completed.
7315 2004-11-07 Colin Walters <walters@verbum.org>
7317 * bus/bus.c (load_config): Break into three
7318 separate functions: process_config_first_time_only,
7319 process_config_every_time, and process_config_postinit.
7320 (process_config_every_time): Move call of
7321 bus_registry_set_service_context_table into
7322 process_config_postinit.
7323 (process_config_postinit): New function, does
7324 any processing that needs to happen late
7325 in initialization (and also on reload).
7326 (bus_context_new): Instead of calling load_config,
7327 open config parser here and call process_config_first_time_only
7328 and process_config_every_time directly. Later, after
7329 we have forked but before changing UID,
7330 invoke bus_selinux_full_init, and then call
7331 process_config_postinit.
7332 (bus_context_reload_config): As in bus_context_new,
7333 load parse file inside here, and call process_config_every_time
7334 and process_config_postinit.
7336 * bus/services.h, bus/services.c
7337 (bus_registry_set_service_context_table): Rename
7338 from bus_registry_set_sid_table. Take string hash from config
7339 parser, and convert them here into SIDs.
7341 * bus/config-parser.c (struct BusConfigParser): Have
7342 config parser only store a mapping of service->context
7344 (merge_service_context_hash): New function.
7345 (merge_included): Merge context string hashes instead
7346 of using bus_selinux_id_table_union.
7347 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7348 simply create a new string hash.
7349 (bus_config_parser_unref): Unref it.
7350 (start_selinux_child): Simply insert strings into hash,
7351 don't call bus_selinux_id_table_copy_over.
7353 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7354 (bus_selinux_id_table_copy_over): Delete.
7356 2004-11-03 Colin Walters <walters@verbum.org>
7358 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7361 2004-11-03 Colin Walters <walters@verbum.org>
7363 * bus/test-main.c (test_pre_hook): Fix test logic,
7364 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7366 2004-11-02 Colin Walters <walters@redhat.com>
7368 * bus/selinux.c (bus_selinux_init): Split into two functions,
7369 bus_selinux_pre_init and bus_selinux_post_init.
7370 (bus_selinux_pre_init): Just determine whether SELinux is
7372 (bus_selinux_post_init): Do everything else.
7374 * bus/main.c (main): Call bus_selinux_pre_init before parsing
7375 config file, and bus_selinux_post_init after. This ensures that
7376 we don't lose the policyreload notification thread that
7377 bus_selinux_init created before forking previously.
7379 * bus/test-main.c (test_pre_hook): Update for split.
7381 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
7383 Patch from Johan Fischer <linux@fischaz.com>
7385 * mono/doc/Makefile.am (install-data-local): Added directory
7388 2004-10-29 Colin Walters <walters@redhat.com>
7390 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7391 parameter for fd to write pid to.
7393 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7395 * bus/bus.c (bus_context_new): Pass print_pid_fd
7396 to _dbus_become_daemon (bug #1720)
7398 2004-10-29 Colin Walters <walters@redhat.com>
7400 Patch from Ed Catmur <ed@catmur.co.uk>
7402 * mono/doc/Makefile.am (install-data-local): Handle
7405 2004-10-29 Colin Walters <walters@redhat.com>
7407 * bus/.cvsignore, qt/.cvsignore: Update.
7409 2004-10-29 Colin Walters <walters@redhat.com>
7411 Patch from Kristof Vansant <de_lupus@pandora.be>
7413 * configure.in: Detect Slackware.
7414 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7415 * bus/rc.messagebus.in: New file.
7417 2004-10-29 Colin Walters <walters@redhat.com>
7419 * tools/dbus-monitor.c (filter_func): Return
7420 DBUS_HANDLER_RESULT_HANDLED in filter function
7422 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7424 2004-10-29 Colin Walters <walters@redhat.com>
7426 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7428 * bus/services.c (bus_registry_acquire_service):
7429 Correctly retrieve service name from DBusString
7432 2004-10-29 Colin Walters <walters@redhat.com>
7434 * dbus/dbus-glib.h: Update documentation to not
7435 refer to internal APIs.
7437 2004-10-27 Joe Shaw <joeshaw@novell.com>
7439 * mono/Arguments.cs (GetDBusTypeConstructor):
7440 type.UnderlyingSystemType will return "System.Byte" if you do it
7441 on "byte[]", which is not what we want. So check the type.IsArray
7442 property and use System.Array instead.
7444 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
7446 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7447 the DBusUserInfo structure since this is passed into the function.
7448 This would cause a double free when the function that allocated
7449 the structure would try to free it when an error occured.
7451 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7452 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7453 for service activation to avoid 32bit/64bit parallel install issues
7455 2004-10-21 Colin Walters <walters@verbum.org>
7457 * AUTHORS: Fix my email address, the @gnu.org one
7458 has been bouncing for some time. Also add J5.
7460 2004-10-21 Colin Walters <walters@verbum.org>
7462 * dbus/dbus-transport-unix.c (do_authentication): Return
7463 authentication status to callers.
7464 (unix_handle_watch): If we completed authentication this round,
7465 don't do another read. Instead wait until the next iteration,
7466 after we've read any pending data in the auth buffer.
7467 (unix_do_iteration): Ditto.
7468 (unix_handle_watch): Updated for new do_authentication prototype.
7470 2004-10-18 Colin Walters <walters@verbum.org>
7472 * bus/selinux.c (bus_selinux_enabled): Handle
7473 --disable-selinux case.
7475 2004-10-18 Colin Walters <walters@verbum.org>
7477 * bus/selinux.h: Add bus_selinux_enabled.
7479 * bus/selinux.c (bus_selinux_enabled): Implement it.
7481 * bus/config-parser.c (struct include): Add
7482 if_selinux_enabled member.
7483 (start_busconfig_child): Parse if_selinux_enabled
7484 attribute for include.
7485 (bus_config_parser_content): Handle it.
7487 * bus/session.conf.in, bus/system.conf.in: Add
7488 inclusion of context mapping to default config files;
7489 conditional on SELinux being enabled.
7491 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7493 * test/data/invalid-config-files/badselinux-1.conf,
7494 test/data/invalid-config-files/badselinux-2.conf:
7495 Test files for bad syntax.
7497 2004-10-17 Colin Walters <walters@verbum.org>
7499 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7500 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7501 format specifier mismatches.
7503 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
7505 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7508 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7509 pointer (bug #1540, Leonardo Boiko).
7511 2004-09-28 Jon Trowbridge <trow@ximian.com>
7513 * mono/BusDriver.cs: Changed BusDriver struct to remove
7514 the ServiceCreated and ServiceDeleted events and replace them
7515 with the new ServiceOwnerChanged event.
7517 * mono/example/BusListener.cs: Added a new example program,
7518 which listens for and reports any ServiceOwnerChanged events
7521 * mono/example/Makefile.am (DESTDIR): Build changes for the
7522 new BusListener.cs example.
7524 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
7526 * bus/signals.c (bus_match_rule_parse): validate the components of
7527 match rules (bug #1439).
7529 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7531 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
7533 * doc/dbus-specification.xml: document ServiceOwnerChanged
7536 * bus/driver.c, bus/driver.h, bus/services.c: Use
7537 ServiceOwnerChanged signal instead of ServiceCreated and
7540 * bus/dispatch.c: update testcase for the new signal.
7542 2004-09-20 Jon Trowbridge <trow@ximian.com>
7544 Patch from Nat Friedman <nat@novell.com>
7546 * mono/Makefile.am: A number of small build fixes to allow "make
7547 distcheck" to succeed.
7549 * mono/example/Makefile.am: "make distcheck" fixes.
7551 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7554 * test/Makefile.am: "make distcheck" fixes.
7556 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7558 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7560 * doc/busconfig.dtd: update the DTD for the at_console attribute.
7562 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7563 messages after the first one (bug #1389).
7565 * bus/dispatch.c (check_double_hello_message): add a test case for
7566 the double hello message bug.
7567 (check_existent_service_activation): fix check of spawning error.
7569 2004-09-16 David Zeuthen <david@fubar.dk>
7571 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7573 2004-09-12 David Zeuthen <david@fubar.dk>
7575 Patch from Kay Sievers <kay.sievers@vrfy.org>
7577 * bus/bus.c (bus_context_new):
7579 * bus/main.c (usage)
7581 Add commandline option --nofork to override configuration file
7584 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7586 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7587 compilers don't like it (bug #974).
7589 2004-09-04 Harald Fernengel <harry@kdevelop.org>
7591 * qt/connection.*: Applied patch by Jérôme Lodewyck
7592 <lodewyck@clipper.ens.fr> to integrate an existing
7593 connection into the Qt eventloop
7595 2004-08-30 Jon Trowbridge <trow@ximian.com>
7597 * mono/BusDriver.cs: Added. This is a class for interacting with
7598 the org.freedesktop.DBus service.
7600 * mono/Message.cs: Added a mechanism to expose the message that is
7601 currently being dispatched via the static Message.Current
7602 property. Added Message.Sender and Message.Destination
7605 * mono/Handler.cs: Expose the dispatched message via
7606 Message.Current when handling method calls.
7608 * mono/Service.cs: Expose the dispatched message via
7609 Message.Current when handling signal emissions.
7611 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7612 Connection.BaseService property.
7614 2004-08-28 Havoc Pennington <hp@redhat.com>
7616 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7618 More fixes from Steve Grubb
7620 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7621 (_dbus_listen_tcp_socket): fix fd leak
7623 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7624 EINTR to a bit lower in the code
7626 2004-08-26 Jon Trowbridge <trow@ximian.com>
7628 * bus/driver.c (bus_driver_handle_service_exists): Respond with
7629 TRUE if we are inquiring about the existence of the built-in
7630 org.freedesktop.DBus service.
7632 2004-08-25 John Palmieri <johnp@redhat.com>
7633 * bus/config-parser.c:
7634 (struct PolicyType): Add POLICY_CONSOLE
7635 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7636 (start_busconfig_child): Sets up console element when
7637 <policy at_console=""> is encountered in a policy file
7638 (append_rule_from_element): Convert console elements to console
7642 (bus_policy_create_client_policy): Add console rules to the client
7643 policy based on if the client is at the console
7644 (bus_policy_append_console_rule): New function for adding a
7645 console rule to a policy
7646 (bus_policy_merge): Handle console rule merging
7648 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7649 where we check for console user files
7651 * dbus/dbus-sysdeps.c:
7652 (_dbus_file_exists): New function which checks if the given
7654 (_dbus_user_at_console): New function which does the system
7655 specific process of checking if the user is at the console
7657 * dbus/dbus-userdb.c:
7658 (_dbus_is_console_user): New function converts a UID to user name
7659 and then calls the system specific _dbus_user_at_console to
7660 see if the user is at the console and therefor a console user
7662 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
7664 * bus/config-parser.c (set_limit):
7665 * bus/dbus-daemon-1.1.in:
7666 * test/data/valid-config-files/many-rules.conf: set the
7667 max_match_rules_per_connection limt from the config file.
7669 * doc/busconfig.dtd: update the DTD.
7671 * bus/driver.c: remove some unused variables.
7673 2004-08-24 Mikael Hallendal <micke@imendio.com>
7675 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
7676 it's been replaced by dbus_g_bus_get
7678 2004-08-23 Colin Walters <walters@redhat.com>
7680 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7682 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7684 * bus/selinux.c: Create a thread for policy reload notification.
7685 (bus_selinux_get_policy_root): Implement.
7687 * bus/config-parser.c (start_busconfig_child)
7688 (bus_config_parser_content): Support SELinux-root relative
7691 * configure.in <HAVE_SELINUX>: Add -lpthread.
7693 * bus/test-main.c (test_pre_hook, test_post_hook): New.
7694 (test_post_hook): Move memory checking into here.
7695 (test_pre_hook, test_post_hook): Move SELinux checks in
7696 here, but conditional on a DBUS_TEST_SELINUX environment
7697 variable. Unfortunately we can't run the SELinux checks
7698 as a normal user, since they won't have any permissions
7699 for /selinux. So this will have to be tested manually
7700 for now, until we have virtualization for most of
7703 2004-08-23 Havoc Pennington <hp@redhat.com>
7705 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7706 drop supplementary groups, suggested by Steve Grubb
7708 2004-08-20 Colin Walters <walters@redhat.com>
7710 * bus/config-parser.c (start_busconfig_child): Remove some unused
7713 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7716 2004-08-17 Joe Shaw <joeshaw@novell.com>
7718 * configure.in: If --enable-mono is passed in, if we can't find
7721 * mono/Makefile.am: Use /gacutil to install assemblies into the
7724 2004-08-12 Havoc Pennington <hp@redhat.com>
7726 * NEWS: update for 0.22
7728 * configure.in: release 0.22
7730 2004-08-11 Colin Walters <walters@redhat.com>
7732 * tools/dbus-send.c (main, usage): Add --reply-timeout
7735 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
7737 * bus/bus.c (process_config_first_time_only): get rid of an unused
7738 DBusError that was causing a memoy leak (bug #989).
7740 * dbus/dbus-keyring.c, dbus/dbus-message.c:
7741 fix compilation on Solaris/Forte C (bug #974)
7743 * bus/main.c (main): plug two minuscule memleaks.
7745 2004-08-10 Havoc Pennington <hp@redhat.com>
7747 * doc/dbus-tutorial.xml: add some more info on GLib bindings
7749 2004-08-09 Havoc Pennington <hp@redhat.com>
7751 * COPYING: switch to Academic Free License version 2.1 instead of
7752 2.0, to resolve complaints about patent termination clause.
7754 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
7756 * README: added documentation for the --enable-python
7759 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7761 * bus/config-parser.c (bus_config_parser_new): fix an invalid
7762 _unref in the SELinux support.
7764 * doc/busconfig.dtd: update DTD for SELinux support.
7766 * bus/config-loader-libxml.c: fix error handler and parser
7767 initialisation/cleanup. OOM test now works with libxml2 HEAD.
7769 * configure.in: remove the warning about libxml2.
7771 * dbus/dbus-bus.c: silence doxygen warning.
7773 2004-07-31 Colin Walters <walters@redhat.com>
7775 * configure.in: Move #error in SELinux check to its own line.
7777 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7779 * dbus/dbus-internals.h (_DBUS_SET_OOM):
7780 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7783 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7784 broken by the change in the _SET_OOM macros.
7786 2004-07-31 Colin Walters <walters@redhat.com>
7788 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7791 2004-07-31 Colin Walters <walters@redhat.com>
7793 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7794 to correctly detect DBUS__ACQUIRE_SVC. Also add an
7797 2004-07-24 Havoc Pennington <hp@redhat.com>
7799 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7801 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7804 * configure.in: add --enable-selinux
7806 * bus/policy.c (bus_policy_merge): add FIXME to a comment
7808 * bus/main.c (main): initialize and shut down selinux
7810 * bus/connection.c: store SELinux ID on each connection, to avoid
7811 repeated getting of the string context and converting it into
7814 * bus/bus.c (bus_context_get_policy): new accessor, though it
7816 (bus_context_check_security_policy): check whether the security
7817 context of sender connection can send to the security context of
7818 recipient connection
7820 * bus/config-parser.c: add parsing for <selinux> and <associate>
7822 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7823 implement dbus_connection_get_unix_fd()
7825 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7826 function, used by the selinux stuff
7828 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
7830 * bus/config-loader-libxml.c: complete the implementation of
7831 libxml backend for config file loader. Doesn't work with full OOM
7834 * configure.in: change error when selecting libxml into a warning.
7836 * test/data/invalid-config-files: add two non-well-formed XML
7839 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7841 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7842 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7843 be necessary to read all the buffer. (bug #894)
7845 * bus/activation.c (bus_activation_activate_service): fix a
7846 potential assertion failure (bug #896). Small optimization in the
7847 case of auto-activation messages.
7849 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7850 add test case for byte-through-vararg bug (#901). patch by Kimmo
7853 2004-07-28 Anders Carlsson <andersca@gnome.org>
7856 * python/dbus_bindings.pyx.in:
7857 Add dbus.init_gthreads (), allow emit_signal to pass
7858 arguments to the signal.
7860 2004-07-24 Havoc Pennington <hp@redhat.com>
7862 * AUTHORS: add some people, not really comprehensively, let me
7863 know if I missed you
7865 2004-07-24 Havoc Pennington <hp@redhat.com>
7867 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7870 * test/Makefile.am (DIST_SUBDIRS): here also
7872 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7874 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7875 breaking build on Solaris, reported by Farhad Saberi on the ML.
7877 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7878 va_arg invocation to account for integer promotion in the case of
7879 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7881 * bus/services.c (bus_service_remove_owner): fix bug #902, use
7882 _dbus_list_get_first_link, not _dbus_list_get_first.
7884 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7886 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7887 handler functions so that the asserts in _dbus_object_subtree_unref
7890 * dbus/dbus-transport-unix.c (do_reading):
7891 _dbus_transport_queue_messages return value is of type
7892 dbus_bool_t, not DBusDispatchStatus.
7894 2004-07-19 David Zeuthen <david@fubar.dk>
7896 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7899 (check_get_connection_unix_user): Debug says GetProperty; but the
7900 method is called GetConnectionUnixUser
7901 (check_get_connection_unix_process_id): New function
7902 (bus_dispatch_test): Actually call check_get_connection_unix_user();
7903 also call check_get_connection_unix_process_id()
7906 (bus_driver_handle_get_connection_unix_process_id): New function,
7907 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7911 (handle_server_data_external_mech): Set pid from the credentials
7912 obtained from the socket
7914 * dbus/dbus-connection.c:
7915 (dbus_connection_get_unix_process_id): New function
7917 * dbus/dbus-connection.h:
7918 Add prototype for dbus_connection_get_unix_process_id
7920 * dbus/dbus-transport.c:
7921 (_dbus_transport_get_unix_process_id): New function
7923 * dbus/dbus-transport.h:
7924 Add prototype for _dbus_transport_get_unix_process_id
7926 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
7928 * dbus/dbus-message.c: Message counter fix, patch by Christian
7929 Hammond <chipx86@gnupdate.org>
7931 2004-07-18 Seth Nickell <seth@gnome.org>
7934 * python/dbus_bindings.pyx.in:
7935 * python/tests/test-client.py:
7937 Add dbus.ByteArray and dbus_bindings.ByteArray
7938 types so that byte streams can be passed back.
7940 Give jdahlin the heaps of credit that are so
7943 2004-07-12 Seth Nickell <seth@gnome.org>
7947 Add message argument to the default object_method_handler
7950 * python/dbus_bindings.pyx.in:
7952 Automatically return NIL when passed an empty list
7953 (we can't pass back a list since lists are typed
7954 and we don't have any idea what type the the client
7955 intended the list to be... :-( )
7957 2004-07-10 Seth Nickell <seth@gnome.org>
7959 * python/examples/Makefile.am:
7961 Fix distcheck breakage caused by new examples.
7963 2004-07-10 Seth Nickell <seth@gnome.org>
7967 Add "message" argument to service-side dbus.Object
7968 methods. This will break existing services written
7969 using the python bindings, but will allow extraction
7970 of all the message information (e.g. who its from).
7972 Add improved "object oriented" signal handling/emission.
7974 * python/examples/example-service.py:
7978 * python/examples/example-signal-emitter.py:
7979 * python/examples/example-signal-recipient.py:
7981 Two new examples that show how to emit and receive
7982 signals using the new APIs.
7984 * python/examples/example-signals.py:
7985 * python/examples/gconf-proxy-service.py:
7986 * python/examples/gconf-proxy-service2.py:
7988 Add "message" argument to service methods.
7990 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
7992 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7993 * dbus/bus.c (dbus_bus_get_unix_user)
7994 * doc/dbus-specification.xml: implement GetConnectionUnixUser
7995 method of org.freedesktop.DBus interface.
7997 * bus/dispatch.c: test case
7999 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
8001 * python/Makefile.am: switched include directory from glib/ to dbus/
8002 since dbus-glib.h moved
8004 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
8006 * configure.in: prevent building the gcj stuff and libxml loader
8007 since they are broken.
8009 2004-06-20 Havoc Pennington <hp@redhat.com>
8011 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
8012 codes from the dbus error names
8014 * glib/dbus-glib.h: move to subdir dbus/ since it's included
8015 as dbus/dbus-glib.h and that breakage is now visible due to
8016 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8018 * glib/dbus-glib.h: s/gproxy/g_proxy/
8020 * dbus/dbus-shared.h: new header to hold stuff shared with
8023 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8026 * glib/dbus-glib.h (dbus_set_g_error): move to
8027 dbus-glib-lowlevel.h
8029 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8030 of stuff to enable this
8032 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8034 * a bunch of other changes with the same basic "separate glib
8035 bindings from dbus.h" theme
8037 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
8039 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8041 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8043 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
8045 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8046 the reply value of the ServiceExists message.
8048 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
8050 * python/dbus_bindings.pyx.in: No longer need to parse path
8051 elements and pass them as arrays of strings. The C API now
8052 accepts plain path strings.
8053 (_build_parsed_path): removed
8055 2004-06-07 Havoc Pennington <hp@redhat.com>
8057 * doc/TODO: remove auto-activation item since it's done; sort
8058 items by importance/milestone
8060 2004-06-07 Havoc Pennington <hp@redhat.com>
8062 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8063 random signature when using REQUIRED_FIELDS (this hack won't work
8066 * dbus/dbus-message.c: change the signature to be a header field,
8067 instead of message->signature special-case string. Incremental
8068 step forward. Then we can fix up code to send the signature in the
8069 message, then fix up code to validate said signature, then fix up
8070 code to not put the typecodes inline, etc.
8071 (load_one_message): don't make up the signature after the fact
8072 (decode_header_data): require signature field for the known
8075 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8077 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8079 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
8081 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8083 * mono/Handler.cs: Updated to follow new path argument for
8084 (un-)registering objects.
8086 * mono/example/Makefile.am:
8088 * configure.in: Bumped required version for mono and use new -pkg
8091 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
8093 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8094 registration functions take the path argument as char* instead of
8097 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8098 split off the path decompostion part of
8099 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8102 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8104 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8106 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8107 machine approach. A state is implemented as a function that
8108 handles incoming events as specified for that state.
8110 * doc/dbus-specification.xml: Update auth protocol state machine
8111 specification to match implementation. Remove some leftover
8114 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8116 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8117 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8120 * Doxyfile.in: remove deprecated options.
8122 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8123 glib/test-thread.h, glib/test-thread-client.c,
8124 glib/test-thread-server.c, glib/test-profile.c,
8125 glib/test-dbus-glib.c: remove these unused files.
8127 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
8129 * dbus/dbus-object-tree.c
8130 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8131 non-fallback handlers (bug #684).
8132 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8133 (find_subtree_recurse): report wether the returned subtree is an
8134 exact match or a "fallback" match higher up in the tree.
8135 (object_tree_test_iteration): update test case.
8137 2004-06-01 Seth Nickell <seth@gnome.org>
8139 * python/dbus_bindings.pyx.in:
8140 * python/tests/test-client.py:
8142 Round off basic type support. Add dicts (yay!), and
8143 remaining array types.
8145 Make MessageIter more general so it works for dicts too.
8147 Mark all loop variables as C integers.
8149 2004-05-31 Havoc Pennington <hp@redhat.com>
8151 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8154 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8156 * glib/dbus-glib-tool.c (main): set up to have a --self-test
8157 option that runs the tests, and start filling in some code
8158 including for starters just dumping the interfaces to stdout
8160 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8162 * test/data/valid-introspection-files/lots-of-types.xml: test of
8163 an example introspection file
8165 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8168 2004-05-31 Seth Nickell <seth@gnome.org>
8170 * python/dbus_bindings.pyx.in:
8171 * python/tests/test-client.py:
8176 Fix string array memory trashing bug... oops...
8178 2004-05-30 Seth Nickell <seth@gnome.org>
8182 Add a nicer-but-less-flexible alternate API for handling
8183 calls to virtual objects in dbus.ObjectTree.
8185 Screw up the argument order to the dbus.Object constructor
8186 for consistency with dbus.ObjectTree (and to make dbus_methods
8187 optional for future extension)
8189 * python/examples/Makefile.am:
8190 * python/examples/gconf-proxy-service.py:
8191 * python/examples/gconf-proxy-service2.py:
8193 Alternate implementation of gconf-proxy-service using the
8194 nicer dbus.ObjectTree API.
8196 * python/examples/example-service.py:
8197 * python/tests/test-server.py
8199 Reverse the argument order to deal with dbus.Object constructor
8202 2004-05-30 Seth Nickell <seth@gnome.org>
8204 * python/examples/example-client.py:
8205 * python/examples/example-service.py:
8207 Take it back. Lists seem to work but they're broken
8208 in the test suite. Make the base examples use
8211 2004-05-30 Seth Nickell <seth@gnome.org>
8213 * python/dbus_bindings.pyx.in:
8214 * python/tests/test-client.py:
8216 Add some more tests and fix errors that crop up.
8217 Unfortunately, currently it seems like marshalling
8218 and unmarshalling of lists is completely broken :-(
8220 2004-05-30 Seth Nickell <seth@gnome.org>
8222 * python/dbus_bindings.pyx.in:
8224 Add support for ObjectPath type.
8228 Refactor message handling code to a common function.
8230 * python/tests/test-client.py:
8231 * python/tests/test-server.py:
8233 Add tests that check to make sure values of all types
8234 can be echoed from a service w/o mangling.
8236 2004-05-29 Seth Nickell <seth@gnome.org>
8240 Add ObjectTree class which allows implementation
8241 of trees of "virtual" objects. Basically the python
8242 wrapper for "register_fallback".
8244 * python/examples/Makefile.am
8245 * python/examples/gconf-proxy-client.py:
8246 * python/examples/gconf-proxy-service.py:
8248 Implement a simple GConf proxy service that supports
8249 get/set on string and int GConf keys using the ObjectTree.
8251 2004-05-29 Seth Nickell <seth@gnome.org>
8254 * python/examples/example-client.py:
8255 * python/examples/example-service.py:
8256 * python/examples/list-system-services.py:
8258 Add SessionBus, SystemBus and ActivationBus classes
8259 so you don't need to know the special little BUS_TYPE
8262 2004-05-29 Havoc Pennington <hp@redhat.com>
8264 * bus/config-parser.c (process_test_valid_subdir): temporarily
8265 stop testing config parser OOM handling, since expat has issues
8266 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8268 * bus/dbus-daemon-1.1.in: change requested_reply to
8269 send_requested_reply/receive_requested_reply so we can send the
8270 replies, not just receive them.
8272 * bus/config-parser.c: parse the new
8273 send_requested_reply/receive_requested_reply
8275 * bus/policy.c (bus_client_policy_check_can_send): add
8276 requested_reply argument and use it
8278 * bus/bus.c (bus_context_check_security_policy): pass through
8279 requested_reply status to message send check
8281 * bus/system.conf.in: adapt to requested_reply change
8283 2004-05-28 Havoc Pennington <hp@redhat.com>
8285 * test/glib/test-service-glib.c (main): remove unused variable
8287 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8289 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8290 from the enum, no longer in use.
8292 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8295 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8296 whether error_name passed in is a valid error name.
8298 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
8300 * dbus/dbus-message.c (dbus_message_get_args): Added support for
8301 OBJECT_PATH and OBJECT_PATH_ARRAY
8303 2004-05-28 Seth Nickell <seth@gnome.org>
8305 * python/examples/Makefile.am:
8307 Forget to add Makefile.am. Do not pass go.
8309 2004-05-28 Michael Meeks <michael@ximian.com>
8311 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
8314 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8316 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8317 (_dbus_message_iter_get_basic_type_array): impl.
8318 drastically simplify ~all relevant _get methods to use these.
8319 (_dbus_message_iter_append_basic_array),
8320 (dbus_message_iter_append_basic): impl
8321 drastically simplify ~all relevant _append methods to use these.
8323 * dbus/dbus-message-builder.c (parse_basic_type)
8324 (parse_basic_array, lookup_basic_type): impl.
8325 (_dbus_message_data_load): prune scads of duplicate /
8328 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
8329 (_dbus_demarshal_basic_type): implement,
8330 (demarshal_and_validate_len/arg): beef up debug.
8331 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8333 2004-05-27 Seth Nickell <seth@gnome.org>
8336 * python/Makefile.am:
8338 Include the example python apps in the tarball.
8340 * python/examples/list-system-services.py
8342 Add a python new example that fetches the list of services
8343 from the system bus.
8345 2004-05-27 Seth Nickell <seth@gnome.org>
8348 * python/dbus_bindings.pyx.in:
8350 Fix failure to notify that a signal was not handled,
8351 resulted in hung functions.
8353 2004-05-25 Colin Walters <walters@redhat.com>
8355 * tools/dbus-monitor.c (main): Monitor all types of messages.
8357 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
8359 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8360 which unregisters the object path and disposes the handler.
8362 2004-05-23 Kristian Høgsberg <krh@redhat.com>
8364 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8366 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8367 operands to && so we call dbus_message_iter_next () for the last
8370 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8372 * dbus/dbus-object-tree.c
8373 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8374 children even if the requested path isn't registered.
8375 (object_tree_test_iteration): test object_tree_list_registered.
8377 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8380 2004-05-20 Kristian Høgsberg <krh@redhat.com>
8382 * doc/TODO: Remove resolved items.
8384 * bus/expirelist.h (struct BusExpireList): remove unused n_items
8387 * bus/connection.c (bus_connections_expect_reply): Enforce the
8388 per-connection limit on pending replies.
8390 Patch from Jon Trowbridge <trow@ximian.com>:
8392 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
8393 up a watch that triggers a config reload when one end of the pipe
8395 (signal_handler): Instead of doing the config reload in our SIGHUP
8396 handler, just write to the reload pipe and let the associated
8397 watch handle the reload when control returns to the main loop.
8399 * bus/driver.c (bus_driver_handle_reload_config): Added.
8400 Implements a ReloadConfig method for requesting a configuration
8401 file reload via the bus driver.
8403 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
8405 * HACKING: Updated release instructions concerning the wiki page.
8407 2004-05-18 Kristian Høgsberg <krh@redhat.com>
8409 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8410 filter against auth->allowed_mechs; we only add allowed mechs in
8411 record_mechanisms().
8413 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8414 ALLOWED_MECHS to auth-script format so we can set the list of
8417 * data/auth/client-out-of-mechanisms.auth-script: New test to
8418 check client disconnects when it is out of mechanisms to try.
8420 * dbus/dbus-auth.c (process_command): Remove check for lines
8421 longer that 1 MB; we only buffer up maximum 16 kB.
8423 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8424 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8425 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8426 assume there might be unused bytes.
8428 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8429 client-out-of-mechs, it is handled in process_reject(). Move check
8430 for max failures to send_rejected(), as it's a server-only thing.
8432 * dbus/dbus-auth.c: Factor out protocol reply code into functions
8433 send_auth(), send_data(), send_rejected(), send_error(),
8434 send_ok(), send_begin() and send_cancel().
8436 2004-05-17 Kristian Høgsberg <krh@redhat.com>
8438 Remove base64 encoding, replace with hex encoding. Original patch
8439 from trow@ximian.com, added error handling.
8441 * dbus/dbus-string.c (_dbus_string_base64_encode)
8442 (_dbus_string_base64_decode): Remove.
8443 (_dbus_string_hex_decode): Add end_return argument so we can
8444 distinguish between OOM and invalid hex encoding.
8445 (_dbus_string_test): Remove base64 tests and add test case for
8448 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8449 Replace base64 with hex.
8451 * test/data/auth/invalid-hex-encoding.auth-script: New test case
8452 for invalid hex encoded data in auth protocol.
8454 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
8456 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8459 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8461 * mono/dbus-sharp.dll.config.in: Added for GAC
8462 * mono/dbus-sharp.snk: Added for GAC
8463 * mono/Assembly.cs.in: Added for GAC
8464 * mono/Makefile.am: Changes for GAC installation
8465 * configure.in: Added refs for dbus-sharp.dll.config.in and
8466 Assembly.cs.in. More fixes for mono testing
8467 * mono/example/Makefile.am: Changed var to CSC
8468 * Makefile.am: Changed flag name to DBUS_USE_CSC
8470 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8472 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8473 * mono/doc/*: Added documentation framework
8474 * configure.in: Added monodoc check
8475 * README: Added description of mono configure flags
8477 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
8479 * doc/dbus-specification.xml: Added a "Required" column to the
8480 header fields table and changed the "zero or more" verbage in
8481 the above paragraph to read "The header must contain the required
8482 named header fields and zero or more of the optional named header
8484 * test/data/invalid-messages/*.message: Added the required PATH
8485 named header field to the tests so that they don't fail on
8486 'Missing path field'
8488 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
8490 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8491 the stack by implicitly defining variable and parameter types and
8492 removing the hack of defining C pointers as python objects and later
8495 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
8497 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8499 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
8501 * mono/DBusType/Dict.cs: Handle empty dicts
8502 * mono/DBusType/Array.cs: Handle empty arrays
8503 * mono/Arguments.cs: Handle empty arguments
8505 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
8507 * dbus-sharp.pc.in: Modified to include include Libs and Requires
8510 2004-04-25 Kristian Høgsberg <krh@redhat.com>
8512 * test/data/valid-messages/standard-*.message: Update message
8513 test scripts to new header field names.
8515 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
8517 * test/break-loader.c (randomly_do_n_things): tracked down buffer
8518 overflow to times_we_did_each_thing array which would chop off the
8519 first character of the failure_dir string. Increased the size of
8520 the array to 7 to reflect the number of random mutation functions
8523 2004-04-21 Kristian Høgsberg <krh@redhat.com>
8525 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8526 unix_server->watch here, it is unreffed in disconnect.
8527 (_dbus_server_new_for_tcp_socket): convert NULL host to
8528 "localhost" here so we don't append NULL to address.
8530 * dbus/dbus-server.c (_dbus_server_test): Add test case for
8531 various addresses, including tcp with no explicit host.
8533 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8535 * dbus/dbus-message.c (decode_header_data, decode_string_field):
8536 fix incorrect setting of .name_offset in the HeaderField (it was
8537 off by two bytes, positioned right after the name and typecode)
8539 * bus/bus.c (bus_context_new, bus_context_unref): test before
8540 calling dbus_server_free_data_slot and _dbus_user_database_unref
8541 in case of an error.
8543 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8546 2004-04-19 Kristian Høgsberg <krh@redhat.com>
8548 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8549 _dbus_poll() instead of select().
8551 2004-04-15 Jon Trowbridge <trow@ximian.com>
8553 * bus/main.c (signal_handler): Reload the configuration files
8555 (main): Set up our SIGHUP handler.
8557 * bus/bus.c (struct BusContext): Store the config file, user and
8558 fork flag in the BusContext.
8559 (process_config_first_time_only): Added. Contains the code
8560 (previously in bus_context_new) for setting up the BusContext from
8561 the BusConfigParser that should only be run the first time the
8562 config files are read.
8563 (process_config_every_time): Added. Contains the code (previously
8564 in bus_context_new) for setting up the BusContext from the
8565 BusConfigParser that should be run every time the config files are
8567 (load_config): Added. Builds a BusConfigParser from the config
8568 files and passes the resulting structure off to
8569 process_config_first_time_only (assuming this is the first time)
8570 and process_config_every_time.
8571 (bus_context_new): All of the config-related code has been moved
8572 to process_config_first_time_only and process_config_every_time.
8573 Now this function just does the non-config-related initializations
8574 and calls load_config.
8575 (bus_context_reload_config): Added.
8577 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
8579 * bus/driver.c (bus_driver_handle_get_service_owner):
8580 implement a GetServiceOwner method.
8581 * doc/dbus-specification.xml: document it.
8582 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8584 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8585 implement, using the bus GetServiceOwner method.
8587 * test/glib/test-dbus-glib.c:
8588 use dbus_gproxy_new_for_service_owner so that we can receive the
8591 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
8593 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8594 dbus/dbus-message.c, dbus/dbus-protocol.h
8595 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8597 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8598 dbus/dbus-message.c, dbus/dbus-protocol.h
8599 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8601 * dbus/dbus-internals.c (_dbus_header_field_to_string):
8602 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8603 DBUS_HEADER_FIELD_SENDER resolves to "sender"
8605 * doc/dbus-specification.xml (Header Fields Table):
8606 s/SERVICE/DESTINATION
8607 s/SENDER_SERVICE/SENDER
8610 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
8612 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8615 2004-04-13 Michael Meeks <michael@ximian.com>
8617 * glib/dbus-gobject.c (handle_introspect): split out
8618 (introspect_properties): this.
8619 (handle_introspect): implement this.
8621 * test/glib/Makefile.am: use the absolute path so the bus
8622 daemon's chdir ("/") doesn't kill us dead.
8624 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8626 2004-04-12 Jon Trowbridge <trow@ximian.com>
8628 * bus/config-parser.c (struct BusConfigParser): Added
8629 included_files field.
8630 (seen_include): Added. Checks whether or not a file has already
8631 been included by any parent BusConfigParser.
8632 (bus_config_parser_new): Copy the parent's included_files.
8633 (include_file): Track which files have been included, and fail on
8634 circular inclusions.
8635 (process_test_valid_subdir): Changed printf to report if we are
8636 testing valid or invalid conf files.
8637 (all_are_equiv): Changed printf to be a bit clearer about
8638 what we are actually doing.
8639 (bus_config_parser_test): Test invalid configuration files.
8641 2004-04-09 Jon Trowbridge <trow@ximian.com>
8643 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8644 argument. If non-null, the newly-constructed BusConfigParser will
8645 be initialized with the parent's BusLimits instead of the default
8647 (include_file): When including a config file, pass in
8648 the current parser as the parent and then copy the BusLimits
8649 from the included BusConfigParser pack to the current parser.
8650 (process_test_valid_subdir): Renamed from process_test_subdir.
8651 (process_test_equiv_subdir): Added. Walks through a directory,
8652 descending into each subdirectory and loading the config files
8653 it finds there. If any subdirectory contains two config files
8654 that don't produce identical BusConfigParser structs, fail.
8655 For now, the BusConfigParser's BusPolicies are not compared.
8656 (bus_config_parser_test): Call both process_test_valid_subdir and
8657 process_test_equiv_subdir.
8659 * bus/config-loader-libxml.c (bus_config_load): Take a parent
8660 argument and pass it along to the call to bus_config_parser_new.
8661 Also made a few small changes to allow this code to compile.
8663 * bus/config-loader-expat.c (bus_config_load): Take a parent
8664 argument and pass it along to the call to bus_config_parser_new.
8666 * bus/bus.c (bus_context_new): Load the config file
8667 with a NULL parent argument.
8669 2004-03-29 Michael Meeks <michael@ximian.com>
8671 * glib/dbus-gobject.c (introspect_properties): split
8672 out, fix mangled 'while' flow control.
8673 (introspect_signals): implement.
8674 (handle_introspect): update.
8676 2004-03-29 Michael Meeks <michael@ximian.com>
8678 * glib/dbus-gobject.c (set_object_property): split out /
8679 re-work, use the property type, and not the message type(!)
8680 (get_object_property): ditto.
8682 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8683 (dbus_gvalue_marshal): make this code re-usable, needed
8684 for signals too, also on both proxy and server side.
8685 Re-write for more efficiency / readability.
8687 2004-03-29 Michael Meeks <michael@ximian.com>
8689 * dbus/dbus-message.c
8690 (dbus_message_new_error_printf): impl.
8692 * dbus/dbus-connection.c
8693 (dbus_connection_unregister_object_path): fix warning.
8695 * configure.in: fix no-mono-installed situation.
8697 2004-03-27 Havoc Pennington <hp@redhat.com>
8699 Patch from Timo Teräs:
8701 * tools/dbus-send.c (main): if --print-reply, assume type is
8702 method call; support boolean type args
8704 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8705 bunch of memleak and logic bugs
8707 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8709 * mono/Arguments.cs:
8710 * mono/Introspector.cs:
8712 * mono/InterfaceProxy.cs:
8714 * mono/ProxyBuilder.cs:
8716 Added InterfaceProxy class to avoid building proxies for every
8720 * dbus-message.c (dbus_message_append_args_valist)
8721 (dbus_message_iter_get_object_path)
8722 (dbus_message_iter_get_object_path_array)
8723 (dbus_message_iter_append_object_path)
8724 (dbus_message_iter_append_object_path_array):
8725 Added object_path iter functions to handle OBJECT_PATH arguments
8727 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8729 First checkin of mono bindings.
8732 Build stuff for the bindings
8733 * dbus-sharp.pc.in: Added for pkgconfig
8735 2004-03-21 Havoc Pennington <hp@redhat.com>
8737 * test/test-service.c (main): remove debug spew
8739 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8741 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8744 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8745 (dbus_message_iter_init_array_iterator)
8746 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8747 indicate whether the iterator is empty
8749 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8752 2004-03-19 Havoc Pennington <hp@redhat.com>
8754 * NEWS: 0.21 updates
8756 * configure.in: 0.21
8758 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8760 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8761 you don't need pyrex to make dist
8763 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8766 2004-03-18 Richard Hult <richard@imendio.com>
8768 * dbus/dbus-message.c (dbus_message_get_auto_activation)
8769 (dbus_message_set_auto_activation): Add doxygen docs.
8771 2004-03-16 Richard Hult <richard@imendio.com>
8773 * bus/activation.c: (bus_activation_service_created),
8774 (bus_activation_send_pending_auto_activation_messages),
8775 (bus_activation_activate_service):
8777 * bus/dispatch.c: (bus_dispatch),
8778 (check_nonexistent_service_auto_activation),
8779 (check_service_auto_activated),
8780 (check_segfault_service_auto_activation),
8781 (check_existent_service_auto_activation), (bus_dispatch_test):
8782 * bus/driver.c: (bus_driver_handle_activate_service):
8783 * bus/services.c: (bus_registry_acquire_service):
8784 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8785 (dbus_message_get_auto_activation):
8786 * dbus/dbus-message.h:
8787 * dbus/dbus-protocol.h: Implement auto-activation.
8789 * doc/dbus-specification.xml: Add auto-activation to the spec.
8791 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
8793 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8794 fix a bug with CUSTOM types.
8796 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8797 a unit test for this bug (used to fail).
8799 2004-03-12 Mikael Hallendal <micke@imendio.com>
8802 (babysitter_watch_callback): notify all pending activations waiting for
8803 the same exec that the activation failed.
8804 (bus_activation_activate_service): shortcut the activation if we
8805 already waiting for the same executable to start up.
8807 2004-03-12 Mikael Hallendal <micke@imendio.com>
8810 - Added service file reloading.
8811 Each service files directory is kept in an hash table in
8812 BusActivation and each BusActivationEntry knows what .service-file it
8813 was read from. So when you try to activate a service the bus will
8814 check if it's been updated, removed or if new .service-files has
8816 - Test code at the bottom for the service file reloading.
8817 * bus/test-main.c: (main):
8819 - added service reloading test.
8820 * dbus/dbus-sysdeps.c:
8821 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8823 2004-03-08 Michael Meeks <michael@ximian.com>
8825 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
8826 bail immediately if disconnected, to avoid busy loop.
8828 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8829 cleanup cut/paste/inefficiency.
8831 2004-03-01 David Zeuthen <david@fubar.dk>
8833 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8834 bug where args were used twice. This bug resulted in a segfault
8835 on a Debian/PPC system when starting the messagebus daemon. Include
8836 dbus-sysdeps.h for DBUS_VA_COPY
8838 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8840 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8841 appropriate va_copy implementation. From GLib
8843 2004-02-24 Joe Shaw <joe@ximian.com>
8845 * bus/services.c (bus_registry_acquire_service): We need to pass
8846 in the service name to dbus_set_error() to prevent a crash.
8848 2003-12-26 Anders Carlsson <andersca@gnome.org>
8850 * AUTHORS: Reveal my True identity.
8852 2003-12-17 Mikael Hallendal <micke@imendio.com>
8854 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8855 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8857 2003-12-13 Mikael Hallendal <micke@imendio.com>
8859 * doc/TODO: Added not about better error check of configuration files.
8861 2003-12-02 Richard Hult <richard@imendio.com>
8863 * Update AFL version to 2.0 throughout the source files to reflect
8864 the update that was done a while ago.
8866 2003-12-02 Richard Hult <richard@imendio.com>
8868 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8869 wrote_dict_key to FALSE on the iter that the dict is appended to,
8870 just like when appending other types. Fixes a bug where a dict
8871 couldn't be put inside a dict.
8872 (dbus_message_iter_append_dict_key): Fix typo in warning message.
8873 (message_iter_test, _dbus_message_test): Add test case for dict
8876 2003-12-01 David Zeuthen <david@fubar.dk>
8878 * python/dbus.py: Add the actual message when calling the reciever
8879 of a signal such that parameters can be inspected. Add the method
8880 remove_signal_receiver
8882 2003-11-26 Mikael Hallendal <micke@imendio.com>
8886 * glib/*.[ch]: Made ref functions return the pointer
8888 2003-11-25 Zack Rusin <zack@kde.org>
8890 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8892 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
8895 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
8896 the Integrator and to better fit with the server,
8898 2003-11-24 Zack Rusin <zack@kde.org>
8900 * qt/connection.h, qt/connection.cpp: removing initDbus method since
8901 the integrator handles it now
8903 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8904 since QTimer wasn't really meant to be used the way DBusTimeout is
8906 2003-11-24 Zack Rusin <zack@kde.org>
8908 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
8909 Integrator class which integrates D-BUS with the Qt event loop,
8911 * qt/connection.h, qt/connection.cpp: Move all the code which
8912 was dealing with D-BUS integration to the Integrator class,
8913 and start using Integrator,
8915 2003-11-23 Zack Rusin <zack@kde.org>
8917 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
8920 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8921 switching namespaces to DBusQt, reworking the class,
8923 * Makefile.cvs: switching dependencies so that it matches KDE
8926 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
8929 2003-11-19 Havoc Pennington <hp@redhat.com>
8933 * configure.in: bump version to 0.20
8935 * configure.in (have_qt): add yet another place to look for qt
8936 (someone hand trolltech a .pc file...)
8938 2003-11-01 Havoc Pennington <hp@redhat.com>
8940 * doc/dbus-specification.xml: add state machine docs on the auth
8941 protocol; just a first draft, I'm sure it's wrong.
8943 2003-10-28 David Zeuthen <david@fubar.dk>
8945 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8946 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8948 2003-10-28 Havoc Pennington <hp@redhat.com>
8950 * dbus/dbus-message.c (get_next_field): delete unused function
8952 2003-10-28 Havoc Pennington <hp@redhat.com>
8954 * bus/expirelist.c (do_expiration_with_current_time): detect
8955 failure of the expire_func due to OOM
8957 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8959 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8960 NoReply error that's now created by the bus when the service exits
8962 2003-10-28 Havoc Pennington <hp@redhat.com>
8964 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8965 tests for set_path, set_interface, set_member, etc.
8967 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8969 * dbus/dbus-message.c (set_string_field): always just delete and
8970 re-append the field; accept NULL for deletion
8971 (re_align_fields_recurse): reimplement
8973 2003-10-26 Havoc Pennington <hp@redhat.com>
8975 * dbus/dbus-connection.c: fix docs to properly describe the
8976 disconnected message
8977 (_dbus_connection_notify_disconnected): remove this function;
8978 we can't synchronously add the disconnected message, we have to
8979 do it after we've queued any remaining real messages
8980 (_dbus_connection_get_dispatch_status_unlocked): queue the
8981 disconnect message only if the transport has finished queueing all
8982 its real messages and is disconnected.
8983 (dbus_connection_disconnect): update the dispatch status here
8985 2003-10-22 Havoc Pennington <hp@redhat.com>
8987 * bus/bus.c (bus_context_check_security_policy): fix up assertion
8989 * bus/connection.c (bus_transaction_send_from_driver): set the
8990 destination to the connection's base service
8992 2003-10-20 Havoc Pennington <hp@redhat.com>
8994 hmm, make check is currently not passing.
8996 * doc/dbus-specification.xml: add requirement that custom type
8997 names follow the same rules as interface names.
8999 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9000 duplication and allow 'c' to be 'custom'; dict is now 'm' for
9003 * doc/dbus-specification.xml: update type codes to match
9004 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9005 CUSTOM. Add type OBJECT_PATH to the spec.
9007 2003-10-17 Havoc Pennington <hp@redhat.com>
9009 * bus/driver.c (create_unique_client_name): use "." as separator
9010 in base service names instead of '-'
9012 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9013 byte at the end of the string
9015 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9016 optimization macros since string validation seems to be a slow
9019 * doc/dbus-specification.xml: restrict valid
9020 service/interface/member/error names. Add test suite code for the
9023 * dbus/dbus-string.c: limit service/interface/member/error names
9026 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9027 format arg to verbose spew
9029 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9030 memory, return instead of g_error
9032 * test/test-service.c (path_message_func): support emitting a
9035 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9036 activation bus type if DBUS_BUS_ACTIVATION was set; default to
9037 assuming the activation bus was the session bus so that services
9038 started manually will still register.
9039 (init_connections_unlocked): fix so that in OOM situation we get
9040 the same semantics when retrying the function
9042 * test/test-service.c (main): change to use path registration, to
9043 test those codepaths; register with DBUS_BUS_ACTIVATION rather
9044 than DBUS_BUS_SESSION
9046 2003-10-16 Havoc Pennington <hp@redhat.com>
9048 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9050 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9051 coverage of the tests
9052 (coverage-report.txt): don't move the .da and .bbg files around
9054 2003-10-16 Havoc Pennington <hp@redhat.com>
9056 * bus/bus.c (struct BusContext): remove struct field I didn't mean
9059 2003-10-16 Havoc Pennington <hp@redhat.com>
9061 * bus/connection.c (bus_pending_reply_expired): either cancel or
9063 (bus_connections_check_reply): use unlink, not remove_link, as we
9064 don't want to free the link; fixes double free mess
9066 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9067 where no reply was received
9069 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9072 * bus/signals.c (match_rule_matches): add special cases for the
9073 bus driver, so you can match on sender/destination for it.
9075 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9076 DBUS_PRINT_BACKTRACE is set
9078 * dbus/dbus-internals.c: add pid to assertion failure messages
9080 * dbus/dbus-connection.c: add message type code to the debug spew
9082 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9083 sender=foo not service=foo
9085 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9086 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
9087 DBUS_ACTIVATION_ADDRESS instead
9089 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9090 DBUS_SYSTEM_BUS_ADDRESS if appropriate
9092 * bus/bus.c (bus_context_new): handle OOM copying bus type into
9095 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9096 (dbus_message_iter_get_object_path_array): new function (half
9097 finished, disabled for the moment)
9099 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9100 DBUS_MESSAGE_TYPE_ERROR
9102 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9103 avoid redirecting stderr to /dev/null
9104 (babysit): close stdin if not doing the "exit_with_session" thing
9106 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9107 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9108 stdout/stdin, so things don't get confused
9110 * bus/system.conf.in: fix to allow replies, I modified .conf
9111 instead of .conf.in again.
9113 2003-10-14 David Zeuthen <david@fubar.dk>
9115 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9116 argtype to arg_type when raising unknown arg type exception.
9117 Changed type list to reflect the changes in dbus-protocol.h so
9118 the bindings actually work.
9120 2003-10-14 Havoc Pennington <hp@redhat.com>
9122 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9123 to have a bug keeping it from outputting the .da files sometimes
9124 (string_get_string): don't append garbage nul bytes to the string.
9126 2003-10-15 Seth Nickell <seth@gnome.org>
9128 * python/Makefile.am:
9130 Include dbus_h_wrapper.h in the dist tarball.
9132 2003-10-14 Havoc Pennington <hp@redhat.com>
9134 * bus/bus.c (bus_context_check_security_policy): revamp this to
9135 work more sanely with new policy-based requested reply setup
9137 * bus/connection.c (bus_transaction_send_from_driver): set bus
9138 driver messages as no reply
9140 * bus/policy.c (bus_client_policy_check_can_receive): handle a
9141 requested_reply attribute on allow/deny rules
9143 * bus/system.conf: add <allow requested_reply="true"/>
9145 * bus/driver.c (bus_driver_handle_message): fix check for replies
9146 sent to the bus driver, which was backward. How did this ever work
9147 at all though? I think I'm missing something.
9149 * dbus/dbus-message.c (decode_header_data): require error and
9150 method return messages to have a reply serial field to be valid
9151 (_dbus_message_loader_queue_messages): break up this function;
9152 validate that reply serial and plain serial are nonzero;
9153 clean up the OOM/error handling.
9154 (get_uint_field): don't return -1 from this
9155 (dbus_message_create_header): fix signed/unsigned bug
9157 * bus/connection.c (bus_connections_expect_reply): save serial of
9158 the incoming message, not reply serial
9160 2003-10-14 Havoc Pennington <hp@redhat.com>
9162 * bus/connection.c: implement pending reply tracking using
9165 * bus/bus.c (bus_context_check_security_policy): verify that a
9166 reply is pending in order to allow a reply to be sent. Deny
9167 messages of unknown type.
9169 * bus/dbus-daemon-1.1.in: update to mention new resource limits
9171 * bus/bus.c (bus_context_get_max_replies_per_connection): new
9172 (bus_context_get_reply_timeout): new
9174 2003-10-13 Seth Nickell <seth@gnome.org>
9176 * python/Makefile.am:
9178 Pass "make distcheck": remove a couple files from DIST_FILES
9179 that weren't included in the final version.
9181 2003-10-12 Havoc Pennington <hp@pobox.com>
9183 Added test code that 1) starts an actual bus daemon and 2) uses
9184 DBusGProxy; fixed bugs that were revealed by the test. Lots
9185 more testing possible, but this is the basic framework.
9187 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9188 empty proxy lists from the proxy list hash
9190 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9191 couple of return_if_fail checks
9193 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9194 to allocate, so everything is cleared to NULL as it should be.
9196 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9197 source as data to dbus_connection_set_timeout_functions() as the
9198 timeout functions expected
9200 * test/glib/run-test.sh: add a little script to start up a message
9201 bus and run tests using it
9203 * tools/dbus-launch.1: updates
9205 * tools/dbus-launch.c (main): add --config-file option
9207 * tools/dbus-launch.c (main): remove confusing else if (runprog)
9208 that could never be reached.
9210 * dbus/dbus-message.c (dbus_message_new_method_return)
9211 (dbus_message_new_error, dbus_message_new_signal): set the
9212 no-reply-expected flag on all these. Redundant, but may
9213 as well be consistent.
9215 2003-10-11 Havoc Pennington <hp@pobox.com>
9217 * test/decode-gcov.c (function_solve_graph): make broken block
9218 graph a nonfatal error since it seems to be broken. Need to debug
9221 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9222 can't just check type > INVALID < LAST anymore
9224 * dbus/dbus-message.c (dbus_message_get_signature): new function
9225 (dbus_message_has_signature): new function
9226 (struct DBusMessage): add signature field (right now it isn't sent
9227 over the wire, just generated on the fly)
9228 (dbus_message_copy): copy the signature, and init strings to
9229 proper length to avoid some reallocs
9230 (dbus_message_iter_init_array_iterator): return void, since it
9232 (dbus_message_iter_init_dict_iterator): return void since it can't fail
9233 (_dbus_message_loader_queue_messages): add silly temporary hack to
9234 fill in message->signature on load
9236 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9237 characters, so they are relatively human-readable.
9239 2003-10-11 Havoc Pennington <hp@pobox.com>
9241 * dbus/dbus-message.c (_dbus_message_test): add more test
9242 coverage, but #if 0 for now since they uncover a bug
9243 not fixed yet; I think in re_align_field_recurse()
9244 (re_align_field_recurse): add FIXME about broken assertion
9246 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9248 * bus/connection.c: share a couple code bits with expirelist.c
9250 * bus/expirelist.h, bus/expirelist.c: implement a generic
9251 expire-items-after-N-seconds facility, was going to share between
9252 expiring connections and replies, decided not to use for expiring
9253 connections for now.
9255 * COPYING: include AFL 2.0 (still need to change all the file headers)
9257 2003-10-09 Havoc Pennington <hp@redhat.com>
9259 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9260 gcc 3.3. Not that we do anything about it yet.
9262 * bus/signals.c (bus_match_rule_parse): impose max length on the
9265 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9267 2003-10-09 Havoc Pennington <hp@redhat.com>
9269 Make matching rules theoretically work (add parser).
9271 * bus/bus.c (bus_context_check_security_policy): fix up to handle
9272 the case where destination is explicitly specified as bus driver
9273 and someone else is eavesdropping.
9275 * bus/policy.c (bus_client_policy_check_can_receive): fix up
9276 definition of eavesdropping and assertion
9278 * tools/dbus-send.c (main): use dbus_message_type_from_string
9280 * bus/signals.c (bus_match_rule_parse): implement
9282 * dbus/dbus-message.c (dbus_message_type_from_string): new
9284 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9286 2003-10-02 Havoc Pennington <hp@pobox.com>
9288 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9289 dbus_gproxy_oneway_call
9291 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
9292 (dbus_server_setup_with_g_main): fix to allow calling them more
9293 than once on the same args
9294 (dbus_bus_get_with_g_main): new function
9296 2003-10-02 Havoc Pennington <hp@redhat.com>
9298 * doc/dbus-tutorial.xml: write some stuff
9300 2003-09-29 Havoc Pennington <hp@pobox.com>
9302 * configure.in: split checks for Doxygen from XML docs, check for
9305 * doc/Makefile.am: XML-ify all the docs, and add a blank
9308 2003-09-29 Havoc Pennington <hp@pobox.com>
9310 * Merge dbus-object-names branch. To see the entire patch
9311 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9312 it's huuuuge though.
9313 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9315 2003-09-28 Havoc Pennington <hp@pobox.com>
9317 * HACKING: update to reflect new server
9319 2003-09-26 Seth Nickell <seth@gnome.org>
9322 * python/examples/example-signals.py:
9324 Start implementing some notions of signals. The API
9325 is really terrible, but they sort of work (with the
9326 exception of being able to filter by service, and to
9327 transmit signals *as* a particular service). Need to
9328 figure out how to make messages come from the service
9331 * python/dbus_bindings.pyx.in:
9333 Removed duplicate message_handler callbacks.
9335 2003-09-25 Havoc Pennington <hp@redhat.com>
9337 * bus/session.conf.in: fix my mess
9339 2003-09-25 Havoc Pennington <hp@pobox.com>
9341 * bus/session.conf.in: fix security policy, reported by Seth Nickell
9343 2003-09-25 Seth Nickell <seth@gnome.org>
9345 * python/examples/example-service.py:
9347 Johan notices complete wrong code in example-service, but
9348 completely wrong in a way that works exactly the same (!).
9349 Johan is confused, how could this possibly work? Example
9350 code fails to serve purpose of making things clear.
9353 2003-09-25 Mark McLoughlin <mark@skynet.ie>
9355 * doc/dbus-specification.sgml: don't require header fields
9356 to be 4-byte aligned and specify that fields should be
9357 distinguished from padding by the fact that zero is not
9360 * doc/TODO: remove re-alignment item and add item to doc
9361 the OBJECT_PATH type.
9363 * dbus/dbus-message.c:
9364 (HeaderField): rename the original member to value_offset
9365 and introduce a name_offset member to keep track of where
9366 the field actually begins.
9367 (adjust_field_offsets): remove.
9368 (append_int_field), (append_uint_field),
9369 (append_string_field): don't align the start of the header
9370 field to a 4-byte boundary.
9371 (get_next_field): impl finding the next marhsalled field
9372 after a given field.
9373 (re_align_field_recurse): impl re-aligning a number of
9374 already marshalled fields.
9375 (delete_field): impl deleting a field of any type and
9376 re-aligning any following fields.
9377 (delete_int_or_uint_field), (delete_string_field): remove.
9378 (set_int_field), (set_uint_field): no need to re-check
9379 that we have the correct type for the field.
9380 (set_string_field): ditto and impl re-aligning any
9382 (decode_header_data): update to take into account that
9383 the fields aren't 4-byte aligned any more and the new
9384 way to distinguish padding from header fields. Also,
9385 don't exit when there is too much header padding.
9386 (process_test_subdir): print the directory.
9387 (_dbus_message_test): add test to make sure a following
9388 field is re-aligned correctly after field deletion.
9390 * dbus/dbus-string.[ch]:
9391 (_dbus_string_insert_bytes): rename from insert_byte and
9392 allow the insert of multiple bytes.
9393 (_dbus_string_test): test inserting multiple bytes.
9395 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9396 warning note to docs about having to re-align any
9397 marshalled values following the string.
9399 * dbus/dbus-message-builder.c:
9400 (append_string_field), (_dbus_message_data_load):
9401 don't align the header field.
9403 * dbus/dbus-auth.c: (process_test_subdir): print the
9406 * test/break-loader.c: (randomly_add_one_byte): upd. for
9409 * test/data/invalid-messages/bad-header-field-alignment.message:
9412 * test/data/valid-messages/unknown-header-field.message: shove
9413 a dict in the unknown field.
9415 2003-09-25 Seth Nickell <seth@gnome.org>
9418 * python/dbus_bindings.pyx.in:
9420 Handle return values.
9422 * python/examples/example-client.py:
9423 * python/examples/example-service.py:
9425 Pass back return values from the service to the client.
9427 2003-09-24 Seth Nickell <seth@gnome.org>
9431 Connect Object methods (when you are sharing an object) up... pass
9432 in a list of methods to be shared. Sharing all the methods just
9433 worked out too weird. You can now create nice Services over the
9436 * python/dbus_bindings.pyx.in:
9438 Keep references to user_data tuples passed into C functions so
9439 Python doesn't garbage collect on us.
9441 Implement MethodReturn and Error subclasses of Message for creating
9442 DBusMessage's of those types.
9444 * python/examples/example-client.py:
9445 * python/examples/example-service.py:
9447 Simple example code showing both how create DBus services and objects,
9448 and how to use them.
9450 2003-09-23 Havoc Pennington <hp@pobox.com>
9452 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9454 2003-09-23 Havoc Pennington <hp@redhat.com>
9456 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9457 (dbus_gproxy_disconnect_signal): implement
9458 (dbus_gproxy_manager_remove_signal_match): implement
9459 (dbus_gproxy_manager_add_signal_match): implement
9460 (dbus_gproxy_oneway_call): implement
9462 2003-09-23 Havoc Pennington <hp@pobox.com>
9464 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9465 subclass. This means dropping the transparent thread safety of the
9466 proxy; you now need a separate proxy per-thread, or your own
9467 locking on the proxy. Probably right anyway.
9468 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9470 2003-09-22 Havoc Pennington <hp@redhat.com>
9472 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9474 2003-09-21 Seth Nickell <seth@gnome.org>
9476 First checkin of the Python bindings.
9478 * python/.cvsignore:
9479 * python/Makefile.am:
9480 * python/dbus_bindings.pyx.in:
9481 * python/dbus_h_wrapper.h:
9483 Pieces for Pyrex to operate on, building a dbus_bindings.so
9484 python module for low-level access to the DBus APIs.
9488 High-level Python module for accessing DBus objects.
9493 Build stuff for the python bindings.
9497 Extra macro needed for finding the Python C header files.
9499 2003-09-21 Havoc Pennington <hp@pobox.com>
9501 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9502 implementing the proxy manager, didn't get very far.
9504 * dbus/dbus-bus.c (dbus_bus_add_match): new
9505 (dbus_bus_remove_match): new
9507 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9508 path_name argument; adjust the other not-yet-implemented
9509 gproxy constructors to be what I think they should be.
9511 2003-09-21 Havoc Pennington <hp@pobox.com>
9513 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9514 by default for message bus connections.
9516 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9517 exit_on_disconnect flag is set and we process the disconnected
9519 (dbus_connection_set_exit_on_disconnect): new function
9521 2003-09-21 Havoc Pennington <hp@pobox.com>
9523 Get matching rules mostly working in the bus; only actually
9524 parsing the rule text remains. However, the client side of
9525 "signal connections" hasn't been started, this patch is only the
9528 * dbus/dispatch.c: fix for the matching rules changes
9530 * bus/driver.c (bus_driver_handle_remove_match)
9531 (bus_driver_handle_add_match): send an ack reply from these
9534 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9535 arguments, reported by Seth Nickell
9537 * bus/config-parser.c (append_rule_from_element): support
9538 eavesdrop=true|false attribute on policies so match rules
9539 can be prevented from snooping on the system bus.
9541 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9542 and "destination" in attribute names; fix some docs bugs;
9543 add eavesdrop=true|false attribute
9545 * bus/driver.c (bus_driver_handle_add_match)
9546 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9549 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9550 rid of broadcast service concept, signals are just always broadcast
9552 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9553 mostly implement matching rules stuff (currently only exposed as signal
9556 2003-09-21 Mark McLoughlin <mark@skynet.ie>
9558 * doc/dbus-specification.sgml: Change the header field name
9559 to be an enum and update the rest of the spec to reference
9560 the fields using the conventinal name.
9562 * dbus/dbus-protocol.h: update to reflect the spec.
9564 * doc/TODO: add item to remove the 4 byte alignment requirement.
9566 * dbus/dbus-message.c: Remove the code to generalise the
9567 header/body length and serial number header fields as named
9568 header fields so we can reference field names using the
9570 (append_int_field), (append_uint_field), (append_string_field):
9571 Append the field name as a byte rather than four chars.
9572 (delete_int_or_uint_field), (delete_string_field): reflect the
9573 fact that the field name and typecode now occupy 4 bytes instead
9575 (decode_string_field), (decode_header_data): update to reflect
9576 protocol changes and move the field specific encoding from
9577 decode_string_field() back into decode_header_data().
9579 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9580 Add utility to aid debugging.
9582 * dbus/dbus-message-builder.c:
9583 (append_string_field), (_dbus_message_data_load): Update to
9584 reflect protocol changes; Change the FIELD_NAME directive
9585 to HEADER_FIELD and allow it to take the field's conventional
9586 name rather than the actual value.
9588 * test/data/*/*.message: Update to use HEADER_FIELD instead
9589 of FIELD_NAME; Always align the header on an 8 byte boundary
9590 *before* updating the header length.
9592 2003-09-15 Havoc Pennington <hp@pobox.com>
9594 * dbus/dbus-pending-call.c: add the get/set object data
9595 boilerplate as for DBusConnection, etc. Use generic object data
9596 for the notify callback.
9598 * glib/dbus-gparser.c (parse_node): parse child nodes
9600 * tools/dbus-viewer.c: more hacking on the dbus-viewer
9602 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9603 contain functions shared between the convenience lib and the
9606 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9607 -export-symbols-regex to the GLib library
9609 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9610 fix the locking in here, and add a default handler for
9611 Introspect() that just returns sub-nodes.
9613 2003-09-14 Havoc Pennington <hp@pobox.com>
9615 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9616 rather than gfoo consistent
9618 * glib/dbus-gproxy.h: delete for now, move contents to
9619 dbus-glib.h, because the include files don't work right since we
9620 aren't in the dbus/ subdir.
9622 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9623 (dbus_gproxy_end_call): finish
9624 (dbus_gproxy_begin_call): finish
9626 * glib/dbus-gmain.c (dbus_set_g_error): new
9628 * glib/dbus-gobject.c (handle_introspect): include information
9629 about child nodes in the introspection
9631 * dbus/dbus-connection.c (dbus_connection_list_registered): new
9632 function to help in implementation of introspection
9634 * dbus/dbus-object-tree.c
9635 (_dbus_object_tree_list_registered_and_unlock): new function
9637 2003-09-12 Havoc Pennington <hp@pobox.com>
9639 * glib/dbus-gidl.h: add common base class for all the foo_info
9642 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9645 * test/Makefile.am: try test srcdir -ef . in addition to test
9646 srcdir = ., one of them should work (yeah lame)
9648 * glib/Makefile.am: build the "idl" parser stuff as a convenience
9651 * glib/dbus-gparser.h: make description_load routines return
9652 NodeInfo* not Parser*
9654 * Makefile.am (SUBDIRS): build test dir after all library dirs
9656 * configure.in: add GTK+ detection
9658 2003-09-07 Havoc Pennington <hp@pobox.com>
9660 * Make Doxygen contented.
9662 2003-09-07 Havoc Pennington <hp@pobox.com>
9664 * doc/dbus-specification.sgml: more updates
9666 2003-09-06 Havoc Pennington <hp@pobox.com>
9668 * doc/dbus-specification.sgml: partial updates
9670 * bus/dbus-daemon-1.1.in: fix the config file docs for the
9671 zillionth time; hopefully I edited the right file this time.
9673 * bus/config-parser.c (append_rule_from_element): support
9674 send_type, send_path, receive_type, receive_path
9676 * bus/policy.c: add message type and path to the list of things
9677 that can be "firewalled"
9679 2003-09-06 Havoc Pennington <hp@pobox.com>
9681 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9682 (dbus_connection_register_object_path): make this not handle
9683 messages to paths below the given path
9685 2003-09-03 Havoc Pennington <hp@pobox.com>
9687 * test/glib/Makefile.am: add this with random glib-linked test
9690 * glib/Makefile.am: remove the random test programs from here,
9691 leave only the unit tests
9693 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
9694 uscore/javacaps conversion, and fix
9695 (get_object_property, set_object_property): change to .NET
9696 convention for mapping props to methods, set_FooBar/get_FooBar,
9697 since one language has such a convention we may as well copy it.
9698 Plus real methods in either getFooBar or get_foo_bar style won't
9699 collide with this convention.
9701 2003-09-01 Havoc Pennington <hp@pobox.com>
9703 * glib/dbus-gparser.c: implement
9705 * glib/dbus-gobject.c: start implementing skeletons support
9707 * configure.in: when disabling checks/assert, also define
9708 G_DISABLE_ASSERT and G_DISABLE_CHECKS
9710 2003-09-01 Havoc Pennington <hp@pobox.com>
9712 * glib/Makefile.am: rearrange a bunch of files and get "make
9713 check" framework set up
9715 2003-08-31 Havoc Pennington <hp@pobox.com>
9717 * fix build with --disable-tests
9719 2003-08-30 Havoc Pennington <hp@pobox.com>
9721 * dbus/dbus-connection.c: purge DBusMessageHandler
9723 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
9724 use callbacks everywhere
9726 2003-08-30 Havoc Pennington <hp@pobox.com>
9728 * test/data/valid-config-files/system.d/test.conf: change to
9729 root for the user so warnings don't get printed
9731 * dbus/dbus-message.c: add dbus_message_get_path,
9732 dbus_message_set_path
9734 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9735 dispatching to a path
9737 * dbus/dbus-string.c (_dbus_string_validate_path): add
9739 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9740 (_dbus_marshal_object_path): implement
9742 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
9743 to contain the path to the target object
9744 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9745 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9747 2003-08-30 Havoc Pennington <hp@pobox.com>
9749 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9751 2003-08-29 Havoc Pennington <hp@pobox.com>
9753 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9755 (struct DBusObjectSubtree): shrink this
9756 a lot, since we may have a lot of them
9757 (_dbus_object_tree_free_all_unlocked): implement
9758 (_dbus_object_tree_dispatch_and_unlock): implement
9760 2003-08-29 Havoc Pennington <hp@pobox.com>
9762 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9764 2003-08-28 Havoc Pennington <hp@pobox.com>
9768 * dbus/dbus-connection.c: port to no ObjectID, create a
9769 DBusObjectTree, rename ObjectTree to ObjectPath in public API
9771 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
9772 everything except UnregisterFunction and MessageFunction
9774 * dbus/dbus-marshal.c: port away from DBusObjectID,
9775 add DBUS_TYPE_OBJECT_PATH
9777 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
9778 dbus/dbus-objectid.[hc]: remove these, we are moving to
9779 path-based object IDs
9781 2003-08-25 Havoc Pennington <hp@pobox.com>
9783 Just noticed that dbus_message_test is hosed, I wonder when I
9784 broke that. I thought make check was passing earlier...
9786 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
9787 container tree, will replace most of dbus-object-registry
9789 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9792 2003-08-19 Havoc Pennington <hp@pobox.com>
9794 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9795 (dbus_message_is_error): fix this function
9797 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9800 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9801 reflect clarified man page
9802 (bus_client_policy_check_can_send): ditto
9804 * bus/session.conf.in: fixup
9806 * bus/system.conf.in: fixup
9808 2003-08-18 Havoc Pennington <hp@redhat.com>
9810 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9812 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9813 dumb bug created earlier (wrong order of args to
9814 decode_header_data())
9816 * tools/dbus-send.c: port
9818 * tools/dbus-print-message.c (print_message): port
9820 * test/data/*messages: port all messages over
9822 * dbus/dbus-message-builder.c: support including
9825 * bus/driver.c: port over
9827 * bus/dispatch.c: port over to new stuff
9829 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9830 rename disconnect signal to "Disconnected"
9832 2003-08-17 Havoc Pennington <hp@pobox.com>
9834 This doesn't compile yet, but syncing up so I can hack on it from
9835 work. What are branches for if not broken code? ;-)
9837 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9838 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9839 DBUS_HEADER_FIELD_ERROR_NAME
9841 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9842 for the interface+member pairs
9843 (string_hash): change to use g_str_hash algorithm
9844 (find_direct_function, find_string_function): refactor these to
9847 * dbus/dbus-message.c: port all of this over to support
9848 interface/member fields instead of name field
9850 * dbus/dbus-object-registry.c: port over
9852 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9853 from _dbus_string_validate_name
9855 * bus/dbus-daemon-1.1: change file format for the
9856 <deny>/<allow> stuff to match new message naming scheme
9858 * bus/policy.c: port over
9860 * bus/config-parser.c: parse new format
9862 2003-08-16 Havoc Pennington <hp@pobox.com>
9864 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9867 * glib/dbus-gproxy.c: some hacking
9869 2003-08-15 Havoc Pennington <hp@redhat.com>
9871 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9873 * dbus/dbus-connection.c
9874 (dbus_connection_send_with_reply_and_block): factor out internals;
9875 change to convert any error replies to DBusError instead of
9876 returning them as a message
9878 2003-08-15 Havoc Pennington <hp@pobox.com>
9880 * dbus/dbus-connection.c,
9881 dbus/dbus-pending-call.c: Finish the pending call stuff
9883 2003-08-14 Havoc Pennington <hp@redhat.com>
9885 * dbus/dbus-pending-call.c: start on new object that will replace
9886 DBusMessageHandler and ReplyHandlerData for tracking outstanding
9889 * dbus/dbus-gproxy.c: start on proxy object used to communicate
9890 with remote interfaces
9892 * dbus/dbus-gidl.c: do the boring boilerplate in here
9894 2003-08-12 Havoc Pennington <hp@pobox.com>
9896 * bus/dispatch.c (bus_dispatch): make this return proper
9897 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9899 * dbus/dbus-errors.c (dbus_set_error): use
9900 _dbus_string_append_printf_valist
9902 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9903 (_dbus_string_append_printf): new
9905 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9908 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9909 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9910 message is unhandled.
9912 2003-08-11 Havoc Pennington <hp@pobox.com>
9914 * bus/test.c (client_disconnect_handler): change to return
9915 HANDLED (would have been REMOVE_MESSAGE)
9917 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9918 HANDLED/NOT_YET_HANDLED instead of
9919 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
9922 2003-08-10 Havoc Pennington <hp@pobox.com>
9924 * tools/dbus-send.c (main): add --type argument, for now
9925 supporting only method_call and signal types.
9927 * tools/dbus-print-message.c: print message type
9929 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9930 init connection->objects
9932 * doc/dbus-specification.sgml: fix sgml
9934 * bus/*.c: port over to object-instance API changes
9936 * test/test-service.c: ditto
9938 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9939 name, we will have to fix up the rest of the code to also handle
9941 (dbus_message_new): generic message-creation call
9942 (set_string_field): allow appending name field
9944 2003-08-06 Havoc Pennington <hp@pobox.com>
9946 * dbus/dbus-object-registry.c: implement signal connection
9949 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9951 * dbus/dbus-internals.c (_dbus_memdup): new function
9953 2003-08-02 Havoc Pennington <hp@pobox.com>
9955 * dbus/dbus-message.c (dbus_message_get_no_reply)
9956 (dbus_message_set_no_reply): add these and remove
9957 set_is_error/get_is_error
9959 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
9960 remove the ERROR flag, since there's now an ERROR type
9962 2003-08-01 Havoc Pennington <hp@pobox.com>
9964 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9967 * dbus/dbus-message.c (dbus_message_get_type): new function
9969 * doc/dbus-specification.sgml: add "type" byte to messages
9971 2003-08-01 Havoc Pennington <hp@pobox.com>
9973 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9974 a message type enum to distinguish kinds of message
9975 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
9976 that need not be replied to
9978 2003-08-01 Havoc Pennington <hp@pobox.com>
9980 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9981 (unpack_8_octets): fix no-64-bit-int bug
9983 * dbus/dbus-object-registry.c (validate_id): validate the
9984 connection ID bits, not just the instance ID.
9986 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9987 the connection-global 33 bits of the object ID
9989 * dbus/dbus-object-registry.c (info_from_entry): fill in
9990 object ID in the new way
9992 * dbus/dbus-objectid.h: rather than high/low bits, specifically
9993 define server/client/instance bits.
9995 2003-07-30 Havoc Pennington <hp@pobox.com>
9997 * dbus/dbus-connection.c (dbus_connection_register_object): fix
10000 2003-07-13 Havoc Pennington <hp@pobox.com>
10002 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10003 fields to DBusObjectVTable and DBusObjectInfo
10005 2003-07-12 Havoc Pennington <hp@pobox.com>
10007 * dbus/dbus-object-registry.c: implement unit test,
10008 fix bugs discovered in process
10010 * dbus/dbus-connection.c: remove handler_table and
10011 register_handler(), add DBusObjectRegistry usage
10013 * dbus/dbus-objectid.c (dbus_object_id_is_null)
10014 (dbus_object_id_set_null): new functions
10016 2003-07-08 Havoc Pennington <hp@pobox.com>
10018 * dbus/dbus-object.c: implement some of this
10020 * dbus/dbus-object-registry.c
10021 (_dbus_object_registry_add_and_unlock): fill in the object_id out
10023 (_dbus_object_registry_new): handle OOM
10025 2003-07-08 Havoc Pennington <hp@pobox.com>
10027 * dbus/dbus-object.h: sketch out an API for registering objects
10028 with a connection, that allows us to use as little as 24 bytes
10029 per object and lets application code represent an object in
10030 any conceivable way.
10032 * dbus/dbus-object-registry.c: implement the hard bits of the
10033 DBusConnection aspect of object API. Not yet wired up.
10035 2003-07-06 Havoc Pennington <hp@pobox.com>
10037 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10038 (_dbus_marshal_object_id): new
10039 (_dbus_demarshal_object_id): new
10040 (_dbus_marshal_get_arg_end_pos): support object ID type, and
10041 consolidate identical switch cases. Don't conditionalize handling
10042 of DBUS_TYPE_UINT64, need to handle the type always.
10043 (_dbus_marshal_validate_arg): consolidate identical cases, and
10044 handle DBUS_TYPE_OBJECT_ID
10046 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10048 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10050 2003-09-28 Havoc Pennington <hp@pobox.com>
10052 * real 0.13 release
10054 2003-09-28 Havoc Pennington <hp@pobox.com>
10056 * doc/Makefile.am (dbus-specification.html): testing a funky hack
10057 to work with Debian db2html
10059 2003-09-28 Havoc Pennington <hp@pobox.com>
10061 * configure.in: 0.13
10063 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10064 stylesheet-images for benefit of Debian
10066 Change back to using filesystem-linked sockets for the system
10067 bus, so only root can create the default system bus address.
10069 * bus/system.conf.in: change to use
10070 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10072 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10075 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10076 here, and AC_DEFINE DBUS_SYSTEM_PATH
10078 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10081 * doc/busconfig.dtd:
10084 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10086 * doc/dbus-specification.sgml:
10087 Add activation reply values.
10089 2003-08-05 Havoc Pennington <hp@redhat.com>
10091 * configure.in: 0.12
10093 2003-08-05 Anders Carlsson <andersca@codefactory.se>
10095 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10096 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10097 (add_watch), (remove_watch), (create_source):
10098 Refcount fds, fixes some reentrancy issues.
10100 2003-07-30 Havoc Pennington <hp@redhat.com>
10102 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10103 bus address to be abstract if we have abstract sockets
10107 2003-07-28 Havoc Pennington <hp@redhat.com>
10109 * bus/messagebus.in: fix to avoid processname/servicename
10110 confusion, from Michael Kearey
10111 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10113 2003-07-23 Havoc Pennington <hp@pobox.com>
10115 * dbus/dbus-message.c (dbus_message_iter_get_named):
10116 fix from Andy Hanton to remove broken "+1"
10118 2003-07-16 Havoc Pennington <hp@pobox.com>
10120 * tools/dbus-launch.c (babysit): close stdout/stderr in the
10121 babysitter process, as suggested by Thomas Leonard, so
10122 an "eval `dbus-launch --exit-with-session`" will actually
10125 2003-07-16 Havoc Pennington <hp@pobox.com>
10127 * configure.in: print out EXPANDED_* variables in the summary at
10128 the end; clean up the code that computes EXPANDED_ variables and
10129 get the ones using exec_prefix right. Should make things work
10130 when you build without --prefix
10132 2003-06-29 Havoc Pennington <hp@pobox.com>
10134 * mono/Test.cs (class Test): fire up a main loop and run it
10136 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10137 done once, the app has to do it
10139 2003-06-26 Havoc Pennington <hp@pobox.com>
10141 * mono/Connection.cs: set up connection with the glib main loop
10143 2003-07-01 Havoc Pennington <hp@redhat.com>
10145 * doc/dbus-specification.sgml: clarify the format of a type code,
10146 change suggested by Jim Blandy
10148 2003-06-29 Miloslav Trmac <mitr@volny.cz>
10151 * tools/Makefile.am: Don't assume srcdir == builddir.
10153 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10154 the allocated block.
10155 (_dbus_memory_test): New function.
10156 * dbus/dbus-test.h: Add _dbus_memory_test ().
10157 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10159 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10161 (dbus_message_new): Remove obsolete @todo.
10163 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10164 (_dbus_marshal_set_uint64): Fix comment.
10166 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10167 hardcode FIELD_REPLY_SERIAL.
10169 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10170 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10172 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10173 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10175 2003-06-24 Havoc Pennington <hp@pobox.com>
10177 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10179 2003-06-23 Anders Carlsson <andersca@codefactory.se>
10185 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10186 * gcj/org/.cvsignore:
10187 * gcj/org/Makefile.am:
10188 * gcj/org/freedesktop/.cvsignore:
10189 * gcj/org/freedesktop/Makefile.am:
10190 * gcj/org/freedesktop/dbus/.cvsignore:
10191 * gcj/org/freedesktop/dbus/Makefile.am:
10192 * gcj/org/freedesktop/dbus/Message.java: (Message),
10194 * gcj/org/freedesktop/dbus/natMessage.cc:
10195 Fix the build system.
10197 2003-06-22 Havoc Pennington <hp@pobox.com>
10199 * mono/Connection.cs: add more bindings
10201 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10204 2003-06-22 Havoc Pennington <hp@pobox.com>
10206 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10207 Start wrapping more stuff.
10209 2003-06-22 Havoc Pennington <hp@pobox.com>
10211 * mono/Message.cs: implement Message.Wrap() that ensures we only
10212 have a single C# wrapper per DBusMessage, assuming it works which
10213 it probably doesn't.
10215 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10216 (dbus_message_free_data_slot): new
10217 (dbus_message_set_data): new
10218 (dbus_message_get_data): new
10220 2003-06-22 Havoc Pennington <hp@pobox.com>
10222 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10223 (_dbus_data_slot_allocator_alloc): rework these to keep a
10224 reference count on each slot and automatically manage a global
10225 slot ID variable passed in by address
10227 * bus/bus.c: convert to new dataslot API
10229 * dbus/dbus-bus.c: convert to new dataslot API
10231 * dbus/dbus-connection.c: convert to new dataslot API
10233 * dbus/dbus-server.c: convert to new dataslot API
10235 * glib/dbus-gmain.c: ditto
10237 * bus/test.c: ditto
10239 * bus/connection.c: ditto
10241 2003-06-22 Anders Carlsson <andersca@codefactory.se>
10243 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10244 after the gcj checks so that the correct configuration tags
10245 will be added to libtool.
10247 * dbus-glib-1.pc.in: No need to specify any includes since
10248 dbus-1.pc.in has those.
10250 2003-06-22 Havoc Pennington <hp@pobox.com>
10252 * mono/*, gcj/*, configure.in, Makefile.am:
10253 Check in makefiles and subdirs for mono and gcj bindings.
10254 Neither binding actually exists, just trying to get through
10255 all the build and other boring bits.
10257 2003-06-21 Philip Blundell <philb@gnu.org>
10259 * tools/dbus-monitor.1: Updated.
10261 * tools/dbus-send.1: Likewise.
10263 2003-06-20 Anders Carlsson <andersca@codefactory.se>
10265 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10266 for hangup and error after checking read so we won't discard
10267 pending data if both hangup and read are set.
10269 2003-06-19 Philip Blundell <philb@gnu.org>
10271 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10273 * tools/dbus-send.c: Accept both --system and --session.
10275 * tools/dbus-monitor.c: Same here.
10277 2003-06-19 Anders Carlsson <andersca@codefactory.se>
10279 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10280 from C++ (Patch by Miloslav Trmac).
10282 2003-06-15 Joe Shaw <joe@assbarn.com>
10284 * configure.in: Check for socklen_t.
10286 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10288 * test/test-segfault.c: Add #include <sys/time.h>
10290 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10291 dbus-launch needs it.
10293 2003-06-09 Havoc Pennington <hp@redhat.com>
10295 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10296 SUN_LEN, it breaks abstract socket usage
10298 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10301 2003-06-04 Havoc Pennington <hp@pobox.com>
10303 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10304 using unix:abstract=/foo, and when listening in a tmpdir
10305 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10307 * dbus/dbus-transport.c (_dbus_transport_open): support
10310 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10311 support abstract sockets
10313 * dbus/dbus-transport-unix.c
10314 (_dbus_transport_new_for_domain_socket): support abstract sockets
10316 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10317 toggle as an argument, implement abstract namespace support
10318 (_dbus_listen_unix_socket): ditto
10320 * configure.in: add --enable-abstract-sockets and implement
10321 a configure check for autodetection of the right value.
10323 2003-06-01 Havoc Pennington <hp@pobox.com>
10325 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10326 in /tmp (though on Linux this will end up being useless,
10327 when we add abstract namespace support)
10329 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10332 2003-05-28 Colin Walters <walters@verbum.org>
10334 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10336 2003-05-18 Anders Carlsson <andersca@codefactory.se>
10338 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10340 2003-05-17 Colin Walters <walters@gnu.org>
10342 * tools/dbus-send.c: Don't exit with an error code if --help was
10343 passed. Default to using the session bus instead of the system
10346 * tools/dbus-launch.c: Ditto.
10348 * tools/dbus-monitor.c: Ditto.
10350 * tools/dbus-send.1: Update with new arguments.
10352 * tools/dbus-launch.c: Emit code to export variables. New
10353 arguments -s and -c to specify shell syntax, and a bit of code to
10354 autodetect syntax. Also, allow specifying a program to run.
10356 * tools/dbus-launch.1: Update with new arguments.
10358 * tools/dbus-send.1: Ditto.
10360 * tools/dbus-monitor.1: Ditto.
10362 2003-05-17 Havoc Pennington <hp@pobox.com>
10364 * bus/config-parser.c (merge_included): merge in policies from
10365 child configuration file.
10367 * bus/policy.c (bus_policy_merge): function to merge two policies
10370 2003-05-16 Havoc Pennington <hp@redhat.com>
10372 * dbus/dbus-connection.c: disable verbose lock spew
10374 * tools/dbus-send.c: add --print-reply command line option
10376 * tools/dbus-print-message.h (print_message): new util function
10377 shared by dbus-send and dbus-monitor
10379 * tools/dbus-monitor.c (handler_func): exit on disconnect
10381 * dbus/dbus-transport-unix.c (do_reading): if the transport is
10382 disconnected, don't try to use the read_watch
10384 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10385 so we can find this bug more easily
10387 2003-05-16 Havoc Pennington <hp@redhat.com>
10389 * bus/policy.c (free_rule_list_func): avoid a crash when passed
10390 NULL as DBusHashTable is annoyingly likely to do.
10392 2003-05-16 Colin Walters <walters@verbum.org>
10394 * tools/dbus-monitor.c: Add --session argument and usage()
10397 * tools/dbus-monitor.1: Update with new --session arg.
10399 * bus/Makefile.am (install-data-hook): Create
10400 $(libdir)/dbus-1.0/services so that the session bus is happy.
10402 2003-05-15 Havoc Pennington <hp@redhat.com>
10404 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10405 on non-x86. ifdef's are evil.
10407 2003-05-15 Havoc Pennington <hp@redhat.com>
10409 * configure.in: 0.11
10413 * bus/Makefile.am (initddir): apparently we are supposed to put
10414 init scripts in /etc/rc.d/init.d not /etc/init.d
10416 * bus/Makefile.am: remove the "you must --enable-tests to make
10417 check" as it broke distcheck
10419 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10421 2003-05-13 James Willcox <jwillcox@gnome.org>
10424 * bus/activation.c: (bus_activation_service_created),
10425 (bus_activation_activate_service):
10426 * bus/driver.c: (bus_driver_send_service_deleted),
10427 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10428 (bus_driver_send_service_acquired),
10429 (bus_driver_send_welcome_message),
10430 (bus_driver_handle_list_services):
10431 * bus/session.conf.in:
10432 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10433 (dbus_bus_service_exists), (dbus_bus_activate_service):
10436 Add some convenience API which lets you activate a service, and did a
10437 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10438 and dbus_message_get_args()
10440 2003-05-11 Havoc Pennington <hp@pobox.com>
10442 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10443 calling _dbus_marshal_validate_arg() for every byte in a byte
10446 * dbus/dbus-message-handler.c: use atomic reference counting to
10447 reduce number of locks slightly; the global lock in here sucks
10449 * dbus/dbus-connection.c
10450 (_dbus_connection_update_dispatch_status_and_unlock): variant of
10451 update_dispatch_status that can be called with lock held; then use
10452 in a couple places to reduce locking/unlocking
10453 (dbus_connection_send): hold the lock over the whole function
10454 instead of acquiring it twice.
10456 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10458 * bus/connection.c (bus_connections_setup_connection): fix access
10459 to already-freed memory.
10461 * dbus/dbus-connection.c: keep a little cache of linked list
10462 nodes, to avoid using the global linked list alloc lock in the
10463 normal send-message case. Instead we just use the connection lock
10464 that we already have to take.
10466 * dbus/dbus-list.c (_dbus_list_find_last): new function
10468 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10469 change to use a struct for the atomic type; fix docs,
10470 they return value before increment, not after increment.
10472 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10473 (_dbus_string_append_8_aligned): new functions to try to
10474 microoptimize this operation.
10475 (reallocate_for_length): break this out of set_length(), to
10476 improve profile info, and also so we can consider inlining the
10479 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10480 strings with some preallocation, cuts down on our calls to realloc
10481 a fair bit. Though if we can get the "move entire string to empty
10482 string" optimization below to kick in here, it would be better.
10484 * dbus/dbus-string.c (_dbus_string_move): just call
10485 _dbus_string_move_len
10486 (_dbus_string_move_len): add a special case for moving
10487 an entire string into an empty string; we can just
10488 swap the string data instead of doing any reallocs.
10489 (_dbus_string_init_preallocated): new function
10491 2003-05-11 Havoc Pennington <hp@pobox.com>
10493 Write a "test-profile" that does echo client-server with threads;
10494 profile reveals lock contention, memcpy/realloc of buffers, and
10495 UTF-8 validation as hot spots. 20% of lock contention eliminated
10496 with dbus_atomic_inc/dec implementation on x86. Much remaining
10497 contention is global mempool locks for GList and DBusList.
10499 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10502 * dbus/dbus-connection.c (struct DBusConnection): use
10503 dbus_atomic_t for the reference count
10505 * dbus/dbus-message.c (struct DBusMessage): declare
10506 dbus_atomic_t values as volatile
10508 * configure.in: code to detect ability to use atomic integer
10509 operations in assembly, from GLib patch
10511 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10512 time, tired of it being wrong in threads and forked processes
10514 * glib/test-profile.c: a little program to bounce messages back
10515 and forth between threads and eat CPU
10517 * dbus/dbus-connection.c: add debug spew macros for debugging
10518 thread locks; include config.h at top; fix deadlock in
10519 dbus_connection_flush()
10521 2003-05-08 Havoc Pennington <hp@pobox.com>
10523 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10524 data from getting written, and there wasn't a good reason to
10527 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10528 dbus_verbose lines in test coverage
10529 (main): add list of functions sorted by # of untested blocks
10530 to the coverage report
10532 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10534 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10536 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10537 extend test coverage
10539 * test/data/auth/cancel.auth-script: test canceling an
10542 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10543 aren't used. in CVS history if we end up needing them.
10545 2003-05-04 Havoc Pennington <hp@pobox.com>
10547 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10550 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10551 function, which assumed length was in # of strings, not bytes
10553 * dbus/dbus-message.c (_dbus_message_test): add tests for some
10556 * dbus/dbus-connection.c
10557 (_dbus_connection_queue_received_message): disable function for
10558 now, we are only using it in test mode
10560 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10561 remove a mistaken FIXME
10563 2003-05-04 Havoc Pennington <hp@pobox.com>
10565 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10566 unlock mutex on successful return, patch from Anders Gustafsson
10568 2003-05-04 Havoc Pennington <hp@pobox.com>
10570 * dbus-glib-1.pc.in (Requires): fix dependencies, from
10573 2003-05-04 Havoc Pennington <hp@pobox.com>
10575 * tools/dbus-launch.c: implement
10577 * bus/main.c (main), bus/bus.c (bus_context_new):
10578 implement --print-pid and --fork
10580 2003-05-03 Havoc Pennington <hp@redhat.com>
10582 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10583 the address had no value, and add to test suite. Fix and
10584 regression test from Miloslav Trmac
10586 2003-05-03 Havoc Pennington <hp@pobox.com>
10588 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10589 watch is invalid when handled
10591 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10592 dbus-launch utility to launch the bus from a shell script. Didn't
10593 actually implement dbus-launch yet, it's just a placeholder still.
10595 2003-05-03 Havoc Pennington <hp@pobox.com>
10597 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10598 daemon; also documents daemon config file, so replaces
10599 doc/config-file.txt. Corrected some stuff from config-file.txt in
10600 the process of moving it.
10602 2003-05-03 Havoc Pennington <hp@pobox.com>
10604 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10607 2003-05-03 Colin Walters <walters@verbum.org>
10609 * dbus/dbus-sysdeps.c (fill_user_info): Test against
10610 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10612 * Makefile.am: Update to use new .pc versioning scheme.
10614 2003-05-02 Havoc Pennington <hp@redhat.com>
10616 * bus/system.conf.in: allow send/receive to/from message bus
10619 2003-04-30 Havoc Pennington <hp@redhat.com>
10621 * configure.in: print a note when building with unit tests and
10624 2003-04-30 Havoc Pennington <hp@redhat.com>
10626 * Makefile.am: add a check-local that complains if you didn't
10627 configure with --enable-tests
10629 2003-04-29 Havoc Pennington <hp@redhat.com>
10631 * glib/dbus-gmain.c: docs cleanups
10633 * dbus/dbus-types.h: add docs on int64 types
10635 * dbus/dbus-memory.c: fix docs to avoid putting private API in
10636 public API docs section
10638 2003-04-29 Havoc Pennington <hp@redhat.com>
10640 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10641 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10642 parallel install API version, not with the D-BUS package version.
10644 * HACKING: move some of README over here
10646 * README: updates, and document API/ABI policy
10648 * configure.in: reindentation
10650 2003-04-29 Havoc Pennington <hp@redhat.com>
10652 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10653 to use this library" to be sure people have the right
10656 2003-04-28 Havoc Pennington <hp@redhat.com>
10658 * configure.in: add --enable-docs which by default is auto yes if
10659 doxygen and db2html found, no otherwise; but can be forced on/off
10661 * doc/Makefile.am: conditionalize whether to build docs on
10664 2003-04-28 Havoc Pennington <hp@redhat.com>
10666 * configure.in: 0.10
10670 * bus/system.conf.in: add <includedir>system.d</includedir>
10672 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10673 username was provided but not uid
10675 * bus/config-parser.c (struct BusConfigParser): keep track of
10676 whether the parser is toplevel or was included; change some
10677 of the error handling if it's included.
10679 2003-04-27 Havoc Pennington <hp@pobox.com>
10683 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10684 report correct status if we finish processing authentication
10685 inside this function.
10687 * bus/activation.c (try_send_activation_failure): use
10688 bus_transaction_send_error_reply
10690 * bus/connection.c (bus_connection_get_groups): return an error
10691 explaining the problem
10693 * bus/bus.c (bus_context_check_security_policy): implement
10694 restriction here that inactive connections can only send the
10695 hello message. Also, allow bus driver to send anything to
10698 * bus/connection.c (bus_connection_complete): create the
10699 BusClientPolicy here instead of on-demand.
10700 (bus_connection_get_policy): don't return an error
10702 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10703 sender field in message being replied to
10705 * bus/bus.c (bus_context_check_security_policy): fix silly typo
10706 causing it to return FALSE always
10708 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10709 we checked sender rather than destination
10711 2003-04-25 Havoc Pennington <hp@redhat.com>
10713 test suite is slightly hosed at the moment, will fix soon
10715 * bus/connection.c (bus_connections_expire_incomplete): fix to
10716 properly disable the timeout when required
10717 (bus_connection_set_name): check whether we can remove incomplete
10718 connections timeout after we complete each connection.
10720 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10721 probably still broken.
10723 * bus/services.c (bus_registry_acquire_service): implement max
10724 number of services owned, and honor allow/deny rules on which
10725 services a connection can own.
10727 * bus/connection.c (bus_connection_get_policy): report errors here
10729 * bus/activation.c: implement limit on number of pending
10732 2003-04-25 Havoc Pennington <hp@redhat.com>
10734 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10735 where we used >= 0 instead of != DBUS_UID_UNSET.
10737 2003-04-25 Havoc Pennington <hp@redhat.com>
10739 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10740 were toggled without add/remove, fix from Anders Gustafsson
10742 2003-04-24 Havoc Pennington <hp@redhat.com>
10744 * test/data/valid-config-files/basic.conf: add <limit> tags to
10747 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10748 <limit> tag in configuration file.
10750 2003-04-24 Havoc Pennington <hp@redhat.com>
10752 * bus/dispatch.c: somehow missed some name_is
10754 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10755 (_dbus_timeout_set_interval): new
10757 * bus/connection.c (bus_connections_setup_connection): record time
10758 when each connection is first set up, and expire them after the
10759 auth timeout passes.
10761 2003-04-24 Havoc Pennington <hp@redhat.com>
10763 * dbus/dbus-message.c (dbus_message_name_is): rename
10764 (dbus_message_service_is): rename
10765 (dbus_message_sender_is): rename
10766 (dbus_message_get_service): rename
10768 2003-04-24 Havoc Pennington <hp@redhat.com>
10770 * configure.in: add --enable-checks
10772 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10774 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10775 to use thread locks.
10776 (_dbus_connection_handler_destroyed_locked): move some private
10777 functions into proper docs group
10779 * dbus/dbus-internals.h: add _dbus_return_if_fail,
10780 _dbus_return_val_if_fail
10782 Throughout: use dbus_return_if_fail
10784 2003-04-23 James Willcox <jwillcox@gnome.org>
10786 * glib/dbus-glib.h:
10787 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10788 (dbus_connection_setup_with_g_main),
10789 (dbus_server_setup_with_g_main):
10790 * glib/test-dbus-glib.c: (main):
10791 * glib/test-thread-client.c: (main):
10792 * glib/test-thread-server.c: (new_connection_callback), (main):
10793 * tools/dbus-monitor.c: (main):
10795 Added a GMainContext argument to dbus_connection_setup_with_g_main()
10796 and dbus_server_setup_with_g_main().
10798 2003-04-20 Havoc Pennington <hp@pobox.com>
10800 * doc/dbus-specification.sgml: document the restrictions on
10801 message and service names
10803 2003-04-22 Havoc Pennington <hp@redhat.com>
10805 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10806 support, and do some code cleanups to share more code and
10807 speed up array marshal/demarshal.
10809 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10811 * configure.in: generate dbus-arch-deps.h
10813 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10816 2003-04-22 Havoc Pennington <hp@redhat.com>
10818 * test/data/valid-messages/opposite-endian.message: fix test
10819 to use proper type for rply field
10821 * test/data/invalid-messages: add tests for below validation
10823 * dbus/dbus-message.c (decode_header_data): validate field types,
10824 and validate that named fields are valid names
10825 (decode_name_field): consider messages in the
10826 org.freedesktop.Local. namespace to be invalid.
10828 * dbus/dbus-string.c (_dbus_string_validate_name): new
10830 2003-04-19 Havoc Pennington <hp@pobox.com>
10832 * bus/driver.c (bus_driver_handle_hello): check limits and
10833 return an error if they are exceeded.
10835 * bus/connection.c: maintain separate lists of active and inactive
10836 connections, and a count of each. Maintain count of completed
10837 connections per user. Implement code to check connection limits.
10839 * dbus/dbus-list.c (_dbus_list_unlink): export
10841 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10842 number of bytes in the message queue for a connection
10844 2003-04-18 Havoc Pennington <hp@pobox.com>
10846 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10848 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10851 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10852 on realloc be sure to update the pointer in the keyring
10854 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10855 offset to avoid writing to unallocated memory
10857 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10858 try the next mechanism, so we properly handle OOM
10860 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10862 (_dbus_keyring_new): fix OOM bug
10863 (_dbus_keyring_new_homedir): always set error; impose a maximum
10864 number of keys we'll load from the file, mostly to speed up the
10865 test suite and make its OOM checks more useful, but also for
10868 * dbus/dbus-auth.c (process_error_server): reject authentication
10869 if we get an error from the client
10870 (process_cancel): on cancel, send REJECTED, per the spec
10871 (process_error_client): send CANCEL if we get an error from the
10874 2003-04-18 Havoc Pennington <hp@pobox.com>
10876 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10879 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10882 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10883 about DBUS_TEST_HOMEDIR once
10885 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10888 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10889 config file so we test the right thing
10891 Throughout: assorted docs improvements
10893 2003-04-18 Havoc Pennington <hp@pobox.com>
10895 * glib/dbus-gmain.c: adapt to watch changes
10897 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10899 * dbus/dbus-server.h: remove dbus_server_handle_watch
10901 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10903 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10904 like DBusTimeout, so we don't need dbus_connection_handle_watch
10907 2003-04-17 Havoc Pennington <hp@redhat.com>
10909 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10910 database usage so it all goes via the DBusUserDatabase cache.
10912 2003-04-17 Havoc Pennington <hp@redhat.com>
10914 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10915 there was an OOM watch we skipped, we always return TRUE so we
10916 iterate again to have a look at it again. Fixes test suite hang.
10917 Code rearrangement also lets us lose some memset and only iterate
10918 over callbacks once.
10920 * bus/driver.c (bus_driver_handle_message): sense of test for
10923 2003-04-16 Havoc Pennington <hp@pobox.com>
10925 * doc/dbus-specification.sgml: make spec say serials are unsigned
10927 * dbus/dbus-message.h: change message serials to unsigned
10929 * dbus/dbus-connection.c: adapt to message serials being unsigned
10931 2003-04-15 Havoc Pennington <hp@pobox.com>
10933 * bus/bus.c: create and keep around a shared DBusUserDatabase
10936 * bus/connection.c (bus_connection_get_groups): don't cache
10937 groups for user in the connection object, since user database
10938 object now does that.
10940 2003-04-16 Havoc Pennington <hp@redhat.com>
10942 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10943 list of size counters
10944 (_dbus_message_loader_putback_message_link): put back a popped link
10946 * dbus/dbus-connection.c
10947 (dbus_connection_set_max_live_messages_size): rename
10949 (dbus_connection_get_outgoing_size): get size of outgoing
10951 (_dbus_connection_set_connection_counter): remove this cruft
10953 2003-04-14 Havoc Pennington <hp@redhat.com>
10955 * dbus/dbus-userdb.c: user database abstraction, mostly to get
10956 caching, but at some point we might want to be able to use a
10957 different database.
10959 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10960 SHA1 conf file to test the sha1 auth mechanism, since the regular
10961 test always uses EXTERNAL when available.
10964 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10965 add conf file that requires use of sha1 auth
10967 2003-04-13 Havoc Pennington <hp@pobox.com>
10969 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10970 from Philip Blundell to send messages and monitor them.
10972 2003-04-13 Havoc Pennington <hp@pobox.com>
10974 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10977 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10980 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10981 fix to only recover unused bytes if we're already authenticated
10982 (_dbus_transport_get_is_authenticated): fix to still mark us
10983 authenticated if there are unused bytes.
10985 * bus/dispatch.c: implement security policy checking
10987 * bus/connection.c (bus_transaction_send_from_driver): new
10989 * bus/bus.c (bus_context_check_security_policy): new
10991 * bus/dispatch.c (send_service_nonexistent_error): delete this,
10992 now we just set the DBusError and it gets converted to an error
10995 * bus/connection.c (allow_user_function): enable code using actual
10996 data from the config file
10998 * bus/policy.c (list_allows_user): handle wildcard rules for
10999 user/group connection perms
11001 2003-04-13 Havoc Pennington <hp@pobox.com>
11003 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11005 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11007 * bus/policy.c (bus_policy_append_mandatory_rule)
11008 (bus_policy_append_default_rule, bus_policy_append_user_rule)
11009 (bus_policy_append_group_rule): new functions
11011 2003-04-12 Havoc Pennington <hp@pobox.com>
11013 * bus/config-parser.c (bus_config_parser_new): fix a memleak
11015 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11016 the pid/gid/uid, just for paranoia.
11018 * test/break-loader.c (randomly_do_n_things): find a byte
11019 containing a type code, and randomly change it to a different
11022 2003-04-12 Havoc Pennington <hp@pobox.com>
11024 * bus/policy.h: change BusPolicy to be the thing from the config
11025 file, and rename old BusPolicy to BusClientPolicy
11027 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11028 match change in how policy works
11030 * dbus/dbus-internals.h: mark assert_not_reached as
11031 __attribute((noreturn))__
11033 2003-04-11 Havoc Pennington <hp@redhat.com>
11035 * doc/dbus-specification.sgml: fix a spot with the wrong name for
11036 the broadcast service. Use boolean return for ServiceExists.
11038 2003-04-11 Havoc Pennington <hp@redhat.com>
11040 * configure.in: add another directory to look for qt in.
11042 2003-04-11 Havoc Pennington <hp@redhat.com>
11044 * AUTHORS: add Colin Walters
11046 2003-04-11 Havoc Pennington <hp@redhat.com>
11050 * configure.in: 0.9
11052 2003-04-11 Havoc Pennington <hp@redhat.com>
11054 * bus/messagebus.in: remove pid file when stopping the
11055 message bus, since the bus won't have privileges to remove it
11058 2003-04-11 Havoc Pennington <hp@redhat.com>
11060 * bus/bus.c (bus_context_new): move credentials change after
11063 2003-04-11 Havoc Pennington <hp@pobox.com>
11065 * test/decode-gcov.c: add "below average functions" to the
11066 coverage report, and change how some of the code works.
11068 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11069 not in the coverage stats.
11071 * test/test-service.c (main): use _dbus_verbose not fprintf in a
11072 couple places so running the test suite doesn't result in megaspam.
11074 2003-04-11 Havoc Pennington <hp@pobox.com>
11076 * bus/dispatch.c (check_existent_service_activation): accept a no
11077 memory error in a place we didn't before
11079 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11080 in case the first one failed," since the test suite is less
11083 2003-04-10 Havoc Pennington <hp@pobox.com>
11085 * bus/dispatch.c (check_segfault_service_activation): add test
11086 for launching an executable that just crashes.
11088 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11089 don't leave a million cores. We'll see how portable this is.
11091 2003-04-10 Havoc Pennington <hp@pobox.com>
11093 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11094 the possible parent failures before we fork, so that we don't
11095 fail to create a babysitter after creating the child.
11097 * bus/activation.c (bus_activation_activate_service): kill child
11098 if we don't successfully complete the activation.
11100 2003-04-10 Havoc Pennington <hp@redhat.com>
11102 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11103 the connection if it's disconnected
11105 * bus/activation.c (bus_activation_service_created): use new
11106 transaction features to roll back removal of pending activation if
11107 we don't successfully create the service after all. Don't remove
11108 pending activation if the function fails.
11110 * dbus/dbus-list.c (_dbus_list_insert_before_link)
11111 (_dbus_list_insert_after_link): new code to facilitate
11114 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11115 new functionality, so we can preallocate the ability to insert
11118 * bus/connection.c (bus_transaction_add_cancel_hook): new function
11119 allowing us to put custom hooks in a transaction to be used for
11120 cancelling said transaction
11122 * doc/dbus-specification.sgml: add some discussion of secondary
11123 service owners, and disallow zero-length service names
11125 * bus/services.c (bus_registry_acquire_service): new function,
11126 splits out part of bus_driver_handle_acquire_service() and fixes
11127 a bug where we didn't remove the service doing the acquiring
11128 from the secondary queue if we failed to remove the current owner
11129 from the front of the queue.
11131 2003-04-10 Alexander Larsson <alexl@redhat.com>
11133 * doc/dbus-specification.sgml:
11134 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11136 2003-04-10 Alexander Larsson <alexl@redhat.com>
11141 Added files to cvsignore
11143 * dbus/dbus-message.h:
11144 * dbus/dbus-message.c: (dbus_message_iter_get_named):
11145 Make get_named() take two out argument and return a boolean.
11146 (dbus_message_iter_get_args_valist):
11147 Update usage of get_named().
11148 (dbus_message_iter_append_byte):
11150 (dbus_message_iter_append_named)
11152 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11155 2003-04-10 Alexander Larsson <alexl@redhat.com>
11157 * dbus/dbus-marshal.[ch]:
11158 Add array_type_pos argument to _dbus_marshal_validate_arg.
11159 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11161 * dbus/dbus-message.[ch]:
11162 Multi-dimensional arrays have full type specification in the
11163 outermost array. Iter code re-arranged to handle this.
11164 Added some more iter tests.
11166 * doc/dbus-specification.sgml:
11169 Update new array encoding description.
11170 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11172 * test/data/invalid-messages/array-with-mixed-types.message:
11173 * test/data/valid-messages/array-of-array-of-uint32.message:
11174 Change to the new array format.
11176 * test/data/invalid-messages/too-short-dict.message:
11179 * test/data/valid-messages/recursive-types.message:
11180 Fix up and extend test.
11182 2003-04-10 Havoc Pennington <hp@pobox.com>
11184 * bus/dispatch.c: lots of fixes
11186 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11187 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11188 that was crack, broke the test service.
11190 * dbus/dbus-transport.c (_dbus_transport_open): fix error
11191 handling to avoid piling up errors if we get a failure on the
11194 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11195 pid in assertion failures.
11197 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11198 to some fixed size of file descriptor array. Don't return TRUE
11199 anytime a timeout exists, that led to lots of busy loop silliness
11202 2003-04-09 Havoc Pennington <hp@redhat.com>
11204 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11205 I'd checked this in earlier but hadn't.
11207 2003-04-09 Havoc Pennington <hp@redhat.com>
11209 * bus/dispatch.c (bus_dispatch_test): get a bit further through
11210 the activation test (man this is getting old!)
11212 2003-04-09 Havoc Pennington <hp@redhat.com>
11214 * test/test-utils.c: use dispatch status function to fix this up
11216 * bus/connection.c (connection_watch_callback): don't dispatch
11218 (connection_timeout_callback): don't dispatch from here
11219 (bus_connections_setup_connection): set the dispatch status function
11220 (bus_connection_disconnected): unset it
11222 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11223 used to add a connection to be dispatched
11224 (_dbus_loop_iterate): do the dispatching at the end of each
11227 * dbus/dbus-connection.c
11228 (dbus_connection_set_dispatch_status_function): new function
11229 allowing us to fix up main loop usage
11230 (_dbus_connection_last_unref): free all the various function
11232 (dbus_connection_dispatch): call the DispatchStatusFunction
11233 whenever this function returns
11234 (dbus_connection_handle_watch): call DispatchStatusFunction
11235 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11236 (reply_handler_timeout): call DispatchStatusFunction
11237 (dbus_connection_flush): call DispatchStatusFunction
11239 2003-04-09 Havoc Pennington <hp@redhat.com>
11241 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11244 * bus/dispatch.c (check_service_activated): fix bug in test
11246 * dbus/dbus-mainloop.c (check_timeout): fix this up
11248 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11249 verbose output so we can sort out output from different processes,
11250 e.g. in the activation case.
11252 2003-04-08 Colin Walters <walters@gnu.org>
11254 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11256 (bus_context_new): Set it.
11257 (bus_context_unref): Use it to delete the pid file.
11259 2003-04-08 Havoc Pennington <hp@redhat.com>
11261 * test/data/invalid-messages/array-with-mixed-types.message:
11262 regression test that fails for the moment
11264 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11265 tests for convenience
11267 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11268 array of nil, it broke things.
11270 * test/data/invalid-messages/array-of-nil.message: regression test
11272 * test/data/valid-messages/array-of-array-of-uint32.message:
11273 happened to write this so added it to suite
11275 2003-04-08 Havoc Pennington <hp@redhat.com>
11277 * bus/driver.c (bus_driver_handle_acquire_service): init
11278 retval/reply before checking name
11280 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11281 recursion depth argument
11283 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11284 in the public struct for future extension
11286 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11289 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11292 * doc/dbus-specification.sgml: fix typo
11294 2003-04-08 Alexander Larsson <alexl@redhat.com>
11296 Implemented recursive types, named types and new-style iters
11299 * glib/test-thread-client.c: (thread_func):
11300 * glib/test-thread-server.c: (handle_test_message):
11301 * test/test-service.c: (handle_echo):
11304 * dbus/Makefile.am:
11305 * dbus/dbus-dict.c:
11306 * dbus/dbus-dict.h:
11310 * dbus/dbus-internals.c: (_dbus_type_to_string):
11311 Update for new types.
11313 * dbus/dbus-marshal.[ch]:
11314 Implement recursive types and the new marshalling format.
11315 Remove hardcoded dict marshalling.
11316 Marshal named types.
11318 * dbus/dbus-message-builder.c:
11320 Remove references to old types
11322 * dbus/dbus-message.[ch]:
11323 New non-refcounted iter API that supports recursive iters.
11324 Use iters for appending, including support for recursive
11326 Add byte and named type support.
11327 Update everything to new marshalling formats.
11328 Add tests for new API.
11330 * dbus/dbus-protocol.h:
11331 Remove old array types.
11332 Add types: BYTE, ARRAY, DICT, NAMED
11334 * dbus/dbus-string.c:
11335 * dbus/dbus-sysdeps.c:
11336 Make parse_double locale safe.
11338 * dbus/dbus-test-main.c:
11341 * dbus/dbus-test.c:
11344 * doc/dbus-specification.sgml:
11347 * test/data/incomplete-messages/missing-body.message:
11348 * test/data/invalid-messages/bad-boolean.message:
11349 * test/data/invalid-messages/bad-boolean-array.message:
11350 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11351 * test/data/invalid-messages/boolean-has-no-value.message-raw:
11352 * test/data/invalid-messages/too-short-dict.message:
11353 * test/data/valid-messages/dict-simple.message:
11354 * test/data/valid-messages/dict.message:
11355 * test/data/valid-messages/emptiness.message:
11356 * test/data/valid-messages/lots-of-arguments.message:
11357 * test/data/valid-messages/no-padding.message:
11358 * test/data/valid-messages/recursive-types.message:
11359 Add missing NAME fields
11360 Fix up dicts & arrays
11362 * test/data/invalid-messages/dict-with-nil-value.message:
11363 Removed, this is not invalid anymore.
11365 * test/data/valid-messages/recursive-types.message:
11366 Add new test for deeply recursive types.
11368 2003-04-07 Havoc Pennington <hp@pobox.com>
11370 * bus/driver.c (bus_driver_handle_acquire_service): return an
11371 error if you try to acquire a service that starts with ':'
11373 2003-04-07 Havoc Pennington <hp@redhat.com>
11375 * doc/dbus-specification.sgml: require that base service names
11376 start with ':' and that the base service is created/deleted
11377 as first and last things a connection does on the bus
11379 * bus/dispatch.c (check_existent_service_activation): lots more
11380 work on the activation test; it doesn't fully pass yet...
11382 * test/test-service.c (main): fix so we don't memleak the
11383 connection to the message bus
11384 (filter_func): accept a message asking us to exit
11386 2003-04-06 Havoc Pennington <hp@pobox.com>
11388 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11391 * configure.in: fixes to Qt detection from Colin Walters
11393 * doc/Makefile.am: Only remove generated docbook dirs if they
11394 exist, from Colin Walters
11396 * dbus/dbus-bus.c: change how we set well-known connections to
11397 NULL, so that it works if a single connection is stored in
11398 two well-known array slots.
11400 * test/Makefile.am: remove a lot of stuff that isn't immediately
11401 useful, it's in CVS history if we want it.
11403 * test/test-service.c: use dbus-mainloop instead of that
11406 2003-04-06 Havoc Pennington <hp@pobox.com>
11408 * dbus/Makefile.am: split lists of sources into stuff that goes in
11409 the library, util functions that go in the lib and are also used
11410 elsewhere, and util functions that are used in tests/daemon but
11411 don't go in the lib.
11413 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11414 here so it can be used in test binaries also
11416 2003-04-06 Havoc Pennington <hp@pobox.com>
11418 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11419 here in the parent process, so we can return an error if it
11420 fails. Also, move some of the code into the child so the parent
11421 is less hosed if we fail midway through.
11423 * bus/bus.c (bus_context_new): move pidfile detection further up
11424 in the function, before we start overwriting sockets and such.
11426 * bus/messagebus.in: adjust this a bit, not sure if it will work.
11428 * configure.in: add --with-system-pid-file and --with-system-socket
11430 2003-04-06 Colin Walters <walters@verbum.org>
11432 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11434 * bus/system.conf.in: Declare a pidfile.
11436 * bus/bus.c (bus_context_new): Test for an existing pid file, and
11437 create one (if appropriate).
11439 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11440 (struct BusConfigParser) [pidfile]: New.
11441 (element_type_to_name, merge_included, start_busconfig_child)
11442 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11443 (bus_config_parser_unref): Free it.
11444 (bus_config_parser_get_pidfile): New function.
11446 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11448 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11450 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11452 * dbus/dbus-sysdeps.h: Prototype it.
11454 2003-04-06 Havoc Pennington <hp@pobox.com>
11456 * bus/bus.c (bus_context_new): print the address in here, rather
11457 than in main(), because we need to do it before forking the daemon
11459 * bus/dispatch.c (send_service_nonexistent_error): set the sender
11460 on the service nonexistent error
11462 * bus/driver.c (bus_driver_handle_acquire_service): set the
11463 sender on the AcquireService reply
11465 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11466 server also listen on a UNIX socket so services can connect to it.
11468 2003-04-06 Havoc Pennington <hp@pobox.com>
11470 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11471 so it detects deadlocks and also we actually init threads when
11474 2003-04-06 Havoc Pennington <hp@pobox.com>
11476 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11477 save the domain socket name, and unlink it when we disconnect the
11478 server. Means that at least when we exit normally, we won't leave
11479 a bunch of junk in /tmp
11481 * dbus/dbus-transport-unix.c
11482 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11483 memory management). (I was making a real change here but then
11486 2003-04-06 Havoc Pennington <hp@pobox.com>
11488 * bus/bus.c (bus_context_new): fix wrong handling of
11489 server_data_slot_unref() in the error case.
11491 * dbus/dbus-internals.h (_dbus_assert): change so it passes
11492 "(condition) != 0" to _dbus_real_assert so that
11493 "_dbus_assert (pointer)" doesn't cause a warning
11495 * bus/main.c (main): accept --print-address option to print out
11496 the message bus address
11498 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11500 * dbus/dbus-transport.c (_dbus_transport_open): special error for
11501 "tmpdir" option to unix: address on client side
11503 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11506 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11507 we can use to create sockets in the test suite.
11509 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11510 cleanly. To be used for testing.
11512 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11514 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11516 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11517 handle trying to call this when there's no servers active
11519 2003-04-05 Havoc Pennington <hp@pobox.com>
11523 * configure.in: 0.8
11525 2003-04-05 Havoc Pennington <hp@pobox.com>
11527 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11528 crash on startup. Need to get "try starting the daemon"
11529 in the test suite I guess. ;-)
11531 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11532 tracked the number of open connections; it's better done in
11533 application-specific code as you want it to span all servers etc.
11535 2003-04-05 Havoc Pennington <hp@pobox.com>
11537 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11538 patch from Colin Walters
11540 2003-04-05 Havoc Pennington <hp@pobox.com>
11542 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11543 reality; in fact multiple mechanisms are allowed.
11545 * dbus/dbus-internals.c (_dbus_real_assert)
11546 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11547 _dbus_assert_not_reached() into functions, so that they don't show
11548 up in basic block counts for test coverage, and don't use up as
11549 much disk space. Does mean slower execution speed though, so
11550 assumes --disable-asserts is the normal production case.
11552 2003-04-05 Havoc Pennington <hp@pobox.com>
11554 * test/Makefile.am (dist-hook): also dist *.in files
11558 * configure.in: 0.7
11560 2003-04-05 Havoc Pennington <hp@pobox.com>
11562 * dbus/dbus-string.c: docs warning
11564 * dbus/dbus-spawn.c: missing docs
11566 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11568 2003-04-05 Havoc Pennington <hp@pobox.com>
11570 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11573 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11574 to -1 once we've reaped the babysitter
11575 (_dbus_babysitter_handle_watch): do as much work as we can, not
11578 * bus/activation.c: add code using DBusBabysitter so that we
11579 handle it when a service fails to start up properly.
11580 (bus_activation_service_created): don't remove the activation
11581 entries as we go, just let them get removed when we free the pending
11582 activation. Unref reply messages after sending them.
11584 2003-04-05 Havoc Pennington <hp@pobox.com>
11586 * test/decode-gcov.c (main): print per-directory stats in the report
11588 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11590 2003-04-05 Havoc Pennington <hp@pobox.com>
11592 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11594 * test/decode-gcov.c: hack up a little program to suck data
11595 out of gcov files. Yes this is sort of silly.
11597 * configure.in: define something in config.h and do an
11598 AM_CONDITIONAL when gcov is enabled
11600 2003-04-04 Havoc Pennington <hp@redhat.com>
11602 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11603 return a "babysitter" object that is used to monitor the status of
11604 the spawned process and reap it when required.
11606 * test/test-segfault.c, test/test-exit.c,
11607 test/test-sleep-forever.c: binaries that do various lame things,
11608 used in the test suite.
11610 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11612 2003-04-03 Havoc Pennington <hp@pobox.com>
11614 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11615 in preparation for modifying it, dbus-sysdeps is getting
11616 a bit unmanageable.
11618 2003-04-03 Havoc Pennington <hp@redhat.com>
11620 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11623 * bus/*.[hc]: adapt to mainloop change
11625 2003-04-03 Havoc Pennington <hp@redhat.com>
11627 * bus/activation.c (load_directory): fix up memleaks
11628 (bus_activation_entry_free): free the entry
11630 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11631 we get one from the message bus; fix memleaks.
11633 * dbus/dbus-message.c (dbus_set_error_from_message): new function
11635 2003-04-03 Havoc Pennington <hp@pobox.com>
11637 * bus/config-parser.c (bus_config_parser_unref): free
11638 list of mechanisms, bug discovered by test suite enhancements
11639 (putting system.conf and session.conf into suite)
11641 * test/Makefile.am, test/test-service.c: add placeholder for a
11642 test service that we'll activate as part of test suite. Doesn't
11645 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11646 setting NULL value, and use system malloc not dbus_malloc()
11647 when we have unavoidable memleakage.
11649 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11650 didn't work, and support DBUS_BUS_ACTIVATION.
11652 * bus/activation.c (child_setup): pass our well-known bus type to
11655 * bus/config-parser.c: support <type> to specify well-known type
11657 * doc/dbus-specification.sgml: document the env variables to
11658 locate well-known buses and find service activator
11660 2003-04-02 Havoc Pennington <hp@redhat.com>
11662 * test/Makefile.am (all-local): add a rule to copy tests to
11663 builddir, so we can have generated tests. Use this to remove the
11664 silly hack for testing system.conf and session.conf. Will use this
11665 shortly to generate .service files pointing to test binaries.
11667 2003-04-02 Havoc Pennington <hp@redhat.com>
11669 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11670 current alloc and needed new length, not max of the doubled
11671 allocation and needed new length. Also, when building tests,
11672 don't do the double-allocation stuff, just realloc every time.
11674 2003-04-02 Havoc Pennington <hp@redhat.com>
11676 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11678 (_dbus_string_get_dirname): new
11679 (_dbus_sysdeps_test): new
11680 (_dbus_directory_open): include dirnames in error messages
11682 * bus/config-parser.c: interpret <include> and <includedir> and
11683 <servicedir> relative to config file location if the given
11684 filename is not absolute.
11686 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11688 2003-04-02 Havoc Pennington <hp@redhat.com>
11690 * bus/connection.c (bus_transaction_send_error_reply): set sender
11691 service for the error, and unref the reply on success
11693 * bus/activation.c: convert to use BusTransaction so OOM can be
11695 (bus_activation_service_created): set sender of the message
11697 2003-04-01 Havoc Pennington <hp@redhat.com>
11699 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11700 <includedir> (at least mostly)
11702 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11703 first, then the user ID
11705 2003-04-01 Havoc Pennington <hp@pobox.com>
11707 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11710 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11712 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11714 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11715 socket 0777, and unlink any existing socket.
11717 * bus/bus.c (bus_context_new): change our UID/GID and fork if
11718 the configuration file so specifies; set up auth mechanism
11721 * bus/config-parser.c (bus_config_parser_content): add support
11722 for <fork> option and fill in code for <auth>
11724 * bus/system.conf.in: add <fork/> to default configuration,
11725 and limit auth mechanisms to EXTERNAL
11727 * doc/config-file.txt (Elements): add <fork>
11729 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11730 (_dbus_change_identity): new function
11732 2003-03-31 Havoc Pennington <hp@redhat.com>
11734 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11735 (_dbus_listen_unix_socket): fix off-by-one error in null
11736 termination spotted by Nalin
11738 2003-03-31 Havoc Pennington <hp@redhat.com>
11740 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11741 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11742 having a real home directory available.
11744 2003-03-31 Havoc Pennington <hp@redhat.com>
11746 * bus/Makefile.am (install-data-hook): create /var/run/dbus
11748 * bus/messagebus.in: add init script for Red Hat /etc/init.d
11750 * configure.in: add support for specifying a style of init script
11753 2003-03-31 Havoc Pennington <hp@redhat.com>
11755 Fix some annoying DBusString API and fix all affected code.
11757 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11758 max_length argument
11759 (_dbus_string_get_data): change to return string instead of using
11761 (_dbus_string_get_const_data): ditto
11762 (_dbus_string_get_data_len): ditto
11763 (_dbus_string_get_const_data_len): ditto
11765 2003-03-31 Havoc Pennington <hp@redhat.com>
11767 * bus/main.c (main): fix up the command line arguments to be nicer
11769 2003-03-31 Havoc Pennington <hp@redhat.com>
11771 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11772 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11773 final location that lands in the config file
11775 * bus/config-loader-expat.c (bus_config_load): fix type of
11776 XML_Parser variable
11778 * doc/TODO: remove TODO item for dbus_bus_get()
11780 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11782 2003-03-31 Havoc Pennington <hp@pobox.com>
11784 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11785 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11786 argument since they are always client side
11788 * dbus/dbus-server.c (dbus_server_get_address): new function
11790 * bus/main.c (main): take the configuration file as an argument.
11792 * test/data/valid-config-files/debug-allow-all.conf: new file to
11793 use with dispatch.c tests for example
11795 * bus/test-main.c (main): require test data dir
11797 * bus/bus.c (bus_context_new): change this to take a
11798 configuration file name as argument
11800 * doc/config-file.txt (Elements): add <servicedir>
11802 * bus/system.conf, bus/session.conf: new files
11804 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11805 well-known socket if none set
11807 * configure.in: create system.conf and session.conf
11809 2003-03-30 Havoc Pennington <hp@pobox.com>
11811 * bus/config-parser.c: hacking
11813 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11814 to shut down, since it could cause weirdness with the DBusList
11817 * dbus/dbus-list.c (_dbus_list_test): add tests for the
11818 link-oriented stack routines
11819 (alloc_link): free the mempool if the first alloc from it fails
11821 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11823 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11825 (_dbus_string_skip_white): new
11827 * doc/config-file.txt (Elements): add <includedir>
11829 2003-03-28 Havoc Pennington <hp@pobox.com>
11831 * dbus/dbus-string.c (_dbus_string_copy_data_len)
11832 (_dbus_string_copy_data): new functions
11834 2003-03-28 Anders Carlsson <andersca@codefactory.se>
11836 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11840 * dbus/dbus-memory.c:
11843 2003-03-28 Havoc Pennington <hp@pobox.com>
11845 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11846 I think it may have just been superstition. Not sure.
11848 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11849 failures that were not being handled.
11851 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11853 * dbus/dbus-memory.c: add ability to set number of mallocs in a
11854 row that will fail on out-of-memory.
11856 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11857 function for testing out-of-memory handling.
11859 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11860 allocation functions, they do map exactly to the expat ones.
11862 2003-03-27 Havoc Pennington <hp@redhat.com>
11864 * bus/config-loader-libxml.c (bus_config_load): add another error
11867 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11870 Add note about automatic service activation.
11872 * doc/dbus-specification.sgml:
11873 Rename the specification and clarify a few things.
11875 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11878 * dbus/dbus-address.c:
11879 * dbus/dbus-dict.c:
11880 * dbus/dbus-marshal.c:
11881 * dbus/dbus-server-debug-pipe.c:
11882 * dbus/dbus-transport-unix.c:
11883 Fix documentation warnings.
11885 2003-03-26 Havoc Pennington <hp@pobox.com>
11887 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11888 after every test so it's quick and easy to see which leaked, and
11889 so we test multiple dbus_shutdown() calls
11891 * configure.in: change configure.in XML stuff to also support
11894 * config-loader-libxml.c: some hacking
11896 * config-loader-expat.c: some hacking
11898 * config-parser.c: some hacking, plus tests
11900 2003-03-25 Havoc Pennington <hp@redhat.com>
11902 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11904 * configure.in: add --with-xml option to specify XML library,
11905 right now only libxml is supported.
11907 * bus/config-loader-libxml.c, config-parser.c: sync some minor
11908 nonworking code between home and work, still just stubs
11910 2003-03-24 Havoc Pennington <hp@redhat.com>
11912 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11915 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11916 NULL argument for "message" if the error is a well-known one,
11917 fill in a generic message in this case.
11919 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11922 * bus/test.c (bus_test_flush_bus): add
11924 * bus/policy.c (bus_policy_test): test code stub
11926 2003-03-24 Havoc Pennington <hp@pobox.com>
11928 * bus/connection.c (bus_connections_setup_connection): set up
11929 the "can this user connect" function, but it always returns
11930 TRUE until we have a config file parser so we can have a config
11931 file that allows connections.
11933 2003-03-23 Havoc Pennington <hp@pobox.com>
11935 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11936 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11937 the mutex, so we can check for proper memory management
11940 * dbus/dbus-dataslot.c: remove the mutex from
11941 DBusDataSlotAllocator and lock it manually when using it,
11942 to simplify fitting it into the global slots framework.
11944 * dbus/dbus-threads.c (init_static_locks): rework how we're
11945 handling global locks so they are easily shut down.
11947 * bus/policy.c (bus_policy_append_rule): fix
11949 * bus/test-main.c (main): check for memleaks
11951 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11952 test suite check for memleaks
11954 * dbus/dbus-memory.c: add support in test mode for tracking
11955 number of outstanding blocks
11957 2003-03-23 Havoc Pennington <hp@pobox.com>
11959 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11962 * dbus/dbus-hash.h: add ULONG hash keys
11964 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11965 (_dbus_get_group_id): new function
11967 2003-03-20 Havoc Pennington <hp@redhat.com>
11969 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11971 (dbus_connection_get_unix_user): new function
11973 2003-03-20 Havoc Pennington <hp@pobox.com>
11975 * bus/connection.c (bus_connection_send_oom_error): assert that
11976 message has a sender
11977 (connection_execute_transaction): ditto
11978 (bus_connection_preallocate_oom_error): fix to set the sender, and
11979 set recipient to the destination service, not the bus driver
11981 * bus/policy.c: hacking
11983 * dbus/dbus-message.c (dbus_message_service_is): new function
11984 (dbus_message_sender_is): new
11986 2003-03-19 Havoc Pennington <hp@redhat.com>
11988 * bus/policy.c: start sketching code for policy restrictions on
11989 what connections can do.
11991 2003-03-18 Havoc Pennington <hp@redhat.com>
11993 * doc/TODO: some notes on high-level todo items. Little nitpick
11994 stuff is all in @todo, so no need to add it here.
11996 * doc/config-file.txt: some notes on how config file might look
11998 2003-03-18 Anders Carlsson <andersca@codefactory.se>
12000 * configure.in: 0.6
12004 2003-03-17 Havoc Pennington <hp@redhat.com>
12006 * dbus/dbus-internals.h: add gcc attributes so that
12007 our printf-style functions warn on bad arguments to
12010 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12013 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12016 2003-03-17 Havoc Pennington <hp@redhat.com>
12018 * bus/test-main.c (main): make it print something as it runs
12019 so make check doesn't look stuck
12021 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12022 from CVS, now obsolete
12024 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12026 * bus/dispatch.c: (bus_dispatch):
12027 Refetch the service name since it may have been reallocated
12028 when dbus_message_set_sender was called.
12030 * dbus/dbus-sysdeps.c: (_dbus_accept):
12031 Add address and address length variables and use them to stop
12032 valgrind from complaining.
12034 2003-03-17 Havoc Pennington <hp@pobox.com>
12036 All tests pass, no memleaks, no valgrind complaints.
12038 * bus/test.c: refcount handler_slot
12040 * bus/connection.c (bus_connections_new): refcount
12041 connection_data_slot
12043 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12044 bytes so that auth scripts pass.
12046 * bus/dispatch.c: init message_handler_slot so it gets allocated
12049 * bus/dispatch.c (message_handler_slot_ref): fix memleak
12051 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12052 dealloc server_pipe_hash when no longer used for benefit of
12055 * dbus/dbus-auth.c (process_command): memleak fix
12057 * bus/dispatch.c (check_hello_message): memleak fix
12059 2003-03-16 Havoc Pennington <hp@pobox.com>
12061 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12063 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12065 * bus/activation.c (bus_activation_activate_service): Append
12066 the pending activation entry to the list of pending activations.
12068 2003-03-16 Havoc Pennington <hp@pobox.com>
12070 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12073 * dbus/dbus-address.c (create_entry): fix OOM handling when
12074 failing to alloc entry->method
12076 2003-03-16 Havoc Pennington <hp@pobox.com>
12078 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12081 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12082 add some missing dbus_set_result
12084 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12085 alloc the DBusMessageHandler
12087 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12088 the transport here, since we call this from the finalizer; it
12089 resulted in a double-finalize.
12091 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12092 where we tried to use transport->connection that was NULL,
12093 happened when transport was disconnected early on due to OOM
12095 * bus/*.c: adapt to handle OOM for watches/timeouts
12097 * dbus/dbus-transport-unix.c: port to handle OOM during
12100 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12101 reference to unused bytes instead of a copy
12103 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12106 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12109 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12112 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12114 * doc/dbus-specification.sgml:
12115 Document reply message for ActivateService.
12117 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12119 * bus/activation.c: (bus_pending_activation_entry_free),
12120 (bus_pending_activation_free), (bus_activation_new),
12121 (bus_activation_unref), (bus_activation_service_created),
12122 (bus_activation_activate_service):
12123 * bus/activation.h:
12124 * bus/bus.c: (bus_context_new):
12125 * bus/desktop-file.c: (new_section):
12126 * bus/driver.c: (bus_driver_send_service_deleted),
12127 (bus_driver_handle_activate_service):
12128 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12130 * dbus/dbus-connection.c:
12131 (dbus_connection_send_with_reply_and_block):
12132 * dbus/dbus-message.c: (dbus_message_append_args_valist):
12133 * dbus/dbus-protocol.h:
12134 Make activation work better. Now pending activations will be queued
12135 and the daemon won't try to activate services that are already registered.
12137 2003-03-16 Havoc Pennington <hp@pobox.com>
12139 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12142 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12143 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12145 2003-03-16 Havoc Pennington <hp@pobox.com>
12147 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12148 this. always run the test suite before commit...
12150 * bus/*: adapt to DBusConnection API changes
12152 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12153 requires renaming stuff to avoid dbus_connection_dispatch name
12156 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12159 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12160 separate from _dbus_message_loader_return_buffer()
12162 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12163 this, because it's now always broken to use; the number of
12164 messages in queue vs. the number still buffered by the message
12165 loader is undefined/meaningless. Should use
12166 dbus_connection_get_dispatch_state().
12167 (dbus_connection_dispatch): rename from
12168 dbus_connection_dispatch_message
12170 2003-03-16 Havoc Pennington <hp@pobox.com>
12172 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12175 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12177 * dbus/dbus-connection.c:
12178 (dbus_connection_send_with_reply_and_block):
12179 Decrease connection->n_incoming when removing an entry
12181 * dbus/dbus-dict.c: (dbus_dict_entry_free),
12182 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12183 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12184 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12185 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12186 (dbus_dict_get_byte_array):
12187 Handle NULL arrays and strings. Also add support for byte arrays.
12189 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12190 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12191 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12192 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12193 (_dbus_demarshal_dict), (demarshal_and_validate_len),
12194 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12195 * dbus/dbus-marshal.h:
12196 Add support for marshalling and demarshalling empty arrays and strings.
12198 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12199 (dbus_message_append_string_array),
12200 (dbus_message_iter_get_boolean),
12201 (dbus_message_iter_get_boolean_array),
12202 (dbus_message_iter_get_int32_array),
12203 (dbus_message_iter_get_uint32_array),
12204 (dbus_message_iter_get_double_array),
12205 (dbus_message_iter_get_byte_array),
12206 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12207 (check_message_handling):
12208 Add support for getting empty arrays and dicts.
12210 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12211 Don't do any validation at all for now, that's better than just checking
12214 * test/data/valid-messages/emptiness.message:
12215 New test message with lots of empty arrays.
12217 2003-03-16 Havoc Pennington <hp@pobox.com>
12219 * dbus/dbus-connection.c
12220 (_dbus_connection_queue_received_message_link): new function that
12221 can't fail due to OOM
12223 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12224 new function pops a message together with a list link
12227 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12228 message queuing functions to avoid needing to alloc memory
12230 2003-03-16 Havoc Pennington <hp@pobox.com>
12232 Oops - test code was only testing failure of around 30 of the
12233 mallocs in the test path, but it turns out there are 500+
12234 mallocs. I believe this was due to misguided linking setup such
12235 that there was one copy of dbus_malloc etc. in the daemon and one
12236 in the shared lib, and only daemon mallocs were tested. In any
12237 case, the test case now tests all 500+ mallocs, and doesn't pass
12238 yet, though there are lots of fixes in this patch.
12240 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12241 this so that it doesn't need to allocate memory, since it
12242 has no way of indicating failure due to OOM (and would be
12243 annoying if it did).
12245 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12247 * bus/Makefile.am: rearrange to create two self-contained
12248 libraries, to avoid having libraries with overlapping symbols.
12249 that was resulting in weirdness, e.g. I'm pretty sure there
12250 were two copies of global static variables.
12252 * dbus/dbus-internals.c: move the malloc debug stuff to
12255 * dbus/dbus-list.c (free_link): free list mempool if it becomes
12258 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12260 * dbus/dbus-address.c (dbus_parse_address): free list nodes
12263 * bus/dispatch.c (bus_dispatch_add_connection): free
12264 message_handler_slot when no longer using it, so
12265 memory leak checkers are happy for the test suite.
12267 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12269 * bus/bus.c (new_connection_callback): disconnect in here if
12270 bus_connections_setup_connection fails.
12272 * bus/connection.c (bus_connections_unref): fix to free the
12274 (bus_connections_setup_connection): if this fails, don't
12275 disconnect the connection, just be sure there are no side
12278 * dbus/dbus-string.c (undo_alignment): unbreak this
12280 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12282 (_dbus_auth_new): fix the order in which we free strings
12285 * bus/connection.c (bus_connection_disconnected): fix to
12286 not send ServiceDeleted multiple times in case of memory
12289 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12290 get the base service name
12291 (dbus_bus_register_client): don't return base service name,
12292 instead store it on the DBusConnection and have an accessor
12294 (dbus_bus_register_client): rename dbus_bus_register()
12296 * bus/dispatch.c (check_hello_message): verify that other
12297 connections on the bus also got the correct results, not
12298 just the one sending hello
12300 2003-03-15 Havoc Pennington <hp@pobox.com>
12302 Make it pass the Hello handling test including all OOM codepaths.
12303 Now to do other messages...
12305 * bus/services.c (bus_service_remove_owner): fix crash when
12306 removing owner from an empty list of owners
12307 (bus_registry_ensure): don't leave service in the list of
12308 a connection's owned services if we fail to put the service
12311 * bus/connection.c (bus_connection_preallocate_oom_error): set
12312 error flag on the OOM error.
12314 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12315 handle _dbus_transport_set_connection failure
12317 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12318 to create watches up front and simply enable/disable them as
12320 (unix_connection_set): this can now fail on OOM
12322 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12323 of enabling/disabling a watch or timeout.
12325 * bus/loop.c (bus_loop_iterate): don't touch disabled
12328 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12330 2003-03-15 Havoc Pennington <hp@pobox.com>
12332 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12333 write useful test code, after all that futzing around ;-)
12335 Test does not yet pass because we can't handle OOM in
12336 _dbus_transport_messages_pending (basically,
12337 dbus_connection_preallocate_send() does not prealloc the write
12338 watch). To fix this, I think we need to add new stuff to
12339 set_watch_functions, namely a SetEnabled function so we can alloc
12340 the watch earlier, then enable it later.
12342 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12343 dbus-memory.c to the convenience lib
12345 * bus/test.c: rename some static functions to keep them clearly
12346 distinct from stuff in connection.c. Handle client disconnection.
12348 2003-03-14 Havoc Pennington <hp@pobox.com>
12350 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12351 transport, tests more of the real codepath. Set up clients
12352 with bus_setup_debug_client.
12354 * bus/test.c (bus_setup_debug_client): function to set up debug
12355 "clients" on the main loop
12357 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12360 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12363 * dbus/dbus-server-debug.c: support a debug server based on pipes
12365 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12366 (_dbus_close): new function
12368 * configure.in: check for socketpair
12370 2003-03-14 Havoc Pennington <hp@redhat.com>
12372 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12375 * dbus/dbus-transport-debug.c: rework this a good bit to be
12376 less complicated. hopefully still works.
12378 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12381 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12384 * dbus/dbus-message.c (dbus_message_copy): rename from
12385 dbus_message_new_from_message, fix it up to copy
12386 all the message fields, add test case
12388 * bus/dispatch.c (bus_dispatch_test): add some more test code,
12389 not quite passing yet
12391 2003-03-14 Havoc Pennington <hp@pobox.com>
12393 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12394 until no work remains" in test code. (the large diff here
12395 is just code movement, no actual changes)
12397 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12398 1, no point waiting around for test code.
12399 (_dbus_server_debug_accept_transport): unref the timeout
12400 after adding it (right?)
12402 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12404 2003-03-13 Havoc Pennington <hp@redhat.com>
12406 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12409 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12412 * dbus/dbus-connection.h: Make AddWatchFunction and
12413 AddTimeoutFunction return a bool so they can fail on out-of-memory
12415 * bus/bus.c (bus_context_new): set up timeout handlers
12417 * bus/connection.c (bus_connections_setup_connection): set up
12420 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12423 * bus/bus.c (bus_context_new): adapt to changes
12425 * bus/connection.c: adapt to changes
12427 * test/watch.c: adapt to DBusWatch changes
12429 * bus/dispatch.c (bus_dispatch_test): started adding this but
12432 2003-03-14 Anders Carlsson <andersca@codefactory.se>
12434 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12436 2003-03-13 Havoc Pennington <hp@pobox.com>
12438 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12439 set up a test framework as for the library
12441 2003-03-12 Havoc Pennington <hp@pobox.com>
12443 Throughout: purge global variables, introduce BusActivation,
12444 BusConnections, BusRegistry, etc. objects instead.
12446 * bus/bus.h, bus/bus.c: introduce BusContext as a global
12449 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12450 going to redo this a bit differently I think
12452 2003-03-12 Havoc Pennington <hp@redhat.com>
12454 Mega-patch that gets the message bus daemon initially handling
12455 out-of-memory. Work still needed. Also lots of random
12456 moving stuff to DBusError instead of ResultCode.
12458 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12460 * dbus/dbus-connection.c
12461 (dbus_connection_send_with_reply_and_block): use DBusError
12463 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12466 * dbus/dbus-connection.c (dbus_connection_send): drop the result
12467 code here, as the only failure possible is OOM.
12469 * bus/connection.c (bus_connection_disconnect):
12470 rename bus_connection_disconnected as it's a notification only
12472 * bus/driver.c (bus_driver_handle_acquire_service): don't free
12473 "name" on get_args failure, should be done by get_args;
12474 don't disconnect client for bad args, just return an error.
12475 (bus_driver_handle_service_exists): ditto
12477 * bus/services.c (bus_services_list): NULL-terminate returned array
12479 * bus/driver.c (bus_driver_send_service_lost)
12480 (bus_driver_send_service_acquired): send messages from driver to a
12481 specific client to the client's unique name, not to the broadcast
12484 * dbus/dbus-message.c (decode_header_data): reject messages that
12485 contain no name field
12486 (_dbus_message_get_client_serial): rename to
12487 dbus_message_get_serial and make public
12488 (_dbus_message_set_serial): rename from set_client_serial
12489 (_dbus_message_set_reply_serial): make public
12490 (_dbus_message_get_reply_serial): make public
12492 * bus/connection.c (bus_connection_foreach): allow stopping
12493 iteration by returning FALSE from foreach function.
12495 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12496 (dbus_connection_free_preallocated_send)
12497 (dbus_connection_preallocate_send): new API for sending a message
12498 without possibility of malloc failure.
12499 (dbus_connection_send_message): rename to just
12500 dbus_connection_send (and same for whole function family)
12502 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12504 * dbus/dbus-sysdeps.c (_dbus_exit): new function
12506 * bus/activation.c: handle/return errors
12508 * dbus/dbus-errors.h: add more DBUS_ERROR #define
12510 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12511 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12512 (_dbus_result_from_errno): move to this file
12514 2003-03-10 Anders Carlsson <andersca@codefactory.se>
12516 * dbus/dbus-marshal.c:
12517 (_dbus_marshal_set_string):
12518 Take a length argument so we can marshal the correct string
12521 (_dbus_marshal_dict), (_dbus_demarshal_dict),
12522 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12523 (_dbus_marshal_test):
12524 * dbus/dbus-marshal.h:
12525 Add support for marshalling and demarshalling dicts.
12527 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12528 Add support for TYPE DICT.
12530 * dbus/dbus-message.c: (set_string_field):
12531 Adjust header padding.
12533 (dbus_message_append_args_valist), (dbus_message_append_dict),
12534 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12535 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12536 (check_message_handling), (check_have_valid_message):
12537 * dbus/dbus-message.h:
12538 Add functions for setting and getting dicts.
12540 * dbus/dbus-protocol.h:
12541 Add DBUS_TYPE_DICT.
12546 * doc/dbus-specification.sgml:
12547 Add information about how dicts are marshalled.
12549 * test/data/invalid-messages/dict-with-nil-value.message:
12550 * test/data/invalid-messages/too-short-dict.message:
12551 * test/data/valid-messages/dict-simple.message:
12552 * test/data/valid-messages/dict.message:
12553 Add sample messages containing dicts.
12555 2003-03-08 Anders Carlsson <andersca@codefactory.se>
12557 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12559 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12561 * dbus/Makefile.am:
12562 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12563 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12564 (dbus_dict_set_int32), (dbus_dict_set_uint32),
12565 (dbus_dict_set_double), (dbus_dict_set_string),
12566 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12567 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12568 (dbus_dict_set_string_array), (_dbus_dict_test):
12569 * dbus/dbus-dict.h:
12570 Fix according to comments from Havoc.
12572 2003-03-06 Michael Meeks <michael@server.home>
12574 * configure.in: if we don't have kde-config, disable have_qt.
12576 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12578 * dbus/Makefile.am:
12581 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12582 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12583 (dbus_dict_remove), (dbus_dict_get_value_type),
12584 (dbus_dict_get_keys), (dbus_dict_put_boolean),
12585 (dbus_dict_put_int32), (dbus_dict_put_uint32),
12586 (dbus_dict_put_double), (dbus_dict_put_string),
12587 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12588 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12589 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12590 (dbus_dict_get_int32), (dbus_dict_get_uint32),
12591 (dbus_dict_get_double), (dbus_dict_get_string),
12592 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12593 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12594 (dbus_dict_get_string_array), (_dbus_dict_test):
12595 * dbus/dbus-dict.h:
12596 Add DBusDict implementation
12598 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12599 * dbus/dbus-test.h:
12600 Add _dbus_dict_test
12602 2003-03-04 Havoc Pennington <hp@pobox.com>
12604 * test/data/auth/*: adapt to changes
12606 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12607 USERID_BASE64 and change USERNAME_BASE64 to put in username not
12610 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12611 more stuff from being in a context name, to make the protocol
12612 simpler to deal with
12614 * dbus/dbus-errors.c (dbus_error_has_name): new function
12615 (dbus_error_is_set): new function
12617 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12618 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12620 * dbus/dbus-connection.c (dbus_connection_flush): also read
12621 messages during a flush operation
12623 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12625 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12627 * configure.in: Check for gethostbyname on Solaris.
12629 * dbus/dbus-transport.c: (_dbus_transport_open):
12630 Remove duplicate "tcp" entry.
12632 * doc/dbus-specification.sgml:
12633 Clarify some things.
12635 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12637 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12638 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12639 (_dbus_keyring_test):
12640 * dbus/dbus-md5.c: (_dbus_md5_compute):
12641 * dbus/dbus-sha.c: (_dbus_sha_compute):
12644 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12646 * README: Add some things.
12648 2003-03-04 Anders Carlsson <andersca@codefactory.se>
12650 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12651 after case DBUS_TYPE_BOOELAN.
12653 2003-03-02 Havoc Pennington <hp@pobox.com>
12655 * test/break-loader.c (randomly_set_extreme_ints): add test that
12656 sets really huge and small integers
12658 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12659 that length of boolean array fits in the string, and that
12660 string has room for boolean value in single-bool case.
12662 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12663 optional value to "ALIGN" command which is what to fill the
12666 * test/data/valid-messages/no-padding.message: add regression
12667 test for the message padding problem
12669 2003-03-02 Havoc Pennington <hp@pobox.com>
12671 * dbus/dbus-message.c (decode_header_data): fix to always init
12672 message_padding, from Benjamin Dauvergne
12674 2003-03-02 Havoc Pennington <hp@pobox.com>
12676 * configure.in: 0.5
12680 2003-03-01 Joe Shaw <joe@assbarn.com>
12682 * configure.in: Check for "struct cmsgcred" and try to access its
12683 members for BSD-like unices.
12685 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12686 _dbus_read_credentials_unix_socket().
12687 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12688 read() for reading the credential byte off the unix socket. Use
12689 struct cmsgcred on systems that support it.
12691 2003-02-27 Alexander Larsson <alexl@redhat.com>
12693 * glib/Makefile.am:
12695 Make gthreads-2.0 dependency optional. Don't build thread test if
12698 2003-02-27 Havoc Pennington <hp@pobox.com>
12700 * dbus/dbus-connection.c
12701 (dbus_connection_send_message_with_reply_and_block): fix doh!
12702 doh! doh! bug that resulted in never removing a reply from the
12703 queue, no wonder we called get_reply_serial so much ;-)
12705 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12706 and client serial instead of demarshaling them every time
12708 2003-02-27 Havoc Pennington <hp@pobox.com>
12710 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12711 more inlined, using dbus-string-private.h, speeds things up
12714 * dbus/dbus-string.c (_dbus_string_free): apply align offset
12715 when freeing the string
12716 (_dbus_string_steal_data): fix for align offset
12717 (undo_alignment): new function
12719 2003-02-26 Havoc Pennington <hp@redhat.com>
12721 All kinds of audit fixes from Owen, plus initial attempt to
12722 handle unaligned memory returned from malloc.
12724 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12725 leave room for align_offset and nul byte
12726 (fixup_alignment): function to track an align_offset and
12727 ensure real->str is aligned
12728 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12729 to allow a nul byte plus align offset
12730 (_dbus_string_lock): fix overflow issue
12731 (_dbus_string_init_const_len): add assertions on sanity of len,
12732 assign allocated to be ALLOCATION_PADDING larger than len
12733 (set_length): fixup the overflow handling
12734 (_dbus_string_get_data_len): fix overflow in assertion
12735 (open_gap): detect overflow in size of gap to be opened
12736 (_dbus_string_lengthen): add overflow check
12737 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12738 (_dbus_string_append): add overflow check
12739 (_dbus_string_append_unichar): overflow
12740 (_dbus_string_delete): fix overflow in assertion
12741 (_dbus_string_copy_len): overflow in assertion
12742 (_dbus_string_replace_len): overflows in assertions
12743 (_dbus_string_find): change to implement in terms of
12744 _dbus_string_find_to
12745 (_dbus_string_find_to): assorted fixage
12746 (_dbus_string_equal_c_str): assert c_str != NULL,
12747 fix logic so the function works
12748 (_dbus_string_ends_with_c_str): fix overflow thingy
12749 (_dbus_string_base64_encode): overflow fix
12750 (_dbus_string_validate_ascii): overflow
12751 (_dbus_string_validate_nul): overflow
12753 2003-02-26 Havoc Pennington <hp@redhat.com>
12755 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12757 2003-02-26 Alexander Larsson <alexl@redhat.com>
12760 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12762 * dbus/dbus-connection.c:
12763 * dbus/dbus-connection.h:
12764 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12765 Add dbus_connection_set_wakeup_main_function and use it when queueing
12766 incoming and outgoing messages.
12769 * dbus/dbus-dataslot.c:
12770 Threadsafe usage of DBusDataSlotAllocator
12772 * dbus/dbus-message.c: (dbus_message_get_args_iter):
12775 * dbus/dbus-server-unix.c:
12778 * glib/dbus-gmain.c:
12779 Implement the new wakeup functions for glib.
12781 * glib/Makefile.am:
12782 * glib/test-thread-client.c:
12783 * glib/test-thread-server.c:
12784 * glib/test-thread.h:
12785 Initial cut at some thread test code. Not really done yet.
12787 2003-02-26 Havoc Pennington <hp@pobox.com>
12789 * dbus/dbus-connection.c
12790 (dbus_connection_send_message_with_reply_and_block): fix crash
12791 where we ref'd the outgoing message instead of the returned reply
12793 * dbus/dbus-transport-unix.c (do_authentication): check read watch
12794 at the end of this function, so if we didn't need to read for
12795 authentication, we reinstall it for receiving messages
12797 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12798 a NULL sender for peer-to-peer case
12800 * dbus/dbus-transport-unix.c (check_read_watch): handle
12801 !authenticated case correctly
12803 * glib/dbus-gmain.c: add support for DBusServer
12805 * dbus/dbus-server.c: add data slot support
12807 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12808 return values and handle errors
12810 * dbus/dbus-dataslot.c: factor out the data slot stuff from
12813 * Doxyfile.in (INPUT): add glib subdir
12815 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12816 setup_with_g_main instead of hookup_with_g_main; write docs
12818 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12820 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12821 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12822 * dbus/dbus-message.c: (dbus_message_append_boolean),
12823 (dbus_message_append_boolean_array),
12824 (dbus_message_get_args_valist), (_dbus_message_test):
12825 * dbus/dbus-message.h:
12826 * doc/dbus-specification.sgml:
12827 Various fixes as pointed out by Havoc.
12829 * test/data/invalid-messages/bad-boolean-array.message:
12830 * test/data/invalid-messages/bad-boolean.message:
12831 Add invalid boolean value test cases.
12833 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12835 * dbus/dbus-internals.c: (_dbus_type_to_string):
12836 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12837 (_dbus_marshal_validate_arg):
12838 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12839 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12840 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12841 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12842 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12843 (dbus_message_iter_get_double),
12844 (dbus_message_iter_get_boolean_array), (message_iter_test):
12845 * dbus/dbus-message.h:
12846 * dbus/dbus-protocol.h:
12847 * doc/dbus-specification.sgml:
12848 * test/data/valid-messages/lots-of-arguments.message:
12849 Add support for boolean and boolean array types.
12851 2003-02-23 Havoc Pennington <hp@pobox.com>
12853 * dbus/dbus-keyring.c: finish most of this implementation and
12856 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12857 these barf if the error isn't cleared to NULL
12859 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12860 (_dbus_create_directory): new function
12862 * dbus/dbus-errors.c (dbus_set_error): fix warning
12864 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12865 (_dbus_string_hex_decode): new function
12866 (test_hex_roundtrip): test code
12868 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12870 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12872 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12873 the save-to-temp/rename trick to atomically write the new file
12874 (_dbus_string_parse_uint): new function
12876 2003-02-22 Havoc Pennington <hp@pobox.com>
12878 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12880 2003-02-22 Havoc Pennington <hp@pobox.com>
12882 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12883 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12885 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12887 * dbus/test/data/sha-1: add US government test suite for SHA-1
12889 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12891 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12892 Make string arrays NULL-terminated.
12894 * dbus/dbus-memory.c: (dbus_free_string_array):
12895 * dbus/dbus-memory.h:
12896 New function for freeing NULL-terminated string arrays.
12898 * dbus/dbus-message-builder.c: (append_quoted_string),
12899 (_dbus_message_data_load):
12900 Add support for array types.
12902 * dbus/dbus-message.c: (check_message_handling):
12903 Add more types as test cases.
12905 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12906 (_dbus_string_parse_double):
12907 Add the start offset to the end offset.
12909 * test/data/valid-messages/lots-of-arguments.message:
12910 New test message with lots of arguments.
12912 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12914 * dbus/dbus-message.c: (dbus_message_append_nil),
12915 (dbus_message_append_int32), (dbus_message_append_uint32),
12916 (dbus_message_append_double), (dbus_message_append_string),
12917 (dbus_message_append_int32_array),
12918 (dbus_message_append_uint32_array),
12919 (dbus_message_append_double_array),
12920 (dbus_message_append_byte_array),
12921 (dbus_message_append_string_array):
12922 Fix all out-of-memory handling in these functions.
12924 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12926 * dbus/dbus-message.c: (dbus_message_append_nil):
12929 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12931 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12932 (dbus_message_append_nil), (dbus_message_append_int32_array),
12933 (dbus_message_append_uint32_array),
12934 (dbus_message_append_double_array),
12935 (dbus_message_append_byte_array),
12936 (dbus_message_append_string_array), (dbus_message_get_args_valist),
12937 (dbus_message_iter_get_int32_array),
12938 (dbus_message_iter_get_uint32_array),
12939 (dbus_message_iter_get_double_array),
12940 (dbus_message_iter_get_byte_array),
12941 (dbus_message_iter_get_string_array):
12943 * dbus/dbus-message.h:
12944 Add functions for appending and getting arrays.
12946 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12948 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12949 element size at least 8 bytes, fixes mempool tests on
12952 2003-02-20 Alexander Larsson <alexl@redhat.com>
12954 * dbus/dbus-transport-unix.c (unix_do_iteration):
12955 Unlock the connection mutex during a blocking select call.
12956 Add todo about how we need a way to wake up the select.
12958 * dbus/dbus-connection-internal.h:
12959 * dbus/dbus-connection.c:
12960 Add _dbus_connection_lock and _dbus_connection_unlock.
12962 2003-02-19 Havoc Pennington <hp@pobox.com>
12964 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12965 Doxyfile.in, not Doxyfile
12967 * dbus/dbus-keyring.c: do some hacking on this
12969 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12971 * dbus/dbus-errors.c (dbus_set_error_const): do not call
12973 (dbus_set_error): remove dbus_error_init, check for message ==
12974 NULL *before* we sprintf into it, and add @todo about including
12975 system headers in this file
12977 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12979 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12981 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12982 get various bits of user information based on either username
12984 (_dbus_homedir_from_username): new function
12986 2003-02-19 Anders Carlsson <andersca@codefactory.se>
12989 Add check for nonposix getpwnam_r
12991 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12992 Align the pool element size to a sizeof (void *) boundary.
12994 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12995 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12996 General Solaris fixes.
12998 * test/data/valid-messages/simplest-manual.message:
12999 Explicitly state that we want little-endian packing.
13001 2003-02-19 Mikael Hallendal <micke@codefactory.se>
13003 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13005 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13006 Added to create a transport connecting using a tcp/ip socket.
13008 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13009 to a tcp socket at given host and port.
13010 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13013 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13015 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13016 Added to create a server listening on a TCP/IP socket.
13018 2003-02-19 Havoc Pennington <hp@pobox.com>
13020 Throughout: mop up all the Doxygen warnings and undocumented
13023 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13024 to search any paths.
13026 * dbus/dbus-threads.c: move global mutex initializers to
13027 dbus-internals.h, multiple prototypes was confusing doxygen
13028 besides being kind of ugly
13030 * Doxyfile (PREDEFINED): have Doxygen define
13031 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13032 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13033 (do not abuse the feature! it's for stuff like the autogenerated
13034 macros in dbus-md5.c, not just for things you don't feel like
13037 2003-02-18 Havoc Pennington <hp@pobox.com>
13039 * dbus/dbus-string.c (_dbus_string_zero): new function
13041 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13042 wrap it in some dbus-friendly API
13044 * dbus/dbus-types.h: add 16-bit types
13046 2003-02-18 Joe Shaw <joe@assbarn.com>
13048 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13049 credentials from our currently running process.
13050 (get_word): Fix a buglet where we were copying the entire length
13051 instead of relative to our position.
13053 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13054 keys on the stack... it's 640k of data.
13056 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13057 read the credentials byte off the socket, even if we don't have
13059 (_dbus_poll): Implement poll() using select() for systems which
13062 * glib/test-dbus-glib.c (main): Print out an error if no
13063 parameters are given.
13065 * test/data/auth/fallback.auth-script: Added. Tests that a client
13066 can fallback to a secondary auth mechanism if the first fails.
13068 2003-02-18 Havoc Pennington <hp@pobox.com>
13070 * AUTHORS: add Alex
13072 2003-02-17 Havoc Pennington <hp@pobox.com>
13074 * doc/dbus-specification.sgml: lots of cosmetic
13075 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13076 env variable to DBUS_BUS_ADDRESS, s/client/application/,
13077 s/server/bus/ (except in authentication section). Add a section
13078 "Message Bus Message Routing"
13080 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
13086 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13088 * doc/dbus-specification.sgml:
13089 Specification updates.
13091 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13093 * bus/activation.c: (bus_activation_init), (child_setup),
13094 (bus_activation_activate_service):
13095 * bus/activation.h:
13096 * bus/main.c: (main):
13097 Set DBUS_ADDRESS environment variable.
13099 * dbus/dbus-errors.c: (dbus_set_error):
13100 Don't use va_copy since that's a C99 feature.
13102 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13103 (_dbus_spawn_async):
13104 * dbus/dbus-sysdeps.h:
13105 Add child_setup_func to _dbus_spawn_async.
13107 * doc/dbus-specification.sgml:
13108 Update specification.
13110 * test/spawn-test.c: (setup_func), (main):
13113 2003-02-17 Alexander Larsson <alexl@redhat.com>
13115 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13118 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13122 * doc/dbus-test-plan.sgml:
13123 Add test plan document.
13125 * test/Makefile.am:
13128 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13130 * dbus/dbus-message.c: (decode_header_data),
13131 (_dbus_message_loader_return_buffer):
13132 Set the header padding amount when loading a message.
13134 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13136 * bus/dispatch.c: (send_one_message):
13137 Only send broadcast messages to registered connections.
13139 * dbus/dbus-message.c: (dbus_message_name_is):
13140 * dbus/dbus-message.h:
13141 New convenience function.
13143 * dbus/dbus-transport-debug.c: (do_reading):
13144 Only dispatch one message per run.
13146 * test/Makefile.am:
13147 * test/bus-test.c: (new_connection_callback), (die),
13148 (test_hello_client1_handler), (test_hello_client2_handler),
13149 (test_hello_replies), (main):
13151 * test/bus-test-loop.[ch]:
13154 2003-02-16 Havoc Pennington <hp@pobox.com>
13156 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13157 backward conditional
13159 2003-02-16 Alexander Larsson <alexl@redhat.com>
13161 * dbus/dbus-connection.c:
13162 Implement sent_message_with_reply. (with_reply_and block is still
13164 Made dispatch_message not lose message if OOM.
13166 * dbus/dbus-errors.h:
13167 Add NoReply error (for reply timeouts).
13169 2003-02-16 Alexander Larsson <alexl@redhat.com>
13171 * dbus/dbus-hash.c (_dbus_hash_table_unref):
13172 Actually free keys and values when destroying hashtable.
13174 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13176 * dbus/dbus-auth.c: (client_try_next_mechanism):
13179 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13180 Return TRUE if there's no thread implementation around.
13182 * glib/dbus-gmain.c: (free_source),
13183 (dbus_connection_hookup_with_g_main):
13184 Make sure to remove the GSource when the connection is finalized.
13186 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13188 * bus/dispatch.c: (bus_dispatch_message_handler):
13189 * dbus/dbus-errors.h:
13190 Return an error if someone tries to send a message to a service
13191 that doesn't exist.
13193 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13195 * bus/activation.c: (load_directory), (bus_activation_init),
13196 (bus_activation_activate_service):
13197 * bus/activation.h:
13199 (bus_driver_handle_activate_service), (bus_driver_handle_message):
13200 More work on the activation handling.
13202 * dbus/dbus-errors.h:
13203 Add some error messages
13205 * dbus/dbus-message.c: (dbus_message_new_error_reply):
13206 * dbus/dbus-message.h:
13207 New function that creates an error message.
13209 * dbus/dbus-protocol.h:
13210 Add ACTIVATE_SERVER message.
13212 * dbus/dbus-server-unix.c: (unix_handle_watch),
13213 (_dbus_server_new_for_domain_socket):
13214 Call _dbus_fd_set_close_on_exec.
13216 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13217 (_dbus_spawn_async), (_dbus_disable_sigpipe),
13218 (_dbus_fd_set_close_on_exec):
13219 * dbus/dbus-sysdeps.h:
13220 Add _dbus_fd_set_close_on exec function. Also add function that checks
13221 that all open fds are set to close-on-exec and warns otherwise.
13223 * dbus/dbus-transport-unix.c:
13224 (_dbus_transport_new_for_domain_socket):
13225 Call _dbus_fd_set_close_on_exec.
13227 2003-02-16 Havoc Pennington <hp@pobox.com>
13229 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13230 allow people to avoid setting SIGPIPE to SIG_IGN
13231 (_dbus_connection_new_for_transport): disable SIGPIPE unless
13232 we've been asked not to
13234 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13236 * dbus/dbus-list.c: (_dbus_list_append_link),
13237 (_dbus_list_prepend_link):
13238 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13242 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13245 * bus/activation.c: (bus_activation_entry_free),
13246 (add_desktop_file_entry), (load_directory), (bus_activation_init):
13247 * bus/activation.h:
13248 * bus/main.c: (main):
13249 Add simple activation support, doesn't work yet though.
13251 2003-02-15 Zack Rusin <zack@kde.org>
13253 * qt/dbus-qthread.cpp: small casting fix
13255 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13257 * dbus/dbus-errors.c: (dbus_set_error):
13258 * dbus/dbus-errors.h:
13259 Add a few errors and make dbus_set_error void.
13261 * dbus/dbus-sysdeps.c:
13262 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13263 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13264 * dbus/dbus-sysdeps.h:
13265 Add _dbus_spawn_async.
13267 * test/spawn-test.c: (main):
13268 Test for _dbus_spawn_async.
13270 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13272 * dbus/dbus-internals.h:
13273 Fix build without tests.
13275 * dbus/dbus-list.c: (alloc_link):
13276 Fix a segfault when a malloc fails.
13278 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13279 (dbus_malloc0), (dbus_realloc):
13280 Add support for malloc debugging.
13282 2003-02-15 Alexander Larsson <alexl@redhat.com>
13284 * dbus/dbus-threads.c:
13285 * dbus/dbus-threads.h:
13286 Add condvars. Remove static mutext from API.
13287 Implement static mutexes by initializing them from threads_init.
13289 * glib/dbus-gthread.c:
13290 * qt/dbus-qthread.cpp:
13291 Update with the thread api changes.
13294 * dbus/dbus-list.c:
13295 * dbus/dbus-list.h:
13296 Turn StaticMutex into normal mutex + init function.
13297 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13298 _dbus_list_append_link, _dbus_list_prepend_link
13301 * dbus/dbus-sysdeps.c:
13302 * dbus/dbus-sysdeps.h:
13303 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13304 _dbus_atomic_dec. Only slow fallback implementation at the moment.
13306 * dbus/dbus-protocol.h:
13307 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13309 * dbus/dbus-message.c:
13310 Make ref/unref atomic.
13313 * dbus/dbus-connection-internal.h:
13314 * dbus/dbus-connection.c:
13315 * dbus/dbus-connection.h:
13317 Change _peek to _borrow,_return & _steal_borrowed.
13318 Change disconnect callback to event.
13319 Make dbus_connection_dispatch_messages reentrant.
13321 * dbus/dbus-transport.c:
13322 Don't ref the connection on calls to the transport
13325 * dbus/dbus-message-handler.c:
13328 * glib/dbus-gmain.c:
13329 Don't use peek_message anymore
13331 * test/Makefile.am:
13332 * test/debug-thread.c:
13333 * test/debug-thread.h:
13334 Simple thread implementation that asserts() on deadlocks in
13335 single-threaded code.
13338 (main) Call debug_threads_init.
13341 Use disconnect message instead of disconnect callback.
13343 * bus/connection.c:
13344 * bus/connection.h:
13345 Don't call dbus_connection_set_disconnect_function. Instead export
13346 bus_connection_disconnect.
13349 Call bus_connection_disconnect when we get a disconnected message.
13351 2003-02-15 Havoc Pennington <hp@pobox.com>
13353 * dbus/dbus-message.c (dbus_message_new): fool around with the
13356 2003-02-14 Havoc Pennington <hp@pobox.com>
13358 * dbus/dbus-mempool.c: fail if the debug functions so indicate
13360 * dbus/dbus-memory.c: fail if the debug functions indicate we
13363 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13364 (_dbus_decrement_fail_alloc_counter): debug functions to
13365 simulate memory allocation failures
13367 2003-02-14 Havoc Pennington <hp@pobox.com>
13369 * dbus/dbus-errors.h (struct DBusError): add a word of padding
13372 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13374 * bus/driver.c: (bus_driver_handle_hello):
13376 * bus/services.c: (bus_service_lookup):
13377 Reorder message sending so we get a more sane order.
13379 * test/bus-test.c: (message_handler):
13382 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13384 * bus/driver.c: (bus_driver_send_service_deleted),
13385 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13386 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13387 (bus_driver_send_welcome_message),
13388 (bus_driver_handle_list_services),
13389 (bus_driver_handle_acquire_service),
13390 (bus_driver_handle_service_exists):
13391 * dbus/dbus-bus.c: (dbus_bus_register_client),
13392 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13393 * dbus/dbus-errors.c: (dbus_result_to_string):
13394 * dbus/dbus-errors.h:
13395 * dbus/dbus-message.c: (dbus_message_append_args),
13396 (dbus_message_append_args_valist), (dbus_message_get_args),
13397 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13398 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13399 (dbus_message_iter_get_byte_array),
13400 (dbus_message_iter_get_string_array), (message_iter_test),
13401 (check_message_handling), (_dbus_message_test):
13402 * dbus/dbus-message.h:
13403 * test/bus-test.c: (main):
13404 Change fields to arguments in messages, so that they won't be
13405 confused with header fields.
13407 * glib/test-dbus-glib.c: (main):
13408 Remove append_fields from hello message.
13410 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13412 * dbus/dbus-errors.c:
13413 * dbus/dbus-message.c:
13414 * dbus/dbus-string.c:
13415 Documentation fixes.
13417 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13419 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13421 Implement support for timeouts in dbus-glib.
13423 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13425 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13426 * dbus/dbus-message.c: (process_test_subdir):
13427 * test/break-loader.c: (find_breaks_based_on):
13428 Plug some memory leaks.
13430 2003-02-13 Richard Hult <rhult@codefactory.se>
13432 * bus/main.c: Fix build.
13434 * dbus/dbus-errors.h:
13435 * dbus/dbus-errors.c: Fix copyright for Anders.
13437 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13442 * bus/connection.c: (bus_connection_foreach):
13445 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13446 (unescape_string), (new_section), (parse_section_start),
13447 (parse_key_value), (report_error), (bus_desktop_file_load),
13448 (bus_desktop_file_get_string):
13449 * bus/desktop-file.h:
13450 Use DBusError for error reporting.
13452 * bus/dispatch.c: (send_one_message),
13453 (bus_dispatch_message_handler):
13454 * bus/driver.c: (bus_driver_send_service_deleted),
13455 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13456 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13457 (bus_driver_send_welcome_message),
13458 (bus_driver_handle_list_services),
13459 (bus_driver_handle_acquire_service),
13460 (bus_driver_handle_service_exists):
13461 * bus/loop.c: (bus_loop_run):
13463 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13465 * bus/utils.c: (bus_wait_for_memory):
13467 New files with general utility functions.
13469 * dbus/dbus-internals.h:
13470 Remove _DBUS_HANDLE_OOM.
13472 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13474 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13475 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13476 * dbus/dbus-errors.h:
13477 Add DBusError structure.
13479 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13481 * test/data/valid-messages/standard-acquire-service.message:
13482 * test/data/valid-messages/standard-hello.message:
13483 * test/data/valid-messages/standard-list-services.message:
13484 * test/data/valid-messages/standard-service-exists.message:
13485 Add some standard messages.
13487 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13489 * bus/driver.c: (bus_driver_send_welcome_message),
13490 (bus_driver_handle_list_services),
13491 (bus_driver_handle_acquire_service),
13492 (bus_driver_handle_service_exists), (bus_driver_handle_message):
13493 Update for API changes in libdbus.
13495 * dbus/dbus-message.c: (dbus_message_new_reply):
13496 * dbus/dbus-message.h:
13497 Remove the name argument. The spec states that replies shouldn't
13500 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13502 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13503 (report_error), (bus_desktop_file_load), (lookup_section),
13504 (lookup_line), (bus_desktop_file_get_raw),
13505 (bus_desktop_file_get_string):
13506 * bus/desktop-file.h:
13507 Some fixes, and new functions for getting a key value from a section.
13509 2003-02-13 Havoc Pennington <hp@pobox.com>
13511 * test/data/auth/fail-after-n-attempts.auth-script: new test
13513 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13516 2003-02-13 Havoc Pennington <hp@pobox.com>
13518 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13519 dbus_credentials_match were backward
13521 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13522 NO_CREDENTIALS and ROOT_CREDENTIALS
13524 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13525 into here. Never process more commands after we've reached an
13526 end state; store further data as unused bytes.
13528 * test/data/auth/*: add more auth tests
13530 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13531 command to match exact string and EXPECT_UNUSED to match unused
13534 * test/Makefile.am (dist-hook): fix to dist all the test stuff
13536 2003-02-12 Havoc Pennington <hp@pobox.com>
13538 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13539 \r off of popped lines
13541 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13544 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13547 2003-02-12 Havoc Pennington <hp@pobox.com>
13549 * dbus/Makefile.am: remove break-loader from the build, since it
13552 * configure.in: add --enable-gcov to turn on coverage profiling
13553 flags and disable optimization
13555 2003-02-10 Havoc Pennington <hp@pobox.com>
13557 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13558 initial cut at test framework for DBusAuth from laptop.
13559 Doesn't quite work yet but it compiles and I need to get
13560 it off the 266mhz laptop. ;-)
13562 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13563 fix a memleak in error case
13565 2003-02-12 Anders Carlsson <andersca@codefactory.se>
13568 * bus/desktop-file.c:
13569 * bus/desktop-file.h:
13570 Add a desktop file parser.
13572 2003-02-11 Zack Rusin <zack@kde.org>
13574 * qt/message.[h|cpp]: sample implementation
13575 of the KDE wrapper for DBusMessage
13577 2003-02-09 Zack Rusin <zack@kde.org>
13579 * test/bus-test.c: make_it_compile
13580 * doc/dbus-specification.sgml: minimal semantic fix
13582 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13588 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13590 * dbus/Makefile.am:
13591 * dbus/dbus-break-loader.c:
13592 * test/Makefile.am:
13593 * test/break-loader.c:
13594 Move dbus-break-loader to test/ and rename it to break-loader.
13596 2003-02-02 Havoc Pennington <hp@pobox.com>
13598 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13599 for code to manage cookies in your home directory
13601 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13603 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13604 to authenticate, then disconnect the client.
13606 2003-02-03 Alexander Larsson <alexl@redhat.com>
13608 * dbus/dbus-message.c (dbus_message_append_fields):
13611 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13613 * doc/dbus-specification.sgml:
13614 Update address format section.
13616 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13618 * test/Makefile.am:
13619 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13620 (message_handler), (new_connection_callback), (loop_quit),
13621 (loop_run), (main):
13624 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13626 * bus/driver.c: (bus_driver_handle_service_exists):
13627 Simplify the code a bit.
13629 * dbus/dbus-bus.c: (dbus_bus_service_exists):
13632 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13635 Add libdbus-daemon.la and link to it.
13637 2003-02-01 James Willcox <jwillcox@gnome.org>
13639 * bus/driver.c: (bus_driver_handle_own_service):
13640 Actually include the service reply code in the message.
13642 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13644 * bus/driver.c: (bus_driver_handle_service_exists):
13645 Don't unref the incoming message.
13647 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13649 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13651 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13653 * dbus/dbus-server.c: (dbus_server_listen):
13654 * dbus/dbus-transport.c: (_dbus_transport_open):
13655 ifdef out the calls to the debug transport and server.
13657 2003-02-02 Alexander Larsson <alexl@redhat.com>
13659 * dbus/dbus-watch.c (dbus_watch_get_flags):
13660 Add note in the docs that ERROR or HANGUP won't be returned
13661 and are assumed always on.
13663 * glib/dbus-gmain.c (add_watch):
13664 Always add IO_ERR | IO_HUP
13666 * dbus/dbus-message.h:
13667 Add semicolon after dbus_message_iter_get_string_array().
13668 Makes qt code build again
13670 2003-02-01 Anders Carlsson <andersca@codefactory.se>
13672 * bus/driver.c: (create_unique_client_name),
13673 (bus_driver_handle_hello):
13674 Don't take a name, just use a numeric id to identify
13677 * dbus/Makefile.am:
13678 * dbus/dbus-bus.c: (dbus_bus_register_client),
13679 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13681 Add new convenience functions for communicating with the bus.
13683 * dbus/dbus-message.h:
13685 * dbus/dbus-protocol.h:
13688 2003-02-01 Alexander Larsson <alexl@redhat.com>
13690 * dbus/dbus-message.c (dbus_message_append_fields):
13691 Add some more doc comments.
13693 2003-02-01 Havoc Pennington <hp@pobox.com>
13695 * dbus/dbus-break-loader.c (randomly_modify_length): change
13696 a 4-byte value in the message as if it were a length
13698 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13699 execute bit on saved files
13701 2003-02-01 Havoc Pennington <hp@pobox.com>
13703 * dbus/dbus-break-loader.c (main): new program to find messages
13704 that break the loader.
13706 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13707 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13709 * dbus/dbus-string.c (_dbus_string_set_byte): new
13711 2003-01-31 Havoc Pennington <hp@pobox.com>
13713 * dbus/dbus-message.c: refactor the test code to be more general,
13714 in preparation for writing a "randomly permute test cases to
13715 try to break the loader" program.
13717 2003-01-31 Havoc Pennington <hp@pobox.com>
13719 * doc/dbus-specification.sgml: work on the specification
13721 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13722 the protocol version of the message.
13724 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13725 no longer specifies that.
13726 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13729 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13730 "break" for DBUS_TYPE_NIL, remove @todo
13732 2003-01-31 Havoc Pennington <hp@pobox.com>
13734 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13735 just set_is_error/get_is_error as this is a commonly-used
13736 function, and write docs.
13738 2003-01-31 Anders Carlsson <andersca@codefactory.se>
13740 * dbus/dbus-address.c: (dbus_address_entry_free):
13741 Free key and value lists.
13743 * dbus/dbus-internals.c: (_dbus_type_to_string):
13744 Add the types we didn't have.
13746 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13747 (_dbus_marshal_validate_arg):
13750 * dbus/dbus-message.c: (dbus_message_set_sender):
13751 Remove todo about being able to set sender to NULL.
13753 (dbus_message_set_is_error_reply),
13754 (dbus_message_get_is_error_reply):
13755 * dbus/dbus-message.h:
13758 * dbus/dbus-protocol.h:
13759 Add error reply flag.
13761 * test/data/valid-messages/opposite-endian.message:
13762 Add NIL type to test.
13764 2003-01-31 Havoc Pennington <hp@pobox.com>
13766 * doc/dbus-specification.sgml: fully specify the header. Add
13767 flags and major protocol version, and change header/body len to
13770 * dbus/dbus-message-builder.c (append_saved_length): append length
13773 * dbus/dbus-message.c (dbus_message_create_header): change header
13774 length and body length to unsigned. Add the new fields from the
13776 (_dbus_message_loader_return_buffer): unsigned header/body len
13778 2003-01-30 Havoc Pennington <hp@pobox.com>
13780 * dbus/dbus-auth.c: rework to use only REJECTED, no
13783 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13784 use REJECTED, suggested by Mark McLoughlin
13786 2003-01-30 Havoc Pennington <hp@pobox.com>
13788 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13789 a better way to report errors here. e.g. "unix address lacks
13790 path" or something. also "no such file" when the path doesn't
13793 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13795 (dbus_parse_address): add @todo about documenting address format,
13796 and allowing , and ; to be escaped
13798 2003-01-30 Anders Carlsson <andersca@codefactory.se>
13800 * dbus/Makefile.am:
13801 Add dbus-address.[ch]
13803 * dbus/dbus-address.c: (dbus_address_entry_free),
13804 (dbus_address_entries_free), (create_entry),
13805 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13806 (dbus_parse_address), (_dbus_address_test):
13807 * dbus/dbus-address.h:
13808 New files for dealing with address parsing.
13810 * dbus/dbus-connection.c:
13811 Document timeout functions.
13813 * dbus/dbus-message.c:
13814 Document dbus_message_new_from_message.
13816 * dbus/dbus-server-debug.c:
13819 * dbus/dbus-server.c: (dbus_server_listen):
13820 Parse address and use correct server implementation.
13822 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13823 * dbus/dbus-string.h:
13824 New function with test.
13826 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13827 * dbus/dbus-test.h:
13830 * dbus/dbus-transport-debug.c:
13833 * dbus/dbus-transport.c: (_dbus_transport_open):
13834 Parse address and use correct transport implementation.
13836 2003-01-30 Havoc Pennington <hp@pobox.com>
13838 * dbus/dbus-message.c: use message->byte_order instead of
13839 DBUS_COMPILER_BYTE_ORDER throughout.
13840 (dbus_message_create_header): pad header to align the
13841 start of the body of the message to 8-byte boundary
13843 * dbus/dbus-marshal.h: make all the demarshalers take const
13844 DBusString arguments.
13846 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13847 validate message args here, so we don't have to do slow validation
13848 later, and so we catch bad messages as they are incoming. Also add
13849 better checks on header_len and body_len. Also fill in
13850 message->byte_order
13852 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13853 implemented properly)
13854 (_dbus_string_validate_nul): new function to check all-nul
13856 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13857 get_arg_end_pos and remove all validation
13858 (_dbus_marshal_validate_arg): actually do validation here.
13860 2003-01-29 Havoc Pennington <hp@pobox.com>
13862 * dbus/dbus-message.c (check_message_handling): fix assertion
13863 failure on set_client_serial
13865 2003-01-28 Havoc Pennington <hp@pobox.com>
13867 * dbus/dbus-server-debug.c: Add doc section comments
13869 * dbus/dbus-transport-debug.c: add doc section comments
13871 2003-01-28 Havoc Pennington <hp@redhat.com>
13873 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13874 the reverse order from how I had it
13875 (_dbus_string_base64_encode): reverse encoding order. I was
13876 basically byteswapping everything during encoding.
13878 2003-01-28 Anders Carlsson <andersca@codefactory.se>
13880 * dbus/dbus-connection-internal.h:
13881 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13882 (_dbus_connection_remove_timeout):
13883 Add functions for adding and removing timeouts.
13885 * dbus/dbus-message.c: (dbus_message_new_from_message):
13886 Add new function that takes a message and creates an exact
13887 copy of it, but with the refcount set to 1.
13888 (check_message_handling):
13891 * dbus/dbus-server-protected.h:
13892 * dbus/dbus-server.c: (_dbus_server_init_base),
13893 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13894 (dbus_server_set_timeout_functions):
13895 (_dbus_server_remove_timeout):
13896 New functions so that a server can add and remove timeouts.
13898 (dbus_server_listen):
13899 Add commented out call to dbus_server_debug_new.
13901 * dbus/dbus-timeout.c: (_dbus_timeout_new):
13902 Actually set the handler, doh.
13904 * dbus/dbus-transport.c: (_dbus_transport_open):
13905 Add commented out call to dbus_transport_debug_client_new.
13907 * dbus/Makefile.am:
13908 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13910 2003-01-28 Havoc Pennington <hp@pobox.com>
13912 * dbus/dbus-message.c (check_message_handling): function to check
13913 on the loaded message, iterates over it etc.
13915 2003-01-28 Havoc Pennington <hp@pobox.com>
13917 * test/Makefile.am (dist-hook): fix make distdir
13919 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13921 2003-01-27 Havoc Pennington <hp@pobox.com>
13923 * dbus/dbus-mempool.c (time_for_size): replace printf with
13926 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13927 empty lines; fix the SAVE_LENGTH stuff to be
13928 START_LENGTH/END_LENGTH so it actually works; couple other
13931 * test/Makefile.am (dist-hook): add dist-hook for .message files
13933 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13934 can be constant or locked.
13935 (_dbus_string_free): allow freeing a const string as
13936 documented/intended
13938 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13940 * dbus/dbus-test-main.c (main): take an argument which is the
13941 directory containing test data
13943 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13944 argument to this and load all the messages in test/data/
13945 checking that they can be loaded or not loaded as appropriate.
13947 2003-01-27 Anders Carlsson <andersca@codefactory.se>
13949 * bus/dispatch.c: (bus_dispatch_message_handler):
13950 Dispatch messages sent to services.
13952 * bus/driver.c: (bus_driver_send_service_deleted),
13953 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13954 (bus_driver_send_service_acquired):
13955 Add helper functions for sending service related messages.
13957 (bus_driver_send_welcome_message):
13958 Send HELLO_REPLY instead of WELCOME.
13960 (bus_driver_handle_list_services):
13961 Send LIST_SERVICES_REPLY instead of SERVICES.
13963 (bus_driver_handle_own_service),
13964 (bus_driver_handle_service_exists):
13965 New message handlers.
13967 (bus_driver_handle_message):
13968 Invoke new message handlers.
13970 (bus_driver_remove_connection):
13971 Don't remove any services here since that's done automatically
13972 by bus_service_remove_owner now.
13975 New function signatures.
13977 * bus/services.c: (bus_service_add_owner):
13978 Send ServiceAcquired message if we're the only primary owner.
13980 (bus_service_remove_owner):
13981 Send ServiceAcquired/ServiceLost messages.
13983 (bus_service_set_prohibit_replacement),
13984 (bus_service_get_prohibit_replacement):
13985 Functions for setting prohibit replacement.
13987 (bus_service_has_owner):
13988 New function that checks if a connection is in the owner queue of
13992 Add new function signatures.
13994 * dbus/dbus-list.c: (_dbus_list_test):
13995 Add tests for _dbus_list_remove_last and traversing the list backwards.
13997 * dbus/dbus-list.h:
13998 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13999 go any further, so return NULL then.
14001 * dbus/dbus-protocol.h:
14002 Add new messages, service flags and service replies.
14004 2003-01-26 Havoc Pennington <hp@pobox.com>
14006 * dbus/dbus-message-builder.c: implement, completely untested.
14008 * test/data/*: add data to be used in testing.
14009 ".message" files are our simple loadable text format.
14010 ".message-raw" will be binary dumps of messages.
14012 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14014 2003-01-26 Havoc Pennington <hp@pobox.com>
14016 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14018 * dbus/dbus-errors.c (dbus_result_to_string): add
14021 * dbus/dbus-message-builder.c: new file, will contain code to load
14022 up messages from files. Not implemented yet.
14024 2003-01-26 Havoc Pennington <hp@pobox.com>
14026 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14027 the sender by setting to NULL
14029 2003-01-26 Havoc Pennington <hp@pobox.com>
14031 The unit tests pass, but otherwise untested. If it breaks, the
14032 tests should have been better. ;-)
14034 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14037 * dbus/dbus-message.c: redo everything so we maintain
14038 message->header as the only copy of the various fields.
14039 This avoids the possibility of out-of-memory in some cases,
14040 for example dbus_message_lock() can't run out of memory anymore,
14041 and avoids extra copying. Figured I may as well go ahead and do
14042 this since it was busted for dbus_message_lock to not return
14043 failure on OOM, and dbus_message_write_header was totally
14044 unchecked for OOM. Also fixed some random other bugs.
14046 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14047 that strings are nul-terminated. Also, end_pos can be equal
14048 to string length just not greater than, I think.
14049 (_dbus_marshal_set_int32): new function
14050 (_dbus_marshal_set_uint32): new function
14051 (_dbus_marshal_set_string): new function
14053 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14054 a warning, init timeout_list to NULL
14055 (dbus_connection_send_message): don't use uninitialized variable
14058 * dbus/dbus-string.c (_dbus_string_replace_len): new function
14060 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14062 * bus/driver.c: (bus_driver_handle_hello),
14063 (bus_driver_send_welcome_message):
14066 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14068 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14069 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14070 (dbus_connection_unref):
14071 * dbus/dbus-marshal.c: (_dbus_marshal_test):
14072 * dbus/dbus-message.c: (dbus_message_unref),
14075 (dbus_message_get_fields):
14076 Remove debugging printout.
14078 (_dbus_message_loader_return_buffer):
14079 Don't store the header string.
14081 (_dbus_message_test):
14084 2003-01-26 Richard Hult <rhult@codefactory.se>
14086 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14087 the file descriptor list, since it can change under us.
14089 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14091 * glib/dbus-gmain.c: (dbus_connection_prepare),
14092 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14093 (remove_watch), (dbus_connection_hookup_with_g_main):
14094 Rewrite the glib handling to use its own GSource instead of a
14095 GIOChannel so we can catch messages put in the queue while waiting
14098 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14101 * bus/connection.c: (connection_disconnect_handler),
14102 (connection_watch_callback), (bus_connection_setup):
14103 * bus/dispatch.c: (send_one_message),
14104 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14105 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14107 * bus/driver.c: (bus_driver_send_service_deleted),
14108 (bus_driver_send_service_created), (bus_driver_handle_hello),
14109 (bus_driver_send_welcome_message),
14110 (bus_driver_handle_list_services), (bus_driver_remove_connection),
14111 (bus_driver_handle_message):
14113 Refactor code, put the message dispatching in its own file. Use
14114 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14117 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14119 * dbus/dbus-internals.h:
14120 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14122 * dbus/dbus-message.c: (dbus_message_get_sender):
14123 * dbus/dbus-message.h:
14124 Implement dbus_message_get_sender.
14126 * dbus/dbus-protocol.h:
14127 Add message and service defines.
14129 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14131 * dbus/dbus-connection.c: (dbus_connection_send_message):
14132 * dbus/dbus-message-internal.h:
14133 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14134 (dbus_message_write_header):
14135 Remove _dbus_messag_unlock and don't set the client serial on a
14136 message if one already exists.
14138 2003-01-24 Havoc Pennington <hp@pobox.com>
14140 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14143 * bus/driver.c (bus_driver_handle_list_services): fix a leak
14146 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14148 * dbus/dbus-list.c: (alloc_link), (free_link):
14149 Use a memory pool for the links.
14151 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14153 * bus/connection.c: (bus_connection_foreach):
14154 * bus/connection.h:
14155 Add new bus_connection_foreach function.
14157 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14158 Add function that broadcasts a message to all clients.
14160 (bus_driver_send_service_created), (bus_driver_handle_hello),
14161 (bus_driver_send_welcome_message),
14162 (bus_driver_handle_list_services), (bus_driver_message_handler):
14163 Implement functions that take care of listing services, and notifying
14164 clients when new services are created.
14166 * bus/services.c: (bus_services_list):
14168 Add new function that returns an array of strings with the currently
14169 registered services.
14171 * glib/dbus-glib.h:
14172 * glib/dbus-gmain.c:
14173 Update copyright year.
14175 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14177 * dbus/dbus-connection.c: (dbus_connection_send_message):
14178 Unlock the message in case it was sent earlier.
14180 (dbus_connection_send_message_with_reply_and_block):
14181 Remove the reply message from the list.
14183 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14184 Set array_len and new_pos correctly.
14186 (_dbus_marshal_test):
14187 Remove debug output.
14189 * dbus/dbus-message-internal.h:
14190 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14191 New function that returns the reply serial.
14193 (_dbus_message_unlock):
14194 New function that unlocks a message and resets its header.
14196 (dbus_message_append_string_array),
14197 (dbus_message_get_fields_valist),
14198 (dbus_message_iter_get_field_type),
14199 (dbus_message_iter_get_string_array),
14200 (dbus_message_get_fields),
14201 (dbus_message_append_fields_valist):
14202 Handle string arrays.
14204 (dbus_message_set_sender):
14205 Make this function public since the bus daemon needs it.
14207 (decode_header_data):
14208 Set the reply serial to -1 initially.
14210 * dbus/dbus-message.h:
14211 Add dbus_message_set_sender.
14213 2003-01-24 Havoc Pennington <hp@pobox.com>
14215 * doc/dbus-specification.sgml: add some stuff
14217 2003-01-22 Havoc Pennington <hp@pobox.com>
14219 * doc/dbus-specification.sgml: Start to document the protocol.
14221 2003-01-22 Havoc Pennington <hp@pobox.com>
14223 * dbus/dbus-connection.c
14224 (dbus_connection_send_message_with_reply_and_block): add some @todo
14226 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14228 2003-01-21 Havoc Pennington <hp@pobox.com>
14230 (patch untested because can't compile)
14232 * bus/driver.c (create_unique_client_name): make this function
14233 never recycle client names. Also, caller should initialize
14236 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14238 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14240 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14241 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14242 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14243 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14244 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14245 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14246 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14247 * dbus/dbus-marshal.h:
14248 * dbus/dbus-protocol.h:
14249 Add support for marshalling and demarshalling integer, double
14252 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14257 * bus/connection.c: (connection_disconnect_handler):
14258 Remove the connection from the bus driver's list.
14260 (connection_watch_callback): Dispatch messages.
14262 (free_connection_data): Free connection name.
14264 (bus_connection_setup): Add connection to the bus driver's list.
14265 (bus_connection_remove_owned_service):
14266 (bus_connection_set_name), (bus_connection_get_name):
14267 Add functions for setting and getting the connection's name.
14269 * bus/connection.h:
14270 Add function headers.
14272 * bus/driver.c: (create_unique_client_name),
14273 (bus_driver_handle_hello_message),
14274 (bus_driver_send_welcome_message), (bus_driver_message_handler),
14275 (bus_driver_add_connection), (bus_driver_remove_connection):
14278 * bus/services.c: (bus_service_free):
14280 New file that handles communication and registreation with the bus
14283 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14285 * dbus/dbus-connection.c: (dbus_connection_send_message):
14286 Add a new client_serial parameter.
14288 (dbus_connection_send_message_with_reply):
14289 Remove a @todo since we've implemented the blocking function.
14291 (dbus_connection_send_message_with_reply_and_block):
14292 New function that sends a message and waits for a reply and
14293 then returns the reply.
14295 * dbus/dbus-connection.h:
14298 * dbus/dbus-errors.c: (dbus_result_to_string):
14299 * dbus/dbus-errors.h:
14300 Add new DBUS_RESULT.
14302 * dbus/dbus-message-internal.h:
14303 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14304 (_dbus_message_set_sender), (dbus_message_write_header),
14305 (dbus_message_new_reply), (decode_header_data),
14306 (_dbus_message_loader_return_buffer), (_dbus_message_test):
14307 * dbus/dbus-message.h:
14308 Add new functions that set the reply serial and sender.
14309 Also marshal and demarshal them correctly and add test.
14311 * dbus/dbus-protocol.h:
14312 Add new DBUS_MESSAGE_TYPE_SENDER.
14314 * glib/dbus-glib.h:
14315 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14316 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14317 (dbus_connection_hookup_with_g_main):
14318 * glib/test-dbus-glib.c: (main):
14319 Rewrite to use GIOChannel and remove the GSource crack.
14321 * test/echo-client.c: (main):
14322 * test/watch.c: (check_messages):
14323 Update for changed APIs
14325 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14327 * dbus/Makefile.am: Add dbus-timeout.[cħ]
14329 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14330 Create a DBusTimeoutList.
14331 (dbus_connection_set_timeout_functions): Add new function to
14332 set timeout callbacks
14334 * dbus/dbus-connection.h: Add public DBusTimeout API.
14336 * dbus/dbus-message.c: (dbus_message_get_service):
14337 * dbus/dbus-message.h: New function.
14339 * dbus/dbus-server.c: Fix small doc typo.
14341 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14343 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14345 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14346 of the string, just as long as specified.
14348 2003-01-19 Havoc Pennington <hp@pobox.com>
14350 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14353 * dbus/dbus-server.c (dbus_server_set_max_connections)
14354 (dbus_server_get_max_connections, dbus_server_get_n_connections):
14355 keep track of current number of connections, and add API for
14356 setting a max (but haven't implemented enforcing the max yet)
14358 2003-01-18 Havoc Pennington <hp@pobox.com>
14360 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14361 reading/writing if read_watch != NULL or write_watch != NULL.
14363 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14364 the message loader code to actually load message->header and
14365 message->body into the newly-created message.
14367 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14370 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14371 (dbus_connection_get_max_message_size)
14372 (dbus_connection_set_max_live_messages_size)
14373 (dbus_connection_get_max_live_messages_size): implement some
14374 resource limitation functions
14376 * dbus/dbus-resources.c: new file implementing some of the
14377 resource limits stuff
14379 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14380 missing docs, add @todo to handle OOM etc.
14382 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14385 2003-01-18 Havoc Pennington <hp@pobox.com>
14387 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14388 connection if it hasn't been already.
14390 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14391 replace with DisconnectFunction.
14393 2003-01-18 Havoc Pennington <hp@pobox.com>
14395 Building --disable-verbose-mode --disable-asserts --disable-tests
14396 cuts the library from 112K to 45K or so
14398 * configure.in: check for varargs macro support,
14399 add --enable-verbose-mode, --enable-asserts.
14401 * dbus/dbus-internals.h (_dbus_assert): support
14402 DBUS_DISABLE_ASSERT
14403 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14405 2003-01-18 Havoc Pennington <hp@pobox.com>
14407 * dbus/dbus-test.c: include config.h so that tests actually run
14409 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14410 so the failure mode when that assumption fails will be plenty
14413 2003-01-18 Havoc Pennington <hp@pobox.com>
14415 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14417 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14420 * test/Makefile.am: don't use special variable "TESTS" for echo-*
14421 since we don't want to use those in make check
14423 2003-01-15 Havoc Pennington <hp@redhat.com>
14429 2003-01-15 Havoc Pennington <hp@redhat.com>
14431 * test/Makefile.am: fix so that test source code ends up in the
14432 distribution on make distcheck
14434 2003-01-15 Havoc Pennington <hp@redhat.com>
14440 2003-01-15 Havoc Pennington <hp@redhat.com>
14442 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14443 fix build when --disable-tests
14445 * Makefile.am (EXTRA_DIST): put HACKING in here
14447 * HACKING: document procedure for making a tarball release.
14449 2003-01-14 Anders Carlsson <andersca@codefactory.se>
14451 * bus/connection.c: (connection_error_handler),
14452 (bus_connection_setup):
14453 * bus/main.c: (main):
14454 Make sure that the DBusConnectionData struct is NULLed
14455 out to prevent a segfault.
14457 * dbus/dbus-errors.c: (dbus_result_to_string):
14458 * dbus/dbus-errors.h:
14459 * dbus/dbus-message.c: (dbus_message_get_fields),
14460 (dbus_message_get_fields_valist), (_dbus_message_test):
14461 * dbus/dbus-message.h:
14462 Make dbus_message_get_fields return a result code so we can
14463 track invalid fields as well as oom.
14465 2003-01-11 Havoc Pennington <hp@pobox.com>
14467 * configure.in: change --enable-test/--enable-ansi action-if-given
14468 to enable_foo=$enableval instead of enable_foo=yes
14470 2003-01-08 Havoc Pennington <hp@pobox.com>
14472 * dbus/dbus-string.c (_dbus_string_align_length): new function
14474 * dbus/dbus-test-main.c: move main() for test app here
14476 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14477 symbol to run tests, because dbus-test isn't in the main
14480 Code review nitpicks.
14482 * dbus/dbus-message.c (dbus_message_write_header): add newlines
14483 for people with narrow emacs ;-). Assert client_serial was filled
14484 in. Assert message->name != NULL.
14485 (dbus_message_append_fields): have "first_field_type" arg separate
14486 from va list, needed for C++ binding that also uses varargs IIRC
14487 and helps with type safety
14488 (dbus_message_new): add @todo about using DBusString to store
14489 service/name internally
14490 (dbus_message_new): don't leak ->service and ->name on OOM later
14492 (dbus_message_unref): free the service name
14493 (dbus_message_get_fields): same change to varargs
14494 i.e. first_field_type
14495 (_dbus_message_loader_return_buffer): assert that the message data
14496 is aligned (if not it's a bug in our code). Put in verbose griping
14497 about why we set corrupted = TRUE.
14498 (decode_header_data): add FIXME that char* is evil. Was going to
14499 add FIXME about evil locale-specific string.h strncmp, but just
14500 switched to wacky string-as-uint32 optimization. Move check for
14501 "no room for field name" above get_const_data_len() to avoid
14502 assertion failure in get_const_data_len if we have trailing 2
14503 bytes or the like. Check for service and name fields being
14504 provided twice. Don't leak service/name on error. Require field
14505 names to be aligned to 4 bytes.
14507 * dbus/dbus-marshal.c: move byte swap stuff to header
14508 (_dbus_pack_int32): uscore-prefix
14509 (_dbus_unpack_int32): uscore-prefix
14510 (_dbus_unpack_uint32): export
14511 (_dbus_demarshal_string): add @todo complaining about use of
14513 (_dbus_marshal_get_field_end_pos): add @todo about bad error
14514 handling allowing corrupt data to go unchecked
14516 2003-01-08 Havoc Pennington <hp@redhat.com>
14518 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14519 to the select() as needed for authentication. (should be using
14520 _dbus_poll() not select, but for another day)
14522 * dbus/dbus.h: include dbus/dbus-protocol.h
14524 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14526 * dbus/Makefile.am (dbusinclude_HEADERS): Install
14529 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14531 * dbus/dbus-internals.c: (_dbus_type_to_string):
14532 New function that returns a string describing a type.
14534 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14535 * dbus/dbus-marshal.h:
14536 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14537 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14538 (dbus_message_iter_get_byte_array):
14539 * dbus/dbus-message.h:
14540 Add new convenience functions for appending and getting message fields.
14541 Also add demarshalling routines for byte arrays.
14543 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14545 * dbus/dbus-connection-internal.h:
14546 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14547 (_dbus_connection_get_next_client_serial),
14548 (dbus_connection_send_message):
14549 * dbus/dbus-internals.h:
14550 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14551 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14552 (_dbus_marshal_uint32), (_dbus_demarshal_double),
14553 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14554 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14555 (_dbus_verbose_bytes), (_dbus_marshal_test):
14556 * dbus/dbus-marshal.h:
14557 * dbus/dbus-message-internal.h:
14558 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14559 (dbus_message_write_header), (_dbus_message_lock),
14560 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14561 (dbus_message_get_name), (dbus_message_append_int32),
14562 (dbus_message_append_uint32), (dbus_message_append_double),
14563 (dbus_message_append_string), (dbus_message_append_byte_array),
14564 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14565 (dbus_message_iter_unref), (dbus_message_iter_has_next),
14566 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14567 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14568 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14569 (decode_header_data), (_dbus_message_loader_return_buffer),
14570 (message_iter_test), (_dbus_message_test):
14571 * dbus/dbus-message.h:
14572 * dbus/dbus-protocol.h:
14573 * dbus/dbus-test.c: (main):
14574 * dbus/dbus-test.h:
14575 * glib/test-dbus-glib.c: (message_handler), (main):
14576 * test/echo-client.c: (main):
14577 * test/watch.c: (check_messages):
14578 Make messages sendable and receivable for real.
14580 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14582 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14583 (_dbus_marshal_string), (_dbus_marshal_byte_array):
14584 * dbus/dbus-message.c: (dbus_message_append_int32),
14585 (dbus_message_append_uint32), (dbus_message_append_double),
14586 (dbus_message_append_string), (dbus_message_append_byte_array):
14587 Handle OOM restoration.
14589 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14591 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14592 (_dbus_demarshal_string), (_dbus_marshal_test):
14593 * dbus/dbus-marshal.h:
14594 * dbus/dbus-message.c: (dbus_message_get_name),
14595 Document these functions.
14597 (dbus_message_append_int32), (dbus_message_append_uint32),
14598 (dbus_message_append_double), (dbus_message_append_string),
14599 (dbus_message_append_byte_array):
14600 * dbus/dbus-message.h:
14601 Add functions for adding message fields of different types.
14603 * dbus/dbus-protocol.h:
14604 Add the different types.
14606 2003-01-05 Havoc Pennington <hp@pobox.com>
14608 * bus/connection.c: implement routines for handling connections,
14609 first thing is keeping a list of owned services on each connection
14610 and setting up watches etc.
14612 * bus/services.c: implement a mapping from service names to lists
14615 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14617 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14618 to use static mutexes for global data
14620 * dbus/dbus-connection.c (dbus_connection_set_data): add new
14621 collection of functions to set/get application-specific data
14622 on the DBusConnection.
14624 2003-01-04 Havoc Pennington <hp@pobox.com>
14626 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14627 (_dbus_poll): new function
14629 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14632 * bus/loop.c: initial code for the daemon main loop
14634 2003-01-04 Havoc Pennington <hp@pobox.com>
14636 * test/watch.c (error_handler): make it safe if the error handler
14637 is called multiple times (if we s/error handler/disconnect
14638 handler/ we should just guarantee it's called only once)
14640 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14641 error handler on disconnect (it's quite possible we should
14642 just change the error handler to a "disconnect handler," I'm
14643 not sure we have any other meaningful errors)
14645 * configure.in: check for getpwnam_r
14647 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14648 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14649 mechanism as in SASL spec, using socket credentials
14651 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14652 (_dbus_send_credentials_unix_socket): new function
14654 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14656 (_dbus_write): only check errno if <0 returned
14657 (_dbus_write_two): ditto
14659 2003-01-02 Anders Carlsson <andersca@codefactory.se>
14661 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14662 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14663 (_dbus_marshal_test):
14664 * dbus/dbus-marshal.h:
14665 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14666 to _dbus_marshal_utf8_string. Also fix some tests.
14668 2002-12-28 Harri Porten <porten@kde.org>
14670 * configure.in: added check for C++ compiler and a very cheesy
14671 check for the Qt integration
14673 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14675 * qt/Makefile.am: added
14677 * qt/.cvsignore: added
14679 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14680 latter, added #ifdef QT_THREAD_SUPPORT guard.
14682 * dbus/Makefile.am: added missing headers for make dist
14684 2002-12-28 Kristian Rietveld <kris@gtk.org>
14686 * dbus/Makefile.am: fixup export-symbols-regex.
14688 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14690 * acinclude.m4: Add this file and put the
14691 PKG_CHECK_MODULE macro in it.
14693 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14695 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14696 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14697 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14698 (_dbus_marshal_test):
14699 Make the demarshalling routines align the pos argument.
14700 Add string marshalling tests and fix the obvious bugs
14703 2002-12-26 Havoc Pennington <hp@pobox.com>
14705 * dbus/dbus-auth.c: fixes fixes fixes
14707 * dbus/dbus-transport-unix.c: wire up support for
14708 encoding/decoding data on the wire
14710 * dbus/dbus-auth.c (_dbus_auth_encode_data)
14711 (_dbus_auth_decode_data): append to target string
14712 instead of nuking it.
14714 2002-12-26 Havoc Pennington <hp@pobox.com>
14716 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14717 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14720 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14721 avoid swap_bytes() overhead (ignoring possible assembly stuff for
14722 now). Main point is because I wanted unpack_uint32 to implement
14723 _dbus_verbose_bytes
14724 (_dbus_verbose_bytes): new function
14726 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14728 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14729 mechanism to handle a corrupt message stream
14730 (_dbus_message_loader_new): fix preallocation to only prealloc,
14733 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14734 (_dbus_string_test): enhance tests for copy/move and fix the
14737 * dbus/dbus-transport-unix.c: Hold references in more places to
14738 avoid reentrancy problems
14740 * dbus/dbus-transport.c: ditto
14742 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14743 leak reference count in no-message case
14745 * test/watch.c (do_mainloop): handle adding/removing watches
14746 during iteration over the watches. Also, ref the connection/server
14747 stored on a watch, so we don't try to mangle a destroyed one.
14749 * dbus/dbus-transport-unix.c (do_authentication): perform
14752 * dbus/dbus-auth.c (get_state): add a state
14753 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14754 (_dbus_auth_get_unused_bytes): append the unused bytes
14755 to the passed in string, rather than prepend
14757 * dbus/dbus-transport.c (_dbus_transport_init_base): create
14758 the auth conversation DBusAuth
14760 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14761 (_dbus_transport_new_for_domain_socket): when creating a
14762 transport, pass in whether it's a client-side or server-side
14763 transport so we know which DBusAuth to create
14765 2002-12-03 Havoc Pennington <hp@pobox.com>
14767 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14768 _after_ finalizing the derived members
14769 (unix_connection_set): unref watch if we fail to add it
14771 * dbus/dbus-connection.c (dbus_connection_unref): delete the
14772 transport first, so that the connection owned by the
14773 transport will be valid as the transport finalizes.
14775 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14776 if necessary, and remove watches from the connection.
14778 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14780 2002-12-26 Anders Carlsson <andersca@codefactory.se>
14782 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14783 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14784 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14785 (_dbus_marshal_test):
14786 * dbus/dbus-marshal.h:
14787 Add string marshal functions and have the demarshal functions
14788 return the new position.
14790 2002-12-25 Havoc Pennington <hp@pobox.com>
14792 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14793 it is a simple protocol that just maps directly to SASL.
14795 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14796 initial implementation, not actually used yet.
14798 * dbus/dbus-string.c (_dbus_string_find): new function
14799 (_dbus_string_equal): new function
14800 (_dbus_string_base64_encode): new function
14801 (_dbus_string_base64_decode): new function
14803 2002-12-25 Anders Carlsson <andersca@codefactory.se>
14805 * dbus/Makefile.am:
14806 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14807 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14808 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14809 (_dbus_demarshal_uint32), (_dbus_marshal_test):
14810 * dbus/dbus-marshal.h:
14811 * dbus/dbus-protocol.h:
14812 * dbus/dbus-test.c: (main):
14813 * dbus/dbus-test.h:
14814 Add un-optimized marshalling/demarshalling routines.
14816 2002-12-25 Harri Porten <porten@kde.org>
14818 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14820 2002-12-24 Zack Rusin <zack@kde.org>
14822 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14823 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14826 2002-12-24 Havoc Pennington <hp@pobox.com>
14828 * glib/dbus-gthread.c: fix include
14830 * glib/dbus-glib.h: rename DBusMessageHandler for now.
14831 I think glib API needs to change, though, as you don't
14832 want to use DBusMessageFunction, you want to use the
14833 DBusMessageHandler object. Probably
14834 dbus_connection_open_with_g_main_loop()
14835 and dbus_connection_setup_g_main_loop() or something like that
14836 (but think of better names...) that just create a connection
14837 that has watch/timeout functions etc. already set up.
14839 * dbus/dbus-connection.c
14840 (dbus_connection_send_message_with_reply): new function just to
14841 show how the message handler helps us deal with replies.
14843 * dbus/dbus-list.c (_dbus_list_remove_last): new function
14845 * dbus/dbus-string.c (_dbus_string_test): free a string that
14848 * dbus/dbus-hash.c: use memory pools for the hash entries
14849 (rebuild_table): be more paranoid about overflow, and
14850 shrink table when we can
14851 (_dbus_hash_test): reduce number of sprintfs and write
14852 valid C89. Add tests for case where we grow and then
14853 shrink the hash table.
14855 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14857 * dbus/dbus-connection.c (dbus_connection_register_handler)
14858 (dbus_connection_unregister_handler): new functions
14860 * dbus/dbus-message.c (dbus_message_get_name): new
14862 * dbus/dbus-list.c: fix docs typo
14864 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14865 an object representing a handler for messages.
14867 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14869 * glib/dbus-glib.h:
14870 * glib/dbus-gthread.c: (dbus_gthread_init):
14871 Don't use the gdbus prefix for public functions.
14873 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14877 Add GLib checks and fixup .pc files
14879 * glib/Makefile.am:
14880 * glib/dbus-glib.h:
14881 * glib/dbus-gmain.c: (gdbus_connection_prepare),
14882 (gdbus_connection_check), (gdbus_connection_dispatch),
14883 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14884 (dbus_connection_gsource_new):
14885 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14886 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14887 * glib/test-dbus-glib.c: (message_handler), (main):
14890 2002-12-15 Harri Porten <porten@kde.org>
14892 * autogen.sh: check for libtoolize before attempting to use it
14894 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14897 * .cvsignore: ignore more stamp files
14899 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14901 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14902 without make install.
14904 2002-12-15 Havoc Pennington <hp@pobox.com>
14906 * dbus/dbus-threads.c: add thread stubs that a higher library
14907 layer can fill in. e.g. the GLib wrapper might fill them in with
14908 GThread stuff. We still need to use this thread API to
14909 thread-safe-ize the library.
14911 2002-12-12 Havoc Pennington <hp@pobox.com>
14913 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14914 below new interfaces and include fewer system headers.
14916 * dbus/dbus-sysdeps.c (_dbus_read): new function
14917 (_dbus_write): new function
14918 (_dbus_write_two): new function
14919 (_dbus_connect_unix_socket): new function
14920 (_dbus_listen_unix_socket): new function
14922 * dbus/dbus-message-internal.h: change interfaces to use
14925 2002-12-11 Havoc Pennington <hp@pobox.com>
14927 * dbus/dbus-types.h: add dbus_unichar
14929 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14931 * dbus/dbus-connection.c (dbus_connection_send_message): return
14934 * dbus/dbus-transport.c: include dbus-watch.h
14936 * dbus/dbus-connection.c: include dbus-message-internal.h
14938 * HACKING: add file with coding guidelines stuff.
14940 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14941 handling here, for security purposes (as in vsftpd). Not actually
14942 using this class yet.
14944 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14945 system/libc usage here, as in vsftpd, for ease of auditing (and
14946 should also simplify portability). Haven't actually moved all the
14947 system/libc usage into here yet.
14949 2002-11-25 Havoc Pennington <hp@pobox.com>
14951 * dbus/dbus-internals.c (_dbus_verbose): fix to not
14952 always print the first verbose message.
14954 2002-11-24 Havoc Pennington <hp@pobox.com>
14956 * test/echo-client.c, test/echo-server.c: cheesy test
14959 * configure.in (AC_CHECK_FUNCS): check for writev
14961 * dbus/dbus-message.c (_dbus_message_get_network_data): new
14964 * dbus/dbus-list.c (_dbus_list_foreach): new function
14966 * dbus/dbus-internals.c (_dbus_verbose): new function
14968 * dbus/dbus-server.c, dbus/dbus-server.h: public object
14969 representing a server that listens for connections.
14971 * dbus/.cvsignore: create
14973 * dbus/dbus-errors.h, dbus/dbus-errors.c:
14974 public API for reporting errors
14976 * dbus/dbus-connection.h, dbus/dbus-connection.c:
14977 public object representing a connection that
14978 sends/receives messages. (Same object used for
14979 both client and server.)
14981 * dbus/dbus-transport.h, dbus/dbus-transport.c:
14982 Basic abstraction for different kinds of stream
14983 that we might read/write messages from.
14985 2002-11-23 Havoc Pennington <hp@pobox.com>
14987 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14990 * dbus/dbus-test.c (main): add list test, and include
14991 dbus-test.h as intended
14993 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14994 (_dbus_hash_table_remove_int): return value indicates
14995 whether the entry existed to remove
14997 * dbus/dbus-list.c: add linked list utility class,
14998 with docs and tests
15000 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15003 2002-11-23 Havoc Pennington <hp@pobox.com>
15005 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15006 DBUS_END_DECLS to nothing, that should fix this once and for all
15008 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15010 * dbus/dbus-message.c, dbus/dbus-hash.c:
15011 add some missing @brief
15013 2002-11-23 Havoc Pennington <hp@pobox.com>
15015 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15016 to avoid confusing Doxygen
15018 * dbus/dbus-hash.c: @} not }@
15020 * dbus/dbus-message.c (struct DBusMessage): split out
15023 2002-11-23 Havoc Pennington <hp@pobox.com>
15025 * configure.in: pile on more warning flags if using gcc
15027 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15028 to document static functions
15030 * configure.in: add summary to end of configure so it
15031 looks nice and attractive
15033 * dbus/dbus-hash.c: finish implementation and write unit
15036 * configure.in: add --enable-tests to enable unit tests
15038 * dbus/dbus-test.c: test program to run unit tests
15039 for all files in dbus/*, initially runs a test for
15042 * dbus/dbus-internals.h: file to hold some internal utility stuff
15044 2002-11-22 Havoc Pennington <hp@redhat.com>
15046 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15047 "ported" away from Tcl
15049 * dbus/dbus-types.h: header for types such as dbus_bool_t
15051 2002-11-22 Havoc Pennington <hp@redhat.com>
15053 * dbus/dbus.h: fixups for doc warnings
15055 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15057 (QUIET): make it quiet so we can see warnings
15059 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15061 2002-11-22 Havoc Pennington <hp@redhat.com>
15063 * Makefile.am: include "Doxyfile" target in all-local
15065 * configure.in: generate the Doxyfile
15067 * Doxyfile.in: move Doxyfile here, so we can use
15068 configure to generate a Doxyfile with the right
15069 version number etc.
15071 2002-11-22 Havoc Pennington <hp@redhat.com>
15073 * dbus/dbus-message.c: move inline docs into .c file
15075 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15076 so all docs are under doc/
15077 (MAN_EXTENSION): generate man pages. Use extension
15078 ".3dbus" which matches ".3qt" on my system,
15079 I guess this is OK, I don't know really.
15080 (FILE_PATTERNS): look for .c files not .h, makes sense
15081 for plain C I think
15083 2002-11-22 Havoc Pennington <hp@pobox.com>
15085 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15086 because any app can be a server, and any app can be a client,
15087 the bus is a special kind of server.
15089 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
15091 * Doxyfile : adding. Still needs Makefile rules to be generated
15092 automatically (just run "doxygen" in the toplevel dir for now to
15095 * dbus/dbus-message.h : Adding sample docs (javadoc since
15096 resembles gtk-doc a little more)
15098 * dbus/dbus.h : Adding sample docs
15100 2002-11-21 Havoc Pennington <hp@redhat.com>
15102 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15103 so we can allow ourselves to include files directly,
15104 instead of having to use dbus.h
15106 * dbus/dbus.h: fill in
15108 * dbus/dbus-message.h: sketch out a sample header file.
15109 Include griping if you include it directly instead of
15112 * dbus/dbus-macros.h: new file with macros for extern "C",
15113 TRUE/FALSE, NULL, etc.
15115 * doc/file-boilerplate.c: put include guards in here
15117 2002-11-21 Havoc Pennington <hp@redhat.com>
15119 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15121 * COPYING: include the GPL as well, and license code
15122 under both AFL and GPL.
15124 2002-11-21 Havoc Pennington <hp@redhat.com>
15126 * acconfig.h: get rid of this
15128 * autogen.sh (run_configure): add --no-configure option
15130 * configure.in: remove AC_ARG_PROGRAM to make
15131 autoconf complain less. add AC_PREREQ.
15132 add AC_DEFINE third arg.
15134 2002-11-21 Anders Carlsson <andersca@codefactory.se>
15137 Fix references so we can distcheck.
15139 2002-11-21 Havoc Pennington <hp@redhat.com>
15141 * Initial module creation