1 2007-07-10 Havoc Pennington <hp (a] redhat.com> 2 3 * dbus/dbus-connection.c (struct DBusConnection): Fix from Olivier 4 Hochreutiner to avoid trying to protect individual bits in a word 5 with different locks (make dispatch_acquired and io_path_acquired 6 dbus_bool_t rather than bitfields) 7 8 2006-12-12 John (J5) Palmieri <johnp (a] redhat.com> 9 10 * Released 1.0.2 11 12 2006-12-12 John (J5) Palmieri <johnp (a] redhat.com> 13 14 * bus/signal.c: Fix match_rule_equal errata 15 (CVE-2006-6107 - Patch from Kimmo Hmlinen 16 <kimmo.hamalainen (a] nokia.com>) 17 18 2006-11-19 Thiago Macieira <thiago (a] kde.org> 19 20 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock, 21 _dbus_pthread_condvar_wait, 22 _dbus_pthread_condvar_wait_timeout): set pmutex->holder to 23 pthread_self() after coming back from a conditional variable 24 wait as well as in one codepath where it was forgotten. 25 Approved by: Havoc Pennington. 26 27 2006-11-17 Havoc Pennington <hp (a] redhat.com> 28 29 * update-dbus-docs.sh: allow setting fd.org username via env 30 variable. Make it run autogen with --enable-xml-docs=yes 31 --enable-doxygen-docs=yes so configure will fail if the required 32 tools are missing. 33 34 2006-11-17 Havoc Pennington <hp (a] redhat.com> 35 36 * doc/dbus-faq.xml: minor FAQ tweaks 37 38 2006-11-17 John (J5) Palmieri <johnp (a] redhat.com> 39 40 * Released 1.0.1 41 42 2006-11-14 Havoc Pennington <hp (a] redhat.com> 43 44 * dbus/dbus-misc.c, dbus/dbus-misc.h: Move 45 dbus_get_local_machine_id() to its own file, no substantive 46 changes. There are a couple other things we might want to add that 47 are "misc" so moving out of dbus-connection.[hc] which is big 48 enough already. 49 50 2006-11-14 Havoc Pennington <hp (a] redhat.com> 51 52 * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the 53 UUID had the timestamp last, but the implementation had it first; 54 move it to last since I think it's a tiny bit nicer (easier to 55 compare at a glance, faster to sort, less code), and will not 56 cause any practical compatibility problems. Also, always convert 57 the timestamp to big endian. 58 59 * doc/dbus-specification.xml: Clean up the docs on the UUID. 60 61 * tools/dbus-uuidgen.1: more prominently say it is not suitable 62 as a replacement for regular uuidgen/RFC4122. 63 64 2006-11-14 John (J5) Palmieri <johnp (a] redhat.com> 65 66 * configure.in: Bump version to 1.0.1 for next stable release 67 68 * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have 69 the correct value so we don't assert when initalizing recursive threads 70 71 * test/name-test/test-thread-init.c: call dbus_threads_init_default 72 instead of _dbus_threads_init_debug since it is more of a real world 73 test 74 75 2006-11-09 John (J5) Palmieri <johnp (a] redhat.com> 76 77 * Released 1.0.0 78 79 2006-11-09 John (J5) Palmieri <johnp (a] redhat.com> 80 81 * AUTHORS: added Peter and Tor of windows porting fame 82 83 2006-11-08 Havoc Pennington <hp (a] redhat.com> 84 85 * doc/dbus-specification.xml: add a note about protocol stability 86 87 * doc/TODO: Remove "important for 1.0" section, replace with 88 "important for 1.2" section 89 90 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 91 92 * README: remove some of the out of date flags 93 94 * doc/TODO: Remove todo items which are done 95 96 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 97 98 * tools/dbus-monitor.c: Handle sigint so we flush stdout 99 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>) 100 101 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 102 103 * tools/dbus-monitor.1: update the manpage for dbus-monitor 104 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>) 105 106 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 107 108 * AUTHORS: Update with all people listed in the ChangeLog 109 110 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 111 112 * tools/dbus-monitor.c: add profiling tools to dbus-monitor 113 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>) 114 115 2006-11-07 Havoc Pennington <hp (a] redhat.com> 116 117 * HACKING: Update release instructions to include stuff about 118 stable releases, branching, etc. May not be totally correct, 119 please fix if needed, but keep instructions up-to-date so we do 120 each stable release consistently in the future. 121 122 2006-11-07 Havoc Pennington <hp (a] redhat.com> 123 124 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various 125 documentation updates. Bump faq/spec versions (not to 1.0; I don't 126 think the spec will be "finished"/1.0 when we ship the 1.0 library). 127 128 2006-11-06 John (J5) Palmieri <johnp (a] redhat.com> 129 130 * bus/bus.c: Missed patch - pass in the context to the directory watch 131 132 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 133 134 * Released D-Bus 1.0 RC 3(0.95) 135 136 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 137 138 * bus/activation.c (bus_activation_new): don't fail if we can not read 139 the directory as it may not exist 140 141 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 142 143 * bus/config-parser.c (service_dirs_find_dir): use 144 _dbus_list_get_next_link so we don't get stuck in an infinite loop 145 (start_busconfig_child): move processing of standard_session_servicedirs 146 tags here because they have no content 147 (bus_config_parser_content): check we don't have content in 148 standard_session_servicedirs tag 149 150 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 151 152 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created 153 Packagers need to own this directory 154 155 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 156 157 * tools/run-with-tmp-session-bus.sh: fixed script to replace the 158 <standard_session_servicedirs> tag with a <sevicedir> tag that 159 points to the test service directory 160 161 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 162 163 * configure.in: Add a check for DIR *dirp->dd_fd 164 165 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 166 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care 167 of both Solaris and Irix 168 169 2006-11-01 Havoc Pennington <hp (a] redhat.com> 170 171 * bus/dbus-daemon.1.in: document standard_session_servicedirs 172 173 2006-11-01 John (J5) Palmieri <johnp (a] redhat.com> 174 175 * configure.in: expose DBUS_DATADIR 176 177 * bus/config-parser.c: add the standard_session_servicedirs element 178 to the parser 179 (bus_config_parser_content): process the standard_session_servicedirs 180 element by getting the standard directories from sysdeps and merging 181 them into the service directory list 182 (test_default_session_servicedirs): make sure we get what we expect 183 184 * bus/session.conf.in: replace the servicedir tag with the 185 standard_session_servicedirs tag 186 187 * dbus/dbus-list.h: remove the typedef of DBusList and place it in 188 dbus-sysdeps.h to avoid circular header dependencies 189 190 * dbus/dbus-sysdeps.h: add the typedef of DBusList 191 192 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function 193 which takes a string of directories delimited by colons, parses them 194 out, appends a suffix and puts them in a list ignoring empty elements 195 (_dbus_get_standard_session_servicedirs): returns the standard 196 directories for a session bus to look for service activation files 197 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 198 DBUS_DATADIR directories 199 200 * test/data/valid-config-files/many-rules.conf: add the 201 standard_session_servicedirs tag to the valid config file tests 202 203 2006-10-30 Havoc Pennington <hp (a] redhat.com> 204 205 * tools/dbus-launch.1, doc/TODO: capture intent to change the 206 command line options of dbus-launch a bit post 1.0 207 208 2006-10-27 Havoc Pennington <hp (a] redhat.com> 209 210 * dbus/dbus-connection.c (dbus_connection_open_private): document 211 how to choose shared vs. private connections 212 213 2006-10-27 Havoc Pennington <hp (a] redhat.com> 214 215 * dbus/dbus-test.c: enclose more of the file in the 216 DBUS_BUILD_TESTS check. 217 218 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for 219 DBUS_DISABLE_ASSERT case. 220 221 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document 222 that it only works on the server side 223 224 * dbus/dbus-bus.c: add a global lock covering the BusData we 225 attach to each connection 226 (internal_bus_get): lock our access to the BusData 227 (dbus_bus_register): lock the entire registration process 228 with _DBUS_LOCK(bus_datas). If we get the lock and 229 registration is already complete, silently return (vs. previous 230 behavior of aborting). 231 (dbus_bus_set_unique_name): lock the BusData 232 (dbus_bus_get_unique_name): lock the BusData 233 234 2006-10-27 John (J5) Palmieri <johnp (a] redhat.com> 235 236 * bus/config-parser.c (service_dirs_find_dir, 237 service_dirs_append_unique_or_free, 238 service_dirs_append_link_unique_or_free): New static methods 239 for only appending unique service directory names into 240 the service directory list 241 (merge_included, bus_config_parser_content): Only add unique 242 service directory names into the list 243 244 2006-10-27 Havoc Pennington <hp (a] redhat.com> 245 246 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder" 247 variables volatile, suggested by Thiago. Document struct fields. 248 (PTHREAD_CHECK): remove pthread error checking if assertions are 249 disabled, should reduce the no-assertions case to the bare 250 minimum code. 251 252 2006-10-26 Havoc Pennington <hp (a] redhat.com> 253 254 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change 255 to be recursive 256 (_dbus_pthread_mutex_unlock): make it recursive 257 (_dbus_pthread_condvar_wait): save/restore the recursion count 258 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count 259 260 2006-10-26 Havoc Pennington <hp (a] redhat.com> 261 262 * doc/dbus-specification.xml: clarify the UUID text slightly 263 264 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on 265 pthread errors. Add DBusMutexPThread and DBusCondVarPThread 266 in preparation for being able to extend them for e.g. recursive 267 mutexes. 268 269 2006-10-26 Havoc Pennington <hp (a] redhat.com> 270 271 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 272 condition variables relate to recursive mutexes. 273 274 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 275 dbus/dbus-threads.c: Split the platforms-specific thread 276 implementations into their own files. 277 278 * dbus/dbus-sysdeps-pthread.c 279 (_dbus_pthread_condvar_wait_timeout): invert the return value, it 280 was backward. Not that anything uses it. 281 282 2006-10-26 John (J5) Palmieri <johnp (a] redhat.com> 283 284 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the 285 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This 286 needs to be cleaned up more. 287 288 * doc/TODO: Add a todo that *BSD hackers should look at cleaning 289 up the CREDS issue. 290 291 2006-10-26 John (J5) Palmieri <johnp (a] redhat.com> 292 293 * configure.in, dbus-1.pc.in: Check to see if thread methods 294 are in glibc or libpthread and add -lpthread to the link stage 295 if it is the latter 296 297 2006-10-26 Thiago Macieira <thiago (a] kde.org> 298 299 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix 300 bug 8780: the connection lock is only required while recording 301 the shared connection, so protect only that code 302 section. Don't require connection_lookup_shared to return a 303 locked connection. 304 305 2006-10-26 Thiago Macieira <thiago (a] kde.org> 306 307 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): 308 check if get_machine_uuid() returns NULL before proceeding any 309 further: we can't init the X atoms or create a session file 310 name if there is no machine ID. 311 This solves a crash reported by some users if 312 --exit-with-session was used without --autolaunch=<machine-id> 313 314 2006-10-26 John (J5) Palmieri <johnp (a] redhat.com> 315 316 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir 317 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set 318 319 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY 320 before we run dbus-launch 321 322 * configure.in: define TEST_BUS_BINARY to be the full path to 323 dbus-daemon in the build root 324 325 2006-10-25 Sjoerd Simons <sjoerd (a] luon.net> 326 327 * dbus/Makefile.am: 328 * tools/Makefile.am: 329 * toos/dbus-uuidgen.1: 330 Move the machine-id file to /var/lib/dbus 331 332 2006-10-24 David Zeuthen <davidz (a] redhat.com> 333 334 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's 335 _dbus_assert (thread_init_generation != _dbus_current_generation) 336 not _dbus_assert (thread_init_generation == _dbus_current_generation) 337 338 2006-10-24 Thiago Macieira <thiago (a] kde.org> 339 340 * dbus/dbus-sysdeps.h: 341 * dbus/dbus-sysdeps-unix.c: Add function 342 _dbus_make_file_world_readable that chmods a file to 0644. 343 344 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): 345 Avoid writing to the static "argv" array, thereby avoiding a 346 COW on the child process. 347 348 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively): 349 call _dbus_make_file_world_readable on the created file. 350 351 2006-10-23 David Zeuthen <davidz (a] redhat.com> 352 353 * dbus/dbus-memory.c: Use atomic variable to protect 354 n_blocks_outstanding otherwise OOM will be reported using SMP on 355 some arches 356 357 * bus/dispatch.c: Add missing end of line characters 358 359 * bus/desktop-file.c (parse_section_start, parse_key_value) 360 (bus_desktop_file_load): Propertly handle OOM 361 362 * dbus/dbus-threads.c (init_uninitialized_locks): Check that 363 thread_init_generation equals _dbus_current_generation, not 0 364 365 2006-10-22 Havoc Pennington <hp (a] redhat.com> 366 367 * dbus/dbus-connection-internal.h: move prototype of 368 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so 369 it isn't in a public header and doesn't end up in the DBusBus 370 group in Doxygen 371 372 2006-10-21 Havoc Pennington <hp (a] redhat.com> 373 374 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in 375 the tarball if packagers want to run it 376 377 * cleanup-man-pages.sh: Add a script which munges all the internal 378 API man pages out of the Doxygen output. This reduces the size of 379 the installed man pages from 7 to 2 megs, and avoids 380 namespace-polluting pages. Right now (like Doxygen) this script 381 isn't in the build, it's something packagers can do manually. 382 383 2006-10-21 Havoc Pennington <hp (a] redhat.com> 384 385 * dbus/dbus-connection.h: don't include the watch/timeout 386 functions in connection section 387 388 2006-10-21 Havoc Pennington <hp (a] redhat.com> 389 390 * Documentation! Whee! Doxygen now 100% silent. If you make it 391 angry again, you will be punished. 392 393 2006-10-21 Havoc Pennington <hp (a] redhat.com> 394 395 * More documentation - all public API now documented according to 396 Doxygen 397 398 2006-10-21 Havoc Pennington <hp (a] redhat.com> 399 400 * Document a bunch of undocumented stuff 401 402 2006-10-21 Havoc Pennington <hp (a] redhat.com> 403 404 * Clean up Doxygen group markers for public API so Doxygen finds 405 everything (not comprehensively fixed for private API). 406 Means all remaining Doxygen warnings are just about missing docs 407 and thus pretty simple to resolve. 408 409 2006-10-21 Havoc Pennington <hp (a] redhat.com> 410 411 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro 412 413 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 414 as DBUS_GNUC_DEPRECATED 415 416 2006-10-21 Havoc Pennington <hp (a] redhat.com> 417 418 * Move all private API into the private Doxygen group sections of 419 the files, so they don't show up in the public API docs 420 421 2006-10-21 Havoc Pennington <hp (a] redhat.com> 422 423 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 424 dbus_message_iter_get_array_len(). 425 426 * throughout: documentation improvements. 427 428 2006-10-20 Havoc Pennington <hp (a] redhat.com> 429 430 * doc/TODO: remove the int64 thing from 1.0 since it doesn't 431 matter, and the message-loader-breaker thing since nobody is going 432 to do it. Add an item to 1.0 about supporting recursive locks 433 in dbus_threads_init_default() though, since it should be easy. 434 435 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch): 436 Fix this in the !dispatch case to avoid busy-looping after 437 disconnection 438 439 * More misc docs improvements 440 441 2006-10-19 Havoc Pennington <hp (a] redhat.com> 442 443 * more Doxygen-related fixes (lots of moving things from the 444 public to internal section in dbus-connection.c) 445 446 2006-10-19 Havoc Pennington <hp (a] redhat.com> 447 448 * Fix a pile of Doxygen warnings and missing docs 449 450 2006-10-19 John (J5) Palmieri <johnp (a] redhat.com> 451 452 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 453 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 454 instead of a void *. kqueue uses this to get the context's loop 455 while the other modules ignore the parameter. This allows us to 456 avoid platform conditionals 457 458 * bus/bus.c (process_config_postinit): Pass in the context to the 459 watch 460 461 2006-10-19 John (J5) Palmieri <johnp (a] redhat.com> 462 463 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure 464 when starting the system bus 465 466 2006-10-18 John (J5) Palmieri <johnp (a] redhat.com> 467 468 * configure.in: More fixups for cross compile (Patch from 469 Marco Pracucci <development at pracucci dot com>) 470 471 2006-10-17 Havoc Pennington <hp (a] redhat.com> 472 473 * tools/dbus-send.c (main): don't close shared connection, fix 474 from Timo Hoenig 475 476 2006-10-17 Havoc Pennington <hp (a] redhat.com> 477 478 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here 479 480 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement, 481 since realistically it doesn't look like we'll be changing it 482 anymore. 483 484 2006-10-17 Havoc Pennington <hp (a] redhat.com> 485 486 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to 487 be used for return_if_fail type warnings; prefixes the pid, and 488 fatal by default. 489 490 2006-10-14 John (J5) Palmieri <johnp (a] redhat.com> 491 492 * configure.in: Released 1.0 RC 2(0.94) 493 Add check for -fPIC and enable it if available 494 495 2006-10-14 John (J5) Palmieri <johnp (a] redhat.com> 496 497 * doc/TODO: Remove the check TODO item 498 499 2006-10-13 John (J5) Palmieri <johnp (a] redhat.com> 500 501 * dbus-transport-socket.c (exchange_credentials): 502 Print out more detailed errors if reading or sending 503 credentials fail (Patch from Julio M. Merino Vidal 504 <jmmv at NetBSD dot org>) 505 506 2006-10-13 John (J5) Palmieri <johnp (a] redhat.com> 507 508 * configure.in: when checking for posix getpwnam_r assume true 509 for cross compiles 510 511 2006-10-13 John (J5) Palmieri <johnp (a] redhat.com> 512 513 * configure.in: Check for gethostbyname first before we check for it 514 in libnsl. On gnu systems it is implemeneted 515 516 2006-10-13 Havoc Pennington <hp (a] redhat.com> 517 518 * dbus/dbus-connection.c 519 (dbus_connection_send_with_reply_and_block): fix to handle closed 520 connections, from Tambet Ingo bug #8631 521 522 2006-10-11 John (J5) Palmieri <johnp (a] redhat.com> 523 524 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN 525 526 2006-10-11 John (J5) Palmieri <johnp (a] redhat.com> 527 528 * test/name-test/Makefile.am: don't link against both libdbus and 529 libdbus-convenience 530 531 2006-10-11 John (J5) Palmieri <johnp (a] redhat.com> 532 533 * configure.in: check for dirfd even if it is a macro 534 (Patch from Timothy Redaelli <drizzt at gufi dot org>) 535 536 2006-10-08 John (J5) Palmieri <johnp (a] redhat.com> 537 538 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris 539 avoid using dirfd on systems that don't have dirfd 540 (Patch by Brian Cameron <brian dot cameron at sun dot com>) 541 542 2006-10-02 John (J5) Palmieir <johnp (a] redhat.com> 543 544 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 545 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck 546 547 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from 548 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS) 549 macro because _dbus_abort calls it 550 551 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck 552 works 553 554 2006-10-02 John (J5) Palmieir <johnp (a] redhat.com> 555 556 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for 557 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>) 558 559 2006-10-02 Thiago Macieira <thiago (a] kde.org> 560 561 * tools/dbus-launch.c (main): make it complain and abort 562 execution in case an unknown option is given. Also, process 563 the '--' argument as the end of arguments. 564 565 2006-10-01 Havoc Pennington <hp (a] redhat.com> 566 567 * tools/dbus-launch.c (print_variables): if no syntax is given, 568 don't print something that's sort-of-half-sh-syntax, just print 569 a plain key-value pairs thing. 570 571 * tools/dbus-launch-x11.c: use machine ID rather than hostname for 572 the local machine representation (but still have the hostname in 573 the display). Remove the hostname from the display if it is 574 localhost. Change session files to be named 575 ~/.dbus/session-bus/machine-display. Change X atoms to be 576 underscore-prefixed so nobody whines about ICCCM compliance. 577 Otherwise name them the same as the env variables. 578 Change session file format to include key-value pairs and an 579 explanatory comment. Keys are the same as the env variables. 580 (set_address_in_x11): X property format can't depend on 581 sizeof(pid_t) on a particular machine, fix to always be 32 bits 582 583 * tools/dbus-launch.c: make --autolaunch take a machine id 584 argument. If --autolaunch is used with a program to run, complain 585 for now (but add a FIXME). Also, don't look for existing bus if 586 there's a program to run (but add a FIXME). 587 588 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass 589 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus 590 just to get this, and avoids duplicating uuid-reading code). 591 592 * tools/dbus-launch.1: clarify various things 593 594 2006-10-01 Havoc Pennington <hp (a] redhat.com> 595 596 * test/test-service.c (path_message_func): remove broken extra 597 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c 598 599 * test/test-shell-service.c (path_message_func): same fix 600 601 * dbus/dbus-connection.c 602 (_dbus_connection_get_dispatch_status_unlocked): break up the 603 function a little for clarity and fix the notification of 604 dbus-bus.c to not require dispatch to be complete 605 606 * dbus/dbus-connection.c (dbus_connection_unref): improve the 607 warning when you try to finalize an open connection. 608 609 2006-10-01 Havoc Pennington <hp (a] redhat.com> 610 611 * dbus/dbus-bus.c 612 (internal_bus_get): only weak ref the connection; this means 613 _dbus_bus_notify_shared_connection_disconnected_unlocked can be 614 called safely in any context 615 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't 616 unref 617 618 * dbus/dbus-connection.c 619 (_dbus_connection_get_dispatch_status_unlocked): move 620 _dbus_bus_notify_shared_connection_disconnected_unlocked here 621 when queuing Disconnected instead of when the Disconnected message 622 arrives, so dbus_bus_get() won't return closed connections. 623 624 2006-10-01 Havoc Pennington <hp (a] redhat.com> 625 626 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 627 Add a hack to make DBusNewConnectionFunction work right. 628 629 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use 630 the hack here. Also, fix the todo about refcount leak. 631 632 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 633 and use the hack here 634 635 * dbus/dbus-connection.c: Kill the "shared" flag vs. the 636 "shareable" flag; this was completely broken, since it meant 637 dbus_connection_open() returned a connection of unknown 638 shared-ness. Now, we always hold a ref on anything opened 639 as shareable. 640 641 Move the call to notify dbus-bus.c into 642 connection_forget_shared_unlocked, so libdbus consistently forgets 643 all its knowledge of a connection at once. This exposed numerous 644 places where things were totally broken if we dropped a ref inside 645 get_dispatch_status_unlocked where 646 connection_forget_shared_unlocked was previously, so move 647 connection_forget_shared_unlocked into 648 _dbus_connection_update_dispatch_status_and_unlock. Also move the 649 exit_on_disconnect here. 650 651 (shared_connections_shutdown): this assumed weak refs to the 652 shared connections; since we have strong refs now, the assertion 653 was failing and stuff was left in the hash. Fix it to close 654 still-open shared connections. 655 656 * bus/dispatch.c: fixup to use dbus_connection_open_private on the 657 debug pipe connections 658 659 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify 660 dbus-bus.c if the closed connection is in fact shared 661 (_dbus_connection_close_possibly_shared): rename from 662 _dbus_connection_close_internal 663 (dbus_connection_close, dbus_connection_open, 664 dbus_connection_open_private): Improve docs to explain the deal 665 with when you should close or unref or both 666 667 * dbus/dbus-bus.c 668 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename 669 from _dbus_bus_check_connection_and_unref_unlocked and modify to 670 loop over all connections 671 672 * test/test-utils.c (test_connection_shutdown): don't try to close 673 shared connections. 674 675 * test/name-test/test-threads-init.c (main): fix warnings in here 676 677 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT 678 env variable to cause blocking waiting for gdb; drop 679 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 680 unconditionally. 681 682 * configure.in: add -export-dynamic to libtool flags if assertions enabled 683 so _dbus_print_backtrace works. 684 685 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf 686 instead of _dbus_verbose to print the backtrace, and diagnose lack 687 of -rdynamic/-export-dynamic 688 689 2006-09-30 Havoc Pennington <hp (a] redhat.com> 690 691 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 692 (internal_bus_get): fix screwy code formatting. whoever committed 693 that was not paying attention! 694 695 2006-09-30 Havoc Pennington <hp (a] redhat.com> 696 697 * configure.in (LT_CURRENT, LT_AGE): increment current and age to 698 reflect addition of interfaces. 699 700 * doc/dbus-specification.xml: describe a new 701 org.freedesktop.DBus.Peer.GetMachineId method 702 703 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function 704 (_dbus_string_skip_white, _dbus_string_skip_blank): use new 705 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion 706 at end of skip_white 707 (_dbus_string_chop_white): new function 708 709 * bus/connection.c (bus_connections_setup_connection): call 710 dbus_connection_set_route_peer_messages. 711 712 * dbus/dbus-connection.c 713 (_dbus_connection_peer_filter_unlocked_no_update): modify to 714 support a GetMachineId method. 715 716 Also, support a new flag to let the bus pass peer methods through 717 to apps on the bus, which can be set with 718 dbus_connection_set_route_peer_messages. 719 720 Finally, handle and return an error for anything unknown on the 721 Peer interface, which will allow us to extend the Peer interface 722 in the future without fear that we're now intercepting something 723 apps were wanting to see. 724 725 * tools/dbus-uuidgen.c: a thin wrapper around the functions in 726 dbus/dbus-uuidgen.c 727 728 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen 729 binary here, since most of the code is already in libdbus 730 731 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the 732 uuid from the system config file 733 734 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 735 (_dbus_read_uuid_file_without_creating) 736 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new 737 uuid-related functions, partly factored out from dbus-server.c 738 739 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to 740 DBUS_ERROR_FILE_EXISTS instead of EEXIST 741 742 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error 743 744 * tools/dbus-cleanup-sockets.1: explain what the point of this 745 thing is a bit more 746 747 * autogen.sh (run_configure): add --config-cache to default 748 configure args 749 750 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the 751 error set/clear assertions when DBUS_DISABLE_CHECKS is defined 752 753 * tools/dbus-launch.c (main): if xdisplay hasn't been opened, 754 don't try to save address, fixes crash in make check 755 756 2006-09-30 Thiago Macieira <thiago (a] kde.org> 757 758 * configure.in: add DBUS_BINDIR as a #define to C source code. 759 760 * tools/dbus-launch.c 761 * tools/dbus-launch.h 762 * tools/dbus-launch-x11.c: 763 * tools/dbus-launch.1: Add the --autolaunch option to 764 dbus-launch, which makes it scan for an existing session 765 started with --autolaunch. With that option, it also creates 766 an X11 window and saves the bus address and PID to it. 767 768 * dbus/dbus-sysdeps.h: 769 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add 770 a function that runs "dbus-launch --autolaunch" to retrieve 771 the running D-Bus session address (or start one if none was running) 772 773 * dbus/dbus-transport.c: Add the handler for the "autolaunch:" 774 address protocol, which tries to get the running session from 775 dbus-launch. 776 777 * dbus/dbus-bus.c: 778 * dbus/dbus-internals.h: Make "autolaunch:" be the default 779 D-Bus session bus address. 780 781 * dbus/dbus-connection.c: Fix horrible typo in error message. 782 783 2006-09-18 John (J5) Palmieri <johnp (a] redhat.com> 784 785 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@ 786 787 2006-09-17 Havoc Pennington <hp (a] redhat.com> 788 789 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): 790 fix so that if unix_user_function is set on windows, we still 791 do the default check that the auth identity matches the bus identity 792 793 2006-09-16 Havoc Pennington <hp (a] redhat.com> 794 795 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate 796 to _dbus_transport_open_platform_specific, 797 _dbus_transport_open_socket, 798 and _dbus_transport_open_debug_pipe 799 800 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific 801 802 2006-09-16 Havoc Pennington <hp (a] redhat.com> 803 804 Attempt auditing public API to remove all cases where a Unix 805 function returns weird emulated goo to Windows. This probably 806 breaks the bus daemon on Windows, to fix it again we may 807 need to stop processing unix-specific config options on Windows, 808 and may need to add Windows-specific public API or config options. 809 810 * configure.in (LT_CURRENT, LT_AGE): increment current and age, 811 to reflect added interfaces; should not break soname. 812 813 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do 814 not invoke unix user function on Windows. Kind of a hacky fix, but 815 we don't want a "unix uid" leaking out on Windows. 816 817 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API 818 to get the socket fd on Windows or UNIX 819 (dbus_connection_get_unix_fd): make this always fail on Windows 820 821 2006-09-16 Havoc Pennington <hp (a] redhat.com> 822 823 * dbus/dbus-server.c (dbus_server_listen): change how this works 824 to be able to delegate to a set of handlers that can succeed, 825 fail, or choose not to handle. Allows us to have 826 dbus_server_listen_platform_specific. 827 828 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket): 829 factor out the tcp socket stuff to be used on windows, leaving 830 unix domain socket only in dbus-socket-unix.c 831 832 * dbus/dbus-transport-socket.c 833 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket 834 stuff to be used on windows, leaving unix domain socket only 835 in dbus-transport-unix.c 836 837 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert 838 temporary hack to be sure this fails on windows 839 (dbus_connection_get_unix_process_id): ditto 840 841 2006-09-16 Havoc Pennington <hp (a] redhat.com> 842 843 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 844 (_dbus_open_unix_socket, _dbus_open_socket): change API for 845 _dbus_open_socket so the domain/type/protocol from system headers 846 are not required. This is kind of pointless though unless we move 847 part of _dbus_connect_tcp_socket into sysdeps.c instead of 848 sysdeps-unix.c, which would mean adding a wrapper around 849 bind/listen/etc. 850 Also, add DBusError to the socket-opening functions so they 851 don't require use of errno. 852 853 2006-09-16 Havoc Pennington <hp (a] redhat.com> 854 855 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make 856 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header. 857 858 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 859 Kmmel bug #8249 to make the sysdeps.h read/write/open/close 860 functions specifically for sockets only, and move generic 861 read/write/open/close into unix-specific code. 862 863 2006-09-14 Havoc Pennington <hp (a] redhat.com> 864 865 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind 866 complaint about accessing revents when poll returns 0, from Julian Seward. 867 868 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 869 870 * Released 1.0 RC 1 (0.93) 871 872 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 873 874 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file): 875 use _dbus_close instead of close 876 877 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 878 879 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket 880 credentials. Fixes "external" authentication under e.g. NetBSD 881 which does not support any other socket credentials mechanism. 882 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>) 883 884 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 885 886 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into 887 dbus_threads_init and be used by the dbus mutex functions to 888 avoid deadlocks. 889 890 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item 891 892 2006-09-13 John (J5) Palmieri <johnp (a] redhat.com> 893 894 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file): 895 use threadsafe readdir_r instead of readdir 896 897 2006-09-13 John (J5) Palmieri <johnp (a] redhat.com> 898 899 * dbus-threads.c (dbus_threads_init_default): New method for 900 initializing the internal thread implementation (Patch from 901 Alexander Larsson <alexl at redhat dot com>) 902 903 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 904 905 * remove a bunch of todo items from the 1.0 list 906 907 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 908 909 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and 910 key not found 911 912 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 913 914 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more 915 complex debugging code 916 917 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move 918 between the test suite ifdefs 919 (_dbus_verbose_bytes): return if verbosity is not enabled 920 921 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 922 923 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c: 924 remove DBusMark 925 926 2006-09-10 Havoc Pennington <hp (a] redhat.com> 927 928 patch mostly by Peter Kmmel, bug #8211 929 930 * dbus/dbus-sysdeps-unix.c: new file, which splits out 931 unix-specific stuff in dbus-sysdeps.c 932 933 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 934 and move unix-specific stuff to dbus-sysdeps-unix.c 935 936 * configure.in: check HAVE_ERRNO_H 937 938 2006-09-08 John (J5) Palmieri <johnp (a] redhat.com> 939 940 * bus/test-main.c (main): Initialize threading during tests 941 942 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 943 Unlock connection on error 944 (generate_local_error_message): static method for generating 945 an error message when we don't have a message to reply to 946 (_dbus_connection_block_pending_call): Send a disconnect error 947 instead of just a timeout (NULL) when the bus gets disconnected 948 while blocking for a reply. 949 950 2006-09-08 John (J5) Palmieri <johnp (a] redhat.com> 951 952 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove 953 filters (Patch from Kimmo Hmlinen 954 <kimmo dot hamalainen at nokia dot com>) 955 956 2006-09-07 John (J5) Palmieri <johnp (a] redhat.com> 957 958 * dbus/dbus-connection-internal.h: Add prototype for 959 _dbus_connection_test_get_locks to remove warning 960 961 2006-09-07 John (J5) Palmieri <johnp (a] redhat.com> 962 963 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we 964 close child_err_report_pipe[WRITE_END] on exec (Patch from 965 Kimmo Hmlinen <kimmo dot hamalainen at nokia dot com>) 966 967 2006-09-07 John (J5) Palmieri <johnp (a] redhat.com> 968 969 * Clean up close calls to use _dbus_close (Patch from 970 Kimmo Hmlinen <kimmo dot hamalainen at nokia dot com>) 971 972 2006-09-06 John (J5) Palmieri <johnp (a] redhat.com> 973 974 * doc/TODO: 975 - Remove pending call locking todo item 976 - dbus_connection_open now holds hard ref. Remove todo item 977 - do proper locking on _dbus_bus_check_connection_and_unref 978 and handle DBUS_BUS_STARTER. Remove todo item 979 - Warn on closing of a shared connection. Remove todo item 980 981 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c, 982 dbus/dbus-connection.c: Use the dbus_connection_close_internal 983 so we don't get the warning when closing shared connections 984 985 * test/test-service.c, test/test-shell-service.c: Applications 986 don't close shared connections themselves so we unref instead of 987 close 988 989 * test/test-utils.c (test_connection_shutdown): Close the connection 990 991 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to 992 _dbus_bus_check_connection_and_unref_unlocked since we only call this 993 method on a locked connection. 994 Make sure we call _dbus_connection_unref_unlocked instead of 995 dbus_connection_unref also. 996 Handle DBUS_BUS_STARTER correctly 997 998 * dbus/dbus-connection.c (connection_record_shared_unlocked): 999 Mark as shared and hard ref the connection 1000 (connection_forget_shared_unlocked): Remove the hard ref from the 1001 connection 1002 (_dbus_connection_close_internal_and_unlock): New internal function 1003 which takes a locked connection and unlocks it after closing it 1004 (_dbus_connection_close_internal): New internal function which acts 1005 like the origonal dbus_connection_close method by grabbing a connection 1006 lock and calling _dbus_connection_close_internal_and_unlock 1007 (dbus_connection_close): Public close method, warns when the app 1008 trys to close a shared connection 1009 1010 2006-09-06 John (J5) Palmieri <johnp (a] redhat.com> 1011 1012 * bus/driver.c: 1013 (bus_driver_generate_introspect_string): New method for populating 1014 a DBusString with the introspect data 1015 (bus_driver_handle_introspect): Move introspect generation code to 1016 bus_driver_generate_introspect_string 1017 1018 * bus/main.c: 1019 (introspect): New function which prints out the intropect data and 1020 exits 1021 (main): Add a --introspect switch 1022 1023 2006-09-06 John (J5) Palmieri <johnp (a] redhat.com> 1024 1025 * doc/TODO: Removed dtd publishing item. 1026 It seems the dtd has already been added at 1027 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd 1028 1029 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1030 1031 * doc/TODO, various source files: Audited todo's and FIXME's and 1032 prepended the ones we should be looking at with 1.0. Those 1033 prepended with 1.0? need clerification or might not be needed 1034 for 1.0 1035 1036 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1037 1038 * dbus/dbus-pending-call.c: Add some checks so we don't crash on 1039 NULL in the public API (Patch from Kimmo Hmlinen 1040 <kimmo dot hamalainen at nokia dot com>) 1041 1042 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1043 1044 * configure.in: Fix for OS-X compile time endian issues (patch from 1045 Benjamin Reed <ranger at befunk dot com>) 1046 1047 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1048 1049 * configure.in: Check for no-common compiler flag (OS-X fix from 1050 Benjamin Reed <ranger at befunk dot com>) 1051 1052 2006-09-01 John (J5) Palmieri <johnp (a] redhat.com> 1053 1054 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat 1055 <fcrozat at mandriva dot com>) 1056 1057 2006-08-29 Havoc Pennington <hp (a] redhat.com> 1058 1059 * test/test-service.c (path_message_func): fix lack of return value 1060 1061 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix 1062 formatting, remove #ifdef, and fix docs. #ifdef doesn't make 1063 any more sense than on anything else in this file. 1064 (_dbus_get_tmpdir): add const to return value, and keep the 1065 results of the various getenv around in a static variable. 1066 1067 2006-08-29 Havoc Pennington <hp (a] redhat.com> 1068 1069 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change 1070 from Ralf Habacker to move UNIX-specific sysdeps into a separate file. 1071 1072 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1073 1074 * test/Makefile.am: change find to use syntax that works with non 1075 gnu versions of find 1076 1077 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1078 1079 * dbus/dbus-transport.c: fix invalid deref when checking if 1080 a vtable method exists (Patch from Christian Ehrlicher 1081 <ch dot ehrlicher at gmx dot de>) 1082 1083 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1084 1085 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 1086 test/name-test/Makefile.am: Fixed some issues with getting get dbus 1087 to build with builddir != srcdir (Taken from a patch by Bernard Leak 1088 <bernard at brenda-arkle dot demon dot co dot uk>) 1089 1090 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1091 1092 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the 1093 default case 1094 1095 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1096 1097 * configure.ac, bus/Makefile.am: Generalize kqueue support so that 1098 it works on any system providing this interface, not only FreeBSD. 1099 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>) 1100 1101 2006-08-20 Havoc Pennington <hp (a] redhat.com> 1102 1103 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to 1104 the docs 1105 1106 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1107 1108 * Released 0.92 1109 1110 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1111 1112 * dbus/dbus-threads.c (dbus_threads_init): change the documentation 1113 to reflect the init late change 1114 1115 * bus/bus.c (bus_context_new): Check user before we fork so we can 1116 print out an error message a user will be able to see 1117 1118 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1119 1120 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 1121 1122 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h: 1123 Add two more global locks for use on windows platforms. These are 1124 unused on non-windows platforms but are not ifdefed out to avoid 1125 potential bugs (i.e. the few bytes lost does not warrent the extra 1126 maintanence and complexity that having seperate sets of locks would 1127 cause) 1128 1129 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1130 1131 * bus/services.c (bus_registry_acquire_service): Return an error 1132 when an application tries to register the org.freedesktop.DBus Bus Name 1133 1134 * bus/services.c (bus_registry_release_service): Return an error 1135 when an application tries to release the org.freedesktop.DBus Bus Name 1136 1137 2006-08-17 Alp Toker <alp (a] atoker.com> 1138 1139 * doc/dbus-specification.xml: Fix some minor typos. 1140 1141 2006-08-17 John (J5) Palmieri <johnp (a] redhat.com> 1142 1143 * configure.in: use $with_init_scripts instead of $operating_system 1144 to determine where to store the pid since the init scripts manipulate 1145 the pid file (patch from Marcelo Ricardo Leitner 1146 <marcelo dot leitner at terra dot com dot br>. 1147 1148 2006-08-16 John (J5) Palmieri <johnp (a] redhat.com> 1149 1150 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and 1151 static DBusList *uninitialized_condvar_list to support new late 1152 initialization threading model. In this model threads can be initialized 1153 even after the D-Bus API has been used but still needs to be initialized 1154 before the second thread has been started. Mutexes and condvar addresses 1155 are stored in the two static lists and are replaced with actuall locks 1156 when threads are initalized. 1157 (_dbus_mutex_new_at_location): New method for creating a mutex and placing 1158 the location into the static list 1159 (_dbus_mutex_free_at_location): New method for removing a mutex location 1160 from the static list and freeing the mutex 1161 (_dbus_condvar_new_at_location): New method for creating a conditional 1162 variable and placing the location into the static list 1163 (_dbus_condvar_free_at_location): New method for removing a conditional 1164 variable location from the static list and freeing the conditional variable 1165 (init_uninitialized_locks): Atomic method which goes through the static 1166 lists of mutex and condvar location and updates them with actuall locks 1167 (init_global_locks): changed to init_locks 1168 1169 * dbus/dbus-connection.c: 1170 (_dbus_connection_test_get_locks): New method for tests to check connections 1171 (_dbus_connection_new_for_transport): Use the new at_location mutex and 1172 condvar API 1173 (dbus_connection_allocate_data_slot): Pass in the global lock address 1174 to _dbus_data_slot_allocator_alloc 1175 1176 * dbus/dbus-dataslot.c: 1177 (_dbus_data_slot_allocator_alloc): Use the address of the mutex 1178 instead of the mutex itself 1179 1180 * dbus/dbus-message.c: 1181 (dbus_message_allocate_data_slot): Pass in the global lock address 1182 to _dbus_data_slot_allocator_alloc 1183 1184 * dbus/dbus-pending-call.c: 1185 (dbus_pending_call_allocate_data_slot): Pass in the global lock address 1186 to _dbus_data_slot_allocator_alloc 1187 1188 * dbus/dbus-server.c: 1189 (_dbus_server_init_base): Use the new at_location mutex API 1190 (dbus_server_allocate_data_slot): Pass in the global lock address 1191 to _dbus_data_slot_allocator_alloc 1192 1193 * test/name-test/test-threads-init.c: New test case for late thread 1194 initialization 1195 1196 2006-08-14 John (J5) Palmieri <johnp (a] redhat.com> 1197 1198 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): 1199 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort 1200 causes compile problems when asserts are turned off 1201 Keeping _dbus_warn for printing out the message so even if 1202 asserts are turned off the user gets the messages that something is 1203 wrong 1204 1205 2006-08-14 John (J5) Palmieri <johnp (a] redhat.com> 1206 1207 Patches by Kjartan Maraas <kmaraas at gnome dot org> 1208 1209 * bus/services.c (bus_service_list_queued_owners): 1210 Add a pointer cast to fix compiler warning 1211 1212 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get): 1213 return a NULL instead of FALSE since the return type 1214 is not expecting a boolean 1215 1216 * dbus/dbus-marshal-basic.c (_dbus_marshal_test): 1217 Remove unused variable 1218 1219 * dbus/dbus-marshal-recursive-util.c (node_new): 1220 return a NULL instead of FALSE since the return type 1221 is not expecting a boolean 1222 1223 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 1224 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE 1225 because we are expecting a pointer not a boolean 1226 1227 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 1228 add void as the parameter so some compilers 1229 don't complain 1230 1231 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket, 1232 _dbus_transport_new_for_tcp_socket): 1233 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE 1234 because we are expecting a pointer not a boolean 1235 1236 * test/shell-test.c (test_command_line): 1237 cast the second argument to _dbus_list_append to avoid compiler 1238 warnings 1239 1240 * test/test-names.c (main): remove unused variable 1241 1242 * test/test-service.c (check_hello_from_self_reply): 1243 Initialize echo_message and echo_reply to NULL 1244 1245 * test/test-shell-service.c (handle_echo): 1246 Remove unused variable and cast the third parameter passed to 1247 dbus_connection_get_object_path_data to avoid compiler warrnings 1248 1249 * test/name-test/test-names.c (clear_message_queue): 1250 Remove unused function 1251 1252 * test/name-test/test-pending-call-dispatch.c: 1253 Fix format string in printf 1254 1255 1256 2006-08-14 John (J5) Palmieri <johnp (a] redhat.com> 1257 1258 * dbus/dbus-bus.c: 1259 * test/name-test/test-names.c: 1260 Remove test method dbus_bus_connection_get_unique_name because 1261 we already have public method dbus_bus_get_unique_name that 1262 does the exact same thing 1263 1264 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1265 1266 * dbus/dbus-signature.c: 1267 fix typos in Julio's previous patch which cause make check to fail 1268 1269 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1270 1271 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp. 1272 In any case it was wrong since this is a test checking to see if 1273 address parsing is correct. There was no need to get the true 1274 tmp directory. 1275 1276 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1277 1278 * dbus/dbus-macros.h: Revert the addition of stddef.h 1279 as we should not be adding it to library headers 1280 1281 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1282 1283 * dbus/dbus-signature.c: 1284 Fix the unit tests so that they work if assertions are not enabled. 1285 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>) 1286 1287 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1288 1289 * tools/run-with-tmp-session-bus.sh: 1290 * test/name-test/run-test.sh: 1291 Remove bashisms (patch from Julio M. Merino Vidal 1292 <jmmv at NetBSD dot org>) 1293 1294 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1295 1296 * configure.in: add a version (>= 2.6.0) check for libxml2 1297 1298 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1299 1300 * configure.in: make sure the compiler supports -Wfloat-equal 1301 1302 * bus/dir-watch-dnotify.c: move functional code after 1303 variable declerations (C99 fix) (patches from Jens Granseuer 1304 <jensgr at gmx dot net> 1305 1306 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1307 1308 * dbus/dbus-macros.h: 1309 add #include <stddef.h> so that Sun compilers don't complain about 1310 the defining NULL 1311 1312 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1313 1314 * dbus/dbus-sysdeps.c: 1315 * dbus/dbus-address.c: 1316 * bus/activation.c: 1317 * test/shell-test.c: 1318 don't hardcode tmp directory (patch from Dave Meikle 1319 <dmk at davemeikle dot co dot uk>) 1320 1321 2006-08-09 John (J5) Palmieri <johnp (a] redhat.com> 1322 1323 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): 1324 Change an assert to a detailed warning and abort. 1325 When allocator->lock != mutex it indicates that the user has failed 1326 to initalize threads before using the D-Bus library. This warning 1327 helps the user identify the issue and fix their app. 1328 1329 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1330 1331 These are all patches from Kjartan Maraas <kmaraas at gnome dot org> 1332 with cleanups of bugs found from Coverity reports: 1333 1334 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file): 1335 close the file on error to avoid a leak 1336 1337 * bus/expirelist.c (bus_expire_list_test): 1338 Check for NULL on dbus_new0 1339 1340 * bus/activation.c (update_directory): 1341 remove dead code 1342 1343 * bus/config-parser.c (merge_service_context_hash, start_selinux_child): 1344 Fix some leaks 1345 1346 * bus/bus.c (process_config_every_time): 1347 Fixed a leak 1348 1349 * bus/desktop-file.c (parse_key_value): 1350 Fixed leak 1351 1352 * bus/selinux.c (bus_selinux_id_table_insert): 1353 Fixed leak 1354 1355 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1356 1357 * dbus/dbus-object-tree.c (_dbus_object_subtree_new): 1358 remove dead code 1359 1360 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1361 1362 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of 1363 #!/bin/bash 1364 1365 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1366 1367 * Doxyfile.in: fix the INPUT line so we can generate docs 1368 when sourcedir != builddir (patch from Cygwin Ports maintainer 1369 <yselkowitz at users dot sourceforge dot net> 1370 1371 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1372 1373 * dbus/dbus-sysdeps.h: 1374 * dbus/dbus-sysdeps.c: 1375 * dbus/dbus-string.c: 1376 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with 1377 GLib's function which does the same thing 1378 1379 * configure.in: 1380 * bus/Makefile.am: 1381 * bus/dir-watch-default.c: 1382 * bus/dir-watch-dnotify.c: 1383 * bus/dir-watch-kqueue.c: 1384 Add kqueue directory watching for freebsd and split the directory 1385 watching code into seperate files per method/arch 1386 (patches from Timothy Redaelli <drizzt at gufi dotorg>) 1387 1388 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1389 1390 * configure.in: 1391 * tools/Makefile.am: 1392 * tools/dbus-launch.c: 1393 * bus/Makefile.am: 1394 allow --with-dbus-daemondir switch to be used to make the 1395 daemon install to a seperate bindir like /usr/libexec 1396 (patch from Brian Cameron <brian dot cameron at sun dot com) 1397 1398 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1399 1400 * bus/Makefile.am (install-data-hook): removed the slash after 1401 $(DESTDIR) so we don't get the double slash which does not work 1402 in windows (patch from Andras Porjesz 1403 <andras dot porjesz at siemens dot com>) 1404 1405 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1406 1407 * dbus/dbus-sysdeps.h: 1408 * dbus/dbus-sysdeps.c: 1409 add _dbus_printf_length (patch from Peter Kmmel 1410 <syntheticpp at gmx dot net>) 1411 1412 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1413 1414 * dbus/dbus-internals.c: unistd.h is not used 1415 (_dbus_verbose_real): only enable verbose printing 1416 if DBUS_VERBOSE environment var is set to '1' 1417 (patch from Peter Kmmel <syntheticpp at gmx dot net>) 1418 1419 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1420 1421 * configure.in: add a GCC flag check for -Wdeclaration-after-statement 1422 so we still compile on older gcc (patch from Frederic Peters 1423 <fpeters at 0d dot be> 1424 1425 2006-08-04 Havoc Pennington <hp (a] redhat.com> 1426 1427 * configure.in: add -Wdeclaration-after-statement 1428 1429 * dbus/dbus-connection.c: change all the pending call stuff to 1430 reflect the fact that pending call operations use the connection 1431 lock 1432 1433 * dbus/dbus-pending-call.c: add locking here 1434 1435 * dbus/dbus-errors.c (struct DBusRealError): don't make the name 1436 field const consistent with how message field is done 1437 1438 2006-08-03 John (J5) Palmieri <johnp (a] redhat.com> 1439 1440 * s/D-BUS/D-Bus/g 1441 1442 2006-08-03 John (J5) Palmieri <johnp (a] redhat.com> 1443 1444 * dbus/dbus-object-tree.c: Patch by Benjamin Otte 1445 <in7y118 at public.uni-hamburg dot de> - fix invalid 1446 read/write reported by valgrind 1447 1448 2006-07-24 John (J5) Palmieri <johnp (a] redhat.com> 1449 1450 * Released 0.91 1451 1452 2006-07-22 John (J5) Palmieri <johnp (a] redhat.com> 1453 1454 * dbus/dbus-connection.c: 1455 (_dbus_connection_attach_pending_call_unlocked): 1456 (connection_timeout_and_complete_all_pending_calls_unlocked): 1457 Make sure we set timeout_added on pending calls to FALSE when 1458 we remove the timeout from the connection 1459 1460 2006-07-21 John (J5) Palmieri <johnp (a] redhat.com> 1461 1462 * Removed some extra bindings stuff lingering around (thanks timo) 1463 * dbus-pendingcall.c (_dbus_pending_call_new): 1464 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion 1465 when we tried to take a lock on an already locked connection 1466 1467 2006-07-17 John (J5) Palmieri <johnp (a] redhat.com> 1468 1469 * Released 0.90 1470 1471 2006-07-17 Havoc Pennington <hp (a] redhat.com> 1472 1473 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit 1474 ints, reported by Owen Taylor 1475 1476 2006-07-17 John (J5) Palmieri <johnp (a] redhat.com> 1477 1478 * doc/TODO: 1479 * dbus/dbus-bus.c: 1480 * dbus-errors.c: 1481 * dbus/dbus-marshal-validate.c: 1482 Removed TODO items which were fixed or are no longer relevent 1483 1484 2006-07-17 John (J5) Palmieri <johnp (a] redhat.com> 1485 1486 * dbus-qt4-1.pc.in, dbus-sharp.pc.in: 1487 Remove stray files from the stripped bindings 1488 1489 2006-07-16 Havoc Pennington <hp (a] redhat.com> 1490 1491 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error): 1492 Improve the error message on reply timeout 1493 1494 2006-07-14 John (J5) Palmieri <johnp (a] redhat.com> 1495 1496 * Remove all bindings 1497 1498 2006-07-13 John (J5) Palmieri <johnp (a] redhat.com> 1499 1500 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE 1501 and set pending_reply out arg to NULL is connection is disconnected 1502 (connection_timeout_and_complete_all_pending_calls_unlocked): New 1503 static method for cleaning up pending calls on disconnect 1504 (_dbus_connection_get_dispatch_status_unlocked): If we have pending 1505 calls queued timeouts on disconnect 1506 1507 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection): 1508 Remove 1509 1510 2006-07-13 Carlos Garcia Campos <carlosgc (a] gnome.org> 1511 1512 * bus/activation.[ch] (bus_activation_list_services): new function to 1513 get the list of services that can be activated 1514 1515 * bus/dispatch.c: test coverage for the new bus method 1516 ListActivatableNames 1517 1518 * bus/driver.c: new bus method ListActivatableNames to get the list of 1519 services that can be activated 1520 1521 * doc/dbus-specification.xml: ListActivatableNames method documentation 1522 1523 2006-07-12 John (J5) Palmieri <johnp (a] redhat.com> 1524 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of 1525 source files 1526 1527 2006-07-12 John (J5) Palmieri <johnp (a] redhat.com> 1528 * dbus/dbus-message-factory.c: 1529 Fix index into an array (patch by Peter Kmmel <syntheticpp at gmx.net>) 1530 1531 2006-07-12 John (J5) Palmieri <johnp (a] redhat.com> 1532 * dbus/dbus-connection-internal.h: 1533 * dbus/dbus-connection.c: 1534 * file dbus/dbus-pending-call.c: 1535 * dbus/dbus-pending-call.h: 1536 Make DBusPendingCall an opaque type even to D-Bus internals 1537 1538 2006-07-07 John (J5) Palmieri <johnp (a] redhat.com> 1539 1540 * dbus/dbus-connection.h: remove connection_disconnect and replace with 1541 connection_close 1542 1543 * dbus/dbus-connection.c: include dbus-bus.h 1544 (_dbus_connection_read_write_dispatch): make static 1545 1546 2006-07-07 John (J5) Palmieri <johnp (a] redhat.com> 1547 1548 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated 1549 function 1550 (dbus_connection_dispatch): On disconnect unref any shared connections 1551 1552 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function 1553 for cleaning up shared connections on disconnect 1554 (internal_bus_get): get a hard refrence to shared connections when 1555 they are created 1556 1557 * doc/TODO: Remove items which are no longer relevent or have been fixed 1558 Split 1.0 todo items with a 0.90 freeze todo list 1559 1560 2006-06-14 Ross Burton <ross (a] openedhand.com> 1561 1562 * glib/dbus-gobject.c: 1563 Free a leaking GArray (surely not!) in dbus_g_method_return. 1564 1565 2006-06-14 Ross Burton <ross (a] openedhand.com> 1566 1567 * tools/Makefile.am: 1568 * tools/dbus-monitor.c: 1569 Don't use the GLib bindings in dbus-monitor (patch from Ralf 1570 Habacker). 1571 1572 2006-06-14 Ross Burton <ross (a] openedhand.com> 1573 1574 * tools/dbus-print-message.c: 1575 Also print the object path when outputting signals or method calls. 1576 1577 2006-06-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1578 1579 * qt/src/Makefile.am: install the qdbus.h header. 1580 This allows people to actually use the installed code. 1581 1582 2006-06-12 Ross Burton <ross (a] openedhand.com> 1583 1584 * glib/dbus-gproxy.c: 1585 Don't leak a GArray when firing signals (thank Rob Taylor for review). 1586 1587 2006-06-12 Thiago Macieira <thiago.macieira (a] trolltech.com> 1588 1589 * Released 0.62 1590 1591 2006-06-12 Thiago Macieira <thiago.macieira (a] trolltech.com> 1592 1593 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that 1594 break pedantic builds. Closes bug 6043 (patch approved by 1595 Havoc back in February). 1596 1597 2006-06-12 Thiago Macieira <thiago.macieira (a] trolltech.com> 1598 1599 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods 1600 that took a QDBusMessage parameter. 1601 * qt/src/qdbusbus.h: Add a default flag for RequestName. 1602 * qt/tools/dbus.cpp: Don't use automatic call because we might 1603 be calling an async method: request a reply. 1604 1605 2006-06-11 Thiago Macieira <thiago.macieira (a] trolltech.com> 1606 1607 * test/qt/*: Update the testcases, including testing the new 1608 functionality of sending null QByteArray and QString over the 1609 bus. Add new headertest test and restore the old 1610 qdbusxmlparser test. 1611 1612 2006-06-11 Thiago Macieira <thiago.macieira (a] trolltech.com> 1613 1614 * qt/tools/dbuscpp2xml.cpp: Compile on Windows. 1615 * qt/tools/dbusidl2cpp.cpp: Add missing newline. 1616 1617 * qt/examples/Makefile.am: 1618 * qt/examples/chat.h: Use UI-generated files with the ui_*.h 1619 form. 1620 1621 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and 1622 QByteArray() (nulls) over the bus. 1623 * qt/src/qdbusabstractinterface.cpp: Use the correct variable, 1624 the one that has the signature suffix stripped. 1625 * qt/src/qdbusreply.h: Make some methods const. 1626 1627 2006-06-09 Thiago Macieira <thiago.macieira (a] trolltech.com> 1628 1629 Patch from Timo Hoenig <thoenig (a] suse.de>. 1630 1631 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers 1632 required during build to EXTRA_DIST. 1633 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST. 1634 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS. 1635 * configure.in: Fix "make dist", take care that the Makefile for 1636 qt/dbus is being generated. 1637 1638 2006-06-07 John (J5) Palmieri <johnp (a] redhat.com> 1639 1640 * bus/bus.c: Fix eavesdropping on method calls 1641 1642 2006-06-07 John (J5) Palmieri <johnp (a] redhat.com> 1643 1644 * configure.in: 1645 * dbus/dbus-userdb-util.c: 1646 Add Solaris console owner patch from Artem Kachitchkine 1647 1648 2006-06-07 Thiago Macieira <thiago.macieira (a] trolltech.com> 1649 1650 * qt/Makfile.am: 1651 * qt/src/Makefile.am: Fix the EXTRA_DIST after the 1652 reorganisation. Thanks to Timo Hoenig for pointing this out. 1653 1654 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1655 1656 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every 1657 call to dbus_g_type_get_struct. 1658 1659 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1660 1661 * glib/dbus-gvalue-utils.c: Fix the failing test where static string 1662 pointers were put into a GPtrArray-based specialised collection, and 1663 then freed along with the array. GValues which you add into 1664 collections or maps which have the NOCOPY flag set are assumed to not 1665 belong to the caller, so rather than the existing pointer-stealing 1666 semantics, they are copied instead. Given that the main consumers of 1667 this abstraction are the bindings themselves, I don't think this is 1668 too bad, but others should watch their choice of take vs set_static. 1669 1670 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1671 1672 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value 1673 of g_slist_prepend not being used. Fixed copying of slist-based 1674 specialised collections, then wrote a test case and found that it was 1675 all broken. Went on to fix iterating and appending too. Good thing 1676 nobody uses this code yet. 1677 1678 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1679 1680 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of 1681 the iterators use gvalue_take_ptrarray_value (the GValues themselves 1682 are discarded without unsetting, so it makes no difference whether 1683 we take or set_static). Remove cases for G_TYPE_POINTER because 1684 there really is nothing useful we can do with them in our 1685 specialised types - we *need* boxed copy/free functions at the very 1686 least. 1687 1688 2006-06-05 Thiago Macieira <thiago.macieira (a] trolltech.com> 1689 1690 * qt/dbus: Add directory. I had forgotten to add this 1691 yesterday after the move... 1692 1693 * qt/examples/Makefile.am: 1694 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp. 1695 1696 * qt/tools/Makefile.am: 1697 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp. 1698 Added feature to get and set properties. 1699 Added validation of service, object path and interface names. 1700 1701 * qt/tools/dbusidl2cpp.cpp: Two new features: 1702 1) Allow specifying both the header and the source file names, 1703 by separating them with a colon. 1704 2) Don't write an interface output if the -p switch wasn't 1705 given, but the -a was. 1706 1707 * qt/src/*: Fix usage of Iterators and ConstIterators. 1708 Fix shadowing of variables by other variables (-Wshadow). 1709 Fix keyword-cleanliness in headers. 1710 Fix ASCII-cast (QLatin1String, QLatin1Char). 1711 Fix validation of member names. 1712 Add extra checking of introspection data during XML parsing. 1713 Various bug fixes. 1714 1715 2006-06-04 Thiago Macieira <thiago.macieira (a] trolltech.com> 1716 1717 * dbus/Makefile.am: 1718 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into 1719 qt/dbus/qdbus.h now. 1720 1721 2006-06-04 Thiago Macieira <thiago.macieira (a] trolltech.com> 1722 1723 * configure.in: Make --disable-qt actually do 1724 something. Patch inspired by Zack Rusin. 1725 1726 2006-06-04 Thiago Macieira <thiago.macieira (a] trolltech.com> 1727 1728 * qt/: Update to Subversion r548032. 1729 This includes a big reorganisation of the files inside the 1730 subdir. 1731 1732 2006-05-30 Sjoerd Simons <sjoerd (a] luon.net> 1733 1734 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more 1735 clear: 1736 "Failed to connect to socket <host>:<port> <error>" instead of 1737 "Failed to connect to socket <host>: <error>:<port>" 1738 1739 * dbus/dbus-transport-unix.c: Fix crash when no host option is given 1740 for a tcp transport. 1741 1742 2006-05-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1743 1744 * qt/*: Update the QtDBus bindings up to revision 546310 in 1745 Subversion. 1746 This adds the dbuscpp2xml tool, that parses a C++ header and 1747 outputs a D-BUS Introspection XML. 1748 1749 2006-05-21 Havoc Pennington <hp (a] redhat.com> 1750 1751 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name 1752 is not NULL when it shouldn't be. Also a couple of possible fixes 1753 for #4637 though I don't understand why the bug happens, to be 1754 honest... also the object constructor has an assert name != NULL 1755 and the name is only currently NULL for peer-to-peer proxies that 1756 I don't think anyone uses? So it should be asserting. 1757 Anyway, for now at least see if we get an earlier assertion failure. 1758 1759 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for 1760 apparently broken code to be sure the tests fail and someone 1761 will fix them... 1762 1763 2006-05-07 Thiago Macieira <thiago.macieira (a] trolltech.com> 1764 1765 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists 1766 and arrays when they had a single element: has_next returns 1767 false, even before you read the element. So, instead, check 1768 the array length. 1769 1770 2006-05-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 1771 1772 * qt/qdbusmessage.cpp: 1773 * qt/qdbustypehelper_p.h: 1774 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when 1775 the list is a const-reference 1776 1777 2006-05-03 John (J5) Palmieri <johnp (a] redhat.com> 1778 1779 * Adding old doc patch that never got applied 1780 1781 * dbus/bus.c (dbus_bus_add_match): Add documentation 1782 1783 * doc/dbus-specification.xml: Add documentation for the match rules 1784 and the AddMatch and RemoveMatch methods 1785 1786 2006-05-02 Thiago Macieira <thiago.macieira (a] trolltech.com> 1787 1788 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct 1789 call (r535506) 1790 1791 * qt/dbusidl2cpp.cpp: 1792 * qt/qdbusabstractadaptor.cpp: 1793 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a 1794 sibling of the QDBusAbstractAdaptor objects instead of the 1795 parent. (r535848) 1796 1797 * qt/dbusidl2cpp.cpp: 1798 * qt/qdbusabstractinterface.cpp: 1799 * qt/qdbusabstractinterface.h: 1800 * qt/qdbusabstractinterface_p.h: 1801 * qt/qdbusinterface.cpp: Make properties in interfaces 1802 actually work. The code that was generated would not compile, 1803 due to moc calls to functions that did not exist. They now 1804 shall. (r536571) 1805 1806 2006-04-30 Thiago Macieira <thiago.macieira (a] trolltech.com> 1807 1808 * Makefile.am: 1809 * configure.in: 1810 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1. 1811 Thanks to Brad Hards for providing the patch 1812 1813 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1814 1815 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct 1816 call. (r535506) 1817 1818 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1819 1820 * qt/examples/dbus.cpp: Enhance error messages and use 1821 QDBusInterfacePtr. 1822 1823 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1824 1825 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr 1826 and disable the copy operators. (r533772, r534746) 1827 1828 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929) 1829 1830 * qt/qdbusabstractinterface.cpp: 1831 * qt/qdbusabstractinterface.h: Change the default call mode to 1832 not use the event loop. Add convenience call() methods that 1833 take a CallMode parameter. (r534042) 1834 1835 * qt/qdbusconnection.h: Change the default call mode to not 1836 use the event loop. (r534042) 1837 1838 * qt/qdbusinterface.cpp: 1839 * qt/qdbusinterface.h: Add a method to tell us if the 1840 interface is valid (since we don't return a null pointer 1841 anymore) (r534099) 1842 1843 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0 1844 (r534101) 1845 1846 * qt/qdbusinternalfilters.cpp: Decouple the introspection 1847 function in two so taht we get the chance to introspect 1848 without having a QDBusMessage (r534102) 1849 1850 * qt/qdbusbus.h: 1851 * qt/qdbusconnection.cpp: 1852 * qt/qdbusconnection_p.h: 1853 * qt/qdbusintegrator.cpp: Keep a list of our own names to 1854 avoid a round-trip to the server when attempting to introspect 1855 one of our own objects. Also make sure the filter functions 1856 match the empty interface as well. (r534108) 1857 Don't keep the connection names. Instead, trust the unique 1858 connection name (r534111) 1859 Remove event loop usage (r534112) 1860 1861 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1862 1863 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by 1864 Brad Hards. 1865 1866 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1867 1868 * glib/dbus-gproxy.c: Fix properties so that they can be given in 1869 any order, making it easier for people who inherit from this 1870 object. 1871 1872 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1873 1874 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking 1875 of memory from within pointer arrays and lists. Fixes bug #6300. 1876 1877 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1878 1879 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in 1880 generating struct signatures. Fixes bug #6083. 1881 1882 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1883 1884 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc 1885 to qdbusconnection_p.moc. 1886 1887 2006-04-24 John (J5) Palmieri <johnp (a] redhat.com> 1888 1889 * README, INSTALL: Doc fixes 1890 Patch from Brad Hards <bradh at frogmouth.net> 1891 1892 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1893 1894 * qt/examples/dbus.cpp: Use the new merged-interface mode for 1895 the dynamic meta object. No need to guess which interface to 1896 call. 1897 1898 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1899 1900 * qt/qdbusconnection_p.h: 1901 * qt/qdbusmetaobject.cpp: 1902 * qt/qdbusmetaobject_p.h: 1903 * qt/qdbusintegrator.cpp: Use the new merged-interface mode 1904 for the dynamic meta object. No need to guess which 1905 interface to call. 1906 * qt/qdbusabstractinterface_p.h: 1907 * qt/qdbusconnection.cpp: 1908 * qt/qdbusintegrator.cpp: 1909 * qt/qdbusinterface.cpp: 1910 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer. 1911 Add a QDBusRef that looks and behaves like DCOPRef. 1912 1913 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1914 1915 * dbus/dbus-connection.c: Interfaces are optional in method 1916 calls, so don't give up if the interface parameter is NULL. 1917 Patch reviewed by Havoc Pennington. 1918 1919 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1920 1921 * qt/qdbusreply.h: Add default constructor and operator= 1922 (r532625) 1923 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach() 1924 in public headers (r532952) 1925 * qt/qdbusabstractinterface.cpp: 1926 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and 1927 make it the default (r532951) 1928 1929 2006-04-19 John (J5) Palmieri <johnp (a] redhat.com> 1930 1931 * dbus/dbus-connection.c: Fix asserts 1932 Patch from Tim Moloney <t.moloney at verizon.net> 1933 1934 2006-04-19 John (J5) Palmieri <johnp (a] redhat.com> 1935 1936 * mono/Connection.cs, mono/Message.cs: Check Target type 1937 Patch from Aaron Bockover (abockover at novell.com) 1938 1939 2006-04-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1940 1941 * INSTALL: fine-tune the requirements for the Qt4 binding. 1942 1943 2006-04-16 Daniel P. Berrange <dan (a] berrange.com> 1944 1945 * tools/dbus-print-message.c: Added support for printing of all 1946 remaining data types. Fixed logic for indentation of compound 1947 data types. 1948 1949 2006-04-15 Daniel P. Berrange <dan (a] berrange.com> 1950 1951 * INSTALL: fill out content of file providing DBus specific 1952 build installations, followed by generic Auto* INSTALL file 1953 content 1954 1955 2006-04-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1956 1957 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug. 1958 Patch by Stefan Eilers. (r529537) 1959 1960 2006-04-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1961 1962 * qt/qdbusinternalfilters.cpp: Don't show the parent's 1963 contents (r528208) 1964 1965 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1966 1967 * qt/Makefile.am: fix the dependency for 1968 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp, 1969 not in qdbusconnection.cpp. 1970 Thanks to Jakub Stachowski <stachowski (a] hypair.net> for 1971 spotting this. 1972 1973 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1974 1975 * qt/examples/listnames.cpp: 1976 * qt/examples/Makefile.am: Three ways to list the names on the 1977 bus. 1978 1979 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1980 1981 * test/qt/tst_hal.cpp: Remove the waiting, since it's not 1982 needed anymore. Requires Qt 4.1.3 to work properly. (r528148) 1983 1984 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1985 1986 Merge from Subversion: 1987 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to 1988 something that exists (r526315) 1989 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable 1990 slots/signals (r526316) 1991 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and 1992 also return an unknown-method error if the parameters don't 1993 match for org.freedesktop.DBus.Properties. (r526842) 1994 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843) 1995 * qt/qdbusintegrator.cpp: Restore the proper order of 1996 delivery: don't make method returns be delivered on priority 1997 (r528150) 1998 1999 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2000 2001 * configure.in qt/Makefile.am: add qt/examples 2002 * qt/examples: Add QtDBus example programs: 2003 - hello: Hello, World 2004 - ping: Simple method-calling program 2005 - pong: Simple object-exporting program (not using adaptors) 2006 - complexping: Interactive method-calling program 2007 (also gets and sets properties). 2008 - complexpong: Sample program exporting methods, signals and 2009 properties, using adaptors. 2010 - dbus: Simple implementation of a generic method-calling 2011 program, similar to 'dbus-send', but with semantics 2012 similar to 'dcop'. 2013 - chat: Simplistic chat program, implemented using signals 2014 and the system bus. Looks like IRC. 2015 2016 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2017 2018 * configure.in: Detect QtGui (necessary for one of the 2019 example programs). Note: this increases the minimum required 2020 version of Qt to 4.1.3. 2021 2022 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2023 2024 * test/qt/*: Sync with KDE Subversion revision 523647. 2025 Update the testcases to the new API. Remove testcases for 2026 classes that are no longer public or have been removed. 2027 2028 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2029 2030 * qt/*: 2031 * dbus/qdbus.h: Sync with KDE Subversion revision 2032 523647. Hopefully, this will be the last of the 2033 source-incompatible changes. Documentation has been improved; 2034 support for QList<basic-types> has been added; QDBusObject is 2035 gone; QDBus(Abstract)Interface is now a QObject with 2036 auto-generated meta-object; QDBusIntrospection is marked 2037 private, since QMetaObject can be used now; lots of bugfixes. 2038 2039 2006-03-16 John (J5) Palmieri <johnp (a] redhat.com> 2040 2041 Patch from Milosz Derezynski <internalerror at gmail.com> 2042 2043 * configure.in: 2044 Output the service directory in the configure summary 2045 2046 * dbus-1.pc.in: 2047 Add session_bus_services_dir 2048 2049 2006-03-10 Ross Burton <ross (a] openedhand.com> 2050 2051 * tools/dbus-print-message.c: 2052 Add support for object paths and signatures. 2053 2054 2006-03-06 Sjoerd Simons <sjoerd (a] luon.net> 2055 2056 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on 2057 config reload. 2058 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group 2059 information caches 2060 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 2061 * dbus/dbus-hash.h: Add function to remove all entries from a hash table 2062 * dbus/dbus-userdb.c: (_dbus_user_database_flush): 2063 * dbus/dbus-userdb.h: Add function to flush all user/group information 2064 caches. 2065 2066 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2067 2068 * qt/dbusidl2cpp.cpp: 2069 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement 2070 for dcopidl2cpp, found in the KDE installations (or the more 2071 modern kalyptus): generate Qt4 C++ code for the input XML 2072 introspection. Currently no IDL parsing. 2073 2074 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2075 2076 * test/qt/*: Update the self-tests. 2077 2078 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2079 2080 * qt/*: 2081 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This 2082 represents the first feature-complete version of the Qt4 2083 bindings since I took ove maintainership. 2084 2085 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2086 2087 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings 2088 dir. This is C++, so we can't use the DBus ones. 2089 2090 2006-03-02 John (J5) Palmieri <johnp (a] redhat.com> 2091 2092 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h 2093 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>) 2094 2095 2006-03-02 John (J5) Palmieri <johnp (a] redhat.com> 2096 2097 * dbus/dbus-connection.c: 2098 (_dbus_connection_block_pending_call): 2099 Check to see if our data has already been read off the connection 2100 by another blocking pending call before we block in poll. 2101 (check_for_reply_and_update_dispatch_unlocked): 2102 Code taken from _dbus_connection_block_pending_call - checks for 2103 an already read reply and updates the dispatch if there is one. 2104 2105 * test/name-test/test-pending-call-dispatch.c: 2106 New test for making sure we don't get stuck polling a 2107 dbus connection which has no data on the socket when 2108 blocking out of order on two or more pending calls. 2109 2110 2006-02-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2111 2112 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues: 2113 make/automake don't detect that we're talking about the same 2114 .lo file if I specify the full path to the source files. 2115 2116 2006-02-26 Havoc Pennington <hp (a] redhat.com> 2117 2118 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed 2119 2120 * dbus/dbus-bus.c (internal_bus_get): in the error message if the 2121 session bus variable is unset, suggest "man dbus-launch" and "man 2122 dbus-daemon" to figure out how to fix the problem 2123 2124 2006-02-25 Havoc Pennington <hp (a] redhat.com> 2125 2126 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone 2127 should make this thing use the new glib options parser 2128 2129 2006-02-25 Thiago Macieira <thiago.macieira (a] trolltech.com> 2130 2131 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the 2132 .lo files taking moc sources. 2133 2134 2006-02-25 Havoc Pennington <hp (a] redhat.com> 2135 2136 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h 2137 and install it as a public header 2138 2139 2006-02-24 John (J5) Palmieri <johnp (a] redhat.com> 2140 2141 * Released 0.61 2142 2143 2006-02-24 John (J5) Palmieri <johnp (a] redhat.com> 2144 2145 * proxies.py: Fix the callchain 2146 2147 2006-02-24 John (J5) Palmieri <johnp (a] redhat.com> 2148 2149 * patch from Sjoerd Simons <sjoerd at debian.org>: 2150 2151 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 2152 dbus/dbus-sysdeps.c 2153 2154 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't 2155 call _dbus_group_info_free_allocated which causes infinite loop, 2156 correctly call _dbus_group_info_free 2157 2158 2006-02-20 Thiago Macieira <thiago.macieira (a] trolltech.com> 2159 2160 * qt/qdbusinterface_p.h: 2161 * qt/qdbusinterface.cpp: Use the standard 2162 org.freedesktop.DBus.Method.NoReply annotation for the "async" 2163 calls instead of creating one for us. 2164 2165 * qt/qdbusconnection_p.h: 2166 * qt/qdbusintegrator.cpp: Remove debugging code. 2167 2168 * qt/qdbusintegrator.cpp: 2169 * qt/qdbusmessage.cpp: 2170 * qt/qdbusmessage_p.h: 2171 * qt/qdbusmessage.h: Change the behaviour of automatic 2172 reply-sending: now a reply is always sent, unless the caller 2173 didn't request one or if the user slot has already sent one. 2174 2175 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2176 2177 * configure.in: Patch from Debian packages by Sjoerd Simons 2178 <sjoerd (a] debian.org> to add --with-qt-moc and --with-qt3-moc 2179 arguments so it's possible to build both bindings in the 2180 same tree. 2181 2182 * qt/Makefile.am: Fix truncated value so that make dist works. 2183 2184 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2185 2186 * acinclude.m4, configure.in: Patch from Brad Hards 2187 <bradh (a] frogmouth.net> to avoid warnings from autoconf 1.9 by 2188 improving quoting, re-ordering a few checks, and a few other 2189 aesthetic tidy-ups. 2190 2191 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2192 2193 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): 2194 Patch from Rob Taylor <rob.taylor (a] collabora.co.uk> to correct a bogus 2195 assertion that the next element to read from the iter is fixed in 2196 size. This is not the case when you are at the end of the iter, 2197 because the next element type is INVALID. 2198 2199 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a 2200 a bogus assert which means that you may not initialise a 0-length 2201 string unless you provide a non-NULL pointer. This prevented 2202 you from marshalling messages containing zero-length arrays in 2203 some cases. 2204 2205 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch 2206 from Rob to correct bogus asserts when trying to demarshal an 2207 array and get_fixed_array got you 0 elements. Append nothing to 2208 the GArray in this case. 2209 2210 * test/glib/test-dbus-glib.c: Add a test case for round-tripping 2211 an empty array via the glib bindings. Without all of the above 2212 patches, this new test fails. 2213 2214 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2215 2216 * glib/dbus-gmain.c: Make the previous commit compile. 2217 2218 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre 2219 Ravnaas <ole.andre.ravnaas (a] collabora.co.uk> to allow you to 2220 specify sender_keyword="foo", path_keyword="bar" when adding 2221 a signal listener, so that you can bind to signals generically 2222 but still do something useful in your callback. 2223 2224 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned 2225 chars so that they're not cast to chars and made negative. Thanks 2226 to Jakub Stachowski for reporting this and testing the fix. 2227 2228 2006-02-15 John (J5) Palmieri <johnp (a] redhat.com> 2229 2230 * dbus/dbus-glib.h: 2231 * glib/dbus-gmain.h: 2232 (dbus_g_connection_open): new method for openning 2233 a connection to an arbitrary address in the glib bindings 2234 2235 * ChangeLog: checkin last entry which doesn't seem to be commited 2236 2237 2006-02-13 John (J5) Palmieri <johnp (a] redhat.com> 2238 2239 * tools/dbus-launch.c: Fixed sh syntax output 2240 2241 2006-02-13 Robert McQueen <robot101 (a] debian.org> 2242 2243 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c, 2244 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c, 2245 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c, 2246 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c: 2247 Patch from Rob Taylor <rob.taylor (a] collabora.co.uk> to add a big 2248 missing piece of the glib bindings jigsaw puzzle. This modifies 2249 the existing specialised types to have N type parameters (rather 2250 than the current 1 or 2 for arrays and dictionaries respectively). 2251 You can then use this to get a glib type to represent any arbitrary 2252 D-Bus struct type using dbus_g_type_get_struct. The only 2253 implementation of these types is with GValueArrays as before, 2254 but it's now possible to store these in arrays, emit them in 2255 signals, etc. 2256 2257 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2258 2259 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly 2260 deal with nested arrays (Bug #5823) Patch by Thiago Macieira 2261 <thiago.macieira at trolltech.com> 2262 2263 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2264 2265 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc 2266 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org> 2267 2268 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2269 2270 * bus/connection.c (bus_connections_expect_reply): Make 2271 pending reply limit not common to all connections (Bug #5416) 2272 Patch from Kimmo Hmlinen <kimmo.hamalainen at nokia.com> 2273 2274 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2275 2276 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720) 2277 2278 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2279 2280 * gcj/Makefile.am: point to correct jar command (Bug #4529) 2281 patch from Doug Goldstein <cardoe at gentoo.org> 2282 2283 2006-02-09 Joe Shaw <joeshaw (a] novell.com> 2284 2285 * mono/Arguments.cs: Fix a magic number in the mono bindings 2286 that doesn't work on 64 bit arches. Patch from Peter Johanson. 2287 2288 2006-01-27 Robert McQueen <robot101 (a] debian.org> 2289 2290 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's 2291 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol 2292 when generating the client-side methods, instead of overloading 2293 CSymbol which broke everything horribly. My apologies. 2294 2295 2006-01-27 Robert McQueen <robot101 (a] debian.org> 2296 2297 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch 2298 by me and Rob Taylor to add a simple_free function to D-Bus map 2299 and collection types, which allows those types which can be freed 2300 with a GDestroyNotify (such as GHashTables and GArrays, but not 2301 GPtrArrays) to be stored as the values in hashtables. 2302 2303 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}: 2304 Patch by Rob Taylor to add nested dicts to the glib tests to check 2305 the above code works, and appears not to leak when called repeatedly. 2306 2307 2006-01-27 Robert McQueen <robot101 (a] debian.org> 2308 2309 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor 2310 to free a D-Bus allocated string with dbus_free () instead of 2311 g_free (). 2312 2313 2006-01-27 Iain Holmes <iain (a] openedhand.com> 2314 2315 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose 2316 method from being called multiple times. 2317 2318 2006-01-19 Robert McQueen <robot101 (a] debian.org> 2319 2320 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor 2321 <rob.taylor (a] collabora.co.uk> to add support for generating bindings 2322 to arrays that are represented as GPtrArrays rather than GArrays (ie 2323 size-variable things, such as strings, objects, structs, etc). 2324 2325 2006-01-05 Robert McQueen <robot101 (a] debian.org> 2326 2327 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki 2328 <ricardo.kekki (a] movial.fi> to make it possible to inherit from 2329 DBusGProxy, by splitting the DBusGProxy struct into a public part and 2330 a private part, and moving the setting of the DBusGProxyManager into a 2331 connection property, allowing proper GObject construction. 2332 2333 2006-01-05 Robert McQueen <robot101 (a] debian.org> 2334 2335 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki 2336 <ricardo.kekki (a] movial.fi> to make dbus-binding-tool heed C symbol name 2337 annotations when generating glib client bindings. 2338 2339 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2340 2341 * dbus/dbus-shared.h: Call it shared constants instead of shared macros 2342 2343 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings 2344 2345 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2346 2347 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings 2348 2349 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2350 2351 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@}) 2352 2353 2005-12-19 Ross Burton <ross (a] openedhand.com> 2354 2355 * doc/dbus-tutorial.xml: 2356 Document the Glib client-side bindings, and list all possible annotations. 2357 2358 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2359 2360 * dbus/bus.c (dbus_bus_release_name): Add documentation 2361 2362 2005-12-06 Robert McQueen <robot101 (a] debian.org> 2363 2364 * python/service.py: s/sucessful/successful/ so we're allocating to 2365 and reading from the same variable. Oops. 2366 2367 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2368 2369 * Released 0.60 2370 2371 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2372 2373 * test/qt/Makefile.am: build from srcdir 2374 2375 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE 2376 Note - this code is wrong and needs to be fixed by the Qt binding 2377 developers. The flags should be treated as bitfields and not enums. 2378 2379 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace 2380 2381 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2382 2383 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 2384 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 2385 in production code 2386 2387 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2388 2389 * dbus/dbus-connection.c (dbus_connection_read_write): Add new 2390 method for getting messages off the bus in the absence of a 2391 mainloop. This method is much like 2392 dbus_connection_read_write_dispatch except it does not dispatch 2393 the messages to a registered filter function. Instead it 2394 allows a developer to process messages by directly popping 2395 them off the bus. 2396 2397 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2398 2399 * bus/desktop-file.c (parse_key_value): Ignore locales allowing 2400 the parser to continue instead of returning error 2401 (bus_desktop_file_load): Do not free parser data when 2402 parse_section_start or parse_key_value fails because it was 2403 already freed by parser_free (patch from Carlos Garcia Campos 2404 <carlosgc at gnome.org>) 2405 2406 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2407 2408 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c, 2409 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c 2410 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c 2411 test/test-segfault.c, test/test-utils.c, 2412 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c 2413 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c: 2414 Various cleanup of dead code and compiler warnings (patch from 2415 Kjartan Maraas <kmaraas at gnome.org>) 2416 2417 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2418 2419 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak 2420 (patch from Carlos Garnacho Parro <carlosg at gnome.org> 2421 2422 2005-11-27 Robert McQueen <robot101 (a] debian.org> 2423 2424 * python/dbus_bindings.pyx: Repair my previous commit which reverted 2425 part of the preceding one. Oops. Merge patch by Johan Hedberg 2426 <johan.hedberg (a] nokia.com> to fix marshalling of 16-bit integer values 2427 on big-endian platforms. 2428 2429 * test/python/test-client.py: Add some 16-bit integers to the test 2430 values. 2431 2432 2005-11-27 Carlos Garcia Campos <carlosgc (a] gnome.org> 2433 2434 * glib/dbus-gobject.c: Append a GValue instead of a basic type in 2435 method return message for property getters 2436 2437 2005-11-27 Robert McQueen <robot101 (a] debian.org> 2438 2439 * python/dbus_bindings.pyx: Fix a bug where doing a strict append 2440 with type v of an instance of dbus.Variant(foo, type='x') caused 2441 it to be boxed twice before sending over the bus. 2442 2443 * python/dbus_bindings.pyx, python/service.py, 2444 test/python/test-client.py: Update the constants for the new 2445 request_name flags, and update comments/test cases now that queueing 2446 is the default action. 2447 2448 2005-11-22 John (J5) Palmieri <johnp (a] redhat.com> 2449 2450 * configure.in: 2451 - Change version to 0.60 for impending release 2452 - upped the sonames because of ABI and API breakage 2453 2454 2005-11-22 John (J5) Palmieri <johnp (a] redhat.com> 2455 2456 * configure.in: Add test/name-test/Makefile to the generated 2457 Makefile list 2458 2459 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): 2460 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT 2461 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying 2462 not to queue an ower if it can't be the primary owner 2463 2464 * bus/bus.h: Add new internal BusOwner struct 2465 2466 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) 2467 to bus_registry_ensure and don't set the prohibit_replacement flag 2468 since they are now set per BusOwner and not per name. 2469 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 2470 that returns the list of connections in a name's connection queue 2471 2472 * bus/services.c (struct BusService): remove prohibit_replacement field 2473 (struct BusOwner): new struct for keeping track of queued connections 2474 and their associated flags for the queue 2475 (struct BusRegistry): add a BusOwner memory pool 2476 (bus_registry_new): initialize the BusOwner memory pool 2477 (bus_registry_unref): free the BusOwner memory pool 2478 (_bus_service_find_owner_link): new internal method for 2479 searching the queue for a specific connection 2480 (bus_owner_set_flags): new method for adding setting the flags on a 2481 bus owner 2482 (bus_owner_new): new method that creates a BusOwner object from the 2483 pool and sets its flags 2484 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects 2485 (bus_registry_ensure): Add the flags parameter 2486 (bus_registry_acquire_service): Switch from using raw connections to 2487 using the BusOwner struct 2488 Add new state machine for dealing with the new set of flags 2489 (bus_registry_set_service_context_table, struct OwnershipCancelData, 2490 cancel_ownership, free_ownership_cancel_data, 2491 add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 2492 restore_ownership, free_ownership_restore_data, 2493 add_restore_ownership_to_transaction): Switch to using BusOwner 2494 instead of raw connections 2495 (bus_service_add_owner): Add flags parameter 2496 Switch to using BusOwner instead of raw connections 2497 Add state machine for dealing with the new set of flags 2498 (bus_service_swap_owner): Swaps the first and second owners in the 2499 queue. Used to make sure proper signals are sent when a service looses 2500 or gains primary ownership. We never insert an owner at the top of the 2501 queue. Instead we insert it in the second position and then swap. 2502 (bus_service_remove_owner): Remove the owner from the queue sending 2503 out the NameLost and NameOwnerChanged signals if the we were the 2504 primary owner 2505 (bus_service_get_primary_owners_connection): New method that extracts 2506 the connection from the primary owner 2507 (bus_service_get_primary_owner): Returns the BusOwner instead of the 2508 connection 2509 (bus_service_get_allow_replacement): Changed from the old 2510 bus_service_get_prohibit_replacement method. Checks the flags of the 2511 primary owner and returns if it can be replaced or not 2512 (bus_service_set_prohibit_replacement): removed 2513 (bus_service_has_owner): returns TRUE if and owner with 2514 the specified connection exists in the queue 2515 2516 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper 2517 method that only compiles if tests are enabled. Allows us to get the 2518 unique name of a connection so we can check it against the queue when 2519 doing regression tests 2520 2521 * bus/activation.c (bus_activation_send_pending_auto_activate), 2522 bus/dispatch.c (bus_dispatch), 2523 bus/driver.c (bus_driver_handle_get_service_owner, 2524 bus_driver_handle_get_connection_unix_user, 2525 bus_driver_handle_get_connection_unix_process_id, 2526 bus_driver_handle_get_connection_selinux_security_context), 2527 bus/signals.c (connection_is_primary_owner): 2528 use bus_service_get_primary_owners_connection instead of 2529 bus_service_get_primary_owner 2530 2531 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 2532 _dbus_listen_unix_socket): Calculate the length of the socket 2533 path and use that instead of using a fixed length which was 2534 causing socket names to contain many trailing Nul bytes. 2535 2536 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c 2537 (dbus_g_method_get_sender): New method for extracting the sender 2538 from a DBusGMethodInvocation 2539 (dbus_g_method_return_get_reply): changed name to 2540 dbus_g_method_get_reply 2541 (dbus_g_method_return_send_reply): changed name to 2542 dbus_g_method_send reply 2543 2544 * doc/dbus-specification.xml: New docs that describe how the new 2545 queueing system works and talks about the changes to the how 2546 we specify socket names 2547 2548 * glib/examples/example-service.c, 2549 glib/examples/example-signal-emitter.c, 2550 glib/examples/statemachine/statemachine-server.c: 2551 Changed the RequestName flags to the new system 2552 2553 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New 2554 regression test suite for testing various states of the new 2555 queueing system 2556 2557 2005-11-15 Robert McQueen <robot101 (a] debian.org> 2558 2559 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob 2560 Taylor to add two methods, dbus_g_method_return_get_reply and 2561 dbus_g_method_return_send_reply, to allow you to get the reply 2562 message from a DBusGMethodInvocation, append arbitrary stuff to it, 2563 and send it. The GLib bindings can't marshal a return value of 2564 something like a(s) if the array is empty - ultimately they should be 2565 made to heed the signature of the out arguments as the Python bindings 2566 now can, but this is a workable interim solution which might have 2567 other applications. 2568 2569 2005-11-15 Robert McQueen <robot101 (a] debian.org> 2570 2571 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName 2572 method to org.freedesktop.DBus to release a bus name or give up 2573 waiting in the queue for it. 2574 2575 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a 2576 dbus_bus_release_name method to send the ReleaseName method calls. 2577 Add constants for the return values to dbus/dbus-shared.h. 2578 2579 * doc/dbus-specification.xml: Document the new ReleaseName method 2580 in the specification. 2581 2582 * python/dbus_bindings.pyx: Add a low-level python binding for the 2583 release name method. 2584 2585 * python/exceptions.py, python/service.py: Make freeing BusName 2586 objects release the name. Add a NameExistsException, and fix a 2587 bug with creating UnknownMethodException. 2588 2589 * test/python/test-client.py: Add tests for freeing BusName 2590 objects causing names to be released. 2591 2592 2005-11-14 Robert McQueen <robot101 (a] debian.org> 2593 2594 * python/service.py: Include the traceback in the error reply when we 2595 send an exception over the bus. _BEST_ _PATCH_ _EVER_ 2596 2597 2005-11-14 David Zeuthen <davidz (a] redhat.com> 2598 2599 Patch from Timo Hoenig <thoenig (a] suse.de>. 2600 2601 * bus/bus.c: I've recently investigated why the automatic reload 2602 of configuration files does not work as expected. 2603 2604 Currently, reloading configuration files does only work when 2605 running dbus-daemon with --nodaemon. If we are running as daemon 2606 we're hitting a dnotify bug once we fork the process. 2607 2608 We're initializing the dnotify fds before calling fork(). Once 2609 the child process forked it does still have the fds (and they 2610 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not 2611 getting SIGIO as changes are made to the configuration files. 2612 2613 The attached patch moves the initialization of the dnotify fds to 2614 process_config_postinit(). This is safe for all current code 2615 paths and solves the dnotify disfunction. If we're running 2616 dbus-daemon as daemon the fds for dnotify are now being 2617 initialized after fork() for the child process. 2618 2619 * configure.in: The current configure.in check for dnotify probes 2620 'x$target_os' for being 'xlinux-gnu'. I've changed the check to 2621 match for 'xlinux', too. Additionally I have adapted the configure 2622 option's style to match with the others. 2623 2624 2005-11-14 Robert McQueen <robot101 (a] debian.org> 2625 2626 * python/decorators.py, python/service.py: Add a new argument to the 2627 dbus.service.method decorator called sender_keyword, which if set, 2628 specifies the name of an argument which will be provided the bus 2629 name of the method caller. 2630 2631 * test/python/test-client.py, test/python/test-service.py: Add a 2632 method and test to check the sender_keyword functionality. 2633 2634 2005-11-07 John (J5) Palmieri <johnp (a] redhat.com> 2635 2636 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 2637 empty reply so blocking calls don't block forever (Patch from Sjoerd 2638 Simons <sjoerd at luon.net>) 2639 2640 * AUTHORS: Add Robert McQueen for his work on the Python 2641 Bindings and other parts of D-Bus 2642 2643 2005-11-07 Robert McQueen <robot101 (a] debian.org> 2644 2645 * python/decorators.py: Change emit_signal function to use the 2646 signature annotation of the signal when marhsalling the arguments from 2647 the service. Fix a bug where the code checking signature length 2648 against argument length referenced the wrong variable. 2649 2650 * python/introspect_parser.py: Avoid adding the type signature of 2651 signal arguments to any methods which occur after them in the 2652 introspection data (!) by making the parser a little more careful 2653 about its current state. 2654 2655 * python/service.py: Remove debug prints from last commit (again :D). 2656 2657 * test/python/test-client.py, test/python/test-service.py: Add test 2658 signals with signature decorators to test the strict marshalling code 2659 gives errors at the right time. Could do with checking the signals 2660 actually get emitted too, given that the test does nothing with 2661 signals at the moment... 2662 2663 2005-11-07 Robert McQueen <robot101 (a] debian.org> 2664 2665 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus 2666 instances to stop madness of creating new instances representing 2667 the same bus connection all the time, rendering any tracking of 2668 match rules and bus names quite meaningless. Caught a bug where 2669 the private argument to SessionBus() and friends was being passed 2670 in as use_default_mainloop by mistake. Still some problems with 2671 multiple dbus_binding.Connection instances representing the same 2672 low-level connection (eg when you use both SessionBus() and 2673 StarterBus() in same process), but it's a lot better now than it 2674 was. 2675 2676 * python/dbus_bindings.pyx: Add constants with the return values 2677 for bus_request_name(). 2678 2679 * python/service.py: Store bus name instances in a per-dbus.Bus cache 2680 and retrieve the same instances for the same name, so deletion can be 2681 done with refcounting. Also now throws some kind of error if you 2682 don't actually get the name you requested, unlike previously... 2683 2684 * test/python/test-client.py: Add tests for instance caching of buses 2685 and bus name objects. 2686 2687 2005-11-04 Robert McQueen <robot101 (a] debian.org> 2688 2689 * python/dbus_bindings.pyx, test/python/test-client.py: Fix 2690 marshalling of boolean values. Add some booleans to the values in 2691 the test client. 2692 2693 * python/decorators.py, python/service.py: Add an 'async_callbacks' 2694 argument to the dbus.service.method decorator, which allows you to 2695 name arguments to take two callback functions for replying with 2696 return values or an exception. 2697 2698 * test/python/test-client.py, test/python/test-service.py: Add test 2699 case using asynchronous method reply functions, both return values and 2700 errors, and from within both the function itself and from a mainloop 2701 callback. 2702 2703 * python/decorators.py, python/service.py: Perform checking that the 2704 number of method/signal arguments matches the number of types in the 2705 signature at class loading time, not when you first introspect the 2706 class. 2707 2708 * python/service.py: Remove debug print left by the last commit. 2709 2710 2005-11-03 Robert McQueen <robot101 (a] debian.org> 2711 2712 * python/service.py: Heavy refactoring of method invocation, with 2713 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call 2714 in favour of a new _message_cb that uses seperate functions for 2715 looking up the method to call, marshalling the return values, and 2716 sending exceptions as errors, and is easier to follow as a 2717 consequence. Fixes some corner cases about returning things that 2718 don't match your declared out_signature, allows exceptions to define 2719 _dbus_error_name and have it be sent over the bus as the error name, 2720 and paves the way for cool stuff like heeding the message no reply 2721 flag, asynchronous method implementations, informing the method of the 2722 sender, and including backtraces in the error messages. 2723 2724 * test/python/test-client.py: Catch and print exceptions thrown in the 2725 async callback tests, rather than passing them to the low-level 2726 bindings to be ignored in a noisy and frustrating manner. 2727 2728 2005-11-03 Robert McQueen <robot101 (a] debian.org> 2729 2730 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__ 2731 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object, 2732 tweak others to be consistent. 2733 2734 * test/python/test-client.py: Tweak output of testInheritance. 2735 2736 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2737 2738 * python/service.py: Major changes to allow multiple inheritance 2739 from classes that define D-Bus interfaces: 2740 2741 1. Create a new Interface class which is the parent class of 2742 Object, and make the ObjectType metaclass into InterfaceType. 2743 2744 2. Patch written with Rob Taylor to replace use of method_vtable 2745 with code that walks the class's __MRO__ (method resolution order) 2746 to behave like Python does when invoking methods and allow 2747 overriding as you'd expect. Code is quite tricky because 2748 we have to find two methods, the one to invoke which has the 2749 right name and isn't decorated with the /wrong/ interface, 2750 and the one to pick up the signatures from which is decorated 2751 with the right interface. 2752 2753 The same caveats apply as to normal multiple inheritance - 2754 this has undefined behaviour if you try and inherit from two 2755 classes that define a method with the same name but are 2756 decorated with different interfaces. You should decorate 2757 your overriding method with the interface you want. 2758 2759 3. Replace grungy introspection XML generation code in the metaclass 2760 with dictionaries that cope correctly with multiple inheritance 2761 and the overriding of methods. This also uses the signature 2762 decorations to provide correct introspection data, including 2763 the debut appearance of the types of your return values. :D 2764 2765 * test/python/test-client.py, test/python/test-service.py: Add a test 2766 case to try invoking an method that overrides one inherited from a 2767 D-Bus interface class. 2768 2769 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2770 2771 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert(). 2772 Add checking for the end of struct character when marshalling a 2773 struct in MessageIter.append_strict. 2774 2775 * python/examples/example-service.py, 2776 python/examples/gconf-proxy-service.py, 2777 python/examples/gconf-proxy-service2.py: Update to use gobject 2778 mainloop directly rather than appearing to depend on gtk. 2779 2780 * python/test/test-client.py, python/test/test-server.py: Remove 2781 obsolete and broken test scripts for old bindings. We have up to date 2782 and working tests in test/python/. 2783 2784 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2785 2786 * python/decorators.py: Add optional arguments to the method and 2787 signal decorators to allow you to specify the signature of arguments 2788 and return values. Preserve the doc strings of signal functions in the 2789 decorated version, for pydoc and friends. 2790 2791 * python/dbus_bindings.pyx, python/proxies.py: Replace the 2792 parse_signature_block function with an iterable dbus.Signature() 2793 type. Fix a bug in MessageIter.append_strict where you could append 2794 anything by claiming it was a string. 2795 2796 * python/service.py: Use the out_signature decoration on methods to 2797 marshal return values, meaning you no longer require dbus.Array() 2798 or dbus.Dictionary() to indicate the type when returning empty 2799 arrays or dictionaries. Fix a bug where exceptions which are defined 2800 in __main__ are not turned into error replies. 2801 2802 * test/python/test-client.py, test/python/test-service.py: Add test 2803 for correct marshalling of return values according to out_signature. 2804 Fix a bug in the async call test where the error_handler is missing a 2805 self argument. 2806 2807 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2808 2809 * glib/Makefile.am, glib/examples/Makefile.am, 2810 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by 2811 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL). 2812 2813 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf. 2814 2815 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch 2816 from Ubuntu by Daniel Silverstone to allow specifying match rules on 2817 the command line. 2818 2819 2005-10-27 Ross Burton <ross (a] openedhand.com> 2820 2821 * dbus/dbus-marshal-header.c: 2822 Remove dead code. 2823 2824 * glib/dbus-gobject.c: 2825 Stop compiler warning. 2826 2827 2005-10-25 Ross Burton <ross (a] openedhand.com> 2828 2829 * dbus/dbus-auth.c: 2830 * dbus/dbus-server-unix.c: 2831 * dbus/dbus-transport-unix.c: 2832 * glib/dbus-gmain.c: 2833 * glib/dbus-gobject.c: 2834 Add some const keywords. 2835 2836 2005-10-25 Ross Burton <ross (a] openedhand.com> 2837 2838 * doc/dbus-specification.xml: 2839 Document the NoReply annotation. 2840 2841 * glib/dbus-binding-tool-glib.h: 2842 * glib/dbus-binding-tool-glib.c: 2843 Respect the NoReply annotation. 2844 2845 2005-10-24 Robert McQueen <robot101 (a] debian.org> 2846 2847 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings 2848 derive from unicode instead of str, and encode/decode UTF-8 when 2849 marshalling/unmarshalling bus messages 2850 2851 * python/introspect_parser.py: encode introspection data as UTF-8 2852 before passing the buffer into libxml2 2853 2854 * test/python/test-client.py: add unicode test strings 2855 2856 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore: 2857 ignore generated python test files 2858 2859 2005-10-17 John (J5) Palmieri <johnp (a] redhat.com> 2860 2861 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble 2862 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT) 2863 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble 2864 2865 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing 2866 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters 2867 when constructing struct signatures 2868 2869 * python/_dbus.py (Bus): handle private connections using the 2870 private keyword in the constructor. defaults to private=False 2871 (Bus::close): new method to close a connection to the bus 2872 2873 * python/dbus_bindings.pyx (Connection::close): renamed method 2874 was previously called disconnect 2875 (bus_get): now supports getting a private connection 2876 2877 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply 2878 keyword is set to True. if it is, execute the method without waiting 2879 for a reply 2880 (ProxyObject::_introspect_execute_queue): new method for executing 2881 all the pending methods that were waiting for the introspect to 2882 finish. this is called when introspect either succeeds or fails 2883 (ProxyObject::_introspect_error_handler): call queued methods 2884 2885 2005-10-14 John (J5) Palmieri <johnp (a] redhat.com> 2886 2887 * python/dbus_bindings.pyx (MessageIter::append_strict): check for 2888 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct 2889 2890 * python/service.py (Object::_message_cb): handle exceptions correctly 2891 by sending them over the wire to the calling app. This makes sure 2892 the client returns immediately instead of waiting the 15 seconds to 2893 timeout. 2894 2895 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 2896 Add a test to benchmark how long it takes to introspect a service and 2897 call a method which returns a large element (pretty fast) 2898 2899 * test/python/test-service.py (TestObject::GetComplexArray): new test 2900 method which pushes a lot of data 2901 2902 2005-10-13 John (J5) Palmieri <johnp (a] redhat.com> 2903 2904 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method): 2905 reclaim memory outside of the loop and use del istead of just setting 2906 the key to None 2907 2908 2005-10-13 John (J5) Palmieri <johnp (a] redhat.com> 2909 2910 * python/service.py (ObjectType::_reflect_on_signal): Always close 2911 signal tag even when there are no arguments 2912 2913 2005-10-13 John (J5) Palmieri <johnp (a] redhat.com> 2914 2915 * configure.in: Set mono, mono-docs and Qt3 to default 2916 to no instead of auto when building. These bindings do not 2917 have full time maintainers and will not be supported for the 2918 1.0 release. 2919 2920 2005-10-12 John (J5) Palmieri <johnp (a] redhat.com> 2921 2922 patches from Michael Krivoruchko <misha at sun.com>: 2923 2924 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link, 2925 _dbus_connection_message_sent, 2926 _dbus_connection_send_preallocated_unlocked_no_update, 2927 _dbus_connection_pop_message_link_unlocked): handle the case when path 2928 is NULL when calling _dbus_verbose 2929 2930 * configure.in: check for functions getpeerucred and getpeereid 2931 2932 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 2933 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 2934 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 2935 Patch was only tested on Solaris 10 x86 so it might be issues 2936 with other platforms (i.e. BSDs and MacOSX) 2937 2938 2939 2005-10-05 John (J5) Palmieri <johnp (a] redhat.com> 2940 2941 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 2942 instead of marshal basic so we can handle recursive types in a variant 2943 2944 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types 2945 in variants 2946 2947 * test/glib/test-service-glib.c, test-service-glib.xml 2948 (my_object_echo_variant [EchoVariant], 2949 my_object_process_variant_of_array_of_ints123 2950 [ProcessVariantOfArrayOfInts123]): 2951 Add two test methods 2952 2953 * python/introspect_parser.py: New module for parsing introspect 2954 data. 2955 2956 * python/dbus_bindings.pyx: 2957 (various places): when throwing errors fix to use errormsg instead 2958 of message local variable because Pyrex can get confused with other 2959 message variables (initial patch by Robert McQueen 2960 <robert.mcqueen at collabora.co.uk>) 2961 (MessageIter::parse_signature_block): new method for getting the next 2962 block in a signiture. 2963 (MessageIter::append_strict): new method for appending values strictly 2964 using the passed in signature instead of guessing at the type 2965 (MessageItter:: append_dict, append_struct, append_array): use 2966 signatures to marshal children if the signature is available 2967 2968 * python/exceptions.py (IntrospectionParserException): new exception 2969 2970 * python/proxies.py (ProxyMethod::__call__): Marshal args with 2971 introspected signatures if available, else we fall back to the 2972 old way of doing things. 2973 (ProxyObject::_introspect_reply_handler ): parse introspection data 2974 2975 * python/service.py (ObjectType::_reflect_on_method): Properly 2976 terminate <method> if there are no args in the reflection data 2977 2978 * test/python/test-client.py: add tests for talking with the GLib 2979 test server. This gives us better coverage for introspection since 2980 python to python will always generate arguments as variants. It also 2981 allows us to test the robustness of the GLib bindings and interlanguage 2982 communications. 2983 2984 2985 2005-10-03 John (J5) Palmieri <johnp (a] redhat.com> 2986 2987 * bus/driver.c (bus_driver_handle_introspect): Add signals 2988 to the introspect data. (patch from Daniel P. Berrange 2989 <dan at berrange.com>) 2990 2991 * bus/dispatch.c (check_existent_ping): Add testcase for Ping 2992 2993 * dbus/dbus-connection.c (_dbus_connection_peer_filter, 2994 _dbus_connection_run_builtin_filters): Changed these to 2995 be unlock_no_update functions and call 2996 _dbus_connection_send_unlocked_no_update instead of 2997 dbus_connection_send to avoid locking errors. 2998 2999 * doc/TODO: Removed the make Ping test TODO 3000 3001 2005-09-26 John (J5) Palmieri <johnp (a] redhat.com> 3002 3003 * dbus/Python.pyx: Fixed memory leaks when throwing errors. 3004 We now copy the message from a DBusError and then free 3005 the error object befor throwing the error 3006 3007 * glib/dbus-glib-tool.c: removed extra comma at the end of the 3008 DBusBindingOutputMode enum which was causing a warning. 3009 #include <time.h> so using time_t is explicitly defined 3010 3011 2005-09-26 John (J5) Palmieri <johnp (a] redhat.com> 3012 3013 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>: 3014 - dbus/dbus-bus.c 3015 (internal_bus_get): new method that take over the heavy lifting 3016 of dbus_bus_get and adds the ability to get a private connection 3017 to the bus 3018 (dbus_bus_get): wrapper to internal_bus_get that provides the same 3019 interface as in previous versions 3020 (dbus_bus_get_private): new method that is a wrapper to 3021 internal_bus_get to get a private connection to the bus 3022 3023 - dbus/dbus-bus.h 3024 (dbus_bus_get_private): add as a public libdbus interface 3025 3026 - dbus-1.pc.in: output system_bus_default_address and 3027 sysconfdir variables so apps can use them when compiling 3028 3029 2005-09-23 Harald Fernengel <harry (a] kdevelop.org> 3030 * dbus/qt: New Qt bindings 3031 3032 2005-09-12 Waldo Bastian <bastian (a] kde.org> 3033 3034 * dbus/dbus-marshal-validate.c, 3035 doc/dbus-specification.xml, test/Makefile.am, 3036 test/test-names.c: allow hyphens in bus names. 3037 3038 2005-09-11 Mark McLoughlin <mark (a] skynet.ie> 3039 3040 * test/data/auth/fallback.auth-script: we don't 3041 retry the EXTERNAL method when we know its going 3042 to fail anymore. 3043 3044 2005-09-11 Mark McLoughlin <mark (a] skynet.ie> 3045 3046 * dbus/dbus-connection-internal.h: rename 3047 (add|remove|toggle)_(watch|timeout) to unlocked() 3048 3049 * dbus/dbus-connection.c: ditto. 3050 3051 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c: 3052 Update some callers for the renaming. 3053 3054 2005-09-10 Mark McLoughlin <mark (a] skynet.ie> 3055 3056 * dbus/dbus-auth.c: (record_mechanisms): don't 3057 retry the first auth mechanism because we know 3058 we're just going to get rejected again. 3059 3060 * dbus/dbus-keyring.c: (_dbus_keyring_reload): 3061 Fix thinko ... and what a nasty little bugger to 3062 track down you were ... 3063 3064 * dbus/dbus-connection.c: 3065 (_dbus_connection_add_watch), 3066 (_dbus_connection_remove_watch): add note about 3067 these needing the connection to be locked. 3068 (_dbus_connection_get_dispatch_status_unlocked): 3069 set status to DATA_REMAINS when we queue the 3070 disconnected message. 3071 3072 * bus/dispatch.c: 3073 (bus_dispatch): fix warning. 3074 (check_existent_service_no_auto_start): 3075 Expect ChildSignaled error too. 3076 (check_existent_hello_from_self): fix another 3077 couple of warnings. 3078 3079 2005-09-08 Joe Shaw <joeshaw (a] novell.com> 3080 3081 Patches from James Willcox <snorp (a] snorp.net> 3082 3083 * mono/Makefile.am: Add Int16.cs and UInt16.cs 3084 3085 * mono/DBusType/Array.cs: Handle multidimensional arrays, and 3086 support array "out" parameters. 3087 3088 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files, 3089 for 16-bit int support. 3090 3091 2005-09-06 John (J5) Palmieri <johnp (a] redhat.com> 3092 3093 * Released 0.50 3094 3095 * Patch from Steve Grubb: 3096 - bus/activation.c (bus_activation_service_reload_test): clean up 3097 some indentation 3098 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 3099 - dbus/dbus-message-factory.c (generate_special): fix a couple of 3100 buffer overflows in the test suite. This is non critical because 3101 it can not be exploited and this code is only run when doing a 3102 make check. 3103 3104 * Patch from Yaakov Selkowitz: Build fixes for Cygwin 3105 - configure.in: Don't check and link against kdecore, only qt headers 3106 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS 3107 - gcj/org/freedesktop/dbus/Makefile.am: 3108 add libdbus_gcj_1_la_LDFLAGS = -no-undefined 3109 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS 3110 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD 3111 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS 3112 - tools/Makefile.am: Add platform extentions to binaries 3113 (i.e. .exe on windows) 3114 3115 * configure.in: 3116 - Make it so if no suitable version of python is found we only 3117 disable building python instead of exiting the configure script 3118 - Require version 2.4 of glib for glib bindings 3119 - Up version to 0.50 3120 3121 * python/__init__.py: Sync version with libdbus to (0,50,0) 3122 3123 2005-09-05 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 3124 3125 * dbus/dbus-object-tree.c (find_subtree_recurse): 3126 a couple of optimizations (bug #710): 3127 - do a binary search in the tree 3128 - insert a new child at the right place directly, no need for 3129 qsort anymore 3130 - do the "double alloc" thing when allocating children 3131 3132 2005-08-31 John (J5) Palmieri <johnp (a] redhat.com> 3133 3134 * python/Makefile.am: Break on pyrexc errors instead of ignoring them 3135 3136 * python/dbus_bindings.pyx: Memory management foo 3137 (global): remove hacky _user_data_references global list 3138 (GIL_safe_cunregister_function_handler): userdata now stuffed into 3139 tuples. Unref user_data 3140 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples 3141 (Connection::__del__): Remove and replace with __dealloc__ method 3142 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF 3143 to keep tuple from being deallocated instead of the global var hack 3144 (Connection::register_object_path): Stuff user_data into a tuple. 3145 Use Py_INCREF to keep tuple from being deallocated instead of the 3146 global var hack 3147 (Connection::register_fallback): Stuff user_data into a tuple. 3148 Use Py_INCREF to keep tuple from being deallocated instead of the 3149 global var hack 3150 (GIL_safe_pending_call_notification): Don't unref the message 3151 because it gets unreffed when going out of scope. Py_XDECREF 3152 the user_data 3153 (PendingCall::__del__): Remove and replace with __dealloc__ method 3154 (PendingCall::set_notify): ref the pending call because we will 3155 need it to stick around for when the notify callback gets called 3156 (Message::__del__): Remove and replace with __dealloc__ method 3157 3158 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 3159 gthreads_init to match up with the dbus call 3160 3161 * python/glib.py (init_threads): Changed to threads_init to match 3162 up with gobject.threads_init(). init_threads is kept for backwards 3163 compat but will most likely be deprecated in the future 3164 3165 * test/python/test-client.py: 3166 - revamp to use Python's unittest functionality 3167 - add async call tests 3168 - setup threads in glib and dbus so we make sure locks are working 3169 3170 2005-08-30 John (J5) Palmieri <johnp (a] redhat.com> 3171 3172 * python/dbus_bindings.pyx 3173 (_pending_call_notification, cunregister_function_handler, 3174 cmessage_function_handler): All callback functions have been rearranged 3175 to workaround a bug in Pyrex when working with the GIL which is Python's 3176 global lock when dealing with threads. They have been split into 3177 a wrapper function (which assumes the name of the old function) and 3178 a _GIL_safe_<function name> function which contains the functionality 3179 of the old function. This ensures that Pyrex does not write code 3180 the lock is released. 3181 3182 3183 2005-08-30 John (J5) Palmieri <johnp (a] redhat.com> 3184 3185 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the 3186 GIL global lock when calling back into Python 3187 3188 2005-08-29 John (J5) Palmieri <johnp (a] redhat.com> 3189 3190 * Release 0.36.2 3191 3192 * Add Havoc's patch that never got applied to HEAD (Bug #2436): 3193 3194 * bus/policy.c (bus_policy_allow_user): change default "user is 3195 allowed" to be "user has same uid as the bus itself"; any 3196 allow/deny rules will override. 3197 3198 * bus/session.conf.in: don't allow all users, since now by default 3199 the user that ran the bus can connect. 3200 3201 2005-08-26 Colin Walters <walters (a] verbum.org> 3202 3203 * tools/dbus-print-message.c (print_message): Flush stdout 3204 after printing a message, so that redirecting to a file, then 3205 hitting Ctrl-C works. 3206 3207 2005-08-25 John (J5) Palmieri <johnp (a] redhat.com> 3208 3209 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it 3210 (EmptyMessage): new class that subclasses Message. This is a workaround 3211 to a Pyrex bug that fails to call __del__ when the Message object goes out 3212 of scope. For some reason subclassing Message fixes this bug 3213 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message 3214 - s/Message(_create=0)/EmptyMessage everywhere else 3215 3216 * test/python/test-{server|client}.py: add the python/.libs directory 3217 to the lookup path so dbus_bindings and dbus_glib_bindings don't 3218 get picked up from the system 3219 3220 2005-08-25 Colin Walters <walters (a] verbum.org> 3221 3222 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks 3223 to Ryan Lortie for the suggestion. 3224 3225 2005-08-24 John (J5) Palmieri <johnp (a] redhat.com> 3226 3227 * test/python: Add python regression test 3228 3229 * configure.in: Add test/python/Makefile 3230 3231 * test/Makefile.am: Add the python directory to SUBDIRS 3232 3233 2005-08-24 John (J5) Palmieri <johnp (a] redhat.com> 3234 3235 * Release 0.36.1 3236 3237 * python/_dbus.py: 3238 (Interface::connect_to_signal): propigate keywords for match on args 3239 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface 3240 3241 * python/proxies.py (ProxyObject::connect_to_signal): 3242 propigate keywords for match on args 3243 3244 * Makefile.am: point everything to pyexecdir since python borks 3245 on multilib 3246 3247 2005-08-23 John (J5) Palmieri <johnp (a] redhat.com> 3248 3249 * Release 0.36 3250 3251 2005-08-23 Colin Walters <walters (a] verbum.org> 3252 3253 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST. 3254 3255 2005-08-23 John (J5) Palmieri <johnp (a] redhat.com> 3256 3257 * python/dbus_glib_bindings.pyx: reorder imports and c definitions 3258 to fix some wranings. We now use dbus_bindings.DBusConnection instead 3259 of defining DBusConnection ourselves. 3260 3261 2005-08-18 John (J5) Palmieri <johnp (a] redhat.com> 3262 3263 * python/dbus.pth: New path file to fix up problems when installing 3264 c libraries to lib64 and python files to lib. 3265 3266 * python/Makefile.am: install dbus.pth in the correct spot 3267 3268 2005-08-17 John (J5) Palmieri <johnp (a] redhat.com> 3269 * ChangeLog: clean up my last entry a bit 3270 3271 * doc/introspect.xsl: New stylesheet for converting introspection data 3272 into browser renderable xhtml. Contributed by Lennart Poettering. 3273 3274 * doc/introspect.dtd: Fixups in the introspect format from Lennart 3275 Poettering. 3276 3277 * doc/dbus-tutorial.xml: 3278 - Add Colin Walter to the Authors section for authoring the GLib 3279 section 3280 - Add descriptions of the new signature and type functionality 3281 in the Python complex type mapping section 3282 - Add a sidenote on the new args matching functionality in 3283 the Python bindings 3284 - Fixed up some of the examples to use the gobject.MainLoop 3285 instead of gtk.main 3286 3287 * python/_dbus.py: 3288 (Bus::_create_args_dict): New. Converts a hash of arg matches 3289 to a more useable format 3290 (Bus::add_signal_receiver): add a **keywords parameter for catching 3291 arg match parameters 3292 (Bus::remove_signal_receiver): add a **keywords parameter for catching 3293 arg match parameters 3294 3295 * python/matchrules.py: 3296 (MatchTree::exec_matches): Check for arg matches 3297 (SignalMatchRule::add_args_match): New method 3298 (SignalMatchRule::execute): Added args_list parameter as an optimization 3299 so we don't have to marshal the args more than once 3300 (SignalMatchRule::match_args_from_list): New method that checks to see 3301 if the rule's arg matches match an argument list. Only arguments 3302 set in the rule are checked. 3303 (SignalMatchRule::match_args_from_rule): New method that checks to see 3304 if the rule's arg matches match another rule's. All args have to match 3305 in order for this method to return true. If either rule has more args 3306 then it is not a match. 3307 (SignalMatchRule::is_match): Add args match 3308 (SignalMatchRule::repr): Add args to the final output if they exist 3309 3310 2005-08-17 Ross Burton <ross (a] burtonini.com> 3311 3312 * glib/dbus-gproxy.c: 3313 (dbus_g_proxy_call_no_reply): unref the message once sent. 3314 (dbus_g_proxy_call): protect against NULL proxy. 3315 3316 2005-08-16 John (J5) Palmieri <johnp (a] redhat.com> 3317 3318 * python/__init__.py: Version updated (0, 43, 0) 3319 3320 * python/dbus_bindings.pyx: 3321 - Fixed type objects to have self passed into __init__ 3322 - Added the Variant type 3323 - Add the ability to specify types or signatures for Array, Variant 3324 and Dictionary 3325 (Connection::send_with_reply_handlers): return a PendingCall object 3326 (_pending_call_notification): handle the case when an error is returned 3327 without an error message in the body 3328 (MessageIter::get_boolean): return True or False instead of an integer 3329 (MessageIter::python_value_to_dbus_sig): add direct checking of types 3330 and add checks for objects with embeded signatures or types (Array, 3331 Variant and Dictionary) 3332 (MessageIter::append_byte): handle case when the value is a dbus.Byte 3333 (MessageIter::append_dict): handle embeded types or signatures 3334 (MessageIter::append_array): handle embeded types or signatures 3335 (MessageIter::append_variant): new method 3336 3337 * python/proxies.py: 3338 (DeferedMethod): New. Dummy executable object used when queuing calls 3339 blocking on introspection data 3340 (ProxyMethod::__call__): add the timeout keyword for specifying longer 3341 or shorter timeouts for method calls 3342 (ProxyObject): Add first pass at an introspection state machine 3343 (ProxyObject::__init__): Add introspect keyword for turing off an on 3344 introspection. 3345 (ProxyObject::_Introspect): Internal Introspect call that bypasses 3346 the usual mechanisms for sending messages. This is to avoid a deadlock 3347 where the Intospect call would be queued waiting for the Introspect 3348 call to finish ;-) 3349 (ProxyObject::_introspect_reply_handler): New. This method is called 3350 when introspection returns with no error 3351 (ProxyObject::_introspect_error_handler): New. This method is called 3352 when introspection encounters an error 3353 (ProxyObject::__getattr__): Code to handle different introspection 3354 states. Queue async calls or block blocking calls if we are 3355 introspecting. Pass through as normal if we are not or are done with 3356 introspecting. 3357 3358 * python/service.py: Import signal and method from decorators.py 3359 3360 * python/types.py: Add Variant type 3361 3362 2005-08-16 Colin Walters <walters (a] verbum.org> 3363 3364 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the 3365 DBusError message is NULL. 3366 3367 2005-08-09 Havoc Pennington <hp (a] redhat.com> 3368 3369 * dbus/dbus-errors.c: apply patch from Timo Teras to make a 3370 malloc'd copy of the name parameter 3371 3372 2005-08-09 Havoc Pennington <hp (a] redhat.com> 3373 3374 * dbus/dbus-message.c (dbus_message_set_reply_serial): print 3375 warning if the reply serial is set to 0 3376 3377 2005-08-04 Colin Walters <walters (a] verbum.org> 3378 3379 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init) 3380 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size) 3381 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach) 3382 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values) 3383 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value) 3384 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype) 3385 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take): 3386 * glib/dbus-gvalue.h (dbus_g_value_types_init) 3387 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant) 3388 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal): 3389 3390 Prefix name with _ to ensure they're not exported. All callers 3391 updated. 3392 3393 * glib/dbus-gvalue.c (typecode_to_gtype) 3394 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype) 3395 (signature_iter_to_g_type_dict) 3396 (signature_iter_to_g_type_array) 3397 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature) 3398 (dbus_gtypes_from_arg_signature): 3399 Move to dbus-gsignature.c. 3400 3401 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call 3402 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init. 3403 (dbus_binding_tool_output_glib_client): Ditto. 3404 3405 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c 3406 and dbus-gsignature.h 3407 3408 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete 3409 unused variable. 3410 3411 2005-08-03 Colin Walters <walters (a] verbum.org> 3412 3413 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should 3414 catch any incompatible changes accidentally made. 3415 3416 2005-08-03 Havoc Pennington <hp (a] redhat.com> 3417 3418 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix 3419 typo, from Julien Puydt 3420 3421 * bus/connection.c (bus_connection_disconnected): we were always 3422 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig 3423 3424 2005-08-01 Colin Walters <walters (a] verbum.org> 3425 3426 Patch from Joe Markus Clarke: 3427 3428 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix 3429 use-after-free. 3430 3431 2005-08-01 Colin Walters <walters (a] verbum.org> 3432 3433 Patch from Joe Markus Clarke: 3434 3435 * tools/dbus-send.c (main): 3436 3437 Don't use C99 style initializers (bug #3933). 3438 3439 2005-08-01 Colin Walters <walters (a] verbum.org> 3440 3441 Patch from Joe Markus Clarke: 3442 3443 * glib/dbus-gvalue.c (dbus_g_value_types_init): 3444 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 3445 * glib/dbus-gobject.c (write_interface): 3446 3447 Don't use C99 style initializers (bug #3933). 3448 3449 2005-07-31 Havoc Pennington <hp (a] redhat.com> 3450 3451 * tools/dbus-viewer.c (load_child_nodes): fix invocation of 3452 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920 3453 3454 2005-07-30 Havoc Pennington <hp (a] redhat.com> 3455 3456 * fix a bunch of Doxygen warnings and mistakes 3457 3458 2005-07-30 Havoc Pennington <hp (a] redhat.com> 3459 3460 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef 3461 DBUS_BUILD_TESTS since it's now used in production code 3462 3463 2005-07-29 Havoc Pennington <hp (a] redhat.com> 3464 3465 * test/glib/test-profile.c (write_junk): initialize the junk 3466 buffer so valgrind doesn't have a breakdown 3467 3468 2005-07-29 Havoc Pennington <hp (a] redhat.com> 3469 3470 * bus/signals.c (bus_signals_test): add match_rule_equal() tests 3471 (match_rule_matches): remove unused arg 3472 (test_matching): add tests for match_rule_matches() 3473 3474 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to 3475 do arg0='foo' arg5='bar' in the match rules 3476 (match_rule_matches): don't match if the arg0='foo' doesn't match. 3477 3478 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this 3479 3480 2005-07-29 Ross Burton <ross (a] openedhand.com> 3481 3482 * dbus/dbus-connection.c: 3483 Don't create a DBusCondVar which is never used. 3484 3485 2005-07-27 Ross Burton <ross (a] openedhand.com> 3486 3487 * dbus/dbus-message.c: 3488 Reduce the size of the maximum cached message to 10K. 3489 3490 2005-07-25 Ross Burton <ross (a] openedhand.com> 3491 3492 * glib/dbus-gproxy.c: 3493 Remove matches when all proxies are unregistered. 3494 3495 2005-07-24 Colin Walters <walters (a] verbum.org> 3496 3497 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require 3498 typedata; recursive arrays won't have it. 3499 3500 * test/glib/test-dbus-glib.c: 3501 * test/glib/test-service-glib.c: 3502 * test/glib/test-service-glib.xml: Add recursive arrays tests. 3503 3504 2005-07-20 John (J5) Palmieir <johnp (a] redhat.com> 3505 3506 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py. 3507 proxies.py, service.py: Cleanup of code after running it through the 3508 pyflakes code checker mostly dealing with undefined names. 3509 (Bug #3828, Patch from Anthony Baxter <anthony (a] interlink.com.au>) 3510 3511 2005-07-17 John (J5) Palmieri <johnp (a] redhat.com> 3512 3513 * NEWS: Update to 0.35.2 3514 3515 2005-07-17 John (J5) Palmieri <johnp (a] redhat.com> 3516 3517 * python/_dbus.py: Remove import of the dbus.services 3518 module as it no longer exists (patch from Dimitur Kirov) 3519 3520 * python/service.py (Object::__init__): Fixed typo 3521 s/name/bus_name (patch from Dimitur Kirov) 3522 3523 * python/examples/example-signal-emitter.py: import dbus.glib 3524 to get the main loop and use glib mainloop instead of gtk so 3525 X doesn't have to be running. 3526 3527 * python/examples/example-signal-recipient.py: import dbus.glib 3528 to get the main loop and use glib mainloop instead of gtk so 3529 X doesn't have to be running. Import the decorators module 3530 directly. 3531 3532 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck 3533 didn't pick up on but are needed to build 3534 3535 * configure.in: upped version to 0.35.2 3536 3537 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h: 3538 added Colin Walters' SELinux API rename patch from head 3539 s/unix sercurity context/selinux security context/ 3540 3541 2005-07-16 John (J5) Palmieri <johnp (a] redhat.com> 3542 3543 * python/Makefile.am: dbus_binding.pxd.in should be included 3544 in EXTRA_DIST not dbus_binding.pxd 3545 fix up $(srcdir) hopefully for the last time 3546 3547 * NEWS: Update to 0.35.1 3548 3549 2005-07-16 Colin Walters <walters (a] verbum.org> 3550 3551 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed 3552 from bus_driver_handle_get_connection_unix_security_context. Update for 3553 error usage. 3554 (message_handlers): Update for renames. 3555 3556 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on 3557 _dbus_string_init failure correctly. 3558 (bus_selinux_append_context): Convert SID to context. Append it 3559 as a byte array. 3560 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init 3561 hasn't been called. 3562 3563 * bus/selinux.h: Update prototype. 3564 3565 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed 3566 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN. 3567 3568 2005-07-15 Colin Walters <walters (a] verbum.org> 3569 3570 * doc/TODO: Add note about convenience wrappers. 3571 3572 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3573 3574 * NEWS: Update to 0.35 3575 3576 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3577 3578 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST 3579 so distcheck doesn't fail 3580 3581 * glib/examples/Makefile.am: Add example-service.xml and 3582 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail 3583 3584 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and 3585 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail 3586 3587 * python/Makefile.am: Preprend $(srcdir)/ to source files so the 3588 compiler looks in the right places during distcheck 3589 3590 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3591 3592 * glib/example/Makefile.am: Fix a typo which cause make distcheck 3593 to fail 3594 3595 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3596 3597 * python/examples/example-service.py, 3598 python/examples/example-signal-emitter.py: Fixed up examples 3599 for API changes 3600 3601 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3602 3603 * python/__init__.py: Upped to version (0,42,0) because of 3604 the API change 3605 3606 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3607 3608 * ChangeLog: fix date in last entry 3609 3610 * configure.in, bus/system.conf.in: add the ability to configure 3611 the system bus user at compiletime with the --with-dbus-user flag 3612 (patch from Kristof Vansant) 3613 3614 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3615 3616 * bus/dispatch.c, test/test-service.c: Add testcase 3617 for sending messages to oneself (TODO item). 3618 3619 * python/service.py (class Object): Swap ordering of bus_name 3620 and object_path parameters to better support inheritance. 3621 3622 * doc/dbus-tutorial.xml: change Python docs to reflect change 3623 in parameter ordering and fix the inheritance section. 3624 3625 * doc/TODO: remove sending message to oneself TODO item 3626 3627 2005-07-15 Ross Burton <ross (a] openedhand.com> 3628 3629 * glib/dbus-gproxy.c: 3630 Fix a leak when calling methods via the proxy. 3631 3632 2005-07-15 Colin Walters <walters (a] verbum.org> 3633 3634 * bus/selinux.c (bus_selinux_append_context): Wrap in 3635 HAVE_SELINUX. 3636 3637 2005-07-14 John (J5) Palmieri <johnp (a] redhat.com> 3638 3639 * python/_dbus.py (Bus::remove_signal_receiver): 3640 don't add a callback to the match if none has been passed in 3641 3642 * python/matchrules.py (SignalMatchTree::remove): if the rule 3643 being matched does not have a callback treat it as a wildcard 3644 fix matching logic 3645 3646 * doc/dbus-tutorial.xml: Add Python tutorial 3647 3648 2005-07-14 Colin Walters <walters (a] verbum.org> 3649 3650 * bus/driver.c 3651 (bus_driver_handle_get_connection_unix_security_context): New function. 3652 (message_handlers): Add. 3653 3654 * bus/selinux.c (bus_selinux_append_context): New function; appends 3655 security context to message. 3656 3657 * bus/selinux.h: Prototype. 3658 3659 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New. 3660 3661 2005-07-14 John (J5) Palmieri <johnp (a] redhat.com> 3662 3663 * bus/activation.c: clean up all tabs to be 8 spaces 3664 (bus_activation_activate_service): make sure we clean up 3665 if activation fails 3666 3667 * bus/dispatch.c: clean up all tabs to be 8 spaces 3668 (check_shell_fail_service_auto_start): New function 3669 tests to make sure we get fail properly when trying to auto start a service 3670 with a faulty command line 3671 (check_shell_service_success_auto_start): New function tests to make sure 3672 auto started services get the arguments on the command line 3673 3674 * test/test-shell-service.c: Added service for testing auto-starting with 3675 command line arguments 3676 3677 * test/data/valid-service-files/debug-shell-echo-fail.service.in, 3678 test/data/valid-service-files/debug-shell-echo-success.service.in: 3679 Added service files for testing auto-starting with command line arguments 3680 3681 * */.cvsignore: added a bunch of generated files to various .cvsignore files 3682 3683 2005-07-14 Rodrigo Moya <rodrigo (a] novell.com> 3684 3685 * dbus/dbus-shell.[ch]: copy/pasted code from GLib. 3686 3687 * dbus/Makefile.am: added new files to build. 3688 3689 * bus/activation.c (bus_activation_activate_service): support 3690 activation commands with parameters. 3691 3692 * test/shell-test.c: added test program for the shell parsing 3693 code. 3694 3695 2005-07-13 David Zeuthen <davidz (a] redhat.com> 3696 3697 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and 3698 64 bit signed and unsigned parameters 3699 3700 2005-07-13 John (J5) Palmieri <johnp (a] redhat.com> 3701 3702 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd 3703 3704 * python/service.py (class Name): renamed BusName to make it clearer 3705 what the object is for (a name on the bus) 3706 3707 * python/examples/example-service.py, 3708 python/examples/example-signal-emitter.py: change the Name object to 3709 BusName 3710 3711 2005-07-12 Colin Walters <walters (a] verbum.org> 3712 3713 Patch from Jim Gettys <Jim.Gettys (a] hp.com>. 3714 3715 * tools/dbus-launch.c: Include sys/select.h. 3716 3717 2005-07-12 John (J5) Palmieri <johnp (a] redhat.com> 3718 * python/dbus_bindings.pyx.in: removed 3719 3720 * python/dbus_bindings.pyx: Added. 3721 - Fixed some memleaks (patch from 3722 Sean Meiners <sean.meiners (a] linspireinc.com>) 3723 - Broke out the #include "dbus_h_wrapper.h" and put it in its 3724 own pxd file (Pyrex definition) 3725 - Broke out glib dependancies into its own pyx module 3726 3727 * python/dbus_bindings.pdx: Added. 3728 - Defines C class Connection for exporting to other modules 3729 3730 * python/dbus_glib_bindings.pyx: Added. 3731 - New module to handle lowlevel dbus-glib mainloop integration 3732 3733 * python/glib.py: Added. 3734 - Registers the glib mainloop when you import this module 3735 3736 * python/services.py: Removed (renamed to service.py) 3737 3738 * python/service.py: Added. 3739 - (class Server): renamed Name 3740 3741 * python/__init__.py: Bump ro version (0,41,0) 3742 -don't import the decorators or service module 3743 by default. These now reside in the dbus.service namespace 3744 3745 * python/_dbus.py (Bus::__init__): Add code run the main loop 3746 setup function on creation 3747 3748 * python/examples/example-service.py, 3749 python/examples/example-signal-emitter.py: update examples 3750 3751 * python/examples/gconf-proxy-service.py, 3752 python/examples/gconf-proxy-service2.py: TODO fix these up 3753 3754 * doc/TODO: Addition 3755 - Added a Python Bindings 1.0 section 3756 - added "Add match on args or match on details to match rules" 3757 3758 3759 2005-07-12 Colin Walters <walters (a] verbum.org> 3760 3761 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 3762 (statemachine-glue.h): 3763 * glib/examples/Makefile.am (example-service-glue.h) 3764 (example-signal-emitter-glue.h): 3765 * glib/Makefile.am (dbus-glib-error-switch.h): 3766 Add libtool --mode=execute so we use the built library instead 3767 of any installed one. 3768 3769 2005-07-11 Colin Walters <walters (a] verbum.org> 3770 3771 * glib/dbus-gvalue.c (struct _DBusGValue): Delete. 3772 (dbus_g_value_types_init): Remove assertion. 3773 (dbus_g_value_get_g_type, dbus_g_value_open) 3774 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature) 3775 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented 3776 functions related to DBusGValue. Now we marshal/demarshal 3777 structures as GValueArray. 3778 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for 3779 structures. 3780 (signature_iter_to_g_type_array): Don't call 3781 signature_iter_to_g_type_struct. 3782 (signature_iter_to_g_type_struct): Delete. 3783 (dbus_gvalue_to_signature): Delete. 3784 (dbus_gvalue_to_signature): New function with same name as other 3785 one; we can convert structures to signatures. 3786 (demarshal_valuearray): New function. 3787 (get_type_demarshaller): Use it. 3788 (demarshal_recurse): Delete. 3789 (marshal_proxy): New function. 3790 (marshal_map): Warn if we can't determine signature from type. 3791 (marshal_collection_ptrarray): Ditto. 3792 (marshal_collection_array): Ditto. 3793 (get_type_marshaller): Use marshal_valuearray. 3794 (marshal_recurse): Delete. 3795 (_dbus_gvalue_test): Add some tests. 3796 3797 * dbus/dbus-glib.h (struct _DBusGValueIterator): 3798 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE) 3799 (dbus_g_value_open, dbus_g_value_iterator_get_value) 3800 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) 3801 (dbus_g_value_free): Remove prototypes. 3802 3803 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle 3804 G_TYPE_VALUE_ARRAY. 3805 3806 * glib/examples/example-service.c: 3807 * glib/examples/example-client.c: Implement GetTuple. 3808 3809 * test/glib/test-dbus-glib.c: 3810 * test/glib/test-service-glib.c: 3811 * test/glib/test-service-glib.xml: Add structure tests. 3812 3813 2005-07-10 Colin Walters <walters (a] verbum.org> 3814 3815 * doc/TODO: Knock off some GLib items with this patch. 3816 3817 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 3818 (_dbus_gvalue_signals_error): New functions. 3819 3820 * glib/dbus-gvalue-utils.h: Prototype them. 3821 3822 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals 3823 and change to not output const/retval flags for input args. All 3824 callers updated. 3825 (invoke_object_method): Refactor to handle return values. Add 3826 some more comments in various places. Remove debug g_print. 3827 3828 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New. 3829 3830 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name): 3831 Handle G_TYPE_NONE. 3832 (compute_gsignature): New function; refactored from code from 3833 compute_marshaller and compute_marshaller_name. Enhance to 3834 handle return values and async ops more cleanly. Update for 3835 async ops returning NONE instead of BOOLEAN. 3836 (compute_marshaller, compute_marshaller_name): Call compute_gsignature 3837 and output appropriate string. 3838 (generate_glue): Handle return value annotation. Also don't dump 3839 constness flag for input arguments. 3840 3841 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains 3842 files shared between installed library and utilities. 3843 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS. 3844 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the 3845 binding tool can access gtype utility functions. 3846 3847 * test/glib/test-service-glib.c: 3848 * test/glib/test-service-glib.xml: 3849 * test/glib/test-dbus-glib.c: Add some tests for return values. 3850 3851 2005-07-09 Colin Walters <walters (a] verbum.org> 3852 3853 * glib/dbus-gparser.c (parse_annotation): Add annotations to 3854 argument if available, not method. 3855 3856 * glib/dbus-gobject.c (arg_iterate): More verbose warnings. 3857 (invoke_object_method): First, remove some redundant 3858 GValues (object_value, error_value) in favor of working on 3859 array directly. Second, rework constness to be less buggy. 3860 Now we iterate directly over the argument metadata instead 3861 of parallel iterating over output signature and metadata. 3862 3863 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error. 3864 3865 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const 3866 annotation on input args. 3867 3868 2005-07-09 Colin Walters <walters (a] verbum.org> 3869 3870 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST): 3871 Define. 3872 3873 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const 3874 annotation. 3875 3876 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too. 3877 (method_dir_signature_from_object_info): Handle arg_iterate change. 3878 (write_interface): Ditto. 3879 (lookup_object_info): Don't barf if format_version is > 0. 3880 (invoke_object_method): Handle arg constness. 3881 3882 * glib/dbus-gidl.c (struct ArgInfo): Add annotations. 3883 (arg_info_new): Create. 3884 (arg_info_unref): Destroy. 3885 (arg_info_get_annotations, arg_info_get_annotation) 3886 (arg_info_add_annotation): New functions. 3887 3888 * glib/dbus-gidl.h: Prototype them. 3889 3890 * glib/dbus-gparser.c (parse_annotation): Allow annotations in 3891 args, disallow them in properties. 3892 (parse_annotation): Handle arg annotations. 3893 3894 * test/glib/test-service-glib.xml: 3895 * test/glib/test-service-glib.c: Update to make some methods 3896 const. 3897 3898 2005-07-08 Colin Walters <walters (a] verbum.org> 3899 3900 * test/glib/test-service-glib.xml: 3901 * test/glib/test-service-glib.c: 3902 * test/glib/test-dbus-glib.c: Test a{sv}. 3903 3904 * glib/examples/statemachine/statemachine.c: 3905 * glib/examples/statemachine/statemachine-server.c: 3906 * glib/examples/statemachine/statemachine-client.c: Fix some bugs, 3907 add progress bar, etc. 3908 3909 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not 3910 needed anymore due to generic array/map marshalling. 3911 (dbus_g_value_types_init): Don't register basic arrays or the 3912 string/string hash. 3913 (dbus_gtype_from_signature_iter): Don't try to recurse into 3914 variants. 3915 (dbus_gtype_to_signature): Check collection/map before type 3916 metadata. 3917 (demarshal_garray_basic): Renamed to demarshal_collection_array. 3918 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new 3919 generic map creation/append functions instead of hash table 3920 specifically. 3921 (get_type_demarshaller): Handle maps. 3922 (demarshal_collection): Dispatch on collection type to either 3923 demarshal_collection_ptrarray or demarshal_collection_array. 3924 (get_type_marshaller): Handle maps. 3925 (marshal_collection): Dispatch collection type to either 3926 marshal_collection_ptrarray or marshal_collection_array. 3927 (_dbus_gvalue_test): New test. 3928 3929 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function. 3930 (hash_free_from_gtype): Use it to free GValues. 3931 (hashtable_append): New function. 3932 (ptrarray_append): Fix prototype. 3933 (slist_append): Ditto. 3934 (_dbus_gvalue_utils_test): Extend tests. 3935 3936 * glib/dbus-gtype-specialized.c 3937 (dbus_g_type_specialized_init_append): Renamed from 3938 dbus_g_type_specialized_collection_init_append. Remove const from 3939 value, since we steal it. 3940 (dbus_g_type_specialized_map_append): New function. 3941 3942 * glib/dbus-gtype-specialized.h: Update prototypes. 3943 Add DBusGTypeSpecializedMapAppendFunc. 3944 3945 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run 3946 _dbus_gvalue_test. 3947 3948 * glib/dbus-gtest.h: Prototype it. 3949 3950 2005-07-08 Ross Burton <ross (a] openedhand.com> 3951 3952 * dbus/dbus-glib.h: 3953 Add DBysGAsyncData for the async bindings. 3954 3955 * glib/dbus-binding-tool-glib.c: 3956 Re-enable the async bindings. 3957 3958 * test/glib/test-dbus-glib.c: 3959 Add a test for the generated async bindings. 3960 3961 2005-07-08 Colin Walters <walters (a] verbum.org> 3962 3963 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a 3964 connection concept. 3965 3966 2005-07-08 Colin Walters <walters (a] verbum.org> 3967 3968 * tools/Makefile.am: Kill of print-introspect in favor of using 3969 dbus-send --print-reply=literal. 3970 3971 * test/glib/test-service-glib.xml: 3972 * test/glib/test-service-glib.c (my_object_get_objs): New test 3973 for "ao". 3974 3975 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data. 3976 (main): Test GetObjs. 3977 3978 * glib/examples/statemachine/Makefile.am: 3979 * glib/examples/statemachine/sm-marshal.list: 3980 * glib/examples/statemachine/statemachine-client.c: 3981 * glib/examples/statemachine/statemachine-server.c: 3982 * glib/examples/statemachine/statemachine-server.xml: 3983 * glib/examples/statemachine/statemachine.c: 3984 * glib/examples/statemachine/statemachine.h: 3985 * glib/examples/statemachine/statemachine.xml: 3986 3987 New example. 3988 3989 * glib/examples/example-service.c (main): Move invocation 3990 of dbus_g_object_type_install_info earlier, to emphasize it 3991 should only be done once. 3992 3993 * glib/examples/example-signal-emitter.c (main): Ditto. 3994 3995 * glib/examples/Makefile.am (SUBDIRS): Include statemachine. 3996 3997 * glib/dbus-gvalue.h (dbus_gtype_to_signature) 3998 (dbus_gvalue_marshal): Update prototypes. 3999 4000 * glib/dbus-gvalue.c: Update all marshalling functions to take 4001 const GValue instead of GValue. 4002 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed 4003 types. 4004 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature 4005 change. 4006 (dbus_gtype_to_signature): Handle generic collecitons and maps. 4007 Return a newly-allocated string. 4008 (demarshal_proxy, demarshal_object_path, demarshal_object) 4009 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if 4010 we get the wrong types from message. 4011 (get_type_demarshaller): New function, extracted from 4012 dbus_gvalue_demarshal. 4013 (demarshal_collection): New function, demarshals generic 4014 collection. 4015 (dbus_gvalue_demarshal): Just invoke result of 4016 get_type_demarshaller. Throw error if we don't have one. 4017 (marshal_garray_basic): Abort on OOM. 4018 (get_type_marshaller): New function, extracted from 4019 dbus_gvalue_marshal. 4020 (collection_marshal_iterator, marshal_collection): New functions; 4021 implements generic marshalling for an iteratable specialized 4022 collection. 4023 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller. 4024 4025 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle 4026 G_TYPE_STRING. 4027 (ptrarray_value_from_gvalue): Ditto. 4028 (ptrarray_append, ptrarray_free): New functions. 4029 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 4030 (slist_append, slist_end_append, slist_free): New functions. 4031 (dbus_g_type_specialized_builtins_init): Add append fuctions 4032 for GPtrArray and GSList. Register GSList. 4033 (test_specialized_hash, _dbus_gvalue_utils_test): New functions. 4034 4035 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext): 4036 New. 4037 (dbus_g_type_specialized_collection_init_append) 4038 (dbus_g_type_specialized_collection_append) 4039 (dbus_g_type_specialized_collection_end_append): Prototype. 4040 (DBusGTypeSpecializedCollectionVtable): Add append_func and 4041 end_append_func. 4042 4043 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 4044 (dbus_g_type_specialized_collection_append) 4045 (dbus_g_type_specialized_collection_end_append): New functions. 4046 (dbus_g_type_map_value_iterate): Take const GValue. 4047 (dbus_g_type_collection_value_iterate): Ditto. 4048 4049 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run 4050 _dbus_gvalue_utils_test. 4051 4052 * glib/dbus-gtest.h: Prototype it. 4053 4054 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid 4055 using uninitialized owner_list. 4056 (dbus_g_proxy_begin_call_internal): Move return_if_fail to 4057 public API. 4058 (dbus_g_proxy_end_call_internal): Update to use error set 4059 from dbus_gvalue_demarshal instead of setting it here. 4060 (dbus_g_proxy_begin_call): Move return_if_fail here. 4061 4062 * glib/dbus-gobject.c (write_interface): Update for 4063 dbus_gtype_to_signature returning new string. 4064 4065 * configure.in: Add glib/examples/statemachine. 4066 4067 2005-07-08 Joe Shaw <joeshaw (a] novell.com> 4068 4069 * configure.in: Add a configure option, --with-console-auth-dir 4070 4071 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the 4072 new setting. Patch from Kay Sievers. 4073 4074 2005-07-06 Colin Walters <walters (a] verbum.org> 4075 4076 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify) 4077 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type) 4078 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete. 4079 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): 4080 Delete in favor of dbus_g_proxy_begin_call and 4081 dbus_g_proxy_cancel_call. 4082 (DBusGProxyCall, DBusGProxyCallNotify): New. 4083 (dbus_g_proxy_begin_call): Change prototype to take callback, user 4084 data, and destroy function. This replaces 4085 dbus_g_pending_call_set_notify. 4086 (dbus_g_proxy_cancel_call): Prototype. 4087 (DBusGAsyncData): Delete, shouldn't be needed anymore. 4088 4089 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and 4090 pending_calls map. 4091 (struct _DBusGProxyManager): Add bus_proxy member, which is an 4092 internal proxy for calls to the bus. Remove 4093 pending_nameowner_calls, now the internal proxy keeps track. 4094 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to 4095 pending_nameowner_calls. 4096 (got_name_owner_cb): Update prototype, and use 4097 dbus_g_proxy_end_call. 4098 (got_name_owner_cb): Remove reference to pending_nameowner_calls. 4099 (dbus_g_proxy_manager_register): Delete directly libdbus code in 4100 favor of using internal proxy. 4101 (dbus_g_proxy_manager_unregister): Update to use 4102 dbus_g_proxy_cancel_call for any pending GetNameOwner call. 4103 (dbus_g_proxy_init): Initialize pending calls map. 4104 (dbus_g_proxy_constructor): New. 4105 (dbus_g_proxy_class_init): Add get/set property functions, 4106 constructor, and add NAME, PATH, and INTERFACE properties. 4107 (cancel_pending_call): New function. 4108 (dbus_g_proxy_dispose): Iterate over any outstanding calls and 4109 cancel them. 4110 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New. 4111 (GPendingNotifyClosure): New structure. 4112 (d_pending_call_notify, d_pending_call_free): Moved here from 4113 dbus-glib.c. 4114 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function 4115 ordering. 4116 (manager_begin_bus_call): New internal function for talking to 4117 internal bus proxy. 4118 (dbus_g_proxy_new): Construct object using GObjet properties. 4119 (dbus_g_proxy_begin_call_internal): Update to take user data, etc. 4120 Create closure of same, and insert call into map of pending calls. 4121 (dbus_g_proxy_end_call_internal): Take call id instead of pending 4122 call. Look up pending call in current set. Remove it when we've 4123 completed. 4124 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete. 4125 (dbus_g_proxy_begin_call): Change API to take callback, user data, 4126 and destroy function directly. 4127 (dbus_g_proxy_end_call): Update to take DBusGProxyCall. 4128 (dbus_g_proxy_call): Invoke with NULL callback. 4129 (dbus_g_proxy_cancel_call): New function, replaces 4130 dbus_g_pending_call_cancel. 4131 4132 * glib/dbus-gparser.c (validate_signature): Fix call to 4133 dbus_set_g_error. 4134 4135 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark): 4136 New quark for attaching metadata to GType. 4137 (info_hash): Delete. 4138 (lookup_object_info): Look up using quark. 4139 (dbus_g_object_type_install_info): Check that a type is classed, 4140 not that it's an object. Also just install type data using quark 4141 instead of using global hash. 4142 4143 * glib/dbus-glib.c (dbus_g_pending_call_ref) 4144 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type) 4145 (GPendingNotifyClosure): Delete. 4146 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c. 4147 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete. 4148 4149 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async 4150 client method generation until we can fix it... 4151 4152 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call. 4153 (load_from_service_thread_func): Ditto. 4154 4155 * tools/dbus-names-model.c (struct NamesModel): Hold 4156 DBusGProxyCall. 4157 (have_names_notify): Update prototype, use 4158 dbus_g_proxy_cancel_call. 4159 (names_model_reload): Update for new dbus_g_proxy_begin_call API. 4160 4161 * tools/dbus-monitor.c (filter_func): Update for print_message 4162 API change. 4163 4164 * test/glib/test-dbus-glib.c: Add more tests for async 4165 invocations. Update many begin_call/end_call pairs to just use 4166 dbus_g_proxy_call. 4167 4168 * tools/dbus-send.c (main): Add --print-reply=literal mode. This 4169 allows us to dump print-introspect.c. 4170 4171 * tools/dbus-print-message.h (print_message): Add literal argument 4172 to print_message which is intended to allow printing arguments without 4173 metadata like "string=". 4174 4175 * tools/dbus-print-message.c (print_iter): Add literal argument. 4176 (print_message): Allow printing string messages literally. 4177 4178 2005-07-05 Colin Walters <walters (a] verbum.org> 4179 4180 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): 4181 Remove value refcount leak, original patch from Jorn Baayen 4182 <jorn (a] openedhand.com>. Also remove useless extra value in favor 4183 of prepending to value array directly. 4184 4185 2005-07-02 Colin Walters <walters (a] verbum.org> 4186 4187 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test. 4188 4189 2005-07-01 Colin Walters <walters (a] verbum.org> 4190 4191 Patch from Jonathan Matthew <jonathan (a] kaolin.hn.org> 4192 4193 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type. 4194 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE, 4195 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32, 4196 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE. 4197 4198 2005-06-30 Colin Walters <walters (a] verbum.org> 4199 4200 * test/glib/test-dbus-glib.c: 4201 * test/glib/test-service-glib.c: 4202 * test/glib/test-service-glib.xml: Update tests for new error 4203 setting bits, also add async tests (patch from Ross Burton). 4204 4205 * test/glib/Makefile.am (test_service_glib_LDADD): Add 4206 DBUS_GLIB_THREADS_LIBS. 4207 4208 * glib/dbus-gproxy.c (get_name_owner) 4209 (dbus_g_pending_call_end_valist): Ditto. 4210 4211 * glib/dbus-gobject.c (error_metadata): New mapping from GError 4212 domain (GQuark) to DBusGErrorInfo. 4213 (gerror_domaincode_to_dbus_error_name): Attempt to look up error 4214 quark in error_metadata. Take message interface as default 4215 error message interface. 4216 (gerror_to_dbus_error_message): Pass message interface. 4217 (dbus_set_g_error): Resurrected. 4218 (dbus_g_error_info_free): New function. 4219 (dbus_g_object_type_install_info): Use g_type_class_ref instead 4220 of _peek to actually create the object class if it hasn't been 4221 created yet. 4222 (dbus_g_error_domain_register): New function. 4223 4224 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error. 4225 4226 * glib/dbus-gparser.c (validate_signature): Ditto. 4227 4228 * dbus/dbus-glib.h (dbus_g_error_set): Delete. 4229 (dbus_g_error_domain_register): Prototype. 4230 4231 * glib/dbus-glib.c (dbus_g_error_set): Delete. 4232 Update tests. 4233 4234 2005-06-29 Colin Walters <walters (a] verbum.org> 4235 4236 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add 4237 DBUS_TYPE_G_OBJECT_PATH. 4238 4239 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers 4240 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should 4241 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH. 4242 (dbus_g_object_path_get_g_type): New function. 4243 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH 4244 to DBUS_TYPE_G_OBJECT_PATH by default. 4245 (demarshal_proxy): Remove unused name variable. 4246 (demarshal_object_path, marshal_object_path): New functions. 4247 (demarshal_proxy_array, marshal_proxy_array): Delete. 4248 4249 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map 4250 DBUS_TYPE_G_OBJECT_PATH to char *. 4251 (dbus_g_type_get_lookup_function): Map builtin 4252 DBUS_TYPE_G_OBJECT_PATH. 4253 4254 * test/glib/test-dbus-glib.c 4255 * test/glib/test-service-glib.c (my_object_objpath): 4256 Adapt tests to new object path marshalling. 4257 4258 2005-06-29 John (J5) Palmieri <johnp (a] redhat.com> 4259 4260 * configure.in: force check for Python >= 2.4 4261 4262 2005-06-29 Colin Walters <walters (a] verbum.org> 4263 4264 Patch from Ross Burton <ross (a] openedhand.com> 4265 4266 * glib/dbus-gobject.c (invoke_object_method): Unset object 4267 value in all cases, not only in async case. 4268 4269 2005-06-29 Colin Walters <walters (a] verbum.org> 4270 4271 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member 4272 name_call for keeping track of any outgoing GetNameOwner call. 4273 Also add for_owner and associated. 4274 (struct _DBusGProxyManager): Add owner_names, which is hash table 4275 that maps a base name to a list of names it owns (that we're 4276 interested in). Add pending_nameowner_calls which is a list of 4277 all outstanding GetNameOwner; avoids us having to iterate over 4278 every proxy. Add unassociated_proxies which keeps track of name 4279 proxies with no associated name owner. 4280 (dbus_g_proxy_manager_unref): Destroy owner_names. 4281 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of 4282 name refcounts. 4283 (find_name_in_info, name_owner_foreach) 4284 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo) 4285 (dbus_g_proxy_manager_monitor_name_owner) 4286 (dbus_g_proxy_manager_unmonitor_name_owner) 4287 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner): 4288 New functions; they manipulate the owner_names mapping. 4289 (got_name_owner_cb): New function. 4290 (get_name_owner): New function, extracted from 4291 dbus_g_proxy_new_for_name_owner. 4292 (dbus_g_proxy_manager_register): For now we need to keep track of 4293 all NameOwnerChanged. Also if the proxy is for a name, if we 4294 don't already know the name owner, queue a new GetNameOwner 4295 request and add it to our list of unassociated proxies. Otherwise 4296 inc the refcount. 4297 (dbus_g_proxy_manager_unregister): If this proxy is for a name, 4298 cancel any pending GetNameOwner call, etc. 4299 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use 4300 the owner_names mapping to look up the current names for the 4301 signal source, and dispatch to any proxies for that name. 4302 (dbus_g_proxy_new): Initialize new members. 4303 (dbus_g_proxy_new_for_name): Delete unused proxy variable. 4304 (dbus_g_proxy_new_for_name_owner): Use get_name_owner. 4305 (dbus_g_pending_call_end_valist): New function, extracted from 4306 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy 4307 but want to use the GLib infrastructure. Also note how many 4308 arguments in reply were over. 4309 (dbus_g_pending_call_end): New function, just call 4310 dbus_g_pending_call_end_valist. 4311 (dbus_g_proxy_end_call_internal): Just call 4312 dbus_g_pending_call_end_valist. 4313 4314 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup 4315 of builtin marshaller for STRING_STRING_STRING. 4316 4317 * test/glib/test-dbus-glib.c: 4318 * test/glib/test-service-glib.c: 4319 * test/glib/test-service-glib.xml: 4320 Extend tests to cover name proxies, destruction of owner proxies, 4321 etc. 4322 4323 * glib/examples/example-signal-recipient.c 4324 (dbus_g_proxy_new_for_name_owner): Create a name proxy. 4325 4326 * tools/dbus-send.c (main): Print D-BUS error name in addition 4327 to message. 4328 4329 2005-06-28 John (J5) Palmieri <johnp (a] redhat.com> 4330 4331 * python/dbus_bindings.pyx.in (cunregister_function_handler, 4332 cmessage_function_handler): Patch from 4333 Anthony Baxter <anthony (a] interlink.com.au> fixes threading problems 4334 by using the Py_GILState_Ensure/Release to synchronize with the 4335 python runtime. 4336 4337 2005-06-28 Ray Strode <rstrode (a] redhat.com> 4338 4339 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill 4340 babysitter helper process on last unref, bug #2813. 4341 4342 2005-06-27 Colin Walters <walters (a] verbum.org> 4343 4344 * test/glib/test-dbus-glib.c: 4345 * test/glib/test-service-glib.c: 4346 * test/glib/test-service-glib.xml: 4347 Test hash table signal emitting. 4348 4349 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert 4350 types to their fundamental basis types, since this is what 4351 marshallers operate on. Also add an entry for VOID__BOXED. 4352 (dbus_g_object_register_marshaller_array): Convert to fundamental. 4353 4354 2005-06-26 Havoc Pennington <hp (a] redhat.com> 4355 4356 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix 4357 from Don Park 4358 4359 2005-06-26 Colin Walters <walters (a] verbum.org> 4360 4361 * glib/dbus-glib.c (dbus_set_g_error): Delete. 4362 (dbus_g_error_set): New public function from its ashes; used by 4363 both service-side method implementation and GLib bindings 4364 internals. 4365 (dbus_g_error_has_name, dbus_g_error_get_name): New function. 4366 (_dbus_glib_test): Add some tests. 4367 4368 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. 4369 4370 * test/glib/test-service-glib.c (my_object_throw_error): Use 4371 dbus_g_error_set. 4372 4373 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle 4374 errors thrown by dbus_g_error_set. 4375 4376 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. 4377 4378 * glib/dbus-gparser.c (validate_signature): Ditto. 4379 4380 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 4381 (dbus_g_proxy_end_call_internal): Ditto. 4382 4383 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which 4384 converts DBUS_ERROR_x to DBUS_GERROR_x. 4385 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. 4386 4387 * doc/TODO: Remove error TODO. 4388 4389 * doc/dbus-tutorial.xml: Update with documentation about error 4390 handling. 4391 4392 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make 4393 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to 4394 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION. 4395 4396 2005-06-22 Colin Walters <walters (a] verbum.org> 4397 4398 Patch from Ross Burton <ross (a] openedhand.com> 4399 4400 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig. 4401 4402 2005-06-20 Colin Walters <walters (a] verbum.org> 4403 4404 * configure.in: Add glib/examples. 4405 4406 * glib/Makefile.am: Add examples/ 4407 4408 * glib/examples/.cvsignore 4409 * glib/examples/Makefile.am 4410 * glib/examples/example-client.c 4411 * glib/examples/example-service.c 4412 * glib/examples/example-service.xml 4413 * glib/examples/example-signal-emitter.c 4414 * glib/examples/example-signal-emitter.xml 4415 * glib/examples/example-signal-recipient.c: 4416 New files; GLib binding examples, ported from 4417 python/examples. 4418 4419 2005-06-20 Colin Walters <walters (a] verbum.org> 4420 4421 * dbus/dbus-glib.h: 4422 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to 4423 dbus_g_proxy_call. 4424 4425 * glib/dbus-binding-tool-glib.c: 4426 * doc/dbus-tutorial.xml: 4427 * test/glib/test-dbus-glib.c: Update for rename. 4428 4429 2005-06-20 Colin Walters <walters (a] verbum.org> 4430 4431 Patch suggested by Ross Burton <ross (a] openedhand.com> 4432 4433 * glib/dbus-gobject.c (export_signals): Free signal name. 4434 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug 4435 memory leak. Add a bit of documentation. 4436 (dbus_g_method_return_error): Free context, and note we do 4437 so. 4438 4439 2005-06-18 Murray Cumming <murrayc (a] murrayc.com> 4440 4441 * dbus/dbus-glib.h: 4442 * glib/dbus-gobject.c: 4443 * glib/dbus-gproxy.c: 4444 * glib/dbus-gvalue.c: Predeclare structs as 4445 typedef struct _Something Something instead of 4446 typedef struct Something Something, so we can 4447 redeclare the prototypes. Other GNOME libraries 4448 do this already. 4449 4450 2005-06-17 Colin Walters <walters (a] verbum.org> 4451 4452 * tools/dbus-names-model.c (have_names_notify): Fix call 4453 to dbus_g_proxy_end_call. 4454 4455 2005-06-17 Colin Walters <walters (a] verbum.org> 4456 4457 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't 4458 spew warnings if we get malformed remote signals. 4459 4460 * glib/dbus-gobject.c (propsig_iterate): New function. 4461 (lookup_object_info): New function, extracted from 4462 lookup_object_and_method. 4463 (introspect_properties, introspect_signals): Delete; these 4464 are merged into write_interface. 4465 (write_interface): Write out signals and properties here; 4466 dump the org.gtk.object stuff and use the interface given 4467 in the introspection data blob. Also fix up property XML. 4468 (lookup_values): New function. 4469 (introspect_interfaces): Gather a mapping from interface to a 4470 list of its methods, signals, and properties, then write out 4471 each interface. 4472 (lookup_object_and_method): Use lookup_object_info. 4473 (struct DBusGSignalClosure): Add interface. 4474 (dbus_g_signal_closure_new): Add interface. Don't dup signame; 4475 we can just use the constant data. 4476 (dbus_g_signal_closure_finalize): Don't free signal name. 4477 (signal_emitter_marshaller): Use interface from signal closure. 4478 (export_signals): Only export signals mentioned in introspection 4479 blob. 4480 (dbus_g_connection_register_g_object): Warn if we have no 4481 introspection data for an object. 4482 (funcsig_equal): Remove unused variable. 4483 (dbus_g_object_register_marshaller): Take varargs instead of 4484 list. 4485 (dbus_g_object_register_marshaller_array): New function, 4486 extracted from old dbus_g_object_register_marshaller. 4487 4488 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add 4489 signals and property data. 4490 (write_quoted_string): New function, extracted from generate_glue. 4491 (generate_glue): Write signals and properties to introspection 4492 blob. 4493 4494 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include 4495 exported_signals and exported_properties. 4496 (dbus_g_object_register_marshaller): Update prototype. 4497 (dbus_g_object_register_marshaller_array): Prototype. 4498 4499 * test/glib/test-dbus-glib.c: Extend testing to cover new signals. 4500 4501 * test/glib/test-service-glib.c: Add new test signals and method 4502 to emit them. 4503 4504 * test/glib/test-service-glib.xml: Add some test signals. 4505 4506 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c 4507 and my-object-marshal.h 4508 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add 4509 my-object-marshal.c. 4510 (my-object-marshal.c, my-object-marshal.h): Implement. 4511 4512 * test/glib/.cvsignore: Update. 4513 4514 * doc/TODO: Remove two GLib TODO items fixed by this 4515 patch. 4516 4517 2005-06-16 Colin Walters <walters (a] verbum.org> 4518 4519 * doc/TODO: Update for GLib bindings. 4520 4521 2005-06-16 Colin Walters <walters (a] verbum.org> 4522 4523 * glib/dbus-binding-tool-glib.c: 4524 * glib/dbus-gobject.c: 4525 * glib/dbus-gproxy.c: Add Nokia copyright; Patch 4526 from Ross Burton, for his GLib bindings work. 4527 4528 2005-06-16 Colin Walters <walters (a] verbum.org> 4529 4530 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params 4531 to iterate instead of walking to G_TYPE_INVALID. 4532 4533 Patch based on a patch from Ryan Gammon. 4534 4535 2005-06-16 Colin Walters <walters (a] verbum.org> 4536 4537 * bus/bus.c (bus_context_new): Set parser to NULL 4538 after we unref it (Patch from Chris Boscolo, #2174). 4539 4540 2005-06-16 Colin Walters <walters (a] verbum.org> 4541 4542 * python/dbus_bindings.pyx.in: Import size_t, 4543 __int64_t, __uint64_t, and __signed. 4544 4545 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte): 4546 Define cmsg struct, output it. 4547 (_dbus_read_credentials_unix_socket): 4548 Use cmsg struct. 4549 4550 Patch from Joe Markus Clarke for FreeBSD support. 4551 4552 2005-06-16 Colin Walters <walters (a] verbum.org> 4553 4554 * tools/dbus-send.c (append_array): Use strtok. 4555 (append_dict): New function. 4556 (type_from_name): New function, extracted from main. 4557 (main): Handle sending dicts. 4558 4559 * tools/dbus-print-message.c (print_iter): Print dict 4560 entries. 4561 4562 2005-06-16 Colin Walters <walters (a] verbum.org> 4563 4564 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string 4565 values as the empty string (#2948). 4566 4567 2005-06-16 Colin Walters <walters (a] verbum.org> 4568 4569 * dbus/Makefile.am: 4570 * mono/doc/Makefile.am: 4571 * test/glib/Makefile.am: 4572 4573 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477) 4574 4575 2005-06-16 Colin Walters <walters (a] verbum.org> 4576 4577 * dbus/dbus-marshal-header.c (_dbus_header_load): Set 4578 header byte order from expected byte order (Patch from Chris Wilson, #3475). 4579 4580 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 4581 Increment pointer after swapping fixed array. Add assertion 4582 for array length. 4583 4584 2005-06-15 Colin Walters <walters (a] verbum.org> 4585 4586 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket): 4587 Fix call to dbus_set_error. (Patch from Michael Banck, #3461) 4588 4589 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4590 4591 * NEWS: Update to 0.34 4592 4593 2005-06-15 David Zeuthen <davidz (a] redhat.com> 4594 4595 * configure.in (LT_CURRENT): Revert back to 1 as the library 4596 hasn't changed and we've certainly not committed to protocol 4597 stability yet. All this does is to break ABI. See commit note 4598 from hp (a] redhat.com 2005-05-05 for details. 4599 4600 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4601 4602 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 4603 (_dbus_connection_run_builtin_filters): New method 4604 (dbus_connection_dispatch): Run the builtin filters which in turn 4605 runs the peer filter which handles Ping messages. 4606 4607 * doc/TODO: 4608 - Ping isn't handled: This patch fixes it 4609 4610 - Add a test case for the Ping message: added TODO item 4611 4612 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4613 4614 * dbus/dbus-message.c: 4615 (dbus_message_has_path): New method 4616 (dbus_message_has_interface): New method 4617 (dbus_message_has_member): New method 4618 4619 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user): 4620 New method 4621 4622 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 4623 the keyring directory is private to the user 4624 4625 * doc/TODO: 4626 - The convenience functions in dbus-bus.h should perhaps have 4627 the signatures that they would have if they were autogenerated 4628 stubs. e.g. the acquire service function. We should also evaluate 4629 which of these functions to include, in light of the fact that 4630 GLib/Qt native stubs will probably also exist.: Punted 4631 4632 - add dbus_message_has_path(), maybe has_member/interface: 4633 fixed in this patch 4634 4635 - in dbus-keyring.c, enforce that the keyring dir is not 4636 world readable/writable: Fixed in this patch 4637 4638 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4639 4640 * dbus/dbus-marshal-validate.h: Added a new validation 4641 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 4642 out of memory errors when validating signitures 4643 4644 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR 4645 in places where we previously used DBUS_VALID and a FALSE return 4646 value to indicate OOM 4647 4648 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason): 4649 Use a stack to track the number of elements inside containers. The 4650 stack values are then used to validate that dict entries have only two 4651 elements within them. 4652 (validate_body_helper): check the reason for failure when validating 4653 varients 4654 4655 * dbus/dbus-message.c (load_message): use 4656 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 4657 DBUS_VALID and a FALSE return value to indicate OOM 4658 4659 * doc/TODO: remove "- validate dict entry number of fields" as this 4660 patch fixes it 4661 4662 2005-06-14 David Zeuthen <davidz (a] redhat.com> 4663 4664 * bus/bus.c (process_config_every_time): Drop existing conf-dir 4665 watches (if applicable) and add new watches 4666 4667 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY 4668 (main): Setup SIGIO signal handler if using D_NOTIFY 4669 4670 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs 4671 4672 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list 4673 (merge_included): Also merge conf_dirs list 4674 (bus_config_parser_unref): Clear conf_dirs list 4675 (include_dir): Add directory to conf_dirs list 4676 (bus_config_parser_get_conf_dirs): New function 4677 4678 * bus/dir-watch.[ch]: New files 4679 4680 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch] 4681 4682 * configure.in: Add checks for D_NOTIFY on Linux 4683 4684 2005-06-14 Colin Walters <walters (a] verbum.org> 4685 4686 * glib/dbus-binding-tool-glib.c: 4687 * glib/dbus-gobject.c: 4688 * glib/dbus-gvalue.c: Fix indentation and brace style. 4689 4690 2005-06-14 Ross Burton <ross (a] openedhand.com>. 4691 4692 * glib/dbus-glib.h: Make DBusGMethodInvocation 4693 a private structure. Rearrange prototypes a bit. 4694 4695 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add 4696 documentation for first_arg_type. 4697 4698 * glib/dbus-gobject.c: Move DBusGMethodInvocation 4699 here, add documentation. Move dbus_g_method_return 4700 and dbus_g_method_return_error into public API 4701 section. 4702 4703 2005-06-14 Colin Walters <walters (a] verbum.org> 4704 4705 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): 4706 Add missing return statements, noticed by Ross Burton. 4707 4708 2005-06-13 Ross Burton <ross (a] openedhand.com>. 4709 4710 * glib/dbus-gobject.c: Handle errors on message 4711 demarshalling by sending error message back. 4712 * glib/dbus-gvalue.c: Initialize return variables. 4713 4714 2005-06-13 Colin Walters <walters (a] verbum.org> 4715 4716 * glib/Makefile.am: Fix thinko in last patch. 4717 4718 2005-06-13 Colin Walters <walters (a] verbum.org> 4719 4720 * glib/Makefile.am: Move dbus-gtype-specialized.c 4721 and dbus-gtype-specialized.h into a _HEADERS variable, 4722 install them. 4723 4724 2005-06-12 Colin Walters <walters (a] verbum.org> 4725 4726 Async signals and various bugfixes and testing by 4727 Ross Burton <ross (a] openedhand.com>. 4728 4729 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete. 4730 (dbus_gvalue_genmarshal_name_from_type) 4731 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c. 4732 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature. 4733 (dbus_g_value_types_init, dbus_gtype_from_signature) 4734 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature) 4735 (dbus_gtypes_from_arg_signature): New function prototypes. 4736 (dbus_gvalue_demarshal): Take context and error arguments. 4737 (dbus_gvalue_demarshal_variant): New function. 4738 (dbus_gvalue_demarshal_message): New function. 4739 (dbus_gvalue_store): Delete. 4740 4741 * glib/dbus-gvalue.c: 4742 4743 File has been almost entirely rewritten; now we special-case 4744 more types such as DBUS_TYPE_SIGNATURE, handle arrays and 4745 hash tables correctly, etc. Full support for recursive values 4746 is not yet complete. 4747 4748 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last 4749 argument of signal to G_TYPE_POINTER since we now pass a 4750 structure. 4751 (lookup_g_marshaller): Delete in favor of 4752 _dbus_gobject_lookup_marshaller. 4753 (marshal_dbus_message_to_g_marshaller): Use 4754 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message 4755 to handle remote signal callbacks. 4756 (dbus_g_proxy_new_from_proxy): New function; creates a new 4757 DBusGProxy by copying an existing one. 4758 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface) 4759 (dbus_g_proxy_get_path): New functions. 4760 (dbus_g_proxy_marshal_args_to_message): New function; 4761 factored out of existing code. 4762 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments 4763 from a varargs array. 4764 (dbus_g_proxy_begin_call_internal): New function. 4765 (dbus_g_proxy_end_call_internal): New function. 4766 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types 4767 as arguments; simply invoke dbus_g_proxy_begin_call_internal 4768 after collecting args into value array. 4769 (dbus_g_proxy_end_call): Take GTypes instead of DBus types; 4770 invoke dbus_g_proxy_end_call_internal. 4771 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and 4772 end_call_internal. 4773 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus 4774 types. 4775 (array_free_all): New function. 4776 (dbus_g_proxy_add_signal): Take GTypes. 4777 4778 * glib/dbus-gobject.h: 4779 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. 4780 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller): 4781 Prototype. 4782 4783 * glib/dbus-gobject.c: Add a global marshal_table hash which 4784 stores mappings from type signatures to marshallers. Change lots 4785 of invocations of dbus_gtype_to_dbus_type to 4786 dbus_gtype_to_signature. 4787 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. 4788 (introspect_signals): Fix test for query.return_type. 4789 (set_object_property): Update invocation of dbus_gvalue_demarshal. 4790 (invoke_object_method): Many changes. Handle asynchronous 4791 invocations. Convert arguments with 4792 dbus_gvalue_demarshal_message. Handle errors. Use 4793 DBusSignatureIter instead of strlen on args. Handle all arguments 4794 generically. Special-case variants. 4795 (dbus_g_method_return, dbus_g_method_return_error): New function. 4796 (DBusGSignalClosure): New structure, closes over signal 4797 information. 4798 (dbus_g_signal_closure_new): New function. 4799 (dbus_g_signal_closure_finalize): New function. 4800 (signal_emitter_marshaller): New function; is special marshaller 4801 which emits signals on bus. 4802 (export_signals): New function; introspects object signals and 4803 connects to them. 4804 (dbus_g_object_type_install_info): Take GType instead of 4805 GObjectClass. 4806 (dbus_g_connection_register_g_object): Invoke export_signals. 4807 (dbus_g_connection_lookup_g_object): New function. 4808 (DBusGFuncSignature) New structure; used for mapping type 4809 signatures to marshallers. 4810 (funcsig_hash): New function; hashes DBusGFuncSignature. 4811 (funcsig_equal): New function; compares DBusGFuncSignature. 4812 (_dbus_gobject_lookup_marshaller): New function. 4813 (dbus_g_object_register_marshaller): New function; used to 4814 register a marshaller at runtime for a particular signature. 4815 4816 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests. 4817 4818 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC 4819 which notes a server method implementation should be 4820 asynchronous. 4821 4822 * glib/dbus-binding-tool-glib.c 4823 (dbus_binding_tool_output_glib_server): Call 4824 dbus_g_value_types_init. 4825 (write_formal_parameters): Use dbus_gtype_from_signature. Handle 4826 variants specially. 4827 (dbus_g_type_get_lookup_function): Turn GType into an invocation 4828 of a lookup function. 4829 (write_args_for_direction): Use dbus_g_type_get_lookup_function. 4830 (write_untyped_out_args): New method; write output arguments. 4831 (write_formal_declarations_for_direction): Function for 4832 writing prototypes. 4833 (write_formal_parameters_for_direction): Function for 4834 writing implementations. 4835 (write_typed_args_for_direction): Function for writing 4836 arguments prefixed with GTypes. 4837 (write_async_method_client): Write out async version 4838 of method. 4839 4840 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h. 4841 (dbus_g_type_get_marshal_name): Move mapping from GType 4842 to marshal name into here. 4843 (dbus_g_type_get_c_name): Move into here. 4844 (compute_marshaller): Convert signature to type with 4845 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name. 4846 (compute_marshaller_name): Ditto. 4847 (compute_marshaller): Handle async signal annotations. 4848 (gather_marshallers): Return if we don't have a known 4849 prefix. 4850 (generate_glue): Collect introspection blob here, and 4851 write all of the blob at the end. This allows an object 4852 with multiple interfaces to work. 4853 Mark async methods in introspection blob. 4854 4855 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add 4856 dbus-gtype-specialized.c, dbus-gtype-specialized.h, 4857 dbus-gvalue-utils.h, dbus-gvalue-utils.c. 4858 4859 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this 4860 avoids people accidentally using DBUS_TYPE_* which should 4861 not be necessary anymore. 4862 Do include dbus-gtype-specialized.h, which are utilities 4863 for GLib container types. 4864 Add various #defines for types such as 4865 DBUS_TYPE_G_BOOLEAN_ARRAY. 4866 (DBusGValueIterator, DBusGValue): Define, not fully used 4867 yet. 4868 (dbus_g_value_get_g_type): Type for recursive value. 4869 (dbus_g_value_open, dbus_g_value_iterator_get_value) 4870 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) 4871 (dbus_g_value_free): Prototypes. 4872 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype. 4873 (dbus_g_proxy_set_interface): Prototype. 4874 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call) 4875 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus 4876 types. 4877 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface): 4878 Accessors. 4879 (DBusGAsyncData, DBusGMethodInvocation): Structures for 4880 doing async invocations. 4881 (dbus_g_method_return, dbus_g_method_return_error): 4882 Prototypes. 4883 * doc/dbus-tutorial.xml: Update GLib section. 4884 4885 * tools/dbus-viewer.c (load_child_nodes): Update 4886 for new invocation type of dbus_g_proxy_end_call. 4887 (load_from_service_thread_func): Ditto. 4888 4889 * tools/print-introspect.c (main): Ditto. 4890 4891 * tools/dbus-names-model.c (have_names_notify) 4892 (names_model_reload, names_model_set_connection) 4893 Use GTypes. 4894 4895 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION, 4896 needed since Python bindings use GLib bindings. 4897 4898 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION. 4899 Add --prefix argument. 4900 4901 * tools/Makefile.am: Define DBUS_COMPILATION. Remove 4902 unneeded --ignore-unsupported arg. 4903 4904 * test/glib/test-service-glib.c: 4905 * test/glib/test-service-glib.xml: 4906 * test/glib/test-dbus-glib.c: Add many more tests. 4907 4908 2005-06-06 David Zeuthen <davidz (a] redhat.com> 4909 4910 * doc/TODO: Add item about need to remove deprecated functions. 4911 4912 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect 4913 4914 * dbus/dbus-connection.c (dbus_connection_disconnect): New function 4915 to repair the ABI which was broken with the last commit. 4916 4917 2005-06-02 John (J5) Palmieri <johnp (a] redhat.com> 4918 4919 * dbus/dbus-connection.c, dbus/dbus-connection.h 4920 (dbus_connection_disconnect): renamed to dbus_connection_close 4921 for API symmetry with dbus_connection_open 4922 (_dbus_connection_open_internal): 4923 s/dbus_connection_disconnect/dbus_connection_close 4924 4925 * dbus/dbus-bus.c (dbus_bus_get): 4926 s/dbus_connection_disconnect/dbus_connection_close 4927 4928 * bus/connection.c (bus_connections_unref, 4929 bus_connections_setup_connection, bus_connections_expire_incomplete): 4930 s/dbus_connection_disconnect/dbus_connection_close 4931 4932 * bus/dispatch.c (bus_dispatch, kill_client_connection, 4933 kill_client_connection_unchecked, check_hello_connection): 4934 s/dbus_connection_disconnect/dbus_connection_close 4935 4936 * bus/bus.c (new_connection_callback): 4937 s/dbus_connection_disconnect/dbus_connection_close 4938 4939 * tools/dbus-send.c (main): 4940 s/dbus_connection_disconnect/dbus_connection_close 4941 4942 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func): 4943 s/dbus_connection_disconnect/dbus_connection_close 4944 4945 * test/test-service.c (path_message_func, filter_func): 4946 s/dbus_connection_disconnect/dbus_connection_close 4947 4948 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed 4949 4950 2005-05-25 Colin Walters <walters (a] verbum.org> 4951 4952 * dbus/dbus-protocol.h: Move various bus service #defines such 4953 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to 4954 dbus/dbus-shared.h. 4955 * dbus/dbus-shared.h: Various defines moved here. 4956 * dbus/dbus-marshal-header.c: Include dbus-shared.h. 4957 4958 2005-05-25 John (J5) Palmieri <johnp (a] redhat.com> 4959 4960 * python/__init__.py: Python bindings deserve a minor version 4961 update. Upped to (0, 40, 2) 4962 4963 2005-05-24 John (J5) Palmieri <johnp (a] redhat.com> 4964 4965 * python/decorators.py: add explicitly_pass_message decorator 4966 for passing in the dbus message as keyword for edge case signal 4967 handling 4968 4969 * python/matchrules.py (SignalMatchRule.__repr__): fix output 4970 to conform with what dbus expects for match rules 4971 (SignalMatchRule.execute): add the dbus message as a keyword 4972 if the signal handler has requested it 4973 4974 * python/examples/example/signal-recipient.py: added some more 4975 examples on how to hook up to signals 4976 4977 2005-05-23 John (J5) Palmieri <johnp (a] redhat.com> 4978 4979 * python/decorators.py: import dbus_bindings 4980 4981 * python/matchrules.py (SignalMatchRule, SignalMatchTree, 4982 SignalMatchNode): new classes that implement wildcard signal 4983 callback matching using a tree lookup. Heavily modified from a 4984 patch sent by Celso Pinto (fd.o bug #3241) 4985 4986 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): 4987 use new match classes to handle signals. 4988 4989 2005-05-19 John (J5) Palmieri <johnp (a] redhat.com> 4990 4991 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH 4992 4993 2005-05-18 Havoc Pennington <hp (a] redhat.com> 4994 4995 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require 4996 gettext. Not really worth requiring yet perhaps, but any 4997 production quality 1.0 would require it so we should go ahead and 4998 get things set up. We do have a couple token calls to 4999 bindtextdomain in the code already. 5000 5001 2005-05-16 John (J5) Palmieri <johnp (a] redhat.com> 5002 5003 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock 5004 when using recursive g_main_loops 5005 5006 * python/_dbus.py (class Bus): add the ProxyObjectClass 5007 alias for ProxyObject to make it easier for the Twisted 5008 networking framework to integrate dbus. 5009 5010 * python/proxies.py (class ProxyObject): add the ProxyMethodClass 5011 alias for ProxyMethod to make it easier for the Twisted 5012 networking framework to integrate dbus. 5013 5014 2005-05-11 Ross Burton <ross (a] openedhand.com> 5015 5016 * glib/dbus-glib-tool.c: Add --prefix argument. 5017 * glib/dbus-binding-tool-glib.h: Add prefix argument. 5018 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): 5019 Add prefix argument. 5020 (generate_glue): Pass prefix argument down. 5021 (dbus_binding_tool_output_glib_server): Pass prefix to 5022 glib-genmarshal. 5023 5024 2005-05-11 Colin Walters <walters (a] verbum.org> 5025 5026 * tools/dbus-send.c (append_array): New function. 5027 (append_arg): Broken out from main. 5028 (main): Add cheesy hack to send arrays and variants. 5029 (usage): Update. 5030 * tools/dbus-print-message.c (print_iter): Broken out 5031 from main. 5032 5033 2005-05-11 Colin Walters <walters (a] verbum.org> 5034 5035 * dbus/dbus-signature.c (dbus_signature_iter_get_signature): 5036 New function, returns signature string for signature iter. 5037 * dbus/dbus-signature.h: Prototype it. 5038 * dbus/dbus-message.c (dbus_message_iter_get_signature): 5039 New function, returns signature string for message iter. 5040 (dbus_message_iter_get_array_len): New function, returns 5041 length of array. 5042 (dbus_message_iter_get_fixed_array): Fix assertion; this 5043 function should be used when the iter is pointing to the 5044 contents of an array 5045 * dbus/dbus-message.h: Prototypes. 5046 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length): 5047 New function; returns length of an array. 5048 * dbus/dbus-marshal-recursive.h: Prototype it. 5049 5050 2005-05-11 Colin Walters <walters (a] verbum.org> 5051 5052 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix 5053 compilation error. 5054 5055 2005-05-08 Havoc Pennington <hp (a] redhat.com> 5056 5057 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the 5058 daemon's pid, not the parent's pid, to the file descriptor. 5059 Reported by Taj Morton. 5060 5061 2005-05-05 Havoc Pennington <hp (a] redhat.com> 5062 5063 * configure.in (LT_*): add notes on how the libtool versioning 5064 works to save thinking. Increment soname to indicate protocol 5065 breakage (though really the library interface hasn't changed I 5066 guess) 5067 5068 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): 5069 verify the GUID received from server matches what we were 5070 expecting, if we had an expectation 5071 5072 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command 5073 (_dbus_auth_get_guid_from_server): new function 5074 (send_begin): parse the OK args 5075 5076 * doc/dbus-specification.xml: add GUID to the auth protocol 5077 5078 2005-05-05 John (J5) Palmieri <johnp (a] redhat.com> 5079 5080 * Fix my name in previous changelog ;) 5081 5082 * python/proxies.py (ProxyObject.__getattr__): add further patch 5083 from Anthony Baxter to throw an AttributeError when python 5084 __special__ functions are called instead of marshling them over 5085 the bus (Bug#1685 comment 3). 5086 5087 2005-05-04 John (J5) Palmieri <johnp (a] redhat.com> 5088 5089 * python/Makefile.am: changed to use pyexecdir for the binding 5090 shared libraries (Bug#2494) 5091 5092 * python/exceptions.py: bring exceptions over from the bindings 5093 so they can be used in applications (Bug#2036) 5094 Make all exceptions derive from DBusException 5095 5096 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple 5097 of classes so that print obj doesn't throw an exception (Bug #1685) 5098 5099 2005-05-03 Ross Burton <ross (a] openedhand.com> 5100 5101 * glib/dbus-gobject.c (dbus_g_connection_register_g_object): 5102 Return if we get an error during registration. Set up a 5103 weak reference on object to unregister if object is destroyed. 5104 (unregister_gobject): New function. 5105 5106 2005-05-01 John (J5) Palmieri <johnp (a] redhat.com> 5107 5108 * python/dbus_bindings.pyx.in: 5109 - added new type classes for hinting to the marashaler what type 5110 to send over the wire 5111 - added int16 and uint16 marshalers 5112 - Fixed a bug in the type constants that caused int32 to go out 5113 as uint16 over the wire 5114 * python/dbus.py: split up into different files and renamed _dbus.py 5115 * python/__init__.py, python/_util.py, python/decorators.py, 5116 python/exceptions.py, python/proxies.py, python/services.py, 5117 python/types.py: new files split off from dbus.py 5118 * python/Makefile.am: Add new files, remove dbus.py and 5119 install all python files to <python module dir>/dbus 5120 * python/examples/*: Added #!/usr/bin/env python to the top of 5121 every example. Patch provided by Tatavarty Kalyan 5122 5123 2005-04-25 John (J5) Palmieri <johnp (a] redhat.com> 5124 5125 * NEWS: Update to 0.33 5126 5127 2005-04-25 John (J5) Palmieri <johnp (a] redhat.com> 5128 5129 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send 5130 method for doing async calls 5131 (_pending_call_notification): New C function for handling pendning call 5132 callbacks 5133 (set_notify): New method for setting pending call notification 5134 5135 * python/dbus.py: new version tuple "version" is set at (0, 40, 0) 5136 Async capabilities added to remote method calls 5137 (Sender): class removed 5138 (RemoteService): class removed 5139 (ObjectTree): class removed for now 5140 (RemoteObject): Renamed to ProxyObject 5141 (RemoteMethod): Renamed to ProxyMethod 5142 (method): Decorator added for decorating python methods as dbus methods 5143 (signal): Decorator added for decorating python methods as signal emitters 5144 (ObjectType): Metaclass added for generating introspection data and the 5145 method callback vtable 5146 (Interface): Wrapper class added to wrap objects in a dbus interface 5147 (Object): Uses ObjectType as its metaclass and exports Introspect 5148 of the org.freedesktop.DBus.Introspectable interface 5149 (ValidationException, UnknownMethodException): new exceptions 5150 5151 * python/examples/*: Modified to fit with the new bindings 5152 5153 2005-04-23 Havoc Pennington <hp (a] redhat.com> 5154 5155 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment, 5156 reported by Tony Houghton 5157 5158 * test/test-service.c (main): test 5159 dbus_connection_get_object_path_data() 5160 5161 * dbus/dbus-object-tree.c (find_handler): be sure we always init 5162 the exact_match 5163 (_dbus_object_tree_get_user_data_unlocked): new function used by 5164 dbus_connection_get_object_path_data() 5165 (do_register): add assertion test for get_user_data_unlocked 5166 (object_tree_test_iteration): more tests 5167 5168 * dbus/dbus-connection.c (dbus_connection_get_object_path_data): 5169 new function from Dan Reed to let you get the user data from 5170 dbus_connection_register_object_path() 5171 5172 2005-04-23 John (J5) Palmieri <johnp (a] redhat.com> 5173 5174 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow 5175 in numerous places that did not account for the NULL terminator 5176 (signature_from_seed): changed the manual string copy loop to 5177 just use strcpy instead 5178 make check should now pass 5179 5180 2005-04-19 John (J5) Palmieri <johnp (a] redhat.com> 5181 5182 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert 5183 so that it allows messages that are not signals to pass in 5184 NULL as the interface. 5185 5186 2005-04-18 David Zeuthen <davidz (a] redhat.com> 5187 5188 * glib/dbus-gmain.c (io_handler_destroy_source): 5189 (timeout_handler_destroy_source, connection_setup_free): 5190 Also unref the source to avoid memory leaks. 5191 5192 2005-04-13 David Zeuthen <davidz (a] redhat.com> 5193 5194 * bus/config-parser.c (bus_config_parser_new): Bump this to a 5195 more reasonable, yet still totally arbitrary, value :-). 5196 5197 2005-04-13 David Zeuthen <davidz (a] redhat.com> 5198 5199 * doc/TODO: Added an "important for 1.0" item about selinux 5200 allow/deny messages 5201 5202 2005-04-13 David Zeuthen <davidz (a] redhat.com> 5203 5204 * bus/selinux.c: Add c-file-style to top of file 5205 (log_audit_callback): Don't free the data here anymore 5206 (bus_selinux_check): Don't take spid and tpid since appending 5207 that to auxdata may OOM. 5208 (bus_selinux_allows_acquire_service): Handle OOM and signal back 5209 to the caller if we are OOM by taking an error object. 5210 (bus_selinux_allows_send): -do- 5211 5212 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service 5213 and bus_selinux_allows_send 5214 5215 * bus/bus.c (bus_context_check_security_policy): Pass error and 5216 pass on OOM thrown by bus_selinux_allows_send() 5217 5218 * bus/services.c (bus_registry_acquire_service): Pass error and 5219 pass on OOM thrown by bus_selinux_allows_acquire_service() 5220 5221 2005-04-13 Havoc Pennington <hp (a] redhat.com> 5222 5223 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one 5224 message at a time to avoid monopolizing the main loop, bug 5225 #2953 from Benjamin Otte 5226 5227 2005-04-09 Havoc Pennington <hp (a] redhat.com> 5228 5229 * dbus/dbus-string.c (copy): change a memcpy to memmove due to 5230 possible overlap, fix from Daniel Reed 5231 (fixup_alignment): fix signedness warnings 5232 (_dbus_string_append_unichar): ditto 5233 5234 2005-04-09 Havoc Pennington <hp (a] redhat.com> 5235 5236 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning 5237 5238 * glib/dbus-glib-tool.c (main): fix warning 5239 5240 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning 5241 5242 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch): 5243 add a new function that can be used in simple applications that 5244 don't have a main loop and are willing to block 5245 5246 2005-04-05 David Zeuthen <davidz (a] redhat.com> 5247 5248 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889 5249 5250 * glib/dbus-gmain.c: 5251 (io_handler_destroy_source): Remove from list of IO handlers 5252 of the ConnectionSetup object 5253 (timeout_handler_destroy_source): -do- for timeout handlers 5254 (io_handler_source_finalized): Don't remove from list since 5255 we now do that in io_handler_destroy_source(). Renamed from 5256 io_handler_source_destroyed 5257 (timeout_handler_source_destroyed): -do- for timeout handlers 5258 (connection_setup_free): It is now safe to iterate over all 5259 IO and timeout handlers as the _destroy_source removes them 5260 from the list synchronously 5261 5262 2005-03-30 Havoc Pennington <hp (a] redhat.com> 5263 5264 * configure.in: change check to gtk 2.4 5265 5266 * tools/dbus-viewer.c (name_combo_changed_callback): remove 5267 gtk_combo_box_get_active_text() usage to decrement GTK requirement 5268 to 2.4 5269 5270 2005-03-29 John (J5) Palmieri <johnp (a] redhat.com> 5271 5272 * News: Update 0.32 5273 5274 * HACKING: Fixed realease instructions. configure.in should be updated to 5275 the next release by the person who made the last release. 5276 5277 2005-03-29 John (J5) Palmieri <johnp (a] redhat.com> 5278 5279 * python/lvalue_cast_post_process.py - removed. Patch has been 5280 submitted to Pyrex maintainers that fixes gcc4.0 errors 5281 5282 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py 5283 5284 2005-03-24 Daniel Reed <n (a] ml.org> 5285 5286 * tools/Makefile.am: Make print-introspect and 5287 dbus-bus-introspect.xml building conditional on HAVE_GLIB. 5288 5289 2005-03-22 John (J5) Palmieri <johnp (a] redhat.com> 5290 5291 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck 5292 5293 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 5294 had in Red Hat packages for a while but for some reason never 5295 got merged upstream 5296 (_dbus_is_a_number): New checks if a string 5297 can be converted to a number and does the conversion if it can 5298 (_dbus_user_database_lookup): Add check to see if the given username 5299 is a udi. This allows udi's to be used instead of usernames in the 5300 config file. 5301 (_dbus_user_database_lookup_group): Add check to see if the given groupname 5302 is a gdi. This allows gdi's to be used instead of groupnames in the 5303 config file. 5304 5305 2005-03-21 John (J5) Palmieri <johnp (a] redhat.com> 5306 5307 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex 5308 code so that it compiles with gcc4.0 5309 5310 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST 5311 run dbus_bindings.c through lvalue_cast_post_process.py and copy the 5312 results back to dbus_binding.c 5313 5314 2005-03-20 Colin Walters <walters (a] verbum.org> 5315 5316 Patch suggested by Inguva Rajasekhar <ringuva (a] novell.com>. 5317 5318 * configure.in: Require GTK+ 2.6. 5319 5320 2005-03-20 Colin Walters <walters (a] verbum.org> 5321 5322 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test. 5323 5324 2005-03-17 Tom Parker <palfrey (a] tevp.net> 5325 5326 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't 5327 print DBUS_UID_UNSET; instead print passed username. Also 5328 be sure to actually use gid looked up in cache. 5329 5330 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto 5331 for DBUS_GID_UNSET and groupname. 5332 5333 2005-03-17 Colin Walters <walters (a] verbum.org> 5334 5335 * bus/print-introspect.c: Move to tools/. 5336 * bus/run-with-tmp-session-bus.sh: Ditto. 5337 5338 * glib/Makefile.am (dbus-glib-bindings.h): Move 5339 generation to tools/Makefile.am. 5340 5341 * test/glib/run-test.sh: Update to handle move 5342 of run-with-tmp-session-bus.sh. 5343 5344 * test/glib/test-service-glib.c: Update to handle 5345 move of dbus-glib-bindings.h. 5346 5347 * tools/print-introspect.c: Moved here 5348 from bus/, and ported to GLib bindings. 5349 5350 * tools/run-with-tmp-session-bus.sh: Moved here 5351 from bus/. 5352 5353 * tools/Makefile.am: Generate dbus-glib-bindings.h 5354 and dbus-bus-introspect.xml here. 5355 5356 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore: 5357 Update. 5358 5359 2005-03-17 Colin Walters <walters (a] verbum.org> 5360 5361 * bus/driver.c (write_args_for_direction): Use 5362 _dbus_string_get_const_data to retrieve string; 5363 _dbus_string_get_const_data_len doesn't actually return 5364 a NULL-terminated substring. 5365 5366 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h. 5367 (main): Change to use org_freedesktop_DBus_request_name 5368 instead of using g_proxy_begin_call/end_call. 5369 5370 2005-03-15 Joe Shaw <joeshaw (a] novell.com> 5371 5372 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when 5373 generating the finalizer. Fixes from Ben Maurer. 5374 5375 2005-03-12 Joe Shaw <joeshaw (a] novell.com> 5376 5377 * mono/BusDriver.cs: Update method names: ListServices 5378 becomes ListNames; GetOwner becomes GetNameOwner. 5379 5380 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0 5381 onto the eval stack when removing the delegate. 5382 5383 2005-03-12 Joe Shaw <joeshaw (a] novell.com> 5384 5385 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for 5386 LT_CURRENT. Set it to the autoconf variable. 5387 5388 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy 5389 classes that disconnects the signal handler delegate from the 5390 service object. Fixes a big leak of proxy objects on the 5391 client side of things. Patch from Ben Maurer 5392 <bmaurer (a] ximian.com> 5393 5394 2005-03-12 Colin Walters <walters (a] verbum.org> 5395 5396 * bus/driver.c (write_args_for_direction): New function, 5397 parses a type signature into arguments and outputs to 5398 XML. 5399 (bus_driver_handle_introspect): Use it instead of 5400 hardcoding XML for certain signatures. 5401 5402 * bus/Makefile.am (dbus-bus-introspect.xml): Add 5403 dependency on dbus-daemon. 5404 5405 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported 5406 argument, pass it to dbus_binding_tool_output_glib_client. 5407 5408 * glib/dbus-binding-tool-glib.c 5409 (generate_client_glue): Protect against multiple inclusion. 5410 (dbus_binding_tool_output_glib_client): Add 5411 G_BEGIN_DECLS/G_END_DECLS. 5412 5413 * glib/dbus-binding-tool-glib.c (compute_client_method_name): 5414 Change to just take iface prefix directly. 5415 (write_formal_parameters): Clarify error message. 5416 (check_supported_parameters): New function; checks to see type 5417 signatures of method parameters are supported. 5418 (generate_client_glue): Handle ignore_unsupported flag. 5419 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported 5420 parameter. 5421 5422 * glib/Makefile.am (dbus-glib-bindings.h): Pass 5423 --ignore-unsupported by default until glib bindings 5424 support arrays. 5425 5426 2005-03-11 Colin Walters <walters (a] verbum.org> 5427 5428 * glib/Makefile.am: Generate dbus-glib-bindings.h and 5429 install it. 5430 5431 * bus/print-introspect.c: New file; prints introspection 5432 data for a given name and object path. 5433 5434 * bus/run-with-tmp-session-bus.sh: New file, refactored 5435 from test/glib/run-test.sh. Creates a temporary session 5436 bus and runs another program. 5437 5438 * test/glib/run-test.sh: Refactor to invoke 5439 run-with-tmp-session-bus.sh. 5440 5441 * bus/driver.c (bus_driver_handle_introspect): Fix to print new 5442 introspection format. Also change to use DBUS_TYPE_x_AS_STRING 5443 macros instead of hardcoding. 5444 5445 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update. 5446 5447 2005-03-11 Joe Shaw <joeshaw (a] novell.com> 5448 5449 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove 5450 this unref; it doesn't match up evenly in some codepaths. 5451 (_dbus_connection_block_pending_call): Unref at every exitpoint; 5452 this evenly matches with the ref near the top of this function. 5453 5454 2005-03-09 Joe Shaw <joeshaw (a] novell.com> 5455 5456 * dbus/dbus-object-tree.c 5457 (_dbus_object_tree_unregister_and_unlock): If checks are enabled 5458 and we try to unregister a path that's not registered, still go 5459 through the process of unlocking and don't just return. 5460 5461 2005-03-09 Colin Walters <walters (a] verbum.org> 5462 5463 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls 5464 to this are generated for client-side wrappers. Invokes a 5465 D-BUS method and returns reply values. 5466 5467 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New 5468 function; writes signature string for argument direction. 5469 (write_args_for_direction): Change to pass input values directly 5470 instead of via address, and fix indentation. 5471 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also 5472 make generated wrappers inlineable. 5473 5474 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add 5475 note about using dbus_type_is_fixed. 5476 5477 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to 5478 dbus/dbus-signature.c as dbus_type_is_fixed. 5479 5480 All callers updated. 5481 5482 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here 5483 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed. 5484 5485 * dbus/dbus-signature.h: Prototype. 5486 5487 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix 5488 error printf code. 5489 5490 * test/glib/test-dbus-glib.c (main): Be sure to clear error as 5491 appropriate instead of just freeing it. 5492 (main): Free returned strings using g_free. 5493 5494 * test/glib/Makefile.am (test-service-glib-glue.h) 5495 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool. 5496 5497 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT; 5498 simply maps a simple D-BUS type to GType. 5499 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to 5500 GType. 5501 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and 5502 initialize the value with it. 5503 (dbus_gvalue_binding_type_from_type): Unused, delete. 5504 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for 5505 various types instead of unmarshalling to value data directly. 5506 Remove can_convert boolean. 5507 (dbus_gvalue_marshal): Remove duplicate initialization; switch to 5508 returning directly instead of using can_convert boolean. 5509 (dbus_gvalue_store): New function; not related to D-BUS per-se. 5510 Stores a GValue in a pointer to a value of its corresponding C 5511 type. 5512 5513 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type, 5514 add dbus_gvalue_store. 5515 5516 2005-03-08 Joe Shaw <joeshaw (a] novell.com> 5517 5518 Fix a bunch of lifecycle and memory management problems 5519 in the mono bindings. 5520 5521 * mono/Arguments.cs (Arguments): Implement IDisposable 5522 5523 * mono/Bus.cs (Bus): Don't allow public instantiation. This is 5524 strictly a static class. 5525 5526 * mono/Connection.cs: Move the DBusObjectPathVTable and associated 5527 delegates into this file. 5528 (Connection): Implement IDisposable. 5529 (Dispose): Disconnect the connection and set the raw connection 5530 pointer to IntPtr.Zero. 5531 (~Connection): Call Dispose(). 5532 (RegisterObjectPath): Added. Manages the registration of object 5533 paths so we can cleanly disconnect them at dispose/finalize time. 5534 (UnregisterObjectPath): Ditto. 5535 (set_RawConnection): Unregister all of the object paths when 5536 changing the underlying DBusConnection. Add them back onto the 5537 new connection, if any. 5538 5539 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any 5540 more unmanaged resources anymore, so it's not necessary. Move all 5541 the DBusObjectPathVTable stuff out of here. 5542 (Handler): Save references to our delegates so that they don't get 5543 finalized. Call Connection.RegisterObjectPath() instead of 5544 dbus_connection_register_object_path() directly. 5545 (Message_Called): Dispose the message after we're finished with 5546 it. 5547 5548 * mono/Message.cs (Message): Implement IDisposable. 5549 (Dispose): Dispose the Arguments, and set the RawMessage to 5550 IntPtr.Zero. 5551 (SendWithReplyAndBlock): We own the ref to the reply that comes 5552 back from dbus_connection_send_with_reply_and_block() so add a 5553 comment about that and unref it after we've constructed a managed 5554 MethodReturn class around it. Fixes a big, big leak. 5555 5556 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose 5557 method. 5558 (BuildSignalHandler): After we've sent the Signal message, dispose 5559 of it. 5560 (BuildMethod): Dispose of the method call and reply messages after 5561 we've sent the message and extracted the data we want from the 5562 reply. 5563 5564 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose() 5565 anymore. 5566 (Service_FilterCalled): Dispose of the message after we're 5567 finished with it. 5568 5569 2005-03-08 Joe Shaw <joeshaw (a] novell.com> 5570 5571 * dbus/dbus-connection.c (dbus_connection_send_with_reply): 5572 After we attach our pending call to the connection, unref 5573 it. Fixes a leak. 5574 5575 * mono/Connection.cs (set_RawConnection): Disconnect our 5576 filter and match callbacks from the old connection and 5577 reconnect them to the new connection, if any. 5578 5579 * mono/DBusType/Array.cs: "Code" is a static member, so 5580 don't use "this" to refer to it. Fix for stricter checking 5581 in Mono 1.1.4. 5582 5583 * mono/DBusType/ObjectPath.cs (Append): Don't leak the 5584 object path that we pass into unmanaged code. 5585 5586 * mono/DBusType/String.cs (Append): Don't leak the string 5587 that we pass into unmanged code. 5588 5589 2005-03-07 John (J5) Palmieri <johnp (a] redhat.com> 5590 * NEWS: Update for 0.31 5591 5592 * configure.in: Release 0.31 5593 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping 5594 5595 * qt/Makefile.am: fixed build 5596 5597 * dbus/Makefile.am: soname bump for libdbus 5598 5599 * glib/Makefile.am: soname bump for libdbus-glib 5600 5601 2005-03-05 Havoc Pennington <hp (a] redhat.com> 5602 5603 * dbus/dbus-sysdeps.c: 5604 (pseudorandom_generate_random_bytes_buffer): fix to have no return 5605 value 5606 (_dbus_generate_random_bytes_buffer): fix return value 5607 5608 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure 5609 checks actually work, from Tom Parker <fdo (a] tevp.net> 5610 5611 2005-03-01 Colin Walters <walters (a] verbum.org> 5612 5613 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility 5614 functions copied from dbus-glib-tool.c. 5615 (main): Convert lots of error code to use them. 5616 Also add some testing for introspection bits. 5617 5618 2005-03-01 Colin Walters <walters (a] verbum.org> 5619 5620 * doc/TODO: Remove introspection signature TODO. 5621 5622 2005-02-27 Colin Walters <walters (a] verbum.org> 5623 5624 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type): 5625 Change return value to const char * instead of int so we can do 5626 full signatures. 5627 (struct PropertyInfo, struct ArgInfo): Store char *. 5628 (property_info_new, arg_info_new): Update parameters, strdup. 5629 (property_info_unref, arg_info_unref): Free. 5630 5631 * glib/dbus-gidl.h: Update prototypes. 5632 5633 * glib/dbus-gparser.c (basic_type_from_string): Delete. 5634 (validate_signature): New function, just validates signature and 5635 sets GError. 5636 (parse_property, parse_arg): Invoke validate_signature. Store 5637 signature instead of just type code. 5638 5639 * glib/dbus-gvalue.c (base_type_from_signature): New utility 5640 function to return a primary type for a signature, dropping 5641 information about types in container types. 5642 (dbus_gvalue_genmarshal_name_from_type) 5643 (dbus_gvalue_binding_type_from_type) 5644 (dbus_gvalue_ctype_from_type): Update to take full signature 5645 instead of type code. 5646 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c. 5647 5648 * glib/dbus-gvalue.h: Update prototypes for above. 5649 5650 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to 5651 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type. 5652 (introspect_properties, introspect_signals, write_interface): 5653 Update to handle signatures, and remove usage of 5654 _dbus_gutils_type_to_string. 5655 (handle_introspect): Print out type codes instead of e.g. "string" 5656 in hardcoded introspection XML; also use x_AS_STRING constants 5657 instead of hardcoding in string. 5658 5659 * glib/dbus-glib-tool.c (pretty_print): Handle signature change 5660 to string. Remove usage of _dbus_gutils_type_to_string. 5661 5662 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete. 5663 5664 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for 5665 deletion. 5666 5667 * glib/dbus-binding-tool-glib.c (compute_marshaller) 5668 (compute_marshaller_name, generate_glue): Handle signature change 5669 to string. 5670 (write_formal_parameters, write_args_for_direction): Ditto, and 5671 remove FIXME. 5672 5673 * tools/dbus-tree-view.c (type_to_string): Delete. 5674 (info_set_func_text): Update to print full signatures. 5675 5676 * test/glib/test-service-glib.xml: Change types to new 5677 introspection format. 5678 5679 2005-02-26 Havoc Pennington <hp (a] redhat.com> 5680 5681 * doc/TODO: remove the "guid" item 5682 5683 * test/glib/test-profile.c (no_bus_thread_func): use open_private 5684 (with_bus_thread_func): use open_private 5685 5686 * dbus/dbus-connection.c (dbus_connection_open_private): new 5687 function that works like the old dbus_connection_open() 5688 (dbus_connection_open): now returns an existing connection if 5689 possible 5690 5691 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass 5692 through the GUID to the transport 5693 5694 * dbus/dbus-server.c (_dbus_server_init_base): keep around the 5695 GUID in hex-encoded form. 5696 5697 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 5698 pass GUID argument in to the transport 5699 5700 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add 5701 guid argument 5702 5703 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument 5704 5705 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument 5706 5707 2005-02-25 Havoc Pennington <hp (a] redhat.com> 5708 5709 * doc/dbus-specification.xml: document the GUID thing 5710 5711 * dbus/dbus-server.c (_dbus_server_init_base): initialize a 5712 globally unique ID for the server, and put a "guid=hexencoded" 5713 field in the address 5714 5715 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h 5716 5717 * dbus/dbus-message.c: ditto 5718 5719 * dbus/dbus-dataslot.c: ditto 5720 5721 * dbus/dbus-list.c: ditto 5722 5723 * dbus/dbus-internals.h: wait, just include 5724 dbus-threads-internal.h here 5725 5726 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for 5727 use in main library 5728 5729 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function 5730 5731 2005-02-24 Colin Walters <walters (a] verbum.org> 5732 5733 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml 5734 5735 2005-02-24 John (J5) Palmieir <johnp (a] redhat.com> 5736 5737 * glib/Makefile.am: added dbus-gobject.h to sources list 5738 so distcheck doesn't fail 5739 5740 2005-02-24 Havoc Pennington <hp (a] redhat.com> 5741 5742 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so 5743 you must disconnect before unref, since locking and other things 5744 are screwed up otherwise. Fix assorted other locking stuff. 5745 5746 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type): 5747 fix compilation 5748 5749 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers 5750 into a private header and don't export from the library 5751 5752 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff 5753 5754 2005-02-24 Colin Walters <walters (a] verbum.org> 5755 5756 * dbus/dbus-signature.c: New file; implements various functions 5757 related to type signatures. Includes an interator for parsing, 5758 validation functions. 5759 (dbus_type_is_basic): Moved here from 5760 dbus-marshal-basic.c:_dbus_type_is_basic. 5761 (dbus_type_is_container): Moved here from 5762 dbus-marshal-basic.c:_dbus_type_is_container. 5763 5764 All callers of _dbus_type_is_container and _dbus_type_is_basic 5765 updated, and include dbus-signature.h. 5766 5767 * dbus/dbus-signature.h: New file; prototypes for the above. 5768 5769 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c, 5770 dbus-signature.h. 5771 5772 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility 5773 function factored out of _dbus_first_type_in_signature. 5774 (_dbus_first_type_in_signature_c_str): New function; returns first 5775 type code for a type signature character. 5776 5777 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str, 5778 handle function moves. 5779 5780 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next. 5781 5782 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New 5783 function; skips to next complete type in type signature. 5784 Implemented using previous skip_one_complete_type. Now 5785 skip_one_complete_type just delegates to 5786 _dbus_type_signature_next. 5787 5788 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved 5789 to dbus-signature.c 5790 (_dbus_type_is_container): Ditto. 5791 5792 * doc/dbus-specification.xml: Update introspection sample to 5793 use real type signatures. 5794 5795 * dbus/dbus-test.h: Prototype signature test. 5796 5797 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run 5798 signature tests. 5799 5800 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error. 5801 5802 2005-02-23 John (J5) Palmieri <johnp (a] redhat.com> 5803 5804 * python/dbus_bindings.pyx.in (PendingCall::get_reply): 5805 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply 5806 5807 2005-02-21 Colin Walters <walters (a] verbum.org> 5808 5809 * dbus/dbus-test-main.c (main): Take optional specific test 5810 argument. 5811 5812 * dbus/dbus-test.c (run_test): New function, runs a test function 5813 with no data directory. 5814 (run_data_test): Like above, but takes data directory. 5815 (dbus_internal_do_not_use_run_tests): Take 5816 specific test argument. Replace lots of cut n' paste code 5817 with run_test and run_data_test. 5818 5819 * dbus/dbus-test.h: Update prototype for 5820 dbus_internal_do_not_use_run_tests. 5821 5822 2005-02-20 Havoc Pennington <hp (a] redhat.com> 5823 5824 Fix bugs reported by Daniel P. Berrange 5825 5826 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function 5827 (protected_change_watch): new function 5828 (_dbus_server_toggle_watch, _dbus_server_remove_watch) 5829 (_dbus_server_add_watch): change to work like the 5830 dbus-connection.c equivalents; like those, probably kind of 5831 busted, but should at least mostly work for now 5832 (dbus_server_disconnect): drop the lock if we were already 5833 disconnected, patch from Daniel P. Berrange 5834 5835 * dbus/dbus-server.c (_dbus_server_toggle_timeout) 5836 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the 5837 same stuff 5838 5839 * doc/TODO: todo about unscrewing this mess 5840 5841 2005-02-19 Colin Walters <walters (a] verbum.org> 5842 5843 * glib/dbus-binding-tool-glib.c 5844 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting. 5845 5846 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well 5847 as errno.h and sys/stat.h. 5848 (lose): New function, prints error with 5849 newline and exits. 5850 (lose_gerror): Similar, but takes GError for message. 5851 (main): Add --output argument to specify output file to write to, 5852 instead of always printing to stdout. In this mode, determine 5853 timestamps on source files to see whether any are newer than the 5854 target file. If not, exit. Also convert a number of error 5855 messages to use lose (since it's shorter), and switch to using 5856 g_io_channel_shutdown. 5857 5858 2005-02-19 Havoc Pennington <hp (a] redhat.com> 5859 5860 * glib/dbus-gobject.c 5861 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs 5862 5863 * glib/dbus-glib.c: fix doxygen warnings 5864 5865 * glib/dbus-gparser.c (parse_annotation): error if an annotation 5866 is found on an <arg> 5867 5868 2005-02-17 Colin Walters <walters (a] verbum.org> 5869 5870 * glib/dbus-gobject.h: Don't export 5871 _dbus_glib_marshal_dbus_message_to_gvalue_array. 5872 5873 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename. 5874 (invoke_object_method): Handle it. 5875 5876 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): 5877 Handle rename. 5878 5879 2005-02-17 Colin Walters <walters (a] verbum.org> 5880 5881 * bus/.cvsignore, doc/.cvsignore 5882 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore: 5883 Update. 5884 5885 2005-02-17 Colin Walters <walters (a] verbum.org> 5886 5887 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS): 5888 Rename to DBUS_SERVICE_DBUS. 5889 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS. 5890 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL. 5891 Change the value from "org.freedesktop.Local" 5892 to "org.freedesktop.DBus.Local". 5893 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS. 5894 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to 5895 DBUS_INTERFACE_INTROSPECTABLE. 5896 Change the value from "org.freedesktop.Introspectable" 5897 to "org.freedesktop.DBus.Introspectable". 5898 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to 5899 DBUS_INTERFACE_PROPERTIES. 5900 Change the value from "org.freedesktop.Properties" 5901 to "org.freedesktop.DBus.Properties". 5902 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to 5903 DBUS_INTERFACE_PEER. 5904 Change the value from "org.freedesktop.Peer" 5905 to "org.freedesktop.DBus.Peer". 5906 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 5907 DBUS_INTERFACE_LOCAL. 5908 Change the value from "org.freedesktop.Local" 5909 to "org.freedesktop.DBus.Local". 5910 5911 All other users of those constants have been changed. 5912 5913 * bus/driver.c (bus_driver_handle_introspect): Use constants. 5914 5915 * glib/dbus-gobject.c (handle_introspect): Use constants. 5916 5917 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename. 5918 5919 2005-02-17 Colin Walters <walters (a] verbum.org> 5920 5921 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean. 5922 (parse_node, parse_interface, parse_method, parse_signal) 5923 (parse_property, parse_annotation): Lose if we're currently in an 5924 annotation. 5925 (parse_annotation): New function. 5926 (parser_start_element, parser_end_element): Handle annotation. 5927 (parse_method, parse_interface): Remove support for c_name attribute, 5928 switch to annotations. 5929 5930 * glib/dbus-gidl.h (interface_info_get_binding_names) 5931 (method_info_get_binding_names) 5932 (interface_info_get_binding_name, method_info_get_binding_name) 5933 (interface_info_set_binding_name, method_info_set_binding_name): 5934 Remove. 5935 (interface_info_get_annotations, method_info_get_annotations) 5936 (interface_info_get_annotation, method_info_get_annotation) 5937 (interface_info_add_annotation, method_info_add_annotation): 5938 Prototype. 5939 5940 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations" 5941 for "bindings". 5942 (struct MethodInfo): Ditto. 5943 Straightfoward conversion of binding methods into annotation methods 5944 as prototyped. 5945 5946 * glib/dbus-glib-tool.c (pretty_print): Print annotations. 5947 5948 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define. 5949 5950 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue): 5951 Use new annotation API. 5952 5953 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add 5954 annotation element. 5955 5956 * doc/dbus-specification.xml: Discuss introspection annotations, 5957 include list of well-known annotations. 5958 5959 * test/glib/test-service-glib.xml: Make validate against new DTD. 5960 5961 2005-02-17 Colin Walters <walters (a] verbum.org> 5962 5963 This patch is based on initial work from 5964 Paul Kuliniewicz <kuliniew (a] purdue.edu>. 5965 5966 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move 5967 initialization of GValue from dbus type to here. 5968 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string 5969 for the "glib-genmarshal" program from a DBus type. 5970 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type 5971 into the C name for it we use in the glib bindings. 5972 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a 5973 glib C type (not GValue). 5974 (dbus_gvalue_demarshal): invoke dbus_gvalue_init. 5975 5976 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here 5977 from dbus-gobject.c. 5978 5979 * glib/dbus-gutils.h: Prototype it. 5980 5981 * glib/dbus-gproxy.c: Include new dbus-gobject.h. 5982 (marshal_dbus_message_to_g_marshaller): Use new shared function 5983 dbus_glib_marshal_dbus_message_to_gvalue_array. 5984 5985 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute. 5986 Will be changed once we have annotations. 5987 5988 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to 5989 GStaticRWLock. Callers updated. 5990 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated. 5991 (string_table_next): New function for iterating over zero-terminated 5992 string value array. 5993 (string_table_lookup): New function; retrieves specific entry in 5994 array. 5995 (get_method_data): New function; look up method data in object data chunk. 5996 (object_error_domain_prefix_from_object_info) 5997 (object_error_code_from_object_info): New functions, but not implemented yet. 5998 (method_interface_from_object_info): New function; retrieve interface name. 5999 (method_name_from_object_info): New function; retrieve method name. 6000 (method_arg_info_from_object_info): New function; retrieve argument data. 6001 (arg_iterate): New function; iterates over serialized argument data. 6002 (method_dir_signature_from_object_info): New function; returns a 6003 GString holding type signature for arguments for just one 6004 direction (input or output). 6005 (method_input_signature_from_object_info) 6006 (method_output_signature_from_object_info): New functions. 6007 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function; 6008 converts dbus message arguments into a GValue array. Used for both 6009 signal handling and method invocation. 6010 (struct DBusGlibWriteIterfaceData): New utility structure. 6011 (write_interface): New function; generate introspection XML for 6012 an interface. 6013 (introspect_interfaces): New function; gathers all interface->methods, 6014 generates introspection XML for them. 6015 (handle_introspect): Invoke introspect_interfaces. 6016 (get_object_property): Be sure to zero-initalize stack-allocated GValue. 6017 (lookup_object_and_method): New function; examines an incoming message 6018 and attempts to match it up (via interface, method name, and argument 6019 signature) with a known object and method. 6020 (gerror_domaincode_to_dbus_error_name): New function; converts a 6021 GError domain and code into a DBus error name. Needs GError data 6022 added to object introspection to work well. 6023 (gerror_to_dbus_error_message): Creates a DBusMessage error return from 6024 GError. 6025 (invoke_object_method): New function to invoke an object method 6026 looked up via lookup_object_and_method. Parses the incoming 6027 message, turns it into a GValue array, then invokes the marshaller 6028 specified in the DBusGMethodInfo. Creates a new message with 6029 either return values or error message as appropriate. 6030 (gobject_message_function): Invoke lookup_object_and_method and 6031 invoke_object_method. 6032 6033 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h. 6034 (enum DBusBindingOutputMode): New enum for binding output modes. 6035 (pretty_print): Print binding names. 6036 (dbus_binding_tool_error_quark): GError bits. 6037 (version): Fix typo. 6038 (main): Create GIOChannel for output. Parse new --mode argument, 6039 possible values are "pretty-print", "glib-server", "glib-client". 6040 Use mode to invoke appropriate function. 6041 6042 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array. 6043 6044 * glib/dbus-glib-tool.h: New header, just includes GError bits 6045 for now. 6046 6047 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable; 6048 maps binding style to name. 6049 (struct MethodInfo): Ditto. 6050 (get_hash_keys, get_hash_key): Utility function, returns keys for 6051 a GHashTable. 6052 (interface_info_new, method_info_new): Initialize bindings. 6053 (interface_info_unref, method_info_unref): Destroy bindings. 6054 (method_info_get_binding_names, method_info_get_binding_name) 6055 (interface_info_get_binding_names, interface_info_get_binding_name): 6056 Functions for retrieving binding names. 6057 (method_info_set_binding_name, interface_info_set_binding_name): 6058 Functions for setting binding names. 6059 6060 * glib/dbus-binding-tool-glib.h: New file, has prototypes 6061 for glib binding generation. 6062 6063 * glib/dbus-binding-tool-glib.c: New file, implements server-side 6064 and client-side glib glue generation. 6065 6066 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add 6067 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h, 6068 dbus-glib-tool.h. 6069 6070 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor 6071 of using GClosureMarshal directly. 6072 (struct DBusGObjectInfo): Add n_infos member. 6073 6074 * test/glib/test-service-glib.xml: New file; contains introspection data 6075 for MyTestObject used in test-service-glib.c. 6076 6077 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum. 6078 (my_object_do_nothing, my_object_increment, my_object_throw_error) 6079 (my_object_uppercase, my_object_many_args): New test methods. 6080 (main): Use dbus_g_object_class_install_info to include generated object 6081 info. 6082 6083 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c, 6084 as well as client-side bindings. 6085 6086 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h. 6087 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods 6088 using both the dbus_gproxy stuff directly as well as the generated bindings. 6089 6090 2005-02-15 Havoc Pennington <hp (a] redhat.com> 6091 6092 * dbus/dbus-connection.c (dbus_connection_dispatch): always 6093 complete a pending call, don't run filters first. 6094 6095 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use 6096 dbus_pending_call_steal_reply 6097 6098 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call 6099 _dbus_connection_block_pending_call 6100 (dbus_pending_call_get_reply): change to steal_reply and return a 6101 ref 6102 6103 * dbus/dbus-connection.c 6104 (dbus_connection_send_with_reply_and_block): port to work in terms 6105 of DBusPendingCall 6106 (_dbus_connection_block_pending_call): replace block_for_reply 6107 with this 6108 6109 2005-02-14 Havoc Pennington <hp (a] redhat.com> 6110 6111 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): 6112 properly handle looking up group information by name; fix 6113 from j (a] bootlab.org 6114 6115 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6116 6117 * dbus/dbus-connection.c (dbus_connection_return_message) 6118 (dbus_connection_borrow_message): hold dispatch lock while message 6119 is outstanding 6120 (_dbus_connection_block_for_reply): hold dispatch lock while we 6121 block for the reply, so nobody steals our reply 6122 (dbus_connection_pop_message): hold the dispatch lock while we 6123 pluck the message 6124 6125 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6126 6127 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch) 6128 (_dbus_connection_release_dispatch) 6129 (_dbus_connection_acquire_io_path) 6130 (_dbus_connection_release_io_path): make the mutex and condvar 6131 control access to the "acquired" flag. Drop the connection lock 6132 while waiting on the condvar. Hopefully these are baby steps in 6133 roughly the right direction. 6134 6135 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6136 6137 * dbus/dbus-connection.c: use separate mutexes for the condition 6138 variables; this is some kind of baseline for sanity, but the 6139 condition variables still aren't used correctly afaict 6140 6141 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6142 6143 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): 6144 fix a double-unlock 6145 6146 * dbus/dbus-connection.c 6147 (_dbus_connection_detach_pending_call_unlocked): add this 6148 6149 Initial semi-correct pass through to fix thread locking; there are 6150 still some issues with the condition variable paths I'm pretty 6151 sure 6152 6153 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate 6154 lock/unlock calls 6155 6156 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked): 6157 rename to add _unlocked 6158 (struct DBusConnection): move "dispatch_acquired" and 6159 "io_path_acquired" to use only one bit each. 6160 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS 6161 (dbus_connection_set_watch_functions): hacky fix to reentrancy 6162 (_dbus_connection_add_watch, _dbus_connection_remove_watch) 6163 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 6164 (_dbus_connection_remove_timeout) 6165 (_dbus_connection_toggle_timeout): drop lock when calling out to 6166 user functions; done in a hacky/bad way. 6167 (_dbus_connection_send_and_unlock): add a missing unlock 6168 (_dbus_connection_block_for_reply): add a missing unlock 6169 6170 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): 6171 drop lock in a hacky probably unsafe way to call out to user 6172 function 6173 6174 2005-02-12 Havoc Pennington <hp (a] redhat.com> 6175 6176 * tools/dbus-tree-view.c (info_set_func_text): display more 6177 details on args 6178 6179 * bus/driver.c (bus_driver_handle_list_services): list the bus 6180 driver 6181 6182 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied 6183 6184 * glib/dbus-gidl.c (signal_info_get_n_args): new function 6185 (method_info_get_n_args): new function 6186 6187 2005-02-12 Havoc Pennington <hp (a] redhat.com> 6188 6189 * bus/driver.c (bus_driver_handle_introspect): add introspection 6190 for bus driver 6191 6192 2005-02-12 Havoc Pennington <hp (a] redhat.com> 6193 6194 * bus/driver.c: put the signature of each bus driver method in the 6195 table of handlers and check it on incoming calls; this isn't 6196 really useful, but going to add introspect support in a minute. 6197 6198 2005-02-11 Joe Shaw <joeshaw (a] novell.com> 6199 6200 * mono/Connection.cs: The unpredictability of finalizers in mono 6201 prevents us from deterministically disconnecting the filters from 6202 the Service class's finalizer, so move tracking of filters and 6203 matches here. Add API for that. 6204 6205 * mono/Service.cs: Remove the code, add code which calls the 6206 methods now on the Connection class. 6207 6208 2005-02-11 John (J5) Palmieri <johnp (a] redhat.com> 6209 6210 * python/dbus.py (class Sender): added to support dbus signals better 6211 (Bus::add_signal_receiver): added expand_args parameter which defaults 6212 to True. When expand args is True the signal handler will pass the 6213 message arguments as parameters to the signal handler. If False 6214 revert to previous behavior where the signal handler must get the 6215 argument list from the message. This is to help port applications 6216 like HAL that have a tendancy to send variable length argument lists. 6217 self._match_rule_to_receivers is now a dict of dicts. 6218 (Bus::remove_signal_receiver): pop handler off the dict intead of 6219 removing it from a list 6220 (Bus::_signal_func): change signal handlers so that interface, 6221 signal_name, service, path and message are packed into a Sender 6222 object and that is passed to the handler. If expand_args is True 6223 extract the args list from the message and append it to the parameter 6224 list 6225 6226 * python/dbus_bindings.pyx.in (class Signature): added to support 6227 signiature types 6228 (MessageIter::__init__): changed iteration limit to match D-BUS 6229 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 6230 STRUCT and VARIENT type support 6231 (MessageIter::python_value_to_dbus_sig): made recursive to support 6232 recursive types 6233 (MessageIter::append*): added Signature, dict, tuple 6234 support 6235 6236 * python/examples/example-client.py: added examples of getting tuples 6237 and dicts 6238 6239 * python/examples/example-service.py: added examples of sending tuples 6240 and dicts 6241 6242 * python/examples/example-signal-recipient.py: Fixed to handle new 6243 signal callback format 6244 6245 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6246 6247 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail 6248 (call dbus_g_proxy_add_signal) 6249 6250 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 6251 escape the hostname 6252 (_dbus_server_new_for_domain_socket): escape the path 6253 6254 * dbus/dbus-address.c (dbus_address_escape_value): new 6255 (dbus_address_unescape_value): new 6256 (dbus_parse_address): unescape values 6257 6258 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function 6259 6260 * doc/dbus-specification.xml: explain how to escape values in 6261 addresses 6262 6263 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6264 6265 * dbus/dbus-message-factory.c (generate_special): modify test to 6266 avoid using a non-basic dict key 6267 6268 * dbus/dbus-marshal-validate-util.c: add test for the below 6269 6270 * doc/dbus-specification.xml: require that dict keys are a basic 6271 type 6272 6273 * dbus/dbus-marshal-validate.c 6274 (_dbus_validate_signature_with_reason): require that dict key is a 6275 basic type 6276 6277 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6278 6279 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): 6280 change to be _and_unlock instead of _unlocked 6281 6282 * dbus/dbus-connection.c 6283 (_dbus_connection_send_preallocated_unlocked_no_update): rename to 6284 have no_update so we can find this bug quickly in future 6285 6286 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6287 6288 * dbus/dbus-message-util.c (verify_test_message): tests for string 6289 array 6290 6291 * dbus/dbus-message.c (dbus_message_append_args_valist): add 6292 support for arrays of string/signature/path 6293 6294 2005-02-10 Joe Shaw <joeshaw (a] novell.com> 6295 6296 * dbus/dbus-connection.c 6297 (_dbus_connection_queue_received_message_link, 6298 _dbus_connection_message_sent): Add the path to 6299 the verbose output. 6300 (_dbus_connection_send_preallocated_and_unlock): Added. Calls 6301 _dbus_connection_send_preallocated_unlocked(), updated the 6302 dispatch status, and unlocks. Fixes a bug where certain 6303 situations (like a broken pipe) could cause a Disconnect message 6304 to not be sent, tricking the bus into thinking a service was still 6305 there when the process had quit. 6306 (_dbus_connection_send_preallocated): Call 6307 _dbus_connection_send_preallocated_and_unlock(). 6308 (_dbus_connection_send_and_unlock): Added. Calls 6309 _dbus_connection_send_preallocated_and_unlock(). 6310 (dbus_connection_send): Call _dbus_connection_send_and_unlock(). 6311 (dbus_connection_send_with_reply): Update the dispatch status and 6312 unlock. 6313 6314 * mono/Service.cs (~Service): Added. Removes the filter so that 6315 we don't get unmanaged code calling back into a GCed delegate. 6316 (RemoveFilter); Added. 6317 6318 2005-02-09 John (J5) Palmieri <johnp (a] redhat.com> 6319 6320 * dbus/dbus-message.c (dbus_message_iter_open_container): 6321 - Removed check for iterator type being an array because 6322 get_arg_type does not work with writer iterators 6323 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL 6324 6325 2005-02-07 Havoc Pennington <hp (a] redhat.com> 6326 6327 * doc/dbus-specification.xml: some more language cleanups; add 6328 stuff about how to deal with invalid protocol and extension 6329 points; add _ to allowed chars in auth commands; add EXTENSION_ 6330 auth command prefix 6331 6332 2005-02-06 Havoc Pennington <hp (a] redhat.com> 6333 6334 * s/expected/required/ in a couple places for clarity 6335 6336 2005-02-07 Colin Walters <walters (a] verbum.org> 6337 6338 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for 6339 sender or proposed_recipient. 6340 6341 2005-02-06 Havoc Pennington <hp (a] redhat.com> 6342 6343 * dbus/dbus-message-factory.c (generate_special): more tests 6344 6345 * dbus/dbus-marshal-validate.c (validate_body_helper): detect 6346 array length that exceeds the maximum 6347 6348 2005-02-05 Havoc Pennington <hp (a] redhat.com> 6349 6350 * dbus/dbus-message-factory.c (generate_special): more test cases, 6351 increasing coverage 6352 6353 * dbus/dbus-marshal-validate.c (validate_body_helper): return the 6354 reason why a signature was invalid 6355 6356 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to 6357 skip the length of the string before we look at it in validation 6358 6359 * dbus/dbus-string-util.c (_dbus_string_test): add tests for 6360 equal_substring 6361 6362 * dbus/dbus-message.c (_dbus_message_loader_new): default 6363 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH 6364 6365 2005-02-05 Havoc Pennington <hp (a] redhat.com> 6366 6367 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash 6368 if the signature of a variant was empty 6369 (_dbus_validate_signature_with_reason): catch "(a)" (array inside 6370 struct with no element type) 6371 6372 * dbus/dbus-message-factory.c (generate_uint32_changed): add more 6373 mangled messages to break things 6374 6375 2005-02-04 Havoc Pennington <hp (a] redhat.com> 6376 6377 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use 6378 g_quark_try_string() so it actually can return 0 6379 (dbus_g_proxy_connect_signal): ditto 6380 6381 2005-02-04 Havoc Pennington <hp (a] redhat.com> 6382 6383 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a 6384 bogus warning 6385 (tristring_from_message): assert cleanly on null path/interface 6386 (should not be possible though I decided later) 6387 (dbus_g_proxy_dispose): move proxy manager unregistration here 6388 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of 6389 g_return_if_fail() checks 6390 6391 2005-02-04 Havoc Pennington <hp (a] redhat.com> 6392 6393 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile 6394 6395 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler 6396 (with some minor changes) 6397 6398 * doc/dbus-specification.xml: add deprecated attribute to 6399 introspection format 6400 6401 2005-01-31 Havoc Pennington <hp (a] redhat.com> 6402 6403 * glib/dbus-gproxy.c: rewrite how signals work again, this time I 6404 think it's sort of right 6405 6406 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6407 6408 * tools/dbus-viewer.c: kind of half-ass hook up the option menu. 6409 6410 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6411 6412 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged 6413 6414 * autogen.sh: change to autotools 1.9 6415 6416 * glib/dbus-gproxy.c: completely change how signals work 6417 (dbus_g_proxy_add_signal): new function to specify signature of a 6418 signal 6419 (dbus_g_proxy_emit_received): marshal the dbus message to GValues, 6420 and g_warning if the incoming message has the wrong signature. 6421 6422 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6423 6424 * tools/dbus-names-model.c (have_names_notify): fix this 6425 6426 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean 6427 up the string array handling a bit 6428 6429 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6430 6431 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function 6432 (dbus_g_pending_call_cancel): new function 6433 6434 * dbus/dbus-glib.h: move GType decls for connection/message here; 6435 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in 6436 here, just kind of rationalizing how we handle all that 6437 6438 * tools/dbus-names-model.c: new file for a tree model listing the 6439 services on a bus 6440 6441 * tools/dbus-tree-view.c (model_new): use proper typing on the 6442 model rows 6443 6444 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6445 6446 * glib/dbus-gmain.c: add a custom GSource back that just checks 6447 whether the message queue has anything in it; otherwise, there are 6448 cases where we won't see messages in the queue since there was no 6449 IO visible to the glib main loop 6450 6451 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE): 6452 increase default message timeout to 25 seconds 6453 6454 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6455 6456 * test/glib/test-profile.c (no_bus_stop_server): remove the 6457 warning about the g_warning that I just fixed 6458 6459 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the 6460 custom source, seems to be a lot easier to understand and work 6461 better. 6462 6463 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6464 6465 I think this main loop thing is conceptually broken, but here are 6466 some band aids. I'll maybe rewrite it in a minute. 6467 6468 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the 6469 custom GSource, so don't pass it in; confusing 6470 (gsource_server_finalize, gsource_connection_finalize): add 6471 finalize handlers that remove all the watches. 6472 6473 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6474 6475 * glib/dbus-gobject.c (introspect_properties): fix the XML 6476 generated 6477 6478 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag 6479 which effectively detects the use of freed messages 6480 6481 * glib/dbus-gobject.c (handle_introspect): modify and return the 6482 reply message instead of the incoming message 6483 6484 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked): 6485 gee, maybe it should SEND THE XML instead of just making a string 6486 and freeing it again ;-) 6487 6488 * tools/dbus-print-message.c (print_message): improve printing of 6489 messages 6490 6491 * configure.in: add debug-glib.service to the output 6492 6493 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6494 6495 dbus-viewer introspected and displayed the bus driver 6496 6497 * dbus/dbus-object-tree.c 6498 (object_tree_test_iteration): add tests for a handler registered on "/" 6499 6500 * dbus/dbus-object-tree.c 6501 (_dbus_decompose_path): fix to handle path "/" properly 6502 (run_decompose_tests): add tests for path decomposition 6503 6504 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/" 6505 properly 6506 6507 * glib/dbus-gobject.c (handle_introspect): fix quotes 6508 6509 * test/glib/run-test.sh: support launching the bus, then running 6510 dbus-viewer 6511 6512 * test/glib/test-service-glib.c (main): put in a trivial gobject 6513 subclass and register it on the connection 6514 6515 * bus/driver.c (bus_driver_handle_introspect): implement 6516 introspection of the bus driver service 6517 6518 * dbus/dbus-protocol.h: add #defines for the XML namespace, 6519 identifiers, doctype decl 6520 6521 * bus/driver.c (bus_driver_handle_get_service_owner): handle 6522 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 6523 returning the service unchanged. 6524 (bus_driver_handle_message): remove old check for reply_serial in 6525 method calls, now the message type deals with that 6526 (bus_driver_handle_message): handle NULL interface 6527 6528 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function 6529 6530 * glib/dbus-gloader-expat.c (description_load_from_string): allow 6531 -1 for len 6532 6533 * tools/dbus-viewer.c: add support for introspecting a service on 6534 a bus 6535 6536 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add 6537 (dbus_g_pending_call_unref): add 6538 6539 2005-01-29 Havoc Pennington <hp (a] redhat.com> 6540 6541 * tools/dbus-tree-view.c: add support for displaying properties. 6542 (run dbus-viewer with an introspect xml file as arg, then resize 6543 the window so the tree elements show up, not sure what that is) 6544 6545 * glib/dbus-gobject.c (handle_introspect): return 6546 org.freedesktop.Properties and org.freedesktop.Introspectable 6547 interfaces when we are introspected. 6548 6549 * doc/dbus-specification.xml: allow empty interface name when 6550 Get/Set a property 6551 6552 2005-01-29 Havoc Pennington <hp (a] redhat.com> 6553 6554 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool; 6555 though it uses glib, it could be extended for any binding in 6556 principle 6557 6558 * glib/dbus-gobject.c (gobject_message_function): change to the 6559 new way properties work 6560 6561 * dbus/dbus-protocol.h: add the new interfaces 6562 6563 * doc/dbus-specification.xml: document the introspection format, 6564 Introspectable interface, and add an org.freedesktop.Properties 6565 interface. 6566 6567 * glib/dbus-gparser.c: add support for a <property> element 6568 6569 * glib/dbus-gidl.c: add PropertyInfo 6570 6571 * glib/dbus-gobject.c (handle_introspect): put the outermost 6572 <node> outside the signal and property descriptions. 6573 (introspect_properties): export properties as <property> rather 6574 than as method calls 6575 6576 2005-01-28 Havoc Pennington <hp (a] redhat.com> 6577 6578 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks 6579 related to authentication protocol 6580 6581 2005-01-28 John (J5) Palmieri <johnp (a] redhat.com> 6582 6583 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system 6584 - BUS_ACTIVATION -> BUS_STARTER 6585 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER 6586 - class MessageIter (__init__): Added recursion checking 6587 so we throw a nice error instead of just disconnecting from the 6588 bus. 6589 (get): Added arg_type parameter for recursion. 6590 Removed the nil type 6591 Added signiture type placeholder (not implemented) 6592 Added struct type placeholder (not implemented) 6593 Added varient type placeholder (not implemented) 6594 Commented out dict type for now 6595 (get_element_type): renamed from get_array_type 6596 (get_*): changed to use the dbus_message_iter_get_basic API 6597 (get_*_array): removed in favor of recursive get_array method 6598 (get_array): new recursive method which calls get to marshal 6599 the elements of the array 6600 (value_to_dbus_sig): New method returns the corrasponding 6601 dbus signiture to a python value 6602 (append): Comment out dict handling for now 6603 Handle lists with the new recursive API 6604 Comment out None handling for now 6605 (append_nil): removed 6606 (append_*): changed to use dbus_message_iter_append_basic API 6607 (append_*_array): removed in favor of recursive append_array 6608 method 6609 (__str__): Make it easier to print out recursive iterators 6610 for debugging 6611 - class Message (__str__): moved type inspection to the 6612 MessageIter class' __str__ method 6613 (get_iter): Added an append parameter wich defaults to False 6614 If True use the new API's to create an append iterator 6615 6616 * python/dbus.py: Update to use new bindings API 6617 - TYPE_ACTIVATION -> TYPE_STARTER 6618 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner 6619 - class ActivationBus -> class StarterBus 6620 - class RemoteObject (__call__): get an append iterator 6621 - (_dispatch_dbus_method_call): get an append iterator 6622 - class Object (emit_signal): get an append iterator 6623 6624 * python/examples/: Fixed up the examples to work with the new API 6625 6626 2005-01-28 Joe Shaw <joeshaw (a] novell.com> 6627 6628 * configure.in: Bump version up to 0.30. 6629 6630 * HACKING: Add a release item to bump the version number up after 6631 a release. 6632 6633 2005-01-28 Havoc Pennington <hp (a] redhat.com> 6634 6635 * doc/dbus-specification.xml: update to describe 16-bit types and 6636 dict entries 6637 6638 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken 6639 assertion 6640 6641 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a 6642 type 6643 6644 * dbus/dbus-marshal-recursive.c: implement 6645 6646 2005-01-27 Havoc Pennington <hp (a] redhat.com> 6647 6648 * dbus/dbus-arch-deps.h.in: add 16/32-bit types 6649 6650 * configure.in: find the right type for 16 and 32 bit ints as well 6651 as 64 6652 6653 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add 6654 the 16-bit types so people don't have to stuff them in 32-bit or 6655 byte arrays. 6656 6657 2005-01-27 Havoc Pennington <hp (a] redhat.com> 6658 6659 * dbus/dbus-message.c: byteswap the message if you init an 6660 iterator to read/write from it 6661 6662 * dbus/dbus-marshal-byteswap.c: new file implementing 6663 _dbus_marshal_byteswap() 6664 6665 * dbus/dbus-marshal-basic.c: add _dbus_swap_array() 6666 6667 2005-01-26 Havoc Pennington <hp (a] redhat.com> 6668 6669 * dbus/dbus-marshal-validate-util.c: break this out (and fix 6670 build, apparently - nobody noticed?) 6671 6672 2005-01-26 Havoc Pennington <hp (a] redhat.com> 6673 6674 * dbus/dbus-marshal-recursive.h: remove todo comment 6675 6676 2005-01-25 Joe Shaw <joeshaw (a] novell.com> 6677 6678 * Land the mono binding changes to conform to the new APIs. 6679 6680 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs, 6681 DBusType/Dict.cs, and DBusType/Nil.cs from the build. 6682 6683 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus 6684 type code as a string. 6685 (InitAppending): Rename dbus_message_append_iter_init() to 6686 dbus_message_iter_init_append(). 6687 6688 * mono/BusDriver.cs: Rename ServiceEventHandler to 6689 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner. 6690 Rename ServiceOwnerChanged to NameOwnerChanged. 6691 6692 * mono/Connection.cs: Rename BaseService to UniqueName, and the 6693 underlying C call. 6694 6695 * mono/Custom.cs: Removed. The CUSTOM type has been removed. 6696 6697 * mono/Service.cs: Rename Exists to HasOwner, internally rename 6698 dbus_bus_acquire_service() to dbus_bus_request_name(). 6699 6700 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead 6701 of Type.UnderlyingSystemType to get the correct element type for 6702 the array. 6703 (ctor): Update code for new APIs: use dbus_message_iter_recurse(), 6704 dbus_message_get_{element|arg}_type() instead of 6705 dbus_message_iter_init_array_iterator(). 6706 (Append): Replace dbus_message_iter_append_array() with 6707 dbus_message_iter_open_container() and 6708 dbus_message_iter_close_container(). 6709 6710 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These 6711 types have been removed. 6712 6713 * mono/DBusType/*.cs: Replace calls of 6714 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(), 6715 but specify the type in the DllImport extern declaration. Ditto 6716 for dbus_message_iter_append_[type]() -> 6717 dbus_message_iter_append_basic(). 6718 6719 * mono/example/BusListener.cs: Update for ServiceEventHandler -> 6720 NameOwnerChangedHandler. 6721 6722 2005-01-25 John (J5) Palmieri <johnp (a] redhat.com> 6723 6724 * python/dbus_bindings.pyx.in: Rename of methods and bindings 6725 - get_base_service -> get_unique_name 6726 - bus_get_base_service -> bus_get_unique_name 6727 - dbus_bus_get_base_service -> dbus_bus_get_unique_name 6728 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 6729 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING 6730 - bus_activate_service -> bus_start_service_by_name 6731 - dbus_bus_activate_service -> dbus_bus_start_service_by_name 6732 - bus_acquire_service -> bus_request_name 6733 - dbus_bus_acquire_service -> dbus_bus_request_name 6734 - bus_service_exists -> bus_name_has_owner 6735 - dbus_bus_service_exists -> dbus_bus_name_has_owner 6736 6737 * python/dbus.py: Rename of methods 6738 - activate_service -> start_service_by_name 6739 - bus_acquire_service -> bus_request_name 6740 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 6741 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING 6742 6743 6744 2005-01-24 Joe Shaw <joeshaw (a] novell.com> 6745 6746 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the 6747 signature for the method that can't be found. 6748 6749 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if 6750 the message has any arguments, we need to call 6751 _dbus_type_reader_get_current_type(), not 6752 _dbus_type_reader_has_next(). 6753 6754 2005-01-24 Havoc Pennington <hp (a] redhat.com> 6755 6756 * dbus/dbus-message-factory.c: more testing of message validation 6757 6758 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this 6759 header 6760 6761 2005-01-23 Havoc Pennington <hp (a] redhat.com> 6762 6763 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 6764 get this all working, not many tests in the framework yet though 6765 6766 2005-01-22 Havoc Pennington <hp (a] redhat.com> 6767 6768 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update 6769 tutorial, based on work from David Wheeler. 6770 6771 2005-01-21 Havoc Pennington <hp (a] redhat.com> 6772 6773 * dbus/dbus-bus.c: add more return_if_fail checks 6774 6775 * dbus/dbus-message.c (load_message): have the "no validation" 6776 mode (have to edit the code to toggle the mode for now though) 6777 6778 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that 6779 skips all validation; I want to use this at least for benchmark 6780 baseline, I'm not sure if it should be a publicly-available switch. 6781 6782 2005-01-21 Havoc Pennington <hp (a] redhat.com> 6783 6784 * glib/dbus-gmain.c: don't put the GLib bindings in the same 6785 toplevel doxygen group as the low-level API stuff 6786 6787 * dbus/dbus.h: note that libdbus is the low-level API 6788 6789 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6790 6791 * update-dbus-docs.sh: script to update docs on the web site, only 6792 works for me though. neener. 6793 6794 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6795 6796 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile 6797 code can reveal bugs in it 6798 6799 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6800 6801 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the 6802 select() version, patches from Tor Lillqvist 6803 6804 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6805 6806 * doc/dbus-tutorial.xml: replace > with > 6807 6808 * bus/services.c (bus_registry_acquire_service): validate the name 6809 and return a better error if it's no good. 6810 6811 * doc/dbus-specification.xml: note NO_AUTO_START change 6812 6813 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change 6814 from AUTO_START, we're toggling the default 6815 6816 * bus/dispatch.c: adapt the tests to change of auto-start default 6817 6818 2005-01-18 Havoc Pennington <hp (a] redhat.com> 6819 6820 * rename dbus-daemon-1 to dbus-daemon throughout 6821 6822 2005-01-18 Havoc Pennington <hp (a] redhat.com> 6823 6824 * Throughout, grand renaming to strip out the use of "service", 6825 just say "name" instead (or "bus name" when ambiguous). Did not 6826 change the internal code of the message bus itself, only the 6827 programmer-facing API and messages. 6828 6829 * doc/dbus-specification.xml: further update the message bus section 6830 6831 * bus/config-parser.c (all_are_equiv): fix bug using freed string 6832 in error case 6833 6834 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6835 6836 * dbus/dbus-types.h: remove 16-bit types since we don't use them 6837 ever 6838 6839 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any 6840 "invalid name character" not only non-ASCII 6841 6842 * doc/dbus-specification.xml: further update spec, message bus 6843 parts are still out-of-date but the marshaling etc. stuff is now 6844 accurate-ish 6845 6846 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6847 6848 * doc/dbus-specification.xml: partially update spec 6849 6850 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6851 6852 * Throughout, align variant bodies according to the contained 6853 type, rather than always to 8. Should save a fair bit of space in 6854 message headers. 6855 6856 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason): 6857 fix handling of case where p == end 6858 6859 * doc/TODO: remove the dbus_bool_t item and variant alignment items 6860 6861 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6862 6863 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits 6864 6865 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead 6866 of an 8-bit type. Now dbus_bool_t is the type to use whenever you 6867 are marshaling/unmarshaling a boolean. 6868 6869 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6870 6871 This is about it on what can be disabled/deleted from libdbus 6872 easily, back below 150K anyhow. Deeper cuts are more work than 6873 just turning the code off as I've done here. 6874 6875 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the 6876 signed int convenience funcs 6877 6878 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in 6879 verbose mode 6880 6881 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking 6882 things out of libdbus 6883 6884 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same 6885 6886 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it 6887 tests-enabled-only, though it should probably be deleted) 6888 6889 * dbus/dbus-message-util.c: same stuff 6890 6891 * dbus/dbus-auth-util.c: same stuff 6892 6893 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6894 6895 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c 6896 6897 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave 6898 way for stripping down dbus-userdb.c stuff included in libdbus. 6899 Rename _dbus_parse_uid for consistency. 6900 6901 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6902 6903 * dbus/dbus-internals.c (_dbus_real_assert): print the function 6904 name the assertion failed in 6905 6906 * dbus/dbus-internals.h (_dbus_return_if_fail) 6907 (_dbus_return_val_if_fail): assert that the name of the function 6908 containing the check doesn't start with '_', since we only want to 6909 use checks on public functions 6910 6911 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change 6912 checks to assertions 6913 6914 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic): 6915 change checks to asserts for private function 6916 6917 * dbus/dbus-message.c (_dbus_message_set_serial): checks 6918 to asserts for private function 6919 6920 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove 6921 broken assertion that was breaking make check 6922 (_dbus_type_reader_array_is_empty): remove this rather than fix 6923 it, was only used in assertions 6924 6925 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6926 6927 * test/unused-code-gc.py: hacky script to find code that's used 6928 only by the bus (not libdbus) or used only by tests or not used at 6929 all. It has some false alarms, but looks like we can clean up a 6930 lot of size from libdbus. 6931 6932 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c, 6933 dbus/Makefile.am: initially move 10K of binary size out of libdbus 6934 6935 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6936 6937 * Add and fix docs according to Doxygen warnings throughout 6938 source. 6939 6940 * dbus/dbus-marshal-recursive.c 6941 (_dbus_type_reader_array_is_empty): change this to just call 6942 array_reader_get_array_len() and make it static 6943 6944 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename 6945 from get_array_type 6946 (dbus_message_iter_init_append): rename from append_iter_init 6947 6948 * dbus/dbus-marshal-recursive.c 6949 (_dbus_type_reader_get_element_type): rename from 6950 _dbus_type_reader_get_array_type 6951 6952 2005-01-15 Havoc Pennington <hp (a] redhat.com> 6953 6954 * test/glib/test-profile.c (with_bus_server_filter): fix crash 6955 6956 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro 6957 when DBUS_DISABLE_ASSERT 6958 (_dbus_marshal_set_basic): be sure we align for the string length 6959 6960 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make 6961 this look faster 6962 6963 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an 6964 inline macro version 6965 (_dbus_string_set_byte): provide inline macro version 6966 6967 2005-01-15 Havoc Pennington <hp (a] redhat.com> 6968 6969 * Land the new message args API and type system. 6970 6971 This patch is huge, but the public API change is not 6972 really large. The set of D-BUS types has changed somewhat, 6973 and the arg "getters" are more geared toward language bindings; 6974 they don't make a copy, etc. 6975 6976 There are also some known issues. See these emails for details 6977 on this huge patch: 6978 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html 6979 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html 6980 6981 * dbus/dbus-marshal-*: all the new stuff 6982 6983 * dbus/dbus-message.c: basically rewritten 6984 6985 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init 6986 freed blocks to be all non-nul bytes so using freed memory is less 6987 likely to work right 6988 6989 * dbus/dbus-internals.c (_dbus_test_oom_handling): add 6990 DBUS_FAIL_MALLOC=N environment variable, so you can do 6991 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or 6992 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and 6993 thorough. 6994 6995 * qt/message.cpp: port to the new message args API 6996 (operator<<): use str.utf8() rather than str.unicode() 6997 (pretty sure this is right from the Qt docs?) 6998 6999 * glib/dbus-gvalue.c: port to the new message args API 7000 7001 * bus/dispatch.c, bus/driver.c: port to the new message args API 7002 7003 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the 7004 "locked" flag to TRUE and align_offset to 0; I guess we never 7005 looked at these anyhow, but seems cleaner. 7006 7007 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING): 7008 move allocation padding macro to this header; use it to implement 7009 (_DBUS_STRING_STATIC): ability to declare a static string. 7010 7011 * dbus/dbus-message.c (_dbus_message_has_type_interface_member): 7012 change to return TRUE if the interface is not set. 7013 7014 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff 7015 to dbus-marshal-validate.[hc] 7016 7017 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from 7018 dbus-internals.c 7019 7020 * dbus/Makefile.am: cut over from dbus-marshal.[hc] 7021 to dbus-marshal-*.[hc] 7022 7023 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this 7024 function here from dbus-marshal.c 7025 7026 2005-01-12 Joe Shaw <joeshaw (a] novell.com> 7027 7028 * NEWS: Update for 0.23. 7029 7030 * configure.in: Release 0.23. 7031 7032 2005-01-12 Joe Shaw <joeshaw (a] novell.com> 7033 7034 * mono/Makefile.am, mono/example/Makefile.am: Always build the 7035 dbus DLL with --debug. Clean up after the .mdb files this leaves 7036 behind. 7037 7038 * mono/doc/Makefile.am: Need to uninstall the docs on "make 7039 uninstall" 7040 7041 * mono/Arguments.cs (GetDBusTypeConstructor): If the type 7042 is an enum, get the enum's underlying type. Another mono 7043 1.1.3 fix. 7044 7045 2005-01-11 Joe Shaw <joeshaw (a] novell.com> 7046 7047 Patch from Sjoerd Simons <sjoerd (a] luon.net> 7048 7049 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine 7050 DESTDIR. It breaks stuff. 7051 7052 2005-01-11 Joe Shaw <joeshaw (a] novell.com> 7053 7054 Patch from Tambet Ingo <tambet (a] ximian.com> 7055 7056 * mono/DBusType/Array.cs (Get): Get the underlying element type by 7057 calling type.GetElementType(). The code previously depended on 7058 broken Mono behavior, which was fixed in Mono 1.1.3. 7059 7060 * mono/DBusType/Dict.cs (constructor): Fix the parameters for 7061 Activator.CreateInstance() so that the class's constructor is 7062 called with the right parameters. 7063 7064 2005-01-11 Joe Shaw <joeshaw (a] novell.com> 7065 7066 Patch from Timo Ters <ext-timo.teras (a] nokia.com> 7067 7068 * dbus/dbus-connection.c 7069 (_dbus_connection_queue_received_message_link): Call 7070 _dbus_connection_remove_timeout() instead of the _locked() 7071 variant, since it's always called from 7072 _dbus_connection_handle_watch(), which handles the locking. 7073 Removed the _locked() variant since it's no longer used. 7074 7075 2005-01-03 Havoc Pennington <hp (a] redhat.com> 7076 7077 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can 7078 return 7079 7080 2004-12-26 Havoc Pennington <hp (a] redhat.com> 7081 7082 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert 7083 7084 2005-01-03 Havoc Pennington <hp (a] redhat.com> 7085 7086 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on 7087 floating point 7088 7089 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function 7090 7091 2005-01-02 Havoc Pennington <hp (a] redhat.com> 7092 7093 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro 7094 7095 2005-01-01 Havoc Pennington <hp (a] redhat.com> 7096 7097 * configure.in: add -Wfloat-equal 7098 7099 2005-01-01 Havoc Pennington <hp (a] redhat.com> 7100 7101 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 7102 for a variety of reasons '==' doesn't do this. 7103 7104 2004-12-31 Havoc Pennington <hp (a] redhat.com> 7105 7106 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function 7107 I keep wishing I had 7108 7109 2004-12-30 John (J5) Palmieri <johnp (a] redhat.com> 7110 7111 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED 7112 7113 2004-12-30 John (J5) Palmieri <johnp (a] redhat.com> 7114 7115 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED 7116 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in 7117 dbus-protocol.h. Because they are defines and not enums they are not 7118 autogenerated. 7119 7120 2004-12-26 John (J5) Palmieri <johnp (a] redhat.com> 7121 7122 * python/dbus_bindings.pyx.in (bus_activate_service): Bind 7123 dbus_bus_activate_service 7124 7125 * python/dbus.py (Bus.activate_service): activate a service on the 7126 bus. 7127 7128 2004-12-24 Havoc Pennington <hp (a] redhat.com> 7129 7130 * test/decode-gcov.c: change to use .gcno and .gcda files, but the 7131 file format has also changed and I haven't adapted to that yet 7132 7133 * Makefile.am: load .gcno files from latest gcc 7134 7135 2004-12-23 John (J5) Palmieri <johnp (a] redhat.com> 7136 * Patch from Rob Taylor <robtaylor (a] fastmail.fm> 7137 7138 * python/dbus_bindings.pyx.in (bus_get_unix_user): New 7139 lowlevel binding 7140 7141 * python/dbus.py (get_unix_user): Added binding to 7142 call dbus_bindings.bus_get_unix_user 7143 7144 * python/extract.py: Modified the proto_pat regex to 7145 handle unsigned long 7146 7147 2004-12-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7148 7149 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for 7150 better POSIX compliance. 7151 7152 2004-12-19 Havoc Pennington <hp (a] redhat.com> 7153 7154 * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 7155 (_dbus_string_insert_8_aligned): new functions 7156 7157 * dbus/dbus-string.c (_dbus_string_alloc_space): new function 7158 7159 2004-12-18 Havoc Pennington <hp (a] redhat.com> 7160 7161 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII 7162 macro 7163 7164 * dbus/dbus-message.c: fix a comment, and add a still-unused 7165 not-implemented function 7166 7167 * dbus/dbus-marshal.h: fix comment 7168 7169 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro 7170 7171 2004-12-17 Joe Shaw <joeshaw (a] novell.com> 7172 7173 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs, 7174 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs, 7175 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of 7176 Type.UnderlyingSystemType to get the actual system type 7177 underneath. This code previously depended on the broken Mono 7178 behavior, which was fixed in 1.1.3. 7179 7180 2004-11-27 Havoc Pennington <hp (a] redhat.com> 7181 7182 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts 7183 are disabled 7184 (_dbus_string_get_const_data): inline when asserts are disabled 7185 7186 * dbus/dbus-message.c: record the _dbus_current_generation of 7187 creation so we can complain if dbus_shutdown() is used improperly. 7188 Do this only if checks are enabled. 7189 7190 * dbus/dbus-connection.c: ditto 7191 7192 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7193 7194 * test/glib/test-profile.c: add with_bus mode to profile echoes 7195 that go through the bus. 7196 7197 * test/glib/run-test.sh: add ability to run test-profile 7198 7199 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial 7200 config file reload. 7201 7202 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7203 7204 * test/glib/test-profile.c: clean up how the fake_malloc_overhead 7205 thing was implemented 7206 7207 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7208 7209 * test/glib/test-profile.c: tweak a bit, add support for some 7210 made-up minimal malloc overhead with plain sockets, since in 7211 real life some sort of buffers are unavoidable thus we could 7212 count them in the theoretical best case 7213 7214 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7215 7216 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug 7217 where I was trying to cache one too many messages 7218 7219 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7220 7221 * dbus/dbus-message.c: reimplement message cache as an array which 7222 makes the cache about twice as fast and saves maybe 1.5% overall 7223 7224 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7225 7226 * dbus/dbus-threads.c (init_global_locks): forgot to put the 7227 message cache lock here 7228 7229 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7230 7231 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and 7232 the "char byte_order" next to each other to save 4 bytes 7233 (dbus_message_new_empty_header): reduce preallocation, since the 7234 message cache should achieve a similar effect 7235 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a 7236 message cache that keeps a few DBusMessage around in a pool, 7237 another 8% speedup or so. 7238 7239 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function 7240 7241 2004-11-25 Havoc Pennington <hp (a] redhat.com> 7242 7243 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going 7244 to write, without reading or blocking, try it before the poll() 7245 and skip the poll() if nothing remains to write. This is about a 7246 3% speedup in the echo client/server 7247 7248 2004-11-25 Havoc Pennington <hp (a] redhat.com> 7249 7250 The primary change here is to always write() once before adding 7251 the write watch, which gives us about a 10% performance increase. 7252 7253 * dbus/dbus-transport-unix.c: a number of modifications to cope 7254 with removing messages_pending 7255 (check_write_watch): properly handle 7256 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of 7257 messages_pending stuff 7258 (check_read_watch): properly handle WAITING_FOR_MEMORY and 7259 AUTHENTICATED cases 7260 (unix_handle_watch): after writing, see if the write watch can be 7261 removed 7262 (unix_do_iteration): assert that write_watch/read_watch are 7263 non-NULL rather than testing that they aren't, since they 7264 aren't allowed to be NULL. check_write_watch() at the end so 7265 we add the watch if we did not finish writing (e.g. got EAGAIN) 7266 7267 * dbus/dbus-transport-protected.h: remove messages_pending call, 7268 since it resulted in too much inefficient watch adding/removing; 7269 instead we now require that the transport user does an iteration 7270 after queueing outgoing messages, and after trying the first 7271 write() we add a write watch if we got EAGAIN or exceeded our 7272 max bytes to write per iteration setting 7273 7274 * dbus/dbus-string.c (_dbus_string_validate_signature): add this 7275 function 7276 7277 * dbus/dbus-server-unix.c (unix_finalize): the socket name was 7278 freed and then accessed, valgrind flagged this bug, fix it 7279 7280 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken 7281 as the last valid field plus 1, where really it is equal to the 7282 last valid field. Corrects some message corruption issues. 7283 7284 * dbus/dbus-mainloop.c: verbosity changes 7285 7286 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM 7287 instead of aborting in one of the test codepaths 7288 7289 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that 7290 caused not printing the pid ever again if a verbose was missing 7291 the newline at the end 7292 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE 7293 7294 * dbus/dbus-connection.c: verbosity changes; 7295 (dbus_connection_has_messages_to_send): new function 7296 (_dbus_connection_message_sent): no longer call transport->messages_pending 7297 (_dbus_connection_send_preallocated_unlocked): do one iteration to 7298 try to write() immediately, so we can avoid the write watch. This 7299 is the core purpose of this patchset 7300 (_dbus_connection_get_dispatch_status_unlocked): if disconnected, 7301 dump the outgoing message queue, so nobody will get confused 7302 trying to send them or thinking stuff is pending to be sent 7303 7304 * bus/test.c: verbosity changes 7305 7306 * bus/driver.c: verbosity/assertion changes 7307 7308 * bus/dispatch.c: a bunch of little tweaks to get it working again 7309 because this patchset changes when/where you need to block. 7310 7311 2004-11-23 Havoc Pennington <hp (a] redhat.com> 7312 7313 * test/glib/test-profile.c: modify to accept a plain_sockets 7314 argument in which case it will bench plain sockets instead of 7315 libdbus, for comparison purposes. 7316 7317 2004-11-22 Havoc Pennington <hp (a] redhat.com> 7318 7319 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple 7320 threads for more time, so sysprof can get a grip on it. 7321 7322 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove 7323 pointless variable 7324 7325 2004-11-13 Havoc Pennington <hp (a] redhat.com> 7326 7327 * test/glib/test-profile.c: fix this thing up a bit 7328 7329 * dbus/dbus-message.c (dbus_message_new_empty_header): increase 7330 preallocation sizes by a fair bit; not sure if this will be an 7331 overall performance win or not, but it does reduce reallocs. 7332 7333 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore 7334 the test hack that forced constant realloc if asserts are 7335 disabled, so we can profile sanely. Sprinkle in some 7336 _DBUS_UNLIKELY() which are probably pointless, but before I 7337 noticed the real performance problem I put them in. 7338 (_dbus_string_validate_utf8): micro-optimize this thing a little 7339 bit, though callgrind says it didn't help; then special-case 7340 ascii, which did help a lot; then be sure we detect nul bytes as 7341 invalid, which is a bugfix. 7342 (align_length_then_lengthen): add some more _DBUS_UNLIKELY 7343 superstition; use memset to nul the padding instead of a manual 7344 loop. 7345 (_dbus_string_get_length): inline this as a 7346 macro; it showed up in the profile because it's used for loop 7347 tests and so forth 7348 7349 2004-11-10 Colin Walters <walters (a] verbum.org> 7350 7351 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR, 7352 for extra paranoia. 7353 7354 2004-11-09 Colin Walters <walters (a] verbum.org> 7355 7356 * dbus/dbus-string.c (_dbus_string_get_length): New 7357 function, writes DBusString to C buffer. 7358 7359 * dbus/dbus-string.h: Prototype it. 7360 7361 * dbus/dbus-message.c (dbus_message_type_to_string): New 7362 function, converts message type into C string. 7363 7364 * dbus/dbus-message.h: Prototype it. 7365 7366 * bus/selinux.c (bus_selinux_check): Take source pid, 7367 target pid, and audit data. Pass audit data to 7368 avc_has_perm. 7369 (log_audit_callback): New function, appends extra 7370 audit information. 7371 (bus_selinux_allows_acquire_service): Also take 7372 service name, add it to audit data. 7373 (bus_selinux_allows_send): Also take message 7374 type, interface, method member, error name, 7375 and destination, and add them to audit data. 7376 (log_cb): Initialize func_audit. 7377 7378 * bus/selinux.h (bus_selinux_allows_acquire_service) 7379 (bus_selinux_allows_send): Update prototypes 7380 7381 * bus/services.c (bus_registry_acquire_service): Pass 7382 service name to bus_selinux_allows_acquire_service. 7383 7384 * bus/bus.c (bus_context_check_security_policy): Pass 7385 additional audit data. Move assignment of dest 7386 to its own line. 7387 7388 2004-11-07 Colin Walters <walters (a] verbum.org> 7389 7390 * dbus/dbus-transport-unix.c (do_authentication): Always 7391 initialize auth_completed. 7392 7393 2004-11-07 Colin Walters <walters (a] verbum.org> 7394 7395 * bus/bus.c (load_config): Break into three 7396 separate functions: process_config_first_time_only, 7397 process_config_every_time, and process_config_postinit. 7398 (process_config_every_time): Move call of 7399 bus_registry_set_service_context_table into 7400 process_config_postinit. 7401 (process_config_postinit): New function, does 7402 any processing that needs to happen late 7403 in initialization (and also on reload). 7404 (bus_context_new): Instead of calling load_config, 7405 open config parser here and call process_config_first_time_only 7406 and process_config_every_time directly. Later, after 7407 we have forked but before changing UID, 7408 invoke bus_selinux_full_init, and then call 7409 process_config_postinit. 7410 (bus_context_reload_config): As in bus_context_new, 7411 load parse file inside here, and call process_config_every_time 7412 and process_config_postinit. 7413 7414 * bus/services.h, bus/services.c 7415 (bus_registry_set_service_context_table): Rename 7416 from bus_registry_set_sid_table. Take string hash from config 7417 parser, and convert them here into SIDs. 7418 7419 * bus/config-parser.c (struct BusConfigParser): Have 7420 config parser only store a mapping of service->context 7421 string. 7422 (merge_service_context_hash): New function. 7423 (merge_included): Merge context string hashes instead 7424 of using bus_selinux_id_table_union. 7425 (bus_config_parser_new): Don't use bus_selinux_id_table_new; 7426 simply create a new string hash. 7427 (bus_config_parser_unref): Unref it. 7428 (start_selinux_child): Simply insert strings into hash, 7429 don't call bus_selinux_id_table_copy_over. 7430 7431 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union) 7432 (bus_selinux_id_table_copy_over): Delete. 7433 7434 2004-11-03 Colin Walters <walters (a] verbum.org> 7435 7436 * bus/selinux.c (bus_selinux_pre_init): Kill some unused 7437 variables. 7438 7439 2004-11-03 Colin Walters <walters (a] verbum.org> 7440 7441 * bus/test-main.c (test_pre_hook): Fix test logic, 7442 thanks Joerg Barfurth <Joerg.Barfurth (a] Sun.COM>. 7443 7444 2004-11-02 Colin Walters <walters (a] redhat.com> 7445 7446 * bus/selinux.c (bus_selinux_init): Split into two functions, 7447 bus_selinux_pre_init and bus_selinux_post_init. 7448 (bus_selinux_pre_init): Just determine whether SELinux is 7449 enabled. 7450 (bus_selinux_post_init): Do everything else. 7451 7452 * bus/main.c (main): Call bus_selinux_pre_init before parsing 7453 config file, and bus_selinux_post_init after. This ensures that 7454 we don't lose the policyreload notification thread that 7455 bus_selinux_init created before forking previously. 7456 7457 * bus/test-main.c (test_pre_hook): Update for split. 7458 7459 2004-10-31 Owen Fraser-Green <owen (a] discobabe.net> 7460 7461 Patch from Johan Fischer <linux (a] fischaz.com> 7462 7463 * mono/doc/Makefile.am (install-data-local): Added directory 7464 install for DESTDIR 7465 7466 2004-10-29 Colin Walters <walters (a] redhat.com> 7467 7468 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take 7469 parameter for fd to write pid to. 7470 7471 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it. 7472 7473 * bus/bus.c (bus_context_new): Pass print_pid_fd 7474 to _dbus_become_daemon (bug #1720) 7475 7476 2004-10-29 Colin Walters <walters (a] redhat.com> 7477 7478 Patch from Ed Catmur <ed (a] catmur.co.uk> 7479 7480 * mono/doc/Makefile.am (install-data-local): Handle 7481 DESTDIR. 7482 7483 2004-10-29 Colin Walters <walters (a] redhat.com> 7484 7485 * bus/.cvsignore, qt/.cvsignore: Update. 7486 7487 2004-10-29 Colin Walters <walters (a] redhat.com> 7488 7489 Patch from Kristof Vansant <de_lupus (a] pandora.be> 7490 7491 * configure.in: Detect Slackware. 7492 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in. 7493 * bus/rc.messagebus.in: New file. 7494 7495 2004-10-29 Colin Walters <walters (a] redhat.com> 7496 7497 * tools/dbus-monitor.c (filter_func): Return 7498 DBUS_HANDLER_RESULT_HANDLED in filter function 7499 for now. See: 7500 http://freedesktop.org/pipermail/dbus/2004-August/001433.html 7501 7502 2004-10-29 Colin Walters <walters (a] redhat.com> 7503 7504 Patch from Matthew Rickard <mjricka (a] epoch.ncsc.mil> 7505 7506 * bus/services.c (bus_registry_acquire_service): 7507 Correctly retrieve service name from DBusString 7508 for printing. 7509 7510 2004-10-29 Colin Walters <walters (a] redhat.com> 7511 7512 * dbus/dbus-glib.h: Update documentation to not 7513 refer to internal APIs. 7514 7515 2004-10-27 Joe Shaw <joeshaw (a] novell.com> 7516 7517 * mono/Arguments.cs (GetDBusTypeConstructor): 7518 type.UnderlyingSystemType will return "System.Byte" if you do it 7519 on "byte[]", which is not what we want. So check the type.IsArray 7520 property and use System.Array instead. 7521 7522 2004-10-25 John (J5) Palmieri <johnp (a] redhat.com> 7523 7524 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free 7525 the DBusUserInfo structure since this is passed into the function. 7526 This would cause a double free when the function that allocated 7527 the structure would try to free it when an error occured. 7528 7529 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in): 7530 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services 7531 for service activation to avoid 32bit/64bit parallel install issues 7532 7533 2004-10-21 Colin Walters <walters (a] verbum.org> 7534 7535 * AUTHORS: Fix my email address, the @gnu.org one 7536 has been bouncing for some time. Also add J5. 7537 7538 2004-10-21 Colin Walters <walters (a] verbum.org> 7539 7540 * dbus/dbus-transport-unix.c (do_authentication): Return 7541 authentication status to callers. 7542 (unix_handle_watch): If we completed authentication this round, 7543 don't do another read. Instead wait until the next iteration, 7544 after we've read any pending data in the auth buffer. 7545 (unix_do_iteration): Ditto. 7546 (unix_handle_watch): Updated for new do_authentication prototype. 7547 7548 2004-10-18 Colin Walters <walters (a] verbum.org> 7549 7550 * bus/selinux.c (bus_selinux_enabled): Handle 7551 --disable-selinux case. 7552 7553 2004-10-18 Colin Walters <walters (a] verbum.org> 7554 7555 * bus/selinux.h: Add bus_selinux_enabled. 7556 7557 * bus/selinux.c (bus_selinux_enabled): Implement it. 7558 7559 * bus/config-parser.c (struct include): Add 7560 if_selinux_enabled member. 7561 (start_busconfig_child): Parse if_selinux_enabled 7562 attribute for include. 7563 (bus_config_parser_content): Handle it. 7564 7565 * bus/session.conf.in, bus/system.conf.in: Add 7566 inclusion of context mapping to default config files; 7567 conditional on SELinux being enabled. 7568 7569 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD. 7570 7571 * test/data/invalid-config-files/badselinux-1.conf, 7572 test/data/invalid-config-files/badselinux-2.conf: 7573 Test files for bad syntax. 7574 7575 2004-10-17 Colin Walters <walters (a] verbum.org> 7576 7577 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards) 7578 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf 7579 format specifier mismatches. 7580 7581 2004-10-07 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7582 7583 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect 7584 format string. 7585 7586 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL 7587 pointer (bug #1540, Leonardo Boiko). 7588 7589 2004-09-28 Jon Trowbridge <trow (a] ximian.com> 7590 7591 * mono/BusDriver.cs: Changed BusDriver struct to remove 7592 the ServiceCreated and ServiceDeleted events and replace them 7593 with the new ServiceOwnerChanged event. 7594 7595 * mono/example/BusListener.cs: Added a new example program, 7596 which listens for and reports any ServiceOwnerChanged events 7597 on the bus driver. 7598 7599 * mono/example/Makefile.am (DESTDIR): Build changes for the 7600 new BusListener.cs example. 7601 7602 2004-09-27 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7603 7604 * bus/signals.c (bus_match_rule_parse): validate the components of 7605 match rules (bug #1439). 7606 7607 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test. 7608 7609 2004-09-24 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7610 7611 * doc/dbus-specification.xml: document ServiceOwnerChanged 7612 signal. 7613 7614 * bus/driver.c, bus/driver.h, bus/services.c: Use 7615 ServiceOwnerChanged signal instead of ServiceCreated and 7616 ServiceDeleted. 7617 7618 * bus/dispatch.c: update testcase for the new signal. 7619 7620 2004-09-20 Jon Trowbridge <trow (a] ximian.com> 7621 7622 Patch from Nat Friedman <nat (a] novell.com> 7623 7624 * mono/Makefile.am: A number of small build fixes to allow "make 7625 distcheck" to succeed. 7626 7627 * mono/example/Makefile.am: "make distcheck" fixes. 7628 7629 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the 7630 key in @srcdir@. 7631 7632 * test/Makefile.am: "make distcheck" fixes. 7633 7634 2004-09-17 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7635 7636 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM. 7637 7638 * doc/busconfig.dtd: update the DTD for the at_console attribute. 7639 7640 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello 7641 messages after the first one (bug #1389). 7642 7643 * bus/dispatch.c (check_double_hello_message): add a test case for 7644 the double hello message bug. 7645 (check_existent_service_activation): fix check of spawning error. 7646 7647 2004-09-16 David Zeuthen <david (a] fubar.dk> 7648 7649 * python/dbus_bindings.pyx.in: Add support for int64 and uint64 7650 7651 2004-09-12 David Zeuthen <david (a] fubar.dk> 7652 7653 Patch from Kay Sievers <kay.sievers (a] vrfy.org> 7654 7655 * bus/bus.c (bus_context_new): 7656 * bus/bus.h: 7657 * bus/main.c (usage) 7658 (main): 7659 Add commandline option --nofork to override configuration file 7660 setting. 7661 7662 2004-09-09 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7663 7664 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C 7665 compilers don't like it (bug #974). 7666 7667 2004-09-04 Harald Fernengel <harry (a] kdevelop.org> 7668 7669 * qt/connection.*: Applied patch by Jrme Lodewyck 7670 <lodewyck (a] clipper.ens.fr> to integrate an existing 7671 connection into the Qt eventloop 7672 7673 2004-08-30 Jon Trowbridge <trow (a] ximian.com> 7674 7675 * mono/BusDriver.cs: Added. This is a class for interacting with 7676 the org.freedesktop.DBus service. 7677 7678 * mono/Message.cs: Added a mechanism to expose the message that is 7679 currently being dispatched via the static Message.Current 7680 property. Added Message.Sender and Message.Destination 7681 properties. 7682 7683 * mono/Handler.cs: Expose the dispatched message via 7684 Message.Current when handling method calls. 7685 7686 * mono/Service.cs: Expose the dispatched message via 7687 Message.Current when handling signal emissions. 7688 7689 * mono/Connection.cs: Bind dbus_bus_get_base_service via the 7690 Connection.BaseService property. 7691 7692 2004-08-28 Havoc Pennington <hp (a] redhat.com> 7693 7694 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable 7695 7696 More fixes from Steve Grubb 7697 7698 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak 7699 (_dbus_listen_tcp_socket): fix fd leak 7700 7701 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for 7702 EINTR to a bit lower in the code 7703 7704 2004-08-26 Jon Trowbridge <trow (a] ximian.com> 7705 7706 * bus/driver.c (bus_driver_handle_service_exists): Respond with 7707 TRUE if we are inquiring about the existence of the built-in 7708 org.freedesktop.DBus service. 7709 7710 2004-08-25 John Palmieri <johnp (a] redhat.com> 7711 * bus/config-parser.c: 7712 (struct PolicyType): Add POLICY_CONSOLE 7713 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console 7714 (start_busconfig_child): Sets up console element when 7715 <policy at_console=""> is encountered in a policy file 7716 (append_rule_from_element): Convert console elements to console 7717 rules. 7718 7719 * bus/policy.c: 7720 (bus_policy_create_client_policy): Add console rules to the client 7721 policy based on if the client is at the console 7722 (bus_policy_append_console_rule): New function for adding a 7723 console rule to a policy 7724 (bus_policy_merge): Handle console rule merging 7725 7726 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant 7727 where we check for console user files 7728 7729 * dbus/dbus-sysdeps.c: 7730 (_dbus_file_exists): New function which checks if the given 7731 file exists 7732 (_dbus_user_at_console): New function which does the system 7733 specific process of checking if the user is at the console 7734 7735 * dbus/dbus-userdb.c: 7736 (_dbus_is_console_user): New function converts a UID to user name 7737 and then calls the system specific _dbus_user_at_console to 7738 see if the user is at the console and therefor a console user 7739 7740 2004-08-25 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7741 7742 * bus/config-parser.c (set_limit): 7743 * bus/dbus-daemon-1.1.in: 7744 * test/data/valid-config-files/many-rules.conf: set the 7745 max_match_rules_per_connection limt from the config file. 7746 7747 * doc/busconfig.dtd: update the DTD. 7748 7749 * bus/driver.c: remove some unused variables. 7750 7751 2004-08-24 Mikael Hallendal <micke (a] imendio.com> 7752 7753 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 7754 it's been replaced by dbus_g_bus_get 7755 7756 2004-08-23 Colin Walters <walters (a] redhat.com> 7757 7758 Updated SELinux support from Matthew Rickard <mjricka (a] epoch.ncsc.mil> 7759 7760 * bus/selinux.h: Prototype bus_selinux_get_policy_root. 7761 7762 * bus/selinux.c: Create a thread for policy reload notification. 7763 (bus_selinux_get_policy_root): Implement. 7764 7765 * bus/config-parser.c (start_busconfig_child) 7766 (bus_config_parser_content): Support SELinux-root relative 7767 inclusion. 7768 7769 * configure.in <HAVE_SELINUX>: Add -lpthread. 7770 7771 * bus/test-main.c (test_pre_hook, test_post_hook): New. 7772 (test_post_hook): Move memory checking into here. 7773 (test_pre_hook, test_post_hook): Move SELinux checks in 7774 here, but conditional on a DBUS_TEST_SELINUX environment 7775 variable. Unfortunately we can't run the SELinux checks 7776 as a normal user, since they won't have any permissions 7777 for /selinux. So this will have to be tested manually 7778 for now, until we have virtualization for most of 7779 libselinux. 7780 7781 2004-08-23 Havoc Pennington <hp (a] redhat.com> 7782 7783 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to 7784 drop supplementary groups, suggested by Steve Grubb 7785 7786 2004-08-20 Colin Walters <walters (a] redhat.com> 7787 7788 * bus/config-parser.c (start_busconfig_child): Remove some unused 7789 variables. 7790 7791 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler 7792 warning. 7793 7794 2004-08-17 Joe Shaw <joeshaw (a] novell.com> 7795 7796 * configure.in: If --enable-mono is passed in, if we can't find 7797 mono error out. 7798 7799 * mono/Makefile.am: Use /gacutil to install assemblies into the 7800 GAC and not /root. 7801 7802 2004-08-12 Havoc Pennington <hp (a] redhat.com> 7803 7804 * NEWS: update for 0.22 7805 7806 * configure.in: release 0.22 7807 7808 2004-08-11 Colin Walters <walters (a] redhat.com> 7809 7810 * tools/dbus-send.c (main, usage): Add --reply-timeout 7811 argument. 7812 7813 2004-08-10 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7814 7815 * bus/bus.c (process_config_first_time_only): get rid of an unused 7816 DBusError that was causing a memoy leak (bug #989). 7817 7818 * dbus/dbus-keyring.c, dbus/dbus-message.c: 7819 fix compilation on Solaris/Forte C (bug #974) 7820 7821 * bus/main.c (main): plug two minuscule memleaks. 7822 7823 2004-08-10 Havoc Pennington <hp (a] redhat.com> 7824 7825 * doc/dbus-tutorial.xml: add some more info on GLib bindings 7826 7827 2004-08-09 Havoc Pennington <hp (a] redhat.com> 7828 7829 * COPYING: switch to Academic Free License version 2.1 instead of 7830 2.0, to resolve complaints about patent termination clause. 7831 7832 2004-07-31 John (J5) Palmieri <johnp (a] redhat.com> 7833 7834 * README: added documentation for the --enable-python 7835 configure switch. 7836 7837 2004-07-31 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7838 7839 * bus/config-parser.c (bus_config_parser_new): fix an invalid 7840 _unref in the SELinux support. 7841 7842 * doc/busconfig.dtd: update DTD for SELinux support. 7843 7844 * bus/config-loader-libxml.c: fix error handler and parser 7845 initialisation/cleanup. OOM test now works with libxml2 HEAD. 7846 7847 * configure.in: remove the warning about libxml2. 7848 7849 * dbus/dbus-bus.c: silence doxygen warning. 7850 7851 2004-07-31 Colin Walters <walters (a] redhat.com> 7852 7853 * configure.in: Move #error in SELinux check to its own line. 7854 7855 2004-07-31 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7856 7857 * dbus/dbus-internals.h (_DBUS_SET_OOM): 7858 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of 7859 dbus_error_set. 7860 7861 * bus/dispatch.c (check_send_exit_to_service): fix the test case, 7862 broken by the change in the _SET_OOM macros. 7863 7864 2004-07-31 Colin Walters <walters (a] redhat.com> 7865 7866 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get 7867 BUS_SET_OOM. 7868 7869 2004-07-31 Colin Walters <walters (a] redhat.com> 7870 7871 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER 7872 to correctly detect DBUS__ACQUIRE_SVC. Also add an 7873 AC_MSG_CHECKING. 7874 7875 2004-07-24 Havoc Pennington <hp (a] redhat.com> 7876 7877 SELinux support from Matthew Rickard <mjricka (a] epoch.ncsc.mil> 7878 7879 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux 7880 functionality 7881 7882 * configure.in: add --enable-selinux 7883 7884 * bus/policy.c (bus_policy_merge): add FIXME to a comment 7885 7886 * bus/main.c (main): initialize and shut down selinux 7887 7888 * bus/connection.c: store SELinux ID on each connection, to avoid 7889 repeated getting of the string context and converting it into 7890 an ID 7891 7892 * bus/bus.c (bus_context_get_policy): new accessor, though it 7893 isn't used 7894 (bus_context_check_security_policy): check whether the security 7895 context of sender connection can send to the security context of 7896 recipient connection 7897 7898 * bus/config-parser.c: add parsing for <selinux> and <associate> 7899 7900 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to 7901 implement dbus_connection_get_unix_fd() 7902 7903 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new 7904 function, used by the selinux stuff 7905 7906 2004-07-29 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7907 7908 * bus/config-loader-libxml.c: complete the implementation of 7909 libxml backend for config file loader. Doesn't work with full OOM 7910 test yet. 7911 7912 * configure.in: change error when selecting libxml into a warning. 7913 7914 * test/data/invalid-config-files: add two non-well-formed XML 7915 files. 7916 7917 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml. 7918 7919 * dbus/dbus-transport-unix.c (unix_handle_watch): do not 7920 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may 7921 be necessary to read all the buffer. (bug #894) 7922 7923 * bus/activation.c (bus_activation_activate_service): fix a 7924 potential assertion failure (bug #896). Small optimization in the 7925 case of auto-activation messages. 7926 7927 * dbus/dbus-message.c (verify_test_message, _dbus_message_test): 7928 add test case for byte-through-vararg bug (#901). patch by Kimmo 7929 Hmlinen. 7930 7931 2004-07-28 Anders Carlsson <andersca (a] gnome.org> 7932 7933 * python/dbus.py: 7934 * python/dbus_bindings.pyx.in: 7935 Add dbus.init_gthreads (), allow emit_signal to pass 7936 arguments to the signal. 7937 7938 2004-07-24 Havoc Pennington <hp (a] redhat.com> 7939 7940 * AUTHORS: add some people, not really comprehensively, let me 7941 know if I missed you 7942 7943 2004-07-24 Havoc Pennington <hp (a] redhat.com> 7944 7945 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by 7946 Owen 7947 7948 * test/Makefile.am (DIST_SUBDIRS): here also 7949 7950 2004-07-22 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7951 7952 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name, 7953 breaking build on Solaris, reported by Farhad Saberi on the ML. 7954 7955 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the 7956 va_arg invocation to account for integer promotion in the case of 7957 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901) 7958 7959 * bus/services.c (bus_service_remove_owner): fix bug #902, use 7960 _dbus_list_get_first_link, not _dbus_list_get_first. 7961 7962 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak. 7963 7964 * dbus/dbus-object-tree.c (free_subtree_recurse): always null 7965 handler functions so that the asserts in _dbus_object_subtree_unref 7966 do not fail. 7967 7968 * dbus/dbus-transport-unix.c (do_reading): 7969 _dbus_transport_queue_messages return value is of type 7970 dbus_bool_t, not DBusDispatchStatus. 7971 7972 2004-07-19 David Zeuthen <david (a] fubar.dk> 7973 7974 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN 7975 7976 * bus/dispatch.c: 7977 (check_get_connection_unix_user): Debug says GetProperty; but the 7978 method is called GetConnectionUnixUser 7979 (check_get_connection_unix_process_id): New function 7980 (bus_dispatch_test): Actually call check_get_connection_unix_user(); 7981 also call check_get_connection_unix_process_id() 7982 7983 * bus/driver.c: 7984 (bus_driver_handle_get_connection_unix_process_id): New function, 7985 handles GetConnectionUnixProcessID on the org.freedesktop.DBus 7986 interface 7987 7988 * dbus/dbus-auth.c: 7989 (handle_server_data_external_mech): Set pid from the credentials 7990 obtained from the socket 7991 7992 * dbus/dbus-connection.c: 7993 (dbus_connection_get_unix_process_id): New function 7994 7995 * dbus/dbus-connection.h: 7996 Add prototype for dbus_connection_get_unix_process_id 7997 7998 * dbus/dbus-transport.c: 7999 (_dbus_transport_get_unix_process_id): New function 8000 8001 * dbus/dbus-transport.h: 8002 Add prototype for _dbus_transport_get_unix_process_id 8003 8004 2004-07-19 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8005 8006 * dbus/dbus-message.c: Message counter fix, patch by Christian 8007 Hammond <chipx86 (a] gnupdate.org> 8008 8009 2004-07-18 Seth Nickell <seth (a] gnome.org> 8010 8011 * python/dbus.py: 8012 * python/dbus_bindings.pyx.in: 8013 * python/tests/test-client.py: 8014 8015 Add dbus.ByteArray and dbus_bindings.ByteArray 8016 types so that byte streams can be passed back. 8017 8018 Give jdahlin the heaps of credit that are so 8019 rightfully his. 8020 8021 2004-07-12 Seth Nickell <seth (a] gnome.org> 8022 8023 * python/dbus.py: 8024 8025 Add message argument to the default object_method_handler 8026 function. 8027 8028 * python/dbus_bindings.pyx.in: 8029 8030 Automatically return NIL when passed an empty list 8031 (we can't pass back a list since lists are typed 8032 and we don't have any idea what type the the client 8033 intended the list to be... :-( ) 8034 8035 2004-07-10 Seth Nickell <seth (a] gnome.org> 8036 8037 * python/examples/Makefile.am: 8038 8039 Fix distcheck breakage caused by new examples. 8040 8041 2004-07-10 Seth Nickell <seth (a] gnome.org> 8042 8043 * python/dbus.py: 8044 8045 Add "message" argument to service-side dbus.Object 8046 methods. This will break existing services written 8047 using the python bindings, but will allow extraction 8048 of all the message information (e.g. who its from). 8049 8050 Add improved "object oriented" signal handling/emission. 8051 8052 * python/examples/example-service.py: 8053 8054 Nix this example. 8055 8056 * python/examples/example-signal-emitter.py: 8057 * python/examples/example-signal-recipient.py: 8058 8059 Two new examples that show how to emit and receive 8060 signals using the new APIs. 8061 8062 * python/examples/example-signals.py: 8063 * python/examples/gconf-proxy-service.py: 8064 * python/examples/gconf-proxy-service2.py: 8065 8066 Add "message" argument to service methods. 8067 8068 2004-06-28 Kay Sievers <kay.sievers (a] vrfy.org> 8069 8070 * bus/driver.c (bus_driver_handle_get_connection_unix_user) 8071 * dbus/bus.c (dbus_bus_get_unix_user) 8072 * doc/dbus-specification.xml: implement GetConnectionUnixUser 8073 method of org.freedesktop.DBus interface. 8074 8075 * bus/dispatch.c: test case 8076 8077 2004-06-23 John (J5) Palmieri <johnp (a] redhat.com> 8078 8079 * python/Makefile.am: switched include directory from glib/ to dbus/ 8080 since dbus-glib.h moved 8081 8082 2004-06-22 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8083 8084 * configure.in: prevent building the gcj stuff and libxml loader 8085 since they are broken. 8086 8087 2004-06-20 Havoc Pennington <hp (a] redhat.com> 8088 8089 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 8090 codes from the dbus error names 8091 8092 * glib/dbus-glib.h: move to subdir dbus/ since it's included 8093 as dbus/dbus-glib.h and that breakage is now visible due to 8094 including dbus/dbus-glib.h in dbus-glib-lowlevel.h 8095 8096 * glib/dbus-glib.h: s/gproxy/g_proxy/ 8097 8098 * dbus/dbus-shared.h: new header to hold stuff shared with 8099 binding APIs 8100 8101 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather 8102 than dbus-errors.h 8103 8104 * glib/dbus-glib.h (dbus_set_g_error): move to 8105 dbus-glib-lowlevel.h 8106 8107 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch 8108 of stuff to enable this 8109 8110 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here 8111 8112 * a bunch of other changes with the same basic "separate glib 8113 bindings from dbus.h" theme 8114 8115 2004-06-10 Owen Fraser-Green <owen (a] discobabe.net> 8116 8117 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs. 8118 8119 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST. 8120 8121 2004-06-09 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8122 8123 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for 8124 the reply value of the ServiceExists message. 8125 8126 2004-06-07 John (J5) Palmieri <johnp (a] redhat.com> 8127 8128 * python/dbus_bindings.pyx.in: No longer need to parse path 8129 elements and pass them as arrays of strings. The C API now 8130 accepts plain path strings. 8131 (_build_parsed_path): removed 8132 8133 2004-06-07 Havoc Pennington <hp (a] redhat.com> 8134 8135 * doc/TODO: remove auto-activation item since it's done; sort 8136 items by importance/milestone 8137 8138 2004-06-07 Havoc Pennington <hp (a] redhat.com> 8139 8140 * dbus/dbus-message-builder.c (_dbus_message_data_load): append 8141 random signature when using REQUIRED_FIELDS (this hack won't work 8142 in the long term) 8143 8144 * dbus/dbus-message.c: change the signature to be a header field, 8145 instead of message->signature special-case string. Incremental 8146 step forward. Then we can fix up code to send the signature in the 8147 message, then fix up code to validate said signature, then fix up 8148 code to not put the typecodes inline, etc. 8149 (load_one_message): don't make up the signature after the fact 8150 (decode_header_data): require signature field for the known 8151 message types 8152 8153 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new 8154 8155 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE 8156 8157 2004-06-07 Owen Fraser-Green <owen (a] discobabe.net> 8158 8159 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path 8160 8161 * mono/Handler.cs: Updated to follow new path argument for 8162 (un-)registering objects. 8163 8164 * mono/example/Makefile.am: 8165 * mono/Makefile.am: 8166 * configure.in: Bumped required version for mono and use new -pkg 8167 syntax for deps 8168 8169 2004-06-05 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8170 8171 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path 8172 registration functions take the path argument as char* instead of 8173 char**. 8174 8175 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path): 8176 split off the path decompostion part of 8177 _dbus_demarshal_object_path. Some misc. fixes to silence compiler 8178 warnings. 8179 8180 * glib/dbus-gobject.c, test/test-service.c: update accordingly. 8181 8182 2004-06-02 Kristian Hgsberg <krh (a] redhat.com> 8183 8184 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state 8185 machine approach. A state is implemented as a function that 8186 handles incoming events as specified for that state. 8187 8188 * doc/dbus-specification.xml: Update auth protocol state machine 8189 specification to match implementation. Remove some leftover 8190 base64 examples. 8191 8192 2004-06-02 Kristian Hgsberg <krh (a] redhat.com> 8193 8194 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c, 8195 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to 8196 quiet doxygen. 8197 8198 * Doxyfile.in: remove deprecated options. 8199 8200 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h, 8201 glib/test-thread.h, glib/test-thread-client.c, 8202 glib/test-thread-server.c, glib/test-profile.c, 8203 glib/test-dbus-glib.c: remove these unused files. 8204 8205 2004-06-01 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8206 8207 * dbus/dbus-object-tree.c 8208 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for 8209 non-fallback handlers (bug #684). 8210 (_dbus_object_subtree_new): initialize invoke_as_fallback field. 8211 (find_subtree_recurse): report wether the returned subtree is an 8212 exact match or a "fallback" match higher up in the tree. 8213 (object_tree_test_iteration): update test case. 8214 8215 2004-06-01 Seth Nickell <seth (a] gnome.org> 8216 8217 * python/dbus_bindings.pyx.in: 8218 * python/tests/test-client.py: 8219 8220 Round off basic type support. Add dicts (yay!), and 8221 remaining array types. 8222 8223 Make MessageIter more general so it works for dicts too. 8224 8225 Mark all loop variables as C integers. 8226 8227 2004-05-31 Havoc Pennington <hp (a] redhat.com> 8228 8229 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with 8230 "in" before "out" 8231 8232 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c 8233 8234 * glib/dbus-glib-tool.c (main): set up to have a --self-test 8235 option that runs the tests, and start filling in some code 8236 including for starters just dumping the interfaces to stdout 8237 8238 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR 8239 8240 * test/data/valid-introspection-files/lots-of-types.xml: test of 8241 an example introspection file 8242 8243 * glib/dbus-gparser.c (parser_check_doctype): doctype should be 8244 "node" (I think...) 8245 8246 2004-05-31 Seth Nickell <seth (a] gnome.org> 8247 8248 * python/dbus_bindings.pyx.in: 8249 * python/tests/test-client.py: 8250 8251 Test Suite: 1 8252 Python Bindings: 0 8253 8254 Fix string array memory trashing bug... oops... 8255 8256 2004-05-30 Seth Nickell <seth (a] gnome.org> 8257 8258 * python/dbus.py: 8259 8260 Add a nicer-but-less-flexible alternate API for handling 8261 calls to virtual objects in dbus.ObjectTree. 8262 8263 Screw up the argument order to the dbus.Object constructor 8264 for consistency with dbus.ObjectTree (and to make dbus_methods 8265 optional for future extension) 8266 8267 * python/examples/Makefile.am: 8268 * python/examples/gconf-proxy-service.py: 8269 * python/examples/gconf-proxy-service2.py: 8270 8271 Alternate implementation of gconf-proxy-service using the 8272 nicer dbus.ObjectTree API. 8273 8274 * python/examples/example-service.py: 8275 * python/tests/test-server.py 8276 8277 Reverse the argument order to deal with dbus.Object constructor 8278 changes. 8279 8280 2004-05-30 Seth Nickell <seth (a] gnome.org> 8281 8282 * python/examples/example-client.py: 8283 * python/examples/example-service.py: 8284 8285 Take it back. Lists seem to work but they're broken 8286 in the test suite. Make the base examples use 8287 lists (works fine). 8288 8289 2004-05-30 Seth Nickell <seth (a] gnome.org> 8290 8291 * python/dbus_bindings.pyx.in: 8292 * python/tests/test-client.py: 8293 8294 Add some more tests and fix errors that crop up. 8295 Unfortunately, currently it seems like marshalling 8296 and unmarshalling of lists is completely broken :-( 8297 8298 2004-05-30 Seth Nickell <seth (a] gnome.org> 8299 8300 * python/dbus_bindings.pyx.in: 8301 8302 Add support for ObjectPath type. 8303 8304 * python/dbus.py: 8305 8306 Refactor message handling code to a common function. 8307 8308 * python/tests/test-client.py: 8309 * python/tests/test-server.py: 8310 8311 Add tests that check to make sure values of all types 8312 can be echoed from a service w/o mangling. 8313 8314 2004-05-29 Seth Nickell <seth (a] gnome.org> 8315 8316 * python/dbus.py: 8317 8318 Add ObjectTree class which allows implementation 8319 of trees of "virtual" objects. Basically the python 8320 wrapper for "register_fallback". 8321 8322 * python/examples/Makefile.am 8323 * python/examples/gconf-proxy-client.py: 8324 * python/examples/gconf-proxy-service.py: 8325 8326 Implement a simple GConf proxy service that supports 8327 get/set on string and int GConf keys using the ObjectTree. 8328 8329 2004-05-29 Seth Nickell <seth (a] gnome.org> 8330 8331 * python/dbus.py: 8332 * python/examples/example-client.py: 8333 * python/examples/example-service.py: 8334 * python/examples/list-system-services.py: 8335 8336 Add SessionBus, SystemBus and ActivationBus classes 8337 so you don't need to know the special little BUS_TYPE 8338 flag. 8339 8340 2004-05-29 Havoc Pennington <hp (a] redhat.com> 8341 8342 * bus/config-parser.c (process_test_valid_subdir): temporarily 8343 stop testing config parser OOM handling, since expat has issues 8344 http://freedesktop.org/pipermail/dbus/2004-May/001153.html 8345 8346 * bus/dbus-daemon-1.1.in: change requested_reply to 8347 send_requested_reply/receive_requested_reply so we can send the 8348 replies, not just receive them. 8349 8350 * bus/config-parser.c: parse the new 8351 send_requested_reply/receive_requested_reply 8352 8353 * bus/policy.c (bus_client_policy_check_can_send): add 8354 requested_reply argument and use it 8355 8356 * bus/bus.c (bus_context_check_security_policy): pass through 8357 requested_reply status to message send check 8358 8359 * bus/system.conf.in: adapt to requested_reply change 8360 8361 2004-05-28 Havoc Pennington <hp (a] redhat.com> 8362 8363 * test/glib/test-service-glib.c (main): remove unused variable 8364 8365 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning 8366 8367 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES 8368 from the enum, no longer in use. 8369 8370 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually 8371 works right. 8372 8373 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for 8374 whether error_name passed in is a valid error name. 8375 8376 2004-05-28 John (J5) Palmieri <johnp (a] redhat.com> 8377 8378 * dbus/dbus-message.c (dbus_message_get_args): Added support for 8379 OBJECT_PATH and OBJECT_PATH_ARRAY 8380 8381 2004-05-28 Seth Nickell <seth (a] gnome.org> 8382 8383 * python/examples/Makefile.am: 8384 8385 Forget to add Makefile.am. Do not pass go. 8386 8387 2004-05-28 Michael Meeks <michael (a] ximian.com> 8388 8389 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 8390 fix no int64 case. 8391 8392 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl. 8393 8394 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type), 8395 (_dbus_message_iter_get_basic_type_array): impl. 8396 drastically simplify ~all relevant _get methods to use these. 8397 (_dbus_message_iter_append_basic_array), 8398 (dbus_message_iter_append_basic): impl 8399 drastically simplify ~all relevant _append methods to use these. 8400 8401 * dbus/dbus-message-builder.c (parse_basic_type) 8402 (parse_basic_array, lookup_basic_type): impl. 8403 (_dbus_message_data_load): prune scads of duplicate / 8404 cut & paste coding. 8405 8406 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 8407 (_dbus_demarshal_basic_type): implement, 8408 (demarshal_and_validate_len/arg): beef up debug. 8409 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl. 8410 8411 2004-05-27 Seth Nickell <seth (a] gnome.org> 8412 8413 * configure.in: 8414 * python/Makefile.am: 8415 8416 Include the example python apps in the tarball. 8417 8418 * python/examples/list-system-services.py 8419 8420 Add a python new example that fetches the list of services 8421 from the system bus. 8422 8423 2004-05-27 Seth Nickell <seth (a] gnome.org> 8424 8425 * python/dbus.py: 8426 * python/dbus_bindings.pyx.in: 8427 8428 Fix failure to notify that a signal was not handled, 8429 resulted in hung functions. 8430 8431 2004-05-25 Colin Walters <walters (a] redhat.com> 8432 8433 * tools/dbus-monitor.c (main): Monitor all types of messages. 8434 8435 2004-05-23 Owen Fraser-Green <owen (a] discobabe.net> 8436 8437 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method 8438 which unregisters the object path and disposes the handler. 8439 8440 2004-05-23 Kristian Hgsberg <krh (a] redhat.com> 8441 8442 Patch from Timo Ters <ext-timo.teras (a] nokia.com> (#614): 8443 8444 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap 8445 operands to && so we call dbus_message_iter_next () for the last 8446 argument also. 8447 8448 2004-05-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8449 8450 * dbus/dbus-object-tree.c 8451 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return 8452 children even if the requested path isn't registered. 8453 (object_tree_test_iteration): test object_tree_list_registered. 8454 8455 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining 8456 it to 0. 8457 8458 2004-05-20 Kristian Hgsberg <krh (a] redhat.com> 8459 8460 * doc/TODO: Remove resolved items. 8461 8462 * bus/expirelist.h (struct BusExpireList): remove unused n_items 8463 field. 8464 8465 * bus/connection.c (bus_connections_expect_reply): Enforce the 8466 per-connection limit on pending replies. 8467 8468 Patch from Jon Trowbridge <trow (a] ximian.com>: 8469 8470 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets 8471 up a watch that triggers a config reload when one end of the pipe 8472 becomes readable. 8473 (signal_handler): Instead of doing the config reload in our SIGHUP 8474 handler, just write to the reload pipe and let the associated 8475 watch handle the reload when control returns to the main loop. 8476 8477 * bus/driver.c (bus_driver_handle_reload_config): Added. 8478 Implements a ReloadConfig method for requesting a configuration 8479 file reload via the bus driver. 8480 8481 2004-05-19 Owen Fraser-Green <owen (a] discobabe.net> 8482 8483 * HACKING: Updated release instructions concerning the wiki page. 8484 8485 2004-05-18 Kristian Hgsberg <krh (a] redhat.com> 8486 8487 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to 8488 filter against auth->allowed_mechs; we only add allowed mechs in 8489 record_mechanisms(). 8490 8491 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an 8492 ALLOWED_MECHS to auth-script format so we can set the list of 8493 allowed mechanisms. 8494 8495 * data/auth/client-out-of-mechanisms.auth-script: New test to 8496 check client disconnects when it is out of mechanisms to try. 8497 8498 * dbus/dbus-auth.c (process_command): Remove check for lines 8499 longer that 1 MB; we only buffer up maximum 16 kB. 8500 8501 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, 8502 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h: 8503 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always 8504 assume there might be unused bytes. 8505 8506 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for 8507 client-out-of-mechs, it is handled in process_reject(). Move check 8508 for max failures to send_rejected(), as it's a server-only thing. 8509 8510 * dbus/dbus-auth.c: Factor out protocol reply code into functions 8511 send_auth(), send_data(), send_rejected(), send_error(), 8512 send_ok(), send_begin() and send_cancel(). 8513 8514 2004-05-17 Kristian Hgsberg <krh (a] redhat.com> 8515 8516 Remove base64 encoding, replace with hex encoding. Original patch 8517 from trow (a] ximian.com, added error handling. 8518 8519 * dbus/dbus-string.c (_dbus_string_base64_encode) 8520 (_dbus_string_base64_decode): Remove. 8521 (_dbus_string_hex_decode): Add end_return argument so we can 8522 distinguish between OOM and invalid hex encoding. 8523 (_dbus_string_test): Remove base64 tests and add test case for 8524 invalid hex. 8525 8526 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c: 8527 Replace base64 with hex. 8528 8529 * test/data/auth/invalid-hex-encoding.auth-script: New test case 8530 for invalid hex encoded data in auth protocol. 8531 8532 2004-05-17 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8533 8534 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory 8535 leak. 8536 8537 2004-05-15 Owen Fraser-Green <owen (a] discobabe.net> 8538 8539 * mono/dbus-sharp.dll.config.in: Added for GAC 8540 * mono/dbus-sharp.snk: Added for GAC 8541 * mono/Assembly.cs.in: Added for GAC 8542 * mono/Makefile.am: Changes for GAC installation 8543 * configure.in: Added refs for dbus-sharp.dll.config.in and 8544 Assembly.cs.in. More fixes for mono testing 8545 * mono/example/Makefile.am: Changed var to CSC 8546 * Makefile.am: Changed flag name to DBUS_USE_CSC 8547 8548 2004-05-15 Owen Fraser-Green <owen (a] discobabe.net> 8549 8550 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order 8551 * mono/doc/*: Added documentation framework 8552 * configure.in: Added monodoc check 8553 * README: Added description of mono configure flags 8554 8555 2004-05-11 John (J5) Palmieri <johnp (a] redhat.com>: 8556 8557 * doc/dbus-specification.xml: Added a "Required" column to the 8558 header fields table and changed the "zero or more" verbage in 8559 the above paragraph to read "The header must contain the required 8560 named header fields and zero or more of the optional named header 8561 fields". 8562 * test/data/invalid-messages/*.message: Added the required PATH 8563 named header field to the tests so that they don't fail on 8564 'Missing path field' 8565 8566 2004-05-07 John (J5) Palmieri <johnp (a] redhat.com> 8567 8568 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing 8569 the stack by implicitly defining variable and parameter types and 8570 removing the hack of defining C pointers as python objects and later 8571 casting them. 8572 8573 2004-05-02 Owen Fraser-Green <owen (a] discobabe.net> 8574 8575 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target 8576 8577 2004-05-01 Owen Fraser-Green <owen (a] discobabe.net> 8578 8579 * mono/DBusType/Dict.cs: Handle empty dicts 8580 * mono/DBusType/Array.cs: Handle empty arrays 8581 * mono/Arguments.cs: Handle empty arguments 8582 8583 2004-04-30 Owen Fraser-Green <owen (a] discobabe.net> 8584 8585 * dbus-sharp.pc.in: Modified to include include Libs and Requires 8586 field 8587 8588 2004-04-25 Kristian Hgsberg <krh (a] redhat.com> 8589 8590 * test/data/valid-messages/standard-*.message: Update message 8591 test scripts to new header field names. 8592 8593 2004-04-22 John (J5) Palmieri <johnp (a] redhat.com> 8594 8595 * test/break-loader.c (randomly_do_n_things): tracked down buffer 8596 overflow to times_we_did_each_thing array which would chop off the 8597 first character of the failure_dir string. Increased the size of 8598 the array to 7 to reflect the number of random mutation functions 8599 we have. 8600 8601 2004-04-21 Kristian Hgsberg <krh (a] redhat.com> 8602 8603 * dbus/dbus-server-unix.c (unix_finalize): Don't unref 8604 unix_server->watch here, it is unreffed in disconnect. 8605 (_dbus_server_new_for_tcp_socket): convert NULL host to 8606 "localhost" here so we don't append NULL to address. 8607 8608 * dbus/dbus-server.c (_dbus_server_test): Add test case for 8609 various addresses, including tcp with no explicit host. 8610 8611 2004-04-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8612 8613 * dbus/dbus-message.c (decode_header_data, decode_string_field): 8614 fix incorrect setting of .name_offset in the HeaderField (it was 8615 off by two bytes, positioned right after the name and typecode) 8616 8617 * bus/bus.c (bus_context_new, bus_context_unref): test before 8618 calling dbus_server_free_data_slot and _dbus_user_database_unref 8619 in case of an error. 8620 8621 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed 8622 by libdbus-gtool. 8623 8624 2004-04-19 Kristian Hgsberg <krh (a] redhat.com> 8625 8626 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use 8627 _dbus_poll() instead of select(). 8628 8629 2004-04-15 Jon Trowbridge <trow (a] ximian.com> 8630 8631 * bus/main.c (signal_handler): Reload the configuration files 8632 on SIGHUP. 8633 (main): Set up our SIGHUP handler. 8634 8635 * bus/bus.c (struct BusContext): Store the config file, user and 8636 fork flag in the BusContext. 8637 (process_config_first_time_only): Added. Contains the code 8638 (previously in bus_context_new) for setting up the BusContext from 8639 the BusConfigParser that should only be run the first time the 8640 config files are read. 8641 (process_config_every_time): Added. Contains the code (previously 8642 in bus_context_new) for setting up the BusContext from the 8643 BusConfigParser that should be run every time the config files are 8644 read. 8645 (load_config): Added. Builds a BusConfigParser from the config 8646 files and passes the resulting structure off to 8647 process_config_first_time_only (assuming this is the first time) 8648 and process_config_every_time. 8649 (bus_context_new): All of the config-related code has been moved 8650 to process_config_first_time_only and process_config_every_time. 8651 Now this function just does the non-config-related initializations 8652 and calls load_config. 8653 (bus_context_reload_config): Added. 8654 8655 2004-04-15 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8656 8657 * bus/driver.c (bus_driver_handle_get_service_owner): 8658 implement a GetServiceOwner method. 8659 * doc/dbus-specification.xml: document it. 8660 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error. 8661 8662 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner): 8663 implement, using the bus GetServiceOwner method. 8664 8665 * test/glib/test-dbus-glib.c: 8666 use dbus_gproxy_new_for_service_owner so that we can receive the 8667 signal. 8668 8669 2004-04-15 John (J5) Palmieri <johnp (a] redhat.com> 8670 8671 * dbus/dbus-internals.c, dbus/dbus-message-builder.c, 8672 dbus/dbus-message.c, dbus/dbus-protocol.h 8673 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION 8674 8675 * dbus/dbus-internals.c, dbus/dbus-message-builder.c, 8676 dbus/dbus-message.c, dbus/dbus-protocol.h 8677 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER 8678 8679 * dbus/dbus-internals.c (_dbus_header_field_to_string): 8680 DBUS_HEADER_FIELD_DESTINATION resolves to "destination" 8681 DBUS_HEADER_FIELD_SENDER resolves to "sender" 8682 8683 * doc/dbus-specification.xml (Header Fields Table): 8684 s/SERVICE/DESTINATION 8685 s/SENDER_SERVICE/SENDER 8686 8687 8688 2004-04-14 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8689 8690 * test/glib/test-dbus-glib.c (timed_exit): fail the test after 8691 a few seconds. 8692 8693 2004-04-13 Michael Meeks <michael (a] ximian.com> 8694 8695 * glib/dbus-gobject.c (handle_introspect): split out 8696 (introspect_properties): this. 8697 (handle_introspect): implement this. 8698 8699 * test/glib/Makefile.am: use the absolute path so the bus 8700 daemon's chdir ("/") doesn't kill us dead. 8701 8702 * configure.in: subst ABSOLUTE_TOP_BUILDDIR 8703 8704 2004-04-12 Jon Trowbridge <trow (a] ximian.com> 8705 8706 * bus/config-parser.c (struct BusConfigParser): Added 8707 included_files field. 8708 (seen_include): Added. Checks whether or not a file has already 8709 been included by any parent BusConfigParser. 8710 (bus_config_parser_new): Copy the parent's included_files. 8711 (include_file): Track which files have been included, and fail on 8712 circular inclusions. 8713 (process_test_valid_subdir): Changed printf to report if we are 8714 testing valid or invalid conf files. 8715 (all_are_equiv): Changed printf to be a bit clearer about 8716 what we are actually doing. 8717 (bus_config_parser_test): Test invalid configuration files. 8718 8719 2004-04-09 Jon Trowbridge <trow (a] ximian.com> 8720 8721 * bus/config-parser.c (bus_config_parser_new): Added a 'parent' 8722 argument. If non-null, the newly-constructed BusConfigParser will 8723 be initialized with the parent's BusLimits instead of the default 8724 values. 8725 (include_file): When including a config file, pass in 8726 the current parser as the parent and then copy the BusLimits 8727 from the included BusConfigParser pack to the current parser. 8728 (process_test_valid_subdir): Renamed from process_test_subdir. 8729 (process_test_equiv_subdir): Added. Walks through a directory, 8730 descending into each subdirectory and loading the config files 8731 it finds there. If any subdirectory contains two config files 8732 that don't produce identical BusConfigParser structs, fail. 8733 For now, the BusConfigParser's BusPolicies are not compared. 8734 (bus_config_parser_test): Call both process_test_valid_subdir and 8735 process_test_equiv_subdir. 8736 8737 * bus/config-loader-libxml.c (bus_config_load): Take a parent 8738 argument and pass it along to the call to bus_config_parser_new. 8739 Also made a few small changes to allow this code to compile. 8740 8741 * bus/config-loader-expat.c (bus_config_load): Take a parent 8742 argument and pass it along to the call to bus_config_parser_new. 8743 8744 * bus/bus.c (bus_context_new): Load the config file 8745 with a NULL parent argument. 8746 8747 2004-03-29 Michael Meeks <michael (a] ximian.com> 8748 8749 * glib/dbus-gobject.c (introspect_properties): split 8750 out, fix mangled 'while' flow control. 8751 (introspect_signals): implement. 8752 (handle_introspect): update. 8753 8754 2004-03-29 Michael Meeks <michael (a] ximian.com> 8755 8756 * glib/dbus-gobject.c (set_object_property): split out / 8757 re-work, use the property type, and not the message type(!) 8758 (get_object_property): ditto. 8759 8760 * glib/dbus-gvalue.c (dbus_gvalue_demarshal), 8761 (dbus_gvalue_marshal): make this code re-usable, needed 8762 for signals too, also on both proxy and server side. 8763 Re-write for more efficiency / readability. 8764 8765 2004-03-29 Michael Meeks <michael (a] ximian.com> 8766 8767 * dbus/dbus-message.c 8768 (dbus_message_new_error_printf): impl. 8769 8770 * dbus/dbus-connection.c 8771 (dbus_connection_unregister_object_path): fix warning. 8772 8773 * configure.in: fix no-mono-installed situation. 8774 8775 2004-03-27 Havoc Pennington <hp (a] redhat.com> 8776 8777 Patch from Timo Ters: 8778 8779 * tools/dbus-send.c (main): if --print-reply, assume type is 8780 method call; support boolean type args 8781 8782 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a 8783 bunch of memleak and logic bugs 8784 8785 2004-03-23 Owen Fraser-Green <owen (a] discobabe.net> 8786 8787 * mono/Arguments.cs: 8788 * mono/Introspector.cs: 8789 * mono/Handler.cs: 8790 * mono/InterfaceProxy.cs: 8791 * mono/Message.cs 8792 * mono/ProxyBuilder.cs: 8793 * mono/Service.cs: 8794 Added InterfaceProxy class to avoid building proxies for every 8795 object. 8796 8797 * dbus-message.h: 8798 * dbus-message.c (dbus_message_append_args_valist) 8799 (dbus_message_iter_get_object_path) 8800 (dbus_message_iter_get_object_path_array) 8801 (dbus_message_iter_append_object_path) 8802 (dbus_message_iter_append_object_path_array): 8803 Added object_path iter functions to handle OBJECT_PATH arguments 8804 8805 2004-03-23 Owen Fraser-Green <owen (a] discobabe.net> 8806 8807 First checkin of mono bindings. 8808 * configure.in: 8809 * Makefile.am: 8810 Build stuff for the bindings 8811 * dbus-sharp.pc.in: Added for pkgconfig 8812 8813 2004-03-21 Havoc Pennington <hp (a] redhat.com> 8814 8815 * test/test-service.c (main): remove debug spew 8816 8817 2004-03-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8818 8819 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty 8820 arrays 8821 8822 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init) 8823 (dbus_message_iter_init_array_iterator) 8824 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to 8825 indicate whether the iterator is empty 8826 8827 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler 8828 warnings 8829 8830 2004-03-19 Havoc Pennington <hp (a] redhat.com> 8831 8832 * NEWS: 0.21 updates 8833 8834 * configure.in: 0.21 8835 8836 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED 8837 8838 * python/Makefile.am: change to avoid dist of dbus_bindings.c so 8839 you don't need pyrex to make dist 8840 8841 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to 8842 sources; run moc 8843 8844 2004-03-18 Richard Hult <richard (a] imendio.com> 8845 8846 * dbus/dbus-message.c (dbus_message_get_auto_activation) 8847 (dbus_message_set_auto_activation): Add doxygen docs. 8848 8849 2004-03-16 Richard Hult <richard (a] imendio.com> 8850 8851 * bus/activation.c: (bus_activation_service_created), 8852 (bus_activation_send_pending_auto_activation_messages), 8853 (bus_activation_activate_service): 8854 * bus/activation.h: 8855 * bus/dispatch.c: (bus_dispatch), 8856 (check_nonexistent_service_auto_activation), 8857 (check_service_auto_activated), 8858 (check_segfault_service_auto_activation), 8859 (check_existent_service_auto_activation), (bus_dispatch_test): 8860 * bus/driver.c: (bus_driver_handle_activate_service): 8861 * bus/services.c: (bus_registry_acquire_service): 8862 * dbus/dbus-message.c: (dbus_message_set_auto_activation), 8863 (dbus_message_get_auto_activation): 8864 * dbus/dbus-message.h: 8865 * dbus/dbus-protocol.h: Implement auto-activation. 8866 8867 * doc/dbus-specification.xml: Add auto-activation to the spec. 8868 8869 2004-03-12 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8870 8871 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): 8872 fix a bug with CUSTOM types. 8873 8874 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add 8875 a unit test for this bug (used to fail). 8876 8877 2004-03-12 Mikael Hallendal <micke (a] imendio.com> 8878 8879 * bus/activation.c: 8880 (babysitter_watch_callback): notify all pending activations waiting for 8881 the same exec that the activation failed. 8882 (bus_activation_activate_service): shortcut the activation if we 8883 already waiting for the same executable to start up. 8884 8885 2004-03-12 Mikael Hallendal <micke (a] imendio.com> 8886 8887 * bus/activation.c: 8888 - Added service file reloading. 8889 Each service files directory is kept in an hash table in 8890 BusActivation and each BusActivationEntry knows what .service-file it 8891 was read from. So when you try to activate a service the bus will 8892 check if it's been updated, removed or if new .service-files has 8893 been installed. 8894 - Test code at the bottom for the service file reloading. 8895 * bus/test-main.c: (main): 8896 * bus/test.h: 8897 - added service reloading test. 8898 * dbus/dbus-sysdeps.c: 8899 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added. 8900 8901 2004-03-08 Michael Meeks <michael (a] ximian.com> 8902 8903 * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 8904 bail immediately if disconnected, to avoid busy loop. 8905 8906 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): 8907 cleanup cut/paste/inefficiency. 8908 8909 2004-03-01 David Zeuthen <david (a] fubar.dk> 8910 8911 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a 8912 bug where args were used twice. This bug resulted in a segfault 8913 on a Debian/PPC system when starting the messagebus daemon. Include 8914 dbus-sysdeps.h for DBUS_VA_COPY 8915 8916 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib 8917 8918 * configure.in: Check for va_copy; define DBUS_VA_COPY to the 8919 appropriate va_copy implementation. From GLib 8920 8921 2004-02-24 Joe Shaw <joe (a] ximian.com> 8922 8923 * bus/services.c (bus_registry_acquire_service): We need to pass 8924 in the service name to dbus_set_error() to prevent a crash. 8925 8926 2003-12-26 Anders Carlsson <andersca (a] gnome.org> 8927 8928 * AUTHORS: Reveal my True identity. 8929 8930 2003-12-17 Mikael Hallendal <micke (a] imendio.com> 8931 8932 * dbus/dbus-message.c: (dbus_message_append_args_valist): 8933 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg. 8934 8935 2003-12-13 Mikael Hallendal <micke (a] imendio.com> 8936 8937 * doc/TODO: Added not about better error check of configuration files. 8938 8939 2003-12-02 Richard Hult <richard (a] imendio.com> 8940 8941 * Update AFL version to 2.0 throughout the source files to reflect 8942 the update that was done a while ago. 8943 8944 2003-12-02 Richard Hult <richard (a] imendio.com> 8945 8946 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set 8947 wrote_dict_key to FALSE on the iter that the dict is appended to, 8948 just like when appending other types. Fixes a bug where a dict 8949 couldn't be put inside a dict. 8950 (dbus_message_iter_append_dict_key): Fix typo in warning message. 8951 (message_iter_test, _dbus_message_test): Add test case for dict 8952 inside dict. 8953 8954 2003-12-01 David Zeuthen <david (a] fubar.dk> 8955 8956 * python/dbus.py: Add the actual message when calling the reciever 8957 of a signal such that parameters can be inspected. Add the method 8958 remove_signal_receiver 8959 8960 2003-11-26 Mikael Hallendal <micke (a] imendio.com> 8961 8962 * bus/*.[ch]: 8963 * dbus/*.[ch]: 8964 * glib/*.[ch]: Made ref functions return the pointer 8965 8966 2003-11-25 Zack Rusin <zack (a] kde.org> 8967 8968 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer, 8969 8970 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 8971 wrappers, 8972 8973 * qt/connection.h, qt/connection.cpp: Adjusting to changes in 8974 the Integrator and to better fit with the server, 8975 8976 2003-11-24 Zack Rusin <zack (a] kde.org> 8977 8978 * qt/connection.h, qt/connection.cpp: removing initDbus method since 8979 the integrator handles it now 8980 8981 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts, 8982 since QTimer wasn't really meant to be used the way DBusTimeout is 8983 8984 2003-11-24 Zack Rusin <zack (a] kde.org> 8985 8986 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 8987 Integrator class which integrates D-BUS with the Qt event loop, 8988 8989 * qt/connection.h, qt/connection.cpp: Move all the code which 8990 was dealing with D-BUS integration to the Integrator class, 8991 and start using Integrator, 8992 8993 2003-11-23 Zack Rusin <zack (a] kde.org> 8994 8995 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 8996 wrapper 8997 8998 * qt/message.h, qt/message.cpp: updating to the current D-BUS api, 8999 switching namespaces to DBusQt, reworking the class, 9000 9001 * Makefile.cvs: switching dependencies so that it matches KDE 9002 schematics, 9003 9004 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 9005 the library 9006 9007 2003-11-19 Havoc Pennington <hp (a] redhat.com> 9008 9009 * NEWS: update 9010 9011 * configure.in: bump version to 0.20 9012 9013 * configure.in (have_qt): add yet another place to look for qt 9014 (someone hand trolltech a .pc file...) 9015 9016 2003-11-01 Havoc Pennington <hp (a] redhat.com> 9017 9018 * doc/dbus-specification.xml: add state machine docs on the auth 9019 protocol; just a first draft, I'm sure it's wrong. 9020 9021 2003-10-28 David Zeuthen <david (a] fubar.dk> 9022 9023 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries 9024 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h 9025 9026 2003-10-28 Havoc Pennington <hp (a] redhat.com> 9027 9028 * dbus/dbus-message.c (get_next_field): delete unused function 9029 9030 2003-10-28 Havoc Pennington <hp (a] redhat.com> 9031 9032 * bus/expirelist.c (do_expiration_with_current_time): detect 9033 failure of the expire_func due to OOM 9034 9035 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM 9036 9037 * bus/dispatch.c (check_send_exit_to_service): fix to handle the 9038 NoReply error that's now created by the bus when the service exits 9039 9040 2003-10-28 Havoc Pennington <hp (a] redhat.com> 9041 9042 * dbus/dbus-message.c (_dbus_message_test): enable and fix the 9043 tests for set_path, set_interface, set_member, etc. 9044 9045 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes 9046 9047 * dbus/dbus-message.c (set_string_field): always just delete and 9048 re-append the field; accept NULL for deletion 9049 (re_align_fields_recurse): reimplement 9050 9051 2003-10-26 Havoc Pennington <hp (a] redhat.com> 9052 9053 * dbus/dbus-connection.c: fix docs to properly describe the 9054 disconnected message 9055 (_dbus_connection_notify_disconnected): remove this function; 9056 we can't synchronously add the disconnected message, we have to 9057 do it after we've queued any remaining real messages 9058 (_dbus_connection_get_dispatch_status_unlocked): queue the 9059 disconnect message only if the transport has finished queueing all 9060 its real messages and is disconnected. 9061 (dbus_connection_disconnect): update the dispatch status here 9062 9063 2003-10-22 Havoc Pennington <hp (a] redhat.com> 9064 9065 * bus/bus.c (bus_context_check_security_policy): fix up assertion 9066 9067 * bus/connection.c (bus_transaction_send_from_driver): set the 9068 destination to the connection's base service 9069 9070 2003-10-20 Havoc Pennington <hp (a] redhat.com> 9071 9072 hmm, make check is currently not passing. 9073 9074 * doc/dbus-specification.xml: add requirement that custom type 9075 names follow the same rules as interface names. 9076 9077 * dbus/dbus-protocol.h: change some of the byte codes, to avoid 9078 duplication and allow 'c' to be 'custom'; dict is now 'm' for 9079 'map' 9080 9081 * doc/dbus-specification.xml: update type codes to match 9082 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to 9083 CUSTOM. Add type OBJECT_PATH to the spec. 9084 9085 2003-10-17 Havoc Pennington <hp (a] redhat.com> 9086 9087 * bus/driver.c (create_unique_client_name): use "." as separator 9088 in base service names instead of '-' 9089 9090 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul 9091 byte at the end of the string 9092 9093 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add 9094 optimization macros since string validation seems to be a slow 9095 point. 9096 9097 * doc/dbus-specification.xml: restrict valid 9098 service/interface/member/error names. Add test suite code for the 9099 name validation. 9100 9101 * dbus/dbus-string.c: limit service/interface/member/error names 9102 to [0-9][A-Z][a-z]_ 9103 9104 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing 9105 format arg to verbose spew 9106 9107 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of 9108 memory, return instead of g_error 9109 9110 * test/test-service.c (path_message_func): support emitting a 9111 signal on request 9112 9113 * dbus/dbus-bus.c (init_connections_unlocked): only fill in 9114 activation bus type if DBUS_BUS_ACTIVATION was set; default to 9115 assuming the activation bus was the session bus so that services 9116 started manually will still register. 9117 (init_connections_unlocked): fix so that in OOM situation we get 9118 the same semantics when retrying the function 9119 9120 * test/test-service.c (main): change to use path registration, to 9121 test those codepaths; register with DBUS_BUS_ACTIVATION rather 9122 than DBUS_BUS_SESSION 9123 9124 2003-10-16 Havoc Pennington <hp (a] redhat.com> 9125 9126 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS 9127 9128 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test 9129 coverage of the tests 9130 (coverage-report.txt): don't move the .da and .bbg files around 9131 9132 2003-10-16 Havoc Pennington <hp (a] redhat.com> 9133 9134 * bus/bus.c (struct BusContext): remove struct field I didn't mean 9135 to put there 9136 9137 2003-10-16 Havoc Pennington <hp (a] redhat.com> 9138 9139 * bus/connection.c (bus_pending_reply_expired): either cancel or 9140 execute, not both 9141 (bus_connections_check_reply): use unlink, not remove_link, as we 9142 don't want to free the link; fixes double free mess 9143 9144 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case 9145 where no reply was received 9146 9147 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock): 9148 fix a refcount leak 9149 9150 * bus/signals.c (match_rule_matches): add special cases for the 9151 bus driver, so you can match on sender/destination for it. 9152 9153 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if 9154 DBUS_PRINT_BACKTRACE is set 9155 9156 * dbus/dbus-internals.c: add pid to assertion failure messages 9157 9158 * dbus/dbus-connection.c: add message type code to the debug spew 9159 9160 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want 9161 sender=foo not service=foo 9162 9163 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the 9164 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 9165 DBUS_ACTIVATION_ADDRESS instead 9166 9167 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS, 9168 DBUS_SYSTEM_BUS_ADDRESS if appropriate 9169 9170 * bus/bus.c (bus_context_new): handle OOM copying bus type into 9171 context struct 9172 9173 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function 9174 (dbus_message_iter_get_object_path_array): new function (half 9175 finished, disabled for the moment) 9176 9177 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle 9178 DBUS_MESSAGE_TYPE_ERROR 9179 9180 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to 9181 avoid redirecting stderr to /dev/null 9182 (babysit): close stdin if not doing the "exit_with_session" thing 9183 9184 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover 9185 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not 9186 stdout/stdin, so things don't get confused 9187 9188 * bus/system.conf.in: fix to allow replies, I modified .conf 9189 instead of .conf.in again. 9190 9191 2003-10-14 David Zeuthen <david (a] fubar.dk> 9192 9193 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in 9194 argtype to arg_type when raising unknown arg type exception. 9195 Changed type list to reflect the changes in dbus-protocol.h so 9196 the bindings actually work. 9197 9198 2003-10-14 Havoc Pennington <hp (a] redhat.com> 9199 9200 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems 9201 to have a bug keeping it from outputting the .da files sometimes 9202 (string_get_string): don't append garbage nul bytes to the string. 9203 9204 2003-10-15 Seth Nickell <seth (a] gnome.org> 9205 9206 * python/Makefile.am: 9207 9208 Include dbus_h_wrapper.h in the dist tarball. 9209 9210 2003-10-14 Havoc Pennington <hp (a] redhat.com> 9211 9212 * bus/bus.c (bus_context_check_security_policy): revamp this to 9213 work more sanely with new policy-based requested reply setup 9214 9215 * bus/connection.c (bus_transaction_send_from_driver): set bus 9216 driver messages as no reply 9217 9218 * bus/policy.c (bus_client_policy_check_can_receive): handle a 9219 requested_reply attribute on allow/deny rules 9220 9221 * bus/system.conf: add <allow requested_reply="true"/> 9222 9223 * bus/driver.c (bus_driver_handle_message): fix check for replies 9224 sent to the bus driver, which was backward. How did this ever work 9225 at all though? I think I'm missing something. 9226 9227 * dbus/dbus-message.c (decode_header_data): require error and 9228 method return messages to have a reply serial field to be valid 9229 (_dbus_message_loader_queue_messages): break up this function; 9230 validate that reply serial and plain serial are nonzero; 9231 clean up the OOM/error handling. 9232 (get_uint_field): don't return -1 from this 9233 (dbus_message_create_header): fix signed/unsigned bug 9234 9235 * bus/connection.c (bus_connections_expect_reply): save serial of 9236 the incoming message, not reply serial 9237 9238 2003-10-14 Havoc Pennington <hp (a] redhat.com> 9239 9240 * bus/connection.c: implement pending reply tracking using 9241 BusExpireList 9242 9243 * bus/bus.c (bus_context_check_security_policy): verify that a 9244 reply is pending in order to allow a reply to be sent. Deny 9245 messages of unknown type. 9246 9247 * bus/dbus-daemon-1.1.in: update to mention new resource limits 9248 9249 * bus/bus.c (bus_context_get_max_replies_per_connection): new 9250 (bus_context_get_reply_timeout): new 9251 9252 2003-10-13 Seth Nickell <seth (a] gnome.org> 9253 9254 * python/Makefile.am: 9255 9256 Pass "make distcheck": remove a couple files from DIST_FILES 9257 that weren't included in the final version. 9258 9259 2003-10-12 Havoc Pennington <hp (a] pobox.com> 9260 9261 Added test code that 1) starts an actual bus daemon and 2) uses 9262 DBusGProxy; fixed bugs that were revealed by the test. Lots 9263 more testing possible, but this is the basic framework. 9264 9265 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove 9266 empty proxy lists from the proxy list hash 9267 9268 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a 9269 couple of return_if_fail checks 9270 9271 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 9272 to allocate, so everything is cleared to NULL as it should be. 9273 9274 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass 9275 source as data to dbus_connection_set_timeout_functions() as the 9276 timeout functions expected 9277 9278 * test/glib/run-test.sh: add a little script to start up a message 9279 bus and run tests using it 9280 9281 * tools/dbus-launch.1: updates 9282 9283 * tools/dbus-launch.c (main): add --config-file option 9284 9285 * tools/dbus-launch.c (main): remove confusing else if (runprog) 9286 that could never be reached. 9287 9288 * dbus/dbus-message.c (dbus_message_new_method_return) 9289 (dbus_message_new_error, dbus_message_new_signal): set the 9290 no-reply-expected flag on all these. Redundant, but may 9291 as well be consistent. 9292 9293 2003-10-11 Havoc Pennington <hp (a] pobox.com> 9294 9295 * test/decode-gcov.c (function_solve_graph): make broken block 9296 graph a nonfatal error since it seems to be broken. Need to debug 9297 this. 9298 9299 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we 9300 can't just check type > INVALID < LAST anymore 9301 9302 * dbus/dbus-message.c (dbus_message_get_signature): new function 9303 (dbus_message_has_signature): new function 9304 (struct DBusMessage): add signature field (right now it isn't sent 9305 over the wire, just generated on the fly) 9306 (dbus_message_copy): copy the signature, and init strings to 9307 proper length to avoid some reallocs 9308 (dbus_message_iter_init_array_iterator): return void, since it 9309 can't fail 9310 (dbus_message_iter_init_dict_iterator): return void since it can't fail 9311 (_dbus_message_loader_queue_messages): add silly temporary hack to 9312 fill in message->signature on load 9313 9314 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII 9315 characters, so they are relatively human-readable. 9316 9317 2003-10-11 Havoc Pennington <hp (a] pobox.com> 9318 9319 * dbus/dbus-message.c (_dbus_message_test): add more test 9320 coverage, but #if 0 for now since they uncover a bug 9321 not fixed yet; I think in re_align_field_recurse() 9322 (re_align_field_recurse): add FIXME about broken assertion 9323 9324 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage 9325 9326 * bus/connection.c: share a couple code bits with expirelist.c 9327 9328 * bus/expirelist.h, bus/expirelist.c: implement a generic 9329 expire-items-after-N-seconds facility, was going to share between 9330 expiring connections and replies, decided not to use for expiring 9331 connections for now. 9332 9333 * COPYING: include AFL 2.0 (still need to change all the file headers) 9334 9335 2003-10-09 Havoc Pennington <hp (a] redhat.com> 9336 9337 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have 9338 gcc 3.3. Not that we do anything about it yet. 9339 9340 * bus/signals.c (bus_match_rule_parse): impose max length on the 9341 match rule text 9342 9343 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH 9344 9345 2003-10-09 Havoc Pennington <hp (a] redhat.com> 9346 9347 Make matching rules theoretically work (add parser). 9348 9349 * bus/bus.c (bus_context_check_security_policy): fix up to handle 9350 the case where destination is explicitly specified as bus driver 9351 and someone else is eavesdropping. 9352 9353 * bus/policy.c (bus_client_policy_check_can_receive): fix up 9354 definition of eavesdropping and assertion 9355 9356 * tools/dbus-send.c (main): use dbus_message_type_from_string 9357 9358 * bus/signals.c (bus_match_rule_parse): implement 9359 9360 * dbus/dbus-message.c (dbus_message_type_from_string): new 9361 9362 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add 9363 9364 2003-10-02 Havoc Pennington <hp (a] pobox.com> 9365 9366 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from 9367 dbus_gproxy_oneway_call 9368 9369 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 9370 (dbus_server_setup_with_g_main): fix to allow calling them more 9371 than once on the same args 9372 (dbus_bus_get_with_g_main): new function 9373 9374 2003-10-02 Havoc Pennington <hp (a] redhat.com> 9375 9376 * doc/dbus-tutorial.xml: write some stuff 9377 9378 2003-09-29 Havoc Pennington <hp (a] pobox.com> 9379 9380 * configure.in: split checks for Doxygen from XML docs, check for 9381 xmlto 9382 9383 * doc/Makefile.am: XML-ify all the docs, and add a blank 9384 dbus-tutorial.xml 9385 9386 2003-09-29 Havoc Pennington <hp (a] pobox.com> 9387 9388 * Merge dbus-object-names branch. To see the entire patch 9389 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names, 9390 it's huuuuge though. 9391 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE. 9392 9393 2003-09-28 Havoc Pennington <hp (a] pobox.com> 9394 9395 * HACKING: update to reflect new server 9396 9397 2003-09-26 Seth Nickell <seth (a] gnome.org> 9398 9399 * python/dbus.py: 9400 * python/examples/example-signals.py: 9401 9402 Start implementing some notions of signals. The API 9403 is really terrible, but they sort of work (with the 9404 exception of being able to filter by service, and to 9405 transmit signals *as* a particular service). Need to 9406 figure out how to make messages come from the service 9407 we registered :-( 9408 9409 * python/dbus_bindings.pyx.in: 9410 9411 Removed duplicate message_handler callbacks. 9412 9413 2003-09-25 Havoc Pennington <hp (a] redhat.com> 9414 9415 * bus/session.conf.in: fix my mess 9416 9417 2003-09-25 Havoc Pennington <hp (a] pobox.com> 9418 9419 * bus/session.conf.in: fix security policy, reported by Seth Nickell 9420 9421 2003-09-25 Seth Nickell <seth (a] gnome.org> 9422 9423 * python/examples/example-service.py: 9424 9425 Johan notices complete wrong code in example-service, but 9426 completely wrong in a way that works exactly the same (!). 9427 Johan is confused, how could this possibly work? Example 9428 code fails to serve purpose of making things clear. 9429 Seth fixes. 9430 9431 2003-09-25 Mark McLoughlin <mark (a] skynet.ie> 9432 9433 * doc/dbus-specification.sgml: don't require header fields 9434 to be 4-byte aligned and specify that fields should be 9435 distinguished from padding by the fact that zero is not 9436 a valid field name. 9437 9438 * doc/TODO: remove re-alignment item and add item to doc 9439 the OBJECT_PATH type. 9440 9441 * dbus/dbus-message.c: 9442 (HeaderField): rename the original member to value_offset 9443 and introduce a name_offset member to keep track of where 9444 the field actually begins. 9445 (adjust_field_offsets): remove. 9446 (append_int_field), (append_uint_field), 9447 (append_string_field): don't align the start of the header 9448 field to a 4-byte boundary. 9449 (get_next_field): impl finding the next marhsalled field 9450 after a given field. 9451 (re_align_field_recurse): impl re-aligning a number of 9452 already marshalled fields. 9453 (delete_field): impl deleting a field of any type and 9454 re-aligning any following fields. 9455 (delete_int_or_uint_field), (delete_string_field): remove. 9456 (set_int_field), (set_uint_field): no need to re-check 9457 that we have the correct type for the field. 9458 (set_string_field): ditto and impl re-aligning any 9459 following fields. 9460 (decode_header_data): update to take into account that 9461 the fields aren't 4-byte aligned any more and the new 9462 way to distinguish padding from header fields. Also, 9463 don't exit when there is too much header padding. 9464 (process_test_subdir): print the directory. 9465 (_dbus_message_test): add test to make sure a following 9466 field is re-aligned correctly after field deletion. 9467 9468 * dbus/dbus-string.[ch]: 9469 (_dbus_string_insert_bytes): rename from insert_byte and 9470 allow the insert of multiple bytes. 9471 (_dbus_string_test): test inserting multiple bytes. 9472 9473 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add 9474 warning note to docs about having to re-align any 9475 marshalled values following the string. 9476 9477 * dbus/dbus-message-builder.c: 9478 (append_string_field), (_dbus_message_data_load): 9479 don't align the header field. 9480 9481 * dbus/dbus-auth.c: (process_test_subdir): print the 9482 directory. 9483 9484 * test/break-loader.c: (randomly_add_one_byte): upd. for 9485 insert_byte change. 9486 9487 * test/data/invalid-messages/bad-header-field-alignment.message: 9488 new test case. 9489 9490 * test/data/valid-messages/unknown-header-field.message: shove 9491 a dict in the unknown field. 9492 9493 2003-09-25 Seth Nickell <seth (a] gnome.org> 9494 9495 * python/dbus.py: 9496 * python/dbus_bindings.pyx.in: 9497 9498 Handle return values. 9499 9500 * python/examples/example-client.py: 9501 * python/examples/example-service.py: 9502 9503 Pass back return values from the service to the client. 9504 9505 2003-09-24 Seth Nickell <seth (a] gnome.org> 9506 9507 * python/dbus.py: 9508 9509 Connect Object methods (when you are sharing an object) up... pass 9510 in a list of methods to be shared. Sharing all the methods just 9511 worked out too weird. You can now create nice Services over the 9512 DBus in Python. :-) 9513 9514 * python/dbus_bindings.pyx.in: 9515 9516 Keep references to user_data tuples passed into C functions so 9517 Python doesn't garbage collect on us. 9518 9519 Implement MethodReturn and Error subclasses of Message for creating 9520 DBusMessage's of those types. 9521 9522 * python/examples/example-client.py: 9523 * python/examples/example-service.py: 9524 9525 Simple example code showing both how create DBus services and objects, 9526 and how to use them. 9527 9528 2003-09-23 Havoc Pennington <hp (a] pobox.com> 9529 9530 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement 9531 9532 2003-09-23 Havoc Pennington <hp (a] redhat.com> 9533 9534 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement 9535 (dbus_gproxy_disconnect_signal): implement 9536 (dbus_gproxy_manager_remove_signal_match): implement 9537 (dbus_gproxy_manager_add_signal_match): implement 9538 (dbus_gproxy_oneway_call): implement 9539 9540 2003-09-23 Havoc Pennington <hp (a] pobox.com> 9541 9542 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject 9543 subclass. This means dropping the transparent thread safety of the 9544 proxy; you now need a separate proxy per-thread, or your own 9545 locking on the proxy. Probably right anyway. 9546 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref 9547 9548 2003-09-22 Havoc Pennington <hp (a] redhat.com> 9549 9550 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement 9551 9552 2003-09-21 Seth Nickell <seth (a] gnome.org> 9553 9554 First checkin of the Python bindings. 9555 9556 * python/.cvsignore: 9557 * python/Makefile.am: 9558 * python/dbus_bindings.pyx.in: 9559 * python/dbus_h_wrapper.h: 9560 9561 Pieces for Pyrex to operate on, building a dbus_bindings.so 9562 python module for low-level access to the DBus APIs. 9563 9564 * python/dbus.py: 9565 9566 High-level Python module for accessing DBus objects. 9567 9568 * configure.in: 9569 * Makefile.am: 9570 9571 Build stuff for the python bindings. 9572 9573 * acinclude.m4: 9574 9575 Extra macro needed for finding the Python C header files. 9576 9577 2003-09-21 Havoc Pennington <hp (a] pobox.com> 9578 9579 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start 9580 implementing the proxy manager, didn't get very far. 9581 9582 * dbus/dbus-bus.c (dbus_bus_add_match): new 9583 (dbus_bus_remove_match): new 9584 9585 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a 9586 path_name argument; adjust the other not-yet-implemented 9587 gproxy constructors to be what I think they should be. 9588 9589 2003-09-21 Havoc Pennington <hp (a] pobox.com> 9590 9591 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE 9592 by default for message bus connections. 9593 9594 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if 9595 exit_on_disconnect flag is set and we process the disconnected 9596 signal. 9597 (dbus_connection_set_exit_on_disconnect): new function 9598 9599 2003-09-21 Havoc Pennington <hp (a] pobox.com> 9600 9601 Get matching rules mostly working in the bus; only actually 9602 parsing the rule text remains. However, the client side of 9603 "signal connections" hasn't been started, this patch is only the 9604 bus side. 9605 9606 * dbus/dispatch.c: fix for the matching rules changes 9607 9608 * bus/driver.c (bus_driver_handle_remove_match) 9609 (bus_driver_handle_add_match): send an ack reply from these 9610 method calls 9611 9612 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of 9613 arguments, reported by Seth Nickell 9614 9615 * bus/config-parser.c (append_rule_from_element): support 9616 eavesdrop=true|false attribute on policies so match rules 9617 can be prevented from snooping on the system bus. 9618 9619 * bus/dbus-daemon-1.1.in: consistently use terminology "sender" 9620 and "destination" in attribute names; fix some docs bugs; 9621 add eavesdrop=true|false attribute 9622 9623 * bus/driver.c (bus_driver_handle_add_match) 9624 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch 9625 messages 9626 9627 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get 9628 rid of broadcast service concept, signals are just always broadcast 9629 9630 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c: 9631 mostly implement matching rules stuff (currently only exposed as signal 9632 connections) 9633 9634 2003-09-21 Mark McLoughlin <mark (a] skynet.ie> 9635 9636 * doc/dbus-specification.sgml: Change the header field name 9637 to be an enum and update the rest of the spec to reference 9638 the fields using the conventinal name. 9639 9640 * dbus/dbus-protocol.h: update to reflect the spec. 9641 9642 * doc/TODO: add item to remove the 4 byte alignment requirement. 9643 9644 * dbus/dbus-message.c: Remove the code to generalise the 9645 header/body length and serial number header fields as named 9646 header fields so we can reference field names using the 9647 protocol values. 9648 (append_int_field), (append_uint_field), (append_string_field): 9649 Append the field name as a byte rather than four chars. 9650 (delete_int_or_uint_field), (delete_string_field): reflect the 9651 fact that the field name and typecode now occupy 4 bytes instead 9652 of 8. 9653 (decode_string_field), (decode_header_data): update to reflect 9654 protocol changes and move the field specific encoding from 9655 decode_string_field() back into decode_header_data(). 9656 9657 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): 9658 Add utility to aid debugging. 9659 9660 * dbus/dbus-message-builder.c: 9661 (append_string_field), (_dbus_message_data_load): Update to 9662 reflect protocol changes; Change the FIELD_NAME directive 9663 to HEADER_FIELD and allow it to take the field's conventional 9664 name rather than the actual value. 9665 9666 * test/data/*/*.message: Update to use HEADER_FIELD instead 9667 of FIELD_NAME; Always align the header on an 8 byte boundary 9668 *before* updating the header length. 9669 9670 2003-09-15 Havoc Pennington <hp (a] pobox.com> 9671 9672 * dbus/dbus-pending-call.c: add the get/set object data 9673 boilerplate as for DBusConnection, etc. Use generic object data 9674 for the notify callback. 9675 9676 * glib/dbus-gparser.c (parse_node): parse child nodes 9677 9678 * tools/dbus-viewer.c: more hacking on the dbus-viewer 9679 9680 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to 9681 contain functions shared between the convenience lib and the 9682 installed lib 9683 9684 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add 9685 -export-symbols-regex to the GLib library 9686 9687 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock): 9688 fix the locking in here, and add a default handler for 9689 Introspect() that just returns sub-nodes. 9690 9691 2003-09-14 Havoc Pennington <hp (a] pobox.com> 9692 9693 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo 9694 rather than gfoo consistent 9695 9696 * glib/dbus-gproxy.h: delete for now, move contents to 9697 dbus-glib.h, because the include files don't work right since we 9698 aren't in the dbus/ subdir. 9699 9700 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing 9701 (dbus_gproxy_end_call): finish 9702 (dbus_gproxy_begin_call): finish 9703 9704 * glib/dbus-gmain.c (dbus_set_g_error): new 9705 9706 * glib/dbus-gobject.c (handle_introspect): include information 9707 about child nodes in the introspection 9708 9709 * dbus/dbus-connection.c (dbus_connection_list_registered): new 9710 function to help in implementation of introspection 9711 9712 * dbus/dbus-object-tree.c 9713 (_dbus_object_tree_list_registered_and_unlock): new function 9714 9715 2003-09-12 Havoc Pennington <hp (a] pobox.com> 9716 9717 * glib/dbus-gidl.h: add common base class for all the foo_info 9718 types 9719 9720 * tools/dbus-viewer.c: add GTK-based introspection UI thingy 9721 similar to kdcop 9722 9723 * test/Makefile.am: try test srcdir -ef . in addition to test 9724 srcdir = ., one of them should work (yeah lame) 9725 9726 * glib/Makefile.am: build the "idl" parser stuff as a convenience 9727 library 9728 9729 * glib/dbus-gparser.h: make description_load routines return 9730 NodeInfo* not Parser* 9731 9732 * Makefile.am (SUBDIRS): build test dir after all library dirs 9733 9734 * configure.in: add GTK+ detection 9735 9736 2003-09-07 Havoc Pennington <hp (a] pobox.com> 9737 9738 * Make Doxygen contented. 9739 9740 2003-09-07 Havoc Pennington <hp (a] pobox.com> 9741 9742 * doc/dbus-specification.sgml: more updates 9743 9744 2003-09-06 Havoc Pennington <hp (a] pobox.com> 9745 9746 * doc/dbus-specification.sgml: partial updates 9747 9748 * bus/dbus-daemon-1.1.in: fix the config file docs for the 9749 zillionth time; hopefully I edited the right file this time. 9750 9751 * bus/config-parser.c (append_rule_from_element): support 9752 send_type, send_path, receive_type, receive_path 9753 9754 * bus/policy.c: add message type and path to the list of things 9755 that can be "firewalled" 9756 9757 2003-09-06 Havoc Pennington <hp (a] pobox.com> 9758 9759 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this 9760 (dbus_connection_register_object_path): make this not handle 9761 messages to paths below the given path 9762 9763 2003-09-03 Havoc Pennington <hp (a] pobox.com> 9764 9765 * test/glib/Makefile.am: add this with random glib-linked test 9766 programs 9767 9768 * glib/Makefile.am: remove the random test programs from here, 9769 leave only the unit tests 9770 9771 * glib/dbus-gobject.c (_dbus_gobject_test): add test for 9772 uscore/javacaps conversion, and fix 9773 (get_object_property, set_object_property): change to .NET 9774 convention for mapping props to methods, set_FooBar/get_FooBar, 9775 since one language has such a convention we may as well copy it. 9776 Plus real methods in either getFooBar or get_foo_bar style won't 9777 collide with this convention. 9778 9779 2003-09-01 Havoc Pennington <hp (a] pobox.com> 9780 9781 * glib/dbus-gparser.c: implement 9782 9783 * glib/dbus-gobject.c: start implementing skeletons support 9784 9785 * configure.in: when disabling checks/assert, also define 9786 G_DISABLE_ASSERT and G_DISABLE_CHECKS 9787 9788 2003-09-01 Havoc Pennington <hp (a] pobox.com> 9789 9790 * glib/Makefile.am: rearrange a bunch of files and get "make 9791 check" framework set up 9792 9793 2003-08-31 Havoc Pennington <hp (a] pobox.com> 9794 9795 * fix build with --disable-tests 9796 9797 2003-08-30 Havoc Pennington <hp (a] pobox.com> 9798 9799 * dbus/dbus-connection.c: purge DBusMessageHandler 9800 9801 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 9802 use callbacks everywhere 9803 9804 2003-08-30 Havoc Pennington <hp (a] pobox.com> 9805 9806 * test/data/valid-config-files/system.d/test.conf: change to 9807 root for the user so warnings don't get printed 9808 9809 * dbus/dbus-message.c: add dbus_message_get_path, 9810 dbus_message_set_path 9811 9812 * dbus/dbus-object-tree.c (do_test_dispatch): add test of 9813 dispatching to a path 9814 9815 * dbus/dbus-string.c (_dbus_string_validate_path): add 9816 9817 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement 9818 (_dbus_marshal_object_path): implement 9819 9820 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 9821 to contain the path to the target object 9822 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename 9823 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service 9824 9825 2003-08-30 Havoc Pennington <hp (a] pobox.com> 9826 9827 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs 9828 9829 2003-08-29 Havoc Pennington <hp (a] pobox.com> 9830 9831 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be 9832 registered 9833 (struct DBusObjectSubtree): shrink this 9834 a lot, since we may have a lot of them 9835 (_dbus_object_tree_free_all_unlocked): implement 9836 (_dbus_object_tree_dispatch_and_unlock): implement 9837 9838 2003-08-29 Havoc Pennington <hp (a] pobox.com> 9839 9840 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS 9841 9842 2003-08-28 Havoc Pennington <hp (a] pobox.com> 9843 9844 purge DBusObjectID 9845 9846 * dbus/dbus-connection.c: port to no ObjectID, create a 9847 DBusObjectTree, rename ObjectTree to ObjectPath in public API 9848 9849 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 9850 everything except UnregisterFunction and MessageFunction 9851 9852 * dbus/dbus-marshal.c: port away from DBusObjectID, 9853 add DBUS_TYPE_OBJECT_PATH 9854 9855 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 9856 dbus/dbus-objectid.[hc]: remove these, we are moving to 9857 path-based object IDs 9858 9859 2003-08-25 Havoc Pennington <hp (a] pobox.com> 9860 9861 Just noticed that dbus_message_test is hosed, I wonder when I 9862 broke that. I thought make check was passing earlier... 9863 9864 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 9865 container tree, will replace most of dbus-object-registry 9866 9867 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99 9868 screwup 9869 9870 2003-08-19 Havoc Pennington <hp (a] pobox.com> 9871 9872 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER 9873 (dbus_message_is_error): fix this function 9874 9875 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules 9876 match 9877 9878 * bus/policy.c (bus_client_policy_check_can_receive): fix code to 9879 reflect clarified man page 9880 (bus_client_policy_check_can_send): ditto 9881 9882 * bus/session.conf.in: fixup 9883 9884 * bus/system.conf.in: fixup 9885 9886 2003-08-18 Havoc Pennington <hp (a] redhat.com> 9887 9888 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix 9889 9890 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix 9891 dumb bug created earlier (wrong order of args to 9892 decode_header_data()) 9893 9894 * tools/dbus-send.c: port 9895 9896 * tools/dbus-print-message.c (print_message): port 9897 9898 * test/data/*messages: port all messages over 9899 9900 * dbus/dbus-message-builder.c: support including 9901 message type 9902 9903 * bus/driver.c: port over 9904 9905 * bus/dispatch.c: port over to new stuff 9906 9907 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 9908 rename disconnect signal to "Disconnected" 9909 9910 2003-08-17 Havoc Pennington <hp (a] pobox.com> 9911 9912 This doesn't compile yet, but syncing up so I can hack on it from 9913 work. What are branches for if not broken code? ;-) 9914 9915 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add 9916 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER, 9917 DBUS_HEADER_FIELD_ERROR_NAME 9918 9919 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use 9920 for the interface+member pairs 9921 (string_hash): change to use g_str_hash algorithm 9922 (find_direct_function, find_string_function): refactor these to 9923 share most code. 9924 9925 * dbus/dbus-message.c: port all of this over to support 9926 interface/member fields instead of name field 9927 9928 * dbus/dbus-object-registry.c: port over 9929 9930 * dbus/dbus-string.c (_dbus_string_validate_interface): rename 9931 from _dbus_string_validate_name 9932 9933 * bus/dbus-daemon-1.1: change file format for the 9934 <deny>/<allow> stuff to match new message naming scheme 9935 9936 * bus/policy.c: port over 9937 9938 * bus/config-parser.c: parse new format 9939 9940 2003-08-16 Havoc Pennington <hp (a] pobox.com> 9941 9942 * dbus/dbus-object-registry.c (add_and_remove_objects): remove 9943 broken assertion 9944 9945 * glib/dbus-gproxy.c: some hacking 9946 9947 2003-08-15 Havoc Pennington <hp (a] redhat.com> 9948 9949 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement 9950 9951 * dbus/dbus-connection.c 9952 (dbus_connection_send_with_reply_and_block): factor out internals; 9953 change to convert any error replies to DBusError instead of 9954 returning them as a message 9955 9956 2003-08-15 Havoc Pennington <hp (a] pobox.com> 9957 9958 * dbus/dbus-connection.c, 9959 dbus/dbus-pending-call.c: Finish the pending call stuff 9960 9961 2003-08-14 Havoc Pennington <hp (a] redhat.com> 9962 9963 * dbus/dbus-pending-call.c: start on new object that will replace 9964 DBusMessageHandler and ReplyHandlerData for tracking outstanding 9965 replies 9966 9967 * dbus/dbus-gproxy.c: start on proxy object used to communicate 9968 with remote interfaces 9969 9970 * dbus/dbus-gidl.c: do the boring boilerplate in here 9971 9972 2003-08-12 Havoc Pennington <hp (a] pobox.com> 9973 9974 * bus/dispatch.c (bus_dispatch): make this return proper 9975 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD 9976 9977 * dbus/dbus-errors.c (dbus_set_error): use 9978 _dbus_string_append_printf_valist 9979 9980 * dbus/dbus-string.c (_dbus_string_append_printf_valist) 9981 (_dbus_string_append_printf): new 9982 9983 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to 9984 UNKNOWN_METHOD 9985 9986 * dbus/dbus-connection.c (dbus_connection_dispatch): handle 9987 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a 9988 message is unhandled. 9989 9990 2003-08-11 Havoc Pennington <hp (a] pobox.com> 9991 9992 * bus/test.c (client_disconnect_handler): change to return 9993 HANDLED (would have been REMOVE_MESSAGE) 9994 9995 * dbus/dbus-object.h (enum DBusHandlerResult): rename to 9996 HANDLED/NOT_YET_HANDLED instead of 9997 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 9998 should be used. 9999 10000 2003-08-10 Havoc Pennington <hp (a] pobox.com> 10001 10002 * tools/dbus-send.c (main): add --type argument, for now 10003 supporting only method_call and signal types. 10004 10005 * tools/dbus-print-message.c: print message type 10006 10007 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 10008 init connection->objects 10009 10010 * doc/dbus-specification.sgml: fix sgml 10011 10012 * bus/*.c: port over to object-instance API changes 10013 10014 * test/test-service.c: ditto 10015 10016 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL 10017 name, we will have to fix up the rest of the code to also handle 10018 this 10019 (dbus_message_new): generic message-creation call 10020 (set_string_field): allow appending name field 10021 10022 2003-08-06 Havoc Pennington <hp (a] pobox.com> 10023 10024 * dbus/dbus-object-registry.c: implement signal connection 10025 and dispatch 10026 10027 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new 10028 10029 * dbus/dbus-internals.c (_dbus_memdup): new function 10030 10031 2003-08-02 Havoc Pennington <hp (a] pobox.com> 10032 10033 * dbus/dbus-message.c (dbus_message_get_no_reply) 10034 (dbus_message_set_no_reply): add these and remove 10035 set_is_error/get_is_error 10036 10037 * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 10038 remove the ERROR flag, since there's now an ERROR type 10039 10040 2003-08-01 Havoc Pennington <hp (a] pobox.com> 10041 10042 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): 10043 implement 10044 10045 * dbus/dbus-message.c (dbus_message_get_type): new function 10046 10047 * doc/dbus-specification.sgml: add "type" byte to messages 10048 10049 2003-08-01 Havoc Pennington <hp (a] pobox.com> 10050 10051 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce 10052 a message type enum to distinguish kinds of message 10053 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 10054 that need not be replied to 10055 10056 2003-08-01 Havoc Pennington <hp (a] pobox.com> 10057 10058 * dbus/dbus-marshal.c: adapt to DBusObjectID changes 10059 (unpack_8_octets): fix no-64-bit-int bug 10060 10061 * dbus/dbus-object-registry.c (validate_id): validate the 10062 connection ID bits, not just the instance ID. 10063 10064 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize 10065 the connection-global 33 bits of the object ID 10066 10067 * dbus/dbus-object-registry.c (info_from_entry): fill in 10068 object ID in the new way 10069 10070 * dbus/dbus-objectid.h: rather than high/low bits, specifically 10071 define server/client/instance bits. 10072 10073 2003-07-30 Havoc Pennington <hp (a] pobox.com> 10074 10075 * dbus/dbus-connection.c (dbus_connection_register_object): fix 10076 build 10077 10078 2003-07-13 Havoc Pennington <hp (a] pobox.com> 10079 10080 * dbus/dbus-object.h (struct DBusObjectVTable): add padding 10081 fields to DBusObjectVTable and DBusObjectInfo 10082 10083 2003-07-12 Havoc Pennington <hp (a] pobox.com> 10084 10085 * dbus/dbus-object-registry.c: implement unit test, 10086 fix bugs discovered in process 10087 10088 * dbus/dbus-connection.c: remove handler_table and 10089 register_handler(), add DBusObjectRegistry usage 10090 10091 * dbus/dbus-objectid.c (dbus_object_id_is_null) 10092 (dbus_object_id_set_null): new functions 10093 10094 2003-07-08 Havoc Pennington <hp (a] pobox.com> 10095 10096 * dbus/dbus-object.c: implement some of this 10097 10098 * dbus/dbus-object-registry.c 10099 (_dbus_object_registry_add_and_unlock): fill in the object_id out 10100 param 10101 (_dbus_object_registry_new): handle OOM 10102 10103 2003-07-08 Havoc Pennington <hp (a] pobox.com> 10104 10105 * dbus/dbus-object.h: sketch out an API for registering objects 10106 with a connection, that allows us to use as little as 24 bytes 10107 per object and lets application code represent an object in 10108 any conceivable way. 10109 10110 * dbus/dbus-object-registry.c: implement the hard bits of the 10111 DBusConnection aspect of object API. Not yet wired up. 10112 10113 2003-07-06 Havoc Pennington <hp (a] pobox.com> 10114 10115 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function 10116 (_dbus_marshal_object_id): new 10117 (_dbus_demarshal_object_id): new 10118 (_dbus_marshal_get_arg_end_pos): support object ID type, and 10119 consolidate identical switch cases. Don't conditionalize handling 10120 of DBUS_TYPE_UINT64, need to handle the type always. 10121 (_dbus_marshal_validate_arg): consolidate identical cases, and 10122 handle DBUS_TYPE_OBJECT_ID 10123 10124 * dbus/dbus-objectid.c: new file with DBusObjectID data type. 10125 10126 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID 10127 10128 2003-09-28 Havoc Pennington <hp (a] pobox.com> 10129 10130 * real 0.13 release 10131 10132 2003-09-28 Havoc Pennington <hp (a] pobox.com> 10133 10134 * doc/Makefile.am (dbus-specification.html): testing a funky hack 10135 to work with Debian db2html 10136 10137 2003-09-28 Havoc Pennington <hp (a] pobox.com> 10138 10139 * configure.in: 0.13 10140 10141 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of 10142 stylesheet-images for benefit of Debian 10143 10144 Change back to using filesystem-linked sockets for the system 10145 bus, so only root can create the default system bus address. 10146 10147 * bus/system.conf.in: change to use 10148 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS 10149 10150 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define 10151 from here. 10152 10153 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS 10154 here, and AC_DEFINE DBUS_SYSTEM_PATH 10155 10156 2003-08-09 Anders Carlsson <andersca (a] codefactory.se> 10157 10158 * doc/TODO: 10159 * doc/busconfig.dtd: 10160 Add busconfig DTD. 10161 10162 2003-08-09 Anders Carlsson <andersca (a] codefactory.se> 10163 10164 * doc/dbus-specification.sgml: 10165 Add activation reply values. 10166 10167 2003-08-05 Havoc Pennington <hp (a] redhat.com> 10168 10169 * configure.in: 0.12 10170 10171 2003-08-05 Anders Carlsson <andersca (a] codefactory.se> 10172 10173 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref), 10174 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch), 10175 (add_watch), (remove_watch), (create_source): 10176 Refcount fds, fixes some reentrancy issues. 10177 10178 2003-07-30 Havoc Pennington <hp (a] redhat.com> 10179 10180 * dbus/dbus-bus.c (init_connections_unlocked): fix default system 10181 bus address to be abstract if we have abstract sockets 10182 10183 * NEWS: update 10184 10185 2003-07-28 Havoc Pennington <hp (a] redhat.com> 10186 10187 * bus/messagebus.in: fix to avoid processname/servicename 10188 confusion, from Michael Kearey 10189 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965 10190 10191 2003-07-23 Havoc Pennington <hp (a] pobox.com> 10192 10193 * dbus/dbus-message.c (dbus_message_iter_get_named): 10194 fix from Andy Hanton to remove broken "+1" 10195 10196 2003-07-16 Havoc Pennington <hp (a] pobox.com> 10197 10198 * tools/dbus-launch.c (babysit): close stdout/stderr in the 10199 babysitter process, as suggested by Thomas Leonard, so 10200 an "eval `dbus-launch --exit-with-session`" will actually 10201 return 10202 10203 2003-07-16 Havoc Pennington <hp (a] pobox.com> 10204 10205 * configure.in: print out EXPANDED_* variables in the summary at 10206 the end; clean up the code that computes EXPANDED_ variables and 10207 get the ones using exec_prefix right. Should make things work 10208 when you build without --prefix 10209 10210 2003-06-29 Havoc Pennington <hp (a] pobox.com> 10211 10212 * mono/Test.cs (class Test): fire up a main loop and run it 10213 10214 * mono/DBus.cs (DBus): don't g_thread_init since it can only be 10215 done once, the app has to do it 10216 10217 2003-06-26 Havoc Pennington <hp (a] pobox.com> 10218 10219 * mono/Connection.cs: set up connection with the glib main loop 10220 10221 2003-07-01 Havoc Pennington <hp (a] redhat.com> 10222 10223 * doc/dbus-specification.sgml: clarify the format of a type code, 10224 change suggested by Jim Blandy 10225 10226 2003-06-29 Miloslav Trmac <mitr (a] volny.cz> 10227 10228 * doc/Makefile.am: 10229 * tools/Makefile.am: Don't assume srcdir == builddir. 10230 10231 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking 10232 the allocated block. 10233 (_dbus_memory_test): New function. 10234 * dbus/dbus-test.h: Add _dbus_memory_test (). 10235 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it. 10236 10237 * dbus/dbus-message.c (decode_header_data): Use %.4s instead 10238 of %c%c%c%c. 10239 (dbus_message_new): Remove obsolete @todo. 10240 10241 * dbus/dbus-marshal.c (_dbus_marshal_set_int64) 10242 (_dbus_marshal_set_uint64): Fix comment. 10243 10244 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't 10245 hardcode FIELD_REPLY_SERIAL. 10246 10247 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch) 10248 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p 10249 10250 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS 10251 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used 10252 10253 2003-06-24 Havoc Pennington <hp (a] pobox.com> 10254 10255 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0) 10256 10257 2003-06-23 Anders Carlsson <andersca (a] codefactory.se> 10258 10259 * configure.in: 10260 * gcj/.cvsignore: 10261 * gcj/Hello.java: 10262 * gcj/Makefile.am: 10263 * gcj/TestMessage.java: (TestMessage), (TestMessage.main): 10264 * gcj/org/.cvsignore: 10265 * gcj/org/Makefile.am: 10266 * gcj/org/freedesktop/.cvsignore: 10267 * gcj/org/freedesktop/Makefile.am: 10268 * gcj/org/freedesktop/dbus/.cvsignore: 10269 * gcj/org/freedesktop/dbus/Makefile.am: 10270 * gcj/org/freedesktop/dbus/Message.java: (Message), 10271 (Message.Message): 10272 * gcj/org/freedesktop/dbus/natMessage.cc: 10273 Fix the build system. 10274 10275 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10276 10277 * mono/Connection.cs: add more bindings 10278 10279 * dbus/dbus-threads.c (dbus_threads_init): allow calling this 10280 more than once. 10281 10282 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10283 10284 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs: 10285 Start wrapping more stuff. 10286 10287 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10288 10289 * mono/Message.cs: implement Message.Wrap() that ensures we only 10290 have a single C# wrapper per DBusMessage, assuming it works which 10291 it probably doesn't. 10292 10293 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new 10294 (dbus_message_free_data_slot): new 10295 (dbus_message_set_data): new 10296 (dbus_message_get_data): new 10297 10298 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10299 10300 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref) 10301 (_dbus_data_slot_allocator_alloc): rework these to keep a 10302 reference count on each slot and automatically manage a global 10303 slot ID variable passed in by address 10304 10305 * bus/bus.c: convert to new dataslot API 10306 10307 * dbus/dbus-bus.c: convert to new dataslot API 10308 10309 * dbus/dbus-connection.c: convert to new dataslot API 10310 10311 * dbus/dbus-server.c: convert to new dataslot API 10312 10313 * glib/dbus-gmain.c: ditto 10314 10315 * bus/test.c: ditto 10316 10317 * bus/connection.c: ditto 10318 10319 2003-06-22 Anders Carlsson <andersca (a] codefactory.se> 10320 10321 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL 10322 after the gcj checks so that the correct configuration tags 10323 will be added to libtool. 10324 10325 * dbus-glib-1.pc.in: No need to specify any includes since 10326 dbus-1.pc.in has those. 10327 10328 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10329 10330 * mono/*, gcj/*, configure.in, Makefile.am: 10331 Check in makefiles and subdirs for mono and gcj bindings. 10332 Neither binding actually exists, just trying to get through 10333 all the build and other boring bits. 10334 10335 2003-06-21 Philip Blundell <philb (a] gnu.org> 10336 10337 * tools/dbus-monitor.1: Updated. 10338 10339 * tools/dbus-send.1: Likewise. 10340 10341 2003-06-20 Anders Carlsson <andersca (a] codefactory.se> 10342 10343 * dbus/dbus-transport-unix.c (unix_handle_watch): Check 10344 for hangup and error after checking read so we won't discard 10345 pending data if both hangup and read are set. 10346 10347 2003-06-19 Philip Blundell <philb (a] gnu.org> 10348 10349 * tools/dbus-print-message.c (print_message): Handle BOOLEAN. 10350 10351 * tools/dbus-send.c: Accept both --system and --session. 10352 10353 * tools/dbus-monitor.c: Same here. 10354 10355 2003-06-19 Anders Carlsson <andersca (a] codefactory.se> 10356 10357 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used 10358 from C++ (Patch by Miloslav Trmac). 10359 10360 2003-06-15 Joe Shaw <joe (a] assbarn.com> 10361 10362 * configure.in: Check for socklen_t. 10363 10364 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined. 10365 10366 * test/test-segfault.c: Add #include <sys/time.h> 10367 10368 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since 10369 dbus-launch needs it. 10370 10371 2003-06-09 Havoc Pennington <hp (a] redhat.com> 10372 10373 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use 10374 SUN_LEN, it breaks abstract socket usage 10375 10376 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at 10377 starts of lines. 10378 10379 2003-06-04 Havoc Pennington <hp (a] pobox.com> 10380 10381 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets 10382 using unix:abstract=/foo, and when listening in a tmpdir 10383 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can. 10384 10385 * dbus/dbus-transport.c (_dbus_transport_open): support 10386 unix:abstract=/foo 10387 10388 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): 10389 support abstract sockets 10390 10391 * dbus/dbus-transport-unix.c 10392 (_dbus_transport_new_for_domain_socket): support abstract sockets 10393 10394 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract" 10395 toggle as an argument, implement abstract namespace support 10396 (_dbus_listen_unix_socket): ditto 10397 10398 * configure.in: add --enable-abstract-sockets and implement 10399 a configure check for autodetection of the right value. 10400 10401 2003-06-01 Havoc Pennington <hp (a] pobox.com> 10402 10403 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets 10404 in /tmp (though on Linux this will end up being useless, 10405 when we add abstract namespace support) 10406 10407 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to 10408 subst'ing it 10409 10410 2003-05-28 Colin Walters <walters (a] verbum.org> 10411 10412 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/). 10413 10414 2003-05-18 Anders Carlsson <andersca (a] codefactory.se> 10415 10416 * dbus/dbus-message.c (dbus_message_new): Remove @todo. 10417 10418 2003-05-17 Colin Walters <walters (a] gnu.org> 10419 10420 * tools/dbus-send.c: Don't exit with an error code if --help was 10421 passed. Default to using the session bus instead of the system 10422 one. 10423 10424 * tools/dbus-launch.c: Ditto. 10425 10426 * tools/dbus-monitor.c: Ditto. 10427 10428 * tools/dbus-send.1: Update with new arguments. 10429 10430 * tools/dbus-launch.c: Emit code to export variables. New 10431 arguments -s and -c to specify shell syntax, and a bit of code to 10432 autodetect syntax. Also, allow specifying a program to run. 10433 10434 * tools/dbus-launch.1: Update with new arguments. 10435 10436 * tools/dbus-send.1: Ditto. 10437 10438 * tools/dbus-monitor.1: Ditto. 10439 10440 2003-05-17 Havoc Pennington <hp (a] pobox.com> 10441 10442 * bus/config-parser.c (merge_included): merge in policies from 10443 child configuration file. 10444 10445 * bus/policy.c (bus_policy_merge): function to merge two policies 10446 together 10447 10448 2003-05-16 Havoc Pennington <hp (a] redhat.com> 10449 10450 * dbus/dbus-connection.c: disable verbose lock spew 10451 10452 * tools/dbus-send.c: add --print-reply command line option 10453 10454 * tools/dbus-print-message.h (print_message): new util function 10455 shared by dbus-send and dbus-monitor 10456 10457 * tools/dbus-monitor.c (handler_func): exit on disconnect 10458 10459 * dbus/dbus-transport-unix.c (do_reading): if the transport is 10460 disconnected, don't try to use the read_watch 10461 10462 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL 10463 so we can find this bug more easily 10464 10465 2003-05-16 Havoc Pennington <hp (a] redhat.com> 10466 10467 * bus/policy.c (free_rule_list_func): avoid a crash when passed 10468 NULL as DBusHashTable is annoyingly likely to do. 10469 10470 2003-05-16 Colin Walters <walters (a] verbum.org> 10471 10472 * tools/dbus-monitor.c: Add --session argument and usage() 10473 function. 10474 10475 * tools/dbus-monitor.1: Update with new --session arg. 10476 10477 * bus/Makefile.am (install-data-hook): Create 10478 $(libdir)/dbus-1.0/services so that the session bus is happy. 10479 10480 2003-05-15 Havoc Pennington <hp (a] redhat.com> 10481 10482 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work 10483 on non-x86. ifdef's are evil. 10484 10485 2003-05-15 Havoc Pennington <hp (a] redhat.com> 10486 10487 * configure.in: 0.11 10488 10489 * NEWS: update 10490 10491 * bus/Makefile.am (initddir): apparently we are supposed to put 10492 init scripts in /etc/rc.d/init.d not /etc/init.d 10493 10494 * bus/Makefile.am: remove the "you must --enable-tests to make 10495 check" as it broke distcheck 10496 10497 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d 10498 10499 2003-05-13 James Willcox <jwillcox (a] gnome.org> 10500 10501 * configure.in: 10502 * bus/activation.c: (bus_activation_service_created), 10503 (bus_activation_activate_service): 10504 * bus/driver.c: (bus_driver_send_service_deleted), 10505 (bus_driver_send_service_created), (bus_driver_send_service_lost), 10506 (bus_driver_send_service_acquired), 10507 (bus_driver_send_welcome_message), 10508 (bus_driver_handle_list_services): 10509 * bus/session.conf.in: 10510 * dbus/dbus-bus.c: (dbus_bus_acquire_service), 10511 (dbus_bus_service_exists), (dbus_bus_activate_service): 10512 * dbus/dbus-bus.h: 10513 10514 Add some convenience API which lets you activate a service, and did a 10515 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args() 10516 and dbus_message_get_args() 10517 10518 2003-05-11 Havoc Pennington <hp (a] pobox.com> 10519 10520 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid 10521 calling _dbus_marshal_validate_arg() for every byte in a byte 10522 array, etc. 10523 10524 * dbus/dbus-message-handler.c: use atomic reference counting to 10525 reduce number of locks slightly; the global lock in here sucks 10526 10527 * dbus/dbus-connection.c 10528 (_dbus_connection_update_dispatch_status_and_unlock): variant of 10529 update_dispatch_status that can be called with lock held; then use 10530 in a couple places to reduce locking/unlocking 10531 (dbus_connection_send): hold the lock over the whole function 10532 instead of acquiring it twice. 10533 10534 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM 10535 10536 * bus/connection.c (bus_connections_setup_connection): fix access 10537 to already-freed memory. 10538 10539 * dbus/dbus-connection.c: keep a little cache of linked list 10540 nodes, to avoid using the global linked list alloc lock in the 10541 normal send-message case. Instead we just use the connection lock 10542 that we already have to take. 10543 10544 * dbus/dbus-list.c (_dbus_list_find_last): new function 10545 10546 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): 10547 change to use a struct for the atomic type; fix docs, 10548 they return value before increment, not after increment. 10549 10550 * dbus/dbus-string.c (_dbus_string_append_4_aligned) 10551 (_dbus_string_append_8_aligned): new functions to try to 10552 microoptimize this operation. 10553 (reallocate_for_length): break this out of set_length(), to 10554 improve profile info, and also so we can consider inlining the 10555 set_length() part. 10556 10557 * dbus/dbus-message.c (dbus_message_new_empty_header): init data 10558 strings with some preallocation, cuts down on our calls to realloc 10559 a fair bit. Though if we can get the "move entire string to empty 10560 string" optimization below to kick in here, it would be better. 10561 10562 * dbus/dbus-string.c (_dbus_string_move): just call 10563 _dbus_string_move_len 10564 (_dbus_string_move_len): add a special case for moving 10565 an entire string into an empty string; we can just 10566 swap the string data instead of doing any reallocs. 10567 (_dbus_string_init_preallocated): new function 10568 10569 2003-05-11 Havoc Pennington <hp (a] pobox.com> 10570 10571 Write a "test-profile" that does echo client-server with threads; 10572 profile reveals lock contention, memcpy/realloc of buffers, and 10573 UTF-8 validation as hot spots. 20% of lock contention eliminated 10574 with dbus_atomic_inc/dec implementation on x86. Much remaining 10575 contention is global mempool locks for GList and DBusList. 10576 10577 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add 10578 x86 implementation 10579 10580 * dbus/dbus-connection.c (struct DBusConnection): use 10581 dbus_atomic_t for the reference count 10582 10583 * dbus/dbus-message.c (struct DBusMessage): declare 10584 dbus_atomic_t values as volatile 10585 10586 * configure.in: code to detect ability to use atomic integer 10587 operations in assembly, from GLib patch 10588 10589 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every 10590 time, tired of it being wrong in threads and forked processes 10591 10592 * glib/test-profile.c: a little program to bounce messages back 10593 and forth between threads and eat CPU 10594 10595 * dbus/dbus-connection.c: add debug spew macros for debugging 10596 thread locks; include config.h at top; fix deadlock in 10597 dbus_connection_flush() 10598 10599 2003-05-08 Havoc Pennington <hp (a] pobox.com> 10600 10601 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov 10602 data from getting written, and there wasn't a good reason to 10603 use _exit really. 10604 10605 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count 10606 dbus_verbose lines in test coverage 10607 (main): add list of functions sorted by # of untested blocks 10608 to the coverage report 10609 10610 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS 10611 10612 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage 10613 10614 * dbus/dbus-message-handler.c (_dbus_message_handler_test): 10615 extend test coverage 10616 10617 * test/data/auth/cancel.auth-script: test canceling an 10618 authentication 10619 10620 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they 10621 aren't used. in CVS history if we end up needing them. 10622 10623 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10624 10625 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add 10626 unit test 10627 10628 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this 10629 function, which assumed length was in # of strings, not bytes 10630 10631 * dbus/dbus-message.c (_dbus_message_test): add tests for some 10632 missing coverage 10633 10634 * dbus/dbus-connection.c 10635 (_dbus_connection_queue_received_message): disable function for 10636 now, we are only using it in test mode 10637 10638 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): 10639 remove a mistaken FIXME 10640 10641 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10642 10643 * dbus/dbus-connection.c (dbus_connection_preallocate_send): 10644 unlock mutex on successful return, patch from Anders Gustafsson 10645 10646 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10647 10648 * dbus-glib-1.pc.in (Requires): fix dependencies, from 10649 Anders Gustafsson 10650 10651 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10652 10653 * tools/dbus-launch.c: implement 10654 10655 * bus/main.c (main), bus/bus.c (bus_context_new): 10656 implement --print-pid and --fork 10657 10658 2003-05-03 Havoc Pennington <hp (a] redhat.com> 10659 10660 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in 10661 the address had no value, and add to test suite. Fix and 10662 regression test from Miloslav Trmac 10663 10664 2003-05-03 Havoc Pennington <hp (a] pobox.com> 10665 10666 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a 10667 watch is invalid when handled 10668 10669 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add 10670 dbus-launch utility to launch the bus from a shell script. Didn't 10671 actually implement dbus-launch yet, it's just a placeholder still. 10672 10673 2003-05-03 Havoc Pennington <hp (a] pobox.com> 10674 10675 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the 10676 daemon; also documents daemon config file, so replaces 10677 doc/config-file.txt. Corrected some stuff from config-file.txt in 10678 the process of moving it. 10679 10680 2003-05-03 Havoc Pennington <hp (a] pobox.com> 10681 10682 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: 10683 add some man pages 10684 10685 2003-05-03 Colin Walters <walters (a] verbum.org> 10686 10687 * dbus/dbus-sysdeps.c (fill_user_info): Test against 10688 DBUS_UID_UNSET to determine whether to do a uid lookup or not. 10689 10690 * Makefile.am: Update to use new .pc versioning scheme. 10691 10692 2003-05-02 Havoc Pennington <hp (a] redhat.com> 10693 10694 * bus/system.conf.in: allow send/receive to/from message bus 10695 service 10696 10697 2003-04-30 Havoc Pennington <hp (a] redhat.com> 10698 10699 * configure.in: print a note when building with unit tests and 10700 without assertions 10701 10702 2003-04-30 Havoc Pennington <hp (a] redhat.com> 10703 10704 * Makefile.am: add a check-local that complains if you didn't 10705 configure with --enable-tests 10706 10707 2003-04-29 Havoc Pennington <hp (a] redhat.com> 10708 10709 * glib/dbus-gmain.c: docs cleanups 10710 10711 * dbus/dbus-types.h: add docs on int64 types 10712 10713 * dbus/dbus-memory.c: fix docs to avoid putting private API in 10714 public API docs section 10715 10716 2003-04-29 Havoc Pennington <hp (a] redhat.com> 10717 10718 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from 10719 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the 10720 parallel install API version, not with the D-BUS package version. 10721 10722 * HACKING: move some of README over here 10723 10724 * README: updates, and document API/ABI policy 10725 10726 * configure.in: reindentation 10727 10728 2003-04-29 Havoc Pennington <hp (a] redhat.com> 10729 10730 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE 10731 to use this library" to be sure people have the right 10732 expectations. 10733 10734 2003-04-28 Havoc Pennington <hp (a] redhat.com> 10735 10736 * configure.in: add --enable-docs which by default is auto yes if 10737 doxygen and db2html found, no otherwise; but can be forced on/off 10738 10739 * doc/Makefile.am: conditionalize whether to build docs on 10740 --enable-docs 10741 10742 2003-04-28 Havoc Pennington <hp (a] redhat.com> 10743 10744 * configure.in: 0.10 10745 10746 * NEWS: update 10747 10748 * bus/system.conf.in: add <includedir>system.d</includedir> 10749 10750 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when 10751 username was provided but not uid 10752 10753 * bus/config-parser.c (struct BusConfigParser): keep track of 10754 whether the parser is toplevel or was included; change some 10755 of the error handling if it's included. 10756 10757 2003-04-27 Havoc Pennington <hp (a] pobox.com> 10758 10759 Unbreak my code... 10760 10761 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): 10762 report correct status if we finish processing authentication 10763 inside this function. 10764 10765 * bus/activation.c (try_send_activation_failure): use 10766 bus_transaction_send_error_reply 10767 10768 * bus/connection.c (bus_connection_get_groups): return an error 10769 explaining the problem 10770 10771 * bus/bus.c (bus_context_check_security_policy): implement 10772 restriction here that inactive connections can only send the 10773 hello message. Also, allow bus driver to send anything to 10774 any recipient. 10775 10776 * bus/connection.c (bus_connection_complete): create the 10777 BusClientPolicy here instead of on-demand. 10778 (bus_connection_get_policy): don't return an error 10779 10780 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL 10781 sender field in message being replied to 10782 10783 * bus/bus.c (bus_context_check_security_policy): fix silly typo 10784 causing it to return FALSE always 10785 10786 * bus/policy.c (bus_client_policy_check_can_send): fix bug where 10787 we checked sender rather than destination 10788 10789 2003-04-25 Havoc Pennington <hp (a] redhat.com> 10790 10791 test suite is slightly hosed at the moment, will fix soon 10792 10793 * bus/connection.c (bus_connections_expire_incomplete): fix to 10794 properly disable the timeout when required 10795 (bus_connection_set_name): check whether we can remove incomplete 10796 connections timeout after we complete each connection. 10797 10798 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit, 10799 probably still broken. 10800 10801 * bus/services.c (bus_registry_acquire_service): implement max 10802 number of services owned, and honor allow/deny rules on which 10803 services a connection can own. 10804 10805 * bus/connection.c (bus_connection_get_policy): report errors here 10806 10807 * bus/activation.c: implement limit on number of pending 10808 activations 10809 10810 2003-04-25 Havoc Pennington <hp (a] redhat.com> 10811 10812 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug 10813 where we used >= 0 instead of != DBUS_UID_UNSET. 10814 10815 2003-04-25 Havoc Pennington <hp (a] redhat.com> 10816 10817 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches 10818 were toggled without add/remove, fix from Anders Gustafsson 10819 10820 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10821 10822 * test/data/valid-config-files/basic.conf: add <limit> tags to 10823 this test 10824 10825 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement 10826 <limit> tag in configuration file. 10827 10828 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10829 10830 * bus/dispatch.c: somehow missed some name_is 10831 10832 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) 10833 (_dbus_timeout_set_interval): new 10834 10835 * bus/connection.c (bus_connections_setup_connection): record time 10836 when each connection is first set up, and expire them after the 10837 auth timeout passes. 10838 10839 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10840 10841 * dbus/dbus-message.c (dbus_message_name_is): rename 10842 (dbus_message_service_is): rename 10843 (dbus_message_sender_is): rename 10844 (dbus_message_get_service): rename 10845 10846 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10847 10848 * configure.in: add --enable-checks 10849 10850 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments 10851 10852 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix 10853 to use thread locks. 10854 (_dbus_connection_handler_destroyed_locked): move some private 10855 functions into proper docs group 10856 10857 * dbus/dbus-internals.h: add _dbus_return_if_fail, 10858 _dbus_return_val_if_fail 10859 10860 Throughout: use dbus_return_if_fail 10861 10862 2003-04-23 James Willcox <jwillcox (a] gnome.org> 10863 10864 * glib/dbus-glib.h: 10865 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source), 10866 (dbus_connection_setup_with_g_main), 10867 (dbus_server_setup_with_g_main): 10868 * glib/test-dbus-glib.c: (main): 10869 * glib/test-thread-client.c: (main): 10870 * glib/test-thread-server.c: (new_connection_callback), (main): 10871 * tools/dbus-monitor.c: (main): 10872 10873 Added a GMainContext argument to dbus_connection_setup_with_g_main() 10874 and dbus_server_setup_with_g_main(). 10875 10876 2003-04-20 Havoc Pennington <hp (a] pobox.com> 10877 10878 * doc/dbus-specification.sgml: document the restrictions on 10879 message and service names 10880 10881 2003-04-22 Havoc Pennington <hp (a] redhat.com> 10882 10883 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer 10884 support, and do some code cleanups to share more code and 10885 speed up array marshal/demarshal. 10886 10887 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags 10888 10889 * configure.in: generate dbus-arch-deps.h 10890 10891 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add 10892 64-bit typecodes 10893 10894 2003-04-22 Havoc Pennington <hp (a] redhat.com> 10895 10896 * test/data/valid-messages/opposite-endian.message: fix test 10897 to use proper type for rply field 10898 10899 * test/data/invalid-messages: add tests for below validation 10900 10901 * dbus/dbus-message.c (decode_header_data): validate field types, 10902 and validate that named fields are valid names 10903 (decode_name_field): consider messages in the 10904 org.freedesktop.Local. namespace to be invalid. 10905 10906 * dbus/dbus-string.c (_dbus_string_validate_name): new 10907 10908 2003-04-19 Havoc Pennington <hp (a] pobox.com> 10909 10910 * bus/driver.c (bus_driver_handle_hello): check limits and 10911 return an error if they are exceeded. 10912 10913 * bus/connection.c: maintain separate lists of active and inactive 10914 connections, and a count of each. Maintain count of completed 10915 connections per user. Implement code to check connection limits. 10916 10917 * dbus/dbus-list.c (_dbus_list_unlink): export 10918 10919 * bus/bus.c (bus_context_check_security_policy): enforce a maximum 10920 number of bytes in the message queue for a connection 10921 10922 2003-04-18 Havoc Pennington <hp (a] pobox.com> 10923 10924 * dbus/dbus-auth.c (record_mechanisms): memleak fixes 10925 10926 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some 10927 memleaks 10928 10929 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and 10930 on realloc be sure to update the pointer in the keyring 10931 10932 * dbus/dbus-string.c (_dbus_string_zero): compensate for align 10933 offset to avoid writing to unallocated memory 10934 10935 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to 10936 try the next mechanism, so we properly handle OOM 10937 10938 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free 10939 on OOM. 10940 (_dbus_keyring_new): fix OOM bug 10941 (_dbus_keyring_new_homedir): always set error; impose a maximum 10942 number of keys we'll load from the file, mostly to speed up the 10943 test suite and make its OOM checks more useful, but also for 10944 general sanity. 10945 10946 * dbus/dbus-auth.c (process_error_server): reject authentication 10947 if we get an error from the client 10948 (process_cancel): on cancel, send REJECTED, per the spec 10949 (process_error_client): send CANCEL if we get an error from the 10950 server. 10951 10952 2003-04-18 Havoc Pennington <hp (a] pobox.com> 10953 10954 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose 10955 debug spew 10956 10957 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM 10958 handling problem 10959 10960 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine 10961 about DBUS_TEST_HOMEDIR once 10962 10963 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in 10964 the environment 10965 10966 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1 10967 config file so we test the right thing 10968 10969 Throughout: assorted docs improvements 10970 10971 2003-04-18 Havoc Pennington <hp (a] pobox.com> 10972 10973 * glib/dbus-gmain.c: adapt to watch changes 10974 10975 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes 10976 10977 * dbus/dbus-server.h: remove dbus_server_handle_watch 10978 10979 * dbus/dbus-connection.h: remove dbus_connection_handle_watch 10980 10981 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work 10982 like DBusTimeout, so we don't need dbus_connection_handle_watch 10983 etc. 10984 10985 2003-04-17 Havoc Pennington <hp (a] redhat.com> 10986 10987 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd 10988 database usage so it all goes via the DBusUserDatabase cache. 10989 10990 2003-04-17 Havoc Pennington <hp (a] redhat.com> 10991 10992 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if 10993 there was an OOM watch we skipped, we always return TRUE so we 10994 iterate again to have a look at it again. Fixes test suite hang. 10995 Code rearrangement also lets us lose some memset and only iterate 10996 over callbacks once. 10997 10998 * bus/driver.c (bus_driver_handle_message): sense of test for 10999 reply was backward 11000 11001 2003-04-16 Havoc Pennington <hp (a] pobox.com> 11002 11003 * doc/dbus-specification.sgml: make spec say serials are unsigned 11004 11005 * dbus/dbus-message.h: change message serials to unsigned 11006 11007 * dbus/dbus-connection.c: adapt to message serials being unsigned 11008 11009 2003-04-15 Havoc Pennington <hp (a] pobox.com> 11010 11011 * bus/bus.c: create and keep around a shared DBusUserDatabase 11012 object. 11013 11014 * bus/connection.c (bus_connection_get_groups): don't cache 11015 groups for user in the connection object, since user database 11016 object now does that. 11017 11018 2003-04-16 Havoc Pennington <hp (a] redhat.com> 11019 11020 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a 11021 list of size counters 11022 (_dbus_message_loader_putback_message_link): put back a popped link 11023 11024 * dbus/dbus-connection.c 11025 (dbus_connection_set_max_live_messages_size): rename 11026 max_received_size 11027 (dbus_connection_get_outgoing_size): get size of outgoing 11028 queue 11029 (_dbus_connection_set_connection_counter): remove this cruft 11030 11031 2003-04-14 Havoc Pennington <hp (a] redhat.com> 11032 11033 * dbus/dbus-userdb.c: user database abstraction, mostly to get 11034 caching, but at some point we might want to be able to use a 11035 different database. 11036 11037 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses 11038 SHA1 conf file to test the sha1 auth mechanism, since the regular 11039 test always uses EXTERNAL when available. 11040 11041 * configure.in, 11042 test/data/valid-config-files/debug-allow-all-sha1.conf.in: 11043 add conf file that requires use of sha1 auth 11044 11045 2003-04-13 Havoc Pennington <hp (a] pobox.com> 11046 11047 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs 11048 from Philip Blundell to send messages and monitor them. 11049 11050 2003-04-13 Havoc Pennington <hp (a] pobox.com> 11051 11052 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting 11053 callbacks 11054 11055 * test/data/valid-config-files/debug-allow-all.conf.in: allow all 11056 users 11057 11058 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): 11059 fix to only recover unused bytes if we're already authenticated 11060 (_dbus_transport_get_is_authenticated): fix to still mark us 11061 authenticated if there are unused bytes. 11062 11063 * bus/dispatch.c: implement security policy checking 11064 11065 * bus/connection.c (bus_transaction_send_from_driver): new 11066 11067 * bus/bus.c (bus_context_check_security_policy): new 11068 11069 * bus/dispatch.c (send_service_nonexistent_error): delete this, 11070 now we just set the DBusError and it gets converted to an error 11071 reply. 11072 11073 * bus/connection.c (allow_user_function): enable code using actual 11074 data from the config file 11075 11076 * bus/policy.c (list_allows_user): handle wildcard rules for 11077 user/group connection perms 11078 11079 2003-04-13 Havoc Pennington <hp (a] pobox.com> 11080 11081 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules 11082 11083 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function 11084 11085 * bus/policy.c (bus_policy_append_mandatory_rule) 11086 (bus_policy_append_default_rule, bus_policy_append_user_rule) 11087 (bus_policy_append_group_rule): new functions 11088 11089 2003-04-12 Havoc Pennington <hp (a] pobox.com> 11090 11091 * bus/config-parser.c (bus_config_parser_new): fix a memleak 11092 11093 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for 11094 the pid/gid/uid, just for paranoia. 11095 11096 * test/break-loader.c (randomly_do_n_things): find a byte 11097 containing a type code, and randomly change it to a different 11098 type code. 11099 11100 2003-04-12 Havoc Pennington <hp (a] pobox.com> 11101 11102 * bus/policy.h: change BusPolicy to be the thing from the config 11103 file, and rename old BusPolicy to BusClientPolicy 11104 11105 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to 11106 match change in how policy works 11107 11108 * dbus/dbus-internals.h: mark assert_not_reached as 11109 __attribute((noreturn))__ 11110 11111 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11112 11113 * doc/dbus-specification.sgml: fix a spot with the wrong name for 11114 the broadcast service. Use boolean return for ServiceExists. 11115 11116 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11117 11118 * configure.in: add another directory to look for qt in. 11119 11120 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11121 11122 * AUTHORS: add Colin Walters 11123 11124 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11125 11126 * NEWS: update 11127 11128 * configure.in: 0.9 11129 11130 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11131 11132 * bus/messagebus.in: remove pid file when stopping the 11133 message bus, since the bus won't have privileges to remove it 11134 itself. 11135 11136 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11137 11138 * bus/bus.c (bus_context_new): move credentials change after 11139 creating pidfile 11140 11141 2003-04-11 Havoc Pennington <hp (a] pobox.com> 11142 11143 * test/decode-gcov.c: add "below average functions" to the 11144 coverage report, and change how some of the code works. 11145 11146 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's 11147 not in the coverage stats. 11148 11149 * test/test-service.c (main): use _dbus_verbose not fprintf in a 11150 couple places so running the test suite doesn't result in megaspam. 11151 11152 2003-04-11 Havoc Pennington <hp (a] pobox.com> 11153 11154 * bus/dispatch.c (check_existent_service_activation): accept a no 11155 memory error in a place we didn't before 11156 11157 * bus/test.c (bus_test_run_everything): remove hacky "do it twice 11158 in case the first one failed," since the test suite is less 11159 broken now. 11160 11161 2003-04-10 Havoc Pennington <hp (a] pobox.com> 11162 11163 * bus/dispatch.c (check_segfault_service_activation): add test 11164 for launching an executable that just crashes. 11165 11166 * test/test-segfault.c (main): try setting coredumpsize to 0 so we 11167 don't leave a million cores. We'll see how portable this is. 11168 11169 2003-04-10 Havoc Pennington <hp (a] pobox.com> 11170 11171 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all 11172 the possible parent failures before we fork, so that we don't 11173 fail to create a babysitter after creating the child. 11174 11175 * bus/activation.c (bus_activation_activate_service): kill child 11176 if we don't successfully complete the activation. 11177 11178 2003-04-10 Havoc Pennington <hp (a] redhat.com> 11179 11180 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on 11181 the connection if it's disconnected 11182 11183 * bus/activation.c (bus_activation_service_created): use new 11184 transaction features to roll back removal of pending activation if 11185 we don't successfully create the service after all. Don't remove 11186 pending activation if the function fails. 11187 11188 * dbus/dbus-list.c (_dbus_list_insert_before_link) 11189 (_dbus_list_insert_after_link): new code to facilitate 11190 services.c fixes 11191 11192 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): 11193 new functionality, so we can preallocate the ability to insert 11194 into a hash table. 11195 11196 * bus/connection.c (bus_transaction_add_cancel_hook): new function 11197 allowing us to put custom hooks in a transaction to be used for 11198 cancelling said transaction 11199 11200 * doc/dbus-specification.sgml: add some discussion of secondary 11201 service owners, and disallow zero-length service names 11202 11203 * bus/services.c (bus_registry_acquire_service): new function, 11204 splits out part of bus_driver_handle_acquire_service() and fixes 11205 a bug where we didn't remove the service doing the acquiring 11206 from the secondary queue if we failed to remove the current owner 11207 from the front of the queue. 11208 11209 2003-04-10 Alexander Larsson <alexl (a] redhat.com> 11210 11211 * doc/dbus-specification.sgml: 11212 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/ 11213 11214 2003-04-10 Alexander Larsson <alexl (a] redhat.com> 11215 11216 * bus/.cvsignore: 11217 * glib/.cvsignore: 11218 * test/.cvsignore: 11219 Added files to cvsignore 11220 11221 * dbus/dbus-message.h: 11222 * dbus/dbus-message.c: (dbus_message_iter_get_named): 11223 Make get_named() take two out argument and return a boolean. 11224 (dbus_message_iter_get_args_valist): 11225 Update usage of get_named(). 11226 (dbus_message_iter_append_byte): 11227 Fix typo 11228 (dbus_message_iter_append_named) 11229 Fix typo 11230 (message_iter_test), (check_message_handling_type), (_dbus_message_test): 11231 More tests. 11232 11233 2003-04-10 Alexander Larsson <alexl (a] redhat.com> 11234 11235 * dbus/dbus-marshal.[ch]: 11236 Add array_type_pos argument to _dbus_marshal_validate_arg. 11237 Let you pass a NULL end_pos to _dbus_marshal_validate_type. 11238 11239 * dbus/dbus-message.[ch]: 11240 Multi-dimensional arrays have full type specification in the 11241 outermost array. Iter code re-arranged to handle this. 11242 Added some more iter tests. 11243 11244 * doc/dbus-specification.sgml: 11245 Add me to authors. 11246 Remove old FIXME. 11247 Update new array encoding description. 11248 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description. 11249 11250 * test/data/invalid-messages/array-with-mixed-types.message: 11251 * test/data/valid-messages/array-of-array-of-uint32.message: 11252 Change to the new array format. 11253 11254 * test/data/invalid-messages/too-short-dict.message: 11255 Fix bug in test. 11256 11257 * test/data/valid-messages/recursive-types.message: 11258 Fix up and extend test. 11259 11260 2003-04-10 Havoc Pennington <hp (a] pobox.com> 11261 11262 * bus/dispatch.c: lots of fixes 11263 11264 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export 11265 (_dbus_loop_iterate): remove old "quit if no callbacks" code, 11266 that was crack, broke the test service. 11267 11268 * dbus/dbus-transport.c (_dbus_transport_open): fix error 11269 handling to avoid piling up errors if we get a failure on the 11270 first address. 11271 11272 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include 11273 pid in assertion failures. 11274 11275 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up 11276 to some fixed size of file descriptor array. Don't return TRUE 11277 anytime a timeout exists, that led to lots of busy loop silliness 11278 in the tests. 11279 11280 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11281 11282 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought 11283 I'd checked this in earlier but hadn't. 11284 11285 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11286 11287 * bus/dispatch.c (bus_dispatch_test): get a bit further through 11288 the activation test (man this is getting old!) 11289 11290 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11291 11292 * test/test-utils.c: use dispatch status function to fix this up 11293 11294 * bus/connection.c (connection_watch_callback): don't dispatch 11295 from here 11296 (connection_timeout_callback): don't dispatch from here 11297 (bus_connections_setup_connection): set the dispatch status function 11298 (bus_connection_disconnected): unset it 11299 11300 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function 11301 used to add a connection to be dispatched 11302 (_dbus_loop_iterate): do the dispatching at the end of each 11303 iteration 11304 11305 * dbus/dbus-connection.c 11306 (dbus_connection_set_dispatch_status_function): new function 11307 allowing us to fix up main loop usage 11308 (_dbus_connection_last_unref): free all the various function 11309 user data 11310 (dbus_connection_dispatch): call the DispatchStatusFunction 11311 whenever this function returns 11312 (dbus_connection_handle_watch): call DispatchStatusFunction 11313 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction 11314 (reply_handler_timeout): call DispatchStatusFunction 11315 (dbus_connection_flush): call DispatchStatusFunction 11316 11317 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11318 11319 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and 11320 a memory leak 11321 11322 * bus/dispatch.c (check_service_activated): fix bug in test 11323 11324 * dbus/dbus-mainloop.c (check_timeout): fix this up 11325 11326 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in 11327 verbose output so we can sort out output from different processes, 11328 e.g. in the activation case. 11329 11330 2003-04-08 Colin Walters <walters (a] gnu.org> 11331 11332 * bus/bus.c (struct BusContext) [pidfile]: New member, to store 11333 the pid file. 11334 (bus_context_new): Set it. 11335 (bus_context_unref): Use it to delete the pid file. 11336 11337 2003-04-08 Havoc Pennington <hp (a] redhat.com> 11338 11339 * test/data/invalid-messages/array-with-mixed-types.message: 11340 regression test that fails for the moment 11341 11342 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder 11343 tests for convenience 11344 11345 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow 11346 array of nil, it broke things. 11347 11348 * test/data/invalid-messages/array-of-nil.message: regression test 11349 11350 * test/data/valid-messages/array-of-array-of-uint32.message: 11351 happened to write this so added it to suite 11352 11353 2003-04-08 Havoc Pennington <hp (a] redhat.com> 11354 11355 * bus/driver.c (bus_driver_handle_acquire_service): init 11356 retval/reply before checking name 11357 11358 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a 11359 recursion depth argument 11360 11361 * dbus/dbus-message.h (struct DBusMessageIter): put some padding 11362 in the public struct for future extension 11363 11364 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix 11365 typo 11366 11367 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose 11368 message 11369 11370 * doc/dbus-specification.sgml: fix typo 11371 11372 2003-04-08 Alexander Larsson <alexl (a] redhat.com> 11373 11374 Implemented recursive types, named types and new-style iters 11375 11376 * bus/driver.c: 11377 * glib/test-thread-client.c: (thread_func): 11378 * glib/test-thread-server.c: (handle_test_message): 11379 * test/test-service.c: (handle_echo): 11380 Update to new api 11381 11382 * dbus/Makefile.am: 11383 * dbus/dbus-dict.c: 11384 * dbus/dbus-dict.h: 11385 * dbus/dbus.h 11386 Remove DBusDict 11387 11388 * dbus/dbus-internals.c: (_dbus_type_to_string): 11389 Update for new types. 11390 11391 * dbus/dbus-marshal.[ch]: 11392 Implement recursive types and the new marshalling format. 11393 Remove hardcoded dict marshalling. 11394 Marshal named types. 11395 11396 * dbus/dbus-message-builder.c: 11397 Add BYTE_ARRAY. 11398 Remove references to old types 11399 11400 * dbus/dbus-message.[ch]: 11401 New non-refcounted iter API that supports recursive iters. 11402 Use iters for appending, including support for recursive 11403 iters. 11404 Add byte and named type support. 11405 Update everything to new marshalling formats. 11406 Add tests for new API. 11407 11408 * dbus/dbus-protocol.h: 11409 Remove old array types. 11410 Add types: BYTE, ARRAY, DICT, NAMED 11411 11412 * dbus/dbus-string.c: 11413 * dbus/dbus-sysdeps.c: 11414 Make parse_double locale safe. 11415 11416 * dbus/dbus-test-main.c: 11417 Call setlocale. 11418 11419 * dbus/dbus-test.c: 11420 Kill dict test 11421 11422 * doc/dbus-specification.sgml: 11423 Update spec 11424 11425 * test/data/incomplete-messages/missing-body.message: 11426 * test/data/invalid-messages/bad-boolean.message: 11427 * test/data/invalid-messages/bad-boolean-array.message: 11428 * test/data/invalid-messages/boolean-array-length-too-long.message-raw: 11429 * test/data/invalid-messages/boolean-has-no-value.message-raw: 11430 * test/data/invalid-messages/too-short-dict.message: 11431 * test/data/valid-messages/dict-simple.message: 11432 * test/data/valid-messages/dict.message: 11433 * test/data/valid-messages/emptiness.message: 11434 * test/data/valid-messages/lots-of-arguments.message: 11435 * test/data/valid-messages/no-padding.message: 11436 * test/data/valid-messages/recursive-types.message: 11437 Add missing NAME fields 11438 Fix up dicts & arrays 11439 11440 * test/data/invalid-messages/dict-with-nil-value.message: 11441 Removed, this is not invalid anymore. 11442 11443 * test/data/valid-messages/recursive-types.message: 11444 Add new test for deeply recursive types. 11445 11446 2003-04-07 Havoc Pennington <hp (a] pobox.com> 11447 11448 * bus/driver.c (bus_driver_handle_acquire_service): return an 11449 error if you try to acquire a service that starts with ':' 11450 11451 2003-04-07 Havoc Pennington <hp (a] redhat.com> 11452 11453 * doc/dbus-specification.sgml: require that base service names 11454 start with ':' and that the base service is created/deleted 11455 as first and last things a connection does on the bus 11456 11457 * bus/dispatch.c (check_existent_service_activation): lots more 11458 work on the activation test; it doesn't fully pass yet... 11459 11460 * test/test-service.c (main): fix so we don't memleak the 11461 connection to the message bus 11462 (filter_func): accept a message asking us to exit 11463 11464 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11465 11466 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, 11467 from Colin Walters 11468 11469 * configure.in: fixes to Qt detection from Colin Walters 11470 11471 * doc/Makefile.am: Only remove generated docbook dirs if they 11472 exist, from Colin Walters 11473 11474 * dbus/dbus-bus.c: change how we set well-known connections to 11475 NULL, so that it works if a single connection is stored in 11476 two well-known array slots. 11477 11478 * test/Makefile.am: remove a lot of stuff that isn't immediately 11479 useful, it's in CVS history if we want it. 11480 11481 * test/test-service.c: use dbus-mainloop instead of that 11482 watch.[hc] crack 11483 11484 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11485 11486 * dbus/Makefile.am: split lists of sources into stuff that goes in 11487 the library, util functions that go in the lib and are also used 11488 elsewhere, and util functions that are used in tests/daemon but 11489 don't go in the lib. 11490 11491 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] 11492 here so it can be used in test binaries also 11493 11494 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11495 11496 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile 11497 here in the parent process, so we can return an error if it 11498 fails. Also, move some of the code into the child so the parent 11499 is less hosed if we fail midway through. 11500 11501 * bus/bus.c (bus_context_new): move pidfile detection further up 11502 in the function, before we start overwriting sockets and such. 11503 11504 * bus/messagebus.in: adjust this a bit, not sure if it will work. 11505 11506 * configure.in: add --with-system-pid-file and --with-system-socket 11507 11508 2003-04-06 Colin Walters <walters (a] verbum.org> 11509 11510 * configure.in (DBUS_SYSTEM_PID_FILE): New variable. 11511 11512 * bus/system.conf.in: Declare a pidfile. 11513 11514 * bus/bus.c (bus_context_new): Test for an existing pid file, and 11515 create one (if appropriate). 11516 11517 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New. 11518 (struct BusConfigParser) [pidfile]: New. 11519 (element_type_to_name, merge_included, start_busconfig_child) 11520 (bus_config_parser_end_element, bus_config_parser_content): Handle it. 11521 (bus_config_parser_unref): Free it. 11522 (bus_config_parser_get_pidfile): New function. 11523 11524 * bus/config-parser.h (_dbus_write_pid_file): Prototype. 11525 11526 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error. 11527 11528 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function. 11529 11530 * dbus/dbus-sysdeps.h: Prototype it. 11531 11532 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11533 11534 * bus/bus.c (bus_context_new): print the address in here, rather 11535 than in main(), because we need to do it before forking the daemon 11536 11537 * bus/dispatch.c (send_service_nonexistent_error): set the sender 11538 on the service nonexistent error 11539 11540 * bus/driver.c (bus_driver_handle_acquire_service): set the 11541 sender on the AcquireService reply 11542 11543 * test/data/valid-config-files/debug-allow-all.conf.in: Make test 11544 server also listen on a UNIX socket so services can connect to it. 11545 11546 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11547 11548 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done 11549 so it detects deadlocks and also we actually init threads when 11550 debugging. 11551 11552 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11553 11554 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): 11555 save the domain socket name, and unlink it when we disconnect the 11556 server. Means that at least when we exit normally, we won't leave 11557 a bunch of junk in /tmp 11558 11559 * dbus/dbus-transport-unix.c 11560 (_dbus_transport_new_for_domain_socket): code cleanup (nicer 11561 memory management). (I was making a real change here but then 11562 didn't) 11563 11564 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11565 11566 * bus/bus.c (bus_context_new): fix wrong handling of 11567 server_data_slot_unref() in the error case. 11568 11569 * dbus/dbus-internals.h (_dbus_assert): change so it passes 11570 "(condition) != 0" to _dbus_real_assert so that 11571 "_dbus_assert (pointer)" doesn't cause a warning 11572 11573 * bus/main.c (main): accept --print-address option to print out 11574 the message bus address 11575 11576 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this 11577 11578 * dbus/dbus-transport.c (_dbus_transport_open): special error for 11579 "tmpdir" option to unix: address on client side 11580 11581 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option 11582 to unix: address 11583 11584 * configure.in (TEST_SOCKET_DIR): locate a temporary directory 11585 we can use to create sockets in the test suite. 11586 11587 * bus/main.c (signal_handler): on SIGTERM, exit the daemon 11588 cleanly. To be used for testing. 11589 11590 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler() 11591 11592 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new 11593 11594 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 11595 handle trying to call this when there's no servers active 11596 11597 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11598 11599 * NEWS: update 11600 11601 * configure.in: 0.8 11602 11603 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11604 11605 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't 11606 crash on startup. Need to get "try starting the daemon" 11607 in the test suite I guess. ;-) 11608 11609 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that 11610 tracked the number of open connections; it's better done in 11611 application-specific code as you want it to span all servers etc. 11612 11613 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11614 11615 * bus/Makefile.am (install-data-hook): add missing DESTDIR, 11616 patch from Colin Walters 11617 11618 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11619 11620 * doc/config-file.txt (Elements): fix docs of <auth> to reflect 11621 reality; in fact multiple mechanisms are allowed. 11622 11623 * dbus/dbus-internals.c (_dbus_real_assert) 11624 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and 11625 _dbus_assert_not_reached() into functions, so that they don't show 11626 up in basic block counts for test coverage, and don't use up as 11627 much disk space. Does mean slower execution speed though, so 11628 assumes --disable-asserts is the normal production case. 11629 11630 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11631 11632 * test/Makefile.am (dist-hook): also dist *.in files 11633 11634 * NEWS: update 11635 11636 * configure.in: 0.7 11637 11638 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11639 11640 * dbus/dbus-string.c: docs warning 11641 11642 * dbus/dbus-spawn.c: missing docs 11643 11644 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs 11645 11646 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11647 11648 * bus/loop.c (bus_loop_iterate): fix the timeout code, using 11649 magic from GLib 11650 11651 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid 11652 to -1 once we've reaped the babysitter 11653 (_dbus_babysitter_handle_watch): do as much work as we can, not 11654 just one go of it 11655 11656 * bus/activation.c: add code using DBusBabysitter so that we 11657 handle it when a service fails to start up properly. 11658 (bus_activation_service_created): don't remove the activation 11659 entries as we go, just let them get removed when we free the pending 11660 activation. Unref reply messages after sending them. 11661 11662 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11663 11664 * test/decode-gcov.c (main): print per-directory stats in the report 11665 11666 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats 11667 11668 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11669 11670 * Makefile.am (coverage-report.txt): add target "coverage-report.txt" 11671 11672 * test/decode-gcov.c: hack up a little program to suck data 11673 out of gcov files. Yes this is sort of silly. 11674 11675 * configure.in: define something in config.h and do an 11676 AM_CONDITIONAL when gcov is enabled 11677 11678 2003-04-04 Havoc Pennington <hp (a] redhat.com> 11679 11680 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to 11681 return a "babysitter" object that is used to monitor the status of 11682 the spawned process and reap it when required. 11683 11684 * test/test-segfault.c, test/test-exit.c, 11685 test/test-sleep-forever.c: binaries that do various lame things, 11686 used in the test suite. 11687 11688 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string() 11689 11690 2003-04-03 Havoc Pennington <hp (a] pobox.com> 11691 11692 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file 11693 in preparation for modifying it, dbus-sysdeps is getting 11694 a bit unmanageable. 11695 11696 2003-04-03 Havoc Pennington <hp (a] redhat.com> 11697 11698 * bus/loop.h, bus/loop.c: make the mainloop an object so we can 11699 have multiple ones 11700 11701 * bus/*.[hc]: adapt to mainloop change 11702 11703 2003-04-03 Havoc Pennington <hp (a] redhat.com> 11704 11705 * bus/activation.c (load_directory): fix up memleaks 11706 (bus_activation_entry_free): free the entry 11707 11708 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if 11709 we get one from the message bus; fix memleaks. 11710 11711 * dbus/dbus-message.c (dbus_set_error_from_message): new function 11712 11713 2003-04-03 Havoc Pennington <hp (a] pobox.com> 11714 11715 * bus/config-parser.c (bus_config_parser_unref): free 11716 list of mechanisms, bug discovered by test suite enhancements 11717 (putting system.conf and session.conf into suite) 11718 11719 * test/Makefile.am, test/test-service.c: add placeholder for a 11720 test service that we'll activate as part of test suite. Doesn't 11721 do anything yet. 11722 11723 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by 11724 setting NULL value, and use system malloc not dbus_malloc() 11725 when we have unavoidable memleakage. 11726 11727 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0 11728 didn't work, and support DBUS_BUS_ACTIVATION. 11729 11730 * bus/activation.c (child_setup): pass our well-known bus type to 11731 the child 11732 11733 * bus/config-parser.c: support <type> to specify well-known type 11734 11735 * doc/dbus-specification.sgml: document the env variables to 11736 locate well-known buses and find service activator 11737 11738 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11739 11740 * test/Makefile.am (all-local): add a rule to copy tests to 11741 builddir, so we can have generated tests. Use this to remove the 11742 silly hack for testing system.conf and session.conf. Will use this 11743 shortly to generate .service files pointing to test binaries. 11744 11745 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11746 11747 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of 11748 current alloc and needed new length, not max of the doubled 11749 allocation and needed new length. Also, when building tests, 11750 don't do the double-allocation stuff, just realloc every time. 11751 11752 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11753 11754 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames 11755 in error messages 11756 (_dbus_string_get_dirname): new 11757 (_dbus_sysdeps_test): new 11758 (_dbus_directory_open): include dirnames in error messages 11759 11760 * bus/config-parser.c: interpret <include> and <includedir> and 11761 <servicedir> relative to config file location if the given 11762 filename is not absolute. 11763 11764 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new 11765 11766 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11767 11768 * bus/connection.c (bus_transaction_send_error_reply): set sender 11769 service for the error, and unref the reply on success 11770 11771 * bus/activation.c: convert to use BusTransaction so OOM can be 11772 handled correctly 11773 (bus_activation_service_created): set sender of the message 11774 11775 2003-04-01 Havoc Pennington <hp (a] redhat.com> 11776 11777 * bus/config-parser.c, bus/bus.c: implement <servicedir> and 11778 <includedir> (at least mostly) 11779 11780 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID 11781 first, then the user ID 11782 11783 2003-04-01 Havoc Pennington <hp (a] pobox.com> 11784 11785 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new 11786 function 11787 11788 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new 11789 11790 * dbus/dbus-internals.c (_dbus_dup_string_array): new function 11791 11792 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the 11793 socket 0777, and unlink any existing socket. 11794 11795 * bus/bus.c (bus_context_new): change our UID/GID and fork if 11796 the configuration file so specifies; set up auth mechanism 11797 restrictions 11798 11799 * bus/config-parser.c (bus_config_parser_content): add support 11800 for <fork> option and fill in code for <auth> 11801 11802 * bus/system.conf.in: add <fork/> to default configuration, 11803 and limit auth mechanisms to EXTERNAL 11804 11805 * doc/config-file.txt (Elements): add <fork> 11806 11807 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function 11808 (_dbus_change_identity): new function 11809 11810 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11811 11812 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) 11813 (_dbus_listen_unix_socket): fix off-by-one error in null 11814 termination spotted by Nalin 11815 11816 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11817 11818 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting 11819 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without 11820 having a real home directory available. 11821 11822 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11823 11824 * bus/Makefile.am (install-data-hook): create /var/run/dbus 11825 11826 * bus/messagebus.in: add init script for Red Hat /etc/init.d 11827 11828 * configure.in: add support for specifying a style of init script 11829 to install 11830 11831 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11832 11833 Fix some annoying DBusString API and fix all affected code. 11834 11835 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying 11836 max_length argument 11837 (_dbus_string_get_data): change to return string instead of using 11838 an out param 11839 (_dbus_string_get_const_data): ditto 11840 (_dbus_string_get_data_len): ditto 11841 (_dbus_string_get_const_data_len): ditto 11842 11843 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11844 11845 * bus/main.c (main): fix up the command line arguments to be nicer 11846 11847 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11848 11849 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to 11850 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same 11851 final location that lands in the config file 11852 11853 * bus/config-loader-expat.c (bus_config_load): fix type of 11854 XML_Parser variable 11855 11856 * doc/TODO: remove TODO item for dbus_bus_get() 11857 11858 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock 11859 11860 2003-03-31 Havoc Pennington <hp (a] pobox.com> 11861 11862 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket) 11863 (_dbus_transport_new_for_tcp_socket): these didn't need the "server" 11864 argument since they are always client side 11865 11866 * dbus/dbus-server.c (dbus_server_get_address): new function 11867 11868 * bus/main.c (main): take the configuration file as an argument. 11869 11870 * test/data/valid-config-files/debug-allow-all.conf: new file to 11871 use with dispatch.c tests for example 11872 11873 * bus/test-main.c (main): require test data dir 11874 11875 * bus/bus.c (bus_context_new): change this to take a 11876 configuration file name as argument 11877 11878 * doc/config-file.txt (Elements): add <servicedir> 11879 11880 * bus/system.conf, bus/session.conf: new files 11881 11882 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on 11883 well-known socket if none set 11884 11885 * configure.in: create system.conf and session.conf 11886 11887 2003-03-30 Havoc Pennington <hp (a] pobox.com> 11888 11889 * bus/config-parser.c: hacking 11890 11891 * dbus/dbus-memory.c: don't use DBusList for the list of stuff 11892 to shut down, since it could cause weirdness with the DBusList 11893 lock 11894 11895 * dbus/dbus-list.c (_dbus_list_test): add tests for the 11896 link-oriented stack routines 11897 (alloc_link): free the mempool if the first alloc from it fails 11898 11899 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue 11900 11901 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this 11902 from GLib 11903 (_dbus_string_skip_white): new 11904 11905 * doc/config-file.txt (Elements): add <includedir> 11906 11907 2003-03-28 Havoc Pennington <hp (a] pobox.com> 11908 11909 * dbus/dbus-string.c (_dbus_string_copy_data_len) 11910 (_dbus_string_copy_data): new functions 11911 11912 2003-03-28 Anders Carlsson <andersca (a] codefactory.se> 11913 11914 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get): 11915 * dbus/dbus-bus.h: 11916 Add dbus_bus_get. 11917 11918 * dbus/dbus-memory.c: 11919 Fix a doc comment. 11920 11921 2003-03-28 Havoc Pennington <hp (a] pobox.com> 11922 11923 * bus/test.c (bus_test_flush_bus): remove the sleep from here, 11924 I think it may have just been superstition. Not sure. 11925 11926 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM 11927 failures that were not being handled. 11928 11929 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling 11930 11931 * dbus/dbus-memory.c: add ability to set number of mallocs in a 11932 row that will fail on out-of-memory. 11933 11934 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience 11935 function for testing out-of-memory handling. 11936 11937 * bus/config-loader-expat.c (memsuite): don't wrap the dbus 11938 allocation functions, they do map exactly to the expat ones. 11939 11940 2003-03-27 Havoc Pennington <hp (a] redhat.com> 11941 11942 * bus/config-loader-libxml.c (bus_config_load): add another error 11943 check 11944 11945 2003-03-26 Anders Carlsson <andersca (a] codefactory.se> 11946 11947 * doc/TODO: 11948 Add note about automatic service activation. 11949 11950 * doc/dbus-specification.sgml: 11951 Rename the specification and clarify a few things. 11952 11953 2003-03-26 Anders Carlsson <andersca (a] codefactory.se> 11954 11955 * Doxyfile.in: 11956 * dbus/dbus-address.c: 11957 * dbus/dbus-dict.c: 11958 * dbus/dbus-marshal.c: 11959 * dbus/dbus-server-debug-pipe.c: 11960 * dbus/dbus-transport-unix.c: 11961 Fix documentation warnings. 11962 11963 2003-03-26 Havoc Pennington <hp (a] pobox.com> 11964 11965 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks 11966 after every test so it's quick and easy to see which leaked, and 11967 so we test multiple dbus_shutdown() calls 11968 11969 * configure.in: change configure.in XML stuff to also support 11970 expat 11971 11972 * config-loader-libxml.c: some hacking 11973 11974 * config-loader-expat.c: some hacking 11975 11976 * config-parser.c: some hacking, plus tests 11977 11978 2003-03-25 Havoc Pennington <hp (a] redhat.com> 11979 11980 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR 11981 11982 * configure.in: add --with-xml option to specify XML library, 11983 right now only libxml is supported. 11984 11985 * bus/config-loader-libxml.c, config-parser.c: sync some minor 11986 nonworking code between home and work, still just stubs 11987 11988 2003-03-24 Havoc Pennington <hp (a] redhat.com> 11989 11990 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this 11991 file 11992 11993 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow 11994 NULL argument for "message" if the error is a well-known one, 11995 fill in a generic message in this case. 11996 11997 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in 11998 favor of DBusError 11999 12000 * bus/test.c (bus_test_flush_bus): add 12001 12002 * bus/policy.c (bus_policy_test): test code stub 12003 12004 2003-03-24 Havoc Pennington <hp (a] pobox.com> 12005 12006 * bus/connection.c (bus_connections_setup_connection): set up 12007 the "can this user connect" function, but it always returns 12008 TRUE until we have a config file parser so we can have a config 12009 file that allows connections. 12010 12011 2003-03-23 Havoc Pennington <hp (a] pobox.com> 12012 12013 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with 12014 DBUS_BUILD_TESTS, actually alloc/free a block of memory for 12015 the mutex, so we can check for proper memory management 12016 and OOM handling. 12017 12018 * dbus/dbus-dataslot.c: remove the mutex from 12019 DBusDataSlotAllocator and lock it manually when using it, 12020 to simplify fitting it into the global slots framework. 12021 12022 * dbus/dbus-threads.c (init_static_locks): rework how we're 12023 handling global locks so they are easily shut down. 12024 12025 * bus/policy.c (bus_policy_append_rule): fix 12026 12027 * bus/test-main.c (main): check for memleaks 12028 12029 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make 12030 test suite check for memleaks 12031 12032 * dbus/dbus-memory.c: add support in test mode for tracking 12033 number of outstanding blocks 12034 12035 2003-03-23 Havoc Pennington <hp (a] pobox.com> 12036 12037 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny 12038 policies code 12039 12040 * dbus/dbus-hash.h: add ULONG hash keys 12041 12042 * dbus/dbus-sysdeps.c (_dbus_get_groups): new 12043 (_dbus_get_group_id): new function 12044 12045 2003-03-20 Havoc Pennington <hp (a] redhat.com> 12046 12047 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function): 12048 new function 12049 (dbus_connection_get_unix_user): new function 12050 12051 2003-03-20 Havoc Pennington <hp (a] pobox.com> 12052 12053 * bus/connection.c (bus_connection_send_oom_error): assert that 12054 message has a sender 12055 (connection_execute_transaction): ditto 12056 (bus_connection_preallocate_oom_error): fix to set the sender, and 12057 set recipient to the destination service, not the bus driver 12058 12059 * bus/policy.c: hacking 12060 12061 * dbus/dbus-message.c (dbus_message_service_is): new function 12062 (dbus_message_sender_is): new 12063 12064 2003-03-19 Havoc Pennington <hp (a] redhat.com> 12065 12066 * bus/policy.c: start sketching code for policy restrictions on 12067 what connections can do. 12068 12069 2003-03-18 Havoc Pennington <hp (a] redhat.com> 12070 12071 * doc/TODO: some notes on high-level todo items. Little nitpick 12072 stuff is all in @todo, so no need to add it here. 12073 12074 * doc/config-file.txt: some notes on how config file might look 12075 12076 2003-03-18 Anders Carlsson <andersca (a] codefactory.se> 12077 12078 * configure.in: 0.6 12079 12080 * NEWS: Update. 12081 12082 2003-03-17 Havoc Pennington <hp (a] redhat.com> 12083 12084 * dbus/dbus-internals.h: add gcc attributes so that 12085 our printf-style functions warn on bad arguments to 12086 format 12087 12088 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf 12089 format bug 12090 12091 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix 12092 printf format bug 12093 12094 2003-03-17 Havoc Pennington <hp (a] redhat.com> 12095 12096 * bus/test-main.c (main): make it print something as it runs 12097 so make check doesn't look stuck 12098 12099 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove 12100 from CVS, now obsolete 12101 12102 2003-03-17 Anders Carlsson <andersca (a] codefactory.se> 12103 12104 * bus/dispatch.c: (bus_dispatch): 12105 Refetch the service name since it may have been reallocated 12106 when dbus_message_set_sender was called. 12107 12108 * dbus/dbus-sysdeps.c: (_dbus_accept): 12109 Add address and address length variables and use them to stop 12110 valgrind from complaining. 12111 12112 2003-03-17 Havoc Pennington <hp (a] pobox.com> 12113 12114 All tests pass, no memleaks, no valgrind complaints. 12115 12116 * bus/test.c: refcount handler_slot 12117 12118 * bus/connection.c (bus_connections_new): refcount 12119 connection_data_slot 12120 12121 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused 12122 bytes so that auth scripts pass. 12123 12124 * bus/dispatch.c: init message_handler_slot so it gets allocated 12125 properly 12126 12127 * bus/dispatch.c (message_handler_slot_ref): fix memleak 12128 12129 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new): 12130 dealloc server_pipe_hash when no longer used for benefit of 12131 leak checking 12132 12133 * dbus/dbus-auth.c (process_command): memleak fix 12134 12135 * bus/dispatch.c (check_hello_message): memleak fix 12136 12137 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12138 12139 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot 12140 12141 2003-03-17 Anders Carlsson <andersca (a] codefactory.se> 12142 12143 * bus/activation.c (bus_activation_activate_service): Append 12144 the pending activation entry to the list of pending activations. 12145 12146 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12147 12148 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of 12149 connections 12150 12151 * dbus/dbus-address.c (create_entry): fix OOM handling when 12152 failing to alloc entry->method 12153 12154 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12155 12156 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc 12157 the watch 12158 12159 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 12160 add some missing dbus_set_result 12161 12162 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to 12163 alloc the DBusMessageHandler 12164 12165 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref 12166 the transport here, since we call this from the finalizer; it 12167 resulted in a double-finalize. 12168 12169 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug 12170 where we tried to use transport->connection that was NULL, 12171 happened when transport was disconnected early on due to OOM 12172 12173 * bus/*.c: adapt to handle OOM for watches/timeouts 12174 12175 * dbus/dbus-transport-unix.c: port to handle OOM during 12176 watch handling 12177 12178 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a 12179 reference to unused bytes instead of a copy 12180 12181 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for 12182 out of memory 12183 12184 * dbus/dbus-connection.c (dbus_connection_handle_watch): return 12185 FALSE on OOM 12186 12187 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out 12188 of memory 12189 12190 2003-03-16 Anders Carlsson <andersca (a] codefactory.se> 12191 12192 * doc/dbus-specification.sgml: 12193 Document reply message for ActivateService. 12194 12195 2003-03-16 Anders Carlsson <andersca (a] codefactory.se> 12196 12197 * bus/activation.c: (bus_pending_activation_entry_free), 12198 (bus_pending_activation_free), (bus_activation_new), 12199 (bus_activation_unref), (bus_activation_service_created), 12200 (bus_activation_activate_service): 12201 * bus/activation.h: 12202 * bus/bus.c: (bus_context_new): 12203 * bus/desktop-file.c: (new_section): 12204 * bus/driver.c: (bus_driver_send_service_deleted), 12205 (bus_driver_handle_activate_service): 12206 * bus/services.c: (bus_registry_new), (bus_registry_ensure): 12207 * bus/services.h: 12208 * dbus/dbus-connection.c: 12209 (dbus_connection_send_with_reply_and_block): 12210 * dbus/dbus-message.c: (dbus_message_append_args_valist): 12211 * dbus/dbus-protocol.h: 12212 Make activation work better. Now pending activations will be queued 12213 and the daemon won't try to activate services that are already registered. 12214 12215 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12216 12217 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set 12218 connection data 12219 12220 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support 12221 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc 12222 12223 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12224 12225 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak 12226 this. always run the test suite before commit... 12227 12228 * bus/*: adapt to DBusConnection API changes 12229 12230 * glib/dbus-gmain.c: adapt to DBusConnection API changes, 12231 requires renaming stuff to avoid dbus_connection_dispatch name 12232 conflict. 12233 12234 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new 12235 function 12236 12237 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): 12238 separate from _dbus_message_loader_return_buffer() 12239 12240 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove 12241 this, because it's now always broken to use; the number of 12242 messages in queue vs. the number still buffered by the message 12243 loader is undefined/meaningless. Should use 12244 dbus_connection_get_dispatch_state(). 12245 (dbus_connection_dispatch): rename from 12246 dbus_connection_dispatch_message 12247 12248 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12249 12250 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real 12251 implementation 12252 12253 2003-03-16 Anders Carlsson <andersca (a] codefactory.se> 12254 12255 * dbus/dbus-connection.c: 12256 (dbus_connection_send_with_reply_and_block): 12257 Decrease connection->n_incoming when removing an entry 12258 from the list. 12259 * dbus/dbus-dict.c: (dbus_dict_entry_free), 12260 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), 12261 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), 12262 (dbus_dict_set_byte_array), (dbus_dict_set_string_array), 12263 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array), 12264 (dbus_dict_get_byte_array): 12265 Handle NULL arrays and strings. Also add support for byte arrays. 12266 12267 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array), 12268 (_dbus_marshal_dict), (_dbus_demarshal_byte_array), 12269 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), 12270 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), 12271 (_dbus_demarshal_dict), (demarshal_and_validate_len), 12272 (_dbus_marshal_validate_arg), (_dbus_marshal_test): 12273 * dbus/dbus-marshal.h: 12274 Add support for marshalling and demarshalling empty arrays and strings. 12275 12276 * dbus/dbus-message.c: (dbus_message_append_args_valist), 12277 (dbus_message_append_string_array), 12278 (dbus_message_iter_get_boolean), 12279 (dbus_message_iter_get_boolean_array), 12280 (dbus_message_iter_get_int32_array), 12281 (dbus_message_iter_get_uint32_array), 12282 (dbus_message_iter_get_double_array), 12283 (dbus_message_iter_get_byte_array), 12284 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict), 12285 (check_message_handling): 12286 Add support for getting empty arrays and dicts. 12287 12288 * dbus/dbus-string.c: (_dbus_string_validate_utf8): 12289 Don't do any validation at all for now, that's better than just checking 12290 for ASCII. 12291 12292 * test/data/valid-messages/emptiness.message: 12293 New test message with lots of empty arrays. 12294 12295 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12296 12297 * dbus/dbus-connection.c 12298 (_dbus_connection_queue_received_message_link): new function that 12299 can't fail due to OOM 12300 12301 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link): 12302 new function pops a message together with a list link 12303 containing it. 12304 12305 * dbus/dbus-transport-unix.c (queue_messages): use new link-based 12306 message queuing functions to avoid needing to alloc memory 12307 12308 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12309 12310 Oops - test code was only testing failure of around 30 of the 12311 mallocs in the test path, but it turns out there are 500+ 12312 mallocs. I believe this was due to misguided linking setup such 12313 that there was one copy of dbus_malloc etc. in the daemon and one 12314 in the shared lib, and only daemon mallocs were tested. In any 12315 case, the test case now tests all 500+ mallocs, and doesn't pass 12316 yet, though there are lots of fixes in this patch. 12317 12318 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix 12319 this so that it doesn't need to allocate memory, since it 12320 has no way of indicating failure due to OOM (and would be 12321 annoying if it did). 12322 12323 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function 12324 12325 * bus/Makefile.am: rearrange to create two self-contained 12326 libraries, to avoid having libraries with overlapping symbols. 12327 that was resulting in weirdness, e.g. I'm pretty sure there 12328 were two copies of global static variables. 12329 12330 * dbus/dbus-internals.c: move the malloc debug stuff to 12331 dbus-memory.c 12332 12333 * dbus/dbus-list.c (free_link): free list mempool if it becomes 12334 empty. 12335 12336 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function 12337 12338 * dbus/dbus-address.c (dbus_parse_address): free list nodes 12339 on failure. 12340 12341 * bus/dispatch.c (bus_dispatch_add_connection): free 12342 message_handler_slot when no longer using it, so 12343 memory leak checkers are happy for the test suite. 12344 12345 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name 12346 12347 * bus/bus.c (new_connection_callback): disconnect in here if 12348 bus_connections_setup_connection fails. 12349 12350 * bus/connection.c (bus_connections_unref): fix to free the 12351 connections 12352 (bus_connections_setup_connection): if this fails, don't 12353 disconnect the connection, just be sure there are no side 12354 effects. 12355 12356 * dbus/dbus-string.c (undo_alignment): unbreak this 12357 12358 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were 12359 leaking 12360 (_dbus_auth_new): fix the order in which we free strings 12361 on OOM failure 12362 12363 * bus/connection.c (bus_connection_disconnected): fix to 12364 not send ServiceDeleted multiple times in case of memory 12365 allocation failure 12366 12367 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to 12368 get the base service name 12369 (dbus_bus_register_client): don't return base service name, 12370 instead store it on the DBusConnection and have an accessor 12371 function for it. 12372 (dbus_bus_register_client): rename dbus_bus_register() 12373 12374 * bus/dispatch.c (check_hello_message): verify that other 12375 connections on the bus also got the correct results, not 12376 just the one sending hello 12377 12378 2003-03-15 Havoc Pennington <hp (a] pobox.com> 12379 12380 Make it pass the Hello handling test including all OOM codepaths. 12381 Now to do other messages... 12382 12383 * bus/services.c (bus_service_remove_owner): fix crash when 12384 removing owner from an empty list of owners 12385 (bus_registry_ensure): don't leave service in the list of 12386 a connection's owned services if we fail to put the service 12387 in the hash table. 12388 12389 * bus/connection.c (bus_connection_preallocate_oom_error): set 12390 error flag on the OOM error. 12391 12392 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 12393 handle _dbus_transport_set_connection failure 12394 12395 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify 12396 to create watches up front and simply enable/disable them as 12397 needed. 12398 (unix_connection_set): this can now fail on OOM 12399 12400 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept 12401 of enabling/disabling a watch or timeout. 12402 12403 * bus/loop.c (bus_loop_iterate): don't touch disabled 12404 watches/timeouts 12405 12406 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts 12407 12408 2003-03-15 Havoc Pennington <hp (a] pobox.com> 12409 12410 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually 12411 write useful test code, after all that futzing around ;-) 12412 12413 Test does not yet pass because we can't handle OOM in 12414 _dbus_transport_messages_pending (basically, 12415 dbus_connection_preallocate_send() does not prealloc the write 12416 watch). To fix this, I think we need to add new stuff to 12417 set_watch_functions, namely a SetEnabled function so we can alloc 12418 the watch earlier, then enable it later. 12419 12420 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move 12421 dbus-memory.c to the convenience lib 12422 12423 * bus/test.c: rename some static functions to keep them clearly 12424 distinct from stuff in connection.c. Handle client disconnection. 12425 12426 2003-03-14 Havoc Pennington <hp (a] pobox.com> 12427 12428 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe 12429 transport, tests more of the real codepath. Set up clients 12430 with bus_setup_debug_client. 12431 12432 * bus/test.c (bus_setup_debug_client): function to set up debug 12433 "clients" on the main loop 12434 12435 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe 12436 support 12437 12438 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe 12439 server type 12440 12441 * dbus/dbus-server-debug.c: support a debug server based on pipes 12442 12443 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function 12444 (_dbus_close): new function 12445 12446 * configure.in: check for socketpair 12447 12448 2003-03-14 Havoc Pennington <hp (a] redhat.com> 12449 12450 * dbus/dbus-memory.c: add a "detect buffer overwrites on free" 12451 cheesy hack 12452 12453 * dbus/dbus-transport-debug.c: rework this a good bit to be 12454 less complicated. hopefully still works. 12455 12456 * dbus/dbus-server-debug.c (handle_new_client): remove timeout 12457 manually 12458 12459 * glib/dbus-gmain.c (timeout_handler): don't remove timeout 12460 after running it 12461 12462 * dbus/dbus-message.c (dbus_message_copy): rename from 12463 dbus_message_new_from_message, fix it up to copy 12464 all the message fields, add test case 12465 12466 * bus/dispatch.c (bus_dispatch_test): add some more test code, 12467 not quite passing yet 12468 12469 2003-03-14 Havoc Pennington <hp (a] pobox.com> 12470 12471 * bus/loop.c (bus_loop_iterate): add this so we can "run loop 12472 until no work remains" in test code. (the large diff here 12473 is just code movement, no actual changes) 12474 12475 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to 12476 1, no point waiting around for test code. 12477 (_dbus_server_debug_accept_transport): unref the timeout 12478 after adding it (right?) 12479 12480 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto 12481 12482 2003-03-13 Havoc Pennington <hp (a] redhat.com> 12483 12484 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle 12485 out of memory 12486 12487 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out 12488 of memory 12489 12490 * dbus/dbus-connection.h: Make AddWatchFunction and 12491 AddTimeoutFunction return a bool so they can fail on out-of-memory 12492 12493 * bus/bus.c (bus_context_new): set up timeout handlers 12494 12495 * bus/connection.c (bus_connections_setup_connection): set up 12496 timeout handlers 12497 12498 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff 12499 can fail 12500 12501 * bus/bus.c (bus_context_new): adapt to changes 12502 12503 * bus/connection.c: adapt to changes 12504 12505 * test/watch.c: adapt to DBusWatch changes 12506 12507 * bus/dispatch.c (bus_dispatch_test): started adding this but 12508 didn't finish 12509 12510 2003-03-14 Anders Carlsson <andersca (a] codefactory.se> 12511 12512 * bus/dispatch.c (send_service_nonexistent_error): Fix typo. 12513 12514 2003-03-13 Havoc Pennington <hp (a] pobox.com> 12515 12516 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: 12517 set up a test framework as for the library 12518 12519 2003-03-12 Havoc Pennington <hp (a] pobox.com> 12520 12521 Throughout: purge global variables, introduce BusActivation, 12522 BusConnections, BusRegistry, etc. objects instead. 12523 12524 * bus/bus.h, bus/bus.c: introduce BusContext as a global 12525 message bus object 12526 12527 * test/Makefile.am (TEST_BINARIES): disable bus-test for now, 12528 going to redo this a bit differently I think 12529 12530 2003-03-12 Havoc Pennington <hp (a] redhat.com> 12531 12532 Mega-patch that gets the message bus daemon initially handling 12533 out-of-memory. Work still needed. Also lots of random 12534 moving stuff to DBusError instead of ResultCode. 12535 12536 * dbus/dbus-list.c (_dbus_list_length_is_one): new function 12537 12538 * dbus/dbus-connection.c 12539 (dbus_connection_send_with_reply_and_block): use DBusError 12540 12541 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not 12542 DBusResultCode 12543 12544 * dbus/dbus-connection.c (dbus_connection_send): drop the result 12545 code here, as the only failure possible is OOM. 12546 12547 * bus/connection.c (bus_connection_disconnect): 12548 rename bus_connection_disconnected as it's a notification only 12549 12550 * bus/driver.c (bus_driver_handle_acquire_service): don't free 12551 "name" on get_args failure, should be done by get_args; 12552 don't disconnect client for bad args, just return an error. 12553 (bus_driver_handle_service_exists): ditto 12554 12555 * bus/services.c (bus_services_list): NULL-terminate returned array 12556 12557 * bus/driver.c (bus_driver_send_service_lost) 12558 (bus_driver_send_service_acquired): send messages from driver to a 12559 specific client to the client's unique name, not to the broadcast 12560 service. 12561 12562 * dbus/dbus-message.c (decode_header_data): reject messages that 12563 contain no name field 12564 (_dbus_message_get_client_serial): rename to 12565 dbus_message_get_serial and make public 12566 (_dbus_message_set_serial): rename from set_client_serial 12567 (_dbus_message_set_reply_serial): make public 12568 (_dbus_message_get_reply_serial): make public 12569 12570 * bus/connection.c (bus_connection_foreach): allow stopping 12571 iteration by returning FALSE from foreach function. 12572 12573 * dbus/dbus-connection.c (dbus_connection_send_preallocated) 12574 (dbus_connection_free_preallocated_send) 12575 (dbus_connection_preallocate_send): new API for sending a message 12576 without possibility of malloc failure. 12577 (dbus_connection_send_message): rename to just 12578 dbus_connection_send (and same for whole function family) 12579 12580 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error 12581 12582 * dbus/dbus-sysdeps.c (_dbus_exit): new function 12583 12584 * bus/activation.c: handle/return errors 12585 12586 * dbus/dbus-errors.h: add more DBUS_ERROR #define 12587 12588 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents) 12589 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode 12590 (_dbus_result_from_errno): move to this file 12591 12592 2003-03-10 Anders Carlsson <andersca (a] codefactory.se> 12593 12594 * dbus/dbus-marshal.c: 12595 (_dbus_marshal_set_string): 12596 Take a length argument so we can marshal the correct string 12597 length. 12598 12599 (_dbus_marshal_dict), (_dbus_demarshal_dict), 12600 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg), 12601 (_dbus_marshal_test): 12602 * dbus/dbus-marshal.h: 12603 Add support for marshalling and demarshalling dicts. 12604 12605 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 12606 Add support for TYPE DICT. 12607 12608 * dbus/dbus-message.c: (set_string_field): 12609 Adjust header padding. 12610 12611 (dbus_message_append_args_valist), (dbus_message_append_dict), 12612 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type), 12613 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer), 12614 (check_message_handling), (check_have_valid_message): 12615 * dbus/dbus-message.h: 12616 Add functions for setting and getting dicts. 12617 12618 * dbus/dbus-protocol.h: 12619 Add DBUS_TYPE_DICT. 12620 12621 * dbus/dbus.h: 12622 Add dbus-dict.h 12623 12624 * doc/dbus-specification.sgml: 12625 Add information about how dicts are marshalled. 12626 12627 * test/data/invalid-messages/dict-with-nil-value.message: 12628 * test/data/invalid-messages/too-short-dict.message: 12629 * test/data/valid-messages/dict-simple.message: 12630 * test/data/valid-messages/dict.message: 12631 Add sample messages containing dicts. 12632 12633 2003-03-08 Anders Carlsson <andersca (a] codefactory.se> 12634 12635 * dbus/dbus-dict.h: Add DBUS_END_DECLS. 12636 12637 2003-03-07 Anders Carlsson <andersca (a] codefactory.se> 12638 12639 * dbus/Makefile.am: 12640 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), 12641 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean), 12642 (dbus_dict_set_int32), (dbus_dict_set_uint32), 12643 (dbus_dict_set_double), (dbus_dict_set_string), 12644 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), 12645 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), 12646 (dbus_dict_set_string_array), (_dbus_dict_test): 12647 * dbus/dbus-dict.h: 12648 Fix according to comments from Havoc. 12649 12650 2003-03-06 Michael Meeks <michael (a] server.home> 12651 12652 * configure.in: if we don't have kde-config, disable have_qt. 12653 12654 2003-03-07 Anders Carlsson <andersca (a] codefactory.se> 12655 12656 * dbus/Makefile.am: 12657 Add dbus-dict.[ch] 12658 12659 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), 12660 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains), 12661 (dbus_dict_remove), (dbus_dict_get_value_type), 12662 (dbus_dict_get_keys), (dbus_dict_put_boolean), 12663 (dbus_dict_put_int32), (dbus_dict_put_uint32), 12664 (dbus_dict_put_double), (dbus_dict_put_string), 12665 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array), 12666 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array), 12667 (dbus_dict_put_string_array), (dbus_dict_get_boolean), 12668 (dbus_dict_get_int32), (dbus_dict_get_uint32), 12669 (dbus_dict_get_double), (dbus_dict_get_string), 12670 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array), 12671 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array), 12672 (dbus_dict_get_string_array), (_dbus_dict_test): 12673 * dbus/dbus-dict.h: 12674 Add DBusDict implementation 12675 12676 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests): 12677 * dbus/dbus-test.h: 12678 Add _dbus_dict_test 12679 12680 2003-03-04 Havoc Pennington <hp (a] pobox.com> 12681 12682 * test/data/auth/*: adapt to changes 12683 12684 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add 12685 USERID_BASE64 and change USERNAME_BASE64 to put in username not 12686 userid 12687 12688 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent 12689 more stuff from being in a context name, to make the protocol 12690 simpler to deal with 12691 12692 * dbus/dbus-errors.c (dbus_error_has_name): new function 12693 (dbus_error_is_set): new function 12694 12695 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth 12696 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1 12697 12698 * dbus/dbus-connection.c (dbus_connection_flush): also read 12699 messages during a flush operation 12700 12701 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used. 12702 12703 2003-03-05 Anders Carlsson <andersca (a] codefactory.se> 12704 12705 * configure.in: Check for gethostbyname on Solaris. 12706 12707 * dbus/dbus-transport.c: (_dbus_transport_open): 12708 Remove duplicate "tcp" entry. 12709 12710 * doc/dbus-specification.sgml: 12711 Clarify some things. 12712 12713 2003-03-05 Anders Carlsson <andersca (a] codefactory.se> 12714 12715 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir): 12716 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir), 12717 (_dbus_keyring_test): 12718 * dbus/dbus-md5.c: (_dbus_md5_compute): 12719 * dbus/dbus-sha.c: (_dbus_sha_compute): 12720 Plug memory leaks. 12721 12722 2003-03-05 Anders Carlsson <andersca (a] codefactory.se> 12723 12724 * README: Add some things. 12725 12726 2003-03-04 Anders Carlsson <andersca (a] codefactory.se> 12727 12728 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break; 12729 after case DBUS_TYPE_BOOELAN. 12730 12731 2003-03-02 Havoc Pennington <hp (a] pobox.com> 12732 12733 * test/break-loader.c (randomly_set_extreme_ints): add test that 12734 sets really huge and small integers 12735 12736 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check 12737 that length of boolean array fits in the string, and that 12738 string has room for boolean value in single-bool case. 12739 12740 * dbus/dbus-message-builder.c (_dbus_message_data_load): add 12741 optional value to "ALIGN" command which is what to fill the 12742 alignment with. 12743 12744 * test/data/valid-messages/no-padding.message: add regression 12745 test for the message padding problem 12746 12747 2003-03-02 Havoc Pennington <hp (a] pobox.com> 12748 12749 * dbus/dbus-message.c (decode_header_data): fix to always init 12750 message_padding, from Benjamin Dauvergne 12751 12752 2003-03-02 Havoc Pennington <hp (a] pobox.com> 12753 12754 * configure.in: 0.5 12755 12756 * NEWS: Update. 12757 12758 2003-03-01 Joe Shaw <joe (a] assbarn.com> 12759 12760 * configure.in: Check for "struct cmsgcred" and try to access its 12761 members for BSD-like unices. 12762 12763 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into 12764 _dbus_read_credentials_unix_socket(). 12765 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of 12766 read() for reading the credential byte off the unix socket. Use 12767 struct cmsgcred on systems that support it. 12768 12769 2003-02-27 Alexander Larsson <alexl (a] redhat.com> 12770 12771 * glib/Makefile.am: 12772 * configure.in: 12773 Make gthreads-2.0 dependency optional. Don't build thread test if 12774 its not found. 12775 12776 2003-02-27 Havoc Pennington <hp (a] pobox.com> 12777 12778 * dbus/dbus-connection.c 12779 (dbus_connection_send_message_with_reply_and_block): fix doh! 12780 doh! doh! bug that resulted in never removing a reply from the 12781 queue, no wonder we called get_reply_serial so much ;-) 12782 12783 * dbus/dbus-message.c (struct DBusMessage): cache reply serial 12784 and client serial instead of demarshaling them every time 12785 12786 2003-02-27 Havoc Pennington <hp (a] pobox.com> 12787 12788 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much 12789 more inlined, using dbus-string-private.h, speeds things up 12790 substantially 12791 12792 * dbus/dbus-string.c (_dbus_string_free): apply align offset 12793 when freeing the string 12794 (_dbus_string_steal_data): fix for align offset 12795 (undo_alignment): new function 12796 12797 2003-02-26 Havoc Pennington <hp (a] redhat.com> 12798 12799 All kinds of audit fixes from Owen, plus initial attempt to 12800 handle unaligned memory returned from malloc. 12801 12802 * dbus/dbus-string.c (_dbus_string_init): clamp max length to 12803 leave room for align_offset and nul byte 12804 (fixup_alignment): function to track an align_offset and 12805 ensure real->str is aligned 12806 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, 12807 to allow a nul byte plus align offset 12808 (_dbus_string_lock): fix overflow issue 12809 (_dbus_string_init_const_len): add assertions on sanity of len, 12810 assign allocated to be ALLOCATION_PADDING larger than len 12811 (set_length): fixup the overflow handling 12812 (_dbus_string_get_data_len): fix overflow in assertion 12813 (open_gap): detect overflow in size of gap to be opened 12814 (_dbus_string_lengthen): add overflow check 12815 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE 12816 (_dbus_string_append): add overflow check 12817 (_dbus_string_append_unichar): overflow 12818 (_dbus_string_delete): fix overflow in assertion 12819 (_dbus_string_copy_len): overflow in assertion 12820 (_dbus_string_replace_len): overflows in assertions 12821 (_dbus_string_find): change to implement in terms of 12822 _dbus_string_find_to 12823 (_dbus_string_find_to): assorted fixage 12824 (_dbus_string_equal_c_str): assert c_str != NULL, 12825 fix logic so the function works 12826 (_dbus_string_ends_with_c_str): fix overflow thingy 12827 (_dbus_string_base64_encode): overflow fix 12828 (_dbus_string_validate_ascii): overflow 12829 (_dbus_string_validate_nul): overflow 12830 12831 2003-02-26 Havoc Pennington <hp (a] redhat.com> 12832 12833 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS 12834 12835 2003-02-26 Alexander Larsson <alexl (a] redhat.com> 12836 12837 * configure.in: 12838 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0 12839 12840 * dbus/dbus-connection.c: 12841 * dbus/dbus-connection.h: 12842 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch. 12843 Add dbus_connection_set_wakeup_main_function and use it when queueing 12844 incoming and outgoing messages. 12845 12846 12847 * dbus/dbus-dataslot.c: 12848 Threadsafe usage of DBusDataSlotAllocator 12849 12850 * dbus/dbus-message.c: (dbus_message_get_args_iter): 12851 dbus_new can fail. 12852 12853 * dbus/dbus-server-unix.c: 12854 Add todo comment 12855 12856 * glib/dbus-gmain.c: 12857 Implement the new wakeup functions for glib. 12858 12859 * glib/Makefile.am: 12860 * glib/test-thread-client.c: 12861 * glib/test-thread-server.c: 12862 * glib/test-thread.h: 12863 Initial cut at some thread test code. Not really done yet. 12864 12865 2003-02-26 Havoc Pennington <hp (a] pobox.com> 12866 12867 * dbus/dbus-connection.c 12868 (dbus_connection_send_message_with_reply_and_block): fix crash 12869 where we ref'd the outgoing message instead of the returned reply 12870 12871 * dbus/dbus-transport-unix.c (do_authentication): check read watch 12872 at the end of this function, so if we didn't need to read for 12873 authentication, we reinstall it for receiving messages 12874 12875 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to 12876 a NULL sender for peer-to-peer case 12877 12878 * dbus/dbus-transport-unix.c (check_read_watch): handle 12879 !authenticated case correctly 12880 12881 * glib/dbus-gmain.c: add support for DBusServer 12882 12883 * dbus/dbus-server.c: add data slot support 12884 12885 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check 12886 return values and handle errors 12887 12888 * dbus/dbus-dataslot.c: factor out the data slot stuff from 12889 DBusConnection 12890 12891 * Doxyfile.in (INPUT): add glib subdir 12892 12893 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename 12894 setup_with_g_main instead of hookup_with_g_main; write docs 12895 12896 2003-02-24 Anders Carlsson <andersca (a] codefactory.se> 12897 12898 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg): 12899 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 12900 * dbus/dbus-message.c: (dbus_message_append_boolean), 12901 (dbus_message_append_boolean_array), 12902 (dbus_message_get_args_valist), (_dbus_message_test): 12903 * dbus/dbus-message.h: 12904 * doc/dbus-specification.sgml: 12905 Various fixes as pointed out by Havoc. 12906 12907 * test/data/invalid-messages/bad-boolean-array.message: 12908 * test/data/invalid-messages/bad-boolean.message: 12909 Add invalid boolean value test cases. 12910 12911 2003-02-24 Anders Carlsson <andersca (a] codefactory.se> 12912 12913 * dbus/dbus-internals.c: (_dbus_type_to_string): 12914 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), 12915 (_dbus_marshal_validate_arg): 12916 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 12917 * dbus/dbus-message.c: (dbus_message_append_args_valist), 12918 (dbus_message_append_boolean), (dbus_message_append_boolean_array), 12919 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean), 12920 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32), 12921 (dbus_message_iter_get_double), 12922 (dbus_message_iter_get_boolean_array), (message_iter_test): 12923 * dbus/dbus-message.h: 12924 * dbus/dbus-protocol.h: 12925 * doc/dbus-specification.sgml: 12926 * test/data/valid-messages/lots-of-arguments.message: 12927 Add support for boolean and boolean array types. 12928 12929 2003-02-23 Havoc Pennington <hp (a] pobox.com> 12930 12931 * dbus/dbus-keyring.c: finish most of this implementation and 12932 simple unit test 12933 12934 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make 12935 these barf if the error isn't cleared to NULL 12936 12937 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure 12938 (_dbus_create_directory): new function 12939 12940 * dbus/dbus-errors.c (dbus_set_error): fix warning 12941 12942 * dbus/dbus-string.c (_dbus_string_hex_encode): new function 12943 (_dbus_string_hex_decode): new function 12944 (test_hex_roundtrip): test code 12945 12946 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode 12947 12948 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode 12949 12950 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use 12951 the save-to-temp/rename trick to atomically write the new file 12952 (_dbus_string_parse_uint): new function 12953 12954 2003-02-22 Havoc Pennington <hp (a] pobox.com> 12955 12956 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1 12957 12958 2003-02-22 Havoc Pennington <hp (a] pobox.com> 12959 12960 * dbus/dbus-message.c (dbus_message_iter_get_string_array): 12961 (dbus_message_iter_get_byte_array): Fix up doxygen warnings 12962 12963 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm 12964 12965 * dbus/test/data/sha-1: add US government test suite for SHA-1 12966 12967 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 12968 12969 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): 12970 Make string arrays NULL-terminated. 12971 12972 * dbus/dbus-memory.c: (dbus_free_string_array): 12973 * dbus/dbus-memory.h: 12974 New function for freeing NULL-terminated string arrays. 12975 12976 * dbus/dbus-message-builder.c: (append_quoted_string), 12977 (_dbus_message_data_load): 12978 Add support for array types. 12979 12980 * dbus/dbus-message.c: (check_message_handling): 12981 Add more types as test cases. 12982 12983 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int), 12984 (_dbus_string_parse_double): 12985 Add the start offset to the end offset. 12986 12987 * test/data/valid-messages/lots-of-arguments.message: 12988 New test message with lots of arguments. 12989 12990 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 12991 12992 * dbus/dbus-message.c: (dbus_message_append_nil), 12993 (dbus_message_append_int32), (dbus_message_append_uint32), 12994 (dbus_message_append_double), (dbus_message_append_string), 12995 (dbus_message_append_int32_array), 12996 (dbus_message_append_uint32_array), 12997 (dbus_message_append_double_array), 12998 (dbus_message_append_byte_array), 12999 (dbus_message_append_string_array): 13000 Fix all out-of-memory handling in these functions. 13001 13002 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 13003 13004 * dbus/dbus-message.c: (dbus_message_append_nil): 13005 Fix a silly. 13006 13007 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 13008 13009 * dbus/dbus-message.c: (dbus_message_append_args_valist), 13010 (dbus_message_append_nil), (dbus_message_append_int32_array), 13011 (dbus_message_append_uint32_array), 13012 (dbus_message_append_double_array), 13013 (dbus_message_append_byte_array), 13014 (dbus_message_append_string_array), (dbus_message_get_args_valist), 13015 (dbus_message_iter_get_int32_array), 13016 (dbus_message_iter_get_uint32_array), 13017 (dbus_message_iter_get_double_array), 13018 (dbus_message_iter_get_byte_array), 13019 (dbus_message_iter_get_string_array): 13020 13021 * dbus/dbus-message.h: 13022 Add functions for appending and getting arrays. 13023 13024 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 13025 13026 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the 13027 element size at least 8 bytes, fixes mempool tests on 13028 64-bit machines. 13029 13030 2003-02-20 Alexander Larsson <alexl (a] redhat.com> 13031 13032 * dbus/dbus-transport-unix.c (unix_do_iteration): 13033 Unlock the connection mutex during a blocking select call. 13034 Add todo about how we need a way to wake up the select. 13035 13036 * dbus/dbus-connection-internal.h: 13037 * dbus/dbus-connection.c: 13038 Add _dbus_connection_lock and _dbus_connection_unlock. 13039 13040 2003-02-19 Havoc Pennington <hp (a] pobox.com> 13041 13042 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in 13043 Doxyfile.in, not Doxyfile 13044 13045 * dbus/dbus-keyring.c: do some hacking on this 13046 13047 * dbus/dbus-sysdeps.c (_dbus_delete_file): new 13048 13049 * dbus/dbus-errors.c (dbus_set_error_const): do not call 13050 dbus_error_init 13051 (dbus_set_error): remove dbus_error_init, check for message == 13052 NULL *before* we sprintf into it, and add @todo about including 13053 system headers in this file 13054 13055 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new 13056 13057 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add 13058 13059 * dbus/dbus-sysdeps.c (get_user_info): break this function out to 13060 get various bits of user information based on either username 13061 or user ID 13062 (_dbus_homedir_from_username): new function 13063 13064 2003-02-19 Anders Carlsson <andersca (a] codefactory.se> 13065 13066 * configure.in: 13067 Add check for nonposix getpwnam_r 13068 13069 * dbus/dbus-mempool.c: (_dbus_mem_pool_new): 13070 Align the pool element size to a sizeof (void *) boundary. 13071 13072 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket), 13073 (_dbus_listen_unix_socket), (_dbus_credentials_from_username): 13074 General Solaris fixes. 13075 13076 * test/data/valid-messages/simplest-manual.message: 13077 Explicitly state that we want little-endian packing. 13078 13079 2003-02-19 Mikael Hallendal <micke (a] codefactory.se> 13080 13081 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. 13082 13083 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): 13084 Added to create a transport connecting using a tcp/ip socket. 13085 13086 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect 13087 to a tcp socket at given host and port. 13088 (_dbus_listen_tcp_socket): added to listen on tcp socket for given 13089 hostname and port. 13090 13091 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. 13092 13093 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 13094 Added to create a server listening on a TCP/IP socket. 13095 13096 2003-02-19 Havoc Pennington <hp (a] pobox.com> 13097 13098 Throughout: mop up all the Doxygen warnings and undocumented 13099 stuff. 13100 13101 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want 13102 to search any paths. 13103 13104 * dbus/dbus-threads.c: move global mutex initializers to 13105 dbus-internals.h, multiple prototypes was confusing doxygen 13106 besides being kind of ugly 13107 13108 * Doxyfile (PREDEFINED): have Doxygen define 13109 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from 13110 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS 13111 (do not abuse the feature! it's for stuff like the autogenerated 13112 macros in dbus-md5.c, not just for things you don't feel like 13113 documenting...) 13114 13115 2003-02-18 Havoc Pennington <hp (a] pobox.com> 13116 13117 * dbus/dbus-string.c (_dbus_string_zero): new function 13118 13119 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch, 13120 wrap it in some dbus-friendly API 13121 13122 * dbus/dbus-types.h: add 16-bit types 13123 13124 2003-02-18 Joe Shaw <joe (a] assbarn.com> 13125 13126 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get 13127 credentials from our currently running process. 13128 (get_word): Fix a buglet where we were copying the entire length 13129 instead of relative to our position. 13130 13131 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the 13132 keys on the stack... it's 640k of data. 13133 13134 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always 13135 read the credentials byte off the socket, even if we don't have 13136 SO_PEERCRED. 13137 (_dbus_poll): Implement poll() using select() for systems which 13138 don't have it. 13139 13140 * glib/test-dbus-glib.c (main): Print out an error if no 13141 parameters are given. 13142 13143 * test/data/auth/fallback.auth-script: Added. Tests that a client 13144 can fallback to a secondary auth mechanism if the first fails. 13145 13146 2003-02-18 Havoc Pennington <hp (a] pobox.com> 13147 13148 * AUTHORS: add Alex 13149 13150 2003-02-17 Havoc Pennington <hp (a] pobox.com> 13151 13152 * doc/dbus-specification.sgml: lots of cosmetic 13153 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS 13154 env variable to DBUS_BUS_ADDRESS, s/client/application/, 13155 s/server/bus/ (except in authentication section). Add a section 13156 "Message Bus Message Routing" 13157 13158 2003-02-17 Anders Carlsson <andersca (a] codefactory.se.> 13159 13160 Release 0.4 13161 13162 * NEWS: Update 13163 13164 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13165 13166 * doc/dbus-specification.sgml: 13167 Specification updates. 13168 13169 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13170 13171 * bus/activation.c: (bus_activation_init), (child_setup), 13172 (bus_activation_activate_service): 13173 * bus/activation.h: 13174 * bus/main.c: (main): 13175 Set DBUS_ADDRESS environment variable. 13176 13177 * dbus/dbus-errors.c: (dbus_set_error): 13178 Don't use va_copy since that's a C99 feature. 13179 13180 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec), 13181 (_dbus_spawn_async): 13182 * dbus/dbus-sysdeps.h: 13183 Add child_setup_func to _dbus_spawn_async. 13184 13185 * doc/dbus-specification.sgml: 13186 Update specification. 13187 13188 * test/spawn-test.c: (setup_func), (main): 13189 Fix test. 13190 13191 2003-02-17 Alexander Larsson <alexl (a] redhat.com> 13192 13193 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked): 13194 Added todo. 13195 13196 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13197 13198 * doc/.cvsignore: 13199 * doc/Makefile.am: 13200 * doc/dbus-test-plan.sgml: 13201 Add test plan document. 13202 13203 * test/Makefile.am: 13204 Fix distcheck. 13205 13206 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13207 13208 * dbus/dbus-message.c: (decode_header_data), 13209 (_dbus_message_loader_return_buffer): 13210 Set the header padding amount when loading a message. 13211 13212 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13213 13214 * bus/dispatch.c: (send_one_message): 13215 Only send broadcast messages to registered connections. 13216 13217 * dbus/dbus-message.c: (dbus_message_name_is): 13218 * dbus/dbus-message.h: 13219 New convenience function. 13220 13221 * dbus/dbus-transport-debug.c: (do_reading): 13222 Only dispatch one message per run. 13223 13224 * test/Makefile.am: 13225 * test/bus-test.c: (new_connection_callback), (die), 13226 (test_hello_client1_handler), (test_hello_client2_handler), 13227 (test_hello_replies), (main): 13228 13229 * test/bus-test-loop.[ch]: 13230 Add these. 13231 13232 2003-02-16 Havoc Pennington <hp (a] pobox.com> 13233 13234 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix 13235 backward conditional 13236 13237 2003-02-16 Alexander Larsson <alexl (a] redhat.com> 13238 13239 * dbus/dbus-connection.c: 13240 Implement sent_message_with_reply. (with_reply_and block is still 13241 busted). 13242 Made dispatch_message not lose message if OOM. 13243 13244 * dbus/dbus-errors.h: 13245 Add NoReply error (for reply timeouts). 13246 13247 2003-02-16 Alexander Larsson <alexl (a] redhat.com> 13248 13249 * dbus/dbus-hash.c (_dbus_hash_table_unref): 13250 Actually free keys and values when destroying hashtable. 13251 13252 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13253 13254 * dbus/dbus-auth.c: (client_try_next_mechanism): 13255 Plug a leak. 13256 13257 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout): 13258 Return TRUE if there's no thread implementation around. 13259 13260 * glib/dbus-gmain.c: (free_source), 13261 (dbus_connection_hookup_with_g_main): 13262 Make sure to remove the GSource when the connection is finalized. 13263 13264 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13265 13266 * bus/dispatch.c: (bus_dispatch_message_handler): 13267 * dbus/dbus-errors.h: 13268 Return an error if someone tries to send a message to a service 13269 that doesn't exist. 13270 13271 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13272 13273 * bus/activation.c: (load_directory), (bus_activation_init), 13274 (bus_activation_activate_service): 13275 * bus/activation.h: 13276 * bus/driver.c: 13277 (bus_driver_handle_activate_service), (bus_driver_handle_message): 13278 More work on the activation handling. 13279 13280 * dbus/dbus-errors.h: 13281 Add some error messages 13282 13283 * dbus/dbus-message.c: (dbus_message_new_error_reply): 13284 * dbus/dbus-message.h: 13285 New function that creates an error message. 13286 13287 * dbus/dbus-protocol.h: 13288 Add ACTIVATE_SERVER message. 13289 13290 * dbus/dbus-server-unix.c: (unix_handle_watch), 13291 (_dbus_server_new_for_domain_socket): 13292 Call _dbus_fd_set_close_on_exec. 13293 13294 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec), 13295 (_dbus_spawn_async), (_dbus_disable_sigpipe), 13296 (_dbus_fd_set_close_on_exec): 13297 * dbus/dbus-sysdeps.h: 13298 Add _dbus_fd_set_close_on exec function. Also add function that checks 13299 that all open fds are set to close-on-exec and warns otherwise. 13300 13301 * dbus/dbus-transport-unix.c: 13302 (_dbus_transport_new_for_domain_socket): 13303 Call _dbus_fd_set_close_on_exec. 13304 13305 2003-02-16 Havoc Pennington <hp (a] pobox.com> 13306 13307 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe): 13308 allow people to avoid setting SIGPIPE to SIG_IGN 13309 (_dbus_connection_new_for_transport): disable SIGPIPE unless 13310 we've been asked not to 13311 13312 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13313 13314 * dbus/dbus-list.c: (_dbus_list_append_link), 13315 (_dbus_list_prepend_link): 13316 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0), 13317 (dbus_realloc): 13318 Warning fixes. 13319 13320 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13321 13322 * bus/Makefile.am: 13323 * bus/activation.c: (bus_activation_entry_free), 13324 (add_desktop_file_entry), (load_directory), (bus_activation_init): 13325 * bus/activation.h: 13326 * bus/main.c: (main): 13327 Add simple activation support, doesn't work yet though. 13328 13329 2003-02-15 Zack Rusin <zack (a] kde.org> 13330 13331 * qt/dbus-qthread.cpp: small casting fix 13332 13333 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13334 13335 * dbus/dbus-errors.c: (dbus_set_error): 13336 * dbus/dbus-errors.h: 13337 Add a few errors and make dbus_set_error void. 13338 13339 * dbus/dbus-sysdeps.c: 13340 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe), 13341 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async): 13342 * dbus/dbus-sysdeps.h: 13343 Add _dbus_spawn_async. 13344 13345 * test/spawn-test.c: (main): 13346 Test for _dbus_spawn_async. 13347 13348 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13349 13350 * dbus/dbus-internals.h: 13351 Fix build without tests. 13352 13353 * dbus/dbus-list.c: (alloc_link): 13354 Fix a segfault when a malloc fails. 13355 13356 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc), 13357 (dbus_malloc0), (dbus_realloc): 13358 Add support for malloc debugging. 13359 13360 2003-02-15 Alexander Larsson <alexl (a] redhat.com> 13361 13362 * dbus/dbus-threads.c: 13363 * dbus/dbus-threads.h: 13364 Add condvars. Remove static mutext from API. 13365 Implement static mutexes by initializing them from threads_init. 13366 13367 * glib/dbus-gthread.c: 13368 * qt/dbus-qthread.cpp: 13369 Update with the thread api changes. 13370 13371 13372 * dbus/dbus-list.c: 13373 * dbus/dbus-list.h: 13374 Turn StaticMutex into normal mutex + init function. 13375 Export new functions _dbus_list_alloc_link, _dbus_list_free_link, 13376 _dbus_list_append_link, _dbus_list_prepend_link 13377 13378 13379 * dbus/dbus-sysdeps.c: 13380 * dbus/dbus-sysdeps.h: 13381 New type dbus_atomic_t, and new functions _dbus_atomic_inc, 13382 _dbus_atomic_dec. Only slow fallback implementation at the moment. 13383 13384 * dbus/dbus-protocol.h: 13385 Add DBUS_MESSAGE_LOCAL_DISCONNECT define 13386 13387 * dbus/dbus-message.c: 13388 Make ref/unref atomic. 13389 Fix some docs. 13390 13391 * dbus/dbus-connection-internal.h: 13392 * dbus/dbus-connection.c: 13393 * dbus/dbus-connection.h: 13394 Make threadsafe. 13395 Change _peek to _borrow,_return & _steal_borrowed. 13396 Change disconnect callback to event. 13397 Make dbus_connection_dispatch_messages reentrant. 13398 13399 * dbus/dbus-transport.c: 13400 Don't ref the connection on calls to the transport 13401 implementation. 13402 13403 * dbus/dbus-message-handler.c: 13404 Make threadsafe. 13405 13406 * glib/dbus-gmain.c: 13407 Don't use peek_message anymore 13408 13409 * test/Makefile.am: 13410 * test/debug-thread.c: 13411 * test/debug-thread.h: 13412 Simple thread implementation that asserts() on deadlocks in 13413 single-threaded code. 13414 13415 * test/bus-test.c: 13416 (main) Call debug_threads_init. 13417 13418 * test/watch.c: 13419 Use disconnect message instead of disconnect callback. 13420 13421 * bus/connection.c: 13422 * bus/connection.h: 13423 Don't call dbus_connection_set_disconnect_function. Instead export 13424 bus_connection_disconnect. 13425 13426 * bus/dispatch.c: 13427 Call bus_connection_disconnect when we get a disconnected message. 13428 13429 2003-02-15 Havoc Pennington <hp (a] pobox.com> 13430 13431 * dbus/dbus-message.c (dbus_message_new): fool around with the 13432 docs 13433 13434 2003-02-14 Havoc Pennington <hp (a] pobox.com> 13435 13436 * dbus/dbus-mempool.c: fail if the debug functions so indicate 13437 13438 * dbus/dbus-memory.c: fail if the debug functions indicate we 13439 should 13440 13441 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter) 13442 (_dbus_decrement_fail_alloc_counter): debug functions to 13443 simulate memory allocation failures 13444 13445 2003-02-14 Havoc Pennington <hp (a] pobox.com> 13446 13447 * dbus/dbus-errors.h (struct DBusError): add a word of padding 13448 to DBusError 13449 13450 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13451 13452 * bus/driver.c: (bus_driver_handle_hello): 13453 * bus/driver.h: 13454 * bus/services.c: (bus_service_lookup): 13455 Reorder message sending so we get a more sane order. 13456 13457 * test/bus-test.c: (message_handler): 13458 Fix tyop. 13459 13460 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13461 13462 * bus/driver.c: (bus_driver_send_service_deleted), 13463 (bus_driver_send_service_created), (bus_driver_send_service_lost), 13464 (bus_driver_send_service_acquired), (bus_driver_handle_hello), 13465 (bus_driver_send_welcome_message), 13466 (bus_driver_handle_list_services), 13467 (bus_driver_handle_acquire_service), 13468 (bus_driver_handle_service_exists): 13469 * dbus/dbus-bus.c: (dbus_bus_register_client), 13470 (dbus_bus_acquire_service), (dbus_bus_service_exists): 13471 * dbus/dbus-errors.c: (dbus_result_to_string): 13472 * dbus/dbus-errors.h: 13473 * dbus/dbus-message.c: (dbus_message_append_args), 13474 (dbus_message_append_args_valist), (dbus_message_get_args), 13475 (dbus_message_get_args_valist), (dbus_message_get_args_iter), 13476 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string), 13477 (dbus_message_iter_get_byte_array), 13478 (dbus_message_iter_get_string_array), (message_iter_test), 13479 (check_message_handling), (_dbus_message_test): 13480 * dbus/dbus-message.h: 13481 * test/bus-test.c: (main): 13482 Change fields to arguments in messages, so that they won't be 13483 confused with header fields. 13484 13485 * glib/test-dbus-glib.c: (main): 13486 Remove append_fields from hello message. 13487 13488 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13489 13490 * dbus/dbus-errors.c: 13491 * dbus/dbus-message.c: 13492 * dbus/dbus-string.c: 13493 Documentation fixes. 13494 13495 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13496 13497 * glib/dbus-gmain.c: (timeout_handler), (add_timeout), 13498 (remove_timeout): 13499 Implement support for timeouts in dbus-glib. 13500 13501 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13502 13503 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 13504 * dbus/dbus-message.c: (process_test_subdir): 13505 * test/break-loader.c: (find_breaks_based_on): 13506 Plug some memory leaks. 13507 13508 2003-02-13 Richard Hult <rhult (a] codefactory.se> 13509 13510 * bus/main.c: Fix build. 13511 13512 * dbus/dbus-errors.h: 13513 * dbus/dbus-errors.c: Fix copyright for Anders. 13514 13515 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13516 13517 * bus/Makefile.am: 13518 Add utils.[ch] 13519 13520 * bus/connection.c: (bus_connection_foreach): 13521 Fix a warning. 13522 13523 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections), 13524 (unescape_string), (new_section), (parse_section_start), 13525 (parse_key_value), (report_error), (bus_desktop_file_load), 13526 (bus_desktop_file_get_string): 13527 * bus/desktop-file.h: 13528 Use DBusError for error reporting. 13529 13530 * bus/dispatch.c: (send_one_message), 13531 (bus_dispatch_message_handler): 13532 * bus/driver.c: (bus_driver_send_service_deleted), 13533 (bus_driver_send_service_created), (bus_driver_send_service_lost), 13534 (bus_driver_send_service_acquired), (bus_driver_handle_hello), 13535 (bus_driver_send_welcome_message), 13536 (bus_driver_handle_list_services), 13537 (bus_driver_handle_acquire_service), 13538 (bus_driver_handle_service_exists): 13539 * bus/loop.c: (bus_loop_run): 13540 * bus/main.c: 13541 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM. 13542 13543 * bus/utils.c: (bus_wait_for_memory): 13544 * bus/utils.h: 13545 New files with general utility functions. 13546 13547 * dbus/dbus-internals.h: 13548 Remove _DBUS_HANDLE_OOM. 13549 13550 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13551 13552 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init), 13553 (dbus_error_free), (dbus_set_error_const), (dbus_set_error): 13554 * dbus/dbus-errors.h: 13555 Add DBusError structure. 13556 13557 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13558 13559 * test/data/valid-messages/standard-acquire-service.message: 13560 * test/data/valid-messages/standard-hello.message: 13561 * test/data/valid-messages/standard-list-services.message: 13562 * test/data/valid-messages/standard-service-exists.message: 13563 Add some standard messages. 13564 13565 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13566 13567 * bus/driver.c: (bus_driver_send_welcome_message), 13568 (bus_driver_handle_list_services), 13569 (bus_driver_handle_acquire_service), 13570 (bus_driver_handle_service_exists), (bus_driver_handle_message): 13571 Update for API changes in libdbus. 13572 13573 * dbus/dbus-message.c: (dbus_message_new_reply): 13574 * dbus/dbus-message.h: 13575 Remove the name argument. The spec states that replies shouldn't 13576 have a name. 13577 13578 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13579 13580 * bus/desktop-file.c: (parse_section_start), (parse_key_value), 13581 (report_error), (bus_desktop_file_load), (lookup_section), 13582 (lookup_line), (bus_desktop_file_get_raw), 13583 (bus_desktop_file_get_string): 13584 * bus/desktop-file.h: 13585 Some fixes, and new functions for getting a key value from a section. 13586 13587 2003-02-13 Havoc Pennington <hp (a] pobox.com> 13588 13589 * test/data/auth/fail-after-n-attempts.auth-script: new test 13590 13591 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we 13592 reject the client. 13593 13594 2003-02-13 Havoc Pennington <hp (a] pobox.com> 13595 13596 * dbus/dbus-auth.c (handle_server_data_external_mech): args to 13597 dbus_credentials_match were backward 13598 13599 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support 13600 NO_CREDENTIALS and ROOT_CREDENTIALS 13601 13602 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine 13603 into here. Never process more commands after we've reached an 13604 end state; store further data as unused bytes. 13605 13606 * test/data/auth/*: add more auth tests 13607 13608 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT 13609 command to match exact string and EXPECT_UNUSED to match unused 13610 bytes 13611 13612 * test/Makefile.am (dist-hook): fix to dist all the test stuff 13613 13614 2003-02-12 Havoc Pennington <hp (a] pobox.com> 13615 13616 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip 13617 \r off of popped lines 13618 13619 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth 13620 scripts 13621 13622 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a 13623 SEND, append \r\n 13624 13625 2003-02-12 Havoc Pennington <hp (a] pobox.com> 13626 13627 * dbus/Makefile.am: remove break-loader from the build, since it 13628 moved. 13629 13630 * configure.in: add --enable-gcov to turn on coverage profiling 13631 flags and disable optimization 13632 13633 2003-02-10 Havoc Pennington <hp (a] pobox.com> 13634 13635 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync 13636 initial cut at test framework for DBusAuth from laptop. 13637 Doesn't quite work yet but it compiles and I need to get 13638 it off the 266mhz laptop. ;-) 13639 13640 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport): 13641 fix a memleak in error case 13642 13643 2003-02-12 Anders Carlsson <andersca (a] codefactory.se> 13644 13645 * bus/Makefile.am: 13646 * bus/desktop-file.c: 13647 * bus/desktop-file.h: 13648 Add a desktop file parser. 13649 13650 2003-02-11 Zack Rusin <zack (a] kde.org> 13651 13652 * qt/message.[h|cpp]: sample implementation 13653 of the KDE wrapper for DBusMessage 13654 13655 2003-02-09 Zack Rusin <zack (a] kde.org> 13656 13657 * test/bus-test.c: make_it_compile 13658 * doc/dbus-specification.sgml: minimal semantic fix 13659 13660 2003-02-06 Anders Carlsson <andersca (a] codefactory.se> 13661 13662 Release 0.3 13663 13664 * NEWS: Update 13665 13666 2003-02-06 Anders Carlsson <andersca (a] codefactory.se> 13667 13668 * dbus/Makefile.am: 13669 * dbus/dbus-break-loader.c: 13670 * test/Makefile.am: 13671 * test/break-loader.c: 13672 Move dbus-break-loader to test/ and rename it to break-loader. 13673 13674 2003-02-02 Havoc Pennington <hp (a] pobox.com> 13675 13676 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files 13677 for code to manage cookies in your home directory 13678 13679 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function 13680 13681 * dbus/dbus-auth.c (get_state): impose a maximum number of tries 13682 to authenticate, then disconnect the client. 13683 13684 2003-02-03 Alexander Larsson <alexl (a] redhat.com> 13685 13686 * dbus/dbus-message.c (dbus_message_append_fields): 13687 Correct docs. 13688 13689 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13690 13691 * doc/dbus-specification.sgml: 13692 Update address format section. 13693 13694 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13695 13696 * test/Makefile.am: 13697 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout), 13698 (message_handler), (new_connection_callback), (loop_quit), 13699 (loop_run), (main): 13700 Add bus test. 13701 13702 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13703 13704 * bus/driver.c: (bus_driver_handle_service_exists): 13705 Simplify the code a bit. 13706 13707 * dbus/dbus-bus.c: (dbus_bus_service_exists): 13708 Fix a silly. 13709 13710 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13711 13712 * bus/Makefile.am: 13713 Add libdbus-daemon.la and link to it. 13714 13715 2003-02-01 James Willcox <jwillcox (a] gnome.org> 13716 13717 * bus/driver.c: (bus_driver_handle_own_service): 13718 Actually include the service reply code in the message. 13719 13720 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13721 13722 * bus/driver.c: (bus_driver_handle_service_exists): 13723 Don't unref the incoming message. 13724 13725 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13726 13727 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h 13728 13729 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13730 13731 * dbus/dbus-server.c: (dbus_server_listen): 13732 * dbus/dbus-transport.c: (_dbus_transport_open): 13733 ifdef out the calls to the debug transport and server. 13734 13735 2003-02-02 Alexander Larsson <alexl (a] redhat.com> 13736 13737 * dbus/dbus-watch.c (dbus_watch_get_flags): 13738 Add note in the docs that ERROR or HANGUP won't be returned 13739 and are assumed always on. 13740 13741 * glib/dbus-gmain.c (add_watch): 13742 Always add IO_ERR | IO_HUP 13743 13744 * dbus/dbus-message.h: 13745 Add semicolon after dbus_message_iter_get_string_array(). 13746 Makes qt code build again 13747 13748 2003-02-01 Anders Carlsson <andersca (a] codefactory.se> 13749 13750 * bus/driver.c: (create_unique_client_name), 13751 (bus_driver_handle_hello): 13752 Don't take a name, just use a numeric id to identify 13753 each client. 13754 13755 * dbus/Makefile.am: 13756 * dbus/dbus-bus.c: (dbus_bus_register_client), 13757 (dbus_bus_acquire_service), (dbus_bus_service_exists): 13758 * dbus/dbus-bus.h: 13759 Add new convenience functions for communicating with the bus. 13760 13761 * dbus/dbus-message.h: 13762 13763 * dbus/dbus-protocol.h: 13764 Fix a typo. 13765 13766 2003-02-01 Alexander Larsson <alexl (a] redhat.com> 13767 13768 * dbus/dbus-message.c (dbus_message_append_fields): 13769 Add some more doc comments. 13770 13771 2003-02-01 Havoc Pennington <hp (a] pobox.com> 13772 13773 * dbus/dbus-break-loader.c (randomly_modify_length): change 13774 a 4-byte value in the message as if it were a length 13775 13776 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set 13777 execute bit on saved files 13778 13779 2003-02-01 Havoc Pennington <hp (a] pobox.com> 13780 13781 * dbus/dbus-break-loader.c (main): new program to find messages 13782 that break the loader. 13783 13784 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function 13785 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function 13786 13787 * dbus/dbus-string.c (_dbus_string_set_byte): new 13788 13789 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13790 13791 * dbus/dbus-message.c: refactor the test code to be more general, 13792 in preparation for writing a "randomly permute test cases to 13793 try to break the loader" program. 13794 13795 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13796 13797 * doc/dbus-specification.sgml: work on the specification 13798 13799 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check 13800 the protocol version of the message. 13801 13802 * dbus/dbus-protocol.h: drop special _REPLY names, the spec 13803 no longer specifies that. 13804 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not 13805 1/2/3/4) 13806 13807 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing 13808 "break" for DBUS_TYPE_NIL, remove @todo 13809 13810 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13811 13812 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename 13813 just set_is_error/get_is_error as this is a commonly-used 13814 function, and write docs. 13815 13816 2003-01-31 Anders Carlsson <andersca (a] codefactory.se> 13817 13818 * dbus/dbus-address.c: (dbus_address_entry_free): 13819 Free key and value lists. 13820 13821 * dbus/dbus-internals.c: (_dbus_type_to_string): 13822 Add the types we didn't have. 13823 13824 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), 13825 (_dbus_marshal_validate_arg): 13826 Add NIL types. 13827 13828 * dbus/dbus-message.c: (dbus_message_set_sender): 13829 Remove todo about being able to set sender to NULL. 13830 13831 (dbus_message_set_is_error_reply), 13832 (dbus_message_get_is_error_reply): 13833 * dbus/dbus-message.h: 13834 New functions. 13835 13836 * dbus/dbus-protocol.h: 13837 Add error reply flag. 13838 13839 * test/data/valid-messages/opposite-endian.message: 13840 Add NIL type to test. 13841 13842 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13843 13844 * doc/dbus-specification.sgml: fully specify the header. Add 13845 flags and major protocol version, and change header/body len to 13846 unsigned. 13847 13848 * dbus/dbus-message-builder.c (append_saved_length): append length 13849 as uint32 13850 13851 * dbus/dbus-message.c (dbus_message_create_header): change header 13852 length and body length to unsigned. Add the new fields from the 13853 spec 13854 (_dbus_message_loader_return_buffer): unsigned header/body len 13855 13856 2003-01-30 Havoc Pennington <hp (a] pobox.com> 13857 13858 * dbus/dbus-auth.c: rework to use only REJECTED, no 13859 MECHANISMS 13860 13861 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just 13862 use REJECTED, suggested by Mark McLoughlin 13863 13864 2003-01-30 Havoc Pennington <hp (a] pobox.com> 13865 13866 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need 13867 a better way to report errors here. e.g. "unix address lacks 13868 path" or something. also "no such file" when the path doesn't 13869 exist, etc. 13870 13871 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about 13872 leaking list nodes 13873 (dbus_parse_address): add @todo about documenting address format, 13874 and allowing , and ; to be escaped 13875 13876 2003-01-30 Anders Carlsson <andersca (a] codefactory.se> 13877 13878 * dbus/Makefile.am: 13879 Add dbus-address.[ch] 13880 13881 * dbus/dbus-address.c: (dbus_address_entry_free), 13882 (dbus_address_entries_free), (create_entry), 13883 (dbus_address_entry_get_method), (dbus_address_entry_get_value), 13884 (dbus_parse_address), (_dbus_address_test): 13885 * dbus/dbus-address.h: 13886 New files for dealing with address parsing. 13887 13888 * dbus/dbus-connection.c: 13889 Document timeout functions. 13890 13891 * dbus/dbus-message.c: 13892 Document dbus_message_new_from_message. 13893 13894 * dbus/dbus-server-debug.c: 13895 Document. 13896 13897 * dbus/dbus-server.c: (dbus_server_listen): 13898 Parse address and use correct server implementation. 13899 13900 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test): 13901 * dbus/dbus-string.h: 13902 New function with test. 13903 13904 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests): 13905 * dbus/dbus-test.h: 13906 Add address tests. 13907 13908 * dbus/dbus-transport-debug.c: 13909 Document. 13910 13911 * dbus/dbus-transport.c: (_dbus_transport_open): 13912 Parse address and use correct transport implementation. 13913 13914 2003-01-30 Havoc Pennington <hp (a] pobox.com> 13915 13916 * dbus/dbus-message.c: use message->byte_order instead of 13917 DBUS_COMPILER_BYTE_ORDER throughout. 13918 (dbus_message_create_header): pad header to align the 13919 start of the body of the message to 8-byte boundary 13920 13921 * dbus/dbus-marshal.h: make all the demarshalers take const 13922 DBusString arguments. 13923 13924 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): 13925 validate message args here, so we don't have to do slow validation 13926 later, and so we catch bad messages as they are incoming. Also add 13927 better checks on header_len and body_len. Also fill in 13928 message->byte_order 13929 13930 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not 13931 implemented properly) 13932 (_dbus_string_validate_nul): new function to check all-nul 13933 13934 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename 13935 get_arg_end_pos and remove all validation 13936 (_dbus_marshal_validate_arg): actually do validation here. 13937 13938 2003-01-29 Havoc Pennington <hp (a] pobox.com> 13939 13940 * dbus/dbus-message.c (check_message_handling): fix assertion 13941 failure on set_client_serial 13942 13943 2003-01-28 Havoc Pennington <hp (a] pobox.com> 13944 13945 * dbus/dbus-server-debug.c: Add doc section comments 13946 13947 * dbus/dbus-transport-debug.c: add doc section comments 13948 13949 2003-01-28 Havoc Pennington <hp (a] redhat.com> 13950 13951 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in 13952 the reverse order from how I had it 13953 (_dbus_string_base64_encode): reverse encoding order. I was 13954 basically byteswapping everything during encoding. 13955 13956 2003-01-28 Anders Carlsson <andersca (a] codefactory.se> 13957 13958 * dbus/dbus-connection-internal.h: 13959 * dbus/dbus-connection.c: (_dbus_connection_add_timeout), 13960 (_dbus_connection_remove_timeout): 13961 Add functions for adding and removing timeouts. 13962 13963 * dbus/dbus-message.c: (dbus_message_new_from_message): 13964 Add new function that takes a message and creates an exact 13965 copy of it, but with the refcount set to 1. 13966 (check_message_handling): 13967 Fix build error. 13968 13969 * dbus/dbus-server-protected.h: 13970 * dbus/dbus-server.c: (_dbus_server_init_base), 13971 (_dbus_server_finalize_base), (_dbus_server_add_timeout), 13972 (dbus_server_set_timeout_functions): 13973 (_dbus_server_remove_timeout): 13974 New functions so that a server can add and remove timeouts. 13975 13976 (dbus_server_listen): 13977 Add commented out call to dbus_server_debug_new. 13978 13979 * dbus/dbus-timeout.c: (_dbus_timeout_new): 13980 Actually set the handler, doh. 13981 13982 * dbus/dbus-transport.c: (_dbus_transport_open): 13983 Add commented out call to dbus_transport_debug_client_new. 13984 13985 * dbus/Makefile.am: 13986 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch] 13987 13988 2003-01-28 Havoc Pennington <hp (a] pobox.com> 13989 13990 * dbus/dbus-message.c (check_message_handling): function to check 13991 on the loaded message, iterates over it etc. 13992 13993 2003-01-28 Havoc Pennington <hp (a] pobox.com> 13994 13995 * test/Makefile.am (dist-hook): fix make distdir 13996 13997 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check 13998 13999 2003-01-27 Havoc Pennington <hp (a] pobox.com> 14000 14001 * dbus/dbus-mempool.c (time_for_size): replace printf with 14002 _dbus_verbose 14003 14004 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow 14005 empty lines; fix the SAVE_LENGTH stuff to be 14006 START_LENGTH/END_LENGTH so it actually works; couple other 14007 bugfixes 14008 14009 * test/Makefile.am (dist-hook): add dist-hook for .message files 14010 14011 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy 14012 can be constant or locked. 14013 (_dbus_string_free): allow freeing a const string as 14014 documented/intended 14015 14016 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility 14017 14018 * dbus/dbus-test-main.c (main): take an argument which is the 14019 directory containing test data 14020 14021 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir 14022 argument to this and load all the messages in test/data/ 14023 checking that they can be loaded or not loaded as appropriate. 14024 14025 2003-01-27 Anders Carlsson <andersca (a] codefactory.se> 14026 14027 * bus/dispatch.c: (bus_dispatch_message_handler): 14028 Dispatch messages sent to services. 14029 14030 * bus/driver.c: (bus_driver_send_service_deleted), 14031 (bus_driver_send_service_created), (bus_driver_send_service_lost), 14032 (bus_driver_send_service_acquired): 14033 Add helper functions for sending service related messages. 14034 14035 (bus_driver_send_welcome_message): 14036 Send HELLO_REPLY instead of WELCOME. 14037 14038 (bus_driver_handle_list_services): 14039 Send LIST_SERVICES_REPLY instead of SERVICES. 14040 14041 (bus_driver_handle_own_service), 14042 (bus_driver_handle_service_exists): 14043 New message handlers. 14044 14045 (bus_driver_handle_message): 14046 Invoke new message handlers. 14047 14048 (bus_driver_remove_connection): 14049 Don't remove any services here since that's done automatically 14050 by bus_service_remove_owner now. 14051 14052 * bus/driver.h: 14053 New function signatures. 14054 14055 * bus/services.c: (bus_service_add_owner): 14056 Send ServiceAcquired message if we're the only primary owner. 14057 14058 (bus_service_remove_owner): 14059 Send ServiceAcquired/ServiceLost messages. 14060 14061 (bus_service_set_prohibit_replacement), 14062 (bus_service_get_prohibit_replacement): 14063 Functions for setting prohibit replacement. 14064 14065 (bus_service_has_owner): 14066 New function that checks if a connection is in the owner queue of 14067 a certain service. 14068 14069 * bus/services.h: 14070 Add new function signatures. 14071 14072 * dbus/dbus-list.c: (_dbus_list_test): 14073 Add tests for _dbus_list_remove_last and traversing the list backwards. 14074 14075 * dbus/dbus-list.h: 14076 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't 14077 go any further, so return NULL then. 14078 14079 * dbus/dbus-protocol.h: 14080 Add new messages, service flags and service replies. 14081 14082 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14083 14084 * dbus/dbus-message-builder.c: implement, completely untested. 14085 14086 * test/data/*: add data to be used in testing. 14087 ".message" files are our simple loadable text format. 14088 ".message-raw" will be binary dumps of messages. 14089 14090 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new 14091 14092 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14093 14094 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function 14095 14096 * dbus/dbus-errors.c (dbus_result_to_string): add 14097 file errors 14098 14099 * dbus/dbus-message-builder.c: new file, will contain code to load 14100 up messages from files. Not implemented yet. 14101 14102 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14103 14104 * dbus/dbus-message.c (dbus_message_set_sender): support deleting 14105 the sender by setting to NULL 14106 14107 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14108 14109 The unit tests pass, but otherwise untested. If it breaks, the 14110 tests should have been better. ;-) 14111 14112 * bus/driver.c (bus_driver_handle_hello): return if we disconnect 14113 the connection. 14114 14115 * dbus/dbus-message.c: redo everything so we maintain 14116 message->header as the only copy of the various fields. 14117 This avoids the possibility of out-of-memory in some cases, 14118 for example dbus_message_lock() can't run out of memory anymore, 14119 and avoids extra copying. Figured I may as well go ahead and do 14120 this since it was busted for dbus_message_lock to not return 14121 failure on OOM, and dbus_message_write_header was totally 14122 unchecked for OOM. Also fixed some random other bugs. 14123 14124 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify 14125 that strings are nul-terminated. Also, end_pos can be equal 14126 to string length just not greater than, I think. 14127 (_dbus_marshal_set_int32): new function 14128 (_dbus_marshal_set_uint32): new function 14129 (_dbus_marshal_set_string): new function 14130 14131 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix 14132 a warning, init timeout_list to NULL 14133 (dbus_connection_send_message): don't use uninitialized variable 14134 "serial" 14135 14136 * dbus/dbus-string.c (_dbus_string_replace_len): new function 14137 14138 2003-01-26 Anders Carlsson <andersca (a] codefactory.se> 14139 14140 * bus/driver.c: (bus_driver_handle_hello), 14141 (bus_driver_send_welcome_message): 14142 Plug leaks 14143 14144 2003-01-26 Anders Carlsson <andersca (a] codefactory.se> 14145 14146 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref): 14147 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), 14148 (dbus_connection_unref): 14149 * dbus/dbus-marshal.c: (_dbus_marshal_test): 14150 * dbus/dbus-message.c: (dbus_message_unref), 14151 Plug memory leaks. 14152 14153 (dbus_message_get_fields): 14154 Remove debugging printout. 14155 14156 (_dbus_message_loader_return_buffer): 14157 Don't store the header string. 14158 14159 (_dbus_message_test): 14160 Plug leaks. 14161 14162 2003-01-26 Richard Hult <rhult (a] codefactory.se> 14163 14164 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of 14165 the file descriptor list, since it can change under us. 14166 14167 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14168 14169 * glib/dbus-gmain.c: (dbus_connection_prepare), 14170 (dbus_connection_check), (dbus_connection_dispatch), (add_watch), 14171 (remove_watch), (dbus_connection_hookup_with_g_main): 14172 Rewrite the glib handling to use its own GSource instead of a 14173 GIOChannel so we can catch messages put in the queue while waiting 14174 for a reply. 14175 14176 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14177 14178 * bus/Makefile.am: 14179 * bus/connection.c: (connection_disconnect_handler), 14180 (connection_watch_callback), (bus_connection_setup): 14181 * bus/dispatch.c: (send_one_message), 14182 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler), 14183 (bus_dispatch_add_connection), (bus_dispatch_remove_connection): 14184 * bus/dispatch.h: 14185 * bus/driver.c: (bus_driver_send_service_deleted), 14186 (bus_driver_send_service_created), (bus_driver_handle_hello), 14187 (bus_driver_send_welcome_message), 14188 (bus_driver_handle_list_services), (bus_driver_remove_connection), 14189 (bus_driver_handle_message): 14190 * bus/driver.h: 14191 Refactor code, put the message dispatching in its own file. Use 14192 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client 14193 is disconnected. 14194 14195 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14196 14197 * dbus/dbus-internals.h: 14198 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently. 14199 14200 * dbus/dbus-message.c: (dbus_message_get_sender): 14201 * dbus/dbus-message.h: 14202 Implement dbus_message_get_sender. 14203 14204 * dbus/dbus-protocol.h: 14205 Add message and service defines. 14206 14207 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14208 14209 * dbus/dbus-connection.c: (dbus_connection_send_message): 14210 * dbus/dbus-message-internal.h: 14211 * dbus/dbus-message.c: (_dbus_message_get_client_serial), 14212 (dbus_message_write_header): 14213 Remove _dbus_messag_unlock and don't set the client serial on a 14214 message if one already exists. 14215 14216 2003-01-24 Havoc Pennington <hp (a] pobox.com> 14217 14218 * dbus/dbus-list.c (alloc_link): put a thread lock on the global 14219 list_pool 14220 14221 * bus/driver.c (bus_driver_handle_list_services): fix a leak 14222 on OOM 14223 14224 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14225 14226 * dbus/dbus-list.c: (alloc_link), (free_link): 14227 Use a memory pool for the links. 14228 14229 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14230 14231 * bus/connection.c: (bus_connection_foreach): 14232 * bus/connection.h: 14233 Add new bus_connection_foreach function. 14234 14235 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message): 14236 Add function that broadcasts a message to all clients. 14237 14238 (bus_driver_send_service_created), (bus_driver_handle_hello), 14239 (bus_driver_send_welcome_message), 14240 (bus_driver_handle_list_services), (bus_driver_message_handler): 14241 Implement functions that take care of listing services, and notifying 14242 clients when new services are created. 14243 14244 * bus/services.c: (bus_services_list): 14245 * bus/services.h: 14246 Add new function that returns an array of strings with the currently 14247 registered services. 14248 14249 * glib/dbus-glib.h: 14250 * glib/dbus-gmain.c: 14251 Update copyright year. 14252 14253 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14254 14255 * dbus/dbus-connection.c: (dbus_connection_send_message): 14256 Unlock the message in case it was sent earlier. 14257 14258 (dbus_connection_send_message_with_reply_and_block): 14259 Remove the reply message from the list. 14260 14261 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): 14262 Set array_len and new_pos correctly. 14263 14264 (_dbus_marshal_test): 14265 Remove debug output. 14266 14267 * dbus/dbus-message-internal.h: 14268 * dbus/dbus-message.c: (_dbus_message_get_reply_serial): 14269 New function that returns the reply serial. 14270 14271 (_dbus_message_unlock): 14272 New function that unlocks a message and resets its header. 14273 14274 (dbus_message_append_string_array), 14275 (dbus_message_get_fields_valist), 14276 (dbus_message_iter_get_field_type), 14277 (dbus_message_iter_get_string_array), 14278 (dbus_message_get_fields), 14279 (dbus_message_append_fields_valist): 14280 Handle string arrays. 14281 14282 (dbus_message_set_sender): 14283 Make this function public since the bus daemon needs it. 14284 14285 (decode_header_data): 14286 Set the reply serial to -1 initially. 14287 14288 * dbus/dbus-message.h: 14289 Add dbus_message_set_sender. 14290 14291 2003-01-24 Havoc Pennington <hp (a] pobox.com> 14292 14293 * doc/dbus-specification.sgml: add some stuff 14294 14295 2003-01-22 Havoc Pennington <hp (a] pobox.com> 14296 14297 * doc/dbus-specification.sgml: Start to document the protocol. 14298 14299 2003-01-22 Havoc Pennington <hp (a] pobox.com> 14300 14301 * dbus/dbus-connection.c 14302 (dbus_connection_send_message_with_reply_and_block): add some @todo 14303 14304 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak 14305 14306 2003-01-21 Havoc Pennington <hp (a] pobox.com> 14307 14308 (patch untested because can't compile) 14309 14310 * bus/driver.c (create_unique_client_name): make this function 14311 never recycle client names. Also, caller should initialize 14312 the DBusString. 14313 14314 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function 14315 14316 2003-01-21 Anders Carlsson <andersca (a] codefactory.se> 14317 14318 * dbus/dbus-marshal.c: (_dbus_marshal_double), 14319 (_dbus_marshal_int32), (_dbus_marshal_uint32), 14320 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array), 14321 (_dbus_marshal_double_array), (_dbus_marshal_string_array), 14322 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), 14323 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), 14324 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test): 14325 * dbus/dbus-marshal.h: 14326 * dbus/dbus-protocol.h: 14327 Add support for marshalling and demarshalling integer, double 14328 and string arrays. 14329 14330 2003-01-21 Anders Carlsson <andersca (a] codefactory.se> 14331 14332 * bus/Makefile.am: 14333 Add driver.[ch] 14334 14335 * bus/connection.c: (connection_disconnect_handler): 14336 Remove the connection from the bus driver's list. 14337 14338 (connection_watch_callback): Dispatch messages. 14339 14340 (free_connection_data): Free connection name. 14341 14342 (bus_connection_setup): Add connection to the bus driver's list. 14343 (bus_connection_remove_owned_service): 14344 (bus_connection_set_name), (bus_connection_get_name): 14345 Add functions for setting and getting the connection's name. 14346 14347 * bus/connection.h: 14348 Add function headers. 14349 14350 * bus/driver.c: (create_unique_client_name), 14351 (bus_driver_handle_hello_message), 14352 (bus_driver_send_welcome_message), (bus_driver_message_handler), 14353 (bus_driver_add_connection), (bus_driver_remove_connection): 14354 * bus/driver.h: 14355 * bus/main.c: 14356 * bus/services.c: (bus_service_free): 14357 * bus/services.h: 14358 New file that handles communication and registreation with the bus 14359 itself. 14360 14361 2003-01-21 Anders Carlsson <andersca (a] codefactory.se> 14362 14363 * dbus/dbus-connection.c: (dbus_connection_send_message): 14364 Add a new client_serial parameter. 14365 14366 (dbus_connection_send_message_with_reply): 14367 Remove a @todo since we've implemented the blocking function. 14368 14369 (dbus_connection_send_message_with_reply_and_block): 14370 New function that sends a message and waits for a reply and 14371 then returns the reply. 14372 14373 * dbus/dbus-connection.h: 14374 Add new functions. 14375 14376 * dbus/dbus-errors.c: (dbus_result_to_string): 14377 * dbus/dbus-errors.h: 14378 Add new DBUS_RESULT. 14379 14380 * dbus/dbus-message-internal.h: 14381 * dbus/dbus-message.c: (_dbus_message_get_reply_serial), 14382 (_dbus_message_set_sender), (dbus_message_write_header), 14383 (dbus_message_new_reply), (decode_header_data), 14384 (_dbus_message_loader_return_buffer), (_dbus_message_test): 14385 * dbus/dbus-message.h: 14386 Add new functions that set the reply serial and sender. 14387 Also marshal and demarshal them correctly and add test. 14388 14389 * dbus/dbus-protocol.h: 14390 Add new DBUS_MESSAGE_TYPE_SENDER. 14391 14392 * glib/dbus-glib.h: 14393 * glib/dbus-gmain.c: (watch_callback), (free_callback_data), 14394 (add_watch), (remove_watch), (add_timeout), (remove_timeout), 14395 (dbus_connection_hookup_with_g_main): 14396 * glib/test-dbus-glib.c: (main): 14397 Rewrite to use GIOChannel and remove the GSource crack. 14398 14399 * test/echo-client.c: (main): 14400 * test/watch.c: (check_messages): 14401 Update for changed APIs 14402 14403 2003-01-19 Anders Carlsson <andersca (a] codefactory.se> 14404 14405 * dbus/Makefile.am: Add dbus-timeout.[c] 14406 14407 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport): 14408 Create a DBusTimeoutList. 14409 (dbus_connection_set_timeout_functions): Add new function to 14410 set timeout callbacks 14411 14412 * dbus/dbus-connection.h: Add public DBusTimeout API. 14413 14414 * dbus/dbus-message.c: (dbus_message_get_service): 14415 * dbus/dbus-message.h: New function. 14416 14417 * dbus/dbus-server.c: Fix small doc typo. 14418 14419 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts. 14420 14421 2003-01-19 Anders Carlsson <andersca (a] codefactory.se> 14422 14423 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all 14424 of the string, just as long as specified. 14425 14426 2003-01-19 Havoc Pennington <hp (a] pobox.com> 14427 14428 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated): 14429 new function 14430 14431 * dbus/dbus-server.c (dbus_server_set_max_connections) 14432 (dbus_server_get_max_connections, dbus_server_get_n_connections): 14433 keep track of current number of connections, and add API for 14434 setting a max (but haven't implemented enforcing the max yet) 14435 14436 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14437 14438 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the 14439 reading/writing if read_watch != NULL or write_watch != NULL. 14440 14441 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix 14442 the message loader code to actually load message->header and 14443 message->body into the newly-created message. 14444 14445 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak 14446 in OOM case 14447 14448 * dbus/dbus-connection.c (dbus_connection_set_max_message_size) 14449 (dbus_connection_get_max_message_size) 14450 (dbus_connection_set_max_live_messages_size) 14451 (dbus_connection_get_max_live_messages_size): implement some 14452 resource limitation functions 14453 14454 * dbus/dbus-resources.c: new file implementing some of the 14455 resource limits stuff 14456 14457 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add 14458 missing docs, add @todo to handle OOM etc. 14459 14460 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing 14461 docs 14462 14463 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14464 14465 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the 14466 connection if it hasn't been already. 14467 14468 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction, 14469 replace with DisconnectFunction. 14470 14471 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14472 14473 Building --disable-verbose-mode --disable-asserts --disable-tests 14474 cuts the library from 112K to 45K or so 14475 14476 * configure.in: check for varargs macro support, 14477 add --enable-verbose-mode, --enable-asserts. 14478 14479 * dbus/dbus-internals.h (_dbus_assert): support 14480 DBUS_DISABLE_ASSERT 14481 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE 14482 14483 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14484 14485 * dbus/dbus-test.c: include config.h so that tests actually run 14486 14487 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned, 14488 so the failure mode when that assumption fails will be plenty 14489 obvious. 14490 14491 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14492 14493 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE 14494 14495 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in 14496 the distribution 14497 14498 * test/Makefile.am: don't use special variable "TESTS" for echo-* 14499 since we don't want to use those in make check 14500 14501 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14502 14503 Release 0.2 14504 14505 * NEWS: update 14506 14507 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14508 14509 * test/Makefile.am: fix so that test source code ends up in the 14510 distribution on make distcheck 14511 14512 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14513 14514 Release 0.1. 14515 14516 * NEWS: update 14517 14518 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14519 14520 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests): 14521 fix build when --disable-tests 14522 14523 * Makefile.am (EXTRA_DIST): put HACKING in here 14524 14525 * HACKING: document procedure for making a tarball release. 14526 14527 2003-01-14 Anders Carlsson <andersca (a] codefactory.se> 14528 14529 * bus/connection.c: (connection_error_handler), 14530 (bus_connection_setup): 14531 * bus/main.c: (main): 14532 Make sure that the DBusConnectionData struct is NULLed 14533 out to prevent a segfault. 14534 14535 * dbus/dbus-errors.c: (dbus_result_to_string): 14536 * dbus/dbus-errors.h: 14537 * dbus/dbus-message.c: (dbus_message_get_fields), 14538 (dbus_message_get_fields_valist), (_dbus_message_test): 14539 * dbus/dbus-message.h: 14540 Make dbus_message_get_fields return a result code so we can 14541 track invalid fields as well as oom. 14542 14543 2003-01-11 Havoc Pennington <hp (a] pobox.com> 14544 14545 * configure.in: change --enable-test/--enable-ansi action-if-given 14546 to enable_foo=$enableval instead of enable_foo=yes 14547 14548 2003-01-08 Havoc Pennington <hp (a] pobox.com> 14549 14550 * dbus/dbus-string.c (_dbus_string_align_length): new function 14551 14552 * dbus/dbus-test-main.c: move main() for test app here 14553 * dbus/dbus-test.c 14554 (dbus_internal_symbol_do_not_use_run_tests): we have to export a 14555 symbol to run tests, because dbus-test isn't in the main 14556 library 14557 14558 Code review nitpicks. 14559 14560 * dbus/dbus-message.c (dbus_message_write_header): add newlines 14561 for people with narrow emacs ;-). Assert client_serial was filled 14562 in. Assert message->name != NULL. 14563 (dbus_message_append_fields): have "first_field_type" arg separate 14564 from va list, needed for C++ binding that also uses varargs IIRC 14565 and helps with type safety 14566 (dbus_message_new): add @todo about using DBusString to store 14567 service/name internally 14568 (dbus_message_new): don't leak ->service and ->name on OOM later 14569 in the function 14570 (dbus_message_unref): free the service name 14571 (dbus_message_get_fields): same change to varargs 14572 i.e. first_field_type 14573 (_dbus_message_loader_return_buffer): assert that the message data 14574 is aligned (if not it's a bug in our code). Put in verbose griping 14575 about why we set corrupted = TRUE. 14576 (decode_header_data): add FIXME that char* is evil. Was going to 14577 add FIXME about evil locale-specific string.h strncmp, but just 14578 switched to wacky string-as-uint32 optimization. Move check for 14579 "no room for field name" above get_const_data_len() to avoid 14580 assertion failure in get_const_data_len if we have trailing 2 14581 bytes or the like. Check for service and name fields being 14582 provided twice. Don't leak service/name on error. Require field 14583 names to be aligned to 4 bytes. 14584 14585 * dbus/dbus-marshal.c: move byte swap stuff to header 14586 (_dbus_pack_int32): uscore-prefix 14587 (_dbus_unpack_int32): uscore-prefix 14588 (_dbus_unpack_uint32): export 14589 (_dbus_demarshal_string): add @todo complaining about use of 14590 memcpy() 14591 (_dbus_marshal_get_field_end_pos): add @todo about bad error 14592 handling allowing corrupt data to go unchecked 14593 14594 2003-01-08 Havoc Pennington <hp (a] redhat.com> 14595 14596 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write 14597 to the select() as needed for authentication. (should be using 14598 _dbus_poll() not select, but for another day) 14599 14600 * dbus/dbus.h: include dbus/dbus-protocol.h 14601 14602 2003-01-08 Anders Carlsson <andersca (a] codefactory.se> 14603 14604 * dbus/Makefile.am (dbusinclude_HEADERS): Install 14605 dbus-connection.h 14606 14607 2003-01-08 Anders Carlsson <andersca (a] codefactory.se> 14608 14609 * dbus/dbus-internals.c: (_dbus_type_to_string): 14610 New function that returns a string describing a type. 14611 14612 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array): 14613 * dbus/dbus-marshal.h: 14614 * dbus/dbus-message.c: (dbus_message_get_fields_valist), 14615 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double), 14616 (dbus_message_iter_get_byte_array): 14617 * dbus/dbus-message.h: 14618 Add new convenience functions for appending and getting message fields. 14619 Also add demarshalling routines for byte arrays. 14620 14621 2003-01-07 Anders Carlsson <andersca (a] codefactory.se> 14622 14623 * dbus/dbus-connection-internal.h: 14624 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), 14625 (_dbus_connection_get_next_client_serial), 14626 (dbus_connection_send_message): 14627 * dbus/dbus-internals.h: 14628 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32), 14629 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32), 14630 (_dbus_marshal_uint32), (_dbus_demarshal_double), 14631 (_dbus_demarshal_int32), (_dbus_demarshal_uint32), 14632 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos), 14633 (_dbus_verbose_bytes), (_dbus_marshal_test): 14634 * dbus/dbus-marshal.h: 14635 * dbus/dbus-message-internal.h: 14636 * dbus/dbus-message.c: (_dbus_message_set_client_serial), 14637 (dbus_message_write_header), (_dbus_message_lock), 14638 (dbus_message_new), (dbus_message_ref), (dbus_message_unref), 14639 (dbus_message_get_name), (dbus_message_append_int32), 14640 (dbus_message_append_uint32), (dbus_message_append_double), 14641 (dbus_message_append_string), (dbus_message_append_byte_array), 14642 (dbus_message_get_fields_iter), (dbus_message_iter_ref), 14643 (dbus_message_iter_unref), (dbus_message_iter_has_next), 14644 (dbus_message_iter_next), (dbus_message_iter_get_field_type), 14645 (dbus_message_iter_get_string), (dbus_message_iter_get_int32), 14646 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double), 14647 (decode_header_data), (_dbus_message_loader_return_buffer), 14648 (message_iter_test), (_dbus_message_test): 14649 * dbus/dbus-message.h: 14650 * dbus/dbus-protocol.h: 14651 * dbus/dbus-test.c: (main): 14652 * dbus/dbus-test.h: 14653 * glib/test-dbus-glib.c: (message_handler), (main): 14654 * test/echo-client.c: (main): 14655 * test/watch.c: (check_messages): 14656 Make messages sendable and receivable for real. 14657 14658 2003-01-07 Anders Carlsson <andersca (a] codefactory.se> 14659 14660 * dbus/dbus-marshal.c: (_dbus_marshal_double), 14661 (_dbus_marshal_string), (_dbus_marshal_byte_array): 14662 * dbus/dbus-message.c: (dbus_message_append_int32), 14663 (dbus_message_append_uint32), (dbus_message_append_double), 14664 (dbus_message_append_string), (dbus_message_append_byte_array): 14665 Handle OOM restoration. 14666 14667 2003-01-07 Anders Carlsson <andersca (a] codefactory.se> 14668 14669 * dbus/dbus-marshal.c: (_dbus_marshal_string), 14670 (_dbus_demarshal_string), (_dbus_marshal_test): 14671 * dbus/dbus-marshal.h: 14672 * dbus/dbus-message.c: (dbus_message_get_name), 14673 Document these functions. 14674 14675 (dbus_message_append_int32), (dbus_message_append_uint32), 14676 (dbus_message_append_double), (dbus_message_append_string), 14677 (dbus_message_append_byte_array): 14678 * dbus/dbus-message.h: 14679 Add functions for adding message fields of different types. 14680 14681 * dbus/dbus-protocol.h: 14682 Add the different types. 14683 14684 2003-01-05 Havoc Pennington <hp (a] pobox.com> 14685 14686 * bus/connection.c: implement routines for handling connections, 14687 first thing is keeping a list of owned services on each connection 14688 and setting up watches etc. 14689 14690 * bus/services.c: implement a mapping from service names to lists 14691 of connections 14692 14693 * dbus/dbus-hash.c: add DBUS_HASH_POINTER 14694 14695 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions 14696 to use static mutexes for global data 14697 14698 * dbus/dbus-connection.c (dbus_connection_set_data): add new 14699 collection of functions to set/get application-specific data 14700 on the DBusConnection. 14701 14702 2003-01-04 Havoc Pennington <hp (a] pobox.com> 14703 14704 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function 14705 (_dbus_poll): new function 14706 14707 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro 14708 copied from GLib 14709 14710 * bus/loop.c: initial code for the daemon main loop 14711 14712 2003-01-04 Havoc Pennington <hp (a] pobox.com> 14713 14714 * test/watch.c (error_handler): make it safe if the error handler 14715 is called multiple times (if we s/error handler/disconnect 14716 handler/ we should just guarantee it's called only once) 14717 14718 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the 14719 error handler on disconnect (it's quite possible we should 14720 just change the error handler to a "disconnect handler," I'm 14721 not sure we have any other meaningful errors) 14722 14723 * configure.in: check for getpwnam_r 14724 14725 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, 14726 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth 14727 mechanism as in SASL spec, using socket credentials 14728 14729 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function 14730 (_dbus_send_credentials_unix_socket): new function 14731 14732 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just 14733 dbus_accept() 14734 (_dbus_write): only check errno if <0 returned 14735 (_dbus_write_two): ditto 14736 14737 2003-01-02 Anders Carlsson <andersca (a] codefactory.se> 14738 14739 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), 14740 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), 14741 (_dbus_marshal_test): 14742 * dbus/dbus-marshal.h: 14743 Add _dbus_marshal_byte_array and rename _dbus_marshal_string 14744 to _dbus_marshal_utf8_string. Also fix some tests. 14745 14746 2002-12-28 Harri Porten <porten (a] kde.org> 14747 14748 * configure.in: added check for C++ compiler and a very cheesy 14749 check for the Qt integration 14750 14751 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled 14752 14753 * qt/Makefile.am: added 14754 14755 * qt/.cvsignore: added 14756 14757 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to 14758 latter, added #ifdef QT_THREAD_SUPPORT guard. 14759 14760 * dbus/Makefile.am: added missing headers for make dist 14761 14762 2002-12-28 Kristian Rietveld <kris (a] gtk.org> 14763 14764 * dbus/Makefile.am: fixup export-symbols-regex. 14765 14766 2002-12-27 Anders Carlsson <andersca (a] codefactory.se> 14767 14768 * acinclude.m4: Add this file and put the 14769 PKG_CHECK_MODULE macro in it. 14770 14771 2002-12-27 Anders Carlsson <andersca (a] codefactory.se> 14772 14773 * dbus/dbus-marshal.c: (_dbus_marshal_string), 14774 (_dbus_demarshal_double), (_dbus_demarshal_int32), 14775 (_dbus_demarshal_uint32), (_dbus_demarshal_string), 14776 (_dbus_marshal_test): 14777 Make the demarshalling routines align the pos argument. 14778 Add string marshalling tests and fix the obvious bugs 14779 discovered. 14780 14781 2002-12-26 Havoc Pennington <hp (a] pobox.com> 14782 14783 * dbus/dbus-auth.c: fixes fixes fixes 14784 14785 * dbus/dbus-transport-unix.c: wire up support for 14786 encoding/decoding data on the wire 14787 14788 * dbus/dbus-auth.c (_dbus_auth_encode_data) 14789 (_dbus_auth_decode_data): append to target string 14790 instead of nuking it. 14791 14792 2002-12-26 Havoc Pennington <hp (a] pobox.com> 14793 14794 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef 14795 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN, 14796 doh 14797 14798 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and 14799 avoid swap_bytes() overhead (ignoring possible assembly stuff for 14800 now). Main point is because I wanted unpack_uint32 to implement 14801 _dbus_verbose_bytes 14802 (_dbus_verbose_bytes): new function 14803 14804 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function 14805 14806 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add 14807 mechanism to handle a corrupt message stream 14808 (_dbus_message_loader_new): fix preallocation to only prealloc, 14809 not prelengthen 14810 14811 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function 14812 (_dbus_string_test): enhance tests for copy/move and fix the 14813 functions 14814 14815 * dbus/dbus-transport-unix.c: Hold references in more places to 14816 avoid reentrancy problems 14817 14818 * dbus/dbus-transport.c: ditto 14819 14820 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't 14821 leak reference count in no-message case 14822 14823 * test/watch.c (do_mainloop): handle adding/removing watches 14824 during iteration over the watches. Also, ref the connection/server 14825 stored on a watch, so we don't try to mangle a destroyed one. 14826 14827 * dbus/dbus-transport-unix.c (do_authentication): perform 14828 authentication 14829 14830 * dbus/dbus-auth.c (get_state): add a state 14831 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required 14832 (_dbus_auth_get_unused_bytes): append the unused bytes 14833 to the passed in string, rather than prepend 14834 14835 * dbus/dbus-transport.c (_dbus_transport_init_base): create 14836 the auth conversation DBusAuth 14837 14838 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd) 14839 (_dbus_transport_new_for_domain_socket): when creating a 14840 transport, pass in whether it's a client-side or server-side 14841 transport so we know which DBusAuth to create 14842 14843 2002-12-03 Havoc Pennington <hp (a] pobox.com> 14844 14845 * dbus/dbus-transport-unix.c (unix_finalize): finalize base 14846 _after_ finalizing the derived members 14847 (unix_connection_set): unref watch if we fail to add it 14848 14849 * dbus/dbus-connection.c (dbus_connection_unref): delete the 14850 transport first, so that the connection owned by the 14851 transport will be valid as the transport finalizes. 14852 14853 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch 14854 if necessary, and remove watches from the connection. 14855 14856 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment 14857 14858 2002-12-26 Anders Carlsson <andersca (a] codefactory.se> 14859 14860 * dbus/dbus-marshal.c: (_dbus_marshal_string), 14861 (_dbus_demarshal_double), (_dbus_demarshal_int32), 14862 (_dbus_demarshal_uint32), (_dbus_demarshal_string), 14863 (_dbus_marshal_test): 14864 * dbus/dbus-marshal.h: 14865 Add string marshal functions and have the demarshal functions 14866 return the new position. 14867 14868 2002-12-25 Havoc Pennington <hp (a] pobox.com> 14869 14870 * doc/dbus-sasl-profile.txt: docs on the authentication protocol, 14871 it is a simple protocol that just maps directly to SASL. 14872 14873 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol 14874 initial implementation, not actually used yet. 14875 14876 * dbus/dbus-string.c (_dbus_string_find): new function 14877 (_dbus_string_equal): new function 14878 (_dbus_string_base64_encode): new function 14879 (_dbus_string_base64_decode): new function 14880 14881 2002-12-25 Anders Carlsson <andersca (a] codefactory.se> 14882 14883 * dbus/Makefile.am: 14884 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double), 14885 (_dbus_marshal_int32), (_dbus_marshal_uint32), 14886 (_dbus_demarshal_double), (_dbus_demarshal_int32), 14887 (_dbus_demarshal_uint32), (_dbus_marshal_test): 14888 * dbus/dbus-marshal.h: 14889 * dbus/dbus-protocol.h: 14890 * dbus/dbus-test.c: (main): 14891 * dbus/dbus-test.h: 14892 Add un-optimized marshalling/demarshalling routines. 14893 14894 2002-12-25 Harri Porten <porten (a] kde.org> 14895 14896 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions 14897 14898 2002-12-24 Zack Rusin <zack (a] kde.org> 14899 14900 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus 14901 * qt/dbus-qt.h: skeleton with two sample implemenatation of the 14902 main loop stuff 14903 14904 2002-12-24 Havoc Pennington <hp (a] pobox.com> 14905 14906 * glib/dbus-gthread.c: fix include 14907 14908 * glib/dbus-glib.h: rename DBusMessageHandler for now. 14909 I think glib API needs to change, though, as you don't 14910 want to use DBusMessageFunction, you want to use the 14911 DBusMessageHandler object. Probably 14912 dbus_connection_open_with_g_main_loop() 14913 and dbus_connection_setup_g_main_loop() or something like that 14914 (but think of better names...) that just create a connection 14915 that has watch/timeout functions etc. already set up. 14916 14917 * dbus/dbus-connection.c 14918 (dbus_connection_send_message_with_reply): new function just to 14919 show how the message handler helps us deal with replies. 14920 14921 * dbus/dbus-list.c (_dbus_list_remove_last): new function 14922 14923 * dbus/dbus-string.c (_dbus_string_test): free a string that 14924 wasn't 14925 14926 * dbus/dbus-hash.c: use memory pools for the hash entries 14927 (rebuild_table): be more paranoid about overflow, and 14928 shrink table when we can 14929 (_dbus_hash_test): reduce number of sprintfs and write 14930 valid C89. Add tests for case where we grow and then 14931 shrink the hash table. 14932 14933 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools 14934 14935 * dbus/dbus-connection.c (dbus_connection_register_handler) 14936 (dbus_connection_unregister_handler): new functions 14937 14938 * dbus/dbus-message.c (dbus_message_get_name): new 14939 14940 * dbus/dbus-list.c: fix docs typo 14941 14942 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c: 14943 an object representing a handler for messages. 14944 14945 2002-12-16 Anders Carlsson <andersca (a] codefactory.se> 14946 14947 * glib/dbus-glib.h: 14948 * glib/dbus-gthread.c: (dbus_gthread_init): 14949 Don't use the gdbus prefix for public functions. 14950 14951 2002-12-16 Anders Carlsson <andersca (a] codefactory.se> 14952 14953 * Makefile.am: 14954 * configure.in: 14955 Add GLib checks and fixup .pc files 14956 14957 * glib/Makefile.am: 14958 * glib/dbus-glib.h: 14959 * glib/dbus-gmain.c: (gdbus_connection_prepare), 14960 (gdbus_connection_check), (gdbus_connection_dispatch), 14961 (gdbus_add_connection_watch), (gdbus_remove_connection_watch), 14962 (dbus_connection_gsource_new): 14963 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free), 14964 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init): 14965 * glib/test-dbus-glib.c: (message_handler), (main): 14966 Add GLib support. 14967 14968 2002-12-15 Harri Porten <porten (a] kde.org> 14969 14970 * autogen.sh: check for libtoolize before attempting to use it 14971 14972 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval 14973 struct. 14974 14975 * .cvsignore: ignore more stamp files 14976 14977 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error 14978 14979 * test/Makefile.am: added -I$(top_srcdir) to be able to compile 14980 without make install. 14981 14982 2002-12-15 Havoc Pennington <hp (a] pobox.com> 14983 14984 * dbus/dbus-threads.c: add thread stubs that a higher library 14985 layer can fill in. e.g. the GLib wrapper might fill them in with 14986 GThread stuff. We still need to use this thread API to 14987 thread-safe-ize the library. 14988 14989 2002-12-12 Havoc Pennington <hp (a] pobox.com> 14990 14991 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the 14992 below new interfaces and include fewer system headers. 14993 14994 * dbus/dbus-sysdeps.c (_dbus_read): new function 14995 (_dbus_write): new function 14996 (_dbus_write_two): new function 14997 (_dbus_connect_unix_socket): new function 14998 (_dbus_listen_unix_socket): new function 14999 15000 * dbus/dbus-message-internal.h: change interfaces to use 15001 DBusString 15002 15003 2002-12-11 Havoc Pennington <hp (a] pobox.com> 15004 15005 * dbus/dbus-types.h: add dbus_unichar 15006 15007 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv 15008 15009 * dbus/dbus-connection.c (dbus_connection_send_message): return 15010 TRUE on success 15011 15012 * dbus/dbus-transport.c: include dbus-watch.h 15013 15014 * dbus/dbus-connection.c: include dbus-message-internal.h 15015 15016 * HACKING: add file with coding guidelines stuff. 15017 15018 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string 15019 handling here, for security purposes (as in vsftpd). Not actually 15020 using this class yet. 15021 15022 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all 15023 system/libc usage here, as in vsftpd, for ease of auditing (and 15024 should also simplify portability). Haven't actually moved all the 15025 system/libc usage into here yet. 15026 15027 2002-11-25 Havoc Pennington <hp (a] pobox.com> 15028 15029 * dbus/dbus-internals.c (_dbus_verbose): fix to not 15030 always print the first verbose message. 15031 15032 2002-11-24 Havoc Pennington <hp (a] pobox.com> 15033 15034 * test/echo-client.c, test/echo-server.c: cheesy test 15035 clients. 15036 15037 * configure.in (AC_CHECK_FUNCS): check for writev 15038 15039 * dbus/dbus-message.c (_dbus_message_get_network_data): new 15040 function 15041 15042 * dbus/dbus-list.c (_dbus_list_foreach): new function 15043 15044 * dbus/dbus-internals.c (_dbus_verbose): new function 15045 15046 * dbus/dbus-server.c, dbus/dbus-server.h: public object 15047 representing a server that listens for connections. 15048 15049 * dbus/.cvsignore: create 15050 15051 * dbus/dbus-errors.h, dbus/dbus-errors.c: 15052 public API for reporting errors 15053 15054 * dbus/dbus-connection.h, dbus/dbus-connection.c: 15055 public object representing a connection that 15056 sends/receives messages. (Same object used for 15057 both client and server.) 15058 15059 * dbus/dbus-transport.h, dbus/dbus-transport.c: 15060 Basic abstraction for different kinds of stream 15061 that we might read/write messages from. 15062 15063 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15064 15065 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN 15066 _DBUS_INT_MAX 15067 15068 * dbus/dbus-test.c (main): add list test, and include 15069 dbus-test.h as intended 15070 15071 * dbus/dbus-hash.c (_dbus_hash_table_remove_string) 15072 (_dbus_hash_table_remove_int): return value indicates 15073 whether the entry existed to remove 15074 15075 * dbus/dbus-list.c: add linked list utility class, 15076 with docs and tests 15077 15078 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket 15079 array sometimes. 15080 15081 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15082 15083 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/ 15084 DBUS_END_DECLS to nothing, that should fix this once and for all 15085 15086 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES 15087 15088 * dbus/dbus-message.c, dbus/dbus-hash.c: 15089 add some missing @brief 15090 15091 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15092 15093 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS 15094 to avoid confusing Doxygen 15095 15096 * dbus/dbus-hash.c: @} not }@ 15097 15098 * dbus/dbus-message.c (struct DBusMessage): split out 15099 internals docs 15100 15101 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15102 15103 * configure.in: pile on more warning flags if using gcc 15104 15105 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have 15106 to document static functions 15107 15108 * configure.in: add summary to end of configure so it 15109 looks nice and attractive 15110 15111 * dbus/dbus-hash.c: finish implementation and write unit 15112 tests and docs 15113 15114 * configure.in: add --enable-tests to enable unit tests 15115 15116 * dbus/dbus-test.c: test program to run unit tests 15117 for all files in dbus/*, initially runs a test for 15118 dbus-hash.c 15119 15120 * dbus/dbus-internals.h: file to hold some internal utility stuff 15121 15122 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15123 15124 * dbus/dbus-hash.c: copy in Tcl hash table, not yet 15125 "ported" away from Tcl 15126 15127 * dbus/dbus-types.h: header for types such as dbus_bool_t 15128 15129 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15130 15131 * dbus/dbus.h: fixups for doc warnings 15132 15133 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up 15134 macros 15135 (QUIET): make it quiet so we can see warnings 15136 15137 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory 15138 15139 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15140 15141 * Makefile.am: include "Doxyfile" target in all-local 15142 15143 * configure.in: generate the Doxyfile 15144 15145 * Doxyfile.in: move Doxyfile here, so we can use 15146 configure to generate a Doxyfile with the right 15147 version number etc. 15148 15149 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15150 15151 * dbus/dbus-message.c: move inline docs into .c file 15152 15153 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api 15154 so all docs are under doc/ 15155 (MAN_EXTENSION): generate man pages. Use extension 15156 ".3dbus" which matches ".3qt" on my system, 15157 I guess this is OK, I don't know really. 15158 (FILE_PATTERNS): look for .c files not .h, makes sense 15159 for plain C I think 15160 15161 2002-11-22 Havoc Pennington <hp (a] pobox.com> 15162 15163 * Makefile.am (SUBDIRS): rename subdir "server" to "bus" 15164 because any app can be a server, and any app can be a client, 15165 the bus is a special kind of server. 15166 15167 Thu Nov 21 23:35:31 2002 Zack Rusin <zack (a] kde.org> 15168 15169 * Doxyfile : adding. Still needs Makefile rules to be generated 15170 automatically (just run "doxygen" in the toplevel dir for now to 15171 generate docs) 15172 15173 * dbus/dbus-message.h : Adding sample docs (javadoc since 15174 resembles gtk-doc a little more) 15175 15176 * dbus/dbus.h : Adding sample docs 15177 15178 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15179 15180 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION 15181 so we can allow ourselves to include files directly, 15182 instead of having to use dbus.h 15183 15184 * dbus/dbus.h: fill in 15185 15186 * dbus/dbus-message.h: sketch out a sample header file. 15187 Include griping if you include it directly instead of 15188 via dbus.h 15189 15190 * dbus/dbus-macros.h: new file with macros for extern "C", 15191 TRUE/FALSE, NULL, etc. 15192 15193 * doc/file-boilerplate.c: put include guards in here 15194 15195 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15196 15197 * doc/file-boilerplate.c: include both AFL and GPL boilerplate. 15198 15199 * COPYING: include the GPL as well, and license code 15200 under both AFL and GPL. 15201 15202 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15203 15204 * acconfig.h: get rid of this 15205 15206 * autogen.sh (run_configure): add --no-configure option 15207 15208 * configure.in: remove AC_ARG_PROGRAM to make 15209 autoconf complain less. add AC_PREREQ. 15210 add AC_DEFINE third arg. 15211 15212 2002-11-21 Anders Carlsson <andersca (a] codefactory.se> 15213 15214 * doc/Makefile.am: 15215 Fix references so we can distcheck. 15216 15217 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15218 15219 * Initial module creation 15220 15221