1 2006-12-12 John (J5) Palmieri <johnp (a] redhat.com> 2 3 * Released 1.0.2 4 5 2006-12-12 John (J5) Palmieri <johnp (a] redhat.com> 6 7 * bus/signal.c: Fix match_rule_equal errata 8 (CVE-2006-6107 - Patch from Kimmo Hmlinen 9 <kimmo.hamalainen (a] nokia.com>) 10 11 2006-11-19 Thiago Macieira <thiago (a] kde.org> 12 13 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock, 14 _dbus_pthread_condvar_wait, 15 _dbus_pthread_condvar_wait_timeout): set pmutex->holder to 16 pthread_self() after coming back from a conditional variable 17 wait as well as in one codepath where it was forgotten. 18 Approved by: Havoc Pennington. 19 20 2006-11-17 Havoc Pennington <hp (a] redhat.com> 21 22 * update-dbus-docs.sh: allow setting fd.org username via env 23 variable. Make it run autogen with --enable-xml-docs=yes 24 --enable-doxygen-docs=yes so configure will fail if the required 25 tools are missing. 26 27 2006-11-17 Havoc Pennington <hp (a] redhat.com> 28 29 * doc/dbus-faq.xml: minor FAQ tweaks 30 31 2006-11-17 John (J5) Palmieri <johnp (a] redhat.com> 32 33 * Released 1.0.1 34 35 2006-11-14 Havoc Pennington <hp (a] redhat.com> 36 37 * dbus/dbus-misc.c, dbus/dbus-misc.h: Move 38 dbus_get_local_machine_id() to its own file, no substantive 39 changes. There are a couple other things we might want to add that 40 are "misc" so moving out of dbus-connection.[hc] which is big 41 enough already. 42 43 2006-11-14 Havoc Pennington <hp (a] redhat.com> 44 45 * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the 46 UUID had the timestamp last, but the implementation had it first; 47 move it to last since I think it's a tiny bit nicer (easier to 48 compare at a glance, faster to sort, less code), and will not 49 cause any practical compatibility problems. Also, always convert 50 the timestamp to big endian. 51 52 * doc/dbus-specification.xml: Clean up the docs on the UUID. 53 54 * tools/dbus-uuidgen.1: more prominently say it is not suitable 55 as a replacement for regular uuidgen/RFC4122. 56 57 2006-11-14 John (J5) Palmieri <johnp (a] redhat.com> 58 59 * configure.in: Bump version to 1.0.1 for next stable release 60 61 * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have 62 the correct value so we don't assert when initalizing recursive threads 63 64 * test/name-test/test-thread-init.c: call dbus_threads_init_default 65 instead of _dbus_threads_init_debug since it is more of a real world 66 test 67 68 2006-11-09 John (J5) Palmieri <johnp (a] redhat.com> 69 70 * Released 1.0.0 71 72 2006-11-09 John (J5) Palmieri <johnp (a] redhat.com> 73 74 * AUTHORS: added Peter and Tor of windows porting fame 75 76 2006-11-08 Havoc Pennington <hp (a] redhat.com> 77 78 * doc/dbus-specification.xml: add a note about protocol stability 79 80 * doc/TODO: Remove "important for 1.0" section, replace with 81 "important for 1.2" section 82 83 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 84 85 * README: remove some of the out of date flags 86 87 * doc/TODO: Remove todo items which are done 88 89 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 90 91 * tools/dbus-monitor.c: Handle sigint so we flush stdout 92 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>) 93 94 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 95 96 * tools/dbus-monitor.1: update the manpage for dbus-monitor 97 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>) 98 99 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 100 101 * AUTHORS: Update with all people listed in the ChangeLog 102 103 2006-11-08 John (J5) Palmieri <johnp (a] redhat.com> 104 105 * tools/dbus-monitor.c: add profiling tools to dbus-monitor 106 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>) 107 108 2006-11-07 Havoc Pennington <hp (a] redhat.com> 109 110 * HACKING: Update release instructions to include stuff about 111 stable releases, branching, etc. May not be totally correct, 112 please fix if needed, but keep instructions up-to-date so we do 113 each stable release consistently in the future. 114 115 2006-11-07 Havoc Pennington <hp (a] redhat.com> 116 117 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various 118 documentation updates. Bump faq/spec versions (not to 1.0; I don't 119 think the spec will be "finished"/1.0 when we ship the 1.0 library). 120 121 2006-11-06 John (J5) Palmieri <johnp (a] redhat.com> 122 123 * bus/bus.c: Missed patch - pass in the context to the directory watch 124 125 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 126 127 * Released D-Bus 1.0 RC 3(0.95) 128 129 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 130 131 * bus/activation.c (bus_activation_new): don't fail if we can not read 132 the directory as it may not exist 133 134 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 135 136 * bus/config-parser.c (service_dirs_find_dir): use 137 _dbus_list_get_next_link so we don't get stuck in an infinite loop 138 (start_busconfig_child): move processing of standard_session_servicedirs 139 tags here because they have no content 140 (bus_config_parser_content): check we don't have content in 141 standard_session_servicedirs tag 142 143 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 144 145 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created 146 Packagers need to own this directory 147 148 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 149 150 * tools/run-with-tmp-session-bus.sh: fixed script to replace the 151 <standard_session_servicedirs> tag with a <sevicedir> tag that 152 points to the test service directory 153 154 2006-11-02 John (J5) Palmieri <johnp (a] redhat.com> 155 156 * configure.in: Add a check for DIR *dirp->dd_fd 157 158 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 159 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care 160 of both Solaris and Irix 161 162 2006-11-01 Havoc Pennington <hp (a] redhat.com> 163 164 * bus/dbus-daemon.1.in: document standard_session_servicedirs 165 166 2006-11-01 John (J5) Palmieri <johnp (a] redhat.com> 167 168 * configure.in: expose DBUS_DATADIR 169 170 * bus/config-parser.c: add the standard_session_servicedirs element 171 to the parser 172 (bus_config_parser_content): process the standard_session_servicedirs 173 element by getting the standard directories from sysdeps and merging 174 them into the service directory list 175 (test_default_session_servicedirs): make sure we get what we expect 176 177 * bus/session.conf.in: replace the servicedir tag with the 178 standard_session_servicedirs tag 179 180 * dbus/dbus-list.h: remove the typedef of DBusList and place it in 181 dbus-sysdeps.h to avoid circular header dependencies 182 183 * dbus/dbus-sysdeps.h: add the typedef of DBusList 184 185 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function 186 which takes a string of directories delimited by colons, parses them 187 out, appends a suffix and puts them in a list ignoring empty elements 188 (_dbus_get_standard_session_servicedirs): returns the standard 189 directories for a session bus to look for service activation files 190 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 191 DBUS_DATADIR directories 192 193 * test/data/valid-config-files/many-rules.conf: add the 194 standard_session_servicedirs tag to the valid config file tests 195 196 2006-10-30 Havoc Pennington <hp (a] redhat.com> 197 198 * tools/dbus-launch.1, doc/TODO: capture intent to change the 199 command line options of dbus-launch a bit post 1.0 200 201 2006-10-27 Havoc Pennington <hp (a] redhat.com> 202 203 * dbus/dbus-connection.c (dbus_connection_open_private): document 204 how to choose shared vs. private connections 205 206 2006-10-27 Havoc Pennington <hp (a] redhat.com> 207 208 * dbus/dbus-test.c: enclose more of the file in the 209 DBUS_BUILD_TESTS check. 210 211 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for 212 DBUS_DISABLE_ASSERT case. 213 214 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document 215 that it only works on the server side 216 217 * dbus/dbus-bus.c: add a global lock covering the BusData we 218 attach to each connection 219 (internal_bus_get): lock our access to the BusData 220 (dbus_bus_register): lock the entire registration process 221 with _DBUS_LOCK(bus_datas). If we get the lock and 222 registration is already complete, silently return (vs. previous 223 behavior of aborting). 224 (dbus_bus_set_unique_name): lock the BusData 225 (dbus_bus_get_unique_name): lock the BusData 226 227 2006-10-27 John (J5) Palmieri <johnp (a] redhat.com> 228 229 * bus/config-parser.c (service_dirs_find_dir, 230 service_dirs_append_unique_or_free, 231 service_dirs_append_link_unique_or_free): New static methods 232 for only appending unique service directory names into 233 the service directory list 234 (merge_included, bus_config_parser_content): Only add unique 235 service directory names into the list 236 237 2006-10-27 Havoc Pennington <hp (a] redhat.com> 238 239 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder" 240 variables volatile, suggested by Thiago. Document struct fields. 241 (PTHREAD_CHECK): remove pthread error checking if assertions are 242 disabled, should reduce the no-assertions case to the bare 243 minimum code. 244 245 2006-10-26 Havoc Pennington <hp (a] redhat.com> 246 247 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change 248 to be recursive 249 (_dbus_pthread_mutex_unlock): make it recursive 250 (_dbus_pthread_condvar_wait): save/restore the recursion count 251 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count 252 253 2006-10-26 Havoc Pennington <hp (a] redhat.com> 254 255 * doc/dbus-specification.xml: clarify the UUID text slightly 256 257 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on 258 pthread errors. Add DBusMutexPThread and DBusCondVarPThread 259 in preparation for being able to extend them for e.g. recursive 260 mutexes. 261 262 2006-10-26 Havoc Pennington <hp (a] redhat.com> 263 264 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 265 condition variables relate to recursive mutexes. 266 267 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 268 dbus/dbus-threads.c: Split the platforms-specific thread 269 implementations into their own files. 270 271 * dbus/dbus-sysdeps-pthread.c 272 (_dbus_pthread_condvar_wait_timeout): invert the return value, it 273 was backward. Not that anything uses it. 274 275 2006-10-26 John (J5) Palmieri <johnp (a] redhat.com> 276 277 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the 278 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This 279 needs to be cleaned up more. 280 281 * doc/TODO: Add a todo that *BSD hackers should look at cleaning 282 up the CREDS issue. 283 284 2006-10-26 John (J5) Palmieri <johnp (a] redhat.com> 285 286 * configure.in, dbus-1.pc.in: Check to see if thread methods 287 are in glibc or libpthread and add -lpthread to the link stage 288 if it is the latter 289 290 2006-10-26 Thiago Macieira <thiago (a] kde.org> 291 292 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix 293 bug 8780: the connection lock is only required while recording 294 the shared connection, so protect only that code 295 section. Don't require connection_lookup_shared to return a 296 locked connection. 297 298 2006-10-26 Thiago Macieira <thiago (a] kde.org> 299 300 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): 301 check if get_machine_uuid() returns NULL before proceeding any 302 further: we can't init the X atoms or create a session file 303 name if there is no machine ID. 304 This solves a crash reported by some users if 305 --exit-with-session was used without --autolaunch=<machine-id> 306 307 2006-10-26 John (J5) Palmieri <johnp (a] redhat.com> 308 309 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir 310 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set 311 312 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY 313 before we run dbus-launch 314 315 * configure.in: define TEST_BUS_BINARY to be the full path to 316 dbus-daemon in the build root 317 318 2006-10-25 Sjoerd Simons <sjoerd (a] luon.net> 319 320 * dbus/Makefile.am: 321 * tools/Makefile.am: 322 * toos/dbus-uuidgen.1: 323 Move the machine-id file to /var/lib/dbus 324 325 2006-10-24 David Zeuthen <davidz (a] redhat.com> 326 327 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's 328 _dbus_assert (thread_init_generation != _dbus_current_generation) 329 not _dbus_assert (thread_init_generation == _dbus_current_generation) 330 331 2006-10-24 Thiago Macieira <thiago (a] kde.org> 332 333 * dbus/dbus-sysdeps.h: 334 * dbus/dbus-sysdeps-unix.c: Add function 335 _dbus_make_file_world_readable that chmods a file to 0644. 336 337 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): 338 Avoid writing to the static "argv" array, thereby avoiding a 339 COW on the child process. 340 341 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively): 342 call _dbus_make_file_world_readable on the created file. 343 344 2006-10-23 David Zeuthen <davidz (a] redhat.com> 345 346 * dbus/dbus-memory.c: Use atomic variable to protect 347 n_blocks_outstanding otherwise OOM will be reported using SMP on 348 some arches 349 350 * bus/dispatch.c: Add missing end of line characters 351 352 * bus/desktop-file.c (parse_section_start, parse_key_value) 353 (bus_desktop_file_load): Propertly handle OOM 354 355 * dbus/dbus-threads.c (init_uninitialized_locks): Check that 356 thread_init_generation equals _dbus_current_generation, not 0 357 358 2006-10-22 Havoc Pennington <hp (a] redhat.com> 359 360 * dbus/dbus-connection-internal.h: move prototype of 361 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so 362 it isn't in a public header and doesn't end up in the DBusBus 363 group in Doxygen 364 365 2006-10-21 Havoc Pennington <hp (a] redhat.com> 366 367 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in 368 the tarball if packagers want to run it 369 370 * cleanup-man-pages.sh: Add a script which munges all the internal 371 API man pages out of the Doxygen output. This reduces the size of 372 the installed man pages from 7 to 2 megs, and avoids 373 namespace-polluting pages. Right now (like Doxygen) this script 374 isn't in the build, it's something packagers can do manually. 375 376 2006-10-21 Havoc Pennington <hp (a] redhat.com> 377 378 * dbus/dbus-connection.h: don't include the watch/timeout 379 functions in connection section 380 381 2006-10-21 Havoc Pennington <hp (a] redhat.com> 382 383 * Documentation! Whee! Doxygen now 100% silent. If you make it 384 angry again, you will be punished. 385 386 2006-10-21 Havoc Pennington <hp (a] redhat.com> 387 388 * More documentation - all public API now documented according to 389 Doxygen 390 391 2006-10-21 Havoc Pennington <hp (a] redhat.com> 392 393 * Document a bunch of undocumented stuff 394 395 2006-10-21 Havoc Pennington <hp (a] redhat.com> 396 397 * Clean up Doxygen group markers for public API so Doxygen finds 398 everything (not comprehensively fixed for private API). 399 Means all remaining Doxygen warnings are just about missing docs 400 and thus pretty simple to resolve. 401 402 2006-10-21 Havoc Pennington <hp (a] redhat.com> 403 404 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro 405 406 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 407 as DBUS_GNUC_DEPRECATED 408 409 2006-10-21 Havoc Pennington <hp (a] redhat.com> 410 411 * Move all private API into the private Doxygen group sections of 412 the files, so they don't show up in the public API docs 413 414 2006-10-21 Havoc Pennington <hp (a] redhat.com> 415 416 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 417 dbus_message_iter_get_array_len(). 418 419 * throughout: documentation improvements. 420 421 2006-10-20 Havoc Pennington <hp (a] redhat.com> 422 423 * doc/TODO: remove the int64 thing from 1.0 since it doesn't 424 matter, and the message-loader-breaker thing since nobody is going 425 to do it. Add an item to 1.0 about supporting recursive locks 426 in dbus_threads_init_default() though, since it should be easy. 427 428 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch): 429 Fix this in the !dispatch case to avoid busy-looping after 430 disconnection 431 432 * More misc docs improvements 433 434 2006-10-19 Havoc Pennington <hp (a] redhat.com> 435 436 * more Doxygen-related fixes (lots of moving things from the 437 public to internal section in dbus-connection.c) 438 439 2006-10-19 Havoc Pennington <hp (a] redhat.com> 440 441 * Fix a pile of Doxygen warnings and missing docs 442 443 2006-10-19 John (J5) Palmieri <johnp (a] redhat.com> 444 445 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 446 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 447 instead of a void *. kqueue uses this to get the context's loop 448 while the other modules ignore the parameter. This allows us to 449 avoid platform conditionals 450 451 * bus/bus.c (process_config_postinit): Pass in the context to the 452 watch 453 454 2006-10-19 John (J5) Palmieri <johnp (a] redhat.com> 455 456 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure 457 when starting the system bus 458 459 2006-10-18 John (J5) Palmieri <johnp (a] redhat.com> 460 461 * configure.in: More fixups for cross compile (Patch from 462 Marco Pracucci <development at pracucci dot com>) 463 464 2006-10-17 Havoc Pennington <hp (a] redhat.com> 465 466 * tools/dbus-send.c (main): don't close shared connection, fix 467 from Timo Hoenig 468 469 2006-10-17 Havoc Pennington <hp (a] redhat.com> 470 471 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here 472 473 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement, 474 since realistically it doesn't look like we'll be changing it 475 anymore. 476 477 2006-10-17 Havoc Pennington <hp (a] redhat.com> 478 479 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to 480 be used for return_if_fail type warnings; prefixes the pid, and 481 fatal by default. 482 483 2006-10-14 John (J5) Palmieri <johnp (a] redhat.com> 484 485 * configure.in: Released 1.0 RC 2(0.94) 486 Add check for -fPIC and enable it if available 487 488 2006-10-14 John (J5) Palmieri <johnp (a] redhat.com> 489 490 * doc/TODO: Remove the check TODO item 491 492 2006-10-13 John (J5) Palmieri <johnp (a] redhat.com> 493 494 * dbus-transport-socket.c (exchange_credentials): 495 Print out more detailed errors if reading or sending 496 credentials fail (Patch from Julio M. Merino Vidal 497 <jmmv at NetBSD dot org>) 498 499 2006-10-13 John (J5) Palmieri <johnp (a] redhat.com> 500 501 * configure.in: when checking for posix getpwnam_r assume true 502 for cross compiles 503 504 2006-10-13 John (J5) Palmieri <johnp (a] redhat.com> 505 506 * configure.in: Check for gethostbyname first before we check for it 507 in libnsl. On gnu systems it is implemeneted 508 509 2006-10-13 Havoc Pennington <hp (a] redhat.com> 510 511 * dbus/dbus-connection.c 512 (dbus_connection_send_with_reply_and_block): fix to handle closed 513 connections, from Tambet Ingo bug #8631 514 515 2006-10-11 John (J5) Palmieri <johnp (a] redhat.com> 516 517 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN 518 519 2006-10-11 John (J5) Palmieri <johnp (a] redhat.com> 520 521 * test/name-test/Makefile.am: don't link against both libdbus and 522 libdbus-convenience 523 524 2006-10-11 John (J5) Palmieri <johnp (a] redhat.com> 525 526 * configure.in: check for dirfd even if it is a macro 527 (Patch from Timothy Redaelli <drizzt at gufi dot org>) 528 529 2006-10-08 John (J5) Palmieri <johnp (a] redhat.com> 530 531 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris 532 avoid using dirfd on systems that don't have dirfd 533 (Patch by Brian Cameron <brian dot cameron at sun dot com>) 534 535 2006-10-02 John (J5) Palmieir <johnp (a] redhat.com> 536 537 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 538 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck 539 540 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from 541 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS) 542 macro because _dbus_abort calls it 543 544 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck 545 works 546 547 2006-10-02 John (J5) Palmieir <johnp (a] redhat.com> 548 549 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for 550 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>) 551 552 2006-10-02 Thiago Macieira <thiago (a] kde.org> 553 554 * tools/dbus-launch.c (main): make it complain and abort 555 execution in case an unknown option is given. Also, process 556 the '--' argument as the end of arguments. 557 558 2006-10-01 Havoc Pennington <hp (a] redhat.com> 559 560 * tools/dbus-launch.c (print_variables): if no syntax is given, 561 don't print something that's sort-of-half-sh-syntax, just print 562 a plain key-value pairs thing. 563 564 * tools/dbus-launch-x11.c: use machine ID rather than hostname for 565 the local machine representation (but still have the hostname in 566 the display). Remove the hostname from the display if it is 567 localhost. Change session files to be named 568 ~/.dbus/session-bus/machine-display. Change X atoms to be 569 underscore-prefixed so nobody whines about ICCCM compliance. 570 Otherwise name them the same as the env variables. 571 Change session file format to include key-value pairs and an 572 explanatory comment. Keys are the same as the env variables. 573 (set_address_in_x11): X property format can't depend on 574 sizeof(pid_t) on a particular machine, fix to always be 32 bits 575 576 * tools/dbus-launch.c: make --autolaunch take a machine id 577 argument. If --autolaunch is used with a program to run, complain 578 for now (but add a FIXME). Also, don't look for existing bus if 579 there's a program to run (but add a FIXME). 580 581 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass 582 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus 583 just to get this, and avoids duplicating uuid-reading code). 584 585 * tools/dbus-launch.1: clarify various things 586 587 2006-10-01 Havoc Pennington <hp (a] redhat.com> 588 589 * test/test-service.c (path_message_func): remove broken extra 590 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c 591 592 * test/test-shell-service.c (path_message_func): same fix 593 594 * dbus/dbus-connection.c 595 (_dbus_connection_get_dispatch_status_unlocked): break up the 596 function a little for clarity and fix the notification of 597 dbus-bus.c to not require dispatch to be complete 598 599 * dbus/dbus-connection.c (dbus_connection_unref): improve the 600 warning when you try to finalize an open connection. 601 602 2006-10-01 Havoc Pennington <hp (a] redhat.com> 603 604 * dbus/dbus-bus.c 605 (internal_bus_get): only weak ref the connection; this means 606 _dbus_bus_notify_shared_connection_disconnected_unlocked can be 607 called safely in any context 608 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't 609 unref 610 611 * dbus/dbus-connection.c 612 (_dbus_connection_get_dispatch_status_unlocked): move 613 _dbus_bus_notify_shared_connection_disconnected_unlocked here 614 when queuing Disconnected instead of when the Disconnected message 615 arrives, so dbus_bus_get() won't return closed connections. 616 617 2006-10-01 Havoc Pennington <hp (a] redhat.com> 618 619 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 620 Add a hack to make DBusNewConnectionFunction work right. 621 622 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use 623 the hack here. Also, fix the todo about refcount leak. 624 625 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 626 and use the hack here 627 628 * dbus/dbus-connection.c: Kill the "shared" flag vs. the 629 "shareable" flag; this was completely broken, since it meant 630 dbus_connection_open() returned a connection of unknown 631 shared-ness. Now, we always hold a ref on anything opened 632 as shareable. 633 634 Move the call to notify dbus-bus.c into 635 connection_forget_shared_unlocked, so libdbus consistently forgets 636 all its knowledge of a connection at once. This exposed numerous 637 places where things were totally broken if we dropped a ref inside 638 get_dispatch_status_unlocked where 639 connection_forget_shared_unlocked was previously, so move 640 connection_forget_shared_unlocked into 641 _dbus_connection_update_dispatch_status_and_unlock. Also move the 642 exit_on_disconnect here. 643 644 (shared_connections_shutdown): this assumed weak refs to the 645 shared connections; since we have strong refs now, the assertion 646 was failing and stuff was left in the hash. Fix it to close 647 still-open shared connections. 648 649 * bus/dispatch.c: fixup to use dbus_connection_open_private on the 650 debug pipe connections 651 652 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify 653 dbus-bus.c if the closed connection is in fact shared 654 (_dbus_connection_close_possibly_shared): rename from 655 _dbus_connection_close_internal 656 (dbus_connection_close, dbus_connection_open, 657 dbus_connection_open_private): Improve docs to explain the deal 658 with when you should close or unref or both 659 660 * dbus/dbus-bus.c 661 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename 662 from _dbus_bus_check_connection_and_unref_unlocked and modify to 663 loop over all connections 664 665 * test/test-utils.c (test_connection_shutdown): don't try to close 666 shared connections. 667 668 * test/name-test/test-threads-init.c (main): fix warnings in here 669 670 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT 671 env variable to cause blocking waiting for gdb; drop 672 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 673 unconditionally. 674 675 * configure.in: add -export-dynamic to libtool flags if assertions enabled 676 so _dbus_print_backtrace works. 677 678 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf 679 instead of _dbus_verbose to print the backtrace, and diagnose lack 680 of -rdynamic/-export-dynamic 681 682 2006-09-30 Havoc Pennington <hp (a] redhat.com> 683 684 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 685 (internal_bus_get): fix screwy code formatting. whoever committed 686 that was not paying attention! 687 688 2006-09-30 Havoc Pennington <hp (a] redhat.com> 689 690 * configure.in (LT_CURRENT, LT_AGE): increment current and age to 691 reflect addition of interfaces. 692 693 * doc/dbus-specification.xml: describe a new 694 org.freedesktop.DBus.Peer.GetMachineId method 695 696 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function 697 (_dbus_string_skip_white, _dbus_string_skip_blank): use new 698 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion 699 at end of skip_white 700 (_dbus_string_chop_white): new function 701 702 * bus/connection.c (bus_connections_setup_connection): call 703 dbus_connection_set_route_peer_messages. 704 705 * dbus/dbus-connection.c 706 (_dbus_connection_peer_filter_unlocked_no_update): modify to 707 support a GetMachineId method. 708 709 Also, support a new flag to let the bus pass peer methods through 710 to apps on the bus, which can be set with 711 dbus_connection_set_route_peer_messages. 712 713 Finally, handle and return an error for anything unknown on the 714 Peer interface, which will allow us to extend the Peer interface 715 in the future without fear that we're now intercepting something 716 apps were wanting to see. 717 718 * tools/dbus-uuidgen.c: a thin wrapper around the functions in 719 dbus/dbus-uuidgen.c 720 721 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen 722 binary here, since most of the code is already in libdbus 723 724 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the 725 uuid from the system config file 726 727 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 728 (_dbus_read_uuid_file_without_creating) 729 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new 730 uuid-related functions, partly factored out from dbus-server.c 731 732 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to 733 DBUS_ERROR_FILE_EXISTS instead of EEXIST 734 735 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error 736 737 * tools/dbus-cleanup-sockets.1: explain what the point of this 738 thing is a bit more 739 740 * autogen.sh (run_configure): add --config-cache to default 741 configure args 742 743 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the 744 error set/clear assertions when DBUS_DISABLE_CHECKS is defined 745 746 * tools/dbus-launch.c (main): if xdisplay hasn't been opened, 747 don't try to save address, fixes crash in make check 748 749 2006-09-30 Thiago Macieira <thiago (a] kde.org> 750 751 * configure.in: add DBUS_BINDIR as a #define to C source code. 752 753 * tools/dbus-launch.c 754 * tools/dbus-launch.h 755 * tools/dbus-launch-x11.c: 756 * tools/dbus-launch.1: Add the --autolaunch option to 757 dbus-launch, which makes it scan for an existing session 758 started with --autolaunch. With that option, it also creates 759 an X11 window and saves the bus address and PID to it. 760 761 * dbus/dbus-sysdeps.h: 762 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add 763 a function that runs "dbus-launch --autolaunch" to retrieve 764 the running D-Bus session address (or start one if none was running) 765 766 * dbus/dbus-transport.c: Add the handler for the "autolaunch:" 767 address protocol, which tries to get the running session from 768 dbus-launch. 769 770 * dbus/dbus-bus.c: 771 * dbus/dbus-internals.h: Make "autolaunch:" be the default 772 D-Bus session bus address. 773 774 * dbus/dbus-connection.c: Fix horrible typo in error message. 775 776 2006-09-18 John (J5) Palmieri <johnp (a] redhat.com> 777 778 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@ 779 780 2006-09-17 Havoc Pennington <hp (a] redhat.com> 781 782 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): 783 fix so that if unix_user_function is set on windows, we still 784 do the default check that the auth identity matches the bus identity 785 786 2006-09-16 Havoc Pennington <hp (a] redhat.com> 787 788 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate 789 to _dbus_transport_open_platform_specific, 790 _dbus_transport_open_socket, 791 and _dbus_transport_open_debug_pipe 792 793 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific 794 795 2006-09-16 Havoc Pennington <hp (a] redhat.com> 796 797 Attempt auditing public API to remove all cases where a Unix 798 function returns weird emulated goo to Windows. This probably 799 breaks the bus daemon on Windows, to fix it again we may 800 need to stop processing unix-specific config options on Windows, 801 and may need to add Windows-specific public API or config options. 802 803 * configure.in (LT_CURRENT, LT_AGE): increment current and age, 804 to reflect added interfaces; should not break soname. 805 806 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do 807 not invoke unix user function on Windows. Kind of a hacky fix, but 808 we don't want a "unix uid" leaking out on Windows. 809 810 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API 811 to get the socket fd on Windows or UNIX 812 (dbus_connection_get_unix_fd): make this always fail on Windows 813 814 2006-09-16 Havoc Pennington <hp (a] redhat.com> 815 816 * dbus/dbus-server.c (dbus_server_listen): change how this works 817 to be able to delegate to a set of handlers that can succeed, 818 fail, or choose not to handle. Allows us to have 819 dbus_server_listen_platform_specific. 820 821 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket): 822 factor out the tcp socket stuff to be used on windows, leaving 823 unix domain socket only in dbus-socket-unix.c 824 825 * dbus/dbus-transport-socket.c 826 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket 827 stuff to be used on windows, leaving unix domain socket only 828 in dbus-transport-unix.c 829 830 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert 831 temporary hack to be sure this fails on windows 832 (dbus_connection_get_unix_process_id): ditto 833 834 2006-09-16 Havoc Pennington <hp (a] redhat.com> 835 836 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 837 (_dbus_open_unix_socket, _dbus_open_socket): change API for 838 _dbus_open_socket so the domain/type/protocol from system headers 839 are not required. This is kind of pointless though unless we move 840 part of _dbus_connect_tcp_socket into sysdeps.c instead of 841 sysdeps-unix.c, which would mean adding a wrapper around 842 bind/listen/etc. 843 Also, add DBusError to the socket-opening functions so they 844 don't require use of errno. 845 846 2006-09-16 Havoc Pennington <hp (a] redhat.com> 847 848 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make 849 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header. 850 851 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 852 Kmmel bug #8249 to make the sysdeps.h read/write/open/close 853 functions specifically for sockets only, and move generic 854 read/write/open/close into unix-specific code. 855 856 2006-09-14 Havoc Pennington <hp (a] redhat.com> 857 858 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind 859 complaint about accessing revents when poll returns 0, from Julian Seward. 860 861 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 862 863 * Released 1.0 RC 1 (0.93) 864 865 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 866 867 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file): 868 use _dbus_close instead of close 869 870 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 871 872 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket 873 credentials. Fixes "external" authentication under e.g. NetBSD 874 which does not support any other socket credentials mechanism. 875 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>) 876 877 2006-09-14 John (J5) Palmieri <johnp (a] redhat.com> 878 879 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into 880 dbus_threads_init and be used by the dbus mutex functions to 881 avoid deadlocks. 882 883 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item 884 885 2006-09-13 John (J5) Palmieri <johnp (a] redhat.com> 886 887 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file): 888 use threadsafe readdir_r instead of readdir 889 890 2006-09-13 John (J5) Palmieri <johnp (a] redhat.com> 891 892 * dbus-threads.c (dbus_threads_init_default): New method for 893 initializing the internal thread implementation (Patch from 894 Alexander Larsson <alexl at redhat dot com>) 895 896 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 897 898 * remove a bunch of todo items from the 1.0 list 899 900 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 901 902 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and 903 key not found 904 905 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 906 907 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more 908 complex debugging code 909 910 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move 911 between the test suite ifdefs 912 (_dbus_verbose_bytes): return if verbosity is not enabled 913 914 2006-09-11 John (J5) Palmieri <johnp (a] redhat.com> 915 916 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c: 917 remove DBusMark 918 919 2006-09-10 Havoc Pennington <hp (a] redhat.com> 920 921 patch mostly by Peter Kmmel, bug #8211 922 923 * dbus/dbus-sysdeps-unix.c: new file, which splits out 924 unix-specific stuff in dbus-sysdeps.c 925 926 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 927 and move unix-specific stuff to dbus-sysdeps-unix.c 928 929 * configure.in: check HAVE_ERRNO_H 930 931 2006-09-08 John (J5) Palmieri <johnp (a] redhat.com> 932 933 * bus/test-main.c (main): Initialize threading during tests 934 935 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 936 Unlock connection on error 937 (generate_local_error_message): static method for generating 938 an error message when we don't have a message to reply to 939 (_dbus_connection_block_pending_call): Send a disconnect error 940 instead of just a timeout (NULL) when the bus gets disconnected 941 while blocking for a reply. 942 943 2006-09-08 John (J5) Palmieri <johnp (a] redhat.com> 944 945 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove 946 filters (Patch from Kimmo Hmlinen 947 <kimmo dot hamalainen at nokia dot com>) 948 949 2006-09-07 John (J5) Palmieri <johnp (a] redhat.com> 950 951 * dbus/dbus-connection-internal.h: Add prototype for 952 _dbus_connection_test_get_locks to remove warning 953 954 2006-09-07 John (J5) Palmieri <johnp (a] redhat.com> 955 956 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we 957 close child_err_report_pipe[WRITE_END] on exec (Patch from 958 Kimmo Hmlinen <kimmo dot hamalainen at nokia dot com>) 959 960 2006-09-07 John (J5) Palmieri <johnp (a] redhat.com> 961 962 * Clean up close calls to use _dbus_close (Patch from 963 Kimmo Hmlinen <kimmo dot hamalainen at nokia dot com>) 964 965 2006-09-06 John (J5) Palmieri <johnp (a] redhat.com> 966 967 * doc/TODO: 968 - Remove pending call locking todo item 969 - dbus_connection_open now holds hard ref. Remove todo item 970 - do proper locking on _dbus_bus_check_connection_and_unref 971 and handle DBUS_BUS_STARTER. Remove todo item 972 - Warn on closing of a shared connection. Remove todo item 973 974 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c, 975 dbus/dbus-connection.c: Use the dbus_connection_close_internal 976 so we don't get the warning when closing shared connections 977 978 * test/test-service.c, test/test-shell-service.c: Applications 979 don't close shared connections themselves so we unref instead of 980 close 981 982 * test/test-utils.c (test_connection_shutdown): Close the connection 983 984 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to 985 _dbus_bus_check_connection_and_unref_unlocked since we only call this 986 method on a locked connection. 987 Make sure we call _dbus_connection_unref_unlocked instead of 988 dbus_connection_unref also. 989 Handle DBUS_BUS_STARTER correctly 990 991 * dbus/dbus-connection.c (connection_record_shared_unlocked): 992 Mark as shared and hard ref the connection 993 (connection_forget_shared_unlocked): Remove the hard ref from the 994 connection 995 (_dbus_connection_close_internal_and_unlock): New internal function 996 which takes a locked connection and unlocks it after closing it 997 (_dbus_connection_close_internal): New internal function which acts 998 like the origonal dbus_connection_close method by grabbing a connection 999 lock and calling _dbus_connection_close_internal_and_unlock 1000 (dbus_connection_close): Public close method, warns when the app 1001 trys to close a shared connection 1002 1003 2006-09-06 John (J5) Palmieri <johnp (a] redhat.com> 1004 1005 * bus/driver.c: 1006 (bus_driver_generate_introspect_string): New method for populating 1007 a DBusString with the introspect data 1008 (bus_driver_handle_introspect): Move introspect generation code to 1009 bus_driver_generate_introspect_string 1010 1011 * bus/main.c: 1012 (introspect): New function which prints out the intropect data and 1013 exits 1014 (main): Add a --introspect switch 1015 1016 2006-09-06 John (J5) Palmieri <johnp (a] redhat.com> 1017 1018 * doc/TODO: Removed dtd publishing item. 1019 It seems the dtd has already been added at 1020 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd 1021 1022 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1023 1024 * doc/TODO, various source files: Audited todo's and FIXME's and 1025 prepended the ones we should be looking at with 1.0. Those 1026 prepended with 1.0? need clerification or might not be needed 1027 for 1.0 1028 1029 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1030 1031 * dbus/dbus-pending-call.c: Add some checks so we don't crash on 1032 NULL in the public API (Patch from Kimmo Hmlinen 1033 <kimmo dot hamalainen at nokia dot com>) 1034 1035 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1036 1037 * configure.in: Fix for OS-X compile time endian issues (patch from 1038 Benjamin Reed <ranger at befunk dot com>) 1039 1040 2006-09-05 John (J5) Palmieri <johnp (a] redhat.com> 1041 1042 * configure.in: Check for no-common compiler flag (OS-X fix from 1043 Benjamin Reed <ranger at befunk dot com>) 1044 1045 2006-09-01 John (J5) Palmieri <johnp (a] redhat.com> 1046 1047 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat 1048 <fcrozat at mandriva dot com>) 1049 1050 2006-08-29 Havoc Pennington <hp (a] redhat.com> 1051 1052 * test/test-service.c (path_message_func): fix lack of return value 1053 1054 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix 1055 formatting, remove #ifdef, and fix docs. #ifdef doesn't make 1056 any more sense than on anything else in this file. 1057 (_dbus_get_tmpdir): add const to return value, and keep the 1058 results of the various getenv around in a static variable. 1059 1060 2006-08-29 Havoc Pennington <hp (a] redhat.com> 1061 1062 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change 1063 from Ralf Habacker to move UNIX-specific sysdeps into a separate file. 1064 1065 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1066 1067 * test/Makefile.am: change find to use syntax that works with non 1068 gnu versions of find 1069 1070 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1071 1072 * dbus/dbus-transport.c: fix invalid deref when checking if 1073 a vtable method exists (Patch from Christian Ehrlicher 1074 <ch dot ehrlicher at gmx dot de>) 1075 1076 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1077 1078 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 1079 test/name-test/Makefile.am: Fixed some issues with getting get dbus 1080 to build with builddir != srcdir (Taken from a patch by Bernard Leak 1081 <bernard at brenda-arkle dot demon dot co dot uk>) 1082 1083 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1084 1085 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the 1086 default case 1087 1088 2006-08-25 John (J5) Palmieri <johnp (a] redhat.com> 1089 1090 * configure.ac, bus/Makefile.am: Generalize kqueue support so that 1091 it works on any system providing this interface, not only FreeBSD. 1092 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>) 1093 1094 2006-08-20 Havoc Pennington <hp (a] redhat.com> 1095 1096 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to 1097 the docs 1098 1099 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1100 1101 * Released 0.92 1102 1103 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1104 1105 * dbus/dbus-threads.c (dbus_threads_init): change the documentation 1106 to reflect the init late change 1107 1108 * bus/bus.c (bus_context_new): Check user before we fork so we can 1109 print out an error message a user will be able to see 1110 1111 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1112 1113 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 1114 1115 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h: 1116 Add two more global locks for use on windows platforms. These are 1117 unused on non-windows platforms but are not ifdefed out to avoid 1118 potential bugs (i.e. the few bytes lost does not warrent the extra 1119 maintanence and complexity that having seperate sets of locks would 1120 cause) 1121 1122 2006-08-18 John (J5) Palmieri <johnp (a] redhat.com> 1123 1124 * bus/services.c (bus_registry_acquire_service): Return an error 1125 when an application tries to register the org.freedesktop.DBus Bus Name 1126 1127 * bus/services.c (bus_registry_release_service): Return an error 1128 when an application tries to release the org.freedesktop.DBus Bus Name 1129 1130 2006-08-17 Alp Toker <alp (a] atoker.com> 1131 1132 * doc/dbus-specification.xml: Fix some minor typos. 1133 1134 2006-08-17 John (J5) Palmieri <johnp (a] redhat.com> 1135 1136 * configure.in: use $with_init_scripts instead of $operating_system 1137 to determine where to store the pid since the init scripts manipulate 1138 the pid file (patch from Marcelo Ricardo Leitner 1139 <marcelo dot leitner at terra dot com dot br>. 1140 1141 2006-08-16 John (J5) Palmieri <johnp (a] redhat.com> 1142 1143 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and 1144 static DBusList *uninitialized_condvar_list to support new late 1145 initialization threading model. In this model threads can be initialized 1146 even after the D-Bus API has been used but still needs to be initialized 1147 before the second thread has been started. Mutexes and condvar addresses 1148 are stored in the two static lists and are replaced with actuall locks 1149 when threads are initalized. 1150 (_dbus_mutex_new_at_location): New method for creating a mutex and placing 1151 the location into the static list 1152 (_dbus_mutex_free_at_location): New method for removing a mutex location 1153 from the static list and freeing the mutex 1154 (_dbus_condvar_new_at_location): New method for creating a conditional 1155 variable and placing the location into the static list 1156 (_dbus_condvar_free_at_location): New method for removing a conditional 1157 variable location from the static list and freeing the conditional variable 1158 (init_uninitialized_locks): Atomic method which goes through the static 1159 lists of mutex and condvar location and updates them with actuall locks 1160 (init_global_locks): changed to init_locks 1161 1162 * dbus/dbus-connection.c: 1163 (_dbus_connection_test_get_locks): New method for tests to check connections 1164 (_dbus_connection_new_for_transport): Use the new at_location mutex and 1165 condvar API 1166 (dbus_connection_allocate_data_slot): Pass in the global lock address 1167 to _dbus_data_slot_allocator_alloc 1168 1169 * dbus/dbus-dataslot.c: 1170 (_dbus_data_slot_allocator_alloc): Use the address of the mutex 1171 instead of the mutex itself 1172 1173 * dbus/dbus-message.c: 1174 (dbus_message_allocate_data_slot): Pass in the global lock address 1175 to _dbus_data_slot_allocator_alloc 1176 1177 * dbus/dbus-pending-call.c: 1178 (dbus_pending_call_allocate_data_slot): Pass in the global lock address 1179 to _dbus_data_slot_allocator_alloc 1180 1181 * dbus/dbus-server.c: 1182 (_dbus_server_init_base): Use the new at_location mutex API 1183 (dbus_server_allocate_data_slot): Pass in the global lock address 1184 to _dbus_data_slot_allocator_alloc 1185 1186 * test/name-test/test-threads-init.c: New test case for late thread 1187 initialization 1188 1189 2006-08-14 John (J5) Palmieri <johnp (a] redhat.com> 1190 1191 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): 1192 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort 1193 causes compile problems when asserts are turned off 1194 Keeping _dbus_warn for printing out the message so even if 1195 asserts are turned off the user gets the messages that something is 1196 wrong 1197 1198 2006-08-14 John (J5) Palmieri <johnp (a] redhat.com> 1199 1200 Patches by Kjartan Maraas <kmaraas at gnome dot org> 1201 1202 * bus/services.c (bus_service_list_queued_owners): 1203 Add a pointer cast to fix compiler warning 1204 1205 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get): 1206 return a NULL instead of FALSE since the return type 1207 is not expecting a boolean 1208 1209 * dbus/dbus-marshal-basic.c (_dbus_marshal_test): 1210 Remove unused variable 1211 1212 * dbus/dbus-marshal-recursive-util.c (node_new): 1213 return a NULL instead of FALSE since the return type 1214 is not expecting a boolean 1215 1216 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 1217 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE 1218 because we are expecting a pointer not a boolean 1219 1220 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 1221 add void as the parameter so some compilers 1222 don't complain 1223 1224 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket, 1225 _dbus_transport_new_for_tcp_socket): 1226 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE 1227 because we are expecting a pointer not a boolean 1228 1229 * test/shell-test.c (test_command_line): 1230 cast the second argument to _dbus_list_append to avoid compiler 1231 warnings 1232 1233 * test/test-names.c (main): remove unused variable 1234 1235 * test/test-service.c (check_hello_from_self_reply): 1236 Initialize echo_message and echo_reply to NULL 1237 1238 * test/test-shell-service.c (handle_echo): 1239 Remove unused variable and cast the third parameter passed to 1240 dbus_connection_get_object_path_data to avoid compiler warrnings 1241 1242 * test/name-test/test-names.c (clear_message_queue): 1243 Remove unused function 1244 1245 * test/name-test/test-pending-call-dispatch.c: 1246 Fix format string in printf 1247 1248 1249 2006-08-14 John (J5) Palmieri <johnp (a] redhat.com> 1250 1251 * dbus/dbus-bus.c: 1252 * test/name-test/test-names.c: 1253 Remove test method dbus_bus_connection_get_unique_name because 1254 we already have public method dbus_bus_get_unique_name that 1255 does the exact same thing 1256 1257 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1258 1259 * dbus/dbus-signature.c: 1260 fix typos in Julio's previous patch which cause make check to fail 1261 1262 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1263 1264 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp. 1265 In any case it was wrong since this is a test checking to see if 1266 address parsing is correct. There was no need to get the true 1267 tmp directory. 1268 1269 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1270 1271 * dbus/dbus-macros.h: Revert the addition of stddef.h 1272 as we should not be adding it to library headers 1273 1274 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1275 1276 * dbus/dbus-signature.c: 1277 Fix the unit tests so that they work if assertions are not enabled. 1278 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>) 1279 1280 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1281 1282 * tools/run-with-tmp-session-bus.sh: 1283 * test/name-test/run-test.sh: 1284 Remove bashisms (patch from Julio M. Merino Vidal 1285 <jmmv at NetBSD dot org>) 1286 1287 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1288 1289 * configure.in: add a version (>= 2.6.0) check for libxml2 1290 1291 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1292 1293 * configure.in: make sure the compiler supports -Wfloat-equal 1294 1295 * bus/dir-watch-dnotify.c: move functional code after 1296 variable declerations (C99 fix) (patches from Jens Granseuer 1297 <jensgr at gmx dot net> 1298 1299 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1300 1301 * dbus/dbus-macros.h: 1302 add #include <stddef.h> so that Sun compilers don't complain about 1303 the defining NULL 1304 1305 2006-08-10 John (J5) Palmieri <johnp (a] redhat.com> 1306 1307 * dbus/dbus-sysdeps.c: 1308 * dbus/dbus-address.c: 1309 * bus/activation.c: 1310 * test/shell-test.c: 1311 don't hardcode tmp directory (patch from Dave Meikle 1312 <dmk at davemeikle dot co dot uk>) 1313 1314 2006-08-09 John (J5) Palmieri <johnp (a] redhat.com> 1315 1316 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): 1317 Change an assert to a detailed warning and abort. 1318 When allocator->lock != mutex it indicates that the user has failed 1319 to initalize threads before using the D-Bus library. This warning 1320 helps the user identify the issue and fix their app. 1321 1322 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1323 1324 These are all patches from Kjartan Maraas <kmaraas at gnome dot org> 1325 with cleanups of bugs found from Coverity reports: 1326 1327 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file): 1328 close the file on error to avoid a leak 1329 1330 * bus/expirelist.c (bus_expire_list_test): 1331 Check for NULL on dbus_new0 1332 1333 * bus/activation.c (update_directory): 1334 remove dead code 1335 1336 * bus/config-parser.c (merge_service_context_hash, start_selinux_child): 1337 Fix some leaks 1338 1339 * bus/bus.c (process_config_every_time): 1340 Fixed a leak 1341 1342 * bus/desktop-file.c (parse_key_value): 1343 Fixed leak 1344 1345 * bus/selinux.c (bus_selinux_id_table_insert): 1346 Fixed leak 1347 1348 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1349 1350 * dbus/dbus-object-tree.c (_dbus_object_subtree_new): 1351 remove dead code 1352 1353 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1354 1355 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of 1356 #!/bin/bash 1357 1358 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1359 1360 * Doxyfile.in: fix the INPUT line so we can generate docs 1361 when sourcedir != builddir (patch from Cygwin Ports maintainer 1362 <yselkowitz at users dot sourceforge dot net> 1363 1364 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1365 1366 * dbus/dbus-sysdeps.h: 1367 * dbus/dbus-sysdeps.c: 1368 * dbus/dbus-string.c: 1369 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with 1370 GLib's function which does the same thing 1371 1372 * configure.in: 1373 * bus/Makefile.am: 1374 * bus/dir-watch-default.c: 1375 * bus/dir-watch-dnotify.c: 1376 * bus/dir-watch-kqueue.c: 1377 Add kqueue directory watching for freebsd and split the directory 1378 watching code into seperate files per method/arch 1379 (patches from Timothy Redaelli <drizzt at gufi dotorg>) 1380 1381 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1382 1383 * configure.in: 1384 * tools/Makefile.am: 1385 * tools/dbus-launch.c: 1386 * bus/Makefile.am: 1387 allow --with-dbus-daemondir switch to be used to make the 1388 daemon install to a seperate bindir like /usr/libexec 1389 (patch from Brian Cameron <brian dot cameron at sun dot com) 1390 1391 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1392 1393 * bus/Makefile.am (install-data-hook): removed the slash after 1394 $(DESTDIR) so we don't get the double slash which does not work 1395 in windows (patch from Andras Porjesz 1396 <andras dot porjesz at siemens dot com>) 1397 1398 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1399 1400 * dbus/dbus-sysdeps.h: 1401 * dbus/dbus-sysdeps.c: 1402 add _dbus_printf_length (patch from Peter Kmmel 1403 <syntheticpp at gmx dot net>) 1404 1405 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1406 1407 * dbus/dbus-internals.c: unistd.h is not used 1408 (_dbus_verbose_real): only enable verbose printing 1409 if DBUS_VERBOSE environment var is set to '1' 1410 (patch from Peter Kmmel <syntheticpp at gmx dot net>) 1411 1412 2006-08-08 John (J5) Palmieri <johnp (a] redhat.com> 1413 1414 * configure.in: add a GCC flag check for -Wdeclaration-after-statement 1415 so we still compile on older gcc (patch from Frederic Peters 1416 <fpeters at 0d dot be> 1417 1418 2006-08-04 Havoc Pennington <hp (a] redhat.com> 1419 1420 * configure.in: add -Wdeclaration-after-statement 1421 1422 * dbus/dbus-connection.c: change all the pending call stuff to 1423 reflect the fact that pending call operations use the connection 1424 lock 1425 1426 * dbus/dbus-pending-call.c: add locking here 1427 1428 * dbus/dbus-errors.c (struct DBusRealError): don't make the name 1429 field const consistent with how message field is done 1430 1431 2006-08-03 John (J5) Palmieri <johnp (a] redhat.com> 1432 1433 * s/D-BUS/D-Bus/g 1434 1435 2006-08-03 John (J5) Palmieri <johnp (a] redhat.com> 1436 1437 * dbus/dbus-object-tree.c: Patch by Benjamin Otte 1438 <in7y118 at public.uni-hamburg dot de> - fix invalid 1439 read/write reported by valgrind 1440 1441 2006-07-24 John (J5) Palmieri <johnp (a] redhat.com> 1442 1443 * Released 0.91 1444 1445 2006-07-22 John (J5) Palmieri <johnp (a] redhat.com> 1446 1447 * dbus/dbus-connection.c: 1448 (_dbus_connection_attach_pending_call_unlocked): 1449 (connection_timeout_and_complete_all_pending_calls_unlocked): 1450 Make sure we set timeout_added on pending calls to FALSE when 1451 we remove the timeout from the connection 1452 1453 2006-07-21 John (J5) Palmieri <johnp (a] redhat.com> 1454 1455 * Removed some extra bindings stuff lingering around (thanks timo) 1456 * dbus-pendingcall.c (_dbus_pending_call_new): 1457 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion 1458 when we tried to take a lock on an already locked connection 1459 1460 2006-07-17 John (J5) Palmieri <johnp (a] redhat.com> 1461 1462 * Released 0.90 1463 1464 2006-07-17 Havoc Pennington <hp (a] redhat.com> 1465 1466 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit 1467 ints, reported by Owen Taylor 1468 1469 2006-07-17 John (J5) Palmieri <johnp (a] redhat.com> 1470 1471 * doc/TODO: 1472 * dbus/dbus-bus.c: 1473 * dbus-errors.c: 1474 * dbus/dbus-marshal-validate.c: 1475 Removed TODO items which were fixed or are no longer relevent 1476 1477 2006-07-17 John (J5) Palmieri <johnp (a] redhat.com> 1478 1479 * dbus-qt4-1.pc.in, dbus-sharp.pc.in: 1480 Remove stray files from the stripped bindings 1481 1482 2006-07-16 Havoc Pennington <hp (a] redhat.com> 1483 1484 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error): 1485 Improve the error message on reply timeout 1486 1487 2006-07-14 John (J5) Palmieri <johnp (a] redhat.com> 1488 1489 * Remove all bindings 1490 1491 2006-07-13 John (J5) Palmieri <johnp (a] redhat.com> 1492 1493 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE 1494 and set pending_reply out arg to NULL is connection is disconnected 1495 (connection_timeout_and_complete_all_pending_calls_unlocked): New 1496 static method for cleaning up pending calls on disconnect 1497 (_dbus_connection_get_dispatch_status_unlocked): If we have pending 1498 calls queued timeouts on disconnect 1499 1500 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection): 1501 Remove 1502 1503 2006-07-13 Carlos Garcia Campos <carlosgc (a] gnome.org> 1504 1505 * bus/activation.[ch] (bus_activation_list_services): new function to 1506 get the list of services that can be activated 1507 1508 * bus/dispatch.c: test coverage for the new bus method 1509 ListActivatableNames 1510 1511 * bus/driver.c: new bus method ListActivatableNames to get the list of 1512 services that can be activated 1513 1514 * doc/dbus-specification.xml: ListActivatableNames method documentation 1515 1516 2006-07-12 John (J5) Palmieri <johnp (a] redhat.com> 1517 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of 1518 source files 1519 1520 2006-07-12 John (J5) Palmieri <johnp (a] redhat.com> 1521 * dbus/dbus-message-factory.c: 1522 Fix index into an array (patch by Peter Kmmel <syntheticpp at gmx.net>) 1523 1524 2006-07-12 John (J5) Palmieri <johnp (a] redhat.com> 1525 * dbus/dbus-connection-internal.h: 1526 * dbus/dbus-connection.c: 1527 * file dbus/dbus-pending-call.c: 1528 * dbus/dbus-pending-call.h: 1529 Make DBusPendingCall an opaque type even to D-Bus internals 1530 1531 2006-07-07 John (J5) Palmieri <johnp (a] redhat.com> 1532 1533 * dbus/dbus-connection.h: remove connection_disconnect and replace with 1534 connection_close 1535 1536 * dbus/dbus-connection.c: include dbus-bus.h 1537 (_dbus_connection_read_write_dispatch): make static 1538 1539 2006-07-07 John (J5) Palmieri <johnp (a] redhat.com> 1540 1541 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated 1542 function 1543 (dbus_connection_dispatch): On disconnect unref any shared connections 1544 1545 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function 1546 for cleaning up shared connections on disconnect 1547 (internal_bus_get): get a hard refrence to shared connections when 1548 they are created 1549 1550 * doc/TODO: Remove items which are no longer relevent or have been fixed 1551 Split 1.0 todo items with a 0.90 freeze todo list 1552 1553 2006-06-14 Ross Burton <ross (a] openedhand.com> 1554 1555 * glib/dbus-gobject.c: 1556 Free a leaking GArray (surely not!) in dbus_g_method_return. 1557 1558 2006-06-14 Ross Burton <ross (a] openedhand.com> 1559 1560 * tools/Makefile.am: 1561 * tools/dbus-monitor.c: 1562 Don't use the GLib bindings in dbus-monitor (patch from Ralf 1563 Habacker). 1564 1565 2006-06-14 Ross Burton <ross (a] openedhand.com> 1566 1567 * tools/dbus-print-message.c: 1568 Also print the object path when outputting signals or method calls. 1569 1570 2006-06-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1571 1572 * qt/src/Makefile.am: install the qdbus.h header. 1573 This allows people to actually use the installed code. 1574 1575 2006-06-12 Ross Burton <ross (a] openedhand.com> 1576 1577 * glib/dbus-gproxy.c: 1578 Don't leak a GArray when firing signals (thank Rob Taylor for review). 1579 1580 2006-06-12 Thiago Macieira <thiago.macieira (a] trolltech.com> 1581 1582 * Released 0.62 1583 1584 2006-06-12 Thiago Macieira <thiago.macieira (a] trolltech.com> 1585 1586 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that 1587 break pedantic builds. Closes bug 6043 (patch approved by 1588 Havoc back in February). 1589 1590 2006-06-12 Thiago Macieira <thiago.macieira (a] trolltech.com> 1591 1592 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods 1593 that took a QDBusMessage parameter. 1594 * qt/src/qdbusbus.h: Add a default flag for RequestName. 1595 * qt/tools/dbus.cpp: Don't use automatic call because we might 1596 be calling an async method: request a reply. 1597 1598 2006-06-11 Thiago Macieira <thiago.macieira (a] trolltech.com> 1599 1600 * test/qt/*: Update the testcases, including testing the new 1601 functionality of sending null QByteArray and QString over the 1602 bus. Add new headertest test and restore the old 1603 qdbusxmlparser test. 1604 1605 2006-06-11 Thiago Macieira <thiago.macieira (a] trolltech.com> 1606 1607 * qt/tools/dbuscpp2xml.cpp: Compile on Windows. 1608 * qt/tools/dbusidl2cpp.cpp: Add missing newline. 1609 1610 * qt/examples/Makefile.am: 1611 * qt/examples/chat.h: Use UI-generated files with the ui_*.h 1612 form. 1613 1614 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and 1615 QByteArray() (nulls) over the bus. 1616 * qt/src/qdbusabstractinterface.cpp: Use the correct variable, 1617 the one that has the signature suffix stripped. 1618 * qt/src/qdbusreply.h: Make some methods const. 1619 1620 2006-06-09 Thiago Macieira <thiago.macieira (a] trolltech.com> 1621 1622 Patch from Timo Hoenig <thoenig (a] suse.de>. 1623 1624 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers 1625 required during build to EXTRA_DIST. 1626 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST. 1627 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS. 1628 * configure.in: Fix "make dist", take care that the Makefile for 1629 qt/dbus is being generated. 1630 1631 2006-06-07 John (J5) Palmieri <johnp (a] redhat.com> 1632 1633 * bus/bus.c: Fix eavesdropping on method calls 1634 1635 2006-06-07 John (J5) Palmieri <johnp (a] redhat.com> 1636 1637 * configure.in: 1638 * dbus/dbus-userdb-util.c: 1639 Add Solaris console owner patch from Artem Kachitchkine 1640 1641 2006-06-07 Thiago Macieira <thiago.macieira (a] trolltech.com> 1642 1643 * qt/Makfile.am: 1644 * qt/src/Makefile.am: Fix the EXTRA_DIST after the 1645 reorganisation. Thanks to Timo Hoenig for pointing this out. 1646 1647 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1648 1649 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every 1650 call to dbus_g_type_get_struct. 1651 1652 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1653 1654 * glib/dbus-gvalue-utils.c: Fix the failing test where static string 1655 pointers were put into a GPtrArray-based specialised collection, and 1656 then freed along with the array. GValues which you add into 1657 collections or maps which have the NOCOPY flag set are assumed to not 1658 belong to the caller, so rather than the existing pointer-stealing 1659 semantics, they are copied instead. Given that the main consumers of 1660 this abstraction are the bindings themselves, I don't think this is 1661 too bad, but others should watch their choice of take vs set_static. 1662 1663 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1664 1665 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value 1666 of g_slist_prepend not being used. Fixed copying of slist-based 1667 specialised collections, then wrote a test case and found that it was 1668 all broken. Went on to fix iterating and appending too. Good thing 1669 nobody uses this code yet. 1670 1671 2006-06-06 Robert McQueen <robot101 (a] debian.org> 1672 1673 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of 1674 the iterators use gvalue_take_ptrarray_value (the GValues themselves 1675 are discarded without unsetting, so it makes no difference whether 1676 we take or set_static). Remove cases for G_TYPE_POINTER because 1677 there really is nothing useful we can do with them in our 1678 specialised types - we *need* boxed copy/free functions at the very 1679 least. 1680 1681 2006-06-05 Thiago Macieira <thiago.macieira (a] trolltech.com> 1682 1683 * qt/dbus: Add directory. I had forgotten to add this 1684 yesterday after the move... 1685 1686 * qt/examples/Makefile.am: 1687 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp. 1688 1689 * qt/tools/Makefile.am: 1690 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp. 1691 Added feature to get and set properties. 1692 Added validation of service, object path and interface names. 1693 1694 * qt/tools/dbusidl2cpp.cpp: Two new features: 1695 1) Allow specifying both the header and the source file names, 1696 by separating them with a colon. 1697 2) Don't write an interface output if the -p switch wasn't 1698 given, but the -a was. 1699 1700 * qt/src/*: Fix usage of Iterators and ConstIterators. 1701 Fix shadowing of variables by other variables (-Wshadow). 1702 Fix keyword-cleanliness in headers. 1703 Fix ASCII-cast (QLatin1String, QLatin1Char). 1704 Fix validation of member names. 1705 Add extra checking of introspection data during XML parsing. 1706 Various bug fixes. 1707 1708 2006-06-04 Thiago Macieira <thiago.macieira (a] trolltech.com> 1709 1710 * dbus/Makefile.am: 1711 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into 1712 qt/dbus/qdbus.h now. 1713 1714 2006-06-04 Thiago Macieira <thiago.macieira (a] trolltech.com> 1715 1716 * configure.in: Make --disable-qt actually do 1717 something. Patch inspired by Zack Rusin. 1718 1719 2006-06-04 Thiago Macieira <thiago.macieira (a] trolltech.com> 1720 1721 * qt/: Update to Subversion r548032. 1722 This includes a big reorganisation of the files inside the 1723 subdir. 1724 1725 2006-05-30 Sjoerd Simons <sjoerd (a] luon.net> 1726 1727 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more 1728 clear: 1729 "Failed to connect to socket <host>:<port> <error>" instead of 1730 "Failed to connect to socket <host>: <error>:<port>" 1731 1732 * dbus/dbus-transport-unix.c: Fix crash when no host option is given 1733 for a tcp transport. 1734 1735 2006-05-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1736 1737 * qt/*: Update the QtDBus bindings up to revision 546310 in 1738 Subversion. 1739 This adds the dbuscpp2xml tool, that parses a C++ header and 1740 outputs a D-BUS Introspection XML. 1741 1742 2006-05-21 Havoc Pennington <hp (a] redhat.com> 1743 1744 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name 1745 is not NULL when it shouldn't be. Also a couple of possible fixes 1746 for #4637 though I don't understand why the bug happens, to be 1747 honest... also the object constructor has an assert name != NULL 1748 and the name is only currently NULL for peer-to-peer proxies that 1749 I don't think anyone uses? So it should be asserting. 1750 Anyway, for now at least see if we get an earlier assertion failure. 1751 1752 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for 1753 apparently broken code to be sure the tests fail and someone 1754 will fix them... 1755 1756 2006-05-07 Thiago Macieira <thiago.macieira (a] trolltech.com> 1757 1758 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists 1759 and arrays when they had a single element: has_next returns 1760 false, even before you read the element. So, instead, check 1761 the array length. 1762 1763 2006-05-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 1764 1765 * qt/qdbusmessage.cpp: 1766 * qt/qdbustypehelper_p.h: 1767 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when 1768 the list is a const-reference 1769 1770 2006-05-03 John (J5) Palmieri <johnp (a] redhat.com> 1771 1772 * Adding old doc patch that never got applied 1773 1774 * dbus/bus.c (dbus_bus_add_match): Add documentation 1775 1776 * doc/dbus-specification.xml: Add documentation for the match rules 1777 and the AddMatch and RemoveMatch methods 1778 1779 2006-05-02 Thiago Macieira <thiago.macieira (a] trolltech.com> 1780 1781 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct 1782 call (r535506) 1783 1784 * qt/dbusidl2cpp.cpp: 1785 * qt/qdbusabstractadaptor.cpp: 1786 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a 1787 sibling of the QDBusAbstractAdaptor objects instead of the 1788 parent. (r535848) 1789 1790 * qt/dbusidl2cpp.cpp: 1791 * qt/qdbusabstractinterface.cpp: 1792 * qt/qdbusabstractinterface.h: 1793 * qt/qdbusabstractinterface_p.h: 1794 * qt/qdbusinterface.cpp: Make properties in interfaces 1795 actually work. The code that was generated would not compile, 1796 due to moc calls to functions that did not exist. They now 1797 shall. (r536571) 1798 1799 2006-04-30 Thiago Macieira <thiago.macieira (a] trolltech.com> 1800 1801 * Makefile.am: 1802 * configure.in: 1803 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1. 1804 Thanks to Brad Hards for providing the patch 1805 1806 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1807 1808 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct 1809 call. (r535506) 1810 1811 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1812 1813 * qt/examples/dbus.cpp: Enhance error messages and use 1814 QDBusInterfacePtr. 1815 1816 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1817 1818 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr 1819 and disable the copy operators. (r533772, r534746) 1820 1821 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929) 1822 1823 * qt/qdbusabstractinterface.cpp: 1824 * qt/qdbusabstractinterface.h: Change the default call mode to 1825 not use the event loop. Add convenience call() methods that 1826 take a CallMode parameter. (r534042) 1827 1828 * qt/qdbusconnection.h: Change the default call mode to not 1829 use the event loop. (r534042) 1830 1831 * qt/qdbusinterface.cpp: 1832 * qt/qdbusinterface.h: Add a method to tell us if the 1833 interface is valid (since we don't return a null pointer 1834 anymore) (r534099) 1835 1836 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0 1837 (r534101) 1838 1839 * qt/qdbusinternalfilters.cpp: Decouple the introspection 1840 function in two so taht we get the chance to introspect 1841 without having a QDBusMessage (r534102) 1842 1843 * qt/qdbusbus.h: 1844 * qt/qdbusconnection.cpp: 1845 * qt/qdbusconnection_p.h: 1846 * qt/qdbusintegrator.cpp: Keep a list of our own names to 1847 avoid a round-trip to the server when attempting to introspect 1848 one of our own objects. Also make sure the filter functions 1849 match the empty interface as well. (r534108) 1850 Don't keep the connection names. Instead, trust the unique 1851 connection name (r534111) 1852 Remove event loop usage (r534112) 1853 1854 2006-04-29 Thiago Macieira <thiago.macieira (a] trolltech.com> 1855 1856 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by 1857 Brad Hards. 1858 1859 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1860 1861 * glib/dbus-gproxy.c: Fix properties so that they can be given in 1862 any order, making it easier for people who inherit from this 1863 object. 1864 1865 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1866 1867 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking 1868 of memory from within pointer arrays and lists. Fixes bug #6300. 1869 1870 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1871 1872 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in 1873 generating struct signatures. Fixes bug #6083. 1874 1875 2006-04-28 Robert McQueen <robot101 (a] debian.org> 1876 1877 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc 1878 to qdbusconnection_p.moc. 1879 1880 2006-04-24 John (J5) Palmieri <johnp (a] redhat.com> 1881 1882 * README, INSTALL: Doc fixes 1883 Patch from Brad Hards <bradh at frogmouth.net> 1884 1885 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1886 1887 * qt/examples/dbus.cpp: Use the new merged-interface mode for 1888 the dynamic meta object. No need to guess which interface to 1889 call. 1890 1891 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1892 1893 * qt/qdbusconnection_p.h: 1894 * qt/qdbusmetaobject.cpp: 1895 * qt/qdbusmetaobject_p.h: 1896 * qt/qdbusintegrator.cpp: Use the new merged-interface mode 1897 for the dynamic meta object. No need to guess which 1898 interface to call. 1899 * qt/qdbusabstractinterface_p.h: 1900 * qt/qdbusconnection.cpp: 1901 * qt/qdbusintegrator.cpp: 1902 * qt/qdbusinterface.cpp: 1903 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer. 1904 Add a QDBusRef that looks and behaves like DCOPRef. 1905 1906 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1907 1908 * dbus/dbus-connection.c: Interfaces are optional in method 1909 calls, so don't give up if the interface parameter is NULL. 1910 Patch reviewed by Havoc Pennington. 1911 1912 2006-04-23 Thiago Macieira <thiago.macieira (a] trolltech.com> 1913 1914 * qt/qdbusreply.h: Add default constructor and operator= 1915 (r532625) 1916 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach() 1917 in public headers (r532952) 1918 * qt/qdbusabstractinterface.cpp: 1919 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and 1920 make it the default (r532951) 1921 1922 2006-04-19 John (J5) Palmieri <johnp (a] redhat.com> 1923 1924 * dbus/dbus-connection.c: Fix asserts 1925 Patch from Tim Moloney <t.moloney at verizon.net> 1926 1927 2006-04-19 John (J5) Palmieri <johnp (a] redhat.com> 1928 1929 * mono/Connection.cs, mono/Message.cs: Check Target type 1930 Patch from Aaron Bockover (abockover at novell.com) 1931 1932 2006-04-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1933 1934 * INSTALL: fine-tune the requirements for the Qt4 binding. 1935 1936 2006-04-16 Daniel P. Berrange <dan (a] berrange.com> 1937 1938 * tools/dbus-print-message.c: Added support for printing of all 1939 remaining data types. Fixed logic for indentation of compound 1940 data types. 1941 1942 2006-04-15 Daniel P. Berrange <dan (a] berrange.com> 1943 1944 * INSTALL: fill out content of file providing DBus specific 1945 build installations, followed by generic Auto* INSTALL file 1946 content 1947 1948 2006-04-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1949 1950 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug. 1951 Patch by Stefan Eilers. (r529537) 1952 1953 2006-04-13 Thiago Macieira <thiago.macieira (a] trolltech.com> 1954 1955 * qt/qdbusinternalfilters.cpp: Don't show the parent's 1956 contents (r528208) 1957 1958 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1959 1960 * qt/Makefile.am: fix the dependency for 1961 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp, 1962 not in qdbusconnection.cpp. 1963 Thanks to Jakub Stachowski <stachowski (a] hypair.net> for 1964 spotting this. 1965 1966 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1967 1968 * qt/examples/listnames.cpp: 1969 * qt/examples/Makefile.am: Three ways to list the names on the 1970 bus. 1971 1972 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1973 1974 * test/qt/tst_hal.cpp: Remove the waiting, since it's not 1975 needed anymore. Requires Qt 4.1.3 to work properly. (r528148) 1976 1977 2006-04-10 Thiago Macieira <thiago.macieira (a] trolltech.com> 1978 1979 Merge from Subversion: 1980 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to 1981 something that exists (r526315) 1982 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable 1983 slots/signals (r526316) 1984 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and 1985 also return an unknown-method error if the parameters don't 1986 match for org.freedesktop.DBus.Properties. (r526842) 1987 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843) 1988 * qt/qdbusintegrator.cpp: Restore the proper order of 1989 delivery: don't make method returns be delivered on priority 1990 (r528150) 1991 1992 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 1993 1994 * configure.in qt/Makefile.am: add qt/examples 1995 * qt/examples: Add QtDBus example programs: 1996 - hello: Hello, World 1997 - ping: Simple method-calling program 1998 - pong: Simple object-exporting program (not using adaptors) 1999 - complexping: Interactive method-calling program 2000 (also gets and sets properties). 2001 - complexpong: Sample program exporting methods, signals and 2002 properties, using adaptors. 2003 - dbus: Simple implementation of a generic method-calling 2004 program, similar to 'dbus-send', but with semantics 2005 similar to 'dcop'. 2006 - chat: Simplistic chat program, implemented using signals 2007 and the system bus. Looks like IRC. 2008 2009 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2010 2011 * configure.in: Detect QtGui (necessary for one of the 2012 example programs). Note: this increases the minimum required 2013 version of Qt to 4.1.3. 2014 2015 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2016 2017 * test/qt/*: Sync with KDE Subversion revision 523647. 2018 Update the testcases to the new API. Remove testcases for 2019 classes that are no longer public or have been removed. 2020 2021 2006-03-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2022 2023 * qt/*: 2024 * dbus/qdbus.h: Sync with KDE Subversion revision 2025 523647. Hopefully, this will be the last of the 2026 source-incompatible changes. Documentation has been improved; 2027 support for QList<basic-types> has been added; QDBusObject is 2028 gone; QDBus(Abstract)Interface is now a QObject with 2029 auto-generated meta-object; QDBusIntrospection is marked 2030 private, since QMetaObject can be used now; lots of bugfixes. 2031 2032 2006-03-16 John (J5) Palmieri <johnp (a] redhat.com> 2033 2034 Patch from Milosz Derezynski <internalerror at gmail.com> 2035 2036 * configure.in: 2037 Output the service directory in the configure summary 2038 2039 * dbus-1.pc.in: 2040 Add session_bus_services_dir 2041 2042 2006-03-10 Ross Burton <ross (a] openedhand.com> 2043 2044 * tools/dbus-print-message.c: 2045 Add support for object paths and signatures. 2046 2047 2006-03-06 Sjoerd Simons <sjoerd (a] luon.net> 2048 2049 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on 2050 config reload. 2051 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group 2052 information caches 2053 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 2054 * dbus/dbus-hash.h: Add function to remove all entries from a hash table 2055 * dbus/dbus-userdb.c: (_dbus_user_database_flush): 2056 * dbus/dbus-userdb.h: Add function to flush all user/group information 2057 caches. 2058 2059 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2060 2061 * qt/dbusidl2cpp.cpp: 2062 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement 2063 for dcopidl2cpp, found in the KDE installations (or the more 2064 modern kalyptus): generate Qt4 C++ code for the input XML 2065 introspection. Currently no IDL parsing. 2066 2067 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2068 2069 * test/qt/*: Update the self-tests. 2070 2071 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2072 2073 * qt/*: 2074 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This 2075 represents the first feature-complete version of the Qt4 2076 bindings since I took ove maintainership. 2077 2078 2006-03-06 Thiago Macieira <thiago.macieira (a] trolltech.com> 2079 2080 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings 2081 dir. This is C++, so we can't use the DBus ones. 2082 2083 2006-03-02 John (J5) Palmieri <johnp (a] redhat.com> 2084 2085 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h 2086 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>) 2087 2088 2006-03-02 John (J5) Palmieri <johnp (a] redhat.com> 2089 2090 * dbus/dbus-connection.c: 2091 (_dbus_connection_block_pending_call): 2092 Check to see if our data has already been read off the connection 2093 by another blocking pending call before we block in poll. 2094 (check_for_reply_and_update_dispatch_unlocked): 2095 Code taken from _dbus_connection_block_pending_call - checks for 2096 an already read reply and updates the dispatch if there is one. 2097 2098 * test/name-test/test-pending-call-dispatch.c: 2099 New test for making sure we don't get stuck polling a 2100 dbus connection which has no data on the socket when 2101 blocking out of order on two or more pending calls. 2102 2103 2006-02-28 Thiago Macieira <thiago.macieira (a] trolltech.com> 2104 2105 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues: 2106 make/automake don't detect that we're talking about the same 2107 .lo file if I specify the full path to the source files. 2108 2109 2006-02-26 Havoc Pennington <hp (a] redhat.com> 2110 2111 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed 2112 2113 * dbus/dbus-bus.c (internal_bus_get): in the error message if the 2114 session bus variable is unset, suggest "man dbus-launch" and "man 2115 dbus-daemon" to figure out how to fix the problem 2116 2117 2006-02-25 Havoc Pennington <hp (a] redhat.com> 2118 2119 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone 2120 should make this thing use the new glib options parser 2121 2122 2006-02-25 Thiago Macieira <thiago.macieira (a] trolltech.com> 2123 2124 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the 2125 .lo files taking moc sources. 2126 2127 2006-02-25 Havoc Pennington <hp (a] redhat.com> 2128 2129 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h 2130 and install it as a public header 2131 2132 2006-02-24 John (J5) Palmieri <johnp (a] redhat.com> 2133 2134 * Released 0.61 2135 2136 2006-02-24 John (J5) Palmieri <johnp (a] redhat.com> 2137 2138 * proxies.py: Fix the callchain 2139 2140 2006-02-24 John (J5) Palmieri <johnp (a] redhat.com> 2141 2142 * patch from Sjoerd Simons <sjoerd at debian.org>: 2143 2144 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 2145 dbus/dbus-sysdeps.c 2146 2147 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't 2148 call _dbus_group_info_free_allocated which causes infinite loop, 2149 correctly call _dbus_group_info_free 2150 2151 2006-02-20 Thiago Macieira <thiago.macieira (a] trolltech.com> 2152 2153 * qt/qdbusinterface_p.h: 2154 * qt/qdbusinterface.cpp: Use the standard 2155 org.freedesktop.DBus.Method.NoReply annotation for the "async" 2156 calls instead of creating one for us. 2157 2158 * qt/qdbusconnection_p.h: 2159 * qt/qdbusintegrator.cpp: Remove debugging code. 2160 2161 * qt/qdbusintegrator.cpp: 2162 * qt/qdbusmessage.cpp: 2163 * qt/qdbusmessage_p.h: 2164 * qt/qdbusmessage.h: Change the behaviour of automatic 2165 reply-sending: now a reply is always sent, unless the caller 2166 didn't request one or if the user slot has already sent one. 2167 2168 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2169 2170 * configure.in: Patch from Debian packages by Sjoerd Simons 2171 <sjoerd (a] debian.org> to add --with-qt-moc and --with-qt3-moc 2172 arguments so it's possible to build both bindings in the 2173 same tree. 2174 2175 * qt/Makefile.am: Fix truncated value so that make dist works. 2176 2177 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2178 2179 * acinclude.m4, configure.in: Patch from Brad Hards 2180 <bradh (a] frogmouth.net> to avoid warnings from autoconf 1.9 by 2181 improving quoting, re-ordering a few checks, and a few other 2182 aesthetic tidy-ups. 2183 2184 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2185 2186 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): 2187 Patch from Rob Taylor <rob.taylor (a] collabora.co.uk> to correct a bogus 2188 assertion that the next element to read from the iter is fixed in 2189 size. This is not the case when you are at the end of the iter, 2190 because the next element type is INVALID. 2191 2192 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a 2193 a bogus assert which means that you may not initialise a 0-length 2194 string unless you provide a non-NULL pointer. This prevented 2195 you from marshalling messages containing zero-length arrays in 2196 some cases. 2197 2198 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch 2199 from Rob to correct bogus asserts when trying to demarshal an 2200 array and get_fixed_array got you 0 elements. Append nothing to 2201 the GArray in this case. 2202 2203 * test/glib/test-dbus-glib.c: Add a test case for round-tripping 2204 an empty array via the glib bindings. Without all of the above 2205 patches, this new test fails. 2206 2207 2006-02-16 Robert McQueen <robot101 (a] debian.org> 2208 2209 * glib/dbus-gmain.c: Make the previous commit compile. 2210 2211 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre 2212 Ravnaas <ole.andre.ravnaas (a] collabora.co.uk> to allow you to 2213 specify sender_keyword="foo", path_keyword="bar" when adding 2214 a signal listener, so that you can bind to signals generically 2215 but still do something useful in your callback. 2216 2217 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned 2218 chars so that they're not cast to chars and made negative. Thanks 2219 to Jakub Stachowski for reporting this and testing the fix. 2220 2221 2006-02-15 John (J5) Palmieri <johnp (a] redhat.com> 2222 2223 * dbus/dbus-glib.h: 2224 * glib/dbus-gmain.h: 2225 (dbus_g_connection_open): new method for openning 2226 a connection to an arbitrary address in the glib bindings 2227 2228 * ChangeLog: checkin last entry which doesn't seem to be commited 2229 2230 2006-02-13 John (J5) Palmieri <johnp (a] redhat.com> 2231 2232 * tools/dbus-launch.c: Fixed sh syntax output 2233 2234 2006-02-13 Robert McQueen <robot101 (a] debian.org> 2235 2236 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c, 2237 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c, 2238 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c, 2239 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c: 2240 Patch from Rob Taylor <rob.taylor (a] collabora.co.uk> to add a big 2241 missing piece of the glib bindings jigsaw puzzle. This modifies 2242 the existing specialised types to have N type parameters (rather 2243 than the current 1 or 2 for arrays and dictionaries respectively). 2244 You can then use this to get a glib type to represent any arbitrary 2245 D-Bus struct type using dbus_g_type_get_struct. The only 2246 implementation of these types is with GValueArrays as before, 2247 but it's now possible to store these in arrays, emit them in 2248 signals, etc. 2249 2250 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2251 2252 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly 2253 deal with nested arrays (Bug #5823) Patch by Thiago Macieira 2254 <thiago.macieira at trolltech.com> 2255 2256 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2257 2258 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc 2259 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org> 2260 2261 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2262 2263 * bus/connection.c (bus_connections_expect_reply): Make 2264 pending reply limit not common to all connections (Bug #5416) 2265 Patch from Kimmo Hmlinen <kimmo.hamalainen at nokia.com> 2266 2267 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2268 2269 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720) 2270 2271 2006-02-10 John (J5) Palmieri <johnp (a] redhat.com> 2272 2273 * gcj/Makefile.am: point to correct jar command (Bug #4529) 2274 patch from Doug Goldstein <cardoe at gentoo.org> 2275 2276 2006-02-09 Joe Shaw <joeshaw (a] novell.com> 2277 2278 * mono/Arguments.cs: Fix a magic number in the mono bindings 2279 that doesn't work on 64 bit arches. Patch from Peter Johanson. 2280 2281 2006-01-27 Robert McQueen <robot101 (a] debian.org> 2282 2283 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's 2284 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol 2285 when generating the client-side methods, instead of overloading 2286 CSymbol which broke everything horribly. My apologies. 2287 2288 2006-01-27 Robert McQueen <robot101 (a] debian.org> 2289 2290 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch 2291 by me and Rob Taylor to add a simple_free function to D-Bus map 2292 and collection types, which allows those types which can be freed 2293 with a GDestroyNotify (such as GHashTables and GArrays, but not 2294 GPtrArrays) to be stored as the values in hashtables. 2295 2296 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}: 2297 Patch by Rob Taylor to add nested dicts to the glib tests to check 2298 the above code works, and appears not to leak when called repeatedly. 2299 2300 2006-01-27 Robert McQueen <robot101 (a] debian.org> 2301 2302 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor 2303 to free a D-Bus allocated string with dbus_free () instead of 2304 g_free (). 2305 2306 2006-01-27 Iain Holmes <iain (a] openedhand.com> 2307 2308 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose 2309 method from being called multiple times. 2310 2311 2006-01-19 Robert McQueen <robot101 (a] debian.org> 2312 2313 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor 2314 <rob.taylor (a] collabora.co.uk> to add support for generating bindings 2315 to arrays that are represented as GPtrArrays rather than GArrays (ie 2316 size-variable things, such as strings, objects, structs, etc). 2317 2318 2006-01-05 Robert McQueen <robot101 (a] debian.org> 2319 2320 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki 2321 <ricardo.kekki (a] movial.fi> to make it possible to inherit from 2322 DBusGProxy, by splitting the DBusGProxy struct into a public part and 2323 a private part, and moving the setting of the DBusGProxyManager into a 2324 connection property, allowing proper GObject construction. 2325 2326 2006-01-05 Robert McQueen <robot101 (a] debian.org> 2327 2328 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki 2329 <ricardo.kekki (a] movial.fi> to make dbus-binding-tool heed C symbol name 2330 annotations when generating glib client bindings. 2331 2332 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2333 2334 * dbus/dbus-shared.h: Call it shared constants instead of shared macros 2335 2336 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings 2337 2338 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2339 2340 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings 2341 2342 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2343 2344 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@}) 2345 2346 2005-12-19 Ross Burton <ross (a] openedhand.com> 2347 2348 * doc/dbus-tutorial.xml: 2349 Document the Glib client-side bindings, and list all possible annotations. 2350 2351 2005-12-19 John (J5) Palmieri <johnp (a] redhat.com> 2352 2353 * dbus/bus.c (dbus_bus_release_name): Add documentation 2354 2355 2005-12-06 Robert McQueen <robot101 (a] debian.org> 2356 2357 * python/service.py: s/sucessful/successful/ so we're allocating to 2358 and reading from the same variable. Oops. 2359 2360 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2361 2362 * Released 0.60 2363 2364 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2365 2366 * test/qt/Makefile.am: build from srcdir 2367 2368 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE 2369 Note - this code is wrong and needs to be fixed by the Qt binding 2370 developers. The flags should be treated as bitfields and not enums. 2371 2372 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace 2373 2374 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2375 2376 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 2377 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 2378 in production code 2379 2380 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2381 2382 * dbus/dbus-connection.c (dbus_connection_read_write): Add new 2383 method for getting messages off the bus in the absence of a 2384 mainloop. This method is much like 2385 dbus_connection_read_write_dispatch except it does not dispatch 2386 the messages to a registered filter function. Instead it 2387 allows a developer to process messages by directly popping 2388 them off the bus. 2389 2390 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2391 2392 * bus/desktop-file.c (parse_key_value): Ignore locales allowing 2393 the parser to continue instead of returning error 2394 (bus_desktop_file_load): Do not free parser data when 2395 parse_section_start or parse_key_value fails because it was 2396 already freed by parser_free (patch from Carlos Garcia Campos 2397 <carlosgc at gnome.org>) 2398 2399 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2400 2401 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c, 2402 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c 2403 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c 2404 test/test-segfault.c, test/test-utils.c, 2405 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c 2406 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c: 2407 Various cleanup of dead code and compiler warnings (patch from 2408 Kjartan Maraas <kmaraas at gnome.org>) 2409 2410 2005-11-30 John (J5) Palmieri <johnp (a] redhat.com> 2411 2412 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak 2413 (patch from Carlos Garnacho Parro <carlosg at gnome.org> 2414 2415 2005-11-27 Robert McQueen <robot101 (a] debian.org> 2416 2417 * python/dbus_bindings.pyx: Repair my previous commit which reverted 2418 part of the preceding one. Oops. Merge patch by Johan Hedberg 2419 <johan.hedberg (a] nokia.com> to fix marshalling of 16-bit integer values 2420 on big-endian platforms. 2421 2422 * test/python/test-client.py: Add some 16-bit integers to the test 2423 values. 2424 2425 2005-11-27 Carlos Garcia Campos <carlosgc (a] gnome.org> 2426 2427 * glib/dbus-gobject.c: Append a GValue instead of a basic type in 2428 method return message for property getters 2429 2430 2005-11-27 Robert McQueen <robot101 (a] debian.org> 2431 2432 * python/dbus_bindings.pyx: Fix a bug where doing a strict append 2433 with type v of an instance of dbus.Variant(foo, type='x') caused 2434 it to be boxed twice before sending over the bus. 2435 2436 * python/dbus_bindings.pyx, python/service.py, 2437 test/python/test-client.py: Update the constants for the new 2438 request_name flags, and update comments/test cases now that queueing 2439 is the default action. 2440 2441 2005-11-22 John (J5) Palmieri <johnp (a] redhat.com> 2442 2443 * configure.in: 2444 - Change version to 0.60 for impending release 2445 - upped the sonames because of ABI and API breakage 2446 2447 2005-11-22 John (J5) Palmieri <johnp (a] redhat.com> 2448 2449 * configure.in: Add test/name-test/Makefile to the generated 2450 Makefile list 2451 2452 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): 2453 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT 2454 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying 2455 not to queue an ower if it can't be the primary owner 2456 2457 * bus/bus.h: Add new internal BusOwner struct 2458 2459 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) 2460 to bus_registry_ensure and don't set the prohibit_replacement flag 2461 since they are now set per BusOwner and not per name. 2462 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 2463 that returns the list of connections in a name's connection queue 2464 2465 * bus/services.c (struct BusService): remove prohibit_replacement field 2466 (struct BusOwner): new struct for keeping track of queued connections 2467 and their associated flags for the queue 2468 (struct BusRegistry): add a BusOwner memory pool 2469 (bus_registry_new): initialize the BusOwner memory pool 2470 (bus_registry_unref): free the BusOwner memory pool 2471 (_bus_service_find_owner_link): new internal method for 2472 searching the queue for a specific connection 2473 (bus_owner_set_flags): new method for adding setting the flags on a 2474 bus owner 2475 (bus_owner_new): new method that creates a BusOwner object from the 2476 pool and sets its flags 2477 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects 2478 (bus_registry_ensure): Add the flags parameter 2479 (bus_registry_acquire_service): Switch from using raw connections to 2480 using the BusOwner struct 2481 Add new state machine for dealing with the new set of flags 2482 (bus_registry_set_service_context_table, struct OwnershipCancelData, 2483 cancel_ownership, free_ownership_cancel_data, 2484 add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 2485 restore_ownership, free_ownership_restore_data, 2486 add_restore_ownership_to_transaction): Switch to using BusOwner 2487 instead of raw connections 2488 (bus_service_add_owner): Add flags parameter 2489 Switch to using BusOwner instead of raw connections 2490 Add state machine for dealing with the new set of flags 2491 (bus_service_swap_owner): Swaps the first and second owners in the 2492 queue. Used to make sure proper signals are sent when a service looses 2493 or gains primary ownership. We never insert an owner at the top of the 2494 queue. Instead we insert it in the second position and then swap. 2495 (bus_service_remove_owner): Remove the owner from the queue sending 2496 out the NameLost and NameOwnerChanged signals if the we were the 2497 primary owner 2498 (bus_service_get_primary_owners_connection): New method that extracts 2499 the connection from the primary owner 2500 (bus_service_get_primary_owner): Returns the BusOwner instead of the 2501 connection 2502 (bus_service_get_allow_replacement): Changed from the old 2503 bus_service_get_prohibit_replacement method. Checks the flags of the 2504 primary owner and returns if it can be replaced or not 2505 (bus_service_set_prohibit_replacement): removed 2506 (bus_service_has_owner): returns TRUE if and owner with 2507 the specified connection exists in the queue 2508 2509 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper 2510 method that only compiles if tests are enabled. Allows us to get the 2511 unique name of a connection so we can check it against the queue when 2512 doing regression tests 2513 2514 * bus/activation.c (bus_activation_send_pending_auto_activate), 2515 bus/dispatch.c (bus_dispatch), 2516 bus/driver.c (bus_driver_handle_get_service_owner, 2517 bus_driver_handle_get_connection_unix_user, 2518 bus_driver_handle_get_connection_unix_process_id, 2519 bus_driver_handle_get_connection_selinux_security_context), 2520 bus/signals.c (connection_is_primary_owner): 2521 use bus_service_get_primary_owners_connection instead of 2522 bus_service_get_primary_owner 2523 2524 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 2525 _dbus_listen_unix_socket): Calculate the length of the socket 2526 path and use that instead of using a fixed length which was 2527 causing socket names to contain many trailing Nul bytes. 2528 2529 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c 2530 (dbus_g_method_get_sender): New method for extracting the sender 2531 from a DBusGMethodInvocation 2532 (dbus_g_method_return_get_reply): changed name to 2533 dbus_g_method_get_reply 2534 (dbus_g_method_return_send_reply): changed name to 2535 dbus_g_method_send reply 2536 2537 * doc/dbus-specification.xml: New docs that describe how the new 2538 queueing system works and talks about the changes to the how 2539 we specify socket names 2540 2541 * glib/examples/example-service.c, 2542 glib/examples/example-signal-emitter.c, 2543 glib/examples/statemachine/statemachine-server.c: 2544 Changed the RequestName flags to the new system 2545 2546 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New 2547 regression test suite for testing various states of the new 2548 queueing system 2549 2550 2005-11-15 Robert McQueen <robot101 (a] debian.org> 2551 2552 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob 2553 Taylor to add two methods, dbus_g_method_return_get_reply and 2554 dbus_g_method_return_send_reply, to allow you to get the reply 2555 message from a DBusGMethodInvocation, append arbitrary stuff to it, 2556 and send it. The GLib bindings can't marshal a return value of 2557 something like a(s) if the array is empty - ultimately they should be 2558 made to heed the signature of the out arguments as the Python bindings 2559 now can, but this is a workable interim solution which might have 2560 other applications. 2561 2562 2005-11-15 Robert McQueen <robot101 (a] debian.org> 2563 2564 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName 2565 method to org.freedesktop.DBus to release a bus name or give up 2566 waiting in the queue for it. 2567 2568 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a 2569 dbus_bus_release_name method to send the ReleaseName method calls. 2570 Add constants for the return values to dbus/dbus-shared.h. 2571 2572 * doc/dbus-specification.xml: Document the new ReleaseName method 2573 in the specification. 2574 2575 * python/dbus_bindings.pyx: Add a low-level python binding for the 2576 release name method. 2577 2578 * python/exceptions.py, python/service.py: Make freeing BusName 2579 objects release the name. Add a NameExistsException, and fix a 2580 bug with creating UnknownMethodException. 2581 2582 * test/python/test-client.py: Add tests for freeing BusName 2583 objects causing names to be released. 2584 2585 2005-11-14 Robert McQueen <robot101 (a] debian.org> 2586 2587 * python/service.py: Include the traceback in the error reply when we 2588 send an exception over the bus. _BEST_ _PATCH_ _EVER_ 2589 2590 2005-11-14 David Zeuthen <davidz (a] redhat.com> 2591 2592 Patch from Timo Hoenig <thoenig (a] suse.de>. 2593 2594 * bus/bus.c: I've recently investigated why the automatic reload 2595 of configuration files does not work as expected. 2596 2597 Currently, reloading configuration files does only work when 2598 running dbus-daemon with --nodaemon. If we are running as daemon 2599 we're hitting a dnotify bug once we fork the process. 2600 2601 We're initializing the dnotify fds before calling fork(). Once 2602 the child process forked it does still have the fds (and they 2603 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not 2604 getting SIGIO as changes are made to the configuration files. 2605 2606 The attached patch moves the initialization of the dnotify fds to 2607 process_config_postinit(). This is safe for all current code 2608 paths and solves the dnotify disfunction. If we're running 2609 dbus-daemon as daemon the fds for dnotify are now being 2610 initialized after fork() for the child process. 2611 2612 * configure.in: The current configure.in check for dnotify probes 2613 'x$target_os' for being 'xlinux-gnu'. I've changed the check to 2614 match for 'xlinux', too. Additionally I have adapted the configure 2615 option's style to match with the others. 2616 2617 2005-11-14 Robert McQueen <robot101 (a] debian.org> 2618 2619 * python/decorators.py, python/service.py: Add a new argument to the 2620 dbus.service.method decorator called sender_keyword, which if set, 2621 specifies the name of an argument which will be provided the bus 2622 name of the method caller. 2623 2624 * test/python/test-client.py, test/python/test-service.py: Add a 2625 method and test to check the sender_keyword functionality. 2626 2627 2005-11-07 John (J5) Palmieri <johnp (a] redhat.com> 2628 2629 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 2630 empty reply so blocking calls don't block forever (Patch from Sjoerd 2631 Simons <sjoerd at luon.net>) 2632 2633 * AUTHORS: Add Robert McQueen for his work on the Python 2634 Bindings and other parts of D-Bus 2635 2636 2005-11-07 Robert McQueen <robot101 (a] debian.org> 2637 2638 * python/decorators.py: Change emit_signal function to use the 2639 signature annotation of the signal when marhsalling the arguments from 2640 the service. Fix a bug where the code checking signature length 2641 against argument length referenced the wrong variable. 2642 2643 * python/introspect_parser.py: Avoid adding the type signature of 2644 signal arguments to any methods which occur after them in the 2645 introspection data (!) by making the parser a little more careful 2646 about its current state. 2647 2648 * python/service.py: Remove debug prints from last commit (again :D). 2649 2650 * test/python/test-client.py, test/python/test-service.py: Add test 2651 signals with signature decorators to test the strict marshalling code 2652 gives errors at the right time. Could do with checking the signals 2653 actually get emitted too, given that the test does nothing with 2654 signals at the moment... 2655 2656 2005-11-07 Robert McQueen <robot101 (a] debian.org> 2657 2658 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus 2659 instances to stop madness of creating new instances representing 2660 the same bus connection all the time, rendering any tracking of 2661 match rules and bus names quite meaningless. Caught a bug where 2662 the private argument to SessionBus() and friends was being passed 2663 in as use_default_mainloop by mistake. Still some problems with 2664 multiple dbus_binding.Connection instances representing the same 2665 low-level connection (eg when you use both SessionBus() and 2666 StarterBus() in same process), but it's a lot better now than it 2667 was. 2668 2669 * python/dbus_bindings.pyx: Add constants with the return values 2670 for bus_request_name(). 2671 2672 * python/service.py: Store bus name instances in a per-dbus.Bus cache 2673 and retrieve the same instances for the same name, so deletion can be 2674 done with refcounting. Also now throws some kind of error if you 2675 don't actually get the name you requested, unlike previously... 2676 2677 * test/python/test-client.py: Add tests for instance caching of buses 2678 and bus name objects. 2679 2680 2005-11-04 Robert McQueen <robot101 (a] debian.org> 2681 2682 * python/dbus_bindings.pyx, test/python/test-client.py: Fix 2683 marshalling of boolean values. Add some booleans to the values in 2684 the test client. 2685 2686 * python/decorators.py, python/service.py: Add an 'async_callbacks' 2687 argument to the dbus.service.method decorator, which allows you to 2688 name arguments to take two callback functions for replying with 2689 return values or an exception. 2690 2691 * test/python/test-client.py, test/python/test-service.py: Add test 2692 case using asynchronous method reply functions, both return values and 2693 errors, and from within both the function itself and from a mainloop 2694 callback. 2695 2696 * python/decorators.py, python/service.py: Perform checking that the 2697 number of method/signal arguments matches the number of types in the 2698 signature at class loading time, not when you first introspect the 2699 class. 2700 2701 * python/service.py: Remove debug print left by the last commit. 2702 2703 2005-11-03 Robert McQueen <robot101 (a] debian.org> 2704 2705 * python/service.py: Heavy refactoring of method invocation, with 2706 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call 2707 in favour of a new _message_cb that uses seperate functions for 2708 looking up the method to call, marshalling the return values, and 2709 sending exceptions as errors, and is easier to follow as a 2710 consequence. Fixes some corner cases about returning things that 2711 don't match your declared out_signature, allows exceptions to define 2712 _dbus_error_name and have it be sent over the bus as the error name, 2713 and paves the way for cool stuff like heeding the message no reply 2714 flag, asynchronous method implementations, informing the method of the 2715 sender, and including backtraces in the error messages. 2716 2717 * test/python/test-client.py: Catch and print exceptions thrown in the 2718 async callback tests, rather than passing them to the low-level 2719 bindings to be ignored in a noisy and frustrating manner. 2720 2721 2005-11-03 Robert McQueen <robot101 (a] debian.org> 2722 2723 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__ 2724 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object, 2725 tweak others to be consistent. 2726 2727 * test/python/test-client.py: Tweak output of testInheritance. 2728 2729 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2730 2731 * python/service.py: Major changes to allow multiple inheritance 2732 from classes that define D-Bus interfaces: 2733 2734 1. Create a new Interface class which is the parent class of 2735 Object, and make the ObjectType metaclass into InterfaceType. 2736 2737 2. Patch written with Rob Taylor to replace use of method_vtable 2738 with code that walks the class's __MRO__ (method resolution order) 2739 to behave like Python does when invoking methods and allow 2740 overriding as you'd expect. Code is quite tricky because 2741 we have to find two methods, the one to invoke which has the 2742 right name and isn't decorated with the /wrong/ interface, 2743 and the one to pick up the signatures from which is decorated 2744 with the right interface. 2745 2746 The same caveats apply as to normal multiple inheritance - 2747 this has undefined behaviour if you try and inherit from two 2748 classes that define a method with the same name but are 2749 decorated with different interfaces. You should decorate 2750 your overriding method with the interface you want. 2751 2752 3. Replace grungy introspection XML generation code in the metaclass 2753 with dictionaries that cope correctly with multiple inheritance 2754 and the overriding of methods. This also uses the signature 2755 decorations to provide correct introspection data, including 2756 the debut appearance of the types of your return values. :D 2757 2758 * test/python/test-client.py, test/python/test-service.py: Add a test 2759 case to try invoking an method that overrides one inherited from a 2760 D-Bus interface class. 2761 2762 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2763 2764 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert(). 2765 Add checking for the end of struct character when marshalling a 2766 struct in MessageIter.append_strict. 2767 2768 * python/examples/example-service.py, 2769 python/examples/gconf-proxy-service.py, 2770 python/examples/gconf-proxy-service2.py: Update to use gobject 2771 mainloop directly rather than appearing to depend on gtk. 2772 2773 * python/test/test-client.py, python/test/test-server.py: Remove 2774 obsolete and broken test scripts for old bindings. We have up to date 2775 and working tests in test/python/. 2776 2777 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2778 2779 * python/decorators.py: Add optional arguments to the method and 2780 signal decorators to allow you to specify the signature of arguments 2781 and return values. Preserve the doc strings of signal functions in the 2782 decorated version, for pydoc and friends. 2783 2784 * python/dbus_bindings.pyx, python/proxies.py: Replace the 2785 parse_signature_block function with an iterable dbus.Signature() 2786 type. Fix a bug in MessageIter.append_strict where you could append 2787 anything by claiming it was a string. 2788 2789 * python/service.py: Use the out_signature decoration on methods to 2790 marshal return values, meaning you no longer require dbus.Array() 2791 or dbus.Dictionary() to indicate the type when returning empty 2792 arrays or dictionaries. Fix a bug where exceptions which are defined 2793 in __main__ are not turned into error replies. 2794 2795 * test/python/test-client.py, test/python/test-service.py: Add test 2796 for correct marshalling of return values according to out_signature. 2797 Fix a bug in the async call test where the error_handler is missing a 2798 self argument. 2799 2800 2005-10-29 Robert McQueen <robot101 (a] debian.org> 2801 2802 * glib/Makefile.am, glib/examples/Makefile.am, 2803 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by 2804 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL). 2805 2806 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf. 2807 2808 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch 2809 from Ubuntu by Daniel Silverstone to allow specifying match rules on 2810 the command line. 2811 2812 2005-10-27 Ross Burton <ross (a] openedhand.com> 2813 2814 * dbus/dbus-marshal-header.c: 2815 Remove dead code. 2816 2817 * glib/dbus-gobject.c: 2818 Stop compiler warning. 2819 2820 2005-10-25 Ross Burton <ross (a] openedhand.com> 2821 2822 * dbus/dbus-auth.c: 2823 * dbus/dbus-server-unix.c: 2824 * dbus/dbus-transport-unix.c: 2825 * glib/dbus-gmain.c: 2826 * glib/dbus-gobject.c: 2827 Add some const keywords. 2828 2829 2005-10-25 Ross Burton <ross (a] openedhand.com> 2830 2831 * doc/dbus-specification.xml: 2832 Document the NoReply annotation. 2833 2834 * glib/dbus-binding-tool-glib.h: 2835 * glib/dbus-binding-tool-glib.c: 2836 Respect the NoReply annotation. 2837 2838 2005-10-24 Robert McQueen <robot101 (a] debian.org> 2839 2840 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings 2841 derive from unicode instead of str, and encode/decode UTF-8 when 2842 marshalling/unmarshalling bus messages 2843 2844 * python/introspect_parser.py: encode introspection data as UTF-8 2845 before passing the buffer into libxml2 2846 2847 * test/python/test-client.py: add unicode test strings 2848 2849 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore: 2850 ignore generated python test files 2851 2852 2005-10-17 John (J5) Palmieri <johnp (a] redhat.com> 2853 2854 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble 2855 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT) 2856 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble 2857 2858 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing 2859 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters 2860 when constructing struct signatures 2861 2862 * python/_dbus.py (Bus): handle private connections using the 2863 private keyword in the constructor. defaults to private=False 2864 (Bus::close): new method to close a connection to the bus 2865 2866 * python/dbus_bindings.pyx (Connection::close): renamed method 2867 was previously called disconnect 2868 (bus_get): now supports getting a private connection 2869 2870 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply 2871 keyword is set to True. if it is, execute the method without waiting 2872 for a reply 2873 (ProxyObject::_introspect_execute_queue): new method for executing 2874 all the pending methods that were waiting for the introspect to 2875 finish. this is called when introspect either succeeds or fails 2876 (ProxyObject::_introspect_error_handler): call queued methods 2877 2878 2005-10-14 John (J5) Palmieri <johnp (a] redhat.com> 2879 2880 * python/dbus_bindings.pyx (MessageIter::append_strict): check for 2881 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct 2882 2883 * python/service.py (Object::_message_cb): handle exceptions correctly 2884 by sending them over the wire to the calling app. This makes sure 2885 the client returns immediately instead of waiting the 15 seconds to 2886 timeout. 2887 2888 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 2889 Add a test to benchmark how long it takes to introspect a service and 2890 call a method which returns a large element (pretty fast) 2891 2892 * test/python/test-service.py (TestObject::GetComplexArray): new test 2893 method which pushes a lot of data 2894 2895 2005-10-13 John (J5) Palmieri <johnp (a] redhat.com> 2896 2897 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method): 2898 reclaim memory outside of the loop and use del istead of just setting 2899 the key to None 2900 2901 2005-10-13 John (J5) Palmieri <johnp (a] redhat.com> 2902 2903 * python/service.py (ObjectType::_reflect_on_signal): Always close 2904 signal tag even when there are no arguments 2905 2906 2005-10-13 John (J5) Palmieri <johnp (a] redhat.com> 2907 2908 * configure.in: Set mono, mono-docs and Qt3 to default 2909 to no instead of auto when building. These bindings do not 2910 have full time maintainers and will not be supported for the 2911 1.0 release. 2912 2913 2005-10-12 John (J5) Palmieri <johnp (a] redhat.com> 2914 2915 patches from Michael Krivoruchko <misha at sun.com>: 2916 2917 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link, 2918 _dbus_connection_message_sent, 2919 _dbus_connection_send_preallocated_unlocked_no_update, 2920 _dbus_connection_pop_message_link_unlocked): handle the case when path 2921 is NULL when calling _dbus_verbose 2922 2923 * configure.in: check for functions getpeerucred and getpeereid 2924 2925 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 2926 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 2927 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 2928 Patch was only tested on Solaris 10 x86 so it might be issues 2929 with other platforms (i.e. BSDs and MacOSX) 2930 2931 2932 2005-10-05 John (J5) Palmieri <johnp (a] redhat.com> 2933 2934 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 2935 instead of marshal basic so we can handle recursive types in a variant 2936 2937 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types 2938 in variants 2939 2940 * test/glib/test-service-glib.c, test-service-glib.xml 2941 (my_object_echo_variant [EchoVariant], 2942 my_object_process_variant_of_array_of_ints123 2943 [ProcessVariantOfArrayOfInts123]): 2944 Add two test methods 2945 2946 * python/introspect_parser.py: New module for parsing introspect 2947 data. 2948 2949 * python/dbus_bindings.pyx: 2950 (various places): when throwing errors fix to use errormsg instead 2951 of message local variable because Pyrex can get confused with other 2952 message variables (initial patch by Robert McQueen 2953 <robert.mcqueen at collabora.co.uk>) 2954 (MessageIter::parse_signature_block): new method for getting the next 2955 block in a signiture. 2956 (MessageIter::append_strict): new method for appending values strictly 2957 using the passed in signature instead of guessing at the type 2958 (MessageItter:: append_dict, append_struct, append_array): use 2959 signatures to marshal children if the signature is available 2960 2961 * python/exceptions.py (IntrospectionParserException): new exception 2962 2963 * python/proxies.py (ProxyMethod::__call__): Marshal args with 2964 introspected signatures if available, else we fall back to the 2965 old way of doing things. 2966 (ProxyObject::_introspect_reply_handler ): parse introspection data 2967 2968 * python/service.py (ObjectType::_reflect_on_method): Properly 2969 terminate <method> if there are no args in the reflection data 2970 2971 * test/python/test-client.py: add tests for talking with the GLib 2972 test server. This gives us better coverage for introspection since 2973 python to python will always generate arguments as variants. It also 2974 allows us to test the robustness of the GLib bindings and interlanguage 2975 communications. 2976 2977 2978 2005-10-03 John (J5) Palmieri <johnp (a] redhat.com> 2979 2980 * bus/driver.c (bus_driver_handle_introspect): Add signals 2981 to the introspect data. (patch from Daniel P. Berrange 2982 <dan at berrange.com>) 2983 2984 * bus/dispatch.c (check_existent_ping): Add testcase for Ping 2985 2986 * dbus/dbus-connection.c (_dbus_connection_peer_filter, 2987 _dbus_connection_run_builtin_filters): Changed these to 2988 be unlock_no_update functions and call 2989 _dbus_connection_send_unlocked_no_update instead of 2990 dbus_connection_send to avoid locking errors. 2991 2992 * doc/TODO: Removed the make Ping test TODO 2993 2994 2005-09-26 John (J5) Palmieri <johnp (a] redhat.com> 2995 2996 * dbus/Python.pyx: Fixed memory leaks when throwing errors. 2997 We now copy the message from a DBusError and then free 2998 the error object befor throwing the error 2999 3000 * glib/dbus-glib-tool.c: removed extra comma at the end of the 3001 DBusBindingOutputMode enum which was causing a warning. 3002 #include <time.h> so using time_t is explicitly defined 3003 3004 2005-09-26 John (J5) Palmieri <johnp (a] redhat.com> 3005 3006 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>: 3007 - dbus/dbus-bus.c 3008 (internal_bus_get): new method that take over the heavy lifting 3009 of dbus_bus_get and adds the ability to get a private connection 3010 to the bus 3011 (dbus_bus_get): wrapper to internal_bus_get that provides the same 3012 interface as in previous versions 3013 (dbus_bus_get_private): new method that is a wrapper to 3014 internal_bus_get to get a private connection to the bus 3015 3016 - dbus/dbus-bus.h 3017 (dbus_bus_get_private): add as a public libdbus interface 3018 3019 - dbus-1.pc.in: output system_bus_default_address and 3020 sysconfdir variables so apps can use them when compiling 3021 3022 2005-09-23 Harald Fernengel <harry (a] kdevelop.org> 3023 * dbus/qt: New Qt bindings 3024 3025 2005-09-12 Waldo Bastian <bastian (a] kde.org> 3026 3027 * dbus/dbus-marshal-validate.c, 3028 doc/dbus-specification.xml, test/Makefile.am, 3029 test/test-names.c: allow hyphens in bus names. 3030 3031 2005-09-11 Mark McLoughlin <mark (a] skynet.ie> 3032 3033 * test/data/auth/fallback.auth-script: we don't 3034 retry the EXTERNAL method when we know its going 3035 to fail anymore. 3036 3037 2005-09-11 Mark McLoughlin <mark (a] skynet.ie> 3038 3039 * dbus/dbus-connection-internal.h: rename 3040 (add|remove|toggle)_(watch|timeout) to unlocked() 3041 3042 * dbus/dbus-connection.c: ditto. 3043 3044 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c: 3045 Update some callers for the renaming. 3046 3047 2005-09-10 Mark McLoughlin <mark (a] skynet.ie> 3048 3049 * dbus/dbus-auth.c: (record_mechanisms): don't 3050 retry the first auth mechanism because we know 3051 we're just going to get rejected again. 3052 3053 * dbus/dbus-keyring.c: (_dbus_keyring_reload): 3054 Fix thinko ... and what a nasty little bugger to 3055 track down you were ... 3056 3057 * dbus/dbus-connection.c: 3058 (_dbus_connection_add_watch), 3059 (_dbus_connection_remove_watch): add note about 3060 these needing the connection to be locked. 3061 (_dbus_connection_get_dispatch_status_unlocked): 3062 set status to DATA_REMAINS when we queue the 3063 disconnected message. 3064 3065 * bus/dispatch.c: 3066 (bus_dispatch): fix warning. 3067 (check_existent_service_no_auto_start): 3068 Expect ChildSignaled error too. 3069 (check_existent_hello_from_self): fix another 3070 couple of warnings. 3071 3072 2005-09-08 Joe Shaw <joeshaw (a] novell.com> 3073 3074 Patches from James Willcox <snorp (a] snorp.net> 3075 3076 * mono/Makefile.am: Add Int16.cs and UInt16.cs 3077 3078 * mono/DBusType/Array.cs: Handle multidimensional arrays, and 3079 support array "out" parameters. 3080 3081 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files, 3082 for 16-bit int support. 3083 3084 2005-09-06 John (J5) Palmieri <johnp (a] redhat.com> 3085 3086 * Released 0.50 3087 3088 * Patch from Steve Grubb: 3089 - bus/activation.c (bus_activation_service_reload_test): clean up 3090 some indentation 3091 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 3092 - dbus/dbus-message-factory.c (generate_special): fix a couple of 3093 buffer overflows in the test suite. This is non critical because 3094 it can not be exploited and this code is only run when doing a 3095 make check. 3096 3097 * Patch from Yaakov Selkowitz: Build fixes for Cygwin 3098 - configure.in: Don't check and link against kdecore, only qt headers 3099 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS 3100 - gcj/org/freedesktop/dbus/Makefile.am: 3101 add libdbus_gcj_1_la_LDFLAGS = -no-undefined 3102 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS 3103 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD 3104 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS 3105 - tools/Makefile.am: Add platform extentions to binaries 3106 (i.e. .exe on windows) 3107 3108 * configure.in: 3109 - Make it so if no suitable version of python is found we only 3110 disable building python instead of exiting the configure script 3111 - Require version 2.4 of glib for glib bindings 3112 - Up version to 0.50 3113 3114 * python/__init__.py: Sync version with libdbus to (0,50,0) 3115 3116 2005-09-05 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 3117 3118 * dbus/dbus-object-tree.c (find_subtree_recurse): 3119 a couple of optimizations (bug #710): 3120 - do a binary search in the tree 3121 - insert a new child at the right place directly, no need for 3122 qsort anymore 3123 - do the "double alloc" thing when allocating children 3124 3125 2005-08-31 John (J5) Palmieri <johnp (a] redhat.com> 3126 3127 * python/Makefile.am: Break on pyrexc errors instead of ignoring them 3128 3129 * python/dbus_bindings.pyx: Memory management foo 3130 (global): remove hacky _user_data_references global list 3131 (GIL_safe_cunregister_function_handler): userdata now stuffed into 3132 tuples. Unref user_data 3133 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples 3134 (Connection::__del__): Remove and replace with __dealloc__ method 3135 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF 3136 to keep tuple from being deallocated instead of the global var hack 3137 (Connection::register_object_path): Stuff user_data into a tuple. 3138 Use Py_INCREF to keep tuple from being deallocated instead of the 3139 global var hack 3140 (Connection::register_fallback): Stuff user_data into a tuple. 3141 Use Py_INCREF to keep tuple from being deallocated instead of the 3142 global var hack 3143 (GIL_safe_pending_call_notification): Don't unref the message 3144 because it gets unreffed when going out of scope. Py_XDECREF 3145 the user_data 3146 (PendingCall::__del__): Remove and replace with __dealloc__ method 3147 (PendingCall::set_notify): ref the pending call because we will 3148 need it to stick around for when the notify callback gets called 3149 (Message::__del__): Remove and replace with __dealloc__ method 3150 3151 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 3152 gthreads_init to match up with the dbus call 3153 3154 * python/glib.py (init_threads): Changed to threads_init to match 3155 up with gobject.threads_init(). init_threads is kept for backwards 3156 compat but will most likely be deprecated in the future 3157 3158 * test/python/test-client.py: 3159 - revamp to use Python's unittest functionality 3160 - add async call tests 3161 - setup threads in glib and dbus so we make sure locks are working 3162 3163 2005-08-30 John (J5) Palmieri <johnp (a] redhat.com> 3164 3165 * python/dbus_bindings.pyx 3166 (_pending_call_notification, cunregister_function_handler, 3167 cmessage_function_handler): All callback functions have been rearranged 3168 to workaround a bug in Pyrex when working with the GIL which is Python's 3169 global lock when dealing with threads. They have been split into 3170 a wrapper function (which assumes the name of the old function) and 3171 a _GIL_safe_<function name> function which contains the functionality 3172 of the old function. This ensures that Pyrex does not write code 3173 the lock is released. 3174 3175 3176 2005-08-30 John (J5) Palmieri <johnp (a] redhat.com> 3177 3178 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the 3179 GIL global lock when calling back into Python 3180 3181 2005-08-29 John (J5) Palmieri <johnp (a] redhat.com> 3182 3183 * Release 0.36.2 3184 3185 * Add Havoc's patch that never got applied to HEAD (Bug #2436): 3186 3187 * bus/policy.c (bus_policy_allow_user): change default "user is 3188 allowed" to be "user has same uid as the bus itself"; any 3189 allow/deny rules will override. 3190 3191 * bus/session.conf.in: don't allow all users, since now by default 3192 the user that ran the bus can connect. 3193 3194 2005-08-26 Colin Walters <walters (a] verbum.org> 3195 3196 * tools/dbus-print-message.c (print_message): Flush stdout 3197 after printing a message, so that redirecting to a file, then 3198 hitting Ctrl-C works. 3199 3200 2005-08-25 John (J5) Palmieri <johnp (a] redhat.com> 3201 3202 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it 3203 (EmptyMessage): new class that subclasses Message. This is a workaround 3204 to a Pyrex bug that fails to call __del__ when the Message object goes out 3205 of scope. For some reason subclassing Message fixes this bug 3206 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message 3207 - s/Message(_create=0)/EmptyMessage everywhere else 3208 3209 * test/python/test-{server|client}.py: add the python/.libs directory 3210 to the lookup path so dbus_bindings and dbus_glib_bindings don't 3211 get picked up from the system 3212 3213 2005-08-25 Colin Walters <walters (a] verbum.org> 3214 3215 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks 3216 to Ryan Lortie for the suggestion. 3217 3218 2005-08-24 John (J5) Palmieri <johnp (a] redhat.com> 3219 3220 * test/python: Add python regression test 3221 3222 * configure.in: Add test/python/Makefile 3223 3224 * test/Makefile.am: Add the python directory to SUBDIRS 3225 3226 2005-08-24 John (J5) Palmieri <johnp (a] redhat.com> 3227 3228 * Release 0.36.1 3229 3230 * python/_dbus.py: 3231 (Interface::connect_to_signal): propigate keywords for match on args 3232 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface 3233 3234 * python/proxies.py (ProxyObject::connect_to_signal): 3235 propigate keywords for match on args 3236 3237 * Makefile.am: point everything to pyexecdir since python borks 3238 on multilib 3239 3240 2005-08-23 John (J5) Palmieri <johnp (a] redhat.com> 3241 3242 * Release 0.36 3243 3244 2005-08-23 Colin Walters <walters (a] verbum.org> 3245 3246 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST. 3247 3248 2005-08-23 John (J5) Palmieri <johnp (a] redhat.com> 3249 3250 * python/dbus_glib_bindings.pyx: reorder imports and c definitions 3251 to fix some wranings. We now use dbus_bindings.DBusConnection instead 3252 of defining DBusConnection ourselves. 3253 3254 2005-08-18 John (J5) Palmieri <johnp (a] redhat.com> 3255 3256 * python/dbus.pth: New path file to fix up problems when installing 3257 c libraries to lib64 and python files to lib. 3258 3259 * python/Makefile.am: install dbus.pth in the correct spot 3260 3261 2005-08-17 John (J5) Palmieri <johnp (a] redhat.com> 3262 * ChangeLog: clean up my last entry a bit 3263 3264 * doc/introspect.xsl: New stylesheet for converting introspection data 3265 into browser renderable xhtml. Contributed by Lennart Poettering. 3266 3267 * doc/introspect.dtd: Fixups in the introspect format from Lennart 3268 Poettering. 3269 3270 * doc/dbus-tutorial.xml: 3271 - Add Colin Walter to the Authors section for authoring the GLib 3272 section 3273 - Add descriptions of the new signature and type functionality 3274 in the Python complex type mapping section 3275 - Add a sidenote on the new args matching functionality in 3276 the Python bindings 3277 - Fixed up some of the examples to use the gobject.MainLoop 3278 instead of gtk.main 3279 3280 * python/_dbus.py: 3281 (Bus::_create_args_dict): New. Converts a hash of arg matches 3282 to a more useable format 3283 (Bus::add_signal_receiver): add a **keywords parameter for catching 3284 arg match parameters 3285 (Bus::remove_signal_receiver): add a **keywords parameter for catching 3286 arg match parameters 3287 3288 * python/matchrules.py: 3289 (MatchTree::exec_matches): Check for arg matches 3290 (SignalMatchRule::add_args_match): New method 3291 (SignalMatchRule::execute): Added args_list parameter as an optimization 3292 so we don't have to marshal the args more than once 3293 (SignalMatchRule::match_args_from_list): New method that checks to see 3294 if the rule's arg matches match an argument list. Only arguments 3295 set in the rule are checked. 3296 (SignalMatchRule::match_args_from_rule): New method that checks to see 3297 if the rule's arg matches match another rule's. All args have to match 3298 in order for this method to return true. If either rule has more args 3299 then it is not a match. 3300 (SignalMatchRule::is_match): Add args match 3301 (SignalMatchRule::repr): Add args to the final output if they exist 3302 3303 2005-08-17 Ross Burton <ross (a] burtonini.com> 3304 3305 * glib/dbus-gproxy.c: 3306 (dbus_g_proxy_call_no_reply): unref the message once sent. 3307 (dbus_g_proxy_call): protect against NULL proxy. 3308 3309 2005-08-16 John (J5) Palmieri <johnp (a] redhat.com> 3310 3311 * python/__init__.py: Version updated (0, 43, 0) 3312 3313 * python/dbus_bindings.pyx: 3314 - Fixed type objects to have self passed into __init__ 3315 - Added the Variant type 3316 - Add the ability to specify types or signatures for Array, Variant 3317 and Dictionary 3318 (Connection::send_with_reply_handlers): return a PendingCall object 3319 (_pending_call_notification): handle the case when an error is returned 3320 without an error message in the body 3321 (MessageIter::get_boolean): return True or False instead of an integer 3322 (MessageIter::python_value_to_dbus_sig): add direct checking of types 3323 and add checks for objects with embeded signatures or types (Array, 3324 Variant and Dictionary) 3325 (MessageIter::append_byte): handle case when the value is a dbus.Byte 3326 (MessageIter::append_dict): handle embeded types or signatures 3327 (MessageIter::append_array): handle embeded types or signatures 3328 (MessageIter::append_variant): new method 3329 3330 * python/proxies.py: 3331 (DeferedMethod): New. Dummy executable object used when queuing calls 3332 blocking on introspection data 3333 (ProxyMethod::__call__): add the timeout keyword for specifying longer 3334 or shorter timeouts for method calls 3335 (ProxyObject): Add first pass at an introspection state machine 3336 (ProxyObject::__init__): Add introspect keyword for turing off an on 3337 introspection. 3338 (ProxyObject::_Introspect): Internal Introspect call that bypasses 3339 the usual mechanisms for sending messages. This is to avoid a deadlock 3340 where the Intospect call would be queued waiting for the Introspect 3341 call to finish ;-) 3342 (ProxyObject::_introspect_reply_handler): New. This method is called 3343 when introspection returns with no error 3344 (ProxyObject::_introspect_error_handler): New. This method is called 3345 when introspection encounters an error 3346 (ProxyObject::__getattr__): Code to handle different introspection 3347 states. Queue async calls or block blocking calls if we are 3348 introspecting. Pass through as normal if we are not or are done with 3349 introspecting. 3350 3351 * python/service.py: Import signal and method from decorators.py 3352 3353 * python/types.py: Add Variant type 3354 3355 2005-08-16 Colin Walters <walters (a] verbum.org> 3356 3357 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the 3358 DBusError message is NULL. 3359 3360 2005-08-09 Havoc Pennington <hp (a] redhat.com> 3361 3362 * dbus/dbus-errors.c: apply patch from Timo Teras to make a 3363 malloc'd copy of the name parameter 3364 3365 2005-08-09 Havoc Pennington <hp (a] redhat.com> 3366 3367 * dbus/dbus-message.c (dbus_message_set_reply_serial): print 3368 warning if the reply serial is set to 0 3369 3370 2005-08-04 Colin Walters <walters (a] verbum.org> 3371 3372 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init) 3373 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size) 3374 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach) 3375 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values) 3376 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value) 3377 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype) 3378 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take): 3379 * glib/dbus-gvalue.h (dbus_g_value_types_init) 3380 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant) 3381 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal): 3382 3383 Prefix name with _ to ensure they're not exported. All callers 3384 updated. 3385 3386 * glib/dbus-gvalue.c (typecode_to_gtype) 3387 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype) 3388 (signature_iter_to_g_type_dict) 3389 (signature_iter_to_g_type_array) 3390 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature) 3391 (dbus_gtypes_from_arg_signature): 3392 Move to dbus-gsignature.c. 3393 3394 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call 3395 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init. 3396 (dbus_binding_tool_output_glib_client): Ditto. 3397 3398 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c 3399 and dbus-gsignature.h 3400 3401 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete 3402 unused variable. 3403 3404 2005-08-03 Colin Walters <walters (a] verbum.org> 3405 3406 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should 3407 catch any incompatible changes accidentally made. 3408 3409 2005-08-03 Havoc Pennington <hp (a] redhat.com> 3410 3411 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix 3412 typo, from Julien Puydt 3413 3414 * bus/connection.c (bus_connection_disconnected): we were always 3415 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig 3416 3417 2005-08-01 Colin Walters <walters (a] verbum.org> 3418 3419 Patch from Joe Markus Clarke: 3420 3421 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix 3422 use-after-free. 3423 3424 2005-08-01 Colin Walters <walters (a] verbum.org> 3425 3426 Patch from Joe Markus Clarke: 3427 3428 * tools/dbus-send.c (main): 3429 3430 Don't use C99 style initializers (bug #3933). 3431 3432 2005-08-01 Colin Walters <walters (a] verbum.org> 3433 3434 Patch from Joe Markus Clarke: 3435 3436 * glib/dbus-gvalue.c (dbus_g_value_types_init): 3437 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 3438 * glib/dbus-gobject.c (write_interface): 3439 3440 Don't use C99 style initializers (bug #3933). 3441 3442 2005-07-31 Havoc Pennington <hp (a] redhat.com> 3443 3444 * tools/dbus-viewer.c (load_child_nodes): fix invocation of 3445 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920 3446 3447 2005-07-30 Havoc Pennington <hp (a] redhat.com> 3448 3449 * fix a bunch of Doxygen warnings and mistakes 3450 3451 2005-07-30 Havoc Pennington <hp (a] redhat.com> 3452 3453 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef 3454 DBUS_BUILD_TESTS since it's now used in production code 3455 3456 2005-07-29 Havoc Pennington <hp (a] redhat.com> 3457 3458 * test/glib/test-profile.c (write_junk): initialize the junk 3459 buffer so valgrind doesn't have a breakdown 3460 3461 2005-07-29 Havoc Pennington <hp (a] redhat.com> 3462 3463 * bus/signals.c (bus_signals_test): add match_rule_equal() tests 3464 (match_rule_matches): remove unused arg 3465 (test_matching): add tests for match_rule_matches() 3466 3467 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to 3468 do arg0='foo' arg5='bar' in the match rules 3469 (match_rule_matches): don't match if the arg0='foo' doesn't match. 3470 3471 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this 3472 3473 2005-07-29 Ross Burton <ross (a] openedhand.com> 3474 3475 * dbus/dbus-connection.c: 3476 Don't create a DBusCondVar which is never used. 3477 3478 2005-07-27 Ross Burton <ross (a] openedhand.com> 3479 3480 * dbus/dbus-message.c: 3481 Reduce the size of the maximum cached message to 10K. 3482 3483 2005-07-25 Ross Burton <ross (a] openedhand.com> 3484 3485 * glib/dbus-gproxy.c: 3486 Remove matches when all proxies are unregistered. 3487 3488 2005-07-24 Colin Walters <walters (a] verbum.org> 3489 3490 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require 3491 typedata; recursive arrays won't have it. 3492 3493 * test/glib/test-dbus-glib.c: 3494 * test/glib/test-service-glib.c: 3495 * test/glib/test-service-glib.xml: Add recursive arrays tests. 3496 3497 2005-07-20 John (J5) Palmieir <johnp (a] redhat.com> 3498 3499 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py. 3500 proxies.py, service.py: Cleanup of code after running it through the 3501 pyflakes code checker mostly dealing with undefined names. 3502 (Bug #3828, Patch from Anthony Baxter <anthony (a] interlink.com.au>) 3503 3504 2005-07-17 John (J5) Palmieri <johnp (a] redhat.com> 3505 3506 * NEWS: Update to 0.35.2 3507 3508 2005-07-17 John (J5) Palmieri <johnp (a] redhat.com> 3509 3510 * python/_dbus.py: Remove import of the dbus.services 3511 module as it no longer exists (patch from Dimitur Kirov) 3512 3513 * python/service.py (Object::__init__): Fixed typo 3514 s/name/bus_name (patch from Dimitur Kirov) 3515 3516 * python/examples/example-signal-emitter.py: import dbus.glib 3517 to get the main loop and use glib mainloop instead of gtk so 3518 X doesn't have to be running. 3519 3520 * python/examples/example-signal-recipient.py: import dbus.glib 3521 to get the main loop and use glib mainloop instead of gtk so 3522 X doesn't have to be running. Import the decorators module 3523 directly. 3524 3525 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck 3526 didn't pick up on but are needed to build 3527 3528 * configure.in: upped version to 0.35.2 3529 3530 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h: 3531 added Colin Walters' SELinux API rename patch from head 3532 s/unix sercurity context/selinux security context/ 3533 3534 2005-07-16 John (J5) Palmieri <johnp (a] redhat.com> 3535 3536 * python/Makefile.am: dbus_binding.pxd.in should be included 3537 in EXTRA_DIST not dbus_binding.pxd 3538 fix up $(srcdir) hopefully for the last time 3539 3540 * NEWS: Update to 0.35.1 3541 3542 2005-07-16 Colin Walters <walters (a] verbum.org> 3543 3544 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed 3545 from bus_driver_handle_get_connection_unix_security_context. Update for 3546 error usage. 3547 (message_handlers): Update for renames. 3548 3549 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on 3550 _dbus_string_init failure correctly. 3551 (bus_selinux_append_context): Convert SID to context. Append it 3552 as a byte array. 3553 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init 3554 hasn't been called. 3555 3556 * bus/selinux.h: Update prototype. 3557 3558 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed 3559 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN. 3560 3561 2005-07-15 Colin Walters <walters (a] verbum.org> 3562 3563 * doc/TODO: Add note about convenience wrappers. 3564 3565 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3566 3567 * NEWS: Update to 0.35 3568 3569 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3570 3571 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST 3572 so distcheck doesn't fail 3573 3574 * glib/examples/Makefile.am: Add example-service.xml and 3575 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail 3576 3577 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and 3578 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail 3579 3580 * python/Makefile.am: Preprend $(srcdir)/ to source files so the 3581 compiler looks in the right places during distcheck 3582 3583 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3584 3585 * glib/example/Makefile.am: Fix a typo which cause make distcheck 3586 to fail 3587 3588 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3589 3590 * python/examples/example-service.py, 3591 python/examples/example-signal-emitter.py: Fixed up examples 3592 for API changes 3593 3594 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3595 3596 * python/__init__.py: Upped to version (0,42,0) because of 3597 the API change 3598 3599 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3600 3601 * ChangeLog: fix date in last entry 3602 3603 * configure.in, bus/system.conf.in: add the ability to configure 3604 the system bus user at compiletime with the --with-dbus-user flag 3605 (patch from Kristof Vansant) 3606 3607 2005-07-15 John (J5) Palmieri <johnp (a] redhat.com> 3608 3609 * bus/dispatch.c, test/test-service.c: Add testcase 3610 for sending messages to oneself (TODO item). 3611 3612 * python/service.py (class Object): Swap ordering of bus_name 3613 and object_path parameters to better support inheritance. 3614 3615 * doc/dbus-tutorial.xml: change Python docs to reflect change 3616 in parameter ordering and fix the inheritance section. 3617 3618 * doc/TODO: remove sending message to oneself TODO item 3619 3620 2005-07-15 Ross Burton <ross (a] openedhand.com> 3621 3622 * glib/dbus-gproxy.c: 3623 Fix a leak when calling methods via the proxy. 3624 3625 2005-07-15 Colin Walters <walters (a] verbum.org> 3626 3627 * bus/selinux.c (bus_selinux_append_context): Wrap in 3628 HAVE_SELINUX. 3629 3630 2005-07-14 John (J5) Palmieri <johnp (a] redhat.com> 3631 3632 * python/_dbus.py (Bus::remove_signal_receiver): 3633 don't add a callback to the match if none has been passed in 3634 3635 * python/matchrules.py (SignalMatchTree::remove): if the rule 3636 being matched does not have a callback treat it as a wildcard 3637 fix matching logic 3638 3639 * doc/dbus-tutorial.xml: Add Python tutorial 3640 3641 2005-07-14 Colin Walters <walters (a] verbum.org> 3642 3643 * bus/driver.c 3644 (bus_driver_handle_get_connection_unix_security_context): New function. 3645 (message_handlers): Add. 3646 3647 * bus/selinux.c (bus_selinux_append_context): New function; appends 3648 security context to message. 3649 3650 * bus/selinux.h: Prototype. 3651 3652 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New. 3653 3654 2005-07-14 John (J5) Palmieri <johnp (a] redhat.com> 3655 3656 * bus/activation.c: clean up all tabs to be 8 spaces 3657 (bus_activation_activate_service): make sure we clean up 3658 if activation fails 3659 3660 * bus/dispatch.c: clean up all tabs to be 8 spaces 3661 (check_shell_fail_service_auto_start): New function 3662 tests to make sure we get fail properly when trying to auto start a service 3663 with a faulty command line 3664 (check_shell_service_success_auto_start): New function tests to make sure 3665 auto started services get the arguments on the command line 3666 3667 * test/test-shell-service.c: Added service for testing auto-starting with 3668 command line arguments 3669 3670 * test/data/valid-service-files/debug-shell-echo-fail.service.in, 3671 test/data/valid-service-files/debug-shell-echo-success.service.in: 3672 Added service files for testing auto-starting with command line arguments 3673 3674 * */.cvsignore: added a bunch of generated files to various .cvsignore files 3675 3676 2005-07-14 Rodrigo Moya <rodrigo (a] novell.com> 3677 3678 * dbus/dbus-shell.[ch]: copy/pasted code from GLib. 3679 3680 * dbus/Makefile.am: added new files to build. 3681 3682 * bus/activation.c (bus_activation_activate_service): support 3683 activation commands with parameters. 3684 3685 * test/shell-test.c: added test program for the shell parsing 3686 code. 3687 3688 2005-07-13 David Zeuthen <davidz (a] redhat.com> 3689 3690 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and 3691 64 bit signed and unsigned parameters 3692 3693 2005-07-13 John (J5) Palmieri <johnp (a] redhat.com> 3694 3695 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd 3696 3697 * python/service.py (class Name): renamed BusName to make it clearer 3698 what the object is for (a name on the bus) 3699 3700 * python/examples/example-service.py, 3701 python/examples/example-signal-emitter.py: change the Name object to 3702 BusName 3703 3704 2005-07-12 Colin Walters <walters (a] verbum.org> 3705 3706 Patch from Jim Gettys <Jim.Gettys (a] hp.com>. 3707 3708 * tools/dbus-launch.c: Include sys/select.h. 3709 3710 2005-07-12 John (J5) Palmieri <johnp (a] redhat.com> 3711 * python/dbus_bindings.pyx.in: removed 3712 3713 * python/dbus_bindings.pyx: Added. 3714 - Fixed some memleaks (patch from 3715 Sean Meiners <sean.meiners (a] linspireinc.com>) 3716 - Broke out the #include "dbus_h_wrapper.h" and put it in its 3717 own pxd file (Pyrex definition) 3718 - Broke out glib dependancies into its own pyx module 3719 3720 * python/dbus_bindings.pdx: Added. 3721 - Defines C class Connection for exporting to other modules 3722 3723 * python/dbus_glib_bindings.pyx: Added. 3724 - New module to handle lowlevel dbus-glib mainloop integration 3725 3726 * python/glib.py: Added. 3727 - Registers the glib mainloop when you import this module 3728 3729 * python/services.py: Removed (renamed to service.py) 3730 3731 * python/service.py: Added. 3732 - (class Server): renamed Name 3733 3734 * python/__init__.py: Bump ro version (0,41,0) 3735 -don't import the decorators or service module 3736 by default. These now reside in the dbus.service namespace 3737 3738 * python/_dbus.py (Bus::__init__): Add code run the main loop 3739 setup function on creation 3740 3741 * python/examples/example-service.py, 3742 python/examples/example-signal-emitter.py: update examples 3743 3744 * python/examples/gconf-proxy-service.py, 3745 python/examples/gconf-proxy-service2.py: TODO fix these up 3746 3747 * doc/TODO: Addition 3748 - Added a Python Bindings 1.0 section 3749 - added "Add match on args or match on details to match rules" 3750 3751 3752 2005-07-12 Colin Walters <walters (a] verbum.org> 3753 3754 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 3755 (statemachine-glue.h): 3756 * glib/examples/Makefile.am (example-service-glue.h) 3757 (example-signal-emitter-glue.h): 3758 * glib/Makefile.am (dbus-glib-error-switch.h): 3759 Add libtool --mode=execute so we use the built library instead 3760 of any installed one. 3761 3762 2005-07-11 Colin Walters <walters (a] verbum.org> 3763 3764 * glib/dbus-gvalue.c (struct _DBusGValue): Delete. 3765 (dbus_g_value_types_init): Remove assertion. 3766 (dbus_g_value_get_g_type, dbus_g_value_open) 3767 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature) 3768 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented 3769 functions related to DBusGValue. Now we marshal/demarshal 3770 structures as GValueArray. 3771 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for 3772 structures. 3773 (signature_iter_to_g_type_array): Don't call 3774 signature_iter_to_g_type_struct. 3775 (signature_iter_to_g_type_struct): Delete. 3776 (dbus_gvalue_to_signature): Delete. 3777 (dbus_gvalue_to_signature): New function with same name as other 3778 one; we can convert structures to signatures. 3779 (demarshal_valuearray): New function. 3780 (get_type_demarshaller): Use it. 3781 (demarshal_recurse): Delete. 3782 (marshal_proxy): New function. 3783 (marshal_map): Warn if we can't determine signature from type. 3784 (marshal_collection_ptrarray): Ditto. 3785 (marshal_collection_array): Ditto. 3786 (get_type_marshaller): Use marshal_valuearray. 3787 (marshal_recurse): Delete. 3788 (_dbus_gvalue_test): Add some tests. 3789 3790 * dbus/dbus-glib.h (struct _DBusGValueIterator): 3791 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE) 3792 (dbus_g_value_open, dbus_g_value_iterator_get_value) 3793 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) 3794 (dbus_g_value_free): Remove prototypes. 3795 3796 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle 3797 G_TYPE_VALUE_ARRAY. 3798 3799 * glib/examples/example-service.c: 3800 * glib/examples/example-client.c: Implement GetTuple. 3801 3802 * test/glib/test-dbus-glib.c: 3803 * test/glib/test-service-glib.c: 3804 * test/glib/test-service-glib.xml: Add structure tests. 3805 3806 2005-07-10 Colin Walters <walters (a] verbum.org> 3807 3808 * doc/TODO: Knock off some GLib items with this patch. 3809 3810 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 3811 (_dbus_gvalue_signals_error): New functions. 3812 3813 * glib/dbus-gvalue-utils.h: Prototype them. 3814 3815 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals 3816 and change to not output const/retval flags for input args. All 3817 callers updated. 3818 (invoke_object_method): Refactor to handle return values. Add 3819 some more comments in various places. Remove debug g_print. 3820 3821 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New. 3822 3823 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name): 3824 Handle G_TYPE_NONE. 3825 (compute_gsignature): New function; refactored from code from 3826 compute_marshaller and compute_marshaller_name. Enhance to 3827 handle return values and async ops more cleanly. Update for 3828 async ops returning NONE instead of BOOLEAN. 3829 (compute_marshaller, compute_marshaller_name): Call compute_gsignature 3830 and output appropriate string. 3831 (generate_glue): Handle return value annotation. Also don't dump 3832 constness flag for input arguments. 3833 3834 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains 3835 files shared between installed library and utilities. 3836 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS. 3837 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the 3838 binding tool can access gtype utility functions. 3839 3840 * test/glib/test-service-glib.c: 3841 * test/glib/test-service-glib.xml: 3842 * test/glib/test-dbus-glib.c: Add some tests for return values. 3843 3844 2005-07-09 Colin Walters <walters (a] verbum.org> 3845 3846 * glib/dbus-gparser.c (parse_annotation): Add annotations to 3847 argument if available, not method. 3848 3849 * glib/dbus-gobject.c (arg_iterate): More verbose warnings. 3850 (invoke_object_method): First, remove some redundant 3851 GValues (object_value, error_value) in favor of working on 3852 array directly. Second, rework constness to be less buggy. 3853 Now we iterate directly over the argument metadata instead 3854 of parallel iterating over output signature and metadata. 3855 3856 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error. 3857 3858 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const 3859 annotation on input args. 3860 3861 2005-07-09 Colin Walters <walters (a] verbum.org> 3862 3863 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST): 3864 Define. 3865 3866 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const 3867 annotation. 3868 3869 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too. 3870 (method_dir_signature_from_object_info): Handle arg_iterate change. 3871 (write_interface): Ditto. 3872 (lookup_object_info): Don't barf if format_version is > 0. 3873 (invoke_object_method): Handle arg constness. 3874 3875 * glib/dbus-gidl.c (struct ArgInfo): Add annotations. 3876 (arg_info_new): Create. 3877 (arg_info_unref): Destroy. 3878 (arg_info_get_annotations, arg_info_get_annotation) 3879 (arg_info_add_annotation): New functions. 3880 3881 * glib/dbus-gidl.h: Prototype them. 3882 3883 * glib/dbus-gparser.c (parse_annotation): Allow annotations in 3884 args, disallow them in properties. 3885 (parse_annotation): Handle arg annotations. 3886 3887 * test/glib/test-service-glib.xml: 3888 * test/glib/test-service-glib.c: Update to make some methods 3889 const. 3890 3891 2005-07-08 Colin Walters <walters (a] verbum.org> 3892 3893 * test/glib/test-service-glib.xml: 3894 * test/glib/test-service-glib.c: 3895 * test/glib/test-dbus-glib.c: Test a{sv}. 3896 3897 * glib/examples/statemachine/statemachine.c: 3898 * glib/examples/statemachine/statemachine-server.c: 3899 * glib/examples/statemachine/statemachine-client.c: Fix some bugs, 3900 add progress bar, etc. 3901 3902 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not 3903 needed anymore due to generic array/map marshalling. 3904 (dbus_g_value_types_init): Don't register basic arrays or the 3905 string/string hash. 3906 (dbus_gtype_from_signature_iter): Don't try to recurse into 3907 variants. 3908 (dbus_gtype_to_signature): Check collection/map before type 3909 metadata. 3910 (demarshal_garray_basic): Renamed to demarshal_collection_array. 3911 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new 3912 generic map creation/append functions instead of hash table 3913 specifically. 3914 (get_type_demarshaller): Handle maps. 3915 (demarshal_collection): Dispatch on collection type to either 3916 demarshal_collection_ptrarray or demarshal_collection_array. 3917 (get_type_marshaller): Handle maps. 3918 (marshal_collection): Dispatch collection type to either 3919 marshal_collection_ptrarray or marshal_collection_array. 3920 (_dbus_gvalue_test): New test. 3921 3922 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function. 3923 (hash_free_from_gtype): Use it to free GValues. 3924 (hashtable_append): New function. 3925 (ptrarray_append): Fix prototype. 3926 (slist_append): Ditto. 3927 (_dbus_gvalue_utils_test): Extend tests. 3928 3929 * glib/dbus-gtype-specialized.c 3930 (dbus_g_type_specialized_init_append): Renamed from 3931 dbus_g_type_specialized_collection_init_append. Remove const from 3932 value, since we steal it. 3933 (dbus_g_type_specialized_map_append): New function. 3934 3935 * glib/dbus-gtype-specialized.h: Update prototypes. 3936 Add DBusGTypeSpecializedMapAppendFunc. 3937 3938 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run 3939 _dbus_gvalue_test. 3940 3941 * glib/dbus-gtest.h: Prototype it. 3942 3943 2005-07-08 Ross Burton <ross (a] openedhand.com> 3944 3945 * dbus/dbus-glib.h: 3946 Add DBysGAsyncData for the async bindings. 3947 3948 * glib/dbus-binding-tool-glib.c: 3949 Re-enable the async bindings. 3950 3951 * test/glib/test-dbus-glib.c: 3952 Add a test for the generated async bindings. 3953 3954 2005-07-08 Colin Walters <walters (a] verbum.org> 3955 3956 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a 3957 connection concept. 3958 3959 2005-07-08 Colin Walters <walters (a] verbum.org> 3960 3961 * tools/Makefile.am: Kill of print-introspect in favor of using 3962 dbus-send --print-reply=literal. 3963 3964 * test/glib/test-service-glib.xml: 3965 * test/glib/test-service-glib.c (my_object_get_objs): New test 3966 for "ao". 3967 3968 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data. 3969 (main): Test GetObjs. 3970 3971 * glib/examples/statemachine/Makefile.am: 3972 * glib/examples/statemachine/sm-marshal.list: 3973 * glib/examples/statemachine/statemachine-client.c: 3974 * glib/examples/statemachine/statemachine-server.c: 3975 * glib/examples/statemachine/statemachine-server.xml: 3976 * glib/examples/statemachine/statemachine.c: 3977 * glib/examples/statemachine/statemachine.h: 3978 * glib/examples/statemachine/statemachine.xml: 3979 3980 New example. 3981 3982 * glib/examples/example-service.c (main): Move invocation 3983 of dbus_g_object_type_install_info earlier, to emphasize it 3984 should only be done once. 3985 3986 * glib/examples/example-signal-emitter.c (main): Ditto. 3987 3988 * glib/examples/Makefile.am (SUBDIRS): Include statemachine. 3989 3990 * glib/dbus-gvalue.h (dbus_gtype_to_signature) 3991 (dbus_gvalue_marshal): Update prototypes. 3992 3993 * glib/dbus-gvalue.c: Update all marshalling functions to take 3994 const GValue instead of GValue. 3995 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed 3996 types. 3997 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature 3998 change. 3999 (dbus_gtype_to_signature): Handle generic collecitons and maps. 4000 Return a newly-allocated string. 4001 (demarshal_proxy, demarshal_object_path, demarshal_object) 4002 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if 4003 we get the wrong types from message. 4004 (get_type_demarshaller): New function, extracted from 4005 dbus_gvalue_demarshal. 4006 (demarshal_collection): New function, demarshals generic 4007 collection. 4008 (dbus_gvalue_demarshal): Just invoke result of 4009 get_type_demarshaller. Throw error if we don't have one. 4010 (marshal_garray_basic): Abort on OOM. 4011 (get_type_marshaller): New function, extracted from 4012 dbus_gvalue_marshal. 4013 (collection_marshal_iterator, marshal_collection): New functions; 4014 implements generic marshalling for an iteratable specialized 4015 collection. 4016 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller. 4017 4018 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle 4019 G_TYPE_STRING. 4020 (ptrarray_value_from_gvalue): Ditto. 4021 (ptrarray_append, ptrarray_free): New functions. 4022 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 4023 (slist_append, slist_end_append, slist_free): New functions. 4024 (dbus_g_type_specialized_builtins_init): Add append fuctions 4025 for GPtrArray and GSList. Register GSList. 4026 (test_specialized_hash, _dbus_gvalue_utils_test): New functions. 4027 4028 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext): 4029 New. 4030 (dbus_g_type_specialized_collection_init_append) 4031 (dbus_g_type_specialized_collection_append) 4032 (dbus_g_type_specialized_collection_end_append): Prototype. 4033 (DBusGTypeSpecializedCollectionVtable): Add append_func and 4034 end_append_func. 4035 4036 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 4037 (dbus_g_type_specialized_collection_append) 4038 (dbus_g_type_specialized_collection_end_append): New functions. 4039 (dbus_g_type_map_value_iterate): Take const GValue. 4040 (dbus_g_type_collection_value_iterate): Ditto. 4041 4042 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run 4043 _dbus_gvalue_utils_test. 4044 4045 * glib/dbus-gtest.h: Prototype it. 4046 4047 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid 4048 using uninitialized owner_list. 4049 (dbus_g_proxy_begin_call_internal): Move return_if_fail to 4050 public API. 4051 (dbus_g_proxy_end_call_internal): Update to use error set 4052 from dbus_gvalue_demarshal instead of setting it here. 4053 (dbus_g_proxy_begin_call): Move return_if_fail here. 4054 4055 * glib/dbus-gobject.c (write_interface): Update for 4056 dbus_gtype_to_signature returning new string. 4057 4058 * configure.in: Add glib/examples/statemachine. 4059 4060 2005-07-08 Joe Shaw <joeshaw (a] novell.com> 4061 4062 * configure.in: Add a configure option, --with-console-auth-dir 4063 4064 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the 4065 new setting. Patch from Kay Sievers. 4066 4067 2005-07-06 Colin Walters <walters (a] verbum.org> 4068 4069 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify) 4070 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type) 4071 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete. 4072 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): 4073 Delete in favor of dbus_g_proxy_begin_call and 4074 dbus_g_proxy_cancel_call. 4075 (DBusGProxyCall, DBusGProxyCallNotify): New. 4076 (dbus_g_proxy_begin_call): Change prototype to take callback, user 4077 data, and destroy function. This replaces 4078 dbus_g_pending_call_set_notify. 4079 (dbus_g_proxy_cancel_call): Prototype. 4080 (DBusGAsyncData): Delete, shouldn't be needed anymore. 4081 4082 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and 4083 pending_calls map. 4084 (struct _DBusGProxyManager): Add bus_proxy member, which is an 4085 internal proxy for calls to the bus. Remove 4086 pending_nameowner_calls, now the internal proxy keeps track. 4087 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to 4088 pending_nameowner_calls. 4089 (got_name_owner_cb): Update prototype, and use 4090 dbus_g_proxy_end_call. 4091 (got_name_owner_cb): Remove reference to pending_nameowner_calls. 4092 (dbus_g_proxy_manager_register): Delete directly libdbus code in 4093 favor of using internal proxy. 4094 (dbus_g_proxy_manager_unregister): Update to use 4095 dbus_g_proxy_cancel_call for any pending GetNameOwner call. 4096 (dbus_g_proxy_init): Initialize pending calls map. 4097 (dbus_g_proxy_constructor): New. 4098 (dbus_g_proxy_class_init): Add get/set property functions, 4099 constructor, and add NAME, PATH, and INTERFACE properties. 4100 (cancel_pending_call): New function. 4101 (dbus_g_proxy_dispose): Iterate over any outstanding calls and 4102 cancel them. 4103 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New. 4104 (GPendingNotifyClosure): New structure. 4105 (d_pending_call_notify, d_pending_call_free): Moved here from 4106 dbus-glib.c. 4107 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function 4108 ordering. 4109 (manager_begin_bus_call): New internal function for talking to 4110 internal bus proxy. 4111 (dbus_g_proxy_new): Construct object using GObjet properties. 4112 (dbus_g_proxy_begin_call_internal): Update to take user data, etc. 4113 Create closure of same, and insert call into map of pending calls. 4114 (dbus_g_proxy_end_call_internal): Take call id instead of pending 4115 call. Look up pending call in current set. Remove it when we've 4116 completed. 4117 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete. 4118 (dbus_g_proxy_begin_call): Change API to take callback, user data, 4119 and destroy function directly. 4120 (dbus_g_proxy_end_call): Update to take DBusGProxyCall. 4121 (dbus_g_proxy_call): Invoke with NULL callback. 4122 (dbus_g_proxy_cancel_call): New function, replaces 4123 dbus_g_pending_call_cancel. 4124 4125 * glib/dbus-gparser.c (validate_signature): Fix call to 4126 dbus_set_g_error. 4127 4128 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark): 4129 New quark for attaching metadata to GType. 4130 (info_hash): Delete. 4131 (lookup_object_info): Look up using quark. 4132 (dbus_g_object_type_install_info): Check that a type is classed, 4133 not that it's an object. Also just install type data using quark 4134 instead of using global hash. 4135 4136 * glib/dbus-glib.c (dbus_g_pending_call_ref) 4137 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type) 4138 (GPendingNotifyClosure): Delete. 4139 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c. 4140 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete. 4141 4142 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async 4143 client method generation until we can fix it... 4144 4145 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call. 4146 (load_from_service_thread_func): Ditto. 4147 4148 * tools/dbus-names-model.c (struct NamesModel): Hold 4149 DBusGProxyCall. 4150 (have_names_notify): Update prototype, use 4151 dbus_g_proxy_cancel_call. 4152 (names_model_reload): Update for new dbus_g_proxy_begin_call API. 4153 4154 * tools/dbus-monitor.c (filter_func): Update for print_message 4155 API change. 4156 4157 * test/glib/test-dbus-glib.c: Add more tests for async 4158 invocations. Update many begin_call/end_call pairs to just use 4159 dbus_g_proxy_call. 4160 4161 * tools/dbus-send.c (main): Add --print-reply=literal mode. This 4162 allows us to dump print-introspect.c. 4163 4164 * tools/dbus-print-message.h (print_message): Add literal argument 4165 to print_message which is intended to allow printing arguments without 4166 metadata like "string=". 4167 4168 * tools/dbus-print-message.c (print_iter): Add literal argument. 4169 (print_message): Allow printing string messages literally. 4170 4171 2005-07-05 Colin Walters <walters (a] verbum.org> 4172 4173 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): 4174 Remove value refcount leak, original patch from Jorn Baayen 4175 <jorn (a] openedhand.com>. Also remove useless extra value in favor 4176 of prepending to value array directly. 4177 4178 2005-07-02 Colin Walters <walters (a] verbum.org> 4179 4180 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test. 4181 4182 2005-07-01 Colin Walters <walters (a] verbum.org> 4183 4184 Patch from Jonathan Matthew <jonathan (a] kaolin.hn.org> 4185 4186 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type. 4187 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE, 4188 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32, 4189 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE. 4190 4191 2005-06-30 Colin Walters <walters (a] verbum.org> 4192 4193 * test/glib/test-dbus-glib.c: 4194 * test/glib/test-service-glib.c: 4195 * test/glib/test-service-glib.xml: Update tests for new error 4196 setting bits, also add async tests (patch from Ross Burton). 4197 4198 * test/glib/Makefile.am (test_service_glib_LDADD): Add 4199 DBUS_GLIB_THREADS_LIBS. 4200 4201 * glib/dbus-gproxy.c (get_name_owner) 4202 (dbus_g_pending_call_end_valist): Ditto. 4203 4204 * glib/dbus-gobject.c (error_metadata): New mapping from GError 4205 domain (GQuark) to DBusGErrorInfo. 4206 (gerror_domaincode_to_dbus_error_name): Attempt to look up error 4207 quark in error_metadata. Take message interface as default 4208 error message interface. 4209 (gerror_to_dbus_error_message): Pass message interface. 4210 (dbus_set_g_error): Resurrected. 4211 (dbus_g_error_info_free): New function. 4212 (dbus_g_object_type_install_info): Use g_type_class_ref instead 4213 of _peek to actually create the object class if it hasn't been 4214 created yet. 4215 (dbus_g_error_domain_register): New function. 4216 4217 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error. 4218 4219 * glib/dbus-gparser.c (validate_signature): Ditto. 4220 4221 * dbus/dbus-glib.h (dbus_g_error_set): Delete. 4222 (dbus_g_error_domain_register): Prototype. 4223 4224 * glib/dbus-glib.c (dbus_g_error_set): Delete. 4225 Update tests. 4226 4227 2005-06-29 Colin Walters <walters (a] verbum.org> 4228 4229 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add 4230 DBUS_TYPE_G_OBJECT_PATH. 4231 4232 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers 4233 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should 4234 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH. 4235 (dbus_g_object_path_get_g_type): New function. 4236 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH 4237 to DBUS_TYPE_G_OBJECT_PATH by default. 4238 (demarshal_proxy): Remove unused name variable. 4239 (demarshal_object_path, marshal_object_path): New functions. 4240 (demarshal_proxy_array, marshal_proxy_array): Delete. 4241 4242 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map 4243 DBUS_TYPE_G_OBJECT_PATH to char *. 4244 (dbus_g_type_get_lookup_function): Map builtin 4245 DBUS_TYPE_G_OBJECT_PATH. 4246 4247 * test/glib/test-dbus-glib.c 4248 * test/glib/test-service-glib.c (my_object_objpath): 4249 Adapt tests to new object path marshalling. 4250 4251 2005-06-29 John (J5) Palmieri <johnp (a] redhat.com> 4252 4253 * configure.in: force check for Python >= 2.4 4254 4255 2005-06-29 Colin Walters <walters (a] verbum.org> 4256 4257 Patch from Ross Burton <ross (a] openedhand.com> 4258 4259 * glib/dbus-gobject.c (invoke_object_method): Unset object 4260 value in all cases, not only in async case. 4261 4262 2005-06-29 Colin Walters <walters (a] verbum.org> 4263 4264 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member 4265 name_call for keeping track of any outgoing GetNameOwner call. 4266 Also add for_owner and associated. 4267 (struct _DBusGProxyManager): Add owner_names, which is hash table 4268 that maps a base name to a list of names it owns (that we're 4269 interested in). Add pending_nameowner_calls which is a list of 4270 all outstanding GetNameOwner; avoids us having to iterate over 4271 every proxy. Add unassociated_proxies which keeps track of name 4272 proxies with no associated name owner. 4273 (dbus_g_proxy_manager_unref): Destroy owner_names. 4274 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of 4275 name refcounts. 4276 (find_name_in_info, name_owner_foreach) 4277 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo) 4278 (dbus_g_proxy_manager_monitor_name_owner) 4279 (dbus_g_proxy_manager_unmonitor_name_owner) 4280 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner): 4281 New functions; they manipulate the owner_names mapping. 4282 (got_name_owner_cb): New function. 4283 (get_name_owner): New function, extracted from 4284 dbus_g_proxy_new_for_name_owner. 4285 (dbus_g_proxy_manager_register): For now we need to keep track of 4286 all NameOwnerChanged. Also if the proxy is for a name, if we 4287 don't already know the name owner, queue a new GetNameOwner 4288 request and add it to our list of unassociated proxies. Otherwise 4289 inc the refcount. 4290 (dbus_g_proxy_manager_unregister): If this proxy is for a name, 4291 cancel any pending GetNameOwner call, etc. 4292 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use 4293 the owner_names mapping to look up the current names for the 4294 signal source, and dispatch to any proxies for that name. 4295 (dbus_g_proxy_new): Initialize new members. 4296 (dbus_g_proxy_new_for_name): Delete unused proxy variable. 4297 (dbus_g_proxy_new_for_name_owner): Use get_name_owner. 4298 (dbus_g_pending_call_end_valist): New function, extracted from 4299 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy 4300 but want to use the GLib infrastructure. Also note how many 4301 arguments in reply were over. 4302 (dbus_g_pending_call_end): New function, just call 4303 dbus_g_pending_call_end_valist. 4304 (dbus_g_proxy_end_call_internal): Just call 4305 dbus_g_pending_call_end_valist. 4306 4307 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup 4308 of builtin marshaller for STRING_STRING_STRING. 4309 4310 * test/glib/test-dbus-glib.c: 4311 * test/glib/test-service-glib.c: 4312 * test/glib/test-service-glib.xml: 4313 Extend tests to cover name proxies, destruction of owner proxies, 4314 etc. 4315 4316 * glib/examples/example-signal-recipient.c 4317 (dbus_g_proxy_new_for_name_owner): Create a name proxy. 4318 4319 * tools/dbus-send.c (main): Print D-BUS error name in addition 4320 to message. 4321 4322 2005-06-28 John (J5) Palmieri <johnp (a] redhat.com> 4323 4324 * python/dbus_bindings.pyx.in (cunregister_function_handler, 4325 cmessage_function_handler): Patch from 4326 Anthony Baxter <anthony (a] interlink.com.au> fixes threading problems 4327 by using the Py_GILState_Ensure/Release to synchronize with the 4328 python runtime. 4329 4330 2005-06-28 Ray Strode <rstrode (a] redhat.com> 4331 4332 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill 4333 babysitter helper process on last unref, bug #2813. 4334 4335 2005-06-27 Colin Walters <walters (a] verbum.org> 4336 4337 * test/glib/test-dbus-glib.c: 4338 * test/glib/test-service-glib.c: 4339 * test/glib/test-service-glib.xml: 4340 Test hash table signal emitting. 4341 4342 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert 4343 types to their fundamental basis types, since this is what 4344 marshallers operate on. Also add an entry for VOID__BOXED. 4345 (dbus_g_object_register_marshaller_array): Convert to fundamental. 4346 4347 2005-06-26 Havoc Pennington <hp (a] redhat.com> 4348 4349 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix 4350 from Don Park 4351 4352 2005-06-26 Colin Walters <walters (a] verbum.org> 4353 4354 * glib/dbus-glib.c (dbus_set_g_error): Delete. 4355 (dbus_g_error_set): New public function from its ashes; used by 4356 both service-side method implementation and GLib bindings 4357 internals. 4358 (dbus_g_error_has_name, dbus_g_error_get_name): New function. 4359 (_dbus_glib_test): Add some tests. 4360 4361 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. 4362 4363 * test/glib/test-service-glib.c (my_object_throw_error): Use 4364 dbus_g_error_set. 4365 4366 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle 4367 errors thrown by dbus_g_error_set. 4368 4369 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. 4370 4371 * glib/dbus-gparser.c (validate_signature): Ditto. 4372 4373 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 4374 (dbus_g_proxy_end_call_internal): Ditto. 4375 4376 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which 4377 converts DBUS_ERROR_x to DBUS_GERROR_x. 4378 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. 4379 4380 * doc/TODO: Remove error TODO. 4381 4382 * doc/dbus-tutorial.xml: Update with documentation about error 4383 handling. 4384 4385 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make 4386 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to 4387 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION. 4388 4389 2005-06-22 Colin Walters <walters (a] verbum.org> 4390 4391 Patch from Ross Burton <ross (a] openedhand.com> 4392 4393 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig. 4394 4395 2005-06-20 Colin Walters <walters (a] verbum.org> 4396 4397 * configure.in: Add glib/examples. 4398 4399 * glib/Makefile.am: Add examples/ 4400 4401 * glib/examples/.cvsignore 4402 * glib/examples/Makefile.am 4403 * glib/examples/example-client.c 4404 * glib/examples/example-service.c 4405 * glib/examples/example-service.xml 4406 * glib/examples/example-signal-emitter.c 4407 * glib/examples/example-signal-emitter.xml 4408 * glib/examples/example-signal-recipient.c: 4409 New files; GLib binding examples, ported from 4410 python/examples. 4411 4412 2005-06-20 Colin Walters <walters (a] verbum.org> 4413 4414 * dbus/dbus-glib.h: 4415 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to 4416 dbus_g_proxy_call. 4417 4418 * glib/dbus-binding-tool-glib.c: 4419 * doc/dbus-tutorial.xml: 4420 * test/glib/test-dbus-glib.c: Update for rename. 4421 4422 2005-06-20 Colin Walters <walters (a] verbum.org> 4423 4424 Patch suggested by Ross Burton <ross (a] openedhand.com> 4425 4426 * glib/dbus-gobject.c (export_signals): Free signal name. 4427 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug 4428 memory leak. Add a bit of documentation. 4429 (dbus_g_method_return_error): Free context, and note we do 4430 so. 4431 4432 2005-06-18 Murray Cumming <murrayc (a] murrayc.com> 4433 4434 * dbus/dbus-glib.h: 4435 * glib/dbus-gobject.c: 4436 * glib/dbus-gproxy.c: 4437 * glib/dbus-gvalue.c: Predeclare structs as 4438 typedef struct _Something Something instead of 4439 typedef struct Something Something, so we can 4440 redeclare the prototypes. Other GNOME libraries 4441 do this already. 4442 4443 2005-06-17 Colin Walters <walters (a] verbum.org> 4444 4445 * tools/dbus-names-model.c (have_names_notify): Fix call 4446 to dbus_g_proxy_end_call. 4447 4448 2005-06-17 Colin Walters <walters (a] verbum.org> 4449 4450 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't 4451 spew warnings if we get malformed remote signals. 4452 4453 * glib/dbus-gobject.c (propsig_iterate): New function. 4454 (lookup_object_info): New function, extracted from 4455 lookup_object_and_method. 4456 (introspect_properties, introspect_signals): Delete; these 4457 are merged into write_interface. 4458 (write_interface): Write out signals and properties here; 4459 dump the org.gtk.object stuff and use the interface given 4460 in the introspection data blob. Also fix up property XML. 4461 (lookup_values): New function. 4462 (introspect_interfaces): Gather a mapping from interface to a 4463 list of its methods, signals, and properties, then write out 4464 each interface. 4465 (lookup_object_and_method): Use lookup_object_info. 4466 (struct DBusGSignalClosure): Add interface. 4467 (dbus_g_signal_closure_new): Add interface. Don't dup signame; 4468 we can just use the constant data. 4469 (dbus_g_signal_closure_finalize): Don't free signal name. 4470 (signal_emitter_marshaller): Use interface from signal closure. 4471 (export_signals): Only export signals mentioned in introspection 4472 blob. 4473 (dbus_g_connection_register_g_object): Warn if we have no 4474 introspection data for an object. 4475 (funcsig_equal): Remove unused variable. 4476 (dbus_g_object_register_marshaller): Take varargs instead of 4477 list. 4478 (dbus_g_object_register_marshaller_array): New function, 4479 extracted from old dbus_g_object_register_marshaller. 4480 4481 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add 4482 signals and property data. 4483 (write_quoted_string): New function, extracted from generate_glue. 4484 (generate_glue): Write signals and properties to introspection 4485 blob. 4486 4487 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include 4488 exported_signals and exported_properties. 4489 (dbus_g_object_register_marshaller): Update prototype. 4490 (dbus_g_object_register_marshaller_array): Prototype. 4491 4492 * test/glib/test-dbus-glib.c: Extend testing to cover new signals. 4493 4494 * test/glib/test-service-glib.c: Add new test signals and method 4495 to emit them. 4496 4497 * test/glib/test-service-glib.xml: Add some test signals. 4498 4499 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c 4500 and my-object-marshal.h 4501 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add 4502 my-object-marshal.c. 4503 (my-object-marshal.c, my-object-marshal.h): Implement. 4504 4505 * test/glib/.cvsignore: Update. 4506 4507 * doc/TODO: Remove two GLib TODO items fixed by this 4508 patch. 4509 4510 2005-06-16 Colin Walters <walters (a] verbum.org> 4511 4512 * doc/TODO: Update for GLib bindings. 4513 4514 2005-06-16 Colin Walters <walters (a] verbum.org> 4515 4516 * glib/dbus-binding-tool-glib.c: 4517 * glib/dbus-gobject.c: 4518 * glib/dbus-gproxy.c: Add Nokia copyright; Patch 4519 from Ross Burton, for his GLib bindings work. 4520 4521 2005-06-16 Colin Walters <walters (a] verbum.org> 4522 4523 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params 4524 to iterate instead of walking to G_TYPE_INVALID. 4525 4526 Patch based on a patch from Ryan Gammon. 4527 4528 2005-06-16 Colin Walters <walters (a] verbum.org> 4529 4530 * bus/bus.c (bus_context_new): Set parser to NULL 4531 after we unref it (Patch from Chris Boscolo, #2174). 4532 4533 2005-06-16 Colin Walters <walters (a] verbum.org> 4534 4535 * python/dbus_bindings.pyx.in: Import size_t, 4536 __int64_t, __uint64_t, and __signed. 4537 4538 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte): 4539 Define cmsg struct, output it. 4540 (_dbus_read_credentials_unix_socket): 4541 Use cmsg struct. 4542 4543 Patch from Joe Markus Clarke for FreeBSD support. 4544 4545 2005-06-16 Colin Walters <walters (a] verbum.org> 4546 4547 * tools/dbus-send.c (append_array): Use strtok. 4548 (append_dict): New function. 4549 (type_from_name): New function, extracted from main. 4550 (main): Handle sending dicts. 4551 4552 * tools/dbus-print-message.c (print_iter): Print dict 4553 entries. 4554 4555 2005-06-16 Colin Walters <walters (a] verbum.org> 4556 4557 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string 4558 values as the empty string (#2948). 4559 4560 2005-06-16 Colin Walters <walters (a] verbum.org> 4561 4562 * dbus/Makefile.am: 4563 * mono/doc/Makefile.am: 4564 * test/glib/Makefile.am: 4565 4566 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477) 4567 4568 2005-06-16 Colin Walters <walters (a] verbum.org> 4569 4570 * dbus/dbus-marshal-header.c (_dbus_header_load): Set 4571 header byte order from expected byte order (Patch from Chris Wilson, #3475). 4572 4573 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 4574 Increment pointer after swapping fixed array. Add assertion 4575 for array length. 4576 4577 2005-06-15 Colin Walters <walters (a] verbum.org> 4578 4579 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket): 4580 Fix call to dbus_set_error. (Patch from Michael Banck, #3461) 4581 4582 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4583 4584 * NEWS: Update to 0.34 4585 4586 2005-06-15 David Zeuthen <davidz (a] redhat.com> 4587 4588 * configure.in (LT_CURRENT): Revert back to 1 as the library 4589 hasn't changed and we've certainly not committed to protocol 4590 stability yet. All this does is to break ABI. See commit note 4591 from hp (a] redhat.com 2005-05-05 for details. 4592 4593 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4594 4595 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 4596 (_dbus_connection_run_builtin_filters): New method 4597 (dbus_connection_dispatch): Run the builtin filters which in turn 4598 runs the peer filter which handles Ping messages. 4599 4600 * doc/TODO: 4601 - Ping isn't handled: This patch fixes it 4602 4603 - Add a test case for the Ping message: added TODO item 4604 4605 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4606 4607 * dbus/dbus-message.c: 4608 (dbus_message_has_path): New method 4609 (dbus_message_has_interface): New method 4610 (dbus_message_has_member): New method 4611 4612 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user): 4613 New method 4614 4615 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 4616 the keyring directory is private to the user 4617 4618 * doc/TODO: 4619 - The convenience functions in dbus-bus.h should perhaps have 4620 the signatures that they would have if they were autogenerated 4621 stubs. e.g. the acquire service function. We should also evaluate 4622 which of these functions to include, in light of the fact that 4623 GLib/Qt native stubs will probably also exist.: Punted 4624 4625 - add dbus_message_has_path(), maybe has_member/interface: 4626 fixed in this patch 4627 4628 - in dbus-keyring.c, enforce that the keyring dir is not 4629 world readable/writable: Fixed in this patch 4630 4631 2005-06-15 John (J5) Palmieri <johnp (a] redhat.com> 4632 4633 * dbus/dbus-marshal-validate.h: Added a new validation 4634 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 4635 out of memory errors when validating signitures 4636 4637 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR 4638 in places where we previously used DBUS_VALID and a FALSE return 4639 value to indicate OOM 4640 4641 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason): 4642 Use a stack to track the number of elements inside containers. The 4643 stack values are then used to validate that dict entries have only two 4644 elements within them. 4645 (validate_body_helper): check the reason for failure when validating 4646 varients 4647 4648 * dbus/dbus-message.c (load_message): use 4649 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 4650 DBUS_VALID and a FALSE return value to indicate OOM 4651 4652 * doc/TODO: remove "- validate dict entry number of fields" as this 4653 patch fixes it 4654 4655 2005-06-14 David Zeuthen <davidz (a] redhat.com> 4656 4657 * bus/bus.c (process_config_every_time): Drop existing conf-dir 4658 watches (if applicable) and add new watches 4659 4660 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY 4661 (main): Setup SIGIO signal handler if using D_NOTIFY 4662 4663 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs 4664 4665 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list 4666 (merge_included): Also merge conf_dirs list 4667 (bus_config_parser_unref): Clear conf_dirs list 4668 (include_dir): Add directory to conf_dirs list 4669 (bus_config_parser_get_conf_dirs): New function 4670 4671 * bus/dir-watch.[ch]: New files 4672 4673 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch] 4674 4675 * configure.in: Add checks for D_NOTIFY on Linux 4676 4677 2005-06-14 Colin Walters <walters (a] verbum.org> 4678 4679 * glib/dbus-binding-tool-glib.c: 4680 * glib/dbus-gobject.c: 4681 * glib/dbus-gvalue.c: Fix indentation and brace style. 4682 4683 2005-06-14 Ross Burton <ross (a] openedhand.com>. 4684 4685 * glib/dbus-glib.h: Make DBusGMethodInvocation 4686 a private structure. Rearrange prototypes a bit. 4687 4688 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add 4689 documentation for first_arg_type. 4690 4691 * glib/dbus-gobject.c: Move DBusGMethodInvocation 4692 here, add documentation. Move dbus_g_method_return 4693 and dbus_g_method_return_error into public API 4694 section. 4695 4696 2005-06-14 Colin Walters <walters (a] verbum.org> 4697 4698 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): 4699 Add missing return statements, noticed by Ross Burton. 4700 4701 2005-06-13 Ross Burton <ross (a] openedhand.com>. 4702 4703 * glib/dbus-gobject.c: Handle errors on message 4704 demarshalling by sending error message back. 4705 * glib/dbus-gvalue.c: Initialize return variables. 4706 4707 2005-06-13 Colin Walters <walters (a] verbum.org> 4708 4709 * glib/Makefile.am: Fix thinko in last patch. 4710 4711 2005-06-13 Colin Walters <walters (a] verbum.org> 4712 4713 * glib/Makefile.am: Move dbus-gtype-specialized.c 4714 and dbus-gtype-specialized.h into a _HEADERS variable, 4715 install them. 4716 4717 2005-06-12 Colin Walters <walters (a] verbum.org> 4718 4719 Async signals and various bugfixes and testing by 4720 Ross Burton <ross (a] openedhand.com>. 4721 4722 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete. 4723 (dbus_gvalue_genmarshal_name_from_type) 4724 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c. 4725 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature. 4726 (dbus_g_value_types_init, dbus_gtype_from_signature) 4727 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature) 4728 (dbus_gtypes_from_arg_signature): New function prototypes. 4729 (dbus_gvalue_demarshal): Take context and error arguments. 4730 (dbus_gvalue_demarshal_variant): New function. 4731 (dbus_gvalue_demarshal_message): New function. 4732 (dbus_gvalue_store): Delete. 4733 4734 * glib/dbus-gvalue.c: 4735 4736 File has been almost entirely rewritten; now we special-case 4737 more types such as DBUS_TYPE_SIGNATURE, handle arrays and 4738 hash tables correctly, etc. Full support for recursive values 4739 is not yet complete. 4740 4741 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last 4742 argument of signal to G_TYPE_POINTER since we now pass a 4743 structure. 4744 (lookup_g_marshaller): Delete in favor of 4745 _dbus_gobject_lookup_marshaller. 4746 (marshal_dbus_message_to_g_marshaller): Use 4747 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message 4748 to handle remote signal callbacks. 4749 (dbus_g_proxy_new_from_proxy): New function; creates a new 4750 DBusGProxy by copying an existing one. 4751 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface) 4752 (dbus_g_proxy_get_path): New functions. 4753 (dbus_g_proxy_marshal_args_to_message): New function; 4754 factored out of existing code. 4755 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments 4756 from a varargs array. 4757 (dbus_g_proxy_begin_call_internal): New function. 4758 (dbus_g_proxy_end_call_internal): New function. 4759 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types 4760 as arguments; simply invoke dbus_g_proxy_begin_call_internal 4761 after collecting args into value array. 4762 (dbus_g_proxy_end_call): Take GTypes instead of DBus types; 4763 invoke dbus_g_proxy_end_call_internal. 4764 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and 4765 end_call_internal. 4766 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus 4767 types. 4768 (array_free_all): New function. 4769 (dbus_g_proxy_add_signal): Take GTypes. 4770 4771 * glib/dbus-gobject.h: 4772 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. 4773 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller): 4774 Prototype. 4775 4776 * glib/dbus-gobject.c: Add a global marshal_table hash which 4777 stores mappings from type signatures to marshallers. Change lots 4778 of invocations of dbus_gtype_to_dbus_type to 4779 dbus_gtype_to_signature. 4780 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. 4781 (introspect_signals): Fix test for query.return_type. 4782 (set_object_property): Update invocation of dbus_gvalue_demarshal. 4783 (invoke_object_method): Many changes. Handle asynchronous 4784 invocations. Convert arguments with 4785 dbus_gvalue_demarshal_message. Handle errors. Use 4786 DBusSignatureIter instead of strlen on args. Handle all arguments 4787 generically. Special-case variants. 4788 (dbus_g_method_return, dbus_g_method_return_error): New function. 4789 (DBusGSignalClosure): New structure, closes over signal 4790 information. 4791 (dbus_g_signal_closure_new): New function. 4792 (dbus_g_signal_closure_finalize): New function. 4793 (signal_emitter_marshaller): New function; is special marshaller 4794 which emits signals on bus. 4795 (export_signals): New function; introspects object signals and 4796 connects to them. 4797 (dbus_g_object_type_install_info): Take GType instead of 4798 GObjectClass. 4799 (dbus_g_connection_register_g_object): Invoke export_signals. 4800 (dbus_g_connection_lookup_g_object): New function. 4801 (DBusGFuncSignature) New structure; used for mapping type 4802 signatures to marshallers. 4803 (funcsig_hash): New function; hashes DBusGFuncSignature. 4804 (funcsig_equal): New function; compares DBusGFuncSignature. 4805 (_dbus_gobject_lookup_marshaller): New function. 4806 (dbus_g_object_register_marshaller): New function; used to 4807 register a marshaller at runtime for a particular signature. 4808 4809 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests. 4810 4811 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC 4812 which notes a server method implementation should be 4813 asynchronous. 4814 4815 * glib/dbus-binding-tool-glib.c 4816 (dbus_binding_tool_output_glib_server): Call 4817 dbus_g_value_types_init. 4818 (write_formal_parameters): Use dbus_gtype_from_signature. Handle 4819 variants specially. 4820 (dbus_g_type_get_lookup_function): Turn GType into an invocation 4821 of a lookup function. 4822 (write_args_for_direction): Use dbus_g_type_get_lookup_function. 4823 (write_untyped_out_args): New method; write output arguments. 4824 (write_formal_declarations_for_direction): Function for 4825 writing prototypes. 4826 (write_formal_parameters_for_direction): Function for 4827 writing implementations. 4828 (write_typed_args_for_direction): Function for writing 4829 arguments prefixed with GTypes. 4830 (write_async_method_client): Write out async version 4831 of method. 4832 4833 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h. 4834 (dbus_g_type_get_marshal_name): Move mapping from GType 4835 to marshal name into here. 4836 (dbus_g_type_get_c_name): Move into here. 4837 (compute_marshaller): Convert signature to type with 4838 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name. 4839 (compute_marshaller_name): Ditto. 4840 (compute_marshaller): Handle async signal annotations. 4841 (gather_marshallers): Return if we don't have a known 4842 prefix. 4843 (generate_glue): Collect introspection blob here, and 4844 write all of the blob at the end. This allows an object 4845 with multiple interfaces to work. 4846 Mark async methods in introspection blob. 4847 4848 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add 4849 dbus-gtype-specialized.c, dbus-gtype-specialized.h, 4850 dbus-gvalue-utils.h, dbus-gvalue-utils.c. 4851 4852 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this 4853 avoids people accidentally using DBUS_TYPE_* which should 4854 not be necessary anymore. 4855 Do include dbus-gtype-specialized.h, which are utilities 4856 for GLib container types. 4857 Add various #defines for types such as 4858 DBUS_TYPE_G_BOOLEAN_ARRAY. 4859 (DBusGValueIterator, DBusGValue): Define, not fully used 4860 yet. 4861 (dbus_g_value_get_g_type): Type for recursive value. 4862 (dbus_g_value_open, dbus_g_value_iterator_get_value) 4863 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) 4864 (dbus_g_value_free): Prototypes. 4865 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype. 4866 (dbus_g_proxy_set_interface): Prototype. 4867 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call) 4868 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus 4869 types. 4870 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface): 4871 Accessors. 4872 (DBusGAsyncData, DBusGMethodInvocation): Structures for 4873 doing async invocations. 4874 (dbus_g_method_return, dbus_g_method_return_error): 4875 Prototypes. 4876 * doc/dbus-tutorial.xml: Update GLib section. 4877 4878 * tools/dbus-viewer.c (load_child_nodes): Update 4879 for new invocation type of dbus_g_proxy_end_call. 4880 (load_from_service_thread_func): Ditto. 4881 4882 * tools/print-introspect.c (main): Ditto. 4883 4884 * tools/dbus-names-model.c (have_names_notify) 4885 (names_model_reload, names_model_set_connection) 4886 Use GTypes. 4887 4888 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION, 4889 needed since Python bindings use GLib bindings. 4890 4891 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION. 4892 Add --prefix argument. 4893 4894 * tools/Makefile.am: Define DBUS_COMPILATION. Remove 4895 unneeded --ignore-unsupported arg. 4896 4897 * test/glib/test-service-glib.c: 4898 * test/glib/test-service-glib.xml: 4899 * test/glib/test-dbus-glib.c: Add many more tests. 4900 4901 2005-06-06 David Zeuthen <davidz (a] redhat.com> 4902 4903 * doc/TODO: Add item about need to remove deprecated functions. 4904 4905 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect 4906 4907 * dbus/dbus-connection.c (dbus_connection_disconnect): New function 4908 to repair the ABI which was broken with the last commit. 4909 4910 2005-06-02 John (J5) Palmieri <johnp (a] redhat.com> 4911 4912 * dbus/dbus-connection.c, dbus/dbus-connection.h 4913 (dbus_connection_disconnect): renamed to dbus_connection_close 4914 for API symmetry with dbus_connection_open 4915 (_dbus_connection_open_internal): 4916 s/dbus_connection_disconnect/dbus_connection_close 4917 4918 * dbus/dbus-bus.c (dbus_bus_get): 4919 s/dbus_connection_disconnect/dbus_connection_close 4920 4921 * bus/connection.c (bus_connections_unref, 4922 bus_connections_setup_connection, bus_connections_expire_incomplete): 4923 s/dbus_connection_disconnect/dbus_connection_close 4924 4925 * bus/dispatch.c (bus_dispatch, kill_client_connection, 4926 kill_client_connection_unchecked, check_hello_connection): 4927 s/dbus_connection_disconnect/dbus_connection_close 4928 4929 * bus/bus.c (new_connection_callback): 4930 s/dbus_connection_disconnect/dbus_connection_close 4931 4932 * tools/dbus-send.c (main): 4933 s/dbus_connection_disconnect/dbus_connection_close 4934 4935 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func): 4936 s/dbus_connection_disconnect/dbus_connection_close 4937 4938 * test/test-service.c (path_message_func, filter_func): 4939 s/dbus_connection_disconnect/dbus_connection_close 4940 4941 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed 4942 4943 2005-05-25 Colin Walters <walters (a] verbum.org> 4944 4945 * dbus/dbus-protocol.h: Move various bus service #defines such 4946 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to 4947 dbus/dbus-shared.h. 4948 * dbus/dbus-shared.h: Various defines moved here. 4949 * dbus/dbus-marshal-header.c: Include dbus-shared.h. 4950 4951 2005-05-25 John (J5) Palmieri <johnp (a] redhat.com> 4952 4953 * python/__init__.py: Python bindings deserve a minor version 4954 update. Upped to (0, 40, 2) 4955 4956 2005-05-24 John (J5) Palmieri <johnp (a] redhat.com> 4957 4958 * python/decorators.py: add explicitly_pass_message decorator 4959 for passing in the dbus message as keyword for edge case signal 4960 handling 4961 4962 * python/matchrules.py (SignalMatchRule.__repr__): fix output 4963 to conform with what dbus expects for match rules 4964 (SignalMatchRule.execute): add the dbus message as a keyword 4965 if the signal handler has requested it 4966 4967 * python/examples/example/signal-recipient.py: added some more 4968 examples on how to hook up to signals 4969 4970 2005-05-23 John (J5) Palmieri <johnp (a] redhat.com> 4971 4972 * python/decorators.py: import dbus_bindings 4973 4974 * python/matchrules.py (SignalMatchRule, SignalMatchTree, 4975 SignalMatchNode): new classes that implement wildcard signal 4976 callback matching using a tree lookup. Heavily modified from a 4977 patch sent by Celso Pinto (fd.o bug #3241) 4978 4979 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): 4980 use new match classes to handle signals. 4981 4982 2005-05-19 John (J5) Palmieri <johnp (a] redhat.com> 4983 4984 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH 4985 4986 2005-05-18 Havoc Pennington <hp (a] redhat.com> 4987 4988 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require 4989 gettext. Not really worth requiring yet perhaps, but any 4990 production quality 1.0 would require it so we should go ahead and 4991 get things set up. We do have a couple token calls to 4992 bindtextdomain in the code already. 4993 4994 2005-05-16 John (J5) Palmieri <johnp (a] redhat.com> 4995 4996 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock 4997 when using recursive g_main_loops 4998 4999 * python/_dbus.py (class Bus): add the ProxyObjectClass 5000 alias for ProxyObject to make it easier for the Twisted 5001 networking framework to integrate dbus. 5002 5003 * python/proxies.py (class ProxyObject): add the ProxyMethodClass 5004 alias for ProxyMethod to make it easier for the Twisted 5005 networking framework to integrate dbus. 5006 5007 2005-05-11 Ross Burton <ross (a] openedhand.com> 5008 5009 * glib/dbus-glib-tool.c: Add --prefix argument. 5010 * glib/dbus-binding-tool-glib.h: Add prefix argument. 5011 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): 5012 Add prefix argument. 5013 (generate_glue): Pass prefix argument down. 5014 (dbus_binding_tool_output_glib_server): Pass prefix to 5015 glib-genmarshal. 5016 5017 2005-05-11 Colin Walters <walters (a] verbum.org> 5018 5019 * tools/dbus-send.c (append_array): New function. 5020 (append_arg): Broken out from main. 5021 (main): Add cheesy hack to send arrays and variants. 5022 (usage): Update. 5023 * tools/dbus-print-message.c (print_iter): Broken out 5024 from main. 5025 5026 2005-05-11 Colin Walters <walters (a] verbum.org> 5027 5028 * dbus/dbus-signature.c (dbus_signature_iter_get_signature): 5029 New function, returns signature string for signature iter. 5030 * dbus/dbus-signature.h: Prototype it. 5031 * dbus/dbus-message.c (dbus_message_iter_get_signature): 5032 New function, returns signature string for message iter. 5033 (dbus_message_iter_get_array_len): New function, returns 5034 length of array. 5035 (dbus_message_iter_get_fixed_array): Fix assertion; this 5036 function should be used when the iter is pointing to the 5037 contents of an array 5038 * dbus/dbus-message.h: Prototypes. 5039 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length): 5040 New function; returns length of an array. 5041 * dbus/dbus-marshal-recursive.h: Prototype it. 5042 5043 2005-05-11 Colin Walters <walters (a] verbum.org> 5044 5045 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix 5046 compilation error. 5047 5048 2005-05-08 Havoc Pennington <hp (a] redhat.com> 5049 5050 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the 5051 daemon's pid, not the parent's pid, to the file descriptor. 5052 Reported by Taj Morton. 5053 5054 2005-05-05 Havoc Pennington <hp (a] redhat.com> 5055 5056 * configure.in (LT_*): add notes on how the libtool versioning 5057 works to save thinking. Increment soname to indicate protocol 5058 breakage (though really the library interface hasn't changed I 5059 guess) 5060 5061 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): 5062 verify the GUID received from server matches what we were 5063 expecting, if we had an expectation 5064 5065 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command 5066 (_dbus_auth_get_guid_from_server): new function 5067 (send_begin): parse the OK args 5068 5069 * doc/dbus-specification.xml: add GUID to the auth protocol 5070 5071 2005-05-05 John (J5) Palmieri <johnp (a] redhat.com> 5072 5073 * Fix my name in previous changelog ;) 5074 5075 * python/proxies.py (ProxyObject.__getattr__): add further patch 5076 from Anthony Baxter to throw an AttributeError when python 5077 __special__ functions are called instead of marshling them over 5078 the bus (Bug#1685 comment 3). 5079 5080 2005-05-04 John (J5) Palmieri <johnp (a] redhat.com> 5081 5082 * python/Makefile.am: changed to use pyexecdir for the binding 5083 shared libraries (Bug#2494) 5084 5085 * python/exceptions.py: bring exceptions over from the bindings 5086 so they can be used in applications (Bug#2036) 5087 Make all exceptions derive from DBusException 5088 5089 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple 5090 of classes so that print obj doesn't throw an exception (Bug #1685) 5091 5092 2005-05-03 Ross Burton <ross (a] openedhand.com> 5093 5094 * glib/dbus-gobject.c (dbus_g_connection_register_g_object): 5095 Return if we get an error during registration. Set up a 5096 weak reference on object to unregister if object is destroyed. 5097 (unregister_gobject): New function. 5098 5099 2005-05-01 John (J5) Palmieri <johnp (a] redhat.com> 5100 5101 * python/dbus_bindings.pyx.in: 5102 - added new type classes for hinting to the marashaler what type 5103 to send over the wire 5104 - added int16 and uint16 marshalers 5105 - Fixed a bug in the type constants that caused int32 to go out 5106 as uint16 over the wire 5107 * python/dbus.py: split up into different files and renamed _dbus.py 5108 * python/__init__.py, python/_util.py, python/decorators.py, 5109 python/exceptions.py, python/proxies.py, python/services.py, 5110 python/types.py: new files split off from dbus.py 5111 * python/Makefile.am: Add new files, remove dbus.py and 5112 install all python files to <python module dir>/dbus 5113 * python/examples/*: Added #!/usr/bin/env python to the top of 5114 every example. Patch provided by Tatavarty Kalyan 5115 5116 2005-04-25 John (J5) Palmieri <johnp (a] redhat.com> 5117 5118 * NEWS: Update to 0.33 5119 5120 2005-04-25 John (J5) Palmieri <johnp (a] redhat.com> 5121 5122 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send 5123 method for doing async calls 5124 (_pending_call_notification): New C function for handling pendning call 5125 callbacks 5126 (set_notify): New method for setting pending call notification 5127 5128 * python/dbus.py: new version tuple "version" is set at (0, 40, 0) 5129 Async capabilities added to remote method calls 5130 (Sender): class removed 5131 (RemoteService): class removed 5132 (ObjectTree): class removed for now 5133 (RemoteObject): Renamed to ProxyObject 5134 (RemoteMethod): Renamed to ProxyMethod 5135 (method): Decorator added for decorating python methods as dbus methods 5136 (signal): Decorator added for decorating python methods as signal emitters 5137 (ObjectType): Metaclass added for generating introspection data and the 5138 method callback vtable 5139 (Interface): Wrapper class added to wrap objects in a dbus interface 5140 (Object): Uses ObjectType as its metaclass and exports Introspect 5141 of the org.freedesktop.DBus.Introspectable interface 5142 (ValidationException, UnknownMethodException): new exceptions 5143 5144 * python/examples/*: Modified to fit with the new bindings 5145 5146 2005-04-23 Havoc Pennington <hp (a] redhat.com> 5147 5148 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment, 5149 reported by Tony Houghton 5150 5151 * test/test-service.c (main): test 5152 dbus_connection_get_object_path_data() 5153 5154 * dbus/dbus-object-tree.c (find_handler): be sure we always init 5155 the exact_match 5156 (_dbus_object_tree_get_user_data_unlocked): new function used by 5157 dbus_connection_get_object_path_data() 5158 (do_register): add assertion test for get_user_data_unlocked 5159 (object_tree_test_iteration): more tests 5160 5161 * dbus/dbus-connection.c (dbus_connection_get_object_path_data): 5162 new function from Dan Reed to let you get the user data from 5163 dbus_connection_register_object_path() 5164 5165 2005-04-23 John (J5) Palmieri <johnp (a] redhat.com> 5166 5167 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow 5168 in numerous places that did not account for the NULL terminator 5169 (signature_from_seed): changed the manual string copy loop to 5170 just use strcpy instead 5171 make check should now pass 5172 5173 2005-04-19 John (J5) Palmieri <johnp (a] redhat.com> 5174 5175 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert 5176 so that it allows messages that are not signals to pass in 5177 NULL as the interface. 5178 5179 2005-04-18 David Zeuthen <davidz (a] redhat.com> 5180 5181 * glib/dbus-gmain.c (io_handler_destroy_source): 5182 (timeout_handler_destroy_source, connection_setup_free): 5183 Also unref the source to avoid memory leaks. 5184 5185 2005-04-13 David Zeuthen <davidz (a] redhat.com> 5186 5187 * bus/config-parser.c (bus_config_parser_new): Bump this to a 5188 more reasonable, yet still totally arbitrary, value :-). 5189 5190 2005-04-13 David Zeuthen <davidz (a] redhat.com> 5191 5192 * doc/TODO: Added an "important for 1.0" item about selinux 5193 allow/deny messages 5194 5195 2005-04-13 David Zeuthen <davidz (a] redhat.com> 5196 5197 * bus/selinux.c: Add c-file-style to top of file 5198 (log_audit_callback): Don't free the data here anymore 5199 (bus_selinux_check): Don't take spid and tpid since appending 5200 that to auxdata may OOM. 5201 (bus_selinux_allows_acquire_service): Handle OOM and signal back 5202 to the caller if we are OOM by taking an error object. 5203 (bus_selinux_allows_send): -do- 5204 5205 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service 5206 and bus_selinux_allows_send 5207 5208 * bus/bus.c (bus_context_check_security_policy): Pass error and 5209 pass on OOM thrown by bus_selinux_allows_send() 5210 5211 * bus/services.c (bus_registry_acquire_service): Pass error and 5212 pass on OOM thrown by bus_selinux_allows_acquire_service() 5213 5214 2005-04-13 Havoc Pennington <hp (a] redhat.com> 5215 5216 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one 5217 message at a time to avoid monopolizing the main loop, bug 5218 #2953 from Benjamin Otte 5219 5220 2005-04-09 Havoc Pennington <hp (a] redhat.com> 5221 5222 * dbus/dbus-string.c (copy): change a memcpy to memmove due to 5223 possible overlap, fix from Daniel Reed 5224 (fixup_alignment): fix signedness warnings 5225 (_dbus_string_append_unichar): ditto 5226 5227 2005-04-09 Havoc Pennington <hp (a] redhat.com> 5228 5229 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning 5230 5231 * glib/dbus-glib-tool.c (main): fix warning 5232 5233 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning 5234 5235 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch): 5236 add a new function that can be used in simple applications that 5237 don't have a main loop and are willing to block 5238 5239 2005-04-05 David Zeuthen <davidz (a] redhat.com> 5240 5241 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889 5242 5243 * glib/dbus-gmain.c: 5244 (io_handler_destroy_source): Remove from list of IO handlers 5245 of the ConnectionSetup object 5246 (timeout_handler_destroy_source): -do- for timeout handlers 5247 (io_handler_source_finalized): Don't remove from list since 5248 we now do that in io_handler_destroy_source(). Renamed from 5249 io_handler_source_destroyed 5250 (timeout_handler_source_destroyed): -do- for timeout handlers 5251 (connection_setup_free): It is now safe to iterate over all 5252 IO and timeout handlers as the _destroy_source removes them 5253 from the list synchronously 5254 5255 2005-03-30 Havoc Pennington <hp (a] redhat.com> 5256 5257 * configure.in: change check to gtk 2.4 5258 5259 * tools/dbus-viewer.c (name_combo_changed_callback): remove 5260 gtk_combo_box_get_active_text() usage to decrement GTK requirement 5261 to 2.4 5262 5263 2005-03-29 John (J5) Palmieri <johnp (a] redhat.com> 5264 5265 * News: Update 0.32 5266 5267 * HACKING: Fixed realease instructions. configure.in should be updated to 5268 the next release by the person who made the last release. 5269 5270 2005-03-29 John (J5) Palmieri <johnp (a] redhat.com> 5271 5272 * python/lvalue_cast_post_process.py - removed. Patch has been 5273 submitted to Pyrex maintainers that fixes gcc4.0 errors 5274 5275 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py 5276 5277 2005-03-24 Daniel Reed <n (a] ml.org> 5278 5279 * tools/Makefile.am: Make print-introspect and 5280 dbus-bus-introspect.xml building conditional on HAVE_GLIB. 5281 5282 2005-03-22 John (J5) Palmieri <johnp (a] redhat.com> 5283 5284 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck 5285 5286 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 5287 had in Red Hat packages for a while but for some reason never 5288 got merged upstream 5289 (_dbus_is_a_number): New checks if a string 5290 can be converted to a number and does the conversion if it can 5291 (_dbus_user_database_lookup): Add check to see if the given username 5292 is a udi. This allows udi's to be used instead of usernames in the 5293 config file. 5294 (_dbus_user_database_lookup_group): Add check to see if the given groupname 5295 is a gdi. This allows gdi's to be used instead of groupnames in the 5296 config file. 5297 5298 2005-03-21 John (J5) Palmieri <johnp (a] redhat.com> 5299 5300 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex 5301 code so that it compiles with gcc4.0 5302 5303 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST 5304 run dbus_bindings.c through lvalue_cast_post_process.py and copy the 5305 results back to dbus_binding.c 5306 5307 2005-03-20 Colin Walters <walters (a] verbum.org> 5308 5309 Patch suggested by Inguva Rajasekhar <ringuva (a] novell.com>. 5310 5311 * configure.in: Require GTK+ 2.6. 5312 5313 2005-03-20 Colin Walters <walters (a] verbum.org> 5314 5315 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test. 5316 5317 2005-03-17 Tom Parker <palfrey (a] tevp.net> 5318 5319 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't 5320 print DBUS_UID_UNSET; instead print passed username. Also 5321 be sure to actually use gid looked up in cache. 5322 5323 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto 5324 for DBUS_GID_UNSET and groupname. 5325 5326 2005-03-17 Colin Walters <walters (a] verbum.org> 5327 5328 * bus/print-introspect.c: Move to tools/. 5329 * bus/run-with-tmp-session-bus.sh: Ditto. 5330 5331 * glib/Makefile.am (dbus-glib-bindings.h): Move 5332 generation to tools/Makefile.am. 5333 5334 * test/glib/run-test.sh: Update to handle move 5335 of run-with-tmp-session-bus.sh. 5336 5337 * test/glib/test-service-glib.c: Update to handle 5338 move of dbus-glib-bindings.h. 5339 5340 * tools/print-introspect.c: Moved here 5341 from bus/, and ported to GLib bindings. 5342 5343 * tools/run-with-tmp-session-bus.sh: Moved here 5344 from bus/. 5345 5346 * tools/Makefile.am: Generate dbus-glib-bindings.h 5347 and dbus-bus-introspect.xml here. 5348 5349 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore: 5350 Update. 5351 5352 2005-03-17 Colin Walters <walters (a] verbum.org> 5353 5354 * bus/driver.c (write_args_for_direction): Use 5355 _dbus_string_get_const_data to retrieve string; 5356 _dbus_string_get_const_data_len doesn't actually return 5357 a NULL-terminated substring. 5358 5359 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h. 5360 (main): Change to use org_freedesktop_DBus_request_name 5361 instead of using g_proxy_begin_call/end_call. 5362 5363 2005-03-15 Joe Shaw <joeshaw (a] novell.com> 5364 5365 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when 5366 generating the finalizer. Fixes from Ben Maurer. 5367 5368 2005-03-12 Joe Shaw <joeshaw (a] novell.com> 5369 5370 * mono/BusDriver.cs: Update method names: ListServices 5371 becomes ListNames; GetOwner becomes GetNameOwner. 5372 5373 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0 5374 onto the eval stack when removing the delegate. 5375 5376 2005-03-12 Joe Shaw <joeshaw (a] novell.com> 5377 5378 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for 5379 LT_CURRENT. Set it to the autoconf variable. 5380 5381 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy 5382 classes that disconnects the signal handler delegate from the 5383 service object. Fixes a big leak of proxy objects on the 5384 client side of things. Patch from Ben Maurer 5385 <bmaurer (a] ximian.com> 5386 5387 2005-03-12 Colin Walters <walters (a] verbum.org> 5388 5389 * bus/driver.c (write_args_for_direction): New function, 5390 parses a type signature into arguments and outputs to 5391 XML. 5392 (bus_driver_handle_introspect): Use it instead of 5393 hardcoding XML for certain signatures. 5394 5395 * bus/Makefile.am (dbus-bus-introspect.xml): Add 5396 dependency on dbus-daemon. 5397 5398 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported 5399 argument, pass it to dbus_binding_tool_output_glib_client. 5400 5401 * glib/dbus-binding-tool-glib.c 5402 (generate_client_glue): Protect against multiple inclusion. 5403 (dbus_binding_tool_output_glib_client): Add 5404 G_BEGIN_DECLS/G_END_DECLS. 5405 5406 * glib/dbus-binding-tool-glib.c (compute_client_method_name): 5407 Change to just take iface prefix directly. 5408 (write_formal_parameters): Clarify error message. 5409 (check_supported_parameters): New function; checks to see type 5410 signatures of method parameters are supported. 5411 (generate_client_glue): Handle ignore_unsupported flag. 5412 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported 5413 parameter. 5414 5415 * glib/Makefile.am (dbus-glib-bindings.h): Pass 5416 --ignore-unsupported by default until glib bindings 5417 support arrays. 5418 5419 2005-03-11 Colin Walters <walters (a] verbum.org> 5420 5421 * glib/Makefile.am: Generate dbus-glib-bindings.h and 5422 install it. 5423 5424 * bus/print-introspect.c: New file; prints introspection 5425 data for a given name and object path. 5426 5427 * bus/run-with-tmp-session-bus.sh: New file, refactored 5428 from test/glib/run-test.sh. Creates a temporary session 5429 bus and runs another program. 5430 5431 * test/glib/run-test.sh: Refactor to invoke 5432 run-with-tmp-session-bus.sh. 5433 5434 * bus/driver.c (bus_driver_handle_introspect): Fix to print new 5435 introspection format. Also change to use DBUS_TYPE_x_AS_STRING 5436 macros instead of hardcoding. 5437 5438 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update. 5439 5440 2005-03-11 Joe Shaw <joeshaw (a] novell.com> 5441 5442 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove 5443 this unref; it doesn't match up evenly in some codepaths. 5444 (_dbus_connection_block_pending_call): Unref at every exitpoint; 5445 this evenly matches with the ref near the top of this function. 5446 5447 2005-03-09 Joe Shaw <joeshaw (a] novell.com> 5448 5449 * dbus/dbus-object-tree.c 5450 (_dbus_object_tree_unregister_and_unlock): If checks are enabled 5451 and we try to unregister a path that's not registered, still go 5452 through the process of unlocking and don't just return. 5453 5454 2005-03-09 Colin Walters <walters (a] verbum.org> 5455 5456 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls 5457 to this are generated for client-side wrappers. Invokes a 5458 D-BUS method and returns reply values. 5459 5460 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New 5461 function; writes signature string for argument direction. 5462 (write_args_for_direction): Change to pass input values directly 5463 instead of via address, and fix indentation. 5464 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also 5465 make generated wrappers inlineable. 5466 5467 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add 5468 note about using dbus_type_is_fixed. 5469 5470 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to 5471 dbus/dbus-signature.c as dbus_type_is_fixed. 5472 5473 All callers updated. 5474 5475 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here 5476 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed. 5477 5478 * dbus/dbus-signature.h: Prototype. 5479 5480 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix 5481 error printf code. 5482 5483 * test/glib/test-dbus-glib.c (main): Be sure to clear error as 5484 appropriate instead of just freeing it. 5485 (main): Free returned strings using g_free. 5486 5487 * test/glib/Makefile.am (test-service-glib-glue.h) 5488 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool. 5489 5490 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT; 5491 simply maps a simple D-BUS type to GType. 5492 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to 5493 GType. 5494 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and 5495 initialize the value with it. 5496 (dbus_gvalue_binding_type_from_type): Unused, delete. 5497 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for 5498 various types instead of unmarshalling to value data directly. 5499 Remove can_convert boolean. 5500 (dbus_gvalue_marshal): Remove duplicate initialization; switch to 5501 returning directly instead of using can_convert boolean. 5502 (dbus_gvalue_store): New function; not related to D-BUS per-se. 5503 Stores a GValue in a pointer to a value of its corresponding C 5504 type. 5505 5506 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type, 5507 add dbus_gvalue_store. 5508 5509 2005-03-08 Joe Shaw <joeshaw (a] novell.com> 5510 5511 Fix a bunch of lifecycle and memory management problems 5512 in the mono bindings. 5513 5514 * mono/Arguments.cs (Arguments): Implement IDisposable 5515 5516 * mono/Bus.cs (Bus): Don't allow public instantiation. This is 5517 strictly a static class. 5518 5519 * mono/Connection.cs: Move the DBusObjectPathVTable and associated 5520 delegates into this file. 5521 (Connection): Implement IDisposable. 5522 (Dispose): Disconnect the connection and set the raw connection 5523 pointer to IntPtr.Zero. 5524 (~Connection): Call Dispose(). 5525 (RegisterObjectPath): Added. Manages the registration of object 5526 paths so we can cleanly disconnect them at dispose/finalize time. 5527 (UnregisterObjectPath): Ditto. 5528 (set_RawConnection): Unregister all of the object paths when 5529 changing the underlying DBusConnection. Add them back onto the 5530 new connection, if any. 5531 5532 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any 5533 more unmanaged resources anymore, so it's not necessary. Move all 5534 the DBusObjectPathVTable stuff out of here. 5535 (Handler): Save references to our delegates so that they don't get 5536 finalized. Call Connection.RegisterObjectPath() instead of 5537 dbus_connection_register_object_path() directly. 5538 (Message_Called): Dispose the message after we're finished with 5539 it. 5540 5541 * mono/Message.cs (Message): Implement IDisposable. 5542 (Dispose): Dispose the Arguments, and set the RawMessage to 5543 IntPtr.Zero. 5544 (SendWithReplyAndBlock): We own the ref to the reply that comes 5545 back from dbus_connection_send_with_reply_and_block() so add a 5546 comment about that and unref it after we've constructed a managed 5547 MethodReturn class around it. Fixes a big, big leak. 5548 5549 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose 5550 method. 5551 (BuildSignalHandler): After we've sent the Signal message, dispose 5552 of it. 5553 (BuildMethod): Dispose of the method call and reply messages after 5554 we've sent the message and extracted the data we want from the 5555 reply. 5556 5557 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose() 5558 anymore. 5559 (Service_FilterCalled): Dispose of the message after we're 5560 finished with it. 5561 5562 2005-03-08 Joe Shaw <joeshaw (a] novell.com> 5563 5564 * dbus/dbus-connection.c (dbus_connection_send_with_reply): 5565 After we attach our pending call to the connection, unref 5566 it. Fixes a leak. 5567 5568 * mono/Connection.cs (set_RawConnection): Disconnect our 5569 filter and match callbacks from the old connection and 5570 reconnect them to the new connection, if any. 5571 5572 * mono/DBusType/Array.cs: "Code" is a static member, so 5573 don't use "this" to refer to it. Fix for stricter checking 5574 in Mono 1.1.4. 5575 5576 * mono/DBusType/ObjectPath.cs (Append): Don't leak the 5577 object path that we pass into unmanaged code. 5578 5579 * mono/DBusType/String.cs (Append): Don't leak the string 5580 that we pass into unmanged code. 5581 5582 2005-03-07 John (J5) Palmieri <johnp (a] redhat.com> 5583 * NEWS: Update for 0.31 5584 5585 * configure.in: Release 0.31 5586 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping 5587 5588 * qt/Makefile.am: fixed build 5589 5590 * dbus/Makefile.am: soname bump for libdbus 5591 5592 * glib/Makefile.am: soname bump for libdbus-glib 5593 5594 2005-03-05 Havoc Pennington <hp (a] redhat.com> 5595 5596 * dbus/dbus-sysdeps.c: 5597 (pseudorandom_generate_random_bytes_buffer): fix to have no return 5598 value 5599 (_dbus_generate_random_bytes_buffer): fix return value 5600 5601 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure 5602 checks actually work, from Tom Parker <fdo (a] tevp.net> 5603 5604 2005-03-01 Colin Walters <walters (a] verbum.org> 5605 5606 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility 5607 functions copied from dbus-glib-tool.c. 5608 (main): Convert lots of error code to use them. 5609 Also add some testing for introspection bits. 5610 5611 2005-03-01 Colin Walters <walters (a] verbum.org> 5612 5613 * doc/TODO: Remove introspection signature TODO. 5614 5615 2005-02-27 Colin Walters <walters (a] verbum.org> 5616 5617 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type): 5618 Change return value to const char * instead of int so we can do 5619 full signatures. 5620 (struct PropertyInfo, struct ArgInfo): Store char *. 5621 (property_info_new, arg_info_new): Update parameters, strdup. 5622 (property_info_unref, arg_info_unref): Free. 5623 5624 * glib/dbus-gidl.h: Update prototypes. 5625 5626 * glib/dbus-gparser.c (basic_type_from_string): Delete. 5627 (validate_signature): New function, just validates signature and 5628 sets GError. 5629 (parse_property, parse_arg): Invoke validate_signature. Store 5630 signature instead of just type code. 5631 5632 * glib/dbus-gvalue.c (base_type_from_signature): New utility 5633 function to return a primary type for a signature, dropping 5634 information about types in container types. 5635 (dbus_gvalue_genmarshal_name_from_type) 5636 (dbus_gvalue_binding_type_from_type) 5637 (dbus_gvalue_ctype_from_type): Update to take full signature 5638 instead of type code. 5639 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c. 5640 5641 * glib/dbus-gvalue.h: Update prototypes for above. 5642 5643 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to 5644 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type. 5645 (introspect_properties, introspect_signals, write_interface): 5646 Update to handle signatures, and remove usage of 5647 _dbus_gutils_type_to_string. 5648 (handle_introspect): Print out type codes instead of e.g. "string" 5649 in hardcoded introspection XML; also use x_AS_STRING constants 5650 instead of hardcoding in string. 5651 5652 * glib/dbus-glib-tool.c (pretty_print): Handle signature change 5653 to string. Remove usage of _dbus_gutils_type_to_string. 5654 5655 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete. 5656 5657 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for 5658 deletion. 5659 5660 * glib/dbus-binding-tool-glib.c (compute_marshaller) 5661 (compute_marshaller_name, generate_glue): Handle signature change 5662 to string. 5663 (write_formal_parameters, write_args_for_direction): Ditto, and 5664 remove FIXME. 5665 5666 * tools/dbus-tree-view.c (type_to_string): Delete. 5667 (info_set_func_text): Update to print full signatures. 5668 5669 * test/glib/test-service-glib.xml: Change types to new 5670 introspection format. 5671 5672 2005-02-26 Havoc Pennington <hp (a] redhat.com> 5673 5674 * doc/TODO: remove the "guid" item 5675 5676 * test/glib/test-profile.c (no_bus_thread_func): use open_private 5677 (with_bus_thread_func): use open_private 5678 5679 * dbus/dbus-connection.c (dbus_connection_open_private): new 5680 function that works like the old dbus_connection_open() 5681 (dbus_connection_open): now returns an existing connection if 5682 possible 5683 5684 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass 5685 through the GUID to the transport 5686 5687 * dbus/dbus-server.c (_dbus_server_init_base): keep around the 5688 GUID in hex-encoded form. 5689 5690 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 5691 pass GUID argument in to the transport 5692 5693 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add 5694 guid argument 5695 5696 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument 5697 5698 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument 5699 5700 2005-02-25 Havoc Pennington <hp (a] redhat.com> 5701 5702 * doc/dbus-specification.xml: document the GUID thing 5703 5704 * dbus/dbus-server.c (_dbus_server_init_base): initialize a 5705 globally unique ID for the server, and put a "guid=hexencoded" 5706 field in the address 5707 5708 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h 5709 5710 * dbus/dbus-message.c: ditto 5711 5712 * dbus/dbus-dataslot.c: ditto 5713 5714 * dbus/dbus-list.c: ditto 5715 5716 * dbus/dbus-internals.h: wait, just include 5717 dbus-threads-internal.h here 5718 5719 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for 5720 use in main library 5721 5722 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function 5723 5724 2005-02-24 Colin Walters <walters (a] verbum.org> 5725 5726 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml 5727 5728 2005-02-24 John (J5) Palmieir <johnp (a] redhat.com> 5729 5730 * glib/Makefile.am: added dbus-gobject.h to sources list 5731 so distcheck doesn't fail 5732 5733 2005-02-24 Havoc Pennington <hp (a] redhat.com> 5734 5735 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so 5736 you must disconnect before unref, since locking and other things 5737 are screwed up otherwise. Fix assorted other locking stuff. 5738 5739 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type): 5740 fix compilation 5741 5742 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers 5743 into a private header and don't export from the library 5744 5745 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff 5746 5747 2005-02-24 Colin Walters <walters (a] verbum.org> 5748 5749 * dbus/dbus-signature.c: New file; implements various functions 5750 related to type signatures. Includes an interator for parsing, 5751 validation functions. 5752 (dbus_type_is_basic): Moved here from 5753 dbus-marshal-basic.c:_dbus_type_is_basic. 5754 (dbus_type_is_container): Moved here from 5755 dbus-marshal-basic.c:_dbus_type_is_container. 5756 5757 All callers of _dbus_type_is_container and _dbus_type_is_basic 5758 updated, and include dbus-signature.h. 5759 5760 * dbus/dbus-signature.h: New file; prototypes for the above. 5761 5762 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c, 5763 dbus-signature.h. 5764 5765 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility 5766 function factored out of _dbus_first_type_in_signature. 5767 (_dbus_first_type_in_signature_c_str): New function; returns first 5768 type code for a type signature character. 5769 5770 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str, 5771 handle function moves. 5772 5773 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next. 5774 5775 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New 5776 function; skips to next complete type in type signature. 5777 Implemented using previous skip_one_complete_type. Now 5778 skip_one_complete_type just delegates to 5779 _dbus_type_signature_next. 5780 5781 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved 5782 to dbus-signature.c 5783 (_dbus_type_is_container): Ditto. 5784 5785 * doc/dbus-specification.xml: Update introspection sample to 5786 use real type signatures. 5787 5788 * dbus/dbus-test.h: Prototype signature test. 5789 5790 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run 5791 signature tests. 5792 5793 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error. 5794 5795 2005-02-23 John (J5) Palmieri <johnp (a] redhat.com> 5796 5797 * python/dbus_bindings.pyx.in (PendingCall::get_reply): 5798 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply 5799 5800 2005-02-21 Colin Walters <walters (a] verbum.org> 5801 5802 * dbus/dbus-test-main.c (main): Take optional specific test 5803 argument. 5804 5805 * dbus/dbus-test.c (run_test): New function, runs a test function 5806 with no data directory. 5807 (run_data_test): Like above, but takes data directory. 5808 (dbus_internal_do_not_use_run_tests): Take 5809 specific test argument. Replace lots of cut n' paste code 5810 with run_test and run_data_test. 5811 5812 * dbus/dbus-test.h: Update prototype for 5813 dbus_internal_do_not_use_run_tests. 5814 5815 2005-02-20 Havoc Pennington <hp (a] redhat.com> 5816 5817 Fix bugs reported by Daniel P. Berrange 5818 5819 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function 5820 (protected_change_watch): new function 5821 (_dbus_server_toggle_watch, _dbus_server_remove_watch) 5822 (_dbus_server_add_watch): change to work like the 5823 dbus-connection.c equivalents; like those, probably kind of 5824 busted, but should at least mostly work for now 5825 (dbus_server_disconnect): drop the lock if we were already 5826 disconnected, patch from Daniel P. Berrange 5827 5828 * dbus/dbus-server.c (_dbus_server_toggle_timeout) 5829 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the 5830 same stuff 5831 5832 * doc/TODO: todo about unscrewing this mess 5833 5834 2005-02-19 Colin Walters <walters (a] verbum.org> 5835 5836 * glib/dbus-binding-tool-glib.c 5837 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting. 5838 5839 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well 5840 as errno.h and sys/stat.h. 5841 (lose): New function, prints error with 5842 newline and exits. 5843 (lose_gerror): Similar, but takes GError for message. 5844 (main): Add --output argument to specify output file to write to, 5845 instead of always printing to stdout. In this mode, determine 5846 timestamps on source files to see whether any are newer than the 5847 target file. If not, exit. Also convert a number of error 5848 messages to use lose (since it's shorter), and switch to using 5849 g_io_channel_shutdown. 5850 5851 2005-02-19 Havoc Pennington <hp (a] redhat.com> 5852 5853 * glib/dbus-gobject.c 5854 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs 5855 5856 * glib/dbus-glib.c: fix doxygen warnings 5857 5858 * glib/dbus-gparser.c (parse_annotation): error if an annotation 5859 is found on an <arg> 5860 5861 2005-02-17 Colin Walters <walters (a] verbum.org> 5862 5863 * glib/dbus-gobject.h: Don't export 5864 _dbus_glib_marshal_dbus_message_to_gvalue_array. 5865 5866 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename. 5867 (invoke_object_method): Handle it. 5868 5869 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): 5870 Handle rename. 5871 5872 2005-02-17 Colin Walters <walters (a] verbum.org> 5873 5874 * bus/.cvsignore, doc/.cvsignore 5875 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore: 5876 Update. 5877 5878 2005-02-17 Colin Walters <walters (a] verbum.org> 5879 5880 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS): 5881 Rename to DBUS_SERVICE_DBUS. 5882 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS. 5883 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL. 5884 Change the value from "org.freedesktop.Local" 5885 to "org.freedesktop.DBus.Local". 5886 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS. 5887 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to 5888 DBUS_INTERFACE_INTROSPECTABLE. 5889 Change the value from "org.freedesktop.Introspectable" 5890 to "org.freedesktop.DBus.Introspectable". 5891 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to 5892 DBUS_INTERFACE_PROPERTIES. 5893 Change the value from "org.freedesktop.Properties" 5894 to "org.freedesktop.DBus.Properties". 5895 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to 5896 DBUS_INTERFACE_PEER. 5897 Change the value from "org.freedesktop.Peer" 5898 to "org.freedesktop.DBus.Peer". 5899 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 5900 DBUS_INTERFACE_LOCAL. 5901 Change the value from "org.freedesktop.Local" 5902 to "org.freedesktop.DBus.Local". 5903 5904 All other users of those constants have been changed. 5905 5906 * bus/driver.c (bus_driver_handle_introspect): Use constants. 5907 5908 * glib/dbus-gobject.c (handle_introspect): Use constants. 5909 5910 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename. 5911 5912 2005-02-17 Colin Walters <walters (a] verbum.org> 5913 5914 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean. 5915 (parse_node, parse_interface, parse_method, parse_signal) 5916 (parse_property, parse_annotation): Lose if we're currently in an 5917 annotation. 5918 (parse_annotation): New function. 5919 (parser_start_element, parser_end_element): Handle annotation. 5920 (parse_method, parse_interface): Remove support for c_name attribute, 5921 switch to annotations. 5922 5923 * glib/dbus-gidl.h (interface_info_get_binding_names) 5924 (method_info_get_binding_names) 5925 (interface_info_get_binding_name, method_info_get_binding_name) 5926 (interface_info_set_binding_name, method_info_set_binding_name): 5927 Remove. 5928 (interface_info_get_annotations, method_info_get_annotations) 5929 (interface_info_get_annotation, method_info_get_annotation) 5930 (interface_info_add_annotation, method_info_add_annotation): 5931 Prototype. 5932 5933 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations" 5934 for "bindings". 5935 (struct MethodInfo): Ditto. 5936 Straightfoward conversion of binding methods into annotation methods 5937 as prototyped. 5938 5939 * glib/dbus-glib-tool.c (pretty_print): Print annotations. 5940 5941 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define. 5942 5943 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue): 5944 Use new annotation API. 5945 5946 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add 5947 annotation element. 5948 5949 * doc/dbus-specification.xml: Discuss introspection annotations, 5950 include list of well-known annotations. 5951 5952 * test/glib/test-service-glib.xml: Make validate against new DTD. 5953 5954 2005-02-17 Colin Walters <walters (a] verbum.org> 5955 5956 This patch is based on initial work from 5957 Paul Kuliniewicz <kuliniew (a] purdue.edu>. 5958 5959 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move 5960 initialization of GValue from dbus type to here. 5961 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string 5962 for the "glib-genmarshal" program from a DBus type. 5963 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type 5964 into the C name for it we use in the glib bindings. 5965 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a 5966 glib C type (not GValue). 5967 (dbus_gvalue_demarshal): invoke dbus_gvalue_init. 5968 5969 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here 5970 from dbus-gobject.c. 5971 5972 * glib/dbus-gutils.h: Prototype it. 5973 5974 * glib/dbus-gproxy.c: Include new dbus-gobject.h. 5975 (marshal_dbus_message_to_g_marshaller): Use new shared function 5976 dbus_glib_marshal_dbus_message_to_gvalue_array. 5977 5978 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute. 5979 Will be changed once we have annotations. 5980 5981 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to 5982 GStaticRWLock. Callers updated. 5983 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated. 5984 (string_table_next): New function for iterating over zero-terminated 5985 string value array. 5986 (string_table_lookup): New function; retrieves specific entry in 5987 array. 5988 (get_method_data): New function; look up method data in object data chunk. 5989 (object_error_domain_prefix_from_object_info) 5990 (object_error_code_from_object_info): New functions, but not implemented yet. 5991 (method_interface_from_object_info): New function; retrieve interface name. 5992 (method_name_from_object_info): New function; retrieve method name. 5993 (method_arg_info_from_object_info): New function; retrieve argument data. 5994 (arg_iterate): New function; iterates over serialized argument data. 5995 (method_dir_signature_from_object_info): New function; returns a 5996 GString holding type signature for arguments for just one 5997 direction (input or output). 5998 (method_input_signature_from_object_info) 5999 (method_output_signature_from_object_info): New functions. 6000 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function; 6001 converts dbus message arguments into a GValue array. Used for both 6002 signal handling and method invocation. 6003 (struct DBusGlibWriteIterfaceData): New utility structure. 6004 (write_interface): New function; generate introspection XML for 6005 an interface. 6006 (introspect_interfaces): New function; gathers all interface->methods, 6007 generates introspection XML for them. 6008 (handle_introspect): Invoke introspect_interfaces. 6009 (get_object_property): Be sure to zero-initalize stack-allocated GValue. 6010 (lookup_object_and_method): New function; examines an incoming message 6011 and attempts to match it up (via interface, method name, and argument 6012 signature) with a known object and method. 6013 (gerror_domaincode_to_dbus_error_name): New function; converts a 6014 GError domain and code into a DBus error name. Needs GError data 6015 added to object introspection to work well. 6016 (gerror_to_dbus_error_message): Creates a DBusMessage error return from 6017 GError. 6018 (invoke_object_method): New function to invoke an object method 6019 looked up via lookup_object_and_method. Parses the incoming 6020 message, turns it into a GValue array, then invokes the marshaller 6021 specified in the DBusGMethodInfo. Creates a new message with 6022 either return values or error message as appropriate. 6023 (gobject_message_function): Invoke lookup_object_and_method and 6024 invoke_object_method. 6025 6026 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h. 6027 (enum DBusBindingOutputMode): New enum for binding output modes. 6028 (pretty_print): Print binding names. 6029 (dbus_binding_tool_error_quark): GError bits. 6030 (version): Fix typo. 6031 (main): Create GIOChannel for output. Parse new --mode argument, 6032 possible values are "pretty-print", "glib-server", "glib-client". 6033 Use mode to invoke appropriate function. 6034 6035 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array. 6036 6037 * glib/dbus-glib-tool.h: New header, just includes GError bits 6038 for now. 6039 6040 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable; 6041 maps binding style to name. 6042 (struct MethodInfo): Ditto. 6043 (get_hash_keys, get_hash_key): Utility function, returns keys for 6044 a GHashTable. 6045 (interface_info_new, method_info_new): Initialize bindings. 6046 (interface_info_unref, method_info_unref): Destroy bindings. 6047 (method_info_get_binding_names, method_info_get_binding_name) 6048 (interface_info_get_binding_names, interface_info_get_binding_name): 6049 Functions for retrieving binding names. 6050 (method_info_set_binding_name, interface_info_set_binding_name): 6051 Functions for setting binding names. 6052 6053 * glib/dbus-binding-tool-glib.h: New file, has prototypes 6054 for glib binding generation. 6055 6056 * glib/dbus-binding-tool-glib.c: New file, implements server-side 6057 and client-side glib glue generation. 6058 6059 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add 6060 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h, 6061 dbus-glib-tool.h. 6062 6063 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor 6064 of using GClosureMarshal directly. 6065 (struct DBusGObjectInfo): Add n_infos member. 6066 6067 * test/glib/test-service-glib.xml: New file; contains introspection data 6068 for MyTestObject used in test-service-glib.c. 6069 6070 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum. 6071 (my_object_do_nothing, my_object_increment, my_object_throw_error) 6072 (my_object_uppercase, my_object_many_args): New test methods. 6073 (main): Use dbus_g_object_class_install_info to include generated object 6074 info. 6075 6076 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c, 6077 as well as client-side bindings. 6078 6079 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h. 6080 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods 6081 using both the dbus_gproxy stuff directly as well as the generated bindings. 6082 6083 2005-02-15 Havoc Pennington <hp (a] redhat.com> 6084 6085 * dbus/dbus-connection.c (dbus_connection_dispatch): always 6086 complete a pending call, don't run filters first. 6087 6088 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use 6089 dbus_pending_call_steal_reply 6090 6091 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call 6092 _dbus_connection_block_pending_call 6093 (dbus_pending_call_get_reply): change to steal_reply and return a 6094 ref 6095 6096 * dbus/dbus-connection.c 6097 (dbus_connection_send_with_reply_and_block): port to work in terms 6098 of DBusPendingCall 6099 (_dbus_connection_block_pending_call): replace block_for_reply 6100 with this 6101 6102 2005-02-14 Havoc Pennington <hp (a] redhat.com> 6103 6104 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): 6105 properly handle looking up group information by name; fix 6106 from j (a] bootlab.org 6107 6108 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6109 6110 * dbus/dbus-connection.c (dbus_connection_return_message) 6111 (dbus_connection_borrow_message): hold dispatch lock while message 6112 is outstanding 6113 (_dbus_connection_block_for_reply): hold dispatch lock while we 6114 block for the reply, so nobody steals our reply 6115 (dbus_connection_pop_message): hold the dispatch lock while we 6116 pluck the message 6117 6118 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6119 6120 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch) 6121 (_dbus_connection_release_dispatch) 6122 (_dbus_connection_acquire_io_path) 6123 (_dbus_connection_release_io_path): make the mutex and condvar 6124 control access to the "acquired" flag. Drop the connection lock 6125 while waiting on the condvar. Hopefully these are baby steps in 6126 roughly the right direction. 6127 6128 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6129 6130 * dbus/dbus-connection.c: use separate mutexes for the condition 6131 variables; this is some kind of baseline for sanity, but the 6132 condition variables still aren't used correctly afaict 6133 6134 2005-02-13 Havoc Pennington <hp (a] redhat.com> 6135 6136 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): 6137 fix a double-unlock 6138 6139 * dbus/dbus-connection.c 6140 (_dbus_connection_detach_pending_call_unlocked): add this 6141 6142 Initial semi-correct pass through to fix thread locking; there are 6143 still some issues with the condition variable paths I'm pretty 6144 sure 6145 6146 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate 6147 lock/unlock calls 6148 6149 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked): 6150 rename to add _unlocked 6151 (struct DBusConnection): move "dispatch_acquired" and 6152 "io_path_acquired" to use only one bit each. 6153 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS 6154 (dbus_connection_set_watch_functions): hacky fix to reentrancy 6155 (_dbus_connection_add_watch, _dbus_connection_remove_watch) 6156 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 6157 (_dbus_connection_remove_timeout) 6158 (_dbus_connection_toggle_timeout): drop lock when calling out to 6159 user functions; done in a hacky/bad way. 6160 (_dbus_connection_send_and_unlock): add a missing unlock 6161 (_dbus_connection_block_for_reply): add a missing unlock 6162 6163 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): 6164 drop lock in a hacky probably unsafe way to call out to user 6165 function 6166 6167 2005-02-12 Havoc Pennington <hp (a] redhat.com> 6168 6169 * tools/dbus-tree-view.c (info_set_func_text): display more 6170 details on args 6171 6172 * bus/driver.c (bus_driver_handle_list_services): list the bus 6173 driver 6174 6175 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied 6176 6177 * glib/dbus-gidl.c (signal_info_get_n_args): new function 6178 (method_info_get_n_args): new function 6179 6180 2005-02-12 Havoc Pennington <hp (a] redhat.com> 6181 6182 * bus/driver.c (bus_driver_handle_introspect): add introspection 6183 for bus driver 6184 6185 2005-02-12 Havoc Pennington <hp (a] redhat.com> 6186 6187 * bus/driver.c: put the signature of each bus driver method in the 6188 table of handlers and check it on incoming calls; this isn't 6189 really useful, but going to add introspect support in a minute. 6190 6191 2005-02-11 Joe Shaw <joeshaw (a] novell.com> 6192 6193 * mono/Connection.cs: The unpredictability of finalizers in mono 6194 prevents us from deterministically disconnecting the filters from 6195 the Service class's finalizer, so move tracking of filters and 6196 matches here. Add API for that. 6197 6198 * mono/Service.cs: Remove the code, add code which calls the 6199 methods now on the Connection class. 6200 6201 2005-02-11 John (J5) Palmieri <johnp (a] redhat.com> 6202 6203 * python/dbus.py (class Sender): added to support dbus signals better 6204 (Bus::add_signal_receiver): added expand_args parameter which defaults 6205 to True. When expand args is True the signal handler will pass the 6206 message arguments as parameters to the signal handler. If False 6207 revert to previous behavior where the signal handler must get the 6208 argument list from the message. This is to help port applications 6209 like HAL that have a tendancy to send variable length argument lists. 6210 self._match_rule_to_receivers is now a dict of dicts. 6211 (Bus::remove_signal_receiver): pop handler off the dict intead of 6212 removing it from a list 6213 (Bus::_signal_func): change signal handlers so that interface, 6214 signal_name, service, path and message are packed into a Sender 6215 object and that is passed to the handler. If expand_args is True 6216 extract the args list from the message and append it to the parameter 6217 list 6218 6219 * python/dbus_bindings.pyx.in (class Signature): added to support 6220 signiature types 6221 (MessageIter::__init__): changed iteration limit to match D-BUS 6222 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 6223 STRUCT and VARIENT type support 6224 (MessageIter::python_value_to_dbus_sig): made recursive to support 6225 recursive types 6226 (MessageIter::append*): added Signature, dict, tuple 6227 support 6228 6229 * python/examples/example-client.py: added examples of getting tuples 6230 and dicts 6231 6232 * python/examples/example-service.py: added examples of sending tuples 6233 and dicts 6234 6235 * python/examples/example-signal-recipient.py: Fixed to handle new 6236 signal callback format 6237 6238 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6239 6240 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail 6241 (call dbus_g_proxy_add_signal) 6242 6243 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 6244 escape the hostname 6245 (_dbus_server_new_for_domain_socket): escape the path 6246 6247 * dbus/dbus-address.c (dbus_address_escape_value): new 6248 (dbus_address_unescape_value): new 6249 (dbus_parse_address): unescape values 6250 6251 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function 6252 6253 * doc/dbus-specification.xml: explain how to escape values in 6254 addresses 6255 6256 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6257 6258 * dbus/dbus-message-factory.c (generate_special): modify test to 6259 avoid using a non-basic dict key 6260 6261 * dbus/dbus-marshal-validate-util.c: add test for the below 6262 6263 * doc/dbus-specification.xml: require that dict keys are a basic 6264 type 6265 6266 * dbus/dbus-marshal-validate.c 6267 (_dbus_validate_signature_with_reason): require that dict key is a 6268 basic type 6269 6270 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6271 6272 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): 6273 change to be _and_unlock instead of _unlocked 6274 6275 * dbus/dbus-connection.c 6276 (_dbus_connection_send_preallocated_unlocked_no_update): rename to 6277 have no_update so we can find this bug quickly in future 6278 6279 2005-02-10 Havoc Pennington <hp (a] redhat.com> 6280 6281 * dbus/dbus-message-util.c (verify_test_message): tests for string 6282 array 6283 6284 * dbus/dbus-message.c (dbus_message_append_args_valist): add 6285 support for arrays of string/signature/path 6286 6287 2005-02-10 Joe Shaw <joeshaw (a] novell.com> 6288 6289 * dbus/dbus-connection.c 6290 (_dbus_connection_queue_received_message_link, 6291 _dbus_connection_message_sent): Add the path to 6292 the verbose output. 6293 (_dbus_connection_send_preallocated_and_unlock): Added. Calls 6294 _dbus_connection_send_preallocated_unlocked(), updated the 6295 dispatch status, and unlocks. Fixes a bug where certain 6296 situations (like a broken pipe) could cause a Disconnect message 6297 to not be sent, tricking the bus into thinking a service was still 6298 there when the process had quit. 6299 (_dbus_connection_send_preallocated): Call 6300 _dbus_connection_send_preallocated_and_unlock(). 6301 (_dbus_connection_send_and_unlock): Added. Calls 6302 _dbus_connection_send_preallocated_and_unlock(). 6303 (dbus_connection_send): Call _dbus_connection_send_and_unlock(). 6304 (dbus_connection_send_with_reply): Update the dispatch status and 6305 unlock. 6306 6307 * mono/Service.cs (~Service): Added. Removes the filter so that 6308 we don't get unmanaged code calling back into a GCed delegate. 6309 (RemoveFilter); Added. 6310 6311 2005-02-09 John (J5) Palmieri <johnp (a] redhat.com> 6312 6313 * dbus/dbus-message.c (dbus_message_iter_open_container): 6314 - Removed check for iterator type being an array because 6315 get_arg_type does not work with writer iterators 6316 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL 6317 6318 2005-02-07 Havoc Pennington <hp (a] redhat.com> 6319 6320 * doc/dbus-specification.xml: some more language cleanups; add 6321 stuff about how to deal with invalid protocol and extension 6322 points; add _ to allowed chars in auth commands; add EXTENSION_ 6323 auth command prefix 6324 6325 2005-02-06 Havoc Pennington <hp (a] redhat.com> 6326 6327 * s/expected/required/ in a couple places for clarity 6328 6329 2005-02-07 Colin Walters <walters (a] verbum.org> 6330 6331 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for 6332 sender or proposed_recipient. 6333 6334 2005-02-06 Havoc Pennington <hp (a] redhat.com> 6335 6336 * dbus/dbus-message-factory.c (generate_special): more tests 6337 6338 * dbus/dbus-marshal-validate.c (validate_body_helper): detect 6339 array length that exceeds the maximum 6340 6341 2005-02-05 Havoc Pennington <hp (a] redhat.com> 6342 6343 * dbus/dbus-message-factory.c (generate_special): more test cases, 6344 increasing coverage 6345 6346 * dbus/dbus-marshal-validate.c (validate_body_helper): return the 6347 reason why a signature was invalid 6348 6349 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to 6350 skip the length of the string before we look at it in validation 6351 6352 * dbus/dbus-string-util.c (_dbus_string_test): add tests for 6353 equal_substring 6354 6355 * dbus/dbus-message.c (_dbus_message_loader_new): default 6356 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH 6357 6358 2005-02-05 Havoc Pennington <hp (a] redhat.com> 6359 6360 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash 6361 if the signature of a variant was empty 6362 (_dbus_validate_signature_with_reason): catch "(a)" (array inside 6363 struct with no element type) 6364 6365 * dbus/dbus-message-factory.c (generate_uint32_changed): add more 6366 mangled messages to break things 6367 6368 2005-02-04 Havoc Pennington <hp (a] redhat.com> 6369 6370 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use 6371 g_quark_try_string() so it actually can return 0 6372 (dbus_g_proxy_connect_signal): ditto 6373 6374 2005-02-04 Havoc Pennington <hp (a] redhat.com> 6375 6376 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a 6377 bogus warning 6378 (tristring_from_message): assert cleanly on null path/interface 6379 (should not be possible though I decided later) 6380 (dbus_g_proxy_dispose): move proxy manager unregistration here 6381 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of 6382 g_return_if_fail() checks 6383 6384 2005-02-04 Havoc Pennington <hp (a] redhat.com> 6385 6386 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile 6387 6388 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler 6389 (with some minor changes) 6390 6391 * doc/dbus-specification.xml: add deprecated attribute to 6392 introspection format 6393 6394 2005-01-31 Havoc Pennington <hp (a] redhat.com> 6395 6396 * glib/dbus-gproxy.c: rewrite how signals work again, this time I 6397 think it's sort of right 6398 6399 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6400 6401 * tools/dbus-viewer.c: kind of half-ass hook up the option menu. 6402 6403 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6404 6405 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged 6406 6407 * autogen.sh: change to autotools 1.9 6408 6409 * glib/dbus-gproxy.c: completely change how signals work 6410 (dbus_g_proxy_add_signal): new function to specify signature of a 6411 signal 6412 (dbus_g_proxy_emit_received): marshal the dbus message to GValues, 6413 and g_warning if the incoming message has the wrong signature. 6414 6415 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6416 6417 * tools/dbus-names-model.c (have_names_notify): fix this 6418 6419 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean 6420 up the string array handling a bit 6421 6422 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6423 6424 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function 6425 (dbus_g_pending_call_cancel): new function 6426 6427 * dbus/dbus-glib.h: move GType decls for connection/message here; 6428 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in 6429 here, just kind of rationalizing how we handle all that 6430 6431 * tools/dbus-names-model.c: new file for a tree model listing the 6432 services on a bus 6433 6434 * tools/dbus-tree-view.c (model_new): use proper typing on the 6435 model rows 6436 6437 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6438 6439 * glib/dbus-gmain.c: add a custom GSource back that just checks 6440 whether the message queue has anything in it; otherwise, there are 6441 cases where we won't see messages in the queue since there was no 6442 IO visible to the glib main loop 6443 6444 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE): 6445 increase default message timeout to 25 seconds 6446 6447 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6448 6449 * test/glib/test-profile.c (no_bus_stop_server): remove the 6450 warning about the g_warning that I just fixed 6451 6452 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the 6453 custom source, seems to be a lot easier to understand and work 6454 better. 6455 6456 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6457 6458 I think this main loop thing is conceptually broken, but here are 6459 some band aids. I'll maybe rewrite it in a minute. 6460 6461 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the 6462 custom GSource, so don't pass it in; confusing 6463 (gsource_server_finalize, gsource_connection_finalize): add 6464 finalize handlers that remove all the watches. 6465 6466 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6467 6468 * glib/dbus-gobject.c (introspect_properties): fix the XML 6469 generated 6470 6471 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag 6472 which effectively detects the use of freed messages 6473 6474 * glib/dbus-gobject.c (handle_introspect): modify and return the 6475 reply message instead of the incoming message 6476 6477 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked): 6478 gee, maybe it should SEND THE XML instead of just making a string 6479 and freeing it again ;-) 6480 6481 * tools/dbus-print-message.c (print_message): improve printing of 6482 messages 6483 6484 * configure.in: add debug-glib.service to the output 6485 6486 2005-01-30 Havoc Pennington <hp (a] redhat.com> 6487 6488 dbus-viewer introspected and displayed the bus driver 6489 6490 * dbus/dbus-object-tree.c 6491 (object_tree_test_iteration): add tests for a handler registered on "/" 6492 6493 * dbus/dbus-object-tree.c 6494 (_dbus_decompose_path): fix to handle path "/" properly 6495 (run_decompose_tests): add tests for path decomposition 6496 6497 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/" 6498 properly 6499 6500 * glib/dbus-gobject.c (handle_introspect): fix quotes 6501 6502 * test/glib/run-test.sh: support launching the bus, then running 6503 dbus-viewer 6504 6505 * test/glib/test-service-glib.c (main): put in a trivial gobject 6506 subclass and register it on the connection 6507 6508 * bus/driver.c (bus_driver_handle_introspect): implement 6509 introspection of the bus driver service 6510 6511 * dbus/dbus-protocol.h: add #defines for the XML namespace, 6512 identifiers, doctype decl 6513 6514 * bus/driver.c (bus_driver_handle_get_service_owner): handle 6515 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 6516 returning the service unchanged. 6517 (bus_driver_handle_message): remove old check for reply_serial in 6518 method calls, now the message type deals with that 6519 (bus_driver_handle_message): handle NULL interface 6520 6521 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function 6522 6523 * glib/dbus-gloader-expat.c (description_load_from_string): allow 6524 -1 for len 6525 6526 * tools/dbus-viewer.c: add support for introspecting a service on 6527 a bus 6528 6529 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add 6530 (dbus_g_pending_call_unref): add 6531 6532 2005-01-29 Havoc Pennington <hp (a] redhat.com> 6533 6534 * tools/dbus-tree-view.c: add support for displaying properties. 6535 (run dbus-viewer with an introspect xml file as arg, then resize 6536 the window so the tree elements show up, not sure what that is) 6537 6538 * glib/dbus-gobject.c (handle_introspect): return 6539 org.freedesktop.Properties and org.freedesktop.Introspectable 6540 interfaces when we are introspected. 6541 6542 * doc/dbus-specification.xml: allow empty interface name when 6543 Get/Set a property 6544 6545 2005-01-29 Havoc Pennington <hp (a] redhat.com> 6546 6547 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool; 6548 though it uses glib, it could be extended for any binding in 6549 principle 6550 6551 * glib/dbus-gobject.c (gobject_message_function): change to the 6552 new way properties work 6553 6554 * dbus/dbus-protocol.h: add the new interfaces 6555 6556 * doc/dbus-specification.xml: document the introspection format, 6557 Introspectable interface, and add an org.freedesktop.Properties 6558 interface. 6559 6560 * glib/dbus-gparser.c: add support for a <property> element 6561 6562 * glib/dbus-gidl.c: add PropertyInfo 6563 6564 * glib/dbus-gobject.c (handle_introspect): put the outermost 6565 <node> outside the signal and property descriptions. 6566 (introspect_properties): export properties as <property> rather 6567 than as method calls 6568 6569 2005-01-28 Havoc Pennington <hp (a] redhat.com> 6570 6571 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks 6572 related to authentication protocol 6573 6574 2005-01-28 John (J5) Palmieri <johnp (a] redhat.com> 6575 6576 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system 6577 - BUS_ACTIVATION -> BUS_STARTER 6578 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER 6579 - class MessageIter (__init__): Added recursion checking 6580 so we throw a nice error instead of just disconnecting from the 6581 bus. 6582 (get): Added arg_type parameter for recursion. 6583 Removed the nil type 6584 Added signiture type placeholder (not implemented) 6585 Added struct type placeholder (not implemented) 6586 Added varient type placeholder (not implemented) 6587 Commented out dict type for now 6588 (get_element_type): renamed from get_array_type 6589 (get_*): changed to use the dbus_message_iter_get_basic API 6590 (get_*_array): removed in favor of recursive get_array method 6591 (get_array): new recursive method which calls get to marshal 6592 the elements of the array 6593 (value_to_dbus_sig): New method returns the corrasponding 6594 dbus signiture to a python value 6595 (append): Comment out dict handling for now 6596 Handle lists with the new recursive API 6597 Comment out None handling for now 6598 (append_nil): removed 6599 (append_*): changed to use dbus_message_iter_append_basic API 6600 (append_*_array): removed in favor of recursive append_array 6601 method 6602 (__str__): Make it easier to print out recursive iterators 6603 for debugging 6604 - class Message (__str__): moved type inspection to the 6605 MessageIter class' __str__ method 6606 (get_iter): Added an append parameter wich defaults to False 6607 If True use the new API's to create an append iterator 6608 6609 * python/dbus.py: Update to use new bindings API 6610 - TYPE_ACTIVATION -> TYPE_STARTER 6611 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner 6612 - class ActivationBus -> class StarterBus 6613 - class RemoteObject (__call__): get an append iterator 6614 - (_dispatch_dbus_method_call): get an append iterator 6615 - class Object (emit_signal): get an append iterator 6616 6617 * python/examples/: Fixed up the examples to work with the new API 6618 6619 2005-01-28 Joe Shaw <joeshaw (a] novell.com> 6620 6621 * configure.in: Bump version up to 0.30. 6622 6623 * HACKING: Add a release item to bump the version number up after 6624 a release. 6625 6626 2005-01-28 Havoc Pennington <hp (a] redhat.com> 6627 6628 * doc/dbus-specification.xml: update to describe 16-bit types and 6629 dict entries 6630 6631 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken 6632 assertion 6633 6634 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a 6635 type 6636 6637 * dbus/dbus-marshal-recursive.c: implement 6638 6639 2005-01-27 Havoc Pennington <hp (a] redhat.com> 6640 6641 * dbus/dbus-arch-deps.h.in: add 16/32-bit types 6642 6643 * configure.in: find the right type for 16 and 32 bit ints as well 6644 as 64 6645 6646 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add 6647 the 16-bit types so people don't have to stuff them in 32-bit or 6648 byte arrays. 6649 6650 2005-01-27 Havoc Pennington <hp (a] redhat.com> 6651 6652 * dbus/dbus-message.c: byteswap the message if you init an 6653 iterator to read/write from it 6654 6655 * dbus/dbus-marshal-byteswap.c: new file implementing 6656 _dbus_marshal_byteswap() 6657 6658 * dbus/dbus-marshal-basic.c: add _dbus_swap_array() 6659 6660 2005-01-26 Havoc Pennington <hp (a] redhat.com> 6661 6662 * dbus/dbus-marshal-validate-util.c: break this out (and fix 6663 build, apparently - nobody noticed?) 6664 6665 2005-01-26 Havoc Pennington <hp (a] redhat.com> 6666 6667 * dbus/dbus-marshal-recursive.h: remove todo comment 6668 6669 2005-01-25 Joe Shaw <joeshaw (a] novell.com> 6670 6671 * Land the mono binding changes to conform to the new APIs. 6672 6673 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs, 6674 DBusType/Dict.cs, and DBusType/Nil.cs from the build. 6675 6676 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus 6677 type code as a string. 6678 (InitAppending): Rename dbus_message_append_iter_init() to 6679 dbus_message_iter_init_append(). 6680 6681 * mono/BusDriver.cs: Rename ServiceEventHandler to 6682 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner. 6683 Rename ServiceOwnerChanged to NameOwnerChanged. 6684 6685 * mono/Connection.cs: Rename BaseService to UniqueName, and the 6686 underlying C call. 6687 6688 * mono/Custom.cs: Removed. The CUSTOM type has been removed. 6689 6690 * mono/Service.cs: Rename Exists to HasOwner, internally rename 6691 dbus_bus_acquire_service() to dbus_bus_request_name(). 6692 6693 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead 6694 of Type.UnderlyingSystemType to get the correct element type for 6695 the array. 6696 (ctor): Update code for new APIs: use dbus_message_iter_recurse(), 6697 dbus_message_get_{element|arg}_type() instead of 6698 dbus_message_iter_init_array_iterator(). 6699 (Append): Replace dbus_message_iter_append_array() with 6700 dbus_message_iter_open_container() and 6701 dbus_message_iter_close_container(). 6702 6703 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These 6704 types have been removed. 6705 6706 * mono/DBusType/*.cs: Replace calls of 6707 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(), 6708 but specify the type in the DllImport extern declaration. Ditto 6709 for dbus_message_iter_append_[type]() -> 6710 dbus_message_iter_append_basic(). 6711 6712 * mono/example/BusListener.cs: Update for ServiceEventHandler -> 6713 NameOwnerChangedHandler. 6714 6715 2005-01-25 John (J5) Palmieri <johnp (a] redhat.com> 6716 6717 * python/dbus_bindings.pyx.in: Rename of methods and bindings 6718 - get_base_service -> get_unique_name 6719 - bus_get_base_service -> bus_get_unique_name 6720 - dbus_bus_get_base_service -> dbus_bus_get_unique_name 6721 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 6722 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING 6723 - bus_activate_service -> bus_start_service_by_name 6724 - dbus_bus_activate_service -> dbus_bus_start_service_by_name 6725 - bus_acquire_service -> bus_request_name 6726 - dbus_bus_acquire_service -> dbus_bus_request_name 6727 - bus_service_exists -> bus_name_has_owner 6728 - dbus_bus_service_exists -> dbus_bus_name_has_owner 6729 6730 * python/dbus.py: Rename of methods 6731 - activate_service -> start_service_by_name 6732 - bus_acquire_service -> bus_request_name 6733 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 6734 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING 6735 6736 6737 2005-01-24 Joe Shaw <joeshaw (a] novell.com> 6738 6739 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the 6740 signature for the method that can't be found. 6741 6742 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if 6743 the message has any arguments, we need to call 6744 _dbus_type_reader_get_current_type(), not 6745 _dbus_type_reader_has_next(). 6746 6747 2005-01-24 Havoc Pennington <hp (a] redhat.com> 6748 6749 * dbus/dbus-message-factory.c: more testing of message validation 6750 6751 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this 6752 header 6753 6754 2005-01-23 Havoc Pennington <hp (a] redhat.com> 6755 6756 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 6757 get this all working, not many tests in the framework yet though 6758 6759 2005-01-22 Havoc Pennington <hp (a] redhat.com> 6760 6761 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update 6762 tutorial, based on work from David Wheeler. 6763 6764 2005-01-21 Havoc Pennington <hp (a] redhat.com> 6765 6766 * dbus/dbus-bus.c: add more return_if_fail checks 6767 6768 * dbus/dbus-message.c (load_message): have the "no validation" 6769 mode (have to edit the code to toggle the mode for now though) 6770 6771 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that 6772 skips all validation; I want to use this at least for benchmark 6773 baseline, I'm not sure if it should be a publicly-available switch. 6774 6775 2005-01-21 Havoc Pennington <hp (a] redhat.com> 6776 6777 * glib/dbus-gmain.c: don't put the GLib bindings in the same 6778 toplevel doxygen group as the low-level API stuff 6779 6780 * dbus/dbus.h: note that libdbus is the low-level API 6781 6782 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6783 6784 * update-dbus-docs.sh: script to update docs on the web site, only 6785 works for me though. neener. 6786 6787 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6788 6789 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile 6790 code can reveal bugs in it 6791 6792 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6793 6794 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the 6795 select() version, patches from Tor Lillqvist 6796 6797 2005-01-20 Havoc Pennington <hp (a] redhat.com> 6798 6799 * doc/dbus-tutorial.xml: replace > with > 6800 6801 * bus/services.c (bus_registry_acquire_service): validate the name 6802 and return a better error if it's no good. 6803 6804 * doc/dbus-specification.xml: note NO_AUTO_START change 6805 6806 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change 6807 from AUTO_START, we're toggling the default 6808 6809 * bus/dispatch.c: adapt the tests to change of auto-start default 6810 6811 2005-01-18 Havoc Pennington <hp (a] redhat.com> 6812 6813 * rename dbus-daemon-1 to dbus-daemon throughout 6814 6815 2005-01-18 Havoc Pennington <hp (a] redhat.com> 6816 6817 * Throughout, grand renaming to strip out the use of "service", 6818 just say "name" instead (or "bus name" when ambiguous). Did not 6819 change the internal code of the message bus itself, only the 6820 programmer-facing API and messages. 6821 6822 * doc/dbus-specification.xml: further update the message bus section 6823 6824 * bus/config-parser.c (all_are_equiv): fix bug using freed string 6825 in error case 6826 6827 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6828 6829 * dbus/dbus-types.h: remove 16-bit types since we don't use them 6830 ever 6831 6832 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any 6833 "invalid name character" not only non-ASCII 6834 6835 * doc/dbus-specification.xml: further update spec, message bus 6836 parts are still out-of-date but the marshaling etc. stuff is now 6837 accurate-ish 6838 6839 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6840 6841 * doc/dbus-specification.xml: partially update spec 6842 6843 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6844 6845 * Throughout, align variant bodies according to the contained 6846 type, rather than always to 8. Should save a fair bit of space in 6847 message headers. 6848 6849 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason): 6850 fix handling of case where p == end 6851 6852 * doc/TODO: remove the dbus_bool_t item and variant alignment items 6853 6854 2005-01-17 Havoc Pennington <hp (a] redhat.com> 6855 6856 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits 6857 6858 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead 6859 of an 8-bit type. Now dbus_bool_t is the type to use whenever you 6860 are marshaling/unmarshaling a boolean. 6861 6862 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6863 6864 This is about it on what can be disabled/deleted from libdbus 6865 easily, back below 150K anyhow. Deeper cuts are more work than 6866 just turning the code off as I've done here. 6867 6868 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the 6869 signed int convenience funcs 6870 6871 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in 6872 verbose mode 6873 6874 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking 6875 things out of libdbus 6876 6877 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same 6878 6879 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it 6880 tests-enabled-only, though it should probably be deleted) 6881 6882 * dbus/dbus-message-util.c: same stuff 6883 6884 * dbus/dbus-auth-util.c: same stuff 6885 6886 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6887 6888 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c 6889 6890 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave 6891 way for stripping down dbus-userdb.c stuff included in libdbus. 6892 Rename _dbus_parse_uid for consistency. 6893 6894 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6895 6896 * dbus/dbus-internals.c (_dbus_real_assert): print the function 6897 name the assertion failed in 6898 6899 * dbus/dbus-internals.h (_dbus_return_if_fail) 6900 (_dbus_return_val_if_fail): assert that the name of the function 6901 containing the check doesn't start with '_', since we only want to 6902 use checks on public functions 6903 6904 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change 6905 checks to assertions 6906 6907 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic): 6908 change checks to asserts for private function 6909 6910 * dbus/dbus-message.c (_dbus_message_set_serial): checks 6911 to asserts for private function 6912 6913 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove 6914 broken assertion that was breaking make check 6915 (_dbus_type_reader_array_is_empty): remove this rather than fix 6916 it, was only used in assertions 6917 6918 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6919 6920 * test/unused-code-gc.py: hacky script to find code that's used 6921 only by the bus (not libdbus) or used only by tests or not used at 6922 all. It has some false alarms, but looks like we can clean up a 6923 lot of size from libdbus. 6924 6925 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c, 6926 dbus/Makefile.am: initially move 10K of binary size out of libdbus 6927 6928 2005-01-16 Havoc Pennington <hp (a] redhat.com> 6929 6930 * Add and fix docs according to Doxygen warnings throughout 6931 source. 6932 6933 * dbus/dbus-marshal-recursive.c 6934 (_dbus_type_reader_array_is_empty): change this to just call 6935 array_reader_get_array_len() and make it static 6936 6937 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename 6938 from get_array_type 6939 (dbus_message_iter_init_append): rename from append_iter_init 6940 6941 * dbus/dbus-marshal-recursive.c 6942 (_dbus_type_reader_get_element_type): rename from 6943 _dbus_type_reader_get_array_type 6944 6945 2005-01-15 Havoc Pennington <hp (a] redhat.com> 6946 6947 * test/glib/test-profile.c (with_bus_server_filter): fix crash 6948 6949 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro 6950 when DBUS_DISABLE_ASSERT 6951 (_dbus_marshal_set_basic): be sure we align for the string length 6952 6953 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make 6954 this look faster 6955 6956 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an 6957 inline macro version 6958 (_dbus_string_set_byte): provide inline macro version 6959 6960 2005-01-15 Havoc Pennington <hp (a] redhat.com> 6961 6962 * Land the new message args API and type system. 6963 6964 This patch is huge, but the public API change is not 6965 really large. The set of D-BUS types has changed somewhat, 6966 and the arg "getters" are more geared toward language bindings; 6967 they don't make a copy, etc. 6968 6969 There are also some known issues. See these emails for details 6970 on this huge patch: 6971 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html 6972 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html 6973 6974 * dbus/dbus-marshal-*: all the new stuff 6975 6976 * dbus/dbus-message.c: basically rewritten 6977 6978 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init 6979 freed blocks to be all non-nul bytes so using freed memory is less 6980 likely to work right 6981 6982 * dbus/dbus-internals.c (_dbus_test_oom_handling): add 6983 DBUS_FAIL_MALLOC=N environment variable, so you can do 6984 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or 6985 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and 6986 thorough. 6987 6988 * qt/message.cpp: port to the new message args API 6989 (operator<<): use str.utf8() rather than str.unicode() 6990 (pretty sure this is right from the Qt docs?) 6991 6992 * glib/dbus-gvalue.c: port to the new message args API 6993 6994 * bus/dispatch.c, bus/driver.c: port to the new message args API 6995 6996 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the 6997 "locked" flag to TRUE and align_offset to 0; I guess we never 6998 looked at these anyhow, but seems cleaner. 6999 7000 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING): 7001 move allocation padding macro to this header; use it to implement 7002 (_DBUS_STRING_STATIC): ability to declare a static string. 7003 7004 * dbus/dbus-message.c (_dbus_message_has_type_interface_member): 7005 change to return TRUE if the interface is not set. 7006 7007 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff 7008 to dbus-marshal-validate.[hc] 7009 7010 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from 7011 dbus-internals.c 7012 7013 * dbus/Makefile.am: cut over from dbus-marshal.[hc] 7014 to dbus-marshal-*.[hc] 7015 7016 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this 7017 function here from dbus-marshal.c 7018 7019 2005-01-12 Joe Shaw <joeshaw (a] novell.com> 7020 7021 * NEWS: Update for 0.23. 7022 7023 * configure.in: Release 0.23. 7024 7025 2005-01-12 Joe Shaw <joeshaw (a] novell.com> 7026 7027 * mono/Makefile.am, mono/example/Makefile.am: Always build the 7028 dbus DLL with --debug. Clean up after the .mdb files this leaves 7029 behind. 7030 7031 * mono/doc/Makefile.am: Need to uninstall the docs on "make 7032 uninstall" 7033 7034 * mono/Arguments.cs (GetDBusTypeConstructor): If the type 7035 is an enum, get the enum's underlying type. Another mono 7036 1.1.3 fix. 7037 7038 2005-01-11 Joe Shaw <joeshaw (a] novell.com> 7039 7040 Patch from Sjoerd Simons <sjoerd (a] luon.net> 7041 7042 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine 7043 DESTDIR. It breaks stuff. 7044 7045 2005-01-11 Joe Shaw <joeshaw (a] novell.com> 7046 7047 Patch from Tambet Ingo <tambet (a] ximian.com> 7048 7049 * mono/DBusType/Array.cs (Get): Get the underlying element type by 7050 calling type.GetElementType(). The code previously depended on 7051 broken Mono behavior, which was fixed in Mono 1.1.3. 7052 7053 * mono/DBusType/Dict.cs (constructor): Fix the parameters for 7054 Activator.CreateInstance() so that the class's constructor is 7055 called with the right parameters. 7056 7057 2005-01-11 Joe Shaw <joeshaw (a] novell.com> 7058 7059 Patch from Timo Ters <ext-timo.teras (a] nokia.com> 7060 7061 * dbus/dbus-connection.c 7062 (_dbus_connection_queue_received_message_link): Call 7063 _dbus_connection_remove_timeout() instead of the _locked() 7064 variant, since it's always called from 7065 _dbus_connection_handle_watch(), which handles the locking. 7066 Removed the _locked() variant since it's no longer used. 7067 7068 2005-01-03 Havoc Pennington <hp (a] redhat.com> 7069 7070 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can 7071 return 7072 7073 2004-12-26 Havoc Pennington <hp (a] redhat.com> 7074 7075 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert 7076 7077 2005-01-03 Havoc Pennington <hp (a] redhat.com> 7078 7079 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on 7080 floating point 7081 7082 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function 7083 7084 2005-01-02 Havoc Pennington <hp (a] redhat.com> 7085 7086 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro 7087 7088 2005-01-01 Havoc Pennington <hp (a] redhat.com> 7089 7090 * configure.in: add -Wfloat-equal 7091 7092 2005-01-01 Havoc Pennington <hp (a] redhat.com> 7093 7094 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 7095 for a variety of reasons '==' doesn't do this. 7096 7097 2004-12-31 Havoc Pennington <hp (a] redhat.com> 7098 7099 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function 7100 I keep wishing I had 7101 7102 2004-12-30 John (J5) Palmieri <johnp (a] redhat.com> 7103 7104 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED 7105 7106 2004-12-30 John (J5) Palmieri <johnp (a] redhat.com> 7107 7108 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED 7109 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in 7110 dbus-protocol.h. Because they are defines and not enums they are not 7111 autogenerated. 7112 7113 2004-12-26 John (J5) Palmieri <johnp (a] redhat.com> 7114 7115 * python/dbus_bindings.pyx.in (bus_activate_service): Bind 7116 dbus_bus_activate_service 7117 7118 * python/dbus.py (Bus.activate_service): activate a service on the 7119 bus. 7120 7121 2004-12-24 Havoc Pennington <hp (a] redhat.com> 7122 7123 * test/decode-gcov.c: change to use .gcno and .gcda files, but the 7124 file format has also changed and I haven't adapted to that yet 7125 7126 * Makefile.am: load .gcno files from latest gcc 7127 7128 2004-12-23 John (J5) Palmieri <johnp (a] redhat.com> 7129 * Patch from Rob Taylor <robtaylor (a] fastmail.fm> 7130 7131 * python/dbus_bindings.pyx.in (bus_get_unix_user): New 7132 lowlevel binding 7133 7134 * python/dbus.py (get_unix_user): Added binding to 7135 call dbus_bindings.bus_get_unix_user 7136 7137 * python/extract.py: Modified the proto_pat regex to 7138 handle unsigned long 7139 7140 2004-12-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7141 7142 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for 7143 better POSIX compliance. 7144 7145 2004-12-19 Havoc Pennington <hp (a] redhat.com> 7146 7147 * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 7148 (_dbus_string_insert_8_aligned): new functions 7149 7150 * dbus/dbus-string.c (_dbus_string_alloc_space): new function 7151 7152 2004-12-18 Havoc Pennington <hp (a] redhat.com> 7153 7154 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII 7155 macro 7156 7157 * dbus/dbus-message.c: fix a comment, and add a still-unused 7158 not-implemented function 7159 7160 * dbus/dbus-marshal.h: fix comment 7161 7162 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro 7163 7164 2004-12-17 Joe Shaw <joeshaw (a] novell.com> 7165 7166 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs, 7167 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs, 7168 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of 7169 Type.UnderlyingSystemType to get the actual system type 7170 underneath. This code previously depended on the broken Mono 7171 behavior, which was fixed in 1.1.3. 7172 7173 2004-11-27 Havoc Pennington <hp (a] redhat.com> 7174 7175 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts 7176 are disabled 7177 (_dbus_string_get_const_data): inline when asserts are disabled 7178 7179 * dbus/dbus-message.c: record the _dbus_current_generation of 7180 creation so we can complain if dbus_shutdown() is used improperly. 7181 Do this only if checks are enabled. 7182 7183 * dbus/dbus-connection.c: ditto 7184 7185 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7186 7187 * test/glib/test-profile.c: add with_bus mode to profile echoes 7188 that go through the bus. 7189 7190 * test/glib/run-test.sh: add ability to run test-profile 7191 7192 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial 7193 config file reload. 7194 7195 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7196 7197 * test/glib/test-profile.c: clean up how the fake_malloc_overhead 7198 thing was implemented 7199 7200 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7201 7202 * test/glib/test-profile.c: tweak a bit, add support for some 7203 made-up minimal malloc overhead with plain sockets, since in 7204 real life some sort of buffers are unavoidable thus we could 7205 count them in the theoretical best case 7206 7207 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7208 7209 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug 7210 where I was trying to cache one too many messages 7211 7212 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7213 7214 * dbus/dbus-message.c: reimplement message cache as an array which 7215 makes the cache about twice as fast and saves maybe 1.5% overall 7216 7217 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7218 7219 * dbus/dbus-threads.c (init_global_locks): forgot to put the 7220 message cache lock here 7221 7222 2004-11-26 Havoc Pennington <hp (a] redhat.com> 7223 7224 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and 7225 the "char byte_order" next to each other to save 4 bytes 7226 (dbus_message_new_empty_header): reduce preallocation, since the 7227 message cache should achieve a similar effect 7228 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a 7229 message cache that keeps a few DBusMessage around in a pool, 7230 another 8% speedup or so. 7231 7232 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function 7233 7234 2004-11-25 Havoc Pennington <hp (a] redhat.com> 7235 7236 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going 7237 to write, without reading or blocking, try it before the poll() 7238 and skip the poll() if nothing remains to write. This is about a 7239 3% speedup in the echo client/server 7240 7241 2004-11-25 Havoc Pennington <hp (a] redhat.com> 7242 7243 The primary change here is to always write() once before adding 7244 the write watch, which gives us about a 10% performance increase. 7245 7246 * dbus/dbus-transport-unix.c: a number of modifications to cope 7247 with removing messages_pending 7248 (check_write_watch): properly handle 7249 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of 7250 messages_pending stuff 7251 (check_read_watch): properly handle WAITING_FOR_MEMORY and 7252 AUTHENTICATED cases 7253 (unix_handle_watch): after writing, see if the write watch can be 7254 removed 7255 (unix_do_iteration): assert that write_watch/read_watch are 7256 non-NULL rather than testing that they aren't, since they 7257 aren't allowed to be NULL. check_write_watch() at the end so 7258 we add the watch if we did not finish writing (e.g. got EAGAIN) 7259 7260 * dbus/dbus-transport-protected.h: remove messages_pending call, 7261 since it resulted in too much inefficient watch adding/removing; 7262 instead we now require that the transport user does an iteration 7263 after queueing outgoing messages, and after trying the first 7264 write() we add a write watch if we got EAGAIN or exceeded our 7265 max bytes to write per iteration setting 7266 7267 * dbus/dbus-string.c (_dbus_string_validate_signature): add this 7268 function 7269 7270 * dbus/dbus-server-unix.c (unix_finalize): the socket name was 7271 freed and then accessed, valgrind flagged this bug, fix it 7272 7273 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken 7274 as the last valid field plus 1, where really it is equal to the 7275 last valid field. Corrects some message corruption issues. 7276 7277 * dbus/dbus-mainloop.c: verbosity changes 7278 7279 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM 7280 instead of aborting in one of the test codepaths 7281 7282 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that 7283 caused not printing the pid ever again if a verbose was missing 7284 the newline at the end 7285 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE 7286 7287 * dbus/dbus-connection.c: verbosity changes; 7288 (dbus_connection_has_messages_to_send): new function 7289 (_dbus_connection_message_sent): no longer call transport->messages_pending 7290 (_dbus_connection_send_preallocated_unlocked): do one iteration to 7291 try to write() immediately, so we can avoid the write watch. This 7292 is the core purpose of this patchset 7293 (_dbus_connection_get_dispatch_status_unlocked): if disconnected, 7294 dump the outgoing message queue, so nobody will get confused 7295 trying to send them or thinking stuff is pending to be sent 7296 7297 * bus/test.c: verbosity changes 7298 7299 * bus/driver.c: verbosity/assertion changes 7300 7301 * bus/dispatch.c: a bunch of little tweaks to get it working again 7302 because this patchset changes when/where you need to block. 7303 7304 2004-11-23 Havoc Pennington <hp (a] redhat.com> 7305 7306 * test/glib/test-profile.c: modify to accept a plain_sockets 7307 argument in which case it will bench plain sockets instead of 7308 libdbus, for comparison purposes. 7309 7310 2004-11-22 Havoc Pennington <hp (a] redhat.com> 7311 7312 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple 7313 threads for more time, so sysprof can get a grip on it. 7314 7315 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove 7316 pointless variable 7317 7318 2004-11-13 Havoc Pennington <hp (a] redhat.com> 7319 7320 * test/glib/test-profile.c: fix this thing up a bit 7321 7322 * dbus/dbus-message.c (dbus_message_new_empty_header): increase 7323 preallocation sizes by a fair bit; not sure if this will be an 7324 overall performance win or not, but it does reduce reallocs. 7325 7326 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore 7327 the test hack that forced constant realloc if asserts are 7328 disabled, so we can profile sanely. Sprinkle in some 7329 _DBUS_UNLIKELY() which are probably pointless, but before I 7330 noticed the real performance problem I put them in. 7331 (_dbus_string_validate_utf8): micro-optimize this thing a little 7332 bit, though callgrind says it didn't help; then special-case 7333 ascii, which did help a lot; then be sure we detect nul bytes as 7334 invalid, which is a bugfix. 7335 (align_length_then_lengthen): add some more _DBUS_UNLIKELY 7336 superstition; use memset to nul the padding instead of a manual 7337 loop. 7338 (_dbus_string_get_length): inline this as a 7339 macro; it showed up in the profile because it's used for loop 7340 tests and so forth 7341 7342 2004-11-10 Colin Walters <walters (a] verbum.org> 7343 7344 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR, 7345 for extra paranoia. 7346 7347 2004-11-09 Colin Walters <walters (a] verbum.org> 7348 7349 * dbus/dbus-string.c (_dbus_string_get_length): New 7350 function, writes DBusString to C buffer. 7351 7352 * dbus/dbus-string.h: Prototype it. 7353 7354 * dbus/dbus-message.c (dbus_message_type_to_string): New 7355 function, converts message type into C string. 7356 7357 * dbus/dbus-message.h: Prototype it. 7358 7359 * bus/selinux.c (bus_selinux_check): Take source pid, 7360 target pid, and audit data. Pass audit data to 7361 avc_has_perm. 7362 (log_audit_callback): New function, appends extra 7363 audit information. 7364 (bus_selinux_allows_acquire_service): Also take 7365 service name, add it to audit data. 7366 (bus_selinux_allows_send): Also take message 7367 type, interface, method member, error name, 7368 and destination, and add them to audit data. 7369 (log_cb): Initialize func_audit. 7370 7371 * bus/selinux.h (bus_selinux_allows_acquire_service) 7372 (bus_selinux_allows_send): Update prototypes 7373 7374 * bus/services.c (bus_registry_acquire_service): Pass 7375 service name to bus_selinux_allows_acquire_service. 7376 7377 * bus/bus.c (bus_context_check_security_policy): Pass 7378 additional audit data. Move assignment of dest 7379 to its own line. 7380 7381 2004-11-07 Colin Walters <walters (a] verbum.org> 7382 7383 * dbus/dbus-transport-unix.c (do_authentication): Always 7384 initialize auth_completed. 7385 7386 2004-11-07 Colin Walters <walters (a] verbum.org> 7387 7388 * bus/bus.c (load_config): Break into three 7389 separate functions: process_config_first_time_only, 7390 process_config_every_time, and process_config_postinit. 7391 (process_config_every_time): Move call of 7392 bus_registry_set_service_context_table into 7393 process_config_postinit. 7394 (process_config_postinit): New function, does 7395 any processing that needs to happen late 7396 in initialization (and also on reload). 7397 (bus_context_new): Instead of calling load_config, 7398 open config parser here and call process_config_first_time_only 7399 and process_config_every_time directly. Later, after 7400 we have forked but before changing UID, 7401 invoke bus_selinux_full_init, and then call 7402 process_config_postinit. 7403 (bus_context_reload_config): As in bus_context_new, 7404 load parse file inside here, and call process_config_every_time 7405 and process_config_postinit. 7406 7407 * bus/services.h, bus/services.c 7408 (bus_registry_set_service_context_table): Rename 7409 from bus_registry_set_sid_table. Take string hash from config 7410 parser, and convert them here into SIDs. 7411 7412 * bus/config-parser.c (struct BusConfigParser): Have 7413 config parser only store a mapping of service->context 7414 string. 7415 (merge_service_context_hash): New function. 7416 (merge_included): Merge context string hashes instead 7417 of using bus_selinux_id_table_union. 7418 (bus_config_parser_new): Don't use bus_selinux_id_table_new; 7419 simply create a new string hash. 7420 (bus_config_parser_unref): Unref it. 7421 (start_selinux_child): Simply insert strings into hash, 7422 don't call bus_selinux_id_table_copy_over. 7423 7424 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union) 7425 (bus_selinux_id_table_copy_over): Delete. 7426 7427 2004-11-03 Colin Walters <walters (a] verbum.org> 7428 7429 * bus/selinux.c (bus_selinux_pre_init): Kill some unused 7430 variables. 7431 7432 2004-11-03 Colin Walters <walters (a] verbum.org> 7433 7434 * bus/test-main.c (test_pre_hook): Fix test logic, 7435 thanks Joerg Barfurth <Joerg.Barfurth (a] Sun.COM>. 7436 7437 2004-11-02 Colin Walters <walters (a] redhat.com> 7438 7439 * bus/selinux.c (bus_selinux_init): Split into two functions, 7440 bus_selinux_pre_init and bus_selinux_post_init. 7441 (bus_selinux_pre_init): Just determine whether SELinux is 7442 enabled. 7443 (bus_selinux_post_init): Do everything else. 7444 7445 * bus/main.c (main): Call bus_selinux_pre_init before parsing 7446 config file, and bus_selinux_post_init after. This ensures that 7447 we don't lose the policyreload notification thread that 7448 bus_selinux_init created before forking previously. 7449 7450 * bus/test-main.c (test_pre_hook): Update for split. 7451 7452 2004-10-31 Owen Fraser-Green <owen (a] discobabe.net> 7453 7454 Patch from Johan Fischer <linux (a] fischaz.com> 7455 7456 * mono/doc/Makefile.am (install-data-local): Added directory 7457 install for DESTDIR 7458 7459 2004-10-29 Colin Walters <walters (a] redhat.com> 7460 7461 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take 7462 parameter for fd to write pid to. 7463 7464 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it. 7465 7466 * bus/bus.c (bus_context_new): Pass print_pid_fd 7467 to _dbus_become_daemon (bug #1720) 7468 7469 2004-10-29 Colin Walters <walters (a] redhat.com> 7470 7471 Patch from Ed Catmur <ed (a] catmur.co.uk> 7472 7473 * mono/doc/Makefile.am (install-data-local): Handle 7474 DESTDIR. 7475 7476 2004-10-29 Colin Walters <walters (a] redhat.com> 7477 7478 * bus/.cvsignore, qt/.cvsignore: Update. 7479 7480 2004-10-29 Colin Walters <walters (a] redhat.com> 7481 7482 Patch from Kristof Vansant <de_lupus (a] pandora.be> 7483 7484 * configure.in: Detect Slackware. 7485 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in. 7486 * bus/rc.messagebus.in: New file. 7487 7488 2004-10-29 Colin Walters <walters (a] redhat.com> 7489 7490 * tools/dbus-monitor.c (filter_func): Return 7491 DBUS_HANDLER_RESULT_HANDLED in filter function 7492 for now. See: 7493 http://freedesktop.org/pipermail/dbus/2004-August/001433.html 7494 7495 2004-10-29 Colin Walters <walters (a] redhat.com> 7496 7497 Patch from Matthew Rickard <mjricka (a] epoch.ncsc.mil> 7498 7499 * bus/services.c (bus_registry_acquire_service): 7500 Correctly retrieve service name from DBusString 7501 for printing. 7502 7503 2004-10-29 Colin Walters <walters (a] redhat.com> 7504 7505 * dbus/dbus-glib.h: Update documentation to not 7506 refer to internal APIs. 7507 7508 2004-10-27 Joe Shaw <joeshaw (a] novell.com> 7509 7510 * mono/Arguments.cs (GetDBusTypeConstructor): 7511 type.UnderlyingSystemType will return "System.Byte" if you do it 7512 on "byte[]", which is not what we want. So check the type.IsArray 7513 property and use System.Array instead. 7514 7515 2004-10-25 John (J5) Palmieri <johnp (a] redhat.com> 7516 7517 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free 7518 the DBusUserInfo structure since this is passed into the function. 7519 This would cause a double free when the function that allocated 7520 the structure would try to free it when an error occured. 7521 7522 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in): 7523 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services 7524 for service activation to avoid 32bit/64bit parallel install issues 7525 7526 2004-10-21 Colin Walters <walters (a] verbum.org> 7527 7528 * AUTHORS: Fix my email address, the @gnu.org one 7529 has been bouncing for some time. Also add J5. 7530 7531 2004-10-21 Colin Walters <walters (a] verbum.org> 7532 7533 * dbus/dbus-transport-unix.c (do_authentication): Return 7534 authentication status to callers. 7535 (unix_handle_watch): If we completed authentication this round, 7536 don't do another read. Instead wait until the next iteration, 7537 after we've read any pending data in the auth buffer. 7538 (unix_do_iteration): Ditto. 7539 (unix_handle_watch): Updated for new do_authentication prototype. 7540 7541 2004-10-18 Colin Walters <walters (a] verbum.org> 7542 7543 * bus/selinux.c (bus_selinux_enabled): Handle 7544 --disable-selinux case. 7545 7546 2004-10-18 Colin Walters <walters (a] verbum.org> 7547 7548 * bus/selinux.h: Add bus_selinux_enabled. 7549 7550 * bus/selinux.c (bus_selinux_enabled): Implement it. 7551 7552 * bus/config-parser.c (struct include): Add 7553 if_selinux_enabled member. 7554 (start_busconfig_child): Parse if_selinux_enabled 7555 attribute for include. 7556 (bus_config_parser_content): Handle it. 7557 7558 * bus/session.conf.in, bus/system.conf.in: Add 7559 inclusion of context mapping to default config files; 7560 conditional on SELinux being enabled. 7561 7562 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD. 7563 7564 * test/data/invalid-config-files/badselinux-1.conf, 7565 test/data/invalid-config-files/badselinux-2.conf: 7566 Test files for bad syntax. 7567 7568 2004-10-17 Colin Walters <walters (a] verbum.org> 7569 7570 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards) 7571 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf 7572 format specifier mismatches. 7573 7574 2004-10-07 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7575 7576 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect 7577 format string. 7578 7579 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL 7580 pointer (bug #1540, Leonardo Boiko). 7581 7582 2004-09-28 Jon Trowbridge <trow (a] ximian.com> 7583 7584 * mono/BusDriver.cs: Changed BusDriver struct to remove 7585 the ServiceCreated and ServiceDeleted events and replace them 7586 with the new ServiceOwnerChanged event. 7587 7588 * mono/example/BusListener.cs: Added a new example program, 7589 which listens for and reports any ServiceOwnerChanged events 7590 on the bus driver. 7591 7592 * mono/example/Makefile.am (DESTDIR): Build changes for the 7593 new BusListener.cs example. 7594 7595 2004-09-27 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7596 7597 * bus/signals.c (bus_match_rule_parse): validate the components of 7598 match rules (bug #1439). 7599 7600 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test. 7601 7602 2004-09-24 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7603 7604 * doc/dbus-specification.xml: document ServiceOwnerChanged 7605 signal. 7606 7607 * bus/driver.c, bus/driver.h, bus/services.c: Use 7608 ServiceOwnerChanged signal instead of ServiceCreated and 7609 ServiceDeleted. 7610 7611 * bus/dispatch.c: update testcase for the new signal. 7612 7613 2004-09-20 Jon Trowbridge <trow (a] ximian.com> 7614 7615 Patch from Nat Friedman <nat (a] novell.com> 7616 7617 * mono/Makefile.am: A number of small build fixes to allow "make 7618 distcheck" to succeed. 7619 7620 * mono/example/Makefile.am: "make distcheck" fixes. 7621 7622 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the 7623 key in @srcdir@. 7624 7625 * test/Makefile.am: "make distcheck" fixes. 7626 7627 2004-09-17 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7628 7629 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM. 7630 7631 * doc/busconfig.dtd: update the DTD for the at_console attribute. 7632 7633 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello 7634 messages after the first one (bug #1389). 7635 7636 * bus/dispatch.c (check_double_hello_message): add a test case for 7637 the double hello message bug. 7638 (check_existent_service_activation): fix check of spawning error. 7639 7640 2004-09-16 David Zeuthen <david (a] fubar.dk> 7641 7642 * python/dbus_bindings.pyx.in: Add support for int64 and uint64 7643 7644 2004-09-12 David Zeuthen <david (a] fubar.dk> 7645 7646 Patch from Kay Sievers <kay.sievers (a] vrfy.org> 7647 7648 * bus/bus.c (bus_context_new): 7649 * bus/bus.h: 7650 * bus/main.c (usage) 7651 (main): 7652 Add commandline option --nofork to override configuration file 7653 setting. 7654 7655 2004-09-09 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7656 7657 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C 7658 compilers don't like it (bug #974). 7659 7660 2004-09-04 Harald Fernengel <harry (a] kdevelop.org> 7661 7662 * qt/connection.*: Applied patch by Jrme Lodewyck 7663 <lodewyck (a] clipper.ens.fr> to integrate an existing 7664 connection into the Qt eventloop 7665 7666 2004-08-30 Jon Trowbridge <trow (a] ximian.com> 7667 7668 * mono/BusDriver.cs: Added. This is a class for interacting with 7669 the org.freedesktop.DBus service. 7670 7671 * mono/Message.cs: Added a mechanism to expose the message that is 7672 currently being dispatched via the static Message.Current 7673 property. Added Message.Sender and Message.Destination 7674 properties. 7675 7676 * mono/Handler.cs: Expose the dispatched message via 7677 Message.Current when handling method calls. 7678 7679 * mono/Service.cs: Expose the dispatched message via 7680 Message.Current when handling signal emissions. 7681 7682 * mono/Connection.cs: Bind dbus_bus_get_base_service via the 7683 Connection.BaseService property. 7684 7685 2004-08-28 Havoc Pennington <hp (a] redhat.com> 7686 7687 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable 7688 7689 More fixes from Steve Grubb 7690 7691 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak 7692 (_dbus_listen_tcp_socket): fix fd leak 7693 7694 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for 7695 EINTR to a bit lower in the code 7696 7697 2004-08-26 Jon Trowbridge <trow (a] ximian.com> 7698 7699 * bus/driver.c (bus_driver_handle_service_exists): Respond with 7700 TRUE if we are inquiring about the existence of the built-in 7701 org.freedesktop.DBus service. 7702 7703 2004-08-25 John Palmieri <johnp (a] redhat.com> 7704 * bus/config-parser.c: 7705 (struct PolicyType): Add POLICY_CONSOLE 7706 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console 7707 (start_busconfig_child): Sets up console element when 7708 <policy at_console=""> is encountered in a policy file 7709 (append_rule_from_element): Convert console elements to console 7710 rules. 7711 7712 * bus/policy.c: 7713 (bus_policy_create_client_policy): Add console rules to the client 7714 policy based on if the client is at the console 7715 (bus_policy_append_console_rule): New function for adding a 7716 console rule to a policy 7717 (bus_policy_merge): Handle console rule merging 7718 7719 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant 7720 where we check for console user files 7721 7722 * dbus/dbus-sysdeps.c: 7723 (_dbus_file_exists): New function which checks if the given 7724 file exists 7725 (_dbus_user_at_console): New function which does the system 7726 specific process of checking if the user is at the console 7727 7728 * dbus/dbus-userdb.c: 7729 (_dbus_is_console_user): New function converts a UID to user name 7730 and then calls the system specific _dbus_user_at_console to 7731 see if the user is at the console and therefor a console user 7732 7733 2004-08-25 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7734 7735 * bus/config-parser.c (set_limit): 7736 * bus/dbus-daemon-1.1.in: 7737 * test/data/valid-config-files/many-rules.conf: set the 7738 max_match_rules_per_connection limt from the config file. 7739 7740 * doc/busconfig.dtd: update the DTD. 7741 7742 * bus/driver.c: remove some unused variables. 7743 7744 2004-08-24 Mikael Hallendal <micke (a] imendio.com> 7745 7746 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 7747 it's been replaced by dbus_g_bus_get 7748 7749 2004-08-23 Colin Walters <walters (a] redhat.com> 7750 7751 Updated SELinux support from Matthew Rickard <mjricka (a] epoch.ncsc.mil> 7752 7753 * bus/selinux.h: Prototype bus_selinux_get_policy_root. 7754 7755 * bus/selinux.c: Create a thread for policy reload notification. 7756 (bus_selinux_get_policy_root): Implement. 7757 7758 * bus/config-parser.c (start_busconfig_child) 7759 (bus_config_parser_content): Support SELinux-root relative 7760 inclusion. 7761 7762 * configure.in <HAVE_SELINUX>: Add -lpthread. 7763 7764 * bus/test-main.c (test_pre_hook, test_post_hook): New. 7765 (test_post_hook): Move memory checking into here. 7766 (test_pre_hook, test_post_hook): Move SELinux checks in 7767 here, but conditional on a DBUS_TEST_SELINUX environment 7768 variable. Unfortunately we can't run the SELinux checks 7769 as a normal user, since they won't have any permissions 7770 for /selinux. So this will have to be tested manually 7771 for now, until we have virtualization for most of 7772 libselinux. 7773 7774 2004-08-23 Havoc Pennington <hp (a] redhat.com> 7775 7776 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to 7777 drop supplementary groups, suggested by Steve Grubb 7778 7779 2004-08-20 Colin Walters <walters (a] redhat.com> 7780 7781 * bus/config-parser.c (start_busconfig_child): Remove some unused 7782 variables. 7783 7784 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler 7785 warning. 7786 7787 2004-08-17 Joe Shaw <joeshaw (a] novell.com> 7788 7789 * configure.in: If --enable-mono is passed in, if we can't find 7790 mono error out. 7791 7792 * mono/Makefile.am: Use /gacutil to install assemblies into the 7793 GAC and not /root. 7794 7795 2004-08-12 Havoc Pennington <hp (a] redhat.com> 7796 7797 * NEWS: update for 0.22 7798 7799 * configure.in: release 0.22 7800 7801 2004-08-11 Colin Walters <walters (a] redhat.com> 7802 7803 * tools/dbus-send.c (main, usage): Add --reply-timeout 7804 argument. 7805 7806 2004-08-10 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7807 7808 * bus/bus.c (process_config_first_time_only): get rid of an unused 7809 DBusError that was causing a memoy leak (bug #989). 7810 7811 * dbus/dbus-keyring.c, dbus/dbus-message.c: 7812 fix compilation on Solaris/Forte C (bug #974) 7813 7814 * bus/main.c (main): plug two minuscule memleaks. 7815 7816 2004-08-10 Havoc Pennington <hp (a] redhat.com> 7817 7818 * doc/dbus-tutorial.xml: add some more info on GLib bindings 7819 7820 2004-08-09 Havoc Pennington <hp (a] redhat.com> 7821 7822 * COPYING: switch to Academic Free License version 2.1 instead of 7823 2.0, to resolve complaints about patent termination clause. 7824 7825 2004-07-31 John (J5) Palmieri <johnp (a] redhat.com> 7826 7827 * README: added documentation for the --enable-python 7828 configure switch. 7829 7830 2004-07-31 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7831 7832 * bus/config-parser.c (bus_config_parser_new): fix an invalid 7833 _unref in the SELinux support. 7834 7835 * doc/busconfig.dtd: update DTD for SELinux support. 7836 7837 * bus/config-loader-libxml.c: fix error handler and parser 7838 initialisation/cleanup. OOM test now works with libxml2 HEAD. 7839 7840 * configure.in: remove the warning about libxml2. 7841 7842 * dbus/dbus-bus.c: silence doxygen warning. 7843 7844 2004-07-31 Colin Walters <walters (a] redhat.com> 7845 7846 * configure.in: Move #error in SELinux check to its own line. 7847 7848 2004-07-31 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7849 7850 * dbus/dbus-internals.h (_DBUS_SET_OOM): 7851 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of 7852 dbus_error_set. 7853 7854 * bus/dispatch.c (check_send_exit_to_service): fix the test case, 7855 broken by the change in the _SET_OOM macros. 7856 7857 2004-07-31 Colin Walters <walters (a] redhat.com> 7858 7859 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get 7860 BUS_SET_OOM. 7861 7862 2004-07-31 Colin Walters <walters (a] redhat.com> 7863 7864 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER 7865 to correctly detect DBUS__ACQUIRE_SVC. Also add an 7866 AC_MSG_CHECKING. 7867 7868 2004-07-24 Havoc Pennington <hp (a] redhat.com> 7869 7870 SELinux support from Matthew Rickard <mjricka (a] epoch.ncsc.mil> 7871 7872 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux 7873 functionality 7874 7875 * configure.in: add --enable-selinux 7876 7877 * bus/policy.c (bus_policy_merge): add FIXME to a comment 7878 7879 * bus/main.c (main): initialize and shut down selinux 7880 7881 * bus/connection.c: store SELinux ID on each connection, to avoid 7882 repeated getting of the string context and converting it into 7883 an ID 7884 7885 * bus/bus.c (bus_context_get_policy): new accessor, though it 7886 isn't used 7887 (bus_context_check_security_policy): check whether the security 7888 context of sender connection can send to the security context of 7889 recipient connection 7890 7891 * bus/config-parser.c: add parsing for <selinux> and <associate> 7892 7893 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to 7894 implement dbus_connection_get_unix_fd() 7895 7896 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new 7897 function, used by the selinux stuff 7898 7899 2004-07-29 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7900 7901 * bus/config-loader-libxml.c: complete the implementation of 7902 libxml backend for config file loader. Doesn't work with full OOM 7903 test yet. 7904 7905 * configure.in: change error when selecting libxml into a warning. 7906 7907 * test/data/invalid-config-files: add two non-well-formed XML 7908 files. 7909 7910 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml. 7911 7912 * dbus/dbus-transport-unix.c (unix_handle_watch): do not 7913 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may 7914 be necessary to read all the buffer. (bug #894) 7915 7916 * bus/activation.c (bus_activation_activate_service): fix a 7917 potential assertion failure (bug #896). Small optimization in the 7918 case of auto-activation messages. 7919 7920 * dbus/dbus-message.c (verify_test_message, _dbus_message_test): 7921 add test case for byte-through-vararg bug (#901). patch by Kimmo 7922 Hmlinen. 7923 7924 2004-07-28 Anders Carlsson <andersca (a] gnome.org> 7925 7926 * python/dbus.py: 7927 * python/dbus_bindings.pyx.in: 7928 Add dbus.init_gthreads (), allow emit_signal to pass 7929 arguments to the signal. 7930 7931 2004-07-24 Havoc Pennington <hp (a] redhat.com> 7932 7933 * AUTHORS: add some people, not really comprehensively, let me 7934 know if I missed you 7935 7936 2004-07-24 Havoc Pennington <hp (a] redhat.com> 7937 7938 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by 7939 Owen 7940 7941 * test/Makefile.am (DIST_SUBDIRS): here also 7942 7943 2004-07-22 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7944 7945 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name, 7946 breaking build on Solaris, reported by Farhad Saberi on the ML. 7947 7948 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the 7949 va_arg invocation to account for integer promotion in the case of 7950 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901) 7951 7952 * bus/services.c (bus_service_remove_owner): fix bug #902, use 7953 _dbus_list_get_first_link, not _dbus_list_get_first. 7954 7955 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak. 7956 7957 * dbus/dbus-object-tree.c (free_subtree_recurse): always null 7958 handler functions so that the asserts in _dbus_object_subtree_unref 7959 do not fail. 7960 7961 * dbus/dbus-transport-unix.c (do_reading): 7962 _dbus_transport_queue_messages return value is of type 7963 dbus_bool_t, not DBusDispatchStatus. 7964 7965 2004-07-19 David Zeuthen <david (a] fubar.dk> 7966 7967 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN 7968 7969 * bus/dispatch.c: 7970 (check_get_connection_unix_user): Debug says GetProperty; but the 7971 method is called GetConnectionUnixUser 7972 (check_get_connection_unix_process_id): New function 7973 (bus_dispatch_test): Actually call check_get_connection_unix_user(); 7974 also call check_get_connection_unix_process_id() 7975 7976 * bus/driver.c: 7977 (bus_driver_handle_get_connection_unix_process_id): New function, 7978 handles GetConnectionUnixProcessID on the org.freedesktop.DBus 7979 interface 7980 7981 * dbus/dbus-auth.c: 7982 (handle_server_data_external_mech): Set pid from the credentials 7983 obtained from the socket 7984 7985 * dbus/dbus-connection.c: 7986 (dbus_connection_get_unix_process_id): New function 7987 7988 * dbus/dbus-connection.h: 7989 Add prototype for dbus_connection_get_unix_process_id 7990 7991 * dbus/dbus-transport.c: 7992 (_dbus_transport_get_unix_process_id): New function 7993 7994 * dbus/dbus-transport.h: 7995 Add prototype for _dbus_transport_get_unix_process_id 7996 7997 2004-07-19 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 7998 7999 * dbus/dbus-message.c: Message counter fix, patch by Christian 8000 Hammond <chipx86 (a] gnupdate.org> 8001 8002 2004-07-18 Seth Nickell <seth (a] gnome.org> 8003 8004 * python/dbus.py: 8005 * python/dbus_bindings.pyx.in: 8006 * python/tests/test-client.py: 8007 8008 Add dbus.ByteArray and dbus_bindings.ByteArray 8009 types so that byte streams can be passed back. 8010 8011 Give jdahlin the heaps of credit that are so 8012 rightfully his. 8013 8014 2004-07-12 Seth Nickell <seth (a] gnome.org> 8015 8016 * python/dbus.py: 8017 8018 Add message argument to the default object_method_handler 8019 function. 8020 8021 * python/dbus_bindings.pyx.in: 8022 8023 Automatically return NIL when passed an empty list 8024 (we can't pass back a list since lists are typed 8025 and we don't have any idea what type the the client 8026 intended the list to be... :-( ) 8027 8028 2004-07-10 Seth Nickell <seth (a] gnome.org> 8029 8030 * python/examples/Makefile.am: 8031 8032 Fix distcheck breakage caused by new examples. 8033 8034 2004-07-10 Seth Nickell <seth (a] gnome.org> 8035 8036 * python/dbus.py: 8037 8038 Add "message" argument to service-side dbus.Object 8039 methods. This will break existing services written 8040 using the python bindings, but will allow extraction 8041 of all the message information (e.g. who its from). 8042 8043 Add improved "object oriented" signal handling/emission. 8044 8045 * python/examples/example-service.py: 8046 8047 Nix this example. 8048 8049 * python/examples/example-signal-emitter.py: 8050 * python/examples/example-signal-recipient.py: 8051 8052 Two new examples that show how to emit and receive 8053 signals using the new APIs. 8054 8055 * python/examples/example-signals.py: 8056 * python/examples/gconf-proxy-service.py: 8057 * python/examples/gconf-proxy-service2.py: 8058 8059 Add "message" argument to service methods. 8060 8061 2004-06-28 Kay Sievers <kay.sievers (a] vrfy.org> 8062 8063 * bus/driver.c (bus_driver_handle_get_connection_unix_user) 8064 * dbus/bus.c (dbus_bus_get_unix_user) 8065 * doc/dbus-specification.xml: implement GetConnectionUnixUser 8066 method of org.freedesktop.DBus interface. 8067 8068 * bus/dispatch.c: test case 8069 8070 2004-06-23 John (J5) Palmieri <johnp (a] redhat.com> 8071 8072 * python/Makefile.am: switched include directory from glib/ to dbus/ 8073 since dbus-glib.h moved 8074 8075 2004-06-22 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8076 8077 * configure.in: prevent building the gcj stuff and libxml loader 8078 since they are broken. 8079 8080 2004-06-20 Havoc Pennington <hp (a] redhat.com> 8081 8082 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 8083 codes from the dbus error names 8084 8085 * glib/dbus-glib.h: move to subdir dbus/ since it's included 8086 as dbus/dbus-glib.h and that breakage is now visible due to 8087 including dbus/dbus-glib.h in dbus-glib-lowlevel.h 8088 8089 * glib/dbus-glib.h: s/gproxy/g_proxy/ 8090 8091 * dbus/dbus-shared.h: new header to hold stuff shared with 8092 binding APIs 8093 8094 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather 8095 than dbus-errors.h 8096 8097 * glib/dbus-glib.h (dbus_set_g_error): move to 8098 dbus-glib-lowlevel.h 8099 8100 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch 8101 of stuff to enable this 8102 8103 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here 8104 8105 * a bunch of other changes with the same basic "separate glib 8106 bindings from dbus.h" theme 8107 8108 2004-06-10 Owen Fraser-Green <owen (a] discobabe.net> 8109 8110 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs. 8111 8112 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST. 8113 8114 2004-06-09 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8115 8116 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for 8117 the reply value of the ServiceExists message. 8118 8119 2004-06-07 John (J5) Palmieri <johnp (a] redhat.com> 8120 8121 * python/dbus_bindings.pyx.in: No longer need to parse path 8122 elements and pass them as arrays of strings. The C API now 8123 accepts plain path strings. 8124 (_build_parsed_path): removed 8125 8126 2004-06-07 Havoc Pennington <hp (a] redhat.com> 8127 8128 * doc/TODO: remove auto-activation item since it's done; sort 8129 items by importance/milestone 8130 8131 2004-06-07 Havoc Pennington <hp (a] redhat.com> 8132 8133 * dbus/dbus-message-builder.c (_dbus_message_data_load): append 8134 random signature when using REQUIRED_FIELDS (this hack won't work 8135 in the long term) 8136 8137 * dbus/dbus-message.c: change the signature to be a header field, 8138 instead of message->signature special-case string. Incremental 8139 step forward. Then we can fix up code to send the signature in the 8140 message, then fix up code to validate said signature, then fix up 8141 code to not put the typecodes inline, etc. 8142 (load_one_message): don't make up the signature after the fact 8143 (decode_header_data): require signature field for the known 8144 message types 8145 8146 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new 8147 8148 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE 8149 8150 2004-06-07 Owen Fraser-Green <owen (a] discobabe.net> 8151 8152 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path 8153 8154 * mono/Handler.cs: Updated to follow new path argument for 8155 (un-)registering objects. 8156 8157 * mono/example/Makefile.am: 8158 * mono/Makefile.am: 8159 * configure.in: Bumped required version for mono and use new -pkg 8160 syntax for deps 8161 8162 2004-06-05 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8163 8164 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path 8165 registration functions take the path argument as char* instead of 8166 char**. 8167 8168 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path): 8169 split off the path decompostion part of 8170 _dbus_demarshal_object_path. Some misc. fixes to silence compiler 8171 warnings. 8172 8173 * glib/dbus-gobject.c, test/test-service.c: update accordingly. 8174 8175 2004-06-02 Kristian Hgsberg <krh (a] redhat.com> 8176 8177 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state 8178 machine approach. A state is implemented as a function that 8179 handles incoming events as specified for that state. 8180 8181 * doc/dbus-specification.xml: Update auth protocol state machine 8182 specification to match implementation. Remove some leftover 8183 base64 examples. 8184 8185 2004-06-02 Kristian Hgsberg <krh (a] redhat.com> 8186 8187 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c, 8188 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to 8189 quiet doxygen. 8190 8191 * Doxyfile.in: remove deprecated options. 8192 8193 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h, 8194 glib/test-thread.h, glib/test-thread-client.c, 8195 glib/test-thread-server.c, glib/test-profile.c, 8196 glib/test-dbus-glib.c: remove these unused files. 8197 8198 2004-06-01 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8199 8200 * dbus/dbus-object-tree.c 8201 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for 8202 non-fallback handlers (bug #684). 8203 (_dbus_object_subtree_new): initialize invoke_as_fallback field. 8204 (find_subtree_recurse): report wether the returned subtree is an 8205 exact match or a "fallback" match higher up in the tree. 8206 (object_tree_test_iteration): update test case. 8207 8208 2004-06-01 Seth Nickell <seth (a] gnome.org> 8209 8210 * python/dbus_bindings.pyx.in: 8211 * python/tests/test-client.py: 8212 8213 Round off basic type support. Add dicts (yay!), and 8214 remaining array types. 8215 8216 Make MessageIter more general so it works for dicts too. 8217 8218 Mark all loop variables as C integers. 8219 8220 2004-05-31 Havoc Pennington <hp (a] redhat.com> 8221 8222 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with 8223 "in" before "out" 8224 8225 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c 8226 8227 * glib/dbus-glib-tool.c (main): set up to have a --self-test 8228 option that runs the tests, and start filling in some code 8229 including for starters just dumping the interfaces to stdout 8230 8231 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR 8232 8233 * test/data/valid-introspection-files/lots-of-types.xml: test of 8234 an example introspection file 8235 8236 * glib/dbus-gparser.c (parser_check_doctype): doctype should be 8237 "node" (I think...) 8238 8239 2004-05-31 Seth Nickell <seth (a] gnome.org> 8240 8241 * python/dbus_bindings.pyx.in: 8242 * python/tests/test-client.py: 8243 8244 Test Suite: 1 8245 Python Bindings: 0 8246 8247 Fix string array memory trashing bug... oops... 8248 8249 2004-05-30 Seth Nickell <seth (a] gnome.org> 8250 8251 * python/dbus.py: 8252 8253 Add a nicer-but-less-flexible alternate API for handling 8254 calls to virtual objects in dbus.ObjectTree. 8255 8256 Screw up the argument order to the dbus.Object constructor 8257 for consistency with dbus.ObjectTree (and to make dbus_methods 8258 optional for future extension) 8259 8260 * python/examples/Makefile.am: 8261 * python/examples/gconf-proxy-service.py: 8262 * python/examples/gconf-proxy-service2.py: 8263 8264 Alternate implementation of gconf-proxy-service using the 8265 nicer dbus.ObjectTree API. 8266 8267 * python/examples/example-service.py: 8268 * python/tests/test-server.py 8269 8270 Reverse the argument order to deal with dbus.Object constructor 8271 changes. 8272 8273 2004-05-30 Seth Nickell <seth (a] gnome.org> 8274 8275 * python/examples/example-client.py: 8276 * python/examples/example-service.py: 8277 8278 Take it back. Lists seem to work but they're broken 8279 in the test suite. Make the base examples use 8280 lists (works fine). 8281 8282 2004-05-30 Seth Nickell <seth (a] gnome.org> 8283 8284 * python/dbus_bindings.pyx.in: 8285 * python/tests/test-client.py: 8286 8287 Add some more tests and fix errors that crop up. 8288 Unfortunately, currently it seems like marshalling 8289 and unmarshalling of lists is completely broken :-( 8290 8291 2004-05-30 Seth Nickell <seth (a] gnome.org> 8292 8293 * python/dbus_bindings.pyx.in: 8294 8295 Add support for ObjectPath type. 8296 8297 * python/dbus.py: 8298 8299 Refactor message handling code to a common function. 8300 8301 * python/tests/test-client.py: 8302 * python/tests/test-server.py: 8303 8304 Add tests that check to make sure values of all types 8305 can be echoed from a service w/o mangling. 8306 8307 2004-05-29 Seth Nickell <seth (a] gnome.org> 8308 8309 * python/dbus.py: 8310 8311 Add ObjectTree class which allows implementation 8312 of trees of "virtual" objects. Basically the python 8313 wrapper for "register_fallback". 8314 8315 * python/examples/Makefile.am 8316 * python/examples/gconf-proxy-client.py: 8317 * python/examples/gconf-proxy-service.py: 8318 8319 Implement a simple GConf proxy service that supports 8320 get/set on string and int GConf keys using the ObjectTree. 8321 8322 2004-05-29 Seth Nickell <seth (a] gnome.org> 8323 8324 * python/dbus.py: 8325 * python/examples/example-client.py: 8326 * python/examples/example-service.py: 8327 * python/examples/list-system-services.py: 8328 8329 Add SessionBus, SystemBus and ActivationBus classes 8330 so you don't need to know the special little BUS_TYPE 8331 flag. 8332 8333 2004-05-29 Havoc Pennington <hp (a] redhat.com> 8334 8335 * bus/config-parser.c (process_test_valid_subdir): temporarily 8336 stop testing config parser OOM handling, since expat has issues 8337 http://freedesktop.org/pipermail/dbus/2004-May/001153.html 8338 8339 * bus/dbus-daemon-1.1.in: change requested_reply to 8340 send_requested_reply/receive_requested_reply so we can send the 8341 replies, not just receive them. 8342 8343 * bus/config-parser.c: parse the new 8344 send_requested_reply/receive_requested_reply 8345 8346 * bus/policy.c (bus_client_policy_check_can_send): add 8347 requested_reply argument and use it 8348 8349 * bus/bus.c (bus_context_check_security_policy): pass through 8350 requested_reply status to message send check 8351 8352 * bus/system.conf.in: adapt to requested_reply change 8353 8354 2004-05-28 Havoc Pennington <hp (a] redhat.com> 8355 8356 * test/glib/test-service-glib.c (main): remove unused variable 8357 8358 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning 8359 8360 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES 8361 from the enum, no longer in use. 8362 8363 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually 8364 works right. 8365 8366 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for 8367 whether error_name passed in is a valid error name. 8368 8369 2004-05-28 John (J5) Palmieri <johnp (a] redhat.com> 8370 8371 * dbus/dbus-message.c (dbus_message_get_args): Added support for 8372 OBJECT_PATH and OBJECT_PATH_ARRAY 8373 8374 2004-05-28 Seth Nickell <seth (a] gnome.org> 8375 8376 * python/examples/Makefile.am: 8377 8378 Forget to add Makefile.am. Do not pass go. 8379 8380 2004-05-28 Michael Meeks <michael (a] ximian.com> 8381 8382 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 8383 fix no int64 case. 8384 8385 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl. 8386 8387 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type), 8388 (_dbus_message_iter_get_basic_type_array): impl. 8389 drastically simplify ~all relevant _get methods to use these. 8390 (_dbus_message_iter_append_basic_array), 8391 (dbus_message_iter_append_basic): impl 8392 drastically simplify ~all relevant _append methods to use these. 8393 8394 * dbus/dbus-message-builder.c (parse_basic_type) 8395 (parse_basic_array, lookup_basic_type): impl. 8396 (_dbus_message_data_load): prune scads of duplicate / 8397 cut & paste coding. 8398 8399 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 8400 (_dbus_demarshal_basic_type): implement, 8401 (demarshal_and_validate_len/arg): beef up debug. 8402 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl. 8403 8404 2004-05-27 Seth Nickell <seth (a] gnome.org> 8405 8406 * configure.in: 8407 * python/Makefile.am: 8408 8409 Include the example python apps in the tarball. 8410 8411 * python/examples/list-system-services.py 8412 8413 Add a python new example that fetches the list of services 8414 from the system bus. 8415 8416 2004-05-27 Seth Nickell <seth (a] gnome.org> 8417 8418 * python/dbus.py: 8419 * python/dbus_bindings.pyx.in: 8420 8421 Fix failure to notify that a signal was not handled, 8422 resulted in hung functions. 8423 8424 2004-05-25 Colin Walters <walters (a] redhat.com> 8425 8426 * tools/dbus-monitor.c (main): Monitor all types of messages. 8427 8428 2004-05-23 Owen Fraser-Green <owen (a] discobabe.net> 8429 8430 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method 8431 which unregisters the object path and disposes the handler. 8432 8433 2004-05-23 Kristian Hgsberg <krh (a] redhat.com> 8434 8435 Patch from Timo Ters <ext-timo.teras (a] nokia.com> (#614): 8436 8437 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap 8438 operands to && so we call dbus_message_iter_next () for the last 8439 argument also. 8440 8441 2004-05-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8442 8443 * dbus/dbus-object-tree.c 8444 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return 8445 children even if the requested path isn't registered. 8446 (object_tree_test_iteration): test object_tree_list_registered. 8447 8448 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining 8449 it to 0. 8450 8451 2004-05-20 Kristian Hgsberg <krh (a] redhat.com> 8452 8453 * doc/TODO: Remove resolved items. 8454 8455 * bus/expirelist.h (struct BusExpireList): remove unused n_items 8456 field. 8457 8458 * bus/connection.c (bus_connections_expect_reply): Enforce the 8459 per-connection limit on pending replies. 8460 8461 Patch from Jon Trowbridge <trow (a] ximian.com>: 8462 8463 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets 8464 up a watch that triggers a config reload when one end of the pipe 8465 becomes readable. 8466 (signal_handler): Instead of doing the config reload in our SIGHUP 8467 handler, just write to the reload pipe and let the associated 8468 watch handle the reload when control returns to the main loop. 8469 8470 * bus/driver.c (bus_driver_handle_reload_config): Added. 8471 Implements a ReloadConfig method for requesting a configuration 8472 file reload via the bus driver. 8473 8474 2004-05-19 Owen Fraser-Green <owen (a] discobabe.net> 8475 8476 * HACKING: Updated release instructions concerning the wiki page. 8477 8478 2004-05-18 Kristian Hgsberg <krh (a] redhat.com> 8479 8480 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to 8481 filter against auth->allowed_mechs; we only add allowed mechs in 8482 record_mechanisms(). 8483 8484 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an 8485 ALLOWED_MECHS to auth-script format so we can set the list of 8486 allowed mechanisms. 8487 8488 * data/auth/client-out-of-mechanisms.auth-script: New test to 8489 check client disconnects when it is out of mechanisms to try. 8490 8491 * dbus/dbus-auth.c (process_command): Remove check for lines 8492 longer that 1 MB; we only buffer up maximum 16 kB. 8493 8494 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, 8495 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h: 8496 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always 8497 assume there might be unused bytes. 8498 8499 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for 8500 client-out-of-mechs, it is handled in process_reject(). Move check 8501 for max failures to send_rejected(), as it's a server-only thing. 8502 8503 * dbus/dbus-auth.c: Factor out protocol reply code into functions 8504 send_auth(), send_data(), send_rejected(), send_error(), 8505 send_ok(), send_begin() and send_cancel(). 8506 8507 2004-05-17 Kristian Hgsberg <krh (a] redhat.com> 8508 8509 Remove base64 encoding, replace with hex encoding. Original patch 8510 from trow (a] ximian.com, added error handling. 8511 8512 * dbus/dbus-string.c (_dbus_string_base64_encode) 8513 (_dbus_string_base64_decode): Remove. 8514 (_dbus_string_hex_decode): Add end_return argument so we can 8515 distinguish between OOM and invalid hex encoding. 8516 (_dbus_string_test): Remove base64 tests and add test case for 8517 invalid hex. 8518 8519 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c: 8520 Replace base64 with hex. 8521 8522 * test/data/auth/invalid-hex-encoding.auth-script: New test case 8523 for invalid hex encoded data in auth protocol. 8524 8525 2004-05-17 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8526 8527 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory 8528 leak. 8529 8530 2004-05-15 Owen Fraser-Green <owen (a] discobabe.net> 8531 8532 * mono/dbus-sharp.dll.config.in: Added for GAC 8533 * mono/dbus-sharp.snk: Added for GAC 8534 * mono/Assembly.cs.in: Added for GAC 8535 * mono/Makefile.am: Changes for GAC installation 8536 * configure.in: Added refs for dbus-sharp.dll.config.in and 8537 Assembly.cs.in. More fixes for mono testing 8538 * mono/example/Makefile.am: Changed var to CSC 8539 * Makefile.am: Changed flag name to DBUS_USE_CSC 8540 8541 2004-05-15 Owen Fraser-Green <owen (a] discobabe.net> 8542 8543 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order 8544 * mono/doc/*: Added documentation framework 8545 * configure.in: Added monodoc check 8546 * README: Added description of mono configure flags 8547 8548 2004-05-11 John (J5) Palmieri <johnp (a] redhat.com>: 8549 8550 * doc/dbus-specification.xml: Added a "Required" column to the 8551 header fields table and changed the "zero or more" verbage in 8552 the above paragraph to read "The header must contain the required 8553 named header fields and zero or more of the optional named header 8554 fields". 8555 * test/data/invalid-messages/*.message: Added the required PATH 8556 named header field to the tests so that they don't fail on 8557 'Missing path field' 8558 8559 2004-05-07 John (J5) Palmieri <johnp (a] redhat.com> 8560 8561 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing 8562 the stack by implicitly defining variable and parameter types and 8563 removing the hack of defining C pointers as python objects and later 8564 casting them. 8565 8566 2004-05-02 Owen Fraser-Green <owen (a] discobabe.net> 8567 8568 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target 8569 8570 2004-05-01 Owen Fraser-Green <owen (a] discobabe.net> 8571 8572 * mono/DBusType/Dict.cs: Handle empty dicts 8573 * mono/DBusType/Array.cs: Handle empty arrays 8574 * mono/Arguments.cs: Handle empty arguments 8575 8576 2004-04-30 Owen Fraser-Green <owen (a] discobabe.net> 8577 8578 * dbus-sharp.pc.in: Modified to include include Libs and Requires 8579 field 8580 8581 2004-04-25 Kristian Hgsberg <krh (a] redhat.com> 8582 8583 * test/data/valid-messages/standard-*.message: Update message 8584 test scripts to new header field names. 8585 8586 2004-04-22 John (J5) Palmieri <johnp (a] redhat.com> 8587 8588 * test/break-loader.c (randomly_do_n_things): tracked down buffer 8589 overflow to times_we_did_each_thing array which would chop off the 8590 first character of the failure_dir string. Increased the size of 8591 the array to 7 to reflect the number of random mutation functions 8592 we have. 8593 8594 2004-04-21 Kristian Hgsberg <krh (a] redhat.com> 8595 8596 * dbus/dbus-server-unix.c (unix_finalize): Don't unref 8597 unix_server->watch here, it is unreffed in disconnect. 8598 (_dbus_server_new_for_tcp_socket): convert NULL host to 8599 "localhost" here so we don't append NULL to address. 8600 8601 * dbus/dbus-server.c (_dbus_server_test): Add test case for 8602 various addresses, including tcp with no explicit host. 8603 8604 2004-04-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8605 8606 * dbus/dbus-message.c (decode_header_data, decode_string_field): 8607 fix incorrect setting of .name_offset in the HeaderField (it was 8608 off by two bytes, positioned right after the name and typecode) 8609 8610 * bus/bus.c (bus_context_new, bus_context_unref): test before 8611 calling dbus_server_free_data_slot and _dbus_user_database_unref 8612 in case of an error. 8613 8614 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed 8615 by libdbus-gtool. 8616 8617 2004-04-19 Kristian Hgsberg <krh (a] redhat.com> 8618 8619 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use 8620 _dbus_poll() instead of select(). 8621 8622 2004-04-15 Jon Trowbridge <trow (a] ximian.com> 8623 8624 * bus/main.c (signal_handler): Reload the configuration files 8625 on SIGHUP. 8626 (main): Set up our SIGHUP handler. 8627 8628 * bus/bus.c (struct BusContext): Store the config file, user and 8629 fork flag in the BusContext. 8630 (process_config_first_time_only): Added. Contains the code 8631 (previously in bus_context_new) for setting up the BusContext from 8632 the BusConfigParser that should only be run the first time the 8633 config files are read. 8634 (process_config_every_time): Added. Contains the code (previously 8635 in bus_context_new) for setting up the BusContext from the 8636 BusConfigParser that should be run every time the config files are 8637 read. 8638 (load_config): Added. Builds a BusConfigParser from the config 8639 files and passes the resulting structure off to 8640 process_config_first_time_only (assuming this is the first time) 8641 and process_config_every_time. 8642 (bus_context_new): All of the config-related code has been moved 8643 to process_config_first_time_only and process_config_every_time. 8644 Now this function just does the non-config-related initializations 8645 and calls load_config. 8646 (bus_context_reload_config): Added. 8647 8648 2004-04-15 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8649 8650 * bus/driver.c (bus_driver_handle_get_service_owner): 8651 implement a GetServiceOwner method. 8652 * doc/dbus-specification.xml: document it. 8653 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error. 8654 8655 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner): 8656 implement, using the bus GetServiceOwner method. 8657 8658 * test/glib/test-dbus-glib.c: 8659 use dbus_gproxy_new_for_service_owner so that we can receive the 8660 signal. 8661 8662 2004-04-15 John (J5) Palmieri <johnp (a] redhat.com> 8663 8664 * dbus/dbus-internals.c, dbus/dbus-message-builder.c, 8665 dbus/dbus-message.c, dbus/dbus-protocol.h 8666 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION 8667 8668 * dbus/dbus-internals.c, dbus/dbus-message-builder.c, 8669 dbus/dbus-message.c, dbus/dbus-protocol.h 8670 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER 8671 8672 * dbus/dbus-internals.c (_dbus_header_field_to_string): 8673 DBUS_HEADER_FIELD_DESTINATION resolves to "destination" 8674 DBUS_HEADER_FIELD_SENDER resolves to "sender" 8675 8676 * doc/dbus-specification.xml (Header Fields Table): 8677 s/SERVICE/DESTINATION 8678 s/SENDER_SERVICE/SENDER 8679 8680 8681 2004-04-14 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8682 8683 * test/glib/test-dbus-glib.c (timed_exit): fail the test after 8684 a few seconds. 8685 8686 2004-04-13 Michael Meeks <michael (a] ximian.com> 8687 8688 * glib/dbus-gobject.c (handle_introspect): split out 8689 (introspect_properties): this. 8690 (handle_introspect): implement this. 8691 8692 * test/glib/Makefile.am: use the absolute path so the bus 8693 daemon's chdir ("/") doesn't kill us dead. 8694 8695 * configure.in: subst ABSOLUTE_TOP_BUILDDIR 8696 8697 2004-04-12 Jon Trowbridge <trow (a] ximian.com> 8698 8699 * bus/config-parser.c (struct BusConfigParser): Added 8700 included_files field. 8701 (seen_include): Added. Checks whether or not a file has already 8702 been included by any parent BusConfigParser. 8703 (bus_config_parser_new): Copy the parent's included_files. 8704 (include_file): Track which files have been included, and fail on 8705 circular inclusions. 8706 (process_test_valid_subdir): Changed printf to report if we are 8707 testing valid or invalid conf files. 8708 (all_are_equiv): Changed printf to be a bit clearer about 8709 what we are actually doing. 8710 (bus_config_parser_test): Test invalid configuration files. 8711 8712 2004-04-09 Jon Trowbridge <trow (a] ximian.com> 8713 8714 * bus/config-parser.c (bus_config_parser_new): Added a 'parent' 8715 argument. If non-null, the newly-constructed BusConfigParser will 8716 be initialized with the parent's BusLimits instead of the default 8717 values. 8718 (include_file): When including a config file, pass in 8719 the current parser as the parent and then copy the BusLimits 8720 from the included BusConfigParser pack to the current parser. 8721 (process_test_valid_subdir): Renamed from process_test_subdir. 8722 (process_test_equiv_subdir): Added. Walks through a directory, 8723 descending into each subdirectory and loading the config files 8724 it finds there. If any subdirectory contains two config files 8725 that don't produce identical BusConfigParser structs, fail. 8726 For now, the BusConfigParser's BusPolicies are not compared. 8727 (bus_config_parser_test): Call both process_test_valid_subdir and 8728 process_test_equiv_subdir. 8729 8730 * bus/config-loader-libxml.c (bus_config_load): Take a parent 8731 argument and pass it along to the call to bus_config_parser_new. 8732 Also made a few small changes to allow this code to compile. 8733 8734 * bus/config-loader-expat.c (bus_config_load): Take a parent 8735 argument and pass it along to the call to bus_config_parser_new. 8736 8737 * bus/bus.c (bus_context_new): Load the config file 8738 with a NULL parent argument. 8739 8740 2004-03-29 Michael Meeks <michael (a] ximian.com> 8741 8742 * glib/dbus-gobject.c (introspect_properties): split 8743 out, fix mangled 'while' flow control. 8744 (introspect_signals): implement. 8745 (handle_introspect): update. 8746 8747 2004-03-29 Michael Meeks <michael (a] ximian.com> 8748 8749 * glib/dbus-gobject.c (set_object_property): split out / 8750 re-work, use the property type, and not the message type(!) 8751 (get_object_property): ditto. 8752 8753 * glib/dbus-gvalue.c (dbus_gvalue_demarshal), 8754 (dbus_gvalue_marshal): make this code re-usable, needed 8755 for signals too, also on both proxy and server side. 8756 Re-write for more efficiency / readability. 8757 8758 2004-03-29 Michael Meeks <michael (a] ximian.com> 8759 8760 * dbus/dbus-message.c 8761 (dbus_message_new_error_printf): impl. 8762 8763 * dbus/dbus-connection.c 8764 (dbus_connection_unregister_object_path): fix warning. 8765 8766 * configure.in: fix no-mono-installed situation. 8767 8768 2004-03-27 Havoc Pennington <hp (a] redhat.com> 8769 8770 Patch from Timo Ters: 8771 8772 * tools/dbus-send.c (main): if --print-reply, assume type is 8773 method call; support boolean type args 8774 8775 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a 8776 bunch of memleak and logic bugs 8777 8778 2004-03-23 Owen Fraser-Green <owen (a] discobabe.net> 8779 8780 * mono/Arguments.cs: 8781 * mono/Introspector.cs: 8782 * mono/Handler.cs: 8783 * mono/InterfaceProxy.cs: 8784 * mono/Message.cs 8785 * mono/ProxyBuilder.cs: 8786 * mono/Service.cs: 8787 Added InterfaceProxy class to avoid building proxies for every 8788 object. 8789 8790 * dbus-message.h: 8791 * dbus-message.c (dbus_message_append_args_valist) 8792 (dbus_message_iter_get_object_path) 8793 (dbus_message_iter_get_object_path_array) 8794 (dbus_message_iter_append_object_path) 8795 (dbus_message_iter_append_object_path_array): 8796 Added object_path iter functions to handle OBJECT_PATH arguments 8797 8798 2004-03-23 Owen Fraser-Green <owen (a] discobabe.net> 8799 8800 First checkin of mono bindings. 8801 * configure.in: 8802 * Makefile.am: 8803 Build stuff for the bindings 8804 * dbus-sharp.pc.in: Added for pkgconfig 8805 8806 2004-03-21 Havoc Pennington <hp (a] redhat.com> 8807 8808 * test/test-service.c (main): remove debug spew 8809 8810 2004-03-21 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8811 8812 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty 8813 arrays 8814 8815 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init) 8816 (dbus_message_iter_init_array_iterator) 8817 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to 8818 indicate whether the iterator is empty 8819 8820 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler 8821 warnings 8822 8823 2004-03-19 Havoc Pennington <hp (a] redhat.com> 8824 8825 * NEWS: 0.21 updates 8826 8827 * configure.in: 0.21 8828 8829 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED 8830 8831 * python/Makefile.am: change to avoid dist of dbus_bindings.c so 8832 you don't need pyrex to make dist 8833 8834 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to 8835 sources; run moc 8836 8837 2004-03-18 Richard Hult <richard (a] imendio.com> 8838 8839 * dbus/dbus-message.c (dbus_message_get_auto_activation) 8840 (dbus_message_set_auto_activation): Add doxygen docs. 8841 8842 2004-03-16 Richard Hult <richard (a] imendio.com> 8843 8844 * bus/activation.c: (bus_activation_service_created), 8845 (bus_activation_send_pending_auto_activation_messages), 8846 (bus_activation_activate_service): 8847 * bus/activation.h: 8848 * bus/dispatch.c: (bus_dispatch), 8849 (check_nonexistent_service_auto_activation), 8850 (check_service_auto_activated), 8851 (check_segfault_service_auto_activation), 8852 (check_existent_service_auto_activation), (bus_dispatch_test): 8853 * bus/driver.c: (bus_driver_handle_activate_service): 8854 * bus/services.c: (bus_registry_acquire_service): 8855 * dbus/dbus-message.c: (dbus_message_set_auto_activation), 8856 (dbus_message_get_auto_activation): 8857 * dbus/dbus-message.h: 8858 * dbus/dbus-protocol.h: Implement auto-activation. 8859 8860 * doc/dbus-specification.xml: Add auto-activation to the spec. 8861 8862 2004-03-12 Olivier Andrieu <oliv__a (a] users.sourceforge.net> 8863 8864 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): 8865 fix a bug with CUSTOM types. 8866 8867 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add 8868 a unit test for this bug (used to fail). 8869 8870 2004-03-12 Mikael Hallendal <micke (a] imendio.com> 8871 8872 * bus/activation.c: 8873 (babysitter_watch_callback): notify all pending activations waiting for 8874 the same exec that the activation failed. 8875 (bus_activation_activate_service): shortcut the activation if we 8876 already waiting for the same executable to start up. 8877 8878 2004-03-12 Mikael Hallendal <micke (a] imendio.com> 8879 8880 * bus/activation.c: 8881 - Added service file reloading. 8882 Each service files directory is kept in an hash table in 8883 BusActivation and each BusActivationEntry knows what .service-file it 8884 was read from. So when you try to activate a service the bus will 8885 check if it's been updated, removed or if new .service-files has 8886 been installed. 8887 - Test code at the bottom for the service file reloading. 8888 * bus/test-main.c: (main): 8889 * bus/test.h: 8890 - added service reloading test. 8891 * dbus/dbus-sysdeps.c: 8892 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added. 8893 8894 2004-03-08 Michael Meeks <michael (a] ximian.com> 8895 8896 * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 8897 bail immediately if disconnected, to avoid busy loop. 8898 8899 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): 8900 cleanup cut/paste/inefficiency. 8901 8902 2004-03-01 David Zeuthen <david (a] fubar.dk> 8903 8904 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a 8905 bug where args were used twice. This bug resulted in a segfault 8906 on a Debian/PPC system when starting the messagebus daemon. Include 8907 dbus-sysdeps.h for DBUS_VA_COPY 8908 8909 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib 8910 8911 * configure.in: Check for va_copy; define DBUS_VA_COPY to the 8912 appropriate va_copy implementation. From GLib 8913 8914 2004-02-24 Joe Shaw <joe (a] ximian.com> 8915 8916 * bus/services.c (bus_registry_acquire_service): We need to pass 8917 in the service name to dbus_set_error() to prevent a crash. 8918 8919 2003-12-26 Anders Carlsson <andersca (a] gnome.org> 8920 8921 * AUTHORS: Reveal my True identity. 8922 8923 2003-12-17 Mikael Hallendal <micke (a] imendio.com> 8924 8925 * dbus/dbus-message.c: (dbus_message_append_args_valist): 8926 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg. 8927 8928 2003-12-13 Mikael Hallendal <micke (a] imendio.com> 8929 8930 * doc/TODO: Added not about better error check of configuration files. 8931 8932 2003-12-02 Richard Hult <richard (a] imendio.com> 8933 8934 * Update AFL version to 2.0 throughout the source files to reflect 8935 the update that was done a while ago. 8936 8937 2003-12-02 Richard Hult <richard (a] imendio.com> 8938 8939 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set 8940 wrote_dict_key to FALSE on the iter that the dict is appended to, 8941 just like when appending other types. Fixes a bug where a dict 8942 couldn't be put inside a dict. 8943 (dbus_message_iter_append_dict_key): Fix typo in warning message. 8944 (message_iter_test, _dbus_message_test): Add test case for dict 8945 inside dict. 8946 8947 2003-12-01 David Zeuthen <david (a] fubar.dk> 8948 8949 * python/dbus.py: Add the actual message when calling the reciever 8950 of a signal such that parameters can be inspected. Add the method 8951 remove_signal_receiver 8952 8953 2003-11-26 Mikael Hallendal <micke (a] imendio.com> 8954 8955 * bus/*.[ch]: 8956 * dbus/*.[ch]: 8957 * glib/*.[ch]: Made ref functions return the pointer 8958 8959 2003-11-25 Zack Rusin <zack (a] kde.org> 8960 8961 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer, 8962 8963 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 8964 wrappers, 8965 8966 * qt/connection.h, qt/connection.cpp: Adjusting to changes in 8967 the Integrator and to better fit with the server, 8968 8969 2003-11-24 Zack Rusin <zack (a] kde.org> 8970 8971 * qt/connection.h, qt/connection.cpp: removing initDbus method since 8972 the integrator handles it now 8973 8974 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts, 8975 since QTimer wasn't really meant to be used the way DBusTimeout is 8976 8977 2003-11-24 Zack Rusin <zack (a] kde.org> 8978 8979 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 8980 Integrator class which integrates D-BUS with the Qt event loop, 8981 8982 * qt/connection.h, qt/connection.cpp: Move all the code which 8983 was dealing with D-BUS integration to the Integrator class, 8984 and start using Integrator, 8985 8986 2003-11-23 Zack Rusin <zack (a] kde.org> 8987 8988 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 8989 wrapper 8990 8991 * qt/message.h, qt/message.cpp: updating to the current D-BUS api, 8992 switching namespaces to DBusQt, reworking the class, 8993 8994 * Makefile.cvs: switching dependencies so that it matches KDE 8995 schematics, 8996 8997 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 8998 the library 8999 9000 2003-11-19 Havoc Pennington <hp (a] redhat.com> 9001 9002 * NEWS: update 9003 9004 * configure.in: bump version to 0.20 9005 9006 * configure.in (have_qt): add yet another place to look for qt 9007 (someone hand trolltech a .pc file...) 9008 9009 2003-11-01 Havoc Pennington <hp (a] redhat.com> 9010 9011 * doc/dbus-specification.xml: add state machine docs on the auth 9012 protocol; just a first draft, I'm sure it's wrong. 9013 9014 2003-10-28 David Zeuthen <david (a] fubar.dk> 9015 9016 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries 9017 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h 9018 9019 2003-10-28 Havoc Pennington <hp (a] redhat.com> 9020 9021 * dbus/dbus-message.c (get_next_field): delete unused function 9022 9023 2003-10-28 Havoc Pennington <hp (a] redhat.com> 9024 9025 * bus/expirelist.c (do_expiration_with_current_time): detect 9026 failure of the expire_func due to OOM 9027 9028 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM 9029 9030 * bus/dispatch.c (check_send_exit_to_service): fix to handle the 9031 NoReply error that's now created by the bus when the service exits 9032 9033 2003-10-28 Havoc Pennington <hp (a] redhat.com> 9034 9035 * dbus/dbus-message.c (_dbus_message_test): enable and fix the 9036 tests for set_path, set_interface, set_member, etc. 9037 9038 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes 9039 9040 * dbus/dbus-message.c (set_string_field): always just delete and 9041 re-append the field; accept NULL for deletion 9042 (re_align_fields_recurse): reimplement 9043 9044 2003-10-26 Havoc Pennington <hp (a] redhat.com> 9045 9046 * dbus/dbus-connection.c: fix docs to properly describe the 9047 disconnected message 9048 (_dbus_connection_notify_disconnected): remove this function; 9049 we can't synchronously add the disconnected message, we have to 9050 do it after we've queued any remaining real messages 9051 (_dbus_connection_get_dispatch_status_unlocked): queue the 9052 disconnect message only if the transport has finished queueing all 9053 its real messages and is disconnected. 9054 (dbus_connection_disconnect): update the dispatch status here 9055 9056 2003-10-22 Havoc Pennington <hp (a] redhat.com> 9057 9058 * bus/bus.c (bus_context_check_security_policy): fix up assertion 9059 9060 * bus/connection.c (bus_transaction_send_from_driver): set the 9061 destination to the connection's base service 9062 9063 2003-10-20 Havoc Pennington <hp (a] redhat.com> 9064 9065 hmm, make check is currently not passing. 9066 9067 * doc/dbus-specification.xml: add requirement that custom type 9068 names follow the same rules as interface names. 9069 9070 * dbus/dbus-protocol.h: change some of the byte codes, to avoid 9071 duplication and allow 'c' to be 'custom'; dict is now 'm' for 9072 'map' 9073 9074 * doc/dbus-specification.xml: update type codes to match 9075 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to 9076 CUSTOM. Add type OBJECT_PATH to the spec. 9077 9078 2003-10-17 Havoc Pennington <hp (a] redhat.com> 9079 9080 * bus/driver.c (create_unique_client_name): use "." as separator 9081 in base service names instead of '-' 9082 9083 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul 9084 byte at the end of the string 9085 9086 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add 9087 optimization macros since string validation seems to be a slow 9088 point. 9089 9090 * doc/dbus-specification.xml: restrict valid 9091 service/interface/member/error names. Add test suite code for the 9092 name validation. 9093 9094 * dbus/dbus-string.c: limit service/interface/member/error names 9095 to [0-9][A-Z][a-z]_ 9096 9097 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing 9098 format arg to verbose spew 9099 9100 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of 9101 memory, return instead of g_error 9102 9103 * test/test-service.c (path_message_func): support emitting a 9104 signal on request 9105 9106 * dbus/dbus-bus.c (init_connections_unlocked): only fill in 9107 activation bus type if DBUS_BUS_ACTIVATION was set; default to 9108 assuming the activation bus was the session bus so that services 9109 started manually will still register. 9110 (init_connections_unlocked): fix so that in OOM situation we get 9111 the same semantics when retrying the function 9112 9113 * test/test-service.c (main): change to use path registration, to 9114 test those codepaths; register with DBUS_BUS_ACTIVATION rather 9115 than DBUS_BUS_SESSION 9116 9117 2003-10-16 Havoc Pennington <hp (a] redhat.com> 9118 9119 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS 9120 9121 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test 9122 coverage of the tests 9123 (coverage-report.txt): don't move the .da and .bbg files around 9124 9125 2003-10-16 Havoc Pennington <hp (a] redhat.com> 9126 9127 * bus/bus.c (struct BusContext): remove struct field I didn't mean 9128 to put there 9129 9130 2003-10-16 Havoc Pennington <hp (a] redhat.com> 9131 9132 * bus/connection.c (bus_pending_reply_expired): either cancel or 9133 execute, not both 9134 (bus_connections_check_reply): use unlink, not remove_link, as we 9135 don't want to free the link; fixes double free mess 9136 9137 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case 9138 where no reply was received 9139 9140 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock): 9141 fix a refcount leak 9142 9143 * bus/signals.c (match_rule_matches): add special cases for the 9144 bus driver, so you can match on sender/destination for it. 9145 9146 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if 9147 DBUS_PRINT_BACKTRACE is set 9148 9149 * dbus/dbus-internals.c: add pid to assertion failure messages 9150 9151 * dbus/dbus-connection.c: add message type code to the debug spew 9152 9153 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want 9154 sender=foo not service=foo 9155 9156 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the 9157 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 9158 DBUS_ACTIVATION_ADDRESS instead 9159 9160 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS, 9161 DBUS_SYSTEM_BUS_ADDRESS if appropriate 9162 9163 * bus/bus.c (bus_context_new): handle OOM copying bus type into 9164 context struct 9165 9166 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function 9167 (dbus_message_iter_get_object_path_array): new function (half 9168 finished, disabled for the moment) 9169 9170 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle 9171 DBUS_MESSAGE_TYPE_ERROR 9172 9173 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to 9174 avoid redirecting stderr to /dev/null 9175 (babysit): close stdin if not doing the "exit_with_session" thing 9176 9177 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover 9178 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not 9179 stdout/stdin, so things don't get confused 9180 9181 * bus/system.conf.in: fix to allow replies, I modified .conf 9182 instead of .conf.in again. 9183 9184 2003-10-14 David Zeuthen <david (a] fubar.dk> 9185 9186 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in 9187 argtype to arg_type when raising unknown arg type exception. 9188 Changed type list to reflect the changes in dbus-protocol.h so 9189 the bindings actually work. 9190 9191 2003-10-14 Havoc Pennington <hp (a] redhat.com> 9192 9193 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems 9194 to have a bug keeping it from outputting the .da files sometimes 9195 (string_get_string): don't append garbage nul bytes to the string. 9196 9197 2003-10-15 Seth Nickell <seth (a] gnome.org> 9198 9199 * python/Makefile.am: 9200 9201 Include dbus_h_wrapper.h in the dist tarball. 9202 9203 2003-10-14 Havoc Pennington <hp (a] redhat.com> 9204 9205 * bus/bus.c (bus_context_check_security_policy): revamp this to 9206 work more sanely with new policy-based requested reply setup 9207 9208 * bus/connection.c (bus_transaction_send_from_driver): set bus 9209 driver messages as no reply 9210 9211 * bus/policy.c (bus_client_policy_check_can_receive): handle a 9212 requested_reply attribute on allow/deny rules 9213 9214 * bus/system.conf: add <allow requested_reply="true"/> 9215 9216 * bus/driver.c (bus_driver_handle_message): fix check for replies 9217 sent to the bus driver, which was backward. How did this ever work 9218 at all though? I think I'm missing something. 9219 9220 * dbus/dbus-message.c (decode_header_data): require error and 9221 method return messages to have a reply serial field to be valid 9222 (_dbus_message_loader_queue_messages): break up this function; 9223 validate that reply serial and plain serial are nonzero; 9224 clean up the OOM/error handling. 9225 (get_uint_field): don't return -1 from this 9226 (dbus_message_create_header): fix signed/unsigned bug 9227 9228 * bus/connection.c (bus_connections_expect_reply): save serial of 9229 the incoming message, not reply serial 9230 9231 2003-10-14 Havoc Pennington <hp (a] redhat.com> 9232 9233 * bus/connection.c: implement pending reply tracking using 9234 BusExpireList 9235 9236 * bus/bus.c (bus_context_check_security_policy): verify that a 9237 reply is pending in order to allow a reply to be sent. Deny 9238 messages of unknown type. 9239 9240 * bus/dbus-daemon-1.1.in: update to mention new resource limits 9241 9242 * bus/bus.c (bus_context_get_max_replies_per_connection): new 9243 (bus_context_get_reply_timeout): new 9244 9245 2003-10-13 Seth Nickell <seth (a] gnome.org> 9246 9247 * python/Makefile.am: 9248 9249 Pass "make distcheck": remove a couple files from DIST_FILES 9250 that weren't included in the final version. 9251 9252 2003-10-12 Havoc Pennington <hp (a] pobox.com> 9253 9254 Added test code that 1) starts an actual bus daemon and 2) uses 9255 DBusGProxy; fixed bugs that were revealed by the test. Lots 9256 more testing possible, but this is the basic framework. 9257 9258 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove 9259 empty proxy lists from the proxy list hash 9260 9261 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a 9262 couple of return_if_fail checks 9263 9264 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 9265 to allocate, so everything is cleared to NULL as it should be. 9266 9267 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass 9268 source as data to dbus_connection_set_timeout_functions() as the 9269 timeout functions expected 9270 9271 * test/glib/run-test.sh: add a little script to start up a message 9272 bus and run tests using it 9273 9274 * tools/dbus-launch.1: updates 9275 9276 * tools/dbus-launch.c (main): add --config-file option 9277 9278 * tools/dbus-launch.c (main): remove confusing else if (runprog) 9279 that could never be reached. 9280 9281 * dbus/dbus-message.c (dbus_message_new_method_return) 9282 (dbus_message_new_error, dbus_message_new_signal): set the 9283 no-reply-expected flag on all these. Redundant, but may 9284 as well be consistent. 9285 9286 2003-10-11 Havoc Pennington <hp (a] pobox.com> 9287 9288 * test/decode-gcov.c (function_solve_graph): make broken block 9289 graph a nonfatal error since it seems to be broken. Need to debug 9290 this. 9291 9292 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we 9293 can't just check type > INVALID < LAST anymore 9294 9295 * dbus/dbus-message.c (dbus_message_get_signature): new function 9296 (dbus_message_has_signature): new function 9297 (struct DBusMessage): add signature field (right now it isn't sent 9298 over the wire, just generated on the fly) 9299 (dbus_message_copy): copy the signature, and init strings to 9300 proper length to avoid some reallocs 9301 (dbus_message_iter_init_array_iterator): return void, since it 9302 can't fail 9303 (dbus_message_iter_init_dict_iterator): return void since it can't fail 9304 (_dbus_message_loader_queue_messages): add silly temporary hack to 9305 fill in message->signature on load 9306 9307 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII 9308 characters, so they are relatively human-readable. 9309 9310 2003-10-11 Havoc Pennington <hp (a] pobox.com> 9311 9312 * dbus/dbus-message.c (_dbus_message_test): add more test 9313 coverage, but #if 0 for now since they uncover a bug 9314 not fixed yet; I think in re_align_field_recurse() 9315 (re_align_field_recurse): add FIXME about broken assertion 9316 9317 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage 9318 9319 * bus/connection.c: share a couple code bits with expirelist.c 9320 9321 * bus/expirelist.h, bus/expirelist.c: implement a generic 9322 expire-items-after-N-seconds facility, was going to share between 9323 expiring connections and replies, decided not to use for expiring 9324 connections for now. 9325 9326 * COPYING: include AFL 2.0 (still need to change all the file headers) 9327 9328 2003-10-09 Havoc Pennington <hp (a] redhat.com> 9329 9330 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have 9331 gcc 3.3. Not that we do anything about it yet. 9332 9333 * bus/signals.c (bus_match_rule_parse): impose max length on the 9334 match rule text 9335 9336 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH 9337 9338 2003-10-09 Havoc Pennington <hp (a] redhat.com> 9339 9340 Make matching rules theoretically work (add parser). 9341 9342 * bus/bus.c (bus_context_check_security_policy): fix up to handle 9343 the case where destination is explicitly specified as bus driver 9344 and someone else is eavesdropping. 9345 9346 * bus/policy.c (bus_client_policy_check_can_receive): fix up 9347 definition of eavesdropping and assertion 9348 9349 * tools/dbus-send.c (main): use dbus_message_type_from_string 9350 9351 * bus/signals.c (bus_match_rule_parse): implement 9352 9353 * dbus/dbus-message.c (dbus_message_type_from_string): new 9354 9355 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add 9356 9357 2003-10-02 Havoc Pennington <hp (a] pobox.com> 9358 9359 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from 9360 dbus_gproxy_oneway_call 9361 9362 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 9363 (dbus_server_setup_with_g_main): fix to allow calling them more 9364 than once on the same args 9365 (dbus_bus_get_with_g_main): new function 9366 9367 2003-10-02 Havoc Pennington <hp (a] redhat.com> 9368 9369 * doc/dbus-tutorial.xml: write some stuff 9370 9371 2003-09-29 Havoc Pennington <hp (a] pobox.com> 9372 9373 * configure.in: split checks for Doxygen from XML docs, check for 9374 xmlto 9375 9376 * doc/Makefile.am: XML-ify all the docs, and add a blank 9377 dbus-tutorial.xml 9378 9379 2003-09-29 Havoc Pennington <hp (a] pobox.com> 9380 9381 * Merge dbus-object-names branch. To see the entire patch 9382 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names, 9383 it's huuuuge though. 9384 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE. 9385 9386 2003-09-28 Havoc Pennington <hp (a] pobox.com> 9387 9388 * HACKING: update to reflect new server 9389 9390 2003-09-26 Seth Nickell <seth (a] gnome.org> 9391 9392 * python/dbus.py: 9393 * python/examples/example-signals.py: 9394 9395 Start implementing some notions of signals. The API 9396 is really terrible, but they sort of work (with the 9397 exception of being able to filter by service, and to 9398 transmit signals *as* a particular service). Need to 9399 figure out how to make messages come from the service 9400 we registered :-( 9401 9402 * python/dbus_bindings.pyx.in: 9403 9404 Removed duplicate message_handler callbacks. 9405 9406 2003-09-25 Havoc Pennington <hp (a] redhat.com> 9407 9408 * bus/session.conf.in: fix my mess 9409 9410 2003-09-25 Havoc Pennington <hp (a] pobox.com> 9411 9412 * bus/session.conf.in: fix security policy, reported by Seth Nickell 9413 9414 2003-09-25 Seth Nickell <seth (a] gnome.org> 9415 9416 * python/examples/example-service.py: 9417 9418 Johan notices complete wrong code in example-service, but 9419 completely wrong in a way that works exactly the same (!). 9420 Johan is confused, how could this possibly work? Example 9421 code fails to serve purpose of making things clear. 9422 Seth fixes. 9423 9424 2003-09-25 Mark McLoughlin <mark (a] skynet.ie> 9425 9426 * doc/dbus-specification.sgml: don't require header fields 9427 to be 4-byte aligned and specify that fields should be 9428 distinguished from padding by the fact that zero is not 9429 a valid field name. 9430 9431 * doc/TODO: remove re-alignment item and add item to doc 9432 the OBJECT_PATH type. 9433 9434 * dbus/dbus-message.c: 9435 (HeaderField): rename the original member to value_offset 9436 and introduce a name_offset member to keep track of where 9437 the field actually begins. 9438 (adjust_field_offsets): remove. 9439 (append_int_field), (append_uint_field), 9440 (append_string_field): don't align the start of the header 9441 field to a 4-byte boundary. 9442 (get_next_field): impl finding the next marhsalled field 9443 after a given field. 9444 (re_align_field_recurse): impl re-aligning a number of 9445 already marshalled fields. 9446 (delete_field): impl deleting a field of any type and 9447 re-aligning any following fields. 9448 (delete_int_or_uint_field), (delete_string_field): remove. 9449 (set_int_field), (set_uint_field): no need to re-check 9450 that we have the correct type for the field. 9451 (set_string_field): ditto and impl re-aligning any 9452 following fields. 9453 (decode_header_data): update to take into account that 9454 the fields aren't 4-byte aligned any more and the new 9455 way to distinguish padding from header fields. Also, 9456 don't exit when there is too much header padding. 9457 (process_test_subdir): print the directory. 9458 (_dbus_message_test): add test to make sure a following 9459 field is re-aligned correctly after field deletion. 9460 9461 * dbus/dbus-string.[ch]: 9462 (_dbus_string_insert_bytes): rename from insert_byte and 9463 allow the insert of multiple bytes. 9464 (_dbus_string_test): test inserting multiple bytes. 9465 9466 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add 9467 warning note to docs about having to re-align any 9468 marshalled values following the string. 9469 9470 * dbus/dbus-message-builder.c: 9471 (append_string_field), (_dbus_message_data_load): 9472 don't align the header field. 9473 9474 * dbus/dbus-auth.c: (process_test_subdir): print the 9475 directory. 9476 9477 * test/break-loader.c: (randomly_add_one_byte): upd. for 9478 insert_byte change. 9479 9480 * test/data/invalid-messages/bad-header-field-alignment.message: 9481 new test case. 9482 9483 * test/data/valid-messages/unknown-header-field.message: shove 9484 a dict in the unknown field. 9485 9486 2003-09-25 Seth Nickell <seth (a] gnome.org> 9487 9488 * python/dbus.py: 9489 * python/dbus_bindings.pyx.in: 9490 9491 Handle return values. 9492 9493 * python/examples/example-client.py: 9494 * python/examples/example-service.py: 9495 9496 Pass back return values from the service to the client. 9497 9498 2003-09-24 Seth Nickell <seth (a] gnome.org> 9499 9500 * python/dbus.py: 9501 9502 Connect Object methods (when you are sharing an object) up... pass 9503 in a list of methods to be shared. Sharing all the methods just 9504 worked out too weird. You can now create nice Services over the 9505 DBus in Python. :-) 9506 9507 * python/dbus_bindings.pyx.in: 9508 9509 Keep references to user_data tuples passed into C functions so 9510 Python doesn't garbage collect on us. 9511 9512 Implement MethodReturn and Error subclasses of Message for creating 9513 DBusMessage's of those types. 9514 9515 * python/examples/example-client.py: 9516 * python/examples/example-service.py: 9517 9518 Simple example code showing both how create DBus services and objects, 9519 and how to use them. 9520 9521 2003-09-23 Havoc Pennington <hp (a] pobox.com> 9522 9523 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement 9524 9525 2003-09-23 Havoc Pennington <hp (a] redhat.com> 9526 9527 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement 9528 (dbus_gproxy_disconnect_signal): implement 9529 (dbus_gproxy_manager_remove_signal_match): implement 9530 (dbus_gproxy_manager_add_signal_match): implement 9531 (dbus_gproxy_oneway_call): implement 9532 9533 2003-09-23 Havoc Pennington <hp (a] pobox.com> 9534 9535 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject 9536 subclass. This means dropping the transparent thread safety of the 9537 proxy; you now need a separate proxy per-thread, or your own 9538 locking on the proxy. Probably right anyway. 9539 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref 9540 9541 2003-09-22 Havoc Pennington <hp (a] redhat.com> 9542 9543 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement 9544 9545 2003-09-21 Seth Nickell <seth (a] gnome.org> 9546 9547 First checkin of the Python bindings. 9548 9549 * python/.cvsignore: 9550 * python/Makefile.am: 9551 * python/dbus_bindings.pyx.in: 9552 * python/dbus_h_wrapper.h: 9553 9554 Pieces for Pyrex to operate on, building a dbus_bindings.so 9555 python module for low-level access to the DBus APIs. 9556 9557 * python/dbus.py: 9558 9559 High-level Python module for accessing DBus objects. 9560 9561 * configure.in: 9562 * Makefile.am: 9563 9564 Build stuff for the python bindings. 9565 9566 * acinclude.m4: 9567 9568 Extra macro needed for finding the Python C header files. 9569 9570 2003-09-21 Havoc Pennington <hp (a] pobox.com> 9571 9572 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start 9573 implementing the proxy manager, didn't get very far. 9574 9575 * dbus/dbus-bus.c (dbus_bus_add_match): new 9576 (dbus_bus_remove_match): new 9577 9578 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a 9579 path_name argument; adjust the other not-yet-implemented 9580 gproxy constructors to be what I think they should be. 9581 9582 2003-09-21 Havoc Pennington <hp (a] pobox.com> 9583 9584 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE 9585 by default for message bus connections. 9586 9587 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if 9588 exit_on_disconnect flag is set and we process the disconnected 9589 signal. 9590 (dbus_connection_set_exit_on_disconnect): new function 9591 9592 2003-09-21 Havoc Pennington <hp (a] pobox.com> 9593 9594 Get matching rules mostly working in the bus; only actually 9595 parsing the rule text remains. However, the client side of 9596 "signal connections" hasn't been started, this patch is only the 9597 bus side. 9598 9599 * dbus/dispatch.c: fix for the matching rules changes 9600 9601 * bus/driver.c (bus_driver_handle_remove_match) 9602 (bus_driver_handle_add_match): send an ack reply from these 9603 method calls 9604 9605 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of 9606 arguments, reported by Seth Nickell 9607 9608 * bus/config-parser.c (append_rule_from_element): support 9609 eavesdrop=true|false attribute on policies so match rules 9610 can be prevented from snooping on the system bus. 9611 9612 * bus/dbus-daemon-1.1.in: consistently use terminology "sender" 9613 and "destination" in attribute names; fix some docs bugs; 9614 add eavesdrop=true|false attribute 9615 9616 * bus/driver.c (bus_driver_handle_add_match) 9617 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch 9618 messages 9619 9620 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get 9621 rid of broadcast service concept, signals are just always broadcast 9622 9623 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c: 9624 mostly implement matching rules stuff (currently only exposed as signal 9625 connections) 9626 9627 2003-09-21 Mark McLoughlin <mark (a] skynet.ie> 9628 9629 * doc/dbus-specification.sgml: Change the header field name 9630 to be an enum and update the rest of the spec to reference 9631 the fields using the conventinal name. 9632 9633 * dbus/dbus-protocol.h: update to reflect the spec. 9634 9635 * doc/TODO: add item to remove the 4 byte alignment requirement. 9636 9637 * dbus/dbus-message.c: Remove the code to generalise the 9638 header/body length and serial number header fields as named 9639 header fields so we can reference field names using the 9640 protocol values. 9641 (append_int_field), (append_uint_field), (append_string_field): 9642 Append the field name as a byte rather than four chars. 9643 (delete_int_or_uint_field), (delete_string_field): reflect the 9644 fact that the field name and typecode now occupy 4 bytes instead 9645 of 8. 9646 (decode_string_field), (decode_header_data): update to reflect 9647 protocol changes and move the field specific encoding from 9648 decode_string_field() back into decode_header_data(). 9649 9650 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): 9651 Add utility to aid debugging. 9652 9653 * dbus/dbus-message-builder.c: 9654 (append_string_field), (_dbus_message_data_load): Update to 9655 reflect protocol changes; Change the FIELD_NAME directive 9656 to HEADER_FIELD and allow it to take the field's conventional 9657 name rather than the actual value. 9658 9659 * test/data/*/*.message: Update to use HEADER_FIELD instead 9660 of FIELD_NAME; Always align the header on an 8 byte boundary 9661 *before* updating the header length. 9662 9663 2003-09-15 Havoc Pennington <hp (a] pobox.com> 9664 9665 * dbus/dbus-pending-call.c: add the get/set object data 9666 boilerplate as for DBusConnection, etc. Use generic object data 9667 for the notify callback. 9668 9669 * glib/dbus-gparser.c (parse_node): parse child nodes 9670 9671 * tools/dbus-viewer.c: more hacking on the dbus-viewer 9672 9673 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to 9674 contain functions shared between the convenience lib and the 9675 installed lib 9676 9677 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add 9678 -export-symbols-regex to the GLib library 9679 9680 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock): 9681 fix the locking in here, and add a default handler for 9682 Introspect() that just returns sub-nodes. 9683 9684 2003-09-14 Havoc Pennington <hp (a] pobox.com> 9685 9686 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo 9687 rather than gfoo consistent 9688 9689 * glib/dbus-gproxy.h: delete for now, move contents to 9690 dbus-glib.h, because the include files don't work right since we 9691 aren't in the dbus/ subdir. 9692 9693 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing 9694 (dbus_gproxy_end_call): finish 9695 (dbus_gproxy_begin_call): finish 9696 9697 * glib/dbus-gmain.c (dbus_set_g_error): new 9698 9699 * glib/dbus-gobject.c (handle_introspect): include information 9700 about child nodes in the introspection 9701 9702 * dbus/dbus-connection.c (dbus_connection_list_registered): new 9703 function to help in implementation of introspection 9704 9705 * dbus/dbus-object-tree.c 9706 (_dbus_object_tree_list_registered_and_unlock): new function 9707 9708 2003-09-12 Havoc Pennington <hp (a] pobox.com> 9709 9710 * glib/dbus-gidl.h: add common base class for all the foo_info 9711 types 9712 9713 * tools/dbus-viewer.c: add GTK-based introspection UI thingy 9714 similar to kdcop 9715 9716 * test/Makefile.am: try test srcdir -ef . in addition to test 9717 srcdir = ., one of them should work (yeah lame) 9718 9719 * glib/Makefile.am: build the "idl" parser stuff as a convenience 9720 library 9721 9722 * glib/dbus-gparser.h: make description_load routines return 9723 NodeInfo* not Parser* 9724 9725 * Makefile.am (SUBDIRS): build test dir after all library dirs 9726 9727 * configure.in: add GTK+ detection 9728 9729 2003-09-07 Havoc Pennington <hp (a] pobox.com> 9730 9731 * Make Doxygen contented. 9732 9733 2003-09-07 Havoc Pennington <hp (a] pobox.com> 9734 9735 * doc/dbus-specification.sgml: more updates 9736 9737 2003-09-06 Havoc Pennington <hp (a] pobox.com> 9738 9739 * doc/dbus-specification.sgml: partial updates 9740 9741 * bus/dbus-daemon-1.1.in: fix the config file docs for the 9742 zillionth time; hopefully I edited the right file this time. 9743 9744 * bus/config-parser.c (append_rule_from_element): support 9745 send_type, send_path, receive_type, receive_path 9746 9747 * bus/policy.c: add message type and path to the list of things 9748 that can be "firewalled" 9749 9750 2003-09-06 Havoc Pennington <hp (a] pobox.com> 9751 9752 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this 9753 (dbus_connection_register_object_path): make this not handle 9754 messages to paths below the given path 9755 9756 2003-09-03 Havoc Pennington <hp (a] pobox.com> 9757 9758 * test/glib/Makefile.am: add this with random glib-linked test 9759 programs 9760 9761 * glib/Makefile.am: remove the random test programs from here, 9762 leave only the unit tests 9763 9764 * glib/dbus-gobject.c (_dbus_gobject_test): add test for 9765 uscore/javacaps conversion, and fix 9766 (get_object_property, set_object_property): change to .NET 9767 convention for mapping props to methods, set_FooBar/get_FooBar, 9768 since one language has such a convention we may as well copy it. 9769 Plus real methods in either getFooBar or get_foo_bar style won't 9770 collide with this convention. 9771 9772 2003-09-01 Havoc Pennington <hp (a] pobox.com> 9773 9774 * glib/dbus-gparser.c: implement 9775 9776 * glib/dbus-gobject.c: start implementing skeletons support 9777 9778 * configure.in: when disabling checks/assert, also define 9779 G_DISABLE_ASSERT and G_DISABLE_CHECKS 9780 9781 2003-09-01 Havoc Pennington <hp (a] pobox.com> 9782 9783 * glib/Makefile.am: rearrange a bunch of files and get "make 9784 check" framework set up 9785 9786 2003-08-31 Havoc Pennington <hp (a] pobox.com> 9787 9788 * fix build with --disable-tests 9789 9790 2003-08-30 Havoc Pennington <hp (a] pobox.com> 9791 9792 * dbus/dbus-connection.c: purge DBusMessageHandler 9793 9794 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 9795 use callbacks everywhere 9796 9797 2003-08-30 Havoc Pennington <hp (a] pobox.com> 9798 9799 * test/data/valid-config-files/system.d/test.conf: change to 9800 root for the user so warnings don't get printed 9801 9802 * dbus/dbus-message.c: add dbus_message_get_path, 9803 dbus_message_set_path 9804 9805 * dbus/dbus-object-tree.c (do_test_dispatch): add test of 9806 dispatching to a path 9807 9808 * dbus/dbus-string.c (_dbus_string_validate_path): add 9809 9810 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement 9811 (_dbus_marshal_object_path): implement 9812 9813 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 9814 to contain the path to the target object 9815 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename 9816 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service 9817 9818 2003-08-30 Havoc Pennington <hp (a] pobox.com> 9819 9820 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs 9821 9822 2003-08-29 Havoc Pennington <hp (a] pobox.com> 9823 9824 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be 9825 registered 9826 (struct DBusObjectSubtree): shrink this 9827 a lot, since we may have a lot of them 9828 (_dbus_object_tree_free_all_unlocked): implement 9829 (_dbus_object_tree_dispatch_and_unlock): implement 9830 9831 2003-08-29 Havoc Pennington <hp (a] pobox.com> 9832 9833 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS 9834 9835 2003-08-28 Havoc Pennington <hp (a] pobox.com> 9836 9837 purge DBusObjectID 9838 9839 * dbus/dbus-connection.c: port to no ObjectID, create a 9840 DBusObjectTree, rename ObjectTree to ObjectPath in public API 9841 9842 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 9843 everything except UnregisterFunction and MessageFunction 9844 9845 * dbus/dbus-marshal.c: port away from DBusObjectID, 9846 add DBUS_TYPE_OBJECT_PATH 9847 9848 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 9849 dbus/dbus-objectid.[hc]: remove these, we are moving to 9850 path-based object IDs 9851 9852 2003-08-25 Havoc Pennington <hp (a] pobox.com> 9853 9854 Just noticed that dbus_message_test is hosed, I wonder when I 9855 broke that. I thought make check was passing earlier... 9856 9857 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 9858 container tree, will replace most of dbus-object-registry 9859 9860 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99 9861 screwup 9862 9863 2003-08-19 Havoc Pennington <hp (a] pobox.com> 9864 9865 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER 9866 (dbus_message_is_error): fix this function 9867 9868 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules 9869 match 9870 9871 * bus/policy.c (bus_client_policy_check_can_receive): fix code to 9872 reflect clarified man page 9873 (bus_client_policy_check_can_send): ditto 9874 9875 * bus/session.conf.in: fixup 9876 9877 * bus/system.conf.in: fixup 9878 9879 2003-08-18 Havoc Pennington <hp (a] redhat.com> 9880 9881 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix 9882 9883 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix 9884 dumb bug created earlier (wrong order of args to 9885 decode_header_data()) 9886 9887 * tools/dbus-send.c: port 9888 9889 * tools/dbus-print-message.c (print_message): port 9890 9891 * test/data/*messages: port all messages over 9892 9893 * dbus/dbus-message-builder.c: support including 9894 message type 9895 9896 * bus/driver.c: port over 9897 9898 * bus/dispatch.c: port over to new stuff 9899 9900 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 9901 rename disconnect signal to "Disconnected" 9902 9903 2003-08-17 Havoc Pennington <hp (a] pobox.com> 9904 9905 This doesn't compile yet, but syncing up so I can hack on it from 9906 work. What are branches for if not broken code? ;-) 9907 9908 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add 9909 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER, 9910 DBUS_HEADER_FIELD_ERROR_NAME 9911 9912 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use 9913 for the interface+member pairs 9914 (string_hash): change to use g_str_hash algorithm 9915 (find_direct_function, find_string_function): refactor these to 9916 share most code. 9917 9918 * dbus/dbus-message.c: port all of this over to support 9919 interface/member fields instead of name field 9920 9921 * dbus/dbus-object-registry.c: port over 9922 9923 * dbus/dbus-string.c (_dbus_string_validate_interface): rename 9924 from _dbus_string_validate_name 9925 9926 * bus/dbus-daemon-1.1: change file format for the 9927 <deny>/<allow> stuff to match new message naming scheme 9928 9929 * bus/policy.c: port over 9930 9931 * bus/config-parser.c: parse new format 9932 9933 2003-08-16 Havoc Pennington <hp (a] pobox.com> 9934 9935 * dbus/dbus-object-registry.c (add_and_remove_objects): remove 9936 broken assertion 9937 9938 * glib/dbus-gproxy.c: some hacking 9939 9940 2003-08-15 Havoc Pennington <hp (a] redhat.com> 9941 9942 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement 9943 9944 * dbus/dbus-connection.c 9945 (dbus_connection_send_with_reply_and_block): factor out internals; 9946 change to convert any error replies to DBusError instead of 9947 returning them as a message 9948 9949 2003-08-15 Havoc Pennington <hp (a] pobox.com> 9950 9951 * dbus/dbus-connection.c, 9952 dbus/dbus-pending-call.c: Finish the pending call stuff 9953 9954 2003-08-14 Havoc Pennington <hp (a] redhat.com> 9955 9956 * dbus/dbus-pending-call.c: start on new object that will replace 9957 DBusMessageHandler and ReplyHandlerData for tracking outstanding 9958 replies 9959 9960 * dbus/dbus-gproxy.c: start on proxy object used to communicate 9961 with remote interfaces 9962 9963 * dbus/dbus-gidl.c: do the boring boilerplate in here 9964 9965 2003-08-12 Havoc Pennington <hp (a] pobox.com> 9966 9967 * bus/dispatch.c (bus_dispatch): make this return proper 9968 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD 9969 9970 * dbus/dbus-errors.c (dbus_set_error): use 9971 _dbus_string_append_printf_valist 9972 9973 * dbus/dbus-string.c (_dbus_string_append_printf_valist) 9974 (_dbus_string_append_printf): new 9975 9976 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to 9977 UNKNOWN_METHOD 9978 9979 * dbus/dbus-connection.c (dbus_connection_dispatch): handle 9980 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a 9981 message is unhandled. 9982 9983 2003-08-11 Havoc Pennington <hp (a] pobox.com> 9984 9985 * bus/test.c (client_disconnect_handler): change to return 9986 HANDLED (would have been REMOVE_MESSAGE) 9987 9988 * dbus/dbus-object.h (enum DBusHandlerResult): rename to 9989 HANDLED/NOT_YET_HANDLED instead of 9990 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 9991 should be used. 9992 9993 2003-08-10 Havoc Pennington <hp (a] pobox.com> 9994 9995 * tools/dbus-send.c (main): add --type argument, for now 9996 supporting only method_call and signal types. 9997 9998 * tools/dbus-print-message.c: print message type 9999 10000 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 10001 init connection->objects 10002 10003 * doc/dbus-specification.sgml: fix sgml 10004 10005 * bus/*.c: port over to object-instance API changes 10006 10007 * test/test-service.c: ditto 10008 10009 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL 10010 name, we will have to fix up the rest of the code to also handle 10011 this 10012 (dbus_message_new): generic message-creation call 10013 (set_string_field): allow appending name field 10014 10015 2003-08-06 Havoc Pennington <hp (a] pobox.com> 10016 10017 * dbus/dbus-object-registry.c: implement signal connection 10018 and dispatch 10019 10020 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new 10021 10022 * dbus/dbus-internals.c (_dbus_memdup): new function 10023 10024 2003-08-02 Havoc Pennington <hp (a] pobox.com> 10025 10026 * dbus/dbus-message.c (dbus_message_get_no_reply) 10027 (dbus_message_set_no_reply): add these and remove 10028 set_is_error/get_is_error 10029 10030 * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 10031 remove the ERROR flag, since there's now an ERROR type 10032 10033 2003-08-01 Havoc Pennington <hp (a] pobox.com> 10034 10035 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): 10036 implement 10037 10038 * dbus/dbus-message.c (dbus_message_get_type): new function 10039 10040 * doc/dbus-specification.sgml: add "type" byte to messages 10041 10042 2003-08-01 Havoc Pennington <hp (a] pobox.com> 10043 10044 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce 10045 a message type enum to distinguish kinds of message 10046 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 10047 that need not be replied to 10048 10049 2003-08-01 Havoc Pennington <hp (a] pobox.com> 10050 10051 * dbus/dbus-marshal.c: adapt to DBusObjectID changes 10052 (unpack_8_octets): fix no-64-bit-int bug 10053 10054 * dbus/dbus-object-registry.c (validate_id): validate the 10055 connection ID bits, not just the instance ID. 10056 10057 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize 10058 the connection-global 33 bits of the object ID 10059 10060 * dbus/dbus-object-registry.c (info_from_entry): fill in 10061 object ID in the new way 10062 10063 * dbus/dbus-objectid.h: rather than high/low bits, specifically 10064 define server/client/instance bits. 10065 10066 2003-07-30 Havoc Pennington <hp (a] pobox.com> 10067 10068 * dbus/dbus-connection.c (dbus_connection_register_object): fix 10069 build 10070 10071 2003-07-13 Havoc Pennington <hp (a] pobox.com> 10072 10073 * dbus/dbus-object.h (struct DBusObjectVTable): add padding 10074 fields to DBusObjectVTable and DBusObjectInfo 10075 10076 2003-07-12 Havoc Pennington <hp (a] pobox.com> 10077 10078 * dbus/dbus-object-registry.c: implement unit test, 10079 fix bugs discovered in process 10080 10081 * dbus/dbus-connection.c: remove handler_table and 10082 register_handler(), add DBusObjectRegistry usage 10083 10084 * dbus/dbus-objectid.c (dbus_object_id_is_null) 10085 (dbus_object_id_set_null): new functions 10086 10087 2003-07-08 Havoc Pennington <hp (a] pobox.com> 10088 10089 * dbus/dbus-object.c: implement some of this 10090 10091 * dbus/dbus-object-registry.c 10092 (_dbus_object_registry_add_and_unlock): fill in the object_id out 10093 param 10094 (_dbus_object_registry_new): handle OOM 10095 10096 2003-07-08 Havoc Pennington <hp (a] pobox.com> 10097 10098 * dbus/dbus-object.h: sketch out an API for registering objects 10099 with a connection, that allows us to use as little as 24 bytes 10100 per object and lets application code represent an object in 10101 any conceivable way. 10102 10103 * dbus/dbus-object-registry.c: implement the hard bits of the 10104 DBusConnection aspect of object API. Not yet wired up. 10105 10106 2003-07-06 Havoc Pennington <hp (a] pobox.com> 10107 10108 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function 10109 (_dbus_marshal_object_id): new 10110 (_dbus_demarshal_object_id): new 10111 (_dbus_marshal_get_arg_end_pos): support object ID type, and 10112 consolidate identical switch cases. Don't conditionalize handling 10113 of DBUS_TYPE_UINT64, need to handle the type always. 10114 (_dbus_marshal_validate_arg): consolidate identical cases, and 10115 handle DBUS_TYPE_OBJECT_ID 10116 10117 * dbus/dbus-objectid.c: new file with DBusObjectID data type. 10118 10119 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID 10120 10121 2003-09-28 Havoc Pennington <hp (a] pobox.com> 10122 10123 * real 0.13 release 10124 10125 2003-09-28 Havoc Pennington <hp (a] pobox.com> 10126 10127 * doc/Makefile.am (dbus-specification.html): testing a funky hack 10128 to work with Debian db2html 10129 10130 2003-09-28 Havoc Pennington <hp (a] pobox.com> 10131 10132 * configure.in: 0.13 10133 10134 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of 10135 stylesheet-images for benefit of Debian 10136 10137 Change back to using filesystem-linked sockets for the system 10138 bus, so only root can create the default system bus address. 10139 10140 * bus/system.conf.in: change to use 10141 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS 10142 10143 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define 10144 from here. 10145 10146 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS 10147 here, and AC_DEFINE DBUS_SYSTEM_PATH 10148 10149 2003-08-09 Anders Carlsson <andersca (a] codefactory.se> 10150 10151 * doc/TODO: 10152 * doc/busconfig.dtd: 10153 Add busconfig DTD. 10154 10155 2003-08-09 Anders Carlsson <andersca (a] codefactory.se> 10156 10157 * doc/dbus-specification.sgml: 10158 Add activation reply values. 10159 10160 2003-08-05 Havoc Pennington <hp (a] redhat.com> 10161 10162 * configure.in: 0.12 10163 10164 2003-08-05 Anders Carlsson <andersca (a] codefactory.se> 10165 10166 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref), 10167 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch), 10168 (add_watch), (remove_watch), (create_source): 10169 Refcount fds, fixes some reentrancy issues. 10170 10171 2003-07-30 Havoc Pennington <hp (a] redhat.com> 10172 10173 * dbus/dbus-bus.c (init_connections_unlocked): fix default system 10174 bus address to be abstract if we have abstract sockets 10175 10176 * NEWS: update 10177 10178 2003-07-28 Havoc Pennington <hp (a] redhat.com> 10179 10180 * bus/messagebus.in: fix to avoid processname/servicename 10181 confusion, from Michael Kearey 10182 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965 10183 10184 2003-07-23 Havoc Pennington <hp (a] pobox.com> 10185 10186 * dbus/dbus-message.c (dbus_message_iter_get_named): 10187 fix from Andy Hanton to remove broken "+1" 10188 10189 2003-07-16 Havoc Pennington <hp (a] pobox.com> 10190 10191 * tools/dbus-launch.c (babysit): close stdout/stderr in the 10192 babysitter process, as suggested by Thomas Leonard, so 10193 an "eval `dbus-launch --exit-with-session`" will actually 10194 return 10195 10196 2003-07-16 Havoc Pennington <hp (a] pobox.com> 10197 10198 * configure.in: print out EXPANDED_* variables in the summary at 10199 the end; clean up the code that computes EXPANDED_ variables and 10200 get the ones using exec_prefix right. Should make things work 10201 when you build without --prefix 10202 10203 2003-06-29 Havoc Pennington <hp (a] pobox.com> 10204 10205 * mono/Test.cs (class Test): fire up a main loop and run it 10206 10207 * mono/DBus.cs (DBus): don't g_thread_init since it can only be 10208 done once, the app has to do it 10209 10210 2003-06-26 Havoc Pennington <hp (a] pobox.com> 10211 10212 * mono/Connection.cs: set up connection with the glib main loop 10213 10214 2003-07-01 Havoc Pennington <hp (a] redhat.com> 10215 10216 * doc/dbus-specification.sgml: clarify the format of a type code, 10217 change suggested by Jim Blandy 10218 10219 2003-06-29 Miloslav Trmac <mitr (a] volny.cz> 10220 10221 * doc/Makefile.am: 10222 * tools/Makefile.am: Don't assume srcdir == builddir. 10223 10224 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking 10225 the allocated block. 10226 (_dbus_memory_test): New function. 10227 * dbus/dbus-test.h: Add _dbus_memory_test (). 10228 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it. 10229 10230 * dbus/dbus-message.c (decode_header_data): Use %.4s instead 10231 of %c%c%c%c. 10232 (dbus_message_new): Remove obsolete @todo. 10233 10234 * dbus/dbus-marshal.c (_dbus_marshal_set_int64) 10235 (_dbus_marshal_set_uint64): Fix comment. 10236 10237 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't 10238 hardcode FIELD_REPLY_SERIAL. 10239 10240 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch) 10241 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p 10242 10243 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS 10244 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used 10245 10246 2003-06-24 Havoc Pennington <hp (a] pobox.com> 10247 10248 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0) 10249 10250 2003-06-23 Anders Carlsson <andersca (a] codefactory.se> 10251 10252 * configure.in: 10253 * gcj/.cvsignore: 10254 * gcj/Hello.java: 10255 * gcj/Makefile.am: 10256 * gcj/TestMessage.java: (TestMessage), (TestMessage.main): 10257 * gcj/org/.cvsignore: 10258 * gcj/org/Makefile.am: 10259 * gcj/org/freedesktop/.cvsignore: 10260 * gcj/org/freedesktop/Makefile.am: 10261 * gcj/org/freedesktop/dbus/.cvsignore: 10262 * gcj/org/freedesktop/dbus/Makefile.am: 10263 * gcj/org/freedesktop/dbus/Message.java: (Message), 10264 (Message.Message): 10265 * gcj/org/freedesktop/dbus/natMessage.cc: 10266 Fix the build system. 10267 10268 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10269 10270 * mono/Connection.cs: add more bindings 10271 10272 * dbus/dbus-threads.c (dbus_threads_init): allow calling this 10273 more than once. 10274 10275 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10276 10277 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs: 10278 Start wrapping more stuff. 10279 10280 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10281 10282 * mono/Message.cs: implement Message.Wrap() that ensures we only 10283 have a single C# wrapper per DBusMessage, assuming it works which 10284 it probably doesn't. 10285 10286 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new 10287 (dbus_message_free_data_slot): new 10288 (dbus_message_set_data): new 10289 (dbus_message_get_data): new 10290 10291 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10292 10293 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref) 10294 (_dbus_data_slot_allocator_alloc): rework these to keep a 10295 reference count on each slot and automatically manage a global 10296 slot ID variable passed in by address 10297 10298 * bus/bus.c: convert to new dataslot API 10299 10300 * dbus/dbus-bus.c: convert to new dataslot API 10301 10302 * dbus/dbus-connection.c: convert to new dataslot API 10303 10304 * dbus/dbus-server.c: convert to new dataslot API 10305 10306 * glib/dbus-gmain.c: ditto 10307 10308 * bus/test.c: ditto 10309 10310 * bus/connection.c: ditto 10311 10312 2003-06-22 Anders Carlsson <andersca (a] codefactory.se> 10313 10314 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL 10315 after the gcj checks so that the correct configuration tags 10316 will be added to libtool. 10317 10318 * dbus-glib-1.pc.in: No need to specify any includes since 10319 dbus-1.pc.in has those. 10320 10321 2003-06-22 Havoc Pennington <hp (a] pobox.com> 10322 10323 * mono/*, gcj/*, configure.in, Makefile.am: 10324 Check in makefiles and subdirs for mono and gcj bindings. 10325 Neither binding actually exists, just trying to get through 10326 all the build and other boring bits. 10327 10328 2003-06-21 Philip Blundell <philb (a] gnu.org> 10329 10330 * tools/dbus-monitor.1: Updated. 10331 10332 * tools/dbus-send.1: Likewise. 10333 10334 2003-06-20 Anders Carlsson <andersca (a] codefactory.se> 10335 10336 * dbus/dbus-transport-unix.c (unix_handle_watch): Check 10337 for hangup and error after checking read so we won't discard 10338 pending data if both hangup and read are set. 10339 10340 2003-06-19 Philip Blundell <philb (a] gnu.org> 10341 10342 * tools/dbus-print-message.c (print_message): Handle BOOLEAN. 10343 10344 * tools/dbus-send.c: Accept both --system and --session. 10345 10346 * tools/dbus-monitor.c: Same here. 10347 10348 2003-06-19 Anders Carlsson <andersca (a] codefactory.se> 10349 10350 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used 10351 from C++ (Patch by Miloslav Trmac). 10352 10353 2003-06-15 Joe Shaw <joe (a] assbarn.com> 10354 10355 * configure.in: Check for socklen_t. 10356 10357 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined. 10358 10359 * test/test-segfault.c: Add #include <sys/time.h> 10360 10361 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since 10362 dbus-launch needs it. 10363 10364 2003-06-09 Havoc Pennington <hp (a] redhat.com> 10365 10366 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use 10367 SUN_LEN, it breaks abstract socket usage 10368 10369 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at 10370 starts of lines. 10371 10372 2003-06-04 Havoc Pennington <hp (a] pobox.com> 10373 10374 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets 10375 using unix:abstract=/foo, and when listening in a tmpdir 10376 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can. 10377 10378 * dbus/dbus-transport.c (_dbus_transport_open): support 10379 unix:abstract=/foo 10380 10381 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): 10382 support abstract sockets 10383 10384 * dbus/dbus-transport-unix.c 10385 (_dbus_transport_new_for_domain_socket): support abstract sockets 10386 10387 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract" 10388 toggle as an argument, implement abstract namespace support 10389 (_dbus_listen_unix_socket): ditto 10390 10391 * configure.in: add --enable-abstract-sockets and implement 10392 a configure check for autodetection of the right value. 10393 10394 2003-06-01 Havoc Pennington <hp (a] pobox.com> 10395 10396 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets 10397 in /tmp (though on Linux this will end up being useless, 10398 when we add abstract namespace support) 10399 10400 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to 10401 subst'ing it 10402 10403 2003-05-28 Colin Walters <walters (a] verbum.org> 10404 10405 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/). 10406 10407 2003-05-18 Anders Carlsson <andersca (a] codefactory.se> 10408 10409 * dbus/dbus-message.c (dbus_message_new): Remove @todo. 10410 10411 2003-05-17 Colin Walters <walters (a] gnu.org> 10412 10413 * tools/dbus-send.c: Don't exit with an error code if --help was 10414 passed. Default to using the session bus instead of the system 10415 one. 10416 10417 * tools/dbus-launch.c: Ditto. 10418 10419 * tools/dbus-monitor.c: Ditto. 10420 10421 * tools/dbus-send.1: Update with new arguments. 10422 10423 * tools/dbus-launch.c: Emit code to export variables. New 10424 arguments -s and -c to specify shell syntax, and a bit of code to 10425 autodetect syntax. Also, allow specifying a program to run. 10426 10427 * tools/dbus-launch.1: Update with new arguments. 10428 10429 * tools/dbus-send.1: Ditto. 10430 10431 * tools/dbus-monitor.1: Ditto. 10432 10433 2003-05-17 Havoc Pennington <hp (a] pobox.com> 10434 10435 * bus/config-parser.c (merge_included): merge in policies from 10436 child configuration file. 10437 10438 * bus/policy.c (bus_policy_merge): function to merge two policies 10439 together 10440 10441 2003-05-16 Havoc Pennington <hp (a] redhat.com> 10442 10443 * dbus/dbus-connection.c: disable verbose lock spew 10444 10445 * tools/dbus-send.c: add --print-reply command line option 10446 10447 * tools/dbus-print-message.h (print_message): new util function 10448 shared by dbus-send and dbus-monitor 10449 10450 * tools/dbus-monitor.c (handler_func): exit on disconnect 10451 10452 * dbus/dbus-transport-unix.c (do_reading): if the transport is 10453 disconnected, don't try to use the read_watch 10454 10455 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL 10456 so we can find this bug more easily 10457 10458 2003-05-16 Havoc Pennington <hp (a] redhat.com> 10459 10460 * bus/policy.c (free_rule_list_func): avoid a crash when passed 10461 NULL as DBusHashTable is annoyingly likely to do. 10462 10463 2003-05-16 Colin Walters <walters (a] verbum.org> 10464 10465 * tools/dbus-monitor.c: Add --session argument and usage() 10466 function. 10467 10468 * tools/dbus-monitor.1: Update with new --session arg. 10469 10470 * bus/Makefile.am (install-data-hook): Create 10471 $(libdir)/dbus-1.0/services so that the session bus is happy. 10472 10473 2003-05-15 Havoc Pennington <hp (a] redhat.com> 10474 10475 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work 10476 on non-x86. ifdef's are evil. 10477 10478 2003-05-15 Havoc Pennington <hp (a] redhat.com> 10479 10480 * configure.in: 0.11 10481 10482 * NEWS: update 10483 10484 * bus/Makefile.am (initddir): apparently we are supposed to put 10485 init scripts in /etc/rc.d/init.d not /etc/init.d 10486 10487 * bus/Makefile.am: remove the "you must --enable-tests to make 10488 check" as it broke distcheck 10489 10490 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d 10491 10492 2003-05-13 James Willcox <jwillcox (a] gnome.org> 10493 10494 * configure.in: 10495 * bus/activation.c: (bus_activation_service_created), 10496 (bus_activation_activate_service): 10497 * bus/driver.c: (bus_driver_send_service_deleted), 10498 (bus_driver_send_service_created), (bus_driver_send_service_lost), 10499 (bus_driver_send_service_acquired), 10500 (bus_driver_send_welcome_message), 10501 (bus_driver_handle_list_services): 10502 * bus/session.conf.in: 10503 * dbus/dbus-bus.c: (dbus_bus_acquire_service), 10504 (dbus_bus_service_exists), (dbus_bus_activate_service): 10505 * dbus/dbus-bus.h: 10506 10507 Add some convenience API which lets you activate a service, and did a 10508 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args() 10509 and dbus_message_get_args() 10510 10511 2003-05-11 Havoc Pennington <hp (a] pobox.com> 10512 10513 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid 10514 calling _dbus_marshal_validate_arg() for every byte in a byte 10515 array, etc. 10516 10517 * dbus/dbus-message-handler.c: use atomic reference counting to 10518 reduce number of locks slightly; the global lock in here sucks 10519 10520 * dbus/dbus-connection.c 10521 (_dbus_connection_update_dispatch_status_and_unlock): variant of 10522 update_dispatch_status that can be called with lock held; then use 10523 in a couple places to reduce locking/unlocking 10524 (dbus_connection_send): hold the lock over the whole function 10525 instead of acquiring it twice. 10526 10527 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM 10528 10529 * bus/connection.c (bus_connections_setup_connection): fix access 10530 to already-freed memory. 10531 10532 * dbus/dbus-connection.c: keep a little cache of linked list 10533 nodes, to avoid using the global linked list alloc lock in the 10534 normal send-message case. Instead we just use the connection lock 10535 that we already have to take. 10536 10537 * dbus/dbus-list.c (_dbus_list_find_last): new function 10538 10539 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): 10540 change to use a struct for the atomic type; fix docs, 10541 they return value before increment, not after increment. 10542 10543 * dbus/dbus-string.c (_dbus_string_append_4_aligned) 10544 (_dbus_string_append_8_aligned): new functions to try to 10545 microoptimize this operation. 10546 (reallocate_for_length): break this out of set_length(), to 10547 improve profile info, and also so we can consider inlining the 10548 set_length() part. 10549 10550 * dbus/dbus-message.c (dbus_message_new_empty_header): init data 10551 strings with some preallocation, cuts down on our calls to realloc 10552 a fair bit. Though if we can get the "move entire string to empty 10553 string" optimization below to kick in here, it would be better. 10554 10555 * dbus/dbus-string.c (_dbus_string_move): just call 10556 _dbus_string_move_len 10557 (_dbus_string_move_len): add a special case for moving 10558 an entire string into an empty string; we can just 10559 swap the string data instead of doing any reallocs. 10560 (_dbus_string_init_preallocated): new function 10561 10562 2003-05-11 Havoc Pennington <hp (a] pobox.com> 10563 10564 Write a "test-profile" that does echo client-server with threads; 10565 profile reveals lock contention, memcpy/realloc of buffers, and 10566 UTF-8 validation as hot spots. 20% of lock contention eliminated 10567 with dbus_atomic_inc/dec implementation on x86. Much remaining 10568 contention is global mempool locks for GList and DBusList. 10569 10570 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add 10571 x86 implementation 10572 10573 * dbus/dbus-connection.c (struct DBusConnection): use 10574 dbus_atomic_t for the reference count 10575 10576 * dbus/dbus-message.c (struct DBusMessage): declare 10577 dbus_atomic_t values as volatile 10578 10579 * configure.in: code to detect ability to use atomic integer 10580 operations in assembly, from GLib patch 10581 10582 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every 10583 time, tired of it being wrong in threads and forked processes 10584 10585 * glib/test-profile.c: a little program to bounce messages back 10586 and forth between threads and eat CPU 10587 10588 * dbus/dbus-connection.c: add debug spew macros for debugging 10589 thread locks; include config.h at top; fix deadlock in 10590 dbus_connection_flush() 10591 10592 2003-05-08 Havoc Pennington <hp (a] pobox.com> 10593 10594 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov 10595 data from getting written, and there wasn't a good reason to 10596 use _exit really. 10597 10598 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count 10599 dbus_verbose lines in test coverage 10600 (main): add list of functions sorted by # of untested blocks 10601 to the coverage report 10602 10603 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS 10604 10605 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage 10606 10607 * dbus/dbus-message-handler.c (_dbus_message_handler_test): 10608 extend test coverage 10609 10610 * test/data/auth/cancel.auth-script: test canceling an 10611 authentication 10612 10613 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they 10614 aren't used. in CVS history if we end up needing them. 10615 10616 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10617 10618 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add 10619 unit test 10620 10621 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this 10622 function, which assumed length was in # of strings, not bytes 10623 10624 * dbus/dbus-message.c (_dbus_message_test): add tests for some 10625 missing coverage 10626 10627 * dbus/dbus-connection.c 10628 (_dbus_connection_queue_received_message): disable function for 10629 now, we are only using it in test mode 10630 10631 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): 10632 remove a mistaken FIXME 10633 10634 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10635 10636 * dbus/dbus-connection.c (dbus_connection_preallocate_send): 10637 unlock mutex on successful return, patch from Anders Gustafsson 10638 10639 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10640 10641 * dbus-glib-1.pc.in (Requires): fix dependencies, from 10642 Anders Gustafsson 10643 10644 2003-05-04 Havoc Pennington <hp (a] pobox.com> 10645 10646 * tools/dbus-launch.c: implement 10647 10648 * bus/main.c (main), bus/bus.c (bus_context_new): 10649 implement --print-pid and --fork 10650 10651 2003-05-03 Havoc Pennington <hp (a] redhat.com> 10652 10653 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in 10654 the address had no value, and add to test suite. Fix and 10655 regression test from Miloslav Trmac 10656 10657 2003-05-03 Havoc Pennington <hp (a] pobox.com> 10658 10659 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a 10660 watch is invalid when handled 10661 10662 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add 10663 dbus-launch utility to launch the bus from a shell script. Didn't 10664 actually implement dbus-launch yet, it's just a placeholder still. 10665 10666 2003-05-03 Havoc Pennington <hp (a] pobox.com> 10667 10668 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the 10669 daemon; also documents daemon config file, so replaces 10670 doc/config-file.txt. Corrected some stuff from config-file.txt in 10671 the process of moving it. 10672 10673 2003-05-03 Havoc Pennington <hp (a] pobox.com> 10674 10675 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: 10676 add some man pages 10677 10678 2003-05-03 Colin Walters <walters (a] verbum.org> 10679 10680 * dbus/dbus-sysdeps.c (fill_user_info): Test against 10681 DBUS_UID_UNSET to determine whether to do a uid lookup or not. 10682 10683 * Makefile.am: Update to use new .pc versioning scheme. 10684 10685 2003-05-02 Havoc Pennington <hp (a] redhat.com> 10686 10687 * bus/system.conf.in: allow send/receive to/from message bus 10688 service 10689 10690 2003-04-30 Havoc Pennington <hp (a] redhat.com> 10691 10692 * configure.in: print a note when building with unit tests and 10693 without assertions 10694 10695 2003-04-30 Havoc Pennington <hp (a] redhat.com> 10696 10697 * Makefile.am: add a check-local that complains if you didn't 10698 configure with --enable-tests 10699 10700 2003-04-29 Havoc Pennington <hp (a] redhat.com> 10701 10702 * glib/dbus-gmain.c: docs cleanups 10703 10704 * dbus/dbus-types.h: add docs on int64 types 10705 10706 * dbus/dbus-memory.c: fix docs to avoid putting private API in 10707 public API docs section 10708 10709 2003-04-29 Havoc Pennington <hp (a] redhat.com> 10710 10711 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from 10712 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the 10713 parallel install API version, not with the D-BUS package version. 10714 10715 * HACKING: move some of README over here 10716 10717 * README: updates, and document API/ABI policy 10718 10719 * configure.in: reindentation 10720 10721 2003-04-29 Havoc Pennington <hp (a] redhat.com> 10722 10723 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE 10724 to use this library" to be sure people have the right 10725 expectations. 10726 10727 2003-04-28 Havoc Pennington <hp (a] redhat.com> 10728 10729 * configure.in: add --enable-docs which by default is auto yes if 10730 doxygen and db2html found, no otherwise; but can be forced on/off 10731 10732 * doc/Makefile.am: conditionalize whether to build docs on 10733 --enable-docs 10734 10735 2003-04-28 Havoc Pennington <hp (a] redhat.com> 10736 10737 * configure.in: 0.10 10738 10739 * NEWS: update 10740 10741 * bus/system.conf.in: add <includedir>system.d</includedir> 10742 10743 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when 10744 username was provided but not uid 10745 10746 * bus/config-parser.c (struct BusConfigParser): keep track of 10747 whether the parser is toplevel or was included; change some 10748 of the error handling if it's included. 10749 10750 2003-04-27 Havoc Pennington <hp (a] pobox.com> 10751 10752 Unbreak my code... 10753 10754 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): 10755 report correct status if we finish processing authentication 10756 inside this function. 10757 10758 * bus/activation.c (try_send_activation_failure): use 10759 bus_transaction_send_error_reply 10760 10761 * bus/connection.c (bus_connection_get_groups): return an error 10762 explaining the problem 10763 10764 * bus/bus.c (bus_context_check_security_policy): implement 10765 restriction here that inactive connections can only send the 10766 hello message. Also, allow bus driver to send anything to 10767 any recipient. 10768 10769 * bus/connection.c (bus_connection_complete): create the 10770 BusClientPolicy here instead of on-demand. 10771 (bus_connection_get_policy): don't return an error 10772 10773 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL 10774 sender field in message being replied to 10775 10776 * bus/bus.c (bus_context_check_security_policy): fix silly typo 10777 causing it to return FALSE always 10778 10779 * bus/policy.c (bus_client_policy_check_can_send): fix bug where 10780 we checked sender rather than destination 10781 10782 2003-04-25 Havoc Pennington <hp (a] redhat.com> 10783 10784 test suite is slightly hosed at the moment, will fix soon 10785 10786 * bus/connection.c (bus_connections_expire_incomplete): fix to 10787 properly disable the timeout when required 10788 (bus_connection_set_name): check whether we can remove incomplete 10789 connections timeout after we complete each connection. 10790 10791 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit, 10792 probably still broken. 10793 10794 * bus/services.c (bus_registry_acquire_service): implement max 10795 number of services owned, and honor allow/deny rules on which 10796 services a connection can own. 10797 10798 * bus/connection.c (bus_connection_get_policy): report errors here 10799 10800 * bus/activation.c: implement limit on number of pending 10801 activations 10802 10803 2003-04-25 Havoc Pennington <hp (a] redhat.com> 10804 10805 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug 10806 where we used >= 0 instead of != DBUS_UID_UNSET. 10807 10808 2003-04-25 Havoc Pennington <hp (a] redhat.com> 10809 10810 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches 10811 were toggled without add/remove, fix from Anders Gustafsson 10812 10813 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10814 10815 * test/data/valid-config-files/basic.conf: add <limit> tags to 10816 this test 10817 10818 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement 10819 <limit> tag in configuration file. 10820 10821 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10822 10823 * bus/dispatch.c: somehow missed some name_is 10824 10825 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) 10826 (_dbus_timeout_set_interval): new 10827 10828 * bus/connection.c (bus_connections_setup_connection): record time 10829 when each connection is first set up, and expire them after the 10830 auth timeout passes. 10831 10832 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10833 10834 * dbus/dbus-message.c (dbus_message_name_is): rename 10835 (dbus_message_service_is): rename 10836 (dbus_message_sender_is): rename 10837 (dbus_message_get_service): rename 10838 10839 2003-04-24 Havoc Pennington <hp (a] redhat.com> 10840 10841 * configure.in: add --enable-checks 10842 10843 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments 10844 10845 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix 10846 to use thread locks. 10847 (_dbus_connection_handler_destroyed_locked): move some private 10848 functions into proper docs group 10849 10850 * dbus/dbus-internals.h: add _dbus_return_if_fail, 10851 _dbus_return_val_if_fail 10852 10853 Throughout: use dbus_return_if_fail 10854 10855 2003-04-23 James Willcox <jwillcox (a] gnome.org> 10856 10857 * glib/dbus-glib.h: 10858 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source), 10859 (dbus_connection_setup_with_g_main), 10860 (dbus_server_setup_with_g_main): 10861 * glib/test-dbus-glib.c: (main): 10862 * glib/test-thread-client.c: (main): 10863 * glib/test-thread-server.c: (new_connection_callback), (main): 10864 * tools/dbus-monitor.c: (main): 10865 10866 Added a GMainContext argument to dbus_connection_setup_with_g_main() 10867 and dbus_server_setup_with_g_main(). 10868 10869 2003-04-20 Havoc Pennington <hp (a] pobox.com> 10870 10871 * doc/dbus-specification.sgml: document the restrictions on 10872 message and service names 10873 10874 2003-04-22 Havoc Pennington <hp (a] redhat.com> 10875 10876 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer 10877 support, and do some code cleanups to share more code and 10878 speed up array marshal/demarshal. 10879 10880 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags 10881 10882 * configure.in: generate dbus-arch-deps.h 10883 10884 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add 10885 64-bit typecodes 10886 10887 2003-04-22 Havoc Pennington <hp (a] redhat.com> 10888 10889 * test/data/valid-messages/opposite-endian.message: fix test 10890 to use proper type for rply field 10891 10892 * test/data/invalid-messages: add tests for below validation 10893 10894 * dbus/dbus-message.c (decode_header_data): validate field types, 10895 and validate that named fields are valid names 10896 (decode_name_field): consider messages in the 10897 org.freedesktop.Local. namespace to be invalid. 10898 10899 * dbus/dbus-string.c (_dbus_string_validate_name): new 10900 10901 2003-04-19 Havoc Pennington <hp (a] pobox.com> 10902 10903 * bus/driver.c (bus_driver_handle_hello): check limits and 10904 return an error if they are exceeded. 10905 10906 * bus/connection.c: maintain separate lists of active and inactive 10907 connections, and a count of each. Maintain count of completed 10908 connections per user. Implement code to check connection limits. 10909 10910 * dbus/dbus-list.c (_dbus_list_unlink): export 10911 10912 * bus/bus.c (bus_context_check_security_policy): enforce a maximum 10913 number of bytes in the message queue for a connection 10914 10915 2003-04-18 Havoc Pennington <hp (a] pobox.com> 10916 10917 * dbus/dbus-auth.c (record_mechanisms): memleak fixes 10918 10919 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some 10920 memleaks 10921 10922 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and 10923 on realloc be sure to update the pointer in the keyring 10924 10925 * dbus/dbus-string.c (_dbus_string_zero): compensate for align 10926 offset to avoid writing to unallocated memory 10927 10928 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to 10929 try the next mechanism, so we properly handle OOM 10930 10931 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free 10932 on OOM. 10933 (_dbus_keyring_new): fix OOM bug 10934 (_dbus_keyring_new_homedir): always set error; impose a maximum 10935 number of keys we'll load from the file, mostly to speed up the 10936 test suite and make its OOM checks more useful, but also for 10937 general sanity. 10938 10939 * dbus/dbus-auth.c (process_error_server): reject authentication 10940 if we get an error from the client 10941 (process_cancel): on cancel, send REJECTED, per the spec 10942 (process_error_client): send CANCEL if we get an error from the 10943 server. 10944 10945 2003-04-18 Havoc Pennington <hp (a] pobox.com> 10946 10947 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose 10948 debug spew 10949 10950 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM 10951 handling problem 10952 10953 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine 10954 about DBUS_TEST_HOMEDIR once 10955 10956 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in 10957 the environment 10958 10959 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1 10960 config file so we test the right thing 10961 10962 Throughout: assorted docs improvements 10963 10964 2003-04-18 Havoc Pennington <hp (a] pobox.com> 10965 10966 * glib/dbus-gmain.c: adapt to watch changes 10967 10968 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes 10969 10970 * dbus/dbus-server.h: remove dbus_server_handle_watch 10971 10972 * dbus/dbus-connection.h: remove dbus_connection_handle_watch 10973 10974 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work 10975 like DBusTimeout, so we don't need dbus_connection_handle_watch 10976 etc. 10977 10978 2003-04-17 Havoc Pennington <hp (a] redhat.com> 10979 10980 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd 10981 database usage so it all goes via the DBusUserDatabase cache. 10982 10983 2003-04-17 Havoc Pennington <hp (a] redhat.com> 10984 10985 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if 10986 there was an OOM watch we skipped, we always return TRUE so we 10987 iterate again to have a look at it again. Fixes test suite hang. 10988 Code rearrangement also lets us lose some memset and only iterate 10989 over callbacks once. 10990 10991 * bus/driver.c (bus_driver_handle_message): sense of test for 10992 reply was backward 10993 10994 2003-04-16 Havoc Pennington <hp (a] pobox.com> 10995 10996 * doc/dbus-specification.sgml: make spec say serials are unsigned 10997 10998 * dbus/dbus-message.h: change message serials to unsigned 10999 11000 * dbus/dbus-connection.c: adapt to message serials being unsigned 11001 11002 2003-04-15 Havoc Pennington <hp (a] pobox.com> 11003 11004 * bus/bus.c: create and keep around a shared DBusUserDatabase 11005 object. 11006 11007 * bus/connection.c (bus_connection_get_groups): don't cache 11008 groups for user in the connection object, since user database 11009 object now does that. 11010 11011 2003-04-16 Havoc Pennington <hp (a] redhat.com> 11012 11013 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a 11014 list of size counters 11015 (_dbus_message_loader_putback_message_link): put back a popped link 11016 11017 * dbus/dbus-connection.c 11018 (dbus_connection_set_max_live_messages_size): rename 11019 max_received_size 11020 (dbus_connection_get_outgoing_size): get size of outgoing 11021 queue 11022 (_dbus_connection_set_connection_counter): remove this cruft 11023 11024 2003-04-14 Havoc Pennington <hp (a] redhat.com> 11025 11026 * dbus/dbus-userdb.c: user database abstraction, mostly to get 11027 caching, but at some point we might want to be able to use a 11028 different database. 11029 11030 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses 11031 SHA1 conf file to test the sha1 auth mechanism, since the regular 11032 test always uses EXTERNAL when available. 11033 11034 * configure.in, 11035 test/data/valid-config-files/debug-allow-all-sha1.conf.in: 11036 add conf file that requires use of sha1 auth 11037 11038 2003-04-13 Havoc Pennington <hp (a] pobox.com> 11039 11040 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs 11041 from Philip Blundell to send messages and monitor them. 11042 11043 2003-04-13 Havoc Pennington <hp (a] pobox.com> 11044 11045 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting 11046 callbacks 11047 11048 * test/data/valid-config-files/debug-allow-all.conf.in: allow all 11049 users 11050 11051 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): 11052 fix to only recover unused bytes if we're already authenticated 11053 (_dbus_transport_get_is_authenticated): fix to still mark us 11054 authenticated if there are unused bytes. 11055 11056 * bus/dispatch.c: implement security policy checking 11057 11058 * bus/connection.c (bus_transaction_send_from_driver): new 11059 11060 * bus/bus.c (bus_context_check_security_policy): new 11061 11062 * bus/dispatch.c (send_service_nonexistent_error): delete this, 11063 now we just set the DBusError and it gets converted to an error 11064 reply. 11065 11066 * bus/connection.c (allow_user_function): enable code using actual 11067 data from the config file 11068 11069 * bus/policy.c (list_allows_user): handle wildcard rules for 11070 user/group connection perms 11071 11072 2003-04-13 Havoc Pennington <hp (a] pobox.com> 11073 11074 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules 11075 11076 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function 11077 11078 * bus/policy.c (bus_policy_append_mandatory_rule) 11079 (bus_policy_append_default_rule, bus_policy_append_user_rule) 11080 (bus_policy_append_group_rule): new functions 11081 11082 2003-04-12 Havoc Pennington <hp (a] pobox.com> 11083 11084 * bus/config-parser.c (bus_config_parser_new): fix a memleak 11085 11086 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for 11087 the pid/gid/uid, just for paranoia. 11088 11089 * test/break-loader.c (randomly_do_n_things): find a byte 11090 containing a type code, and randomly change it to a different 11091 type code. 11092 11093 2003-04-12 Havoc Pennington <hp (a] pobox.com> 11094 11095 * bus/policy.h: change BusPolicy to be the thing from the config 11096 file, and rename old BusPolicy to BusClientPolicy 11097 11098 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to 11099 match change in how policy works 11100 11101 * dbus/dbus-internals.h: mark assert_not_reached as 11102 __attribute((noreturn))__ 11103 11104 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11105 11106 * doc/dbus-specification.sgml: fix a spot with the wrong name for 11107 the broadcast service. Use boolean return for ServiceExists. 11108 11109 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11110 11111 * configure.in: add another directory to look for qt in. 11112 11113 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11114 11115 * AUTHORS: add Colin Walters 11116 11117 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11118 11119 * NEWS: update 11120 11121 * configure.in: 0.9 11122 11123 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11124 11125 * bus/messagebus.in: remove pid file when stopping the 11126 message bus, since the bus won't have privileges to remove it 11127 itself. 11128 11129 2003-04-11 Havoc Pennington <hp (a] redhat.com> 11130 11131 * bus/bus.c (bus_context_new): move credentials change after 11132 creating pidfile 11133 11134 2003-04-11 Havoc Pennington <hp (a] pobox.com> 11135 11136 * test/decode-gcov.c: add "below average functions" to the 11137 coverage report, and change how some of the code works. 11138 11139 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's 11140 not in the coverage stats. 11141 11142 * test/test-service.c (main): use _dbus_verbose not fprintf in a 11143 couple places so running the test suite doesn't result in megaspam. 11144 11145 2003-04-11 Havoc Pennington <hp (a] pobox.com> 11146 11147 * bus/dispatch.c (check_existent_service_activation): accept a no 11148 memory error in a place we didn't before 11149 11150 * bus/test.c (bus_test_run_everything): remove hacky "do it twice 11151 in case the first one failed," since the test suite is less 11152 broken now. 11153 11154 2003-04-10 Havoc Pennington <hp (a] pobox.com> 11155 11156 * bus/dispatch.c (check_segfault_service_activation): add test 11157 for launching an executable that just crashes. 11158 11159 * test/test-segfault.c (main): try setting coredumpsize to 0 so we 11160 don't leave a million cores. We'll see how portable this is. 11161 11162 2003-04-10 Havoc Pennington <hp (a] pobox.com> 11163 11164 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all 11165 the possible parent failures before we fork, so that we don't 11166 fail to create a babysitter after creating the child. 11167 11168 * bus/activation.c (bus_activation_activate_service): kill child 11169 if we don't successfully complete the activation. 11170 11171 2003-04-10 Havoc Pennington <hp (a] redhat.com> 11172 11173 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on 11174 the connection if it's disconnected 11175 11176 * bus/activation.c (bus_activation_service_created): use new 11177 transaction features to roll back removal of pending activation if 11178 we don't successfully create the service after all. Don't remove 11179 pending activation if the function fails. 11180 11181 * dbus/dbus-list.c (_dbus_list_insert_before_link) 11182 (_dbus_list_insert_after_link): new code to facilitate 11183 services.c fixes 11184 11185 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): 11186 new functionality, so we can preallocate the ability to insert 11187 into a hash table. 11188 11189 * bus/connection.c (bus_transaction_add_cancel_hook): new function 11190 allowing us to put custom hooks in a transaction to be used for 11191 cancelling said transaction 11192 11193 * doc/dbus-specification.sgml: add some discussion of secondary 11194 service owners, and disallow zero-length service names 11195 11196 * bus/services.c (bus_registry_acquire_service): new function, 11197 splits out part of bus_driver_handle_acquire_service() and fixes 11198 a bug where we didn't remove the service doing the acquiring 11199 from the secondary queue if we failed to remove the current owner 11200 from the front of the queue. 11201 11202 2003-04-10 Alexander Larsson <alexl (a] redhat.com> 11203 11204 * doc/dbus-specification.sgml: 11205 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/ 11206 11207 2003-04-10 Alexander Larsson <alexl (a] redhat.com> 11208 11209 * bus/.cvsignore: 11210 * glib/.cvsignore: 11211 * test/.cvsignore: 11212 Added files to cvsignore 11213 11214 * dbus/dbus-message.h: 11215 * dbus/dbus-message.c: (dbus_message_iter_get_named): 11216 Make get_named() take two out argument and return a boolean. 11217 (dbus_message_iter_get_args_valist): 11218 Update usage of get_named(). 11219 (dbus_message_iter_append_byte): 11220 Fix typo 11221 (dbus_message_iter_append_named) 11222 Fix typo 11223 (message_iter_test), (check_message_handling_type), (_dbus_message_test): 11224 More tests. 11225 11226 2003-04-10 Alexander Larsson <alexl (a] redhat.com> 11227 11228 * dbus/dbus-marshal.[ch]: 11229 Add array_type_pos argument to _dbus_marshal_validate_arg. 11230 Let you pass a NULL end_pos to _dbus_marshal_validate_type. 11231 11232 * dbus/dbus-message.[ch]: 11233 Multi-dimensional arrays have full type specification in the 11234 outermost array. Iter code re-arranged to handle this. 11235 Added some more iter tests. 11236 11237 * doc/dbus-specification.sgml: 11238 Add me to authors. 11239 Remove old FIXME. 11240 Update new array encoding description. 11241 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description. 11242 11243 * test/data/invalid-messages/array-with-mixed-types.message: 11244 * test/data/valid-messages/array-of-array-of-uint32.message: 11245 Change to the new array format. 11246 11247 * test/data/invalid-messages/too-short-dict.message: 11248 Fix bug in test. 11249 11250 * test/data/valid-messages/recursive-types.message: 11251 Fix up and extend test. 11252 11253 2003-04-10 Havoc Pennington <hp (a] pobox.com> 11254 11255 * bus/dispatch.c: lots of fixes 11256 11257 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export 11258 (_dbus_loop_iterate): remove old "quit if no callbacks" code, 11259 that was crack, broke the test service. 11260 11261 * dbus/dbus-transport.c (_dbus_transport_open): fix error 11262 handling to avoid piling up errors if we get a failure on the 11263 first address. 11264 11265 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include 11266 pid in assertion failures. 11267 11268 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up 11269 to some fixed size of file descriptor array. Don't return TRUE 11270 anytime a timeout exists, that led to lots of busy loop silliness 11271 in the tests. 11272 11273 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11274 11275 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought 11276 I'd checked this in earlier but hadn't. 11277 11278 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11279 11280 * bus/dispatch.c (bus_dispatch_test): get a bit further through 11281 the activation test (man this is getting old!) 11282 11283 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11284 11285 * test/test-utils.c: use dispatch status function to fix this up 11286 11287 * bus/connection.c (connection_watch_callback): don't dispatch 11288 from here 11289 (connection_timeout_callback): don't dispatch from here 11290 (bus_connections_setup_connection): set the dispatch status function 11291 (bus_connection_disconnected): unset it 11292 11293 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function 11294 used to add a connection to be dispatched 11295 (_dbus_loop_iterate): do the dispatching at the end of each 11296 iteration 11297 11298 * dbus/dbus-connection.c 11299 (dbus_connection_set_dispatch_status_function): new function 11300 allowing us to fix up main loop usage 11301 (_dbus_connection_last_unref): free all the various function 11302 user data 11303 (dbus_connection_dispatch): call the DispatchStatusFunction 11304 whenever this function returns 11305 (dbus_connection_handle_watch): call DispatchStatusFunction 11306 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction 11307 (reply_handler_timeout): call DispatchStatusFunction 11308 (dbus_connection_flush): call DispatchStatusFunction 11309 11310 2003-04-09 Havoc Pennington <hp (a] redhat.com> 11311 11312 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and 11313 a memory leak 11314 11315 * bus/dispatch.c (check_service_activated): fix bug in test 11316 11317 * dbus/dbus-mainloop.c (check_timeout): fix this up 11318 11319 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in 11320 verbose output so we can sort out output from different processes, 11321 e.g. in the activation case. 11322 11323 2003-04-08 Colin Walters <walters (a] gnu.org> 11324 11325 * bus/bus.c (struct BusContext) [pidfile]: New member, to store 11326 the pid file. 11327 (bus_context_new): Set it. 11328 (bus_context_unref): Use it to delete the pid file. 11329 11330 2003-04-08 Havoc Pennington <hp (a] redhat.com> 11331 11332 * test/data/invalid-messages/array-with-mixed-types.message: 11333 regression test that fails for the moment 11334 11335 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder 11336 tests for convenience 11337 11338 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow 11339 array of nil, it broke things. 11340 11341 * test/data/invalid-messages/array-of-nil.message: regression test 11342 11343 * test/data/valid-messages/array-of-array-of-uint32.message: 11344 happened to write this so added it to suite 11345 11346 2003-04-08 Havoc Pennington <hp (a] redhat.com> 11347 11348 * bus/driver.c (bus_driver_handle_acquire_service): init 11349 retval/reply before checking name 11350 11351 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a 11352 recursion depth argument 11353 11354 * dbus/dbus-message.h (struct DBusMessageIter): put some padding 11355 in the public struct for future extension 11356 11357 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix 11358 typo 11359 11360 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose 11361 message 11362 11363 * doc/dbus-specification.sgml: fix typo 11364 11365 2003-04-08 Alexander Larsson <alexl (a] redhat.com> 11366 11367 Implemented recursive types, named types and new-style iters 11368 11369 * bus/driver.c: 11370 * glib/test-thread-client.c: (thread_func): 11371 * glib/test-thread-server.c: (handle_test_message): 11372 * test/test-service.c: (handle_echo): 11373 Update to new api 11374 11375 * dbus/Makefile.am: 11376 * dbus/dbus-dict.c: 11377 * dbus/dbus-dict.h: 11378 * dbus/dbus.h 11379 Remove DBusDict 11380 11381 * dbus/dbus-internals.c: (_dbus_type_to_string): 11382 Update for new types. 11383 11384 * dbus/dbus-marshal.[ch]: 11385 Implement recursive types and the new marshalling format. 11386 Remove hardcoded dict marshalling. 11387 Marshal named types. 11388 11389 * dbus/dbus-message-builder.c: 11390 Add BYTE_ARRAY. 11391 Remove references to old types 11392 11393 * dbus/dbus-message.[ch]: 11394 New non-refcounted iter API that supports recursive iters. 11395 Use iters for appending, including support for recursive 11396 iters. 11397 Add byte and named type support. 11398 Update everything to new marshalling formats. 11399 Add tests for new API. 11400 11401 * dbus/dbus-protocol.h: 11402 Remove old array types. 11403 Add types: BYTE, ARRAY, DICT, NAMED 11404 11405 * dbus/dbus-string.c: 11406 * dbus/dbus-sysdeps.c: 11407 Make parse_double locale safe. 11408 11409 * dbus/dbus-test-main.c: 11410 Call setlocale. 11411 11412 * dbus/dbus-test.c: 11413 Kill dict test 11414 11415 * doc/dbus-specification.sgml: 11416 Update spec 11417 11418 * test/data/incomplete-messages/missing-body.message: 11419 * test/data/invalid-messages/bad-boolean.message: 11420 * test/data/invalid-messages/bad-boolean-array.message: 11421 * test/data/invalid-messages/boolean-array-length-too-long.message-raw: 11422 * test/data/invalid-messages/boolean-has-no-value.message-raw: 11423 * test/data/invalid-messages/too-short-dict.message: 11424 * test/data/valid-messages/dict-simple.message: 11425 * test/data/valid-messages/dict.message: 11426 * test/data/valid-messages/emptiness.message: 11427 * test/data/valid-messages/lots-of-arguments.message: 11428 * test/data/valid-messages/no-padding.message: 11429 * test/data/valid-messages/recursive-types.message: 11430 Add missing NAME fields 11431 Fix up dicts & arrays 11432 11433 * test/data/invalid-messages/dict-with-nil-value.message: 11434 Removed, this is not invalid anymore. 11435 11436 * test/data/valid-messages/recursive-types.message: 11437 Add new test for deeply recursive types. 11438 11439 2003-04-07 Havoc Pennington <hp (a] pobox.com> 11440 11441 * bus/driver.c (bus_driver_handle_acquire_service): return an 11442 error if you try to acquire a service that starts with ':' 11443 11444 2003-04-07 Havoc Pennington <hp (a] redhat.com> 11445 11446 * doc/dbus-specification.sgml: require that base service names 11447 start with ':' and that the base service is created/deleted 11448 as first and last things a connection does on the bus 11449 11450 * bus/dispatch.c (check_existent_service_activation): lots more 11451 work on the activation test; it doesn't fully pass yet... 11452 11453 * test/test-service.c (main): fix so we don't memleak the 11454 connection to the message bus 11455 (filter_func): accept a message asking us to exit 11456 11457 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11458 11459 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, 11460 from Colin Walters 11461 11462 * configure.in: fixes to Qt detection from Colin Walters 11463 11464 * doc/Makefile.am: Only remove generated docbook dirs if they 11465 exist, from Colin Walters 11466 11467 * dbus/dbus-bus.c: change how we set well-known connections to 11468 NULL, so that it works if a single connection is stored in 11469 two well-known array slots. 11470 11471 * test/Makefile.am: remove a lot of stuff that isn't immediately 11472 useful, it's in CVS history if we want it. 11473 11474 * test/test-service.c: use dbus-mainloop instead of that 11475 watch.[hc] crack 11476 11477 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11478 11479 * dbus/Makefile.am: split lists of sources into stuff that goes in 11480 the library, util functions that go in the lib and are also used 11481 elsewhere, and util functions that are used in tests/daemon but 11482 don't go in the lib. 11483 11484 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] 11485 here so it can be used in test binaries also 11486 11487 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11488 11489 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile 11490 here in the parent process, so we can return an error if it 11491 fails. Also, move some of the code into the child so the parent 11492 is less hosed if we fail midway through. 11493 11494 * bus/bus.c (bus_context_new): move pidfile detection further up 11495 in the function, before we start overwriting sockets and such. 11496 11497 * bus/messagebus.in: adjust this a bit, not sure if it will work. 11498 11499 * configure.in: add --with-system-pid-file and --with-system-socket 11500 11501 2003-04-06 Colin Walters <walters (a] verbum.org> 11502 11503 * configure.in (DBUS_SYSTEM_PID_FILE): New variable. 11504 11505 * bus/system.conf.in: Declare a pidfile. 11506 11507 * bus/bus.c (bus_context_new): Test for an existing pid file, and 11508 create one (if appropriate). 11509 11510 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New. 11511 (struct BusConfigParser) [pidfile]: New. 11512 (element_type_to_name, merge_included, start_busconfig_child) 11513 (bus_config_parser_end_element, bus_config_parser_content): Handle it. 11514 (bus_config_parser_unref): Free it. 11515 (bus_config_parser_get_pidfile): New function. 11516 11517 * bus/config-parser.h (_dbus_write_pid_file): Prototype. 11518 11519 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error. 11520 11521 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function. 11522 11523 * dbus/dbus-sysdeps.h: Prototype it. 11524 11525 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11526 11527 * bus/bus.c (bus_context_new): print the address in here, rather 11528 than in main(), because we need to do it before forking the daemon 11529 11530 * bus/dispatch.c (send_service_nonexistent_error): set the sender 11531 on the service nonexistent error 11532 11533 * bus/driver.c (bus_driver_handle_acquire_service): set the 11534 sender on the AcquireService reply 11535 11536 * test/data/valid-config-files/debug-allow-all.conf.in: Make test 11537 server also listen on a UNIX socket so services can connect to it. 11538 11539 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11540 11541 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done 11542 so it detects deadlocks and also we actually init threads when 11543 debugging. 11544 11545 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11546 11547 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): 11548 save the domain socket name, and unlink it when we disconnect the 11549 server. Means that at least when we exit normally, we won't leave 11550 a bunch of junk in /tmp 11551 11552 * dbus/dbus-transport-unix.c 11553 (_dbus_transport_new_for_domain_socket): code cleanup (nicer 11554 memory management). (I was making a real change here but then 11555 didn't) 11556 11557 2003-04-06 Havoc Pennington <hp (a] pobox.com> 11558 11559 * bus/bus.c (bus_context_new): fix wrong handling of 11560 server_data_slot_unref() in the error case. 11561 11562 * dbus/dbus-internals.h (_dbus_assert): change so it passes 11563 "(condition) != 0" to _dbus_real_assert so that 11564 "_dbus_assert (pointer)" doesn't cause a warning 11565 11566 * bus/main.c (main): accept --print-address option to print out 11567 the message bus address 11568 11569 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this 11570 11571 * dbus/dbus-transport.c (_dbus_transport_open): special error for 11572 "tmpdir" option to unix: address on client side 11573 11574 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option 11575 to unix: address 11576 11577 * configure.in (TEST_SOCKET_DIR): locate a temporary directory 11578 we can use to create sockets in the test suite. 11579 11580 * bus/main.c (signal_handler): on SIGTERM, exit the daemon 11581 cleanly. To be used for testing. 11582 11583 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler() 11584 11585 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new 11586 11587 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 11588 handle trying to call this when there's no servers active 11589 11590 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11591 11592 * NEWS: update 11593 11594 * configure.in: 0.8 11595 11596 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11597 11598 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't 11599 crash on startup. Need to get "try starting the daemon" 11600 in the test suite I guess. ;-) 11601 11602 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that 11603 tracked the number of open connections; it's better done in 11604 application-specific code as you want it to span all servers etc. 11605 11606 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11607 11608 * bus/Makefile.am (install-data-hook): add missing DESTDIR, 11609 patch from Colin Walters 11610 11611 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11612 11613 * doc/config-file.txt (Elements): fix docs of <auth> to reflect 11614 reality; in fact multiple mechanisms are allowed. 11615 11616 * dbus/dbus-internals.c (_dbus_real_assert) 11617 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and 11618 _dbus_assert_not_reached() into functions, so that they don't show 11619 up in basic block counts for test coverage, and don't use up as 11620 much disk space. Does mean slower execution speed though, so 11621 assumes --disable-asserts is the normal production case. 11622 11623 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11624 11625 * test/Makefile.am (dist-hook): also dist *.in files 11626 11627 * NEWS: update 11628 11629 * configure.in: 0.7 11630 11631 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11632 11633 * dbus/dbus-string.c: docs warning 11634 11635 * dbus/dbus-spawn.c: missing docs 11636 11637 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs 11638 11639 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11640 11641 * bus/loop.c (bus_loop_iterate): fix the timeout code, using 11642 magic from GLib 11643 11644 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid 11645 to -1 once we've reaped the babysitter 11646 (_dbus_babysitter_handle_watch): do as much work as we can, not 11647 just one go of it 11648 11649 * bus/activation.c: add code using DBusBabysitter so that we 11650 handle it when a service fails to start up properly. 11651 (bus_activation_service_created): don't remove the activation 11652 entries as we go, just let them get removed when we free the pending 11653 activation. Unref reply messages after sending them. 11654 11655 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11656 11657 * test/decode-gcov.c (main): print per-directory stats in the report 11658 11659 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats 11660 11661 2003-04-05 Havoc Pennington <hp (a] pobox.com> 11662 11663 * Makefile.am (coverage-report.txt): add target "coverage-report.txt" 11664 11665 * test/decode-gcov.c: hack up a little program to suck data 11666 out of gcov files. Yes this is sort of silly. 11667 11668 * configure.in: define something in config.h and do an 11669 AM_CONDITIONAL when gcov is enabled 11670 11671 2003-04-04 Havoc Pennington <hp (a] redhat.com> 11672 11673 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to 11674 return a "babysitter" object that is used to monitor the status of 11675 the spawned process and reap it when required. 11676 11677 * test/test-segfault.c, test/test-exit.c, 11678 test/test-sleep-forever.c: binaries that do various lame things, 11679 used in the test suite. 11680 11681 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string() 11682 11683 2003-04-03 Havoc Pennington <hp (a] pobox.com> 11684 11685 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file 11686 in preparation for modifying it, dbus-sysdeps is getting 11687 a bit unmanageable. 11688 11689 2003-04-03 Havoc Pennington <hp (a] redhat.com> 11690 11691 * bus/loop.h, bus/loop.c: make the mainloop an object so we can 11692 have multiple ones 11693 11694 * bus/*.[hc]: adapt to mainloop change 11695 11696 2003-04-03 Havoc Pennington <hp (a] redhat.com> 11697 11698 * bus/activation.c (load_directory): fix up memleaks 11699 (bus_activation_entry_free): free the entry 11700 11701 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if 11702 we get one from the message bus; fix memleaks. 11703 11704 * dbus/dbus-message.c (dbus_set_error_from_message): new function 11705 11706 2003-04-03 Havoc Pennington <hp (a] pobox.com> 11707 11708 * bus/config-parser.c (bus_config_parser_unref): free 11709 list of mechanisms, bug discovered by test suite enhancements 11710 (putting system.conf and session.conf into suite) 11711 11712 * test/Makefile.am, test/test-service.c: add placeholder for a 11713 test service that we'll activate as part of test suite. Doesn't 11714 do anything yet. 11715 11716 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by 11717 setting NULL value, and use system malloc not dbus_malloc() 11718 when we have unavoidable memleakage. 11719 11720 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0 11721 didn't work, and support DBUS_BUS_ACTIVATION. 11722 11723 * bus/activation.c (child_setup): pass our well-known bus type to 11724 the child 11725 11726 * bus/config-parser.c: support <type> to specify well-known type 11727 11728 * doc/dbus-specification.sgml: document the env variables to 11729 locate well-known buses and find service activator 11730 11731 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11732 11733 * test/Makefile.am (all-local): add a rule to copy tests to 11734 builddir, so we can have generated tests. Use this to remove the 11735 silly hack for testing system.conf and session.conf. Will use this 11736 shortly to generate .service files pointing to test binaries. 11737 11738 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11739 11740 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of 11741 current alloc and needed new length, not max of the doubled 11742 allocation and needed new length. Also, when building tests, 11743 don't do the double-allocation stuff, just realloc every time. 11744 11745 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11746 11747 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames 11748 in error messages 11749 (_dbus_string_get_dirname): new 11750 (_dbus_sysdeps_test): new 11751 (_dbus_directory_open): include dirnames in error messages 11752 11753 * bus/config-parser.c: interpret <include> and <includedir> and 11754 <servicedir> relative to config file location if the given 11755 filename is not absolute. 11756 11757 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new 11758 11759 2003-04-02 Havoc Pennington <hp (a] redhat.com> 11760 11761 * bus/connection.c (bus_transaction_send_error_reply): set sender 11762 service for the error, and unref the reply on success 11763 11764 * bus/activation.c: convert to use BusTransaction so OOM can be 11765 handled correctly 11766 (bus_activation_service_created): set sender of the message 11767 11768 2003-04-01 Havoc Pennington <hp (a] redhat.com> 11769 11770 * bus/config-parser.c, bus/bus.c: implement <servicedir> and 11771 <includedir> (at least mostly) 11772 11773 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID 11774 first, then the user ID 11775 11776 2003-04-01 Havoc Pennington <hp (a] pobox.com> 11777 11778 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new 11779 function 11780 11781 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new 11782 11783 * dbus/dbus-internals.c (_dbus_dup_string_array): new function 11784 11785 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the 11786 socket 0777, and unlink any existing socket. 11787 11788 * bus/bus.c (bus_context_new): change our UID/GID and fork if 11789 the configuration file so specifies; set up auth mechanism 11790 restrictions 11791 11792 * bus/config-parser.c (bus_config_parser_content): add support 11793 for <fork> option and fill in code for <auth> 11794 11795 * bus/system.conf.in: add <fork/> to default configuration, 11796 and limit auth mechanisms to EXTERNAL 11797 11798 * doc/config-file.txt (Elements): add <fork> 11799 11800 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function 11801 (_dbus_change_identity): new function 11802 11803 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11804 11805 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) 11806 (_dbus_listen_unix_socket): fix off-by-one error in null 11807 termination spotted by Nalin 11808 11809 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11810 11811 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting 11812 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without 11813 having a real home directory available. 11814 11815 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11816 11817 * bus/Makefile.am (install-data-hook): create /var/run/dbus 11818 11819 * bus/messagebus.in: add init script for Red Hat /etc/init.d 11820 11821 * configure.in: add support for specifying a style of init script 11822 to install 11823 11824 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11825 11826 Fix some annoying DBusString API and fix all affected code. 11827 11828 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying 11829 max_length argument 11830 (_dbus_string_get_data): change to return string instead of using 11831 an out param 11832 (_dbus_string_get_const_data): ditto 11833 (_dbus_string_get_data_len): ditto 11834 (_dbus_string_get_const_data_len): ditto 11835 11836 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11837 11838 * bus/main.c (main): fix up the command line arguments to be nicer 11839 11840 2003-03-31 Havoc Pennington <hp (a] redhat.com> 11841 11842 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to 11843 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same 11844 final location that lands in the config file 11845 11846 * bus/config-loader-expat.c (bus_config_load): fix type of 11847 XML_Parser variable 11848 11849 * doc/TODO: remove TODO item for dbus_bus_get() 11850 11851 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock 11852 11853 2003-03-31 Havoc Pennington <hp (a] pobox.com> 11854 11855 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket) 11856 (_dbus_transport_new_for_tcp_socket): these didn't need the "server" 11857 argument since they are always client side 11858 11859 * dbus/dbus-server.c (dbus_server_get_address): new function 11860 11861 * bus/main.c (main): take the configuration file as an argument. 11862 11863 * test/data/valid-config-files/debug-allow-all.conf: new file to 11864 use with dispatch.c tests for example 11865 11866 * bus/test-main.c (main): require test data dir 11867 11868 * bus/bus.c (bus_context_new): change this to take a 11869 configuration file name as argument 11870 11871 * doc/config-file.txt (Elements): add <servicedir> 11872 11873 * bus/system.conf, bus/session.conf: new files 11874 11875 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on 11876 well-known socket if none set 11877 11878 * configure.in: create system.conf and session.conf 11879 11880 2003-03-30 Havoc Pennington <hp (a] pobox.com> 11881 11882 * bus/config-parser.c: hacking 11883 11884 * dbus/dbus-memory.c: don't use DBusList for the list of stuff 11885 to shut down, since it could cause weirdness with the DBusList 11886 lock 11887 11888 * dbus/dbus-list.c (_dbus_list_test): add tests for the 11889 link-oriented stack routines 11890 (alloc_link): free the mempool if the first alloc from it fails 11891 11892 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue 11893 11894 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this 11895 from GLib 11896 (_dbus_string_skip_white): new 11897 11898 * doc/config-file.txt (Elements): add <includedir> 11899 11900 2003-03-28 Havoc Pennington <hp (a] pobox.com> 11901 11902 * dbus/dbus-string.c (_dbus_string_copy_data_len) 11903 (_dbus_string_copy_data): new functions 11904 11905 2003-03-28 Anders Carlsson <andersca (a] codefactory.se> 11906 11907 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get): 11908 * dbus/dbus-bus.h: 11909 Add dbus_bus_get. 11910 11911 * dbus/dbus-memory.c: 11912 Fix a doc comment. 11913 11914 2003-03-28 Havoc Pennington <hp (a] pobox.com> 11915 11916 * bus/test.c (bus_test_flush_bus): remove the sleep from here, 11917 I think it may have just been superstition. Not sure. 11918 11919 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM 11920 failures that were not being handled. 11921 11922 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling 11923 11924 * dbus/dbus-memory.c: add ability to set number of mallocs in a 11925 row that will fail on out-of-memory. 11926 11927 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience 11928 function for testing out-of-memory handling. 11929 11930 * bus/config-loader-expat.c (memsuite): don't wrap the dbus 11931 allocation functions, they do map exactly to the expat ones. 11932 11933 2003-03-27 Havoc Pennington <hp (a] redhat.com> 11934 11935 * bus/config-loader-libxml.c (bus_config_load): add another error 11936 check 11937 11938 2003-03-26 Anders Carlsson <andersca (a] codefactory.se> 11939 11940 * doc/TODO: 11941 Add note about automatic service activation. 11942 11943 * doc/dbus-specification.sgml: 11944 Rename the specification and clarify a few things. 11945 11946 2003-03-26 Anders Carlsson <andersca (a] codefactory.se> 11947 11948 * Doxyfile.in: 11949 * dbus/dbus-address.c: 11950 * dbus/dbus-dict.c: 11951 * dbus/dbus-marshal.c: 11952 * dbus/dbus-server-debug-pipe.c: 11953 * dbus/dbus-transport-unix.c: 11954 Fix documentation warnings. 11955 11956 2003-03-26 Havoc Pennington <hp (a] pobox.com> 11957 11958 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks 11959 after every test so it's quick and easy to see which leaked, and 11960 so we test multiple dbus_shutdown() calls 11961 11962 * configure.in: change configure.in XML stuff to also support 11963 expat 11964 11965 * config-loader-libxml.c: some hacking 11966 11967 * config-loader-expat.c: some hacking 11968 11969 * config-parser.c: some hacking, plus tests 11970 11971 2003-03-25 Havoc Pennington <hp (a] redhat.com> 11972 11973 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR 11974 11975 * configure.in: add --with-xml option to specify XML library, 11976 right now only libxml is supported. 11977 11978 * bus/config-loader-libxml.c, config-parser.c: sync some minor 11979 nonworking code between home and work, still just stubs 11980 11981 2003-03-24 Havoc Pennington <hp (a] redhat.com> 11982 11983 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this 11984 file 11985 11986 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow 11987 NULL argument for "message" if the error is a well-known one, 11988 fill in a generic message in this case. 11989 11990 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in 11991 favor of DBusError 11992 11993 * bus/test.c (bus_test_flush_bus): add 11994 11995 * bus/policy.c (bus_policy_test): test code stub 11996 11997 2003-03-24 Havoc Pennington <hp (a] pobox.com> 11998 11999 * bus/connection.c (bus_connections_setup_connection): set up 12000 the "can this user connect" function, but it always returns 12001 TRUE until we have a config file parser so we can have a config 12002 file that allows connections. 12003 12004 2003-03-23 Havoc Pennington <hp (a] pobox.com> 12005 12006 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with 12007 DBUS_BUILD_TESTS, actually alloc/free a block of memory for 12008 the mutex, so we can check for proper memory management 12009 and OOM handling. 12010 12011 * dbus/dbus-dataslot.c: remove the mutex from 12012 DBusDataSlotAllocator and lock it manually when using it, 12013 to simplify fitting it into the global slots framework. 12014 12015 * dbus/dbus-threads.c (init_static_locks): rework how we're 12016 handling global locks so they are easily shut down. 12017 12018 * bus/policy.c (bus_policy_append_rule): fix 12019 12020 * bus/test-main.c (main): check for memleaks 12021 12022 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make 12023 test suite check for memleaks 12024 12025 * dbus/dbus-memory.c: add support in test mode for tracking 12026 number of outstanding blocks 12027 12028 2003-03-23 Havoc Pennington <hp (a] pobox.com> 12029 12030 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny 12031 policies code 12032 12033 * dbus/dbus-hash.h: add ULONG hash keys 12034 12035 * dbus/dbus-sysdeps.c (_dbus_get_groups): new 12036 (_dbus_get_group_id): new function 12037 12038 2003-03-20 Havoc Pennington <hp (a] redhat.com> 12039 12040 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function): 12041 new function 12042 (dbus_connection_get_unix_user): new function 12043 12044 2003-03-20 Havoc Pennington <hp (a] pobox.com> 12045 12046 * bus/connection.c (bus_connection_send_oom_error): assert that 12047 message has a sender 12048 (connection_execute_transaction): ditto 12049 (bus_connection_preallocate_oom_error): fix to set the sender, and 12050 set recipient to the destination service, not the bus driver 12051 12052 * bus/policy.c: hacking 12053 12054 * dbus/dbus-message.c (dbus_message_service_is): new function 12055 (dbus_message_sender_is): new 12056 12057 2003-03-19 Havoc Pennington <hp (a] redhat.com> 12058 12059 * bus/policy.c: start sketching code for policy restrictions on 12060 what connections can do. 12061 12062 2003-03-18 Havoc Pennington <hp (a] redhat.com> 12063 12064 * doc/TODO: some notes on high-level todo items. Little nitpick 12065 stuff is all in @todo, so no need to add it here. 12066 12067 * doc/config-file.txt: some notes on how config file might look 12068 12069 2003-03-18 Anders Carlsson <andersca (a] codefactory.se> 12070 12071 * configure.in: 0.6 12072 12073 * NEWS: Update. 12074 12075 2003-03-17 Havoc Pennington <hp (a] redhat.com> 12076 12077 * dbus/dbus-internals.h: add gcc attributes so that 12078 our printf-style functions warn on bad arguments to 12079 format 12080 12081 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf 12082 format bug 12083 12084 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix 12085 printf format bug 12086 12087 2003-03-17 Havoc Pennington <hp (a] redhat.com> 12088 12089 * bus/test-main.c (main): make it print something as it runs 12090 so make check doesn't look stuck 12091 12092 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove 12093 from CVS, now obsolete 12094 12095 2003-03-17 Anders Carlsson <andersca (a] codefactory.se> 12096 12097 * bus/dispatch.c: (bus_dispatch): 12098 Refetch the service name since it may have been reallocated 12099 when dbus_message_set_sender was called. 12100 12101 * dbus/dbus-sysdeps.c: (_dbus_accept): 12102 Add address and address length variables and use them to stop 12103 valgrind from complaining. 12104 12105 2003-03-17 Havoc Pennington <hp (a] pobox.com> 12106 12107 All tests pass, no memleaks, no valgrind complaints. 12108 12109 * bus/test.c: refcount handler_slot 12110 12111 * bus/connection.c (bus_connections_new): refcount 12112 connection_data_slot 12113 12114 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused 12115 bytes so that auth scripts pass. 12116 12117 * bus/dispatch.c: init message_handler_slot so it gets allocated 12118 properly 12119 12120 * bus/dispatch.c (message_handler_slot_ref): fix memleak 12121 12122 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new): 12123 dealloc server_pipe_hash when no longer used for benefit of 12124 leak checking 12125 12126 * dbus/dbus-auth.c (process_command): memleak fix 12127 12128 * bus/dispatch.c (check_hello_message): memleak fix 12129 12130 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12131 12132 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot 12133 12134 2003-03-17 Anders Carlsson <andersca (a] codefactory.se> 12135 12136 * bus/activation.c (bus_activation_activate_service): Append 12137 the pending activation entry to the list of pending activations. 12138 12139 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12140 12141 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of 12142 connections 12143 12144 * dbus/dbus-address.c (create_entry): fix OOM handling when 12145 failing to alloc entry->method 12146 12147 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12148 12149 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc 12150 the watch 12151 12152 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): 12153 add some missing dbus_set_result 12154 12155 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to 12156 alloc the DBusMessageHandler 12157 12158 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref 12159 the transport here, since we call this from the finalizer; it 12160 resulted in a double-finalize. 12161 12162 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug 12163 where we tried to use transport->connection that was NULL, 12164 happened when transport was disconnected early on due to OOM 12165 12166 * bus/*.c: adapt to handle OOM for watches/timeouts 12167 12168 * dbus/dbus-transport-unix.c: port to handle OOM during 12169 watch handling 12170 12171 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a 12172 reference to unused bytes instead of a copy 12173 12174 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for 12175 out of memory 12176 12177 * dbus/dbus-connection.c (dbus_connection_handle_watch): return 12178 FALSE on OOM 12179 12180 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out 12181 of memory 12182 12183 2003-03-16 Anders Carlsson <andersca (a] codefactory.se> 12184 12185 * doc/dbus-specification.sgml: 12186 Document reply message for ActivateService. 12187 12188 2003-03-16 Anders Carlsson <andersca (a] codefactory.se> 12189 12190 * bus/activation.c: (bus_pending_activation_entry_free), 12191 (bus_pending_activation_free), (bus_activation_new), 12192 (bus_activation_unref), (bus_activation_service_created), 12193 (bus_activation_activate_service): 12194 * bus/activation.h: 12195 * bus/bus.c: (bus_context_new): 12196 * bus/desktop-file.c: (new_section): 12197 * bus/driver.c: (bus_driver_send_service_deleted), 12198 (bus_driver_handle_activate_service): 12199 * bus/services.c: (bus_registry_new), (bus_registry_ensure): 12200 * bus/services.h: 12201 * dbus/dbus-connection.c: 12202 (dbus_connection_send_with_reply_and_block): 12203 * dbus/dbus-message.c: (dbus_message_append_args_valist): 12204 * dbus/dbus-protocol.h: 12205 Make activation work better. Now pending activations will be queued 12206 and the daemon won't try to activate services that are already registered. 12207 12208 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12209 12210 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set 12211 connection data 12212 12213 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support 12214 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc 12215 12216 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12217 12218 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak 12219 this. always run the test suite before commit... 12220 12221 * bus/*: adapt to DBusConnection API changes 12222 12223 * glib/dbus-gmain.c: adapt to DBusConnection API changes, 12224 requires renaming stuff to avoid dbus_connection_dispatch name 12225 conflict. 12226 12227 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new 12228 function 12229 12230 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): 12231 separate from _dbus_message_loader_return_buffer() 12232 12233 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove 12234 this, because it's now always broken to use; the number of 12235 messages in queue vs. the number still buffered by the message 12236 loader is undefined/meaningless. Should use 12237 dbus_connection_get_dispatch_state(). 12238 (dbus_connection_dispatch): rename from 12239 dbus_connection_dispatch_message 12240 12241 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12242 12243 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real 12244 implementation 12245 12246 2003-03-16 Anders Carlsson <andersca (a] codefactory.se> 12247 12248 * dbus/dbus-connection.c: 12249 (dbus_connection_send_with_reply_and_block): 12250 Decrease connection->n_incoming when removing an entry 12251 from the list. 12252 * dbus/dbus-dict.c: (dbus_dict_entry_free), 12253 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), 12254 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), 12255 (dbus_dict_set_byte_array), (dbus_dict_set_string_array), 12256 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array), 12257 (dbus_dict_get_byte_array): 12258 Handle NULL arrays and strings. Also add support for byte arrays. 12259 12260 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array), 12261 (_dbus_marshal_dict), (_dbus_demarshal_byte_array), 12262 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), 12263 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), 12264 (_dbus_demarshal_dict), (demarshal_and_validate_len), 12265 (_dbus_marshal_validate_arg), (_dbus_marshal_test): 12266 * dbus/dbus-marshal.h: 12267 Add support for marshalling and demarshalling empty arrays and strings. 12268 12269 * dbus/dbus-message.c: (dbus_message_append_args_valist), 12270 (dbus_message_append_string_array), 12271 (dbus_message_iter_get_boolean), 12272 (dbus_message_iter_get_boolean_array), 12273 (dbus_message_iter_get_int32_array), 12274 (dbus_message_iter_get_uint32_array), 12275 (dbus_message_iter_get_double_array), 12276 (dbus_message_iter_get_byte_array), 12277 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict), 12278 (check_message_handling): 12279 Add support for getting empty arrays and dicts. 12280 12281 * dbus/dbus-string.c: (_dbus_string_validate_utf8): 12282 Don't do any validation at all for now, that's better than just checking 12283 for ASCII. 12284 12285 * test/data/valid-messages/emptiness.message: 12286 New test message with lots of empty arrays. 12287 12288 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12289 12290 * dbus/dbus-connection.c 12291 (_dbus_connection_queue_received_message_link): new function that 12292 can't fail due to OOM 12293 12294 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link): 12295 new function pops a message together with a list link 12296 containing it. 12297 12298 * dbus/dbus-transport-unix.c (queue_messages): use new link-based 12299 message queuing functions to avoid needing to alloc memory 12300 12301 2003-03-16 Havoc Pennington <hp (a] pobox.com> 12302 12303 Oops - test code was only testing failure of around 30 of the 12304 mallocs in the test path, but it turns out there are 500+ 12305 mallocs. I believe this was due to misguided linking setup such 12306 that there was one copy of dbus_malloc etc. in the daemon and one 12307 in the shared lib, and only daemon mallocs were tested. In any 12308 case, the test case now tests all 500+ mallocs, and doesn't pass 12309 yet, though there are lots of fixes in this patch. 12310 12311 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix 12312 this so that it doesn't need to allocate memory, since it 12313 has no way of indicating failure due to OOM (and would be 12314 annoying if it did). 12315 12316 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function 12317 12318 * bus/Makefile.am: rearrange to create two self-contained 12319 libraries, to avoid having libraries with overlapping symbols. 12320 that was resulting in weirdness, e.g. I'm pretty sure there 12321 were two copies of global static variables. 12322 12323 * dbus/dbus-internals.c: move the malloc debug stuff to 12324 dbus-memory.c 12325 12326 * dbus/dbus-list.c (free_link): free list mempool if it becomes 12327 empty. 12328 12329 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function 12330 12331 * dbus/dbus-address.c (dbus_parse_address): free list nodes 12332 on failure. 12333 12334 * bus/dispatch.c (bus_dispatch_add_connection): free 12335 message_handler_slot when no longer using it, so 12336 memory leak checkers are happy for the test suite. 12337 12338 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name 12339 12340 * bus/bus.c (new_connection_callback): disconnect in here if 12341 bus_connections_setup_connection fails. 12342 12343 * bus/connection.c (bus_connections_unref): fix to free the 12344 connections 12345 (bus_connections_setup_connection): if this fails, don't 12346 disconnect the connection, just be sure there are no side 12347 effects. 12348 12349 * dbus/dbus-string.c (undo_alignment): unbreak this 12350 12351 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were 12352 leaking 12353 (_dbus_auth_new): fix the order in which we free strings 12354 on OOM failure 12355 12356 * bus/connection.c (bus_connection_disconnected): fix to 12357 not send ServiceDeleted multiple times in case of memory 12358 allocation failure 12359 12360 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to 12361 get the base service name 12362 (dbus_bus_register_client): don't return base service name, 12363 instead store it on the DBusConnection and have an accessor 12364 function for it. 12365 (dbus_bus_register_client): rename dbus_bus_register() 12366 12367 * bus/dispatch.c (check_hello_message): verify that other 12368 connections on the bus also got the correct results, not 12369 just the one sending hello 12370 12371 2003-03-15 Havoc Pennington <hp (a] pobox.com> 12372 12373 Make it pass the Hello handling test including all OOM codepaths. 12374 Now to do other messages... 12375 12376 * bus/services.c (bus_service_remove_owner): fix crash when 12377 removing owner from an empty list of owners 12378 (bus_registry_ensure): don't leave service in the list of 12379 a connection's owned services if we fail to put the service 12380 in the hash table. 12381 12382 * bus/connection.c (bus_connection_preallocate_oom_error): set 12383 error flag on the OOM error. 12384 12385 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): 12386 handle _dbus_transport_set_connection failure 12387 12388 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify 12389 to create watches up front and simply enable/disable them as 12390 needed. 12391 (unix_connection_set): this can now fail on OOM 12392 12393 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept 12394 of enabling/disabling a watch or timeout. 12395 12396 * bus/loop.c (bus_loop_iterate): don't touch disabled 12397 watches/timeouts 12398 12399 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts 12400 12401 2003-03-15 Havoc Pennington <hp (a] pobox.com> 12402 12403 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually 12404 write useful test code, after all that futzing around ;-) 12405 12406 Test does not yet pass because we can't handle OOM in 12407 _dbus_transport_messages_pending (basically, 12408 dbus_connection_preallocate_send() does not prealloc the write 12409 watch). To fix this, I think we need to add new stuff to 12410 set_watch_functions, namely a SetEnabled function so we can alloc 12411 the watch earlier, then enable it later. 12412 12413 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move 12414 dbus-memory.c to the convenience lib 12415 12416 * bus/test.c: rename some static functions to keep them clearly 12417 distinct from stuff in connection.c. Handle client disconnection. 12418 12419 2003-03-14 Havoc Pennington <hp (a] pobox.com> 12420 12421 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe 12422 transport, tests more of the real codepath. Set up clients 12423 with bus_setup_debug_client. 12424 12425 * bus/test.c (bus_setup_debug_client): function to set up debug 12426 "clients" on the main loop 12427 12428 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe 12429 support 12430 12431 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe 12432 server type 12433 12434 * dbus/dbus-server-debug.c: support a debug server based on pipes 12435 12436 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function 12437 (_dbus_close): new function 12438 12439 * configure.in: check for socketpair 12440 12441 2003-03-14 Havoc Pennington <hp (a] redhat.com> 12442 12443 * dbus/dbus-memory.c: add a "detect buffer overwrites on free" 12444 cheesy hack 12445 12446 * dbus/dbus-transport-debug.c: rework this a good bit to be 12447 less complicated. hopefully still works. 12448 12449 * dbus/dbus-server-debug.c (handle_new_client): remove timeout 12450 manually 12451 12452 * glib/dbus-gmain.c (timeout_handler): don't remove timeout 12453 after running it 12454 12455 * dbus/dbus-message.c (dbus_message_copy): rename from 12456 dbus_message_new_from_message, fix it up to copy 12457 all the message fields, add test case 12458 12459 * bus/dispatch.c (bus_dispatch_test): add some more test code, 12460 not quite passing yet 12461 12462 2003-03-14 Havoc Pennington <hp (a] pobox.com> 12463 12464 * bus/loop.c (bus_loop_iterate): add this so we can "run loop 12465 until no work remains" in test code. (the large diff here 12466 is just code movement, no actual changes) 12467 12468 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to 12469 1, no point waiting around for test code. 12470 (_dbus_server_debug_accept_transport): unref the timeout 12471 after adding it (right?) 12472 12473 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto 12474 12475 2003-03-13 Havoc Pennington <hp (a] redhat.com> 12476 12477 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle 12478 out of memory 12479 12480 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out 12481 of memory 12482 12483 * dbus/dbus-connection.h: Make AddWatchFunction and 12484 AddTimeoutFunction return a bool so they can fail on out-of-memory 12485 12486 * bus/bus.c (bus_context_new): set up timeout handlers 12487 12488 * bus/connection.c (bus_connections_setup_connection): set up 12489 timeout handlers 12490 12491 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff 12492 can fail 12493 12494 * bus/bus.c (bus_context_new): adapt to changes 12495 12496 * bus/connection.c: adapt to changes 12497 12498 * test/watch.c: adapt to DBusWatch changes 12499 12500 * bus/dispatch.c (bus_dispatch_test): started adding this but 12501 didn't finish 12502 12503 2003-03-14 Anders Carlsson <andersca (a] codefactory.se> 12504 12505 * bus/dispatch.c (send_service_nonexistent_error): Fix typo. 12506 12507 2003-03-13 Havoc Pennington <hp (a] pobox.com> 12508 12509 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: 12510 set up a test framework as for the library 12511 12512 2003-03-12 Havoc Pennington <hp (a] pobox.com> 12513 12514 Throughout: purge global variables, introduce BusActivation, 12515 BusConnections, BusRegistry, etc. objects instead. 12516 12517 * bus/bus.h, bus/bus.c: introduce BusContext as a global 12518 message bus object 12519 12520 * test/Makefile.am (TEST_BINARIES): disable bus-test for now, 12521 going to redo this a bit differently I think 12522 12523 2003-03-12 Havoc Pennington <hp (a] redhat.com> 12524 12525 Mega-patch that gets the message bus daemon initially handling 12526 out-of-memory. Work still needed. Also lots of random 12527 moving stuff to DBusError instead of ResultCode. 12528 12529 * dbus/dbus-list.c (_dbus_list_length_is_one): new function 12530 12531 * dbus/dbus-connection.c 12532 (dbus_connection_send_with_reply_and_block): use DBusError 12533 12534 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not 12535 DBusResultCode 12536 12537 * dbus/dbus-connection.c (dbus_connection_send): drop the result 12538 code here, as the only failure possible is OOM. 12539 12540 * bus/connection.c (bus_connection_disconnect): 12541 rename bus_connection_disconnected as it's a notification only 12542 12543 * bus/driver.c (bus_driver_handle_acquire_service): don't free 12544 "name" on get_args failure, should be done by get_args; 12545 don't disconnect client for bad args, just return an error. 12546 (bus_driver_handle_service_exists): ditto 12547 12548 * bus/services.c (bus_services_list): NULL-terminate returned array 12549 12550 * bus/driver.c (bus_driver_send_service_lost) 12551 (bus_driver_send_service_acquired): send messages from driver to a 12552 specific client to the client's unique name, not to the broadcast 12553 service. 12554 12555 * dbus/dbus-message.c (decode_header_data): reject messages that 12556 contain no name field 12557 (_dbus_message_get_client_serial): rename to 12558 dbus_message_get_serial and make public 12559 (_dbus_message_set_serial): rename from set_client_serial 12560 (_dbus_message_set_reply_serial): make public 12561 (_dbus_message_get_reply_serial): make public 12562 12563 * bus/connection.c (bus_connection_foreach): allow stopping 12564 iteration by returning FALSE from foreach function. 12565 12566 * dbus/dbus-connection.c (dbus_connection_send_preallocated) 12567 (dbus_connection_free_preallocated_send) 12568 (dbus_connection_preallocate_send): new API for sending a message 12569 without possibility of malloc failure. 12570 (dbus_connection_send_message): rename to just 12571 dbus_connection_send (and same for whole function family) 12572 12573 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error 12574 12575 * dbus/dbus-sysdeps.c (_dbus_exit): new function 12576 12577 * bus/activation.c: handle/return errors 12578 12579 * dbus/dbus-errors.h: add more DBUS_ERROR #define 12580 12581 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents) 12582 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode 12583 (_dbus_result_from_errno): move to this file 12584 12585 2003-03-10 Anders Carlsson <andersca (a] codefactory.se> 12586 12587 * dbus/dbus-marshal.c: 12588 (_dbus_marshal_set_string): 12589 Take a length argument so we can marshal the correct string 12590 length. 12591 12592 (_dbus_marshal_dict), (_dbus_demarshal_dict), 12593 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg), 12594 (_dbus_marshal_test): 12595 * dbus/dbus-marshal.h: 12596 Add support for marshalling and demarshalling dicts. 12597 12598 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 12599 Add support for TYPE DICT. 12600 12601 * dbus/dbus-message.c: (set_string_field): 12602 Adjust header padding. 12603 12604 (dbus_message_append_args_valist), (dbus_message_append_dict), 12605 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type), 12606 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer), 12607 (check_message_handling), (check_have_valid_message): 12608 * dbus/dbus-message.h: 12609 Add functions for setting and getting dicts. 12610 12611 * dbus/dbus-protocol.h: 12612 Add DBUS_TYPE_DICT. 12613 12614 * dbus/dbus.h: 12615 Add dbus-dict.h 12616 12617 * doc/dbus-specification.sgml: 12618 Add information about how dicts are marshalled. 12619 12620 * test/data/invalid-messages/dict-with-nil-value.message: 12621 * test/data/invalid-messages/too-short-dict.message: 12622 * test/data/valid-messages/dict-simple.message: 12623 * test/data/valid-messages/dict.message: 12624 Add sample messages containing dicts. 12625 12626 2003-03-08 Anders Carlsson <andersca (a] codefactory.se> 12627 12628 * dbus/dbus-dict.h: Add DBUS_END_DECLS. 12629 12630 2003-03-07 Anders Carlsson <andersca (a] codefactory.se> 12631 12632 * dbus/Makefile.am: 12633 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), 12634 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean), 12635 (dbus_dict_set_int32), (dbus_dict_set_uint32), 12636 (dbus_dict_set_double), (dbus_dict_set_string), 12637 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), 12638 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), 12639 (dbus_dict_set_string_array), (_dbus_dict_test): 12640 * dbus/dbus-dict.h: 12641 Fix according to comments from Havoc. 12642 12643 2003-03-06 Michael Meeks <michael (a] server.home> 12644 12645 * configure.in: if we don't have kde-config, disable have_qt. 12646 12647 2003-03-07 Anders Carlsson <andersca (a] codefactory.se> 12648 12649 * dbus/Makefile.am: 12650 Add dbus-dict.[ch] 12651 12652 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), 12653 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains), 12654 (dbus_dict_remove), (dbus_dict_get_value_type), 12655 (dbus_dict_get_keys), (dbus_dict_put_boolean), 12656 (dbus_dict_put_int32), (dbus_dict_put_uint32), 12657 (dbus_dict_put_double), (dbus_dict_put_string), 12658 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array), 12659 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array), 12660 (dbus_dict_put_string_array), (dbus_dict_get_boolean), 12661 (dbus_dict_get_int32), (dbus_dict_get_uint32), 12662 (dbus_dict_get_double), (dbus_dict_get_string), 12663 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array), 12664 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array), 12665 (dbus_dict_get_string_array), (_dbus_dict_test): 12666 * dbus/dbus-dict.h: 12667 Add DBusDict implementation 12668 12669 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests): 12670 * dbus/dbus-test.h: 12671 Add _dbus_dict_test 12672 12673 2003-03-04 Havoc Pennington <hp (a] pobox.com> 12674 12675 * test/data/auth/*: adapt to changes 12676 12677 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add 12678 USERID_BASE64 and change USERNAME_BASE64 to put in username not 12679 userid 12680 12681 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent 12682 more stuff from being in a context name, to make the protocol 12683 simpler to deal with 12684 12685 * dbus/dbus-errors.c (dbus_error_has_name): new function 12686 (dbus_error_is_set): new function 12687 12688 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth 12689 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1 12690 12691 * dbus/dbus-connection.c (dbus_connection_flush): also read 12692 messages during a flush operation 12693 12694 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used. 12695 12696 2003-03-05 Anders Carlsson <andersca (a] codefactory.se> 12697 12698 * configure.in: Check for gethostbyname on Solaris. 12699 12700 * dbus/dbus-transport.c: (_dbus_transport_open): 12701 Remove duplicate "tcp" entry. 12702 12703 * doc/dbus-specification.sgml: 12704 Clarify some things. 12705 12706 2003-03-05 Anders Carlsson <andersca (a] codefactory.se> 12707 12708 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir): 12709 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir), 12710 (_dbus_keyring_test): 12711 * dbus/dbus-md5.c: (_dbus_md5_compute): 12712 * dbus/dbus-sha.c: (_dbus_sha_compute): 12713 Plug memory leaks. 12714 12715 2003-03-05 Anders Carlsson <andersca (a] codefactory.se> 12716 12717 * README: Add some things. 12718 12719 2003-03-04 Anders Carlsson <andersca (a] codefactory.se> 12720 12721 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break; 12722 after case DBUS_TYPE_BOOELAN. 12723 12724 2003-03-02 Havoc Pennington <hp (a] pobox.com> 12725 12726 * test/break-loader.c (randomly_set_extreme_ints): add test that 12727 sets really huge and small integers 12728 12729 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check 12730 that length of boolean array fits in the string, and that 12731 string has room for boolean value in single-bool case. 12732 12733 * dbus/dbus-message-builder.c (_dbus_message_data_load): add 12734 optional value to "ALIGN" command which is what to fill the 12735 alignment with. 12736 12737 * test/data/valid-messages/no-padding.message: add regression 12738 test for the message padding problem 12739 12740 2003-03-02 Havoc Pennington <hp (a] pobox.com> 12741 12742 * dbus/dbus-message.c (decode_header_data): fix to always init 12743 message_padding, from Benjamin Dauvergne 12744 12745 2003-03-02 Havoc Pennington <hp (a] pobox.com> 12746 12747 * configure.in: 0.5 12748 12749 * NEWS: Update. 12750 12751 2003-03-01 Joe Shaw <joe (a] assbarn.com> 12752 12753 * configure.in: Check for "struct cmsgcred" and try to access its 12754 members for BSD-like unices. 12755 12756 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into 12757 _dbus_read_credentials_unix_socket(). 12758 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of 12759 read() for reading the credential byte off the unix socket. Use 12760 struct cmsgcred on systems that support it. 12761 12762 2003-02-27 Alexander Larsson <alexl (a] redhat.com> 12763 12764 * glib/Makefile.am: 12765 * configure.in: 12766 Make gthreads-2.0 dependency optional. Don't build thread test if 12767 its not found. 12768 12769 2003-02-27 Havoc Pennington <hp (a] pobox.com> 12770 12771 * dbus/dbus-connection.c 12772 (dbus_connection_send_message_with_reply_and_block): fix doh! 12773 doh! doh! bug that resulted in never removing a reply from the 12774 queue, no wonder we called get_reply_serial so much ;-) 12775 12776 * dbus/dbus-message.c (struct DBusMessage): cache reply serial 12777 and client serial instead of demarshaling them every time 12778 12779 2003-02-27 Havoc Pennington <hp (a] pobox.com> 12780 12781 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much 12782 more inlined, using dbus-string-private.h, speeds things up 12783 substantially 12784 12785 * dbus/dbus-string.c (_dbus_string_free): apply align offset 12786 when freeing the string 12787 (_dbus_string_steal_data): fix for align offset 12788 (undo_alignment): new function 12789 12790 2003-02-26 Havoc Pennington <hp (a] redhat.com> 12791 12792 All kinds of audit fixes from Owen, plus initial attempt to 12793 handle unaligned memory returned from malloc. 12794 12795 * dbus/dbus-string.c (_dbus_string_init): clamp max length to 12796 leave room for align_offset and nul byte 12797 (fixup_alignment): function to track an align_offset and 12798 ensure real->str is aligned 12799 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, 12800 to allow a nul byte plus align offset 12801 (_dbus_string_lock): fix overflow issue 12802 (_dbus_string_init_const_len): add assertions on sanity of len, 12803 assign allocated to be ALLOCATION_PADDING larger than len 12804 (set_length): fixup the overflow handling 12805 (_dbus_string_get_data_len): fix overflow in assertion 12806 (open_gap): detect overflow in size of gap to be opened 12807 (_dbus_string_lengthen): add overflow check 12808 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE 12809 (_dbus_string_append): add overflow check 12810 (_dbus_string_append_unichar): overflow 12811 (_dbus_string_delete): fix overflow in assertion 12812 (_dbus_string_copy_len): overflow in assertion 12813 (_dbus_string_replace_len): overflows in assertions 12814 (_dbus_string_find): change to implement in terms of 12815 _dbus_string_find_to 12816 (_dbus_string_find_to): assorted fixage 12817 (_dbus_string_equal_c_str): assert c_str != NULL, 12818 fix logic so the function works 12819 (_dbus_string_ends_with_c_str): fix overflow thingy 12820 (_dbus_string_base64_encode): overflow fix 12821 (_dbus_string_validate_ascii): overflow 12822 (_dbus_string_validate_nul): overflow 12823 12824 2003-02-26 Havoc Pennington <hp (a] redhat.com> 12825 12826 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS 12827 12828 2003-02-26 Alexander Larsson <alexl (a] redhat.com> 12829 12830 * configure.in: 12831 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0 12832 12833 * dbus/dbus-connection.c: 12834 * dbus/dbus-connection.h: 12835 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch. 12836 Add dbus_connection_set_wakeup_main_function and use it when queueing 12837 incoming and outgoing messages. 12838 12839 12840 * dbus/dbus-dataslot.c: 12841 Threadsafe usage of DBusDataSlotAllocator 12842 12843 * dbus/dbus-message.c: (dbus_message_get_args_iter): 12844 dbus_new can fail. 12845 12846 * dbus/dbus-server-unix.c: 12847 Add todo comment 12848 12849 * glib/dbus-gmain.c: 12850 Implement the new wakeup functions for glib. 12851 12852 * glib/Makefile.am: 12853 * glib/test-thread-client.c: 12854 * glib/test-thread-server.c: 12855 * glib/test-thread.h: 12856 Initial cut at some thread test code. Not really done yet. 12857 12858 2003-02-26 Havoc Pennington <hp (a] pobox.com> 12859 12860 * dbus/dbus-connection.c 12861 (dbus_connection_send_message_with_reply_and_block): fix crash 12862 where we ref'd the outgoing message instead of the returned reply 12863 12864 * dbus/dbus-transport-unix.c (do_authentication): check read watch 12865 at the end of this function, so if we didn't need to read for 12866 authentication, we reinstall it for receiving messages 12867 12868 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to 12869 a NULL sender for peer-to-peer case 12870 12871 * dbus/dbus-transport-unix.c (check_read_watch): handle 12872 !authenticated case correctly 12873 12874 * glib/dbus-gmain.c: add support for DBusServer 12875 12876 * dbus/dbus-server.c: add data slot support 12877 12878 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check 12879 return values and handle errors 12880 12881 * dbus/dbus-dataslot.c: factor out the data slot stuff from 12882 DBusConnection 12883 12884 * Doxyfile.in (INPUT): add glib subdir 12885 12886 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename 12887 setup_with_g_main instead of hookup_with_g_main; write docs 12888 12889 2003-02-24 Anders Carlsson <andersca (a] codefactory.se> 12890 12891 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg): 12892 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 12893 * dbus/dbus-message.c: (dbus_message_append_boolean), 12894 (dbus_message_append_boolean_array), 12895 (dbus_message_get_args_valist), (_dbus_message_test): 12896 * dbus/dbus-message.h: 12897 * doc/dbus-specification.sgml: 12898 Various fixes as pointed out by Havoc. 12899 12900 * test/data/invalid-messages/bad-boolean-array.message: 12901 * test/data/invalid-messages/bad-boolean.message: 12902 Add invalid boolean value test cases. 12903 12904 2003-02-24 Anders Carlsson <andersca (a] codefactory.se> 12905 12906 * dbus/dbus-internals.c: (_dbus_type_to_string): 12907 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), 12908 (_dbus_marshal_validate_arg): 12909 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 12910 * dbus/dbus-message.c: (dbus_message_append_args_valist), 12911 (dbus_message_append_boolean), (dbus_message_append_boolean_array), 12912 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean), 12913 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32), 12914 (dbus_message_iter_get_double), 12915 (dbus_message_iter_get_boolean_array), (message_iter_test): 12916 * dbus/dbus-message.h: 12917 * dbus/dbus-protocol.h: 12918 * doc/dbus-specification.sgml: 12919 * test/data/valid-messages/lots-of-arguments.message: 12920 Add support for boolean and boolean array types. 12921 12922 2003-02-23 Havoc Pennington <hp (a] pobox.com> 12923 12924 * dbus/dbus-keyring.c: finish most of this implementation and 12925 simple unit test 12926 12927 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make 12928 these barf if the error isn't cleared to NULL 12929 12930 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure 12931 (_dbus_create_directory): new function 12932 12933 * dbus/dbus-errors.c (dbus_set_error): fix warning 12934 12935 * dbus/dbus-string.c (_dbus_string_hex_encode): new function 12936 (_dbus_string_hex_decode): new function 12937 (test_hex_roundtrip): test code 12938 12939 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode 12940 12941 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode 12942 12943 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use 12944 the save-to-temp/rename trick to atomically write the new file 12945 (_dbus_string_parse_uint): new function 12946 12947 2003-02-22 Havoc Pennington <hp (a] pobox.com> 12948 12949 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1 12950 12951 2003-02-22 Havoc Pennington <hp (a] pobox.com> 12952 12953 * dbus/dbus-message.c (dbus_message_iter_get_string_array): 12954 (dbus_message_iter_get_byte_array): Fix up doxygen warnings 12955 12956 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm 12957 12958 * dbus/test/data/sha-1: add US government test suite for SHA-1 12959 12960 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 12961 12962 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): 12963 Make string arrays NULL-terminated. 12964 12965 * dbus/dbus-memory.c: (dbus_free_string_array): 12966 * dbus/dbus-memory.h: 12967 New function for freeing NULL-terminated string arrays. 12968 12969 * dbus/dbus-message-builder.c: (append_quoted_string), 12970 (_dbus_message_data_load): 12971 Add support for array types. 12972 12973 * dbus/dbus-message.c: (check_message_handling): 12974 Add more types as test cases. 12975 12976 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int), 12977 (_dbus_string_parse_double): 12978 Add the start offset to the end offset. 12979 12980 * test/data/valid-messages/lots-of-arguments.message: 12981 New test message with lots of arguments. 12982 12983 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 12984 12985 * dbus/dbus-message.c: (dbus_message_append_nil), 12986 (dbus_message_append_int32), (dbus_message_append_uint32), 12987 (dbus_message_append_double), (dbus_message_append_string), 12988 (dbus_message_append_int32_array), 12989 (dbus_message_append_uint32_array), 12990 (dbus_message_append_double_array), 12991 (dbus_message_append_byte_array), 12992 (dbus_message_append_string_array): 12993 Fix all out-of-memory handling in these functions. 12994 12995 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 12996 12997 * dbus/dbus-message.c: (dbus_message_append_nil): 12998 Fix a silly. 12999 13000 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 13001 13002 * dbus/dbus-message.c: (dbus_message_append_args_valist), 13003 (dbus_message_append_nil), (dbus_message_append_int32_array), 13004 (dbus_message_append_uint32_array), 13005 (dbus_message_append_double_array), 13006 (dbus_message_append_byte_array), 13007 (dbus_message_append_string_array), (dbus_message_get_args_valist), 13008 (dbus_message_iter_get_int32_array), 13009 (dbus_message_iter_get_uint32_array), 13010 (dbus_message_iter_get_double_array), 13011 (dbus_message_iter_get_byte_array), 13012 (dbus_message_iter_get_string_array): 13013 13014 * dbus/dbus-message.h: 13015 Add functions for appending and getting arrays. 13016 13017 2003-02-21 Anders Carlsson <andersca (a] codefactory.se> 13018 13019 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the 13020 element size at least 8 bytes, fixes mempool tests on 13021 64-bit machines. 13022 13023 2003-02-20 Alexander Larsson <alexl (a] redhat.com> 13024 13025 * dbus/dbus-transport-unix.c (unix_do_iteration): 13026 Unlock the connection mutex during a blocking select call. 13027 Add todo about how we need a way to wake up the select. 13028 13029 * dbus/dbus-connection-internal.h: 13030 * dbus/dbus-connection.c: 13031 Add _dbus_connection_lock and _dbus_connection_unlock. 13032 13033 2003-02-19 Havoc Pennington <hp (a] pobox.com> 13034 13035 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in 13036 Doxyfile.in, not Doxyfile 13037 13038 * dbus/dbus-keyring.c: do some hacking on this 13039 13040 * dbus/dbus-sysdeps.c (_dbus_delete_file): new 13041 13042 * dbus/dbus-errors.c (dbus_set_error_const): do not call 13043 dbus_error_init 13044 (dbus_set_error): remove dbus_error_init, check for message == 13045 NULL *before* we sprintf into it, and add @todo about including 13046 system headers in this file 13047 13048 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new 13049 13050 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add 13051 13052 * dbus/dbus-sysdeps.c (get_user_info): break this function out to 13053 get various bits of user information based on either username 13054 or user ID 13055 (_dbus_homedir_from_username): new function 13056 13057 2003-02-19 Anders Carlsson <andersca (a] codefactory.se> 13058 13059 * configure.in: 13060 Add check for nonposix getpwnam_r 13061 13062 * dbus/dbus-mempool.c: (_dbus_mem_pool_new): 13063 Align the pool element size to a sizeof (void *) boundary. 13064 13065 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket), 13066 (_dbus_listen_unix_socket), (_dbus_credentials_from_username): 13067 General Solaris fixes. 13068 13069 * test/data/valid-messages/simplest-manual.message: 13070 Explicitly state that we want little-endian packing. 13071 13072 2003-02-19 Mikael Hallendal <micke (a] codefactory.se> 13073 13074 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. 13075 13076 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): 13077 Added to create a transport connecting using a tcp/ip socket. 13078 13079 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect 13080 to a tcp socket at given host and port. 13081 (_dbus_listen_tcp_socket): added to listen on tcp socket for given 13082 hostname and port. 13083 13084 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. 13085 13086 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 13087 Added to create a server listening on a TCP/IP socket. 13088 13089 2003-02-19 Havoc Pennington <hp (a] pobox.com> 13090 13091 Throughout: mop up all the Doxygen warnings and undocumented 13092 stuff. 13093 13094 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want 13095 to search any paths. 13096 13097 * dbus/dbus-threads.c: move global mutex initializers to 13098 dbus-internals.h, multiple prototypes was confusing doxygen 13099 besides being kind of ugly 13100 13101 * Doxyfile (PREDEFINED): have Doxygen define 13102 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from 13103 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS 13104 (do not abuse the feature! it's for stuff like the autogenerated 13105 macros in dbus-md5.c, not just for things you don't feel like 13106 documenting...) 13107 13108 2003-02-18 Havoc Pennington <hp (a] pobox.com> 13109 13110 * dbus/dbus-string.c (_dbus_string_zero): new function 13111 13112 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch, 13113 wrap it in some dbus-friendly API 13114 13115 * dbus/dbus-types.h: add 16-bit types 13116 13117 2003-02-18 Joe Shaw <joe (a] assbarn.com> 13118 13119 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get 13120 credentials from our currently running process. 13121 (get_word): Fix a buglet where we were copying the entire length 13122 instead of relative to our position. 13123 13124 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the 13125 keys on the stack... it's 640k of data. 13126 13127 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always 13128 read the credentials byte off the socket, even if we don't have 13129 SO_PEERCRED. 13130 (_dbus_poll): Implement poll() using select() for systems which 13131 don't have it. 13132 13133 * glib/test-dbus-glib.c (main): Print out an error if no 13134 parameters are given. 13135 13136 * test/data/auth/fallback.auth-script: Added. Tests that a client 13137 can fallback to a secondary auth mechanism if the first fails. 13138 13139 2003-02-18 Havoc Pennington <hp (a] pobox.com> 13140 13141 * AUTHORS: add Alex 13142 13143 2003-02-17 Havoc Pennington <hp (a] pobox.com> 13144 13145 * doc/dbus-specification.sgml: lots of cosmetic 13146 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS 13147 env variable to DBUS_BUS_ADDRESS, s/client/application/, 13148 s/server/bus/ (except in authentication section). Add a section 13149 "Message Bus Message Routing" 13150 13151 2003-02-17 Anders Carlsson <andersca (a] codefactory.se.> 13152 13153 Release 0.4 13154 13155 * NEWS: Update 13156 13157 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13158 13159 * doc/dbus-specification.sgml: 13160 Specification updates. 13161 13162 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13163 13164 * bus/activation.c: (bus_activation_init), (child_setup), 13165 (bus_activation_activate_service): 13166 * bus/activation.h: 13167 * bus/main.c: (main): 13168 Set DBUS_ADDRESS environment variable. 13169 13170 * dbus/dbus-errors.c: (dbus_set_error): 13171 Don't use va_copy since that's a C99 feature. 13172 13173 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec), 13174 (_dbus_spawn_async): 13175 * dbus/dbus-sysdeps.h: 13176 Add child_setup_func to _dbus_spawn_async. 13177 13178 * doc/dbus-specification.sgml: 13179 Update specification. 13180 13181 * test/spawn-test.c: (setup_func), (main): 13182 Fix test. 13183 13184 2003-02-17 Alexander Larsson <alexl (a] redhat.com> 13185 13186 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked): 13187 Added todo. 13188 13189 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13190 13191 * doc/.cvsignore: 13192 * doc/Makefile.am: 13193 * doc/dbus-test-plan.sgml: 13194 Add test plan document. 13195 13196 * test/Makefile.am: 13197 Fix distcheck. 13198 13199 2003-02-17 Anders Carlsson <andersca (a] codefactory.se> 13200 13201 * dbus/dbus-message.c: (decode_header_data), 13202 (_dbus_message_loader_return_buffer): 13203 Set the header padding amount when loading a message. 13204 13205 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13206 13207 * bus/dispatch.c: (send_one_message): 13208 Only send broadcast messages to registered connections. 13209 13210 * dbus/dbus-message.c: (dbus_message_name_is): 13211 * dbus/dbus-message.h: 13212 New convenience function. 13213 13214 * dbus/dbus-transport-debug.c: (do_reading): 13215 Only dispatch one message per run. 13216 13217 * test/Makefile.am: 13218 * test/bus-test.c: (new_connection_callback), (die), 13219 (test_hello_client1_handler), (test_hello_client2_handler), 13220 (test_hello_replies), (main): 13221 13222 * test/bus-test-loop.[ch]: 13223 Add these. 13224 13225 2003-02-16 Havoc Pennington <hp (a] pobox.com> 13226 13227 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix 13228 backward conditional 13229 13230 2003-02-16 Alexander Larsson <alexl (a] redhat.com> 13231 13232 * dbus/dbus-connection.c: 13233 Implement sent_message_with_reply. (with_reply_and block is still 13234 busted). 13235 Made dispatch_message not lose message if OOM. 13236 13237 * dbus/dbus-errors.h: 13238 Add NoReply error (for reply timeouts). 13239 13240 2003-02-16 Alexander Larsson <alexl (a] redhat.com> 13241 13242 * dbus/dbus-hash.c (_dbus_hash_table_unref): 13243 Actually free keys and values when destroying hashtable. 13244 13245 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13246 13247 * dbus/dbus-auth.c: (client_try_next_mechanism): 13248 Plug a leak. 13249 13250 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout): 13251 Return TRUE if there's no thread implementation around. 13252 13253 * glib/dbus-gmain.c: (free_source), 13254 (dbus_connection_hookup_with_g_main): 13255 Make sure to remove the GSource when the connection is finalized. 13256 13257 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13258 13259 * bus/dispatch.c: (bus_dispatch_message_handler): 13260 * dbus/dbus-errors.h: 13261 Return an error if someone tries to send a message to a service 13262 that doesn't exist. 13263 13264 2003-02-16 Anders Carlsson <andersca (a] codefactory.se> 13265 13266 * bus/activation.c: (load_directory), (bus_activation_init), 13267 (bus_activation_activate_service): 13268 * bus/activation.h: 13269 * bus/driver.c: 13270 (bus_driver_handle_activate_service), (bus_driver_handle_message): 13271 More work on the activation handling. 13272 13273 * dbus/dbus-errors.h: 13274 Add some error messages 13275 13276 * dbus/dbus-message.c: (dbus_message_new_error_reply): 13277 * dbus/dbus-message.h: 13278 New function that creates an error message. 13279 13280 * dbus/dbus-protocol.h: 13281 Add ACTIVATE_SERVER message. 13282 13283 * dbus/dbus-server-unix.c: (unix_handle_watch), 13284 (_dbus_server_new_for_domain_socket): 13285 Call _dbus_fd_set_close_on_exec. 13286 13287 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec), 13288 (_dbus_spawn_async), (_dbus_disable_sigpipe), 13289 (_dbus_fd_set_close_on_exec): 13290 * dbus/dbus-sysdeps.h: 13291 Add _dbus_fd_set_close_on exec function. Also add function that checks 13292 that all open fds are set to close-on-exec and warns otherwise. 13293 13294 * dbus/dbus-transport-unix.c: 13295 (_dbus_transport_new_for_domain_socket): 13296 Call _dbus_fd_set_close_on_exec. 13297 13298 2003-02-16 Havoc Pennington <hp (a] pobox.com> 13299 13300 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe): 13301 allow people to avoid setting SIGPIPE to SIG_IGN 13302 (_dbus_connection_new_for_transport): disable SIGPIPE unless 13303 we've been asked not to 13304 13305 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13306 13307 * dbus/dbus-list.c: (_dbus_list_append_link), 13308 (_dbus_list_prepend_link): 13309 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0), 13310 (dbus_realloc): 13311 Warning fixes. 13312 13313 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13314 13315 * bus/Makefile.am: 13316 * bus/activation.c: (bus_activation_entry_free), 13317 (add_desktop_file_entry), (load_directory), (bus_activation_init): 13318 * bus/activation.h: 13319 * bus/main.c: (main): 13320 Add simple activation support, doesn't work yet though. 13321 13322 2003-02-15 Zack Rusin <zack (a] kde.org> 13323 13324 * qt/dbus-qthread.cpp: small casting fix 13325 13326 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13327 13328 * dbus/dbus-errors.c: (dbus_set_error): 13329 * dbus/dbus-errors.h: 13330 Add a few errors and make dbus_set_error void. 13331 13332 * dbus/dbus-sysdeps.c: 13333 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe), 13334 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async): 13335 * dbus/dbus-sysdeps.h: 13336 Add _dbus_spawn_async. 13337 13338 * test/spawn-test.c: (main): 13339 Test for _dbus_spawn_async. 13340 13341 2003-02-15 Anders Carlsson <andersca (a] codefactory.se> 13342 13343 * dbus/dbus-internals.h: 13344 Fix build without tests. 13345 13346 * dbus/dbus-list.c: (alloc_link): 13347 Fix a segfault when a malloc fails. 13348 13349 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc), 13350 (dbus_malloc0), (dbus_realloc): 13351 Add support for malloc debugging. 13352 13353 2003-02-15 Alexander Larsson <alexl (a] redhat.com> 13354 13355 * dbus/dbus-threads.c: 13356 * dbus/dbus-threads.h: 13357 Add condvars. Remove static mutext from API. 13358 Implement static mutexes by initializing them from threads_init. 13359 13360 * glib/dbus-gthread.c: 13361 * qt/dbus-qthread.cpp: 13362 Update with the thread api changes. 13363 13364 13365 * dbus/dbus-list.c: 13366 * dbus/dbus-list.h: 13367 Turn StaticMutex into normal mutex + init function. 13368 Export new functions _dbus_list_alloc_link, _dbus_list_free_link, 13369 _dbus_list_append_link, _dbus_list_prepend_link 13370 13371 13372 * dbus/dbus-sysdeps.c: 13373 * dbus/dbus-sysdeps.h: 13374 New type dbus_atomic_t, and new functions _dbus_atomic_inc, 13375 _dbus_atomic_dec. Only slow fallback implementation at the moment. 13376 13377 * dbus/dbus-protocol.h: 13378 Add DBUS_MESSAGE_LOCAL_DISCONNECT define 13379 13380 * dbus/dbus-message.c: 13381 Make ref/unref atomic. 13382 Fix some docs. 13383 13384 * dbus/dbus-connection-internal.h: 13385 * dbus/dbus-connection.c: 13386 * dbus/dbus-connection.h: 13387 Make threadsafe. 13388 Change _peek to _borrow,_return & _steal_borrowed. 13389 Change disconnect callback to event. 13390 Make dbus_connection_dispatch_messages reentrant. 13391 13392 * dbus/dbus-transport.c: 13393 Don't ref the connection on calls to the transport 13394 implementation. 13395 13396 * dbus/dbus-message-handler.c: 13397 Make threadsafe. 13398 13399 * glib/dbus-gmain.c: 13400 Don't use peek_message anymore 13401 13402 * test/Makefile.am: 13403 * test/debug-thread.c: 13404 * test/debug-thread.h: 13405 Simple thread implementation that asserts() on deadlocks in 13406 single-threaded code. 13407 13408 * test/bus-test.c: 13409 (main) Call debug_threads_init. 13410 13411 * test/watch.c: 13412 Use disconnect message instead of disconnect callback. 13413 13414 * bus/connection.c: 13415 * bus/connection.h: 13416 Don't call dbus_connection_set_disconnect_function. Instead export 13417 bus_connection_disconnect. 13418 13419 * bus/dispatch.c: 13420 Call bus_connection_disconnect when we get a disconnected message. 13421 13422 2003-02-15 Havoc Pennington <hp (a] pobox.com> 13423 13424 * dbus/dbus-message.c (dbus_message_new): fool around with the 13425 docs 13426 13427 2003-02-14 Havoc Pennington <hp (a] pobox.com> 13428 13429 * dbus/dbus-mempool.c: fail if the debug functions so indicate 13430 13431 * dbus/dbus-memory.c: fail if the debug functions indicate we 13432 should 13433 13434 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter) 13435 (_dbus_decrement_fail_alloc_counter): debug functions to 13436 simulate memory allocation failures 13437 13438 2003-02-14 Havoc Pennington <hp (a] pobox.com> 13439 13440 * dbus/dbus-errors.h (struct DBusError): add a word of padding 13441 to DBusError 13442 13443 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13444 13445 * bus/driver.c: (bus_driver_handle_hello): 13446 * bus/driver.h: 13447 * bus/services.c: (bus_service_lookup): 13448 Reorder message sending so we get a more sane order. 13449 13450 * test/bus-test.c: (message_handler): 13451 Fix tyop. 13452 13453 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13454 13455 * bus/driver.c: (bus_driver_send_service_deleted), 13456 (bus_driver_send_service_created), (bus_driver_send_service_lost), 13457 (bus_driver_send_service_acquired), (bus_driver_handle_hello), 13458 (bus_driver_send_welcome_message), 13459 (bus_driver_handle_list_services), 13460 (bus_driver_handle_acquire_service), 13461 (bus_driver_handle_service_exists): 13462 * dbus/dbus-bus.c: (dbus_bus_register_client), 13463 (dbus_bus_acquire_service), (dbus_bus_service_exists): 13464 * dbus/dbus-errors.c: (dbus_result_to_string): 13465 * dbus/dbus-errors.h: 13466 * dbus/dbus-message.c: (dbus_message_append_args), 13467 (dbus_message_append_args_valist), (dbus_message_get_args), 13468 (dbus_message_get_args_valist), (dbus_message_get_args_iter), 13469 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string), 13470 (dbus_message_iter_get_byte_array), 13471 (dbus_message_iter_get_string_array), (message_iter_test), 13472 (check_message_handling), (_dbus_message_test): 13473 * dbus/dbus-message.h: 13474 * test/bus-test.c: (main): 13475 Change fields to arguments in messages, so that they won't be 13476 confused with header fields. 13477 13478 * glib/test-dbus-glib.c: (main): 13479 Remove append_fields from hello message. 13480 13481 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13482 13483 * dbus/dbus-errors.c: 13484 * dbus/dbus-message.c: 13485 * dbus/dbus-string.c: 13486 Documentation fixes. 13487 13488 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13489 13490 * glib/dbus-gmain.c: (timeout_handler), (add_timeout), 13491 (remove_timeout): 13492 Implement support for timeouts in dbus-glib. 13493 13494 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13495 13496 * dbus/dbus-message-builder.c: (_dbus_message_data_load): 13497 * dbus/dbus-message.c: (process_test_subdir): 13498 * test/break-loader.c: (find_breaks_based_on): 13499 Plug some memory leaks. 13500 13501 2003-02-13 Richard Hult <rhult (a] codefactory.se> 13502 13503 * bus/main.c: Fix build. 13504 13505 * dbus/dbus-errors.h: 13506 * dbus/dbus-errors.c: Fix copyright for Anders. 13507 13508 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13509 13510 * bus/Makefile.am: 13511 Add utils.[ch] 13512 13513 * bus/connection.c: (bus_connection_foreach): 13514 Fix a warning. 13515 13516 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections), 13517 (unescape_string), (new_section), (parse_section_start), 13518 (parse_key_value), (report_error), (bus_desktop_file_load), 13519 (bus_desktop_file_get_string): 13520 * bus/desktop-file.h: 13521 Use DBusError for error reporting. 13522 13523 * bus/dispatch.c: (send_one_message), 13524 (bus_dispatch_message_handler): 13525 * bus/driver.c: (bus_driver_send_service_deleted), 13526 (bus_driver_send_service_created), (bus_driver_send_service_lost), 13527 (bus_driver_send_service_acquired), (bus_driver_handle_hello), 13528 (bus_driver_send_welcome_message), 13529 (bus_driver_handle_list_services), 13530 (bus_driver_handle_acquire_service), 13531 (bus_driver_handle_service_exists): 13532 * bus/loop.c: (bus_loop_run): 13533 * bus/main.c: 13534 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM. 13535 13536 * bus/utils.c: (bus_wait_for_memory): 13537 * bus/utils.h: 13538 New files with general utility functions. 13539 13540 * dbus/dbus-internals.h: 13541 Remove _DBUS_HANDLE_OOM. 13542 13543 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13544 13545 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init), 13546 (dbus_error_free), (dbus_set_error_const), (dbus_set_error): 13547 * dbus/dbus-errors.h: 13548 Add DBusError structure. 13549 13550 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13551 13552 * test/data/valid-messages/standard-acquire-service.message: 13553 * test/data/valid-messages/standard-hello.message: 13554 * test/data/valid-messages/standard-list-services.message: 13555 * test/data/valid-messages/standard-service-exists.message: 13556 Add some standard messages. 13557 13558 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13559 13560 * bus/driver.c: (bus_driver_send_welcome_message), 13561 (bus_driver_handle_list_services), 13562 (bus_driver_handle_acquire_service), 13563 (bus_driver_handle_service_exists), (bus_driver_handle_message): 13564 Update for API changes in libdbus. 13565 13566 * dbus/dbus-message.c: (dbus_message_new_reply): 13567 * dbus/dbus-message.h: 13568 Remove the name argument. The spec states that replies shouldn't 13569 have a name. 13570 13571 2003-02-13 Anders Carlsson <andersca (a] codefactory.se> 13572 13573 * bus/desktop-file.c: (parse_section_start), (parse_key_value), 13574 (report_error), (bus_desktop_file_load), (lookup_section), 13575 (lookup_line), (bus_desktop_file_get_raw), 13576 (bus_desktop_file_get_string): 13577 * bus/desktop-file.h: 13578 Some fixes, and new functions for getting a key value from a section. 13579 13580 2003-02-13 Havoc Pennington <hp (a] pobox.com> 13581 13582 * test/data/auth/fail-after-n-attempts.auth-script: new test 13583 13584 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we 13585 reject the client. 13586 13587 2003-02-13 Havoc Pennington <hp (a] pobox.com> 13588 13589 * dbus/dbus-auth.c (handle_server_data_external_mech): args to 13590 dbus_credentials_match were backward 13591 13592 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support 13593 NO_CREDENTIALS and ROOT_CREDENTIALS 13594 13595 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine 13596 into here. Never process more commands after we've reached an 13597 end state; store further data as unused bytes. 13598 13599 * test/data/auth/*: add more auth tests 13600 13601 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT 13602 command to match exact string and EXPECT_UNUSED to match unused 13603 bytes 13604 13605 * test/Makefile.am (dist-hook): fix to dist all the test stuff 13606 13607 2003-02-12 Havoc Pennington <hp (a] pobox.com> 13608 13609 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip 13610 \r off of popped lines 13611 13612 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth 13613 scripts 13614 13615 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a 13616 SEND, append \r\n 13617 13618 2003-02-12 Havoc Pennington <hp (a] pobox.com> 13619 13620 * dbus/Makefile.am: remove break-loader from the build, since it 13621 moved. 13622 13623 * configure.in: add --enable-gcov to turn on coverage profiling 13624 flags and disable optimization 13625 13626 2003-02-10 Havoc Pennington <hp (a] pobox.com> 13627 13628 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync 13629 initial cut at test framework for DBusAuth from laptop. 13630 Doesn't quite work yet but it compiles and I need to get 13631 it off the 266mhz laptop. ;-) 13632 13633 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport): 13634 fix a memleak in error case 13635 13636 2003-02-12 Anders Carlsson <andersca (a] codefactory.se> 13637 13638 * bus/Makefile.am: 13639 * bus/desktop-file.c: 13640 * bus/desktop-file.h: 13641 Add a desktop file parser. 13642 13643 2003-02-11 Zack Rusin <zack (a] kde.org> 13644 13645 * qt/message.[h|cpp]: sample implementation 13646 of the KDE wrapper for DBusMessage 13647 13648 2003-02-09 Zack Rusin <zack (a] kde.org> 13649 13650 * test/bus-test.c: make_it_compile 13651 * doc/dbus-specification.sgml: minimal semantic fix 13652 13653 2003-02-06 Anders Carlsson <andersca (a] codefactory.se> 13654 13655 Release 0.3 13656 13657 * NEWS: Update 13658 13659 2003-02-06 Anders Carlsson <andersca (a] codefactory.se> 13660 13661 * dbus/Makefile.am: 13662 * dbus/dbus-break-loader.c: 13663 * test/Makefile.am: 13664 * test/break-loader.c: 13665 Move dbus-break-loader to test/ and rename it to break-loader. 13666 13667 2003-02-02 Havoc Pennington <hp (a] pobox.com> 13668 13669 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files 13670 for code to manage cookies in your home directory 13671 13672 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function 13673 13674 * dbus/dbus-auth.c (get_state): impose a maximum number of tries 13675 to authenticate, then disconnect the client. 13676 13677 2003-02-03 Alexander Larsson <alexl (a] redhat.com> 13678 13679 * dbus/dbus-message.c (dbus_message_append_fields): 13680 Correct docs. 13681 13682 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13683 13684 * doc/dbus-specification.sgml: 13685 Update address format section. 13686 13687 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13688 13689 * test/Makefile.am: 13690 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout), 13691 (message_handler), (new_connection_callback), (loop_quit), 13692 (loop_run), (main): 13693 Add bus test. 13694 13695 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13696 13697 * bus/driver.c: (bus_driver_handle_service_exists): 13698 Simplify the code a bit. 13699 13700 * dbus/dbus-bus.c: (dbus_bus_service_exists): 13701 Fix a silly. 13702 13703 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13704 13705 * bus/Makefile.am: 13706 Add libdbus-daemon.la and link to it. 13707 13708 2003-02-01 James Willcox <jwillcox (a] gnome.org> 13709 13710 * bus/driver.c: (bus_driver_handle_own_service): 13711 Actually include the service reply code in the message. 13712 13713 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13714 13715 * bus/driver.c: (bus_driver_handle_service_exists): 13716 Don't unref the incoming message. 13717 13718 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13719 13720 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h 13721 13722 2003-02-02 Anders Carlsson <andersca (a] codefactory.se> 13723 13724 * dbus/dbus-server.c: (dbus_server_listen): 13725 * dbus/dbus-transport.c: (_dbus_transport_open): 13726 ifdef out the calls to the debug transport and server. 13727 13728 2003-02-02 Alexander Larsson <alexl (a] redhat.com> 13729 13730 * dbus/dbus-watch.c (dbus_watch_get_flags): 13731 Add note in the docs that ERROR or HANGUP won't be returned 13732 and are assumed always on. 13733 13734 * glib/dbus-gmain.c (add_watch): 13735 Always add IO_ERR | IO_HUP 13736 13737 * dbus/dbus-message.h: 13738 Add semicolon after dbus_message_iter_get_string_array(). 13739 Makes qt code build again 13740 13741 2003-02-01 Anders Carlsson <andersca (a] codefactory.se> 13742 13743 * bus/driver.c: (create_unique_client_name), 13744 (bus_driver_handle_hello): 13745 Don't take a name, just use a numeric id to identify 13746 each client. 13747 13748 * dbus/Makefile.am: 13749 * dbus/dbus-bus.c: (dbus_bus_register_client), 13750 (dbus_bus_acquire_service), (dbus_bus_service_exists): 13751 * dbus/dbus-bus.h: 13752 Add new convenience functions for communicating with the bus. 13753 13754 * dbus/dbus-message.h: 13755 13756 * dbus/dbus-protocol.h: 13757 Fix a typo. 13758 13759 2003-02-01 Alexander Larsson <alexl (a] redhat.com> 13760 13761 * dbus/dbus-message.c (dbus_message_append_fields): 13762 Add some more doc comments. 13763 13764 2003-02-01 Havoc Pennington <hp (a] pobox.com> 13765 13766 * dbus/dbus-break-loader.c (randomly_modify_length): change 13767 a 4-byte value in the message as if it were a length 13768 13769 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set 13770 execute bit on saved files 13771 13772 2003-02-01 Havoc Pennington <hp (a] pobox.com> 13773 13774 * dbus/dbus-break-loader.c (main): new program to find messages 13775 that break the loader. 13776 13777 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function 13778 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function 13779 13780 * dbus/dbus-string.c (_dbus_string_set_byte): new 13781 13782 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13783 13784 * dbus/dbus-message.c: refactor the test code to be more general, 13785 in preparation for writing a "randomly permute test cases to 13786 try to break the loader" program. 13787 13788 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13789 13790 * doc/dbus-specification.sgml: work on the specification 13791 13792 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check 13793 the protocol version of the message. 13794 13795 * dbus/dbus-protocol.h: drop special _REPLY names, the spec 13796 no longer specifies that. 13797 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not 13798 1/2/3/4) 13799 13800 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing 13801 "break" for DBUS_TYPE_NIL, remove @todo 13802 13803 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13804 13805 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename 13806 just set_is_error/get_is_error as this is a commonly-used 13807 function, and write docs. 13808 13809 2003-01-31 Anders Carlsson <andersca (a] codefactory.se> 13810 13811 * dbus/dbus-address.c: (dbus_address_entry_free): 13812 Free key and value lists. 13813 13814 * dbus/dbus-internals.c: (_dbus_type_to_string): 13815 Add the types we didn't have. 13816 13817 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), 13818 (_dbus_marshal_validate_arg): 13819 Add NIL types. 13820 13821 * dbus/dbus-message.c: (dbus_message_set_sender): 13822 Remove todo about being able to set sender to NULL. 13823 13824 (dbus_message_set_is_error_reply), 13825 (dbus_message_get_is_error_reply): 13826 * dbus/dbus-message.h: 13827 New functions. 13828 13829 * dbus/dbus-protocol.h: 13830 Add error reply flag. 13831 13832 * test/data/valid-messages/opposite-endian.message: 13833 Add NIL type to test. 13834 13835 2003-01-31 Havoc Pennington <hp (a] pobox.com> 13836 13837 * doc/dbus-specification.sgml: fully specify the header. Add 13838 flags and major protocol version, and change header/body len to 13839 unsigned. 13840 13841 * dbus/dbus-message-builder.c (append_saved_length): append length 13842 as uint32 13843 13844 * dbus/dbus-message.c (dbus_message_create_header): change header 13845 length and body length to unsigned. Add the new fields from the 13846 spec 13847 (_dbus_message_loader_return_buffer): unsigned header/body len 13848 13849 2003-01-30 Havoc Pennington <hp (a] pobox.com> 13850 13851 * dbus/dbus-auth.c: rework to use only REJECTED, no 13852 MECHANISMS 13853 13854 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just 13855 use REJECTED, suggested by Mark McLoughlin 13856 13857 2003-01-30 Havoc Pennington <hp (a] pobox.com> 13858 13859 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need 13860 a better way to report errors here. e.g. "unix address lacks 13861 path" or something. also "no such file" when the path doesn't 13862 exist, etc. 13863 13864 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about 13865 leaking list nodes 13866 (dbus_parse_address): add @todo about documenting address format, 13867 and allowing , and ; to be escaped 13868 13869 2003-01-30 Anders Carlsson <andersca (a] codefactory.se> 13870 13871 * dbus/Makefile.am: 13872 Add dbus-address.[ch] 13873 13874 * dbus/dbus-address.c: (dbus_address_entry_free), 13875 (dbus_address_entries_free), (create_entry), 13876 (dbus_address_entry_get_method), (dbus_address_entry_get_value), 13877 (dbus_parse_address), (_dbus_address_test): 13878 * dbus/dbus-address.h: 13879 New files for dealing with address parsing. 13880 13881 * dbus/dbus-connection.c: 13882 Document timeout functions. 13883 13884 * dbus/dbus-message.c: 13885 Document dbus_message_new_from_message. 13886 13887 * dbus/dbus-server-debug.c: 13888 Document. 13889 13890 * dbus/dbus-server.c: (dbus_server_listen): 13891 Parse address and use correct server implementation. 13892 13893 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test): 13894 * dbus/dbus-string.h: 13895 New function with test. 13896 13897 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests): 13898 * dbus/dbus-test.h: 13899 Add address tests. 13900 13901 * dbus/dbus-transport-debug.c: 13902 Document. 13903 13904 * dbus/dbus-transport.c: (_dbus_transport_open): 13905 Parse address and use correct transport implementation. 13906 13907 2003-01-30 Havoc Pennington <hp (a] pobox.com> 13908 13909 * dbus/dbus-message.c: use message->byte_order instead of 13910 DBUS_COMPILER_BYTE_ORDER throughout. 13911 (dbus_message_create_header): pad header to align the 13912 start of the body of the message to 8-byte boundary 13913 13914 * dbus/dbus-marshal.h: make all the demarshalers take const 13915 DBusString arguments. 13916 13917 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): 13918 validate message args here, so we don't have to do slow validation 13919 later, and so we catch bad messages as they are incoming. Also add 13920 better checks on header_len and body_len. Also fill in 13921 message->byte_order 13922 13923 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not 13924 implemented properly) 13925 (_dbus_string_validate_nul): new function to check all-nul 13926 13927 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename 13928 get_arg_end_pos and remove all validation 13929 (_dbus_marshal_validate_arg): actually do validation here. 13930 13931 2003-01-29 Havoc Pennington <hp (a] pobox.com> 13932 13933 * dbus/dbus-message.c (check_message_handling): fix assertion 13934 failure on set_client_serial 13935 13936 2003-01-28 Havoc Pennington <hp (a] pobox.com> 13937 13938 * dbus/dbus-server-debug.c: Add doc section comments 13939 13940 * dbus/dbus-transport-debug.c: add doc section comments 13941 13942 2003-01-28 Havoc Pennington <hp (a] redhat.com> 13943 13944 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in 13945 the reverse order from how I had it 13946 (_dbus_string_base64_encode): reverse encoding order. I was 13947 basically byteswapping everything during encoding. 13948 13949 2003-01-28 Anders Carlsson <andersca (a] codefactory.se> 13950 13951 * dbus/dbus-connection-internal.h: 13952 * dbus/dbus-connection.c: (_dbus_connection_add_timeout), 13953 (_dbus_connection_remove_timeout): 13954 Add functions for adding and removing timeouts. 13955 13956 * dbus/dbus-message.c: (dbus_message_new_from_message): 13957 Add new function that takes a message and creates an exact 13958 copy of it, but with the refcount set to 1. 13959 (check_message_handling): 13960 Fix build error. 13961 13962 * dbus/dbus-server-protected.h: 13963 * dbus/dbus-server.c: (_dbus_server_init_base), 13964 (_dbus_server_finalize_base), (_dbus_server_add_timeout), 13965 (dbus_server_set_timeout_functions): 13966 (_dbus_server_remove_timeout): 13967 New functions so that a server can add and remove timeouts. 13968 13969 (dbus_server_listen): 13970 Add commented out call to dbus_server_debug_new. 13971 13972 * dbus/dbus-timeout.c: (_dbus_timeout_new): 13973 Actually set the handler, doh. 13974 13975 * dbus/dbus-transport.c: (_dbus_transport_open): 13976 Add commented out call to dbus_transport_debug_client_new. 13977 13978 * dbus/Makefile.am: 13979 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch] 13980 13981 2003-01-28 Havoc Pennington <hp (a] pobox.com> 13982 13983 * dbus/dbus-message.c (check_message_handling): function to check 13984 on the loaded message, iterates over it etc. 13985 13986 2003-01-28 Havoc Pennington <hp (a] pobox.com> 13987 13988 * test/Makefile.am (dist-hook): fix make distdir 13989 13990 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check 13991 13992 2003-01-27 Havoc Pennington <hp (a] pobox.com> 13993 13994 * dbus/dbus-mempool.c (time_for_size): replace printf with 13995 _dbus_verbose 13996 13997 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow 13998 empty lines; fix the SAVE_LENGTH stuff to be 13999 START_LENGTH/END_LENGTH so it actually works; couple other 14000 bugfixes 14001 14002 * test/Makefile.am (dist-hook): add dist-hook for .message files 14003 14004 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy 14005 can be constant or locked. 14006 (_dbus_string_free): allow freeing a const string as 14007 documented/intended 14008 14009 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility 14010 14011 * dbus/dbus-test-main.c (main): take an argument which is the 14012 directory containing test data 14013 14014 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir 14015 argument to this and load all the messages in test/data/ 14016 checking that they can be loaded or not loaded as appropriate. 14017 14018 2003-01-27 Anders Carlsson <andersca (a] codefactory.se> 14019 14020 * bus/dispatch.c: (bus_dispatch_message_handler): 14021 Dispatch messages sent to services. 14022 14023 * bus/driver.c: (bus_driver_send_service_deleted), 14024 (bus_driver_send_service_created), (bus_driver_send_service_lost), 14025 (bus_driver_send_service_acquired): 14026 Add helper functions for sending service related messages. 14027 14028 (bus_driver_send_welcome_message): 14029 Send HELLO_REPLY instead of WELCOME. 14030 14031 (bus_driver_handle_list_services): 14032 Send LIST_SERVICES_REPLY instead of SERVICES. 14033 14034 (bus_driver_handle_own_service), 14035 (bus_driver_handle_service_exists): 14036 New message handlers. 14037 14038 (bus_driver_handle_message): 14039 Invoke new message handlers. 14040 14041 (bus_driver_remove_connection): 14042 Don't remove any services here since that's done automatically 14043 by bus_service_remove_owner now. 14044 14045 * bus/driver.h: 14046 New function signatures. 14047 14048 * bus/services.c: (bus_service_add_owner): 14049 Send ServiceAcquired message if we're the only primary owner. 14050 14051 (bus_service_remove_owner): 14052 Send ServiceAcquired/ServiceLost messages. 14053 14054 (bus_service_set_prohibit_replacement), 14055 (bus_service_get_prohibit_replacement): 14056 Functions for setting prohibit replacement. 14057 14058 (bus_service_has_owner): 14059 New function that checks if a connection is in the owner queue of 14060 a certain service. 14061 14062 * bus/services.h: 14063 Add new function signatures. 14064 14065 * dbus/dbus-list.c: (_dbus_list_test): 14066 Add tests for _dbus_list_remove_last and traversing the list backwards. 14067 14068 * dbus/dbus-list.h: 14069 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't 14070 go any further, so return NULL then. 14071 14072 * dbus/dbus-protocol.h: 14073 Add new messages, service flags and service replies. 14074 14075 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14076 14077 * dbus/dbus-message-builder.c: implement, completely untested. 14078 14079 * test/data/*: add data to be used in testing. 14080 ".message" files are our simple loadable text format. 14081 ".message-raw" will be binary dumps of messages. 14082 14083 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new 14084 14085 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14086 14087 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function 14088 14089 * dbus/dbus-errors.c (dbus_result_to_string): add 14090 file errors 14091 14092 * dbus/dbus-message-builder.c: new file, will contain code to load 14093 up messages from files. Not implemented yet. 14094 14095 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14096 14097 * dbus/dbus-message.c (dbus_message_set_sender): support deleting 14098 the sender by setting to NULL 14099 14100 2003-01-26 Havoc Pennington <hp (a] pobox.com> 14101 14102 The unit tests pass, but otherwise untested. If it breaks, the 14103 tests should have been better. ;-) 14104 14105 * bus/driver.c (bus_driver_handle_hello): return if we disconnect 14106 the connection. 14107 14108 * dbus/dbus-message.c: redo everything so we maintain 14109 message->header as the only copy of the various fields. 14110 This avoids the possibility of out-of-memory in some cases, 14111 for example dbus_message_lock() can't run out of memory anymore, 14112 and avoids extra copying. Figured I may as well go ahead and do 14113 this since it was busted for dbus_message_lock to not return 14114 failure on OOM, and dbus_message_write_header was totally 14115 unchecked for OOM. Also fixed some random other bugs. 14116 14117 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify 14118 that strings are nul-terminated. Also, end_pos can be equal 14119 to string length just not greater than, I think. 14120 (_dbus_marshal_set_int32): new function 14121 (_dbus_marshal_set_uint32): new function 14122 (_dbus_marshal_set_string): new function 14123 14124 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix 14125 a warning, init timeout_list to NULL 14126 (dbus_connection_send_message): don't use uninitialized variable 14127 "serial" 14128 14129 * dbus/dbus-string.c (_dbus_string_replace_len): new function 14130 14131 2003-01-26 Anders Carlsson <andersca (a] codefactory.se> 14132 14133 * bus/driver.c: (bus_driver_handle_hello), 14134 (bus_driver_send_welcome_message): 14135 Plug leaks 14136 14137 2003-01-26 Anders Carlsson <andersca (a] codefactory.se> 14138 14139 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref): 14140 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), 14141 (dbus_connection_unref): 14142 * dbus/dbus-marshal.c: (_dbus_marshal_test): 14143 * dbus/dbus-message.c: (dbus_message_unref), 14144 Plug memory leaks. 14145 14146 (dbus_message_get_fields): 14147 Remove debugging printout. 14148 14149 (_dbus_message_loader_return_buffer): 14150 Don't store the header string. 14151 14152 (_dbus_message_test): 14153 Plug leaks. 14154 14155 2003-01-26 Richard Hult <rhult (a] codefactory.se> 14156 14157 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of 14158 the file descriptor list, since it can change under us. 14159 14160 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14161 14162 * glib/dbus-gmain.c: (dbus_connection_prepare), 14163 (dbus_connection_check), (dbus_connection_dispatch), (add_watch), 14164 (remove_watch), (dbus_connection_hookup_with_g_main): 14165 Rewrite the glib handling to use its own GSource instead of a 14166 GIOChannel so we can catch messages put in the queue while waiting 14167 for a reply. 14168 14169 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14170 14171 * bus/Makefile.am: 14172 * bus/connection.c: (connection_disconnect_handler), 14173 (connection_watch_callback), (bus_connection_setup): 14174 * bus/dispatch.c: (send_one_message), 14175 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler), 14176 (bus_dispatch_add_connection), (bus_dispatch_remove_connection): 14177 * bus/dispatch.h: 14178 * bus/driver.c: (bus_driver_send_service_deleted), 14179 (bus_driver_send_service_created), (bus_driver_handle_hello), 14180 (bus_driver_send_welcome_message), 14181 (bus_driver_handle_list_services), (bus_driver_remove_connection), 14182 (bus_driver_handle_message): 14183 * bus/driver.h: 14184 Refactor code, put the message dispatching in its own file. Use 14185 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client 14186 is disconnected. 14187 14188 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14189 14190 * dbus/dbus-internals.h: 14191 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently. 14192 14193 * dbus/dbus-message.c: (dbus_message_get_sender): 14194 * dbus/dbus-message.h: 14195 Implement dbus_message_get_sender. 14196 14197 * dbus/dbus-protocol.h: 14198 Add message and service defines. 14199 14200 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14201 14202 * dbus/dbus-connection.c: (dbus_connection_send_message): 14203 * dbus/dbus-message-internal.h: 14204 * dbus/dbus-message.c: (_dbus_message_get_client_serial), 14205 (dbus_message_write_header): 14206 Remove _dbus_messag_unlock and don't set the client serial on a 14207 message if one already exists. 14208 14209 2003-01-24 Havoc Pennington <hp (a] pobox.com> 14210 14211 * dbus/dbus-list.c (alloc_link): put a thread lock on the global 14212 list_pool 14213 14214 * bus/driver.c (bus_driver_handle_list_services): fix a leak 14215 on OOM 14216 14217 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14218 14219 * dbus/dbus-list.c: (alloc_link), (free_link): 14220 Use a memory pool for the links. 14221 14222 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14223 14224 * bus/connection.c: (bus_connection_foreach): 14225 * bus/connection.h: 14226 Add new bus_connection_foreach function. 14227 14228 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message): 14229 Add function that broadcasts a message to all clients. 14230 14231 (bus_driver_send_service_created), (bus_driver_handle_hello), 14232 (bus_driver_send_welcome_message), 14233 (bus_driver_handle_list_services), (bus_driver_message_handler): 14234 Implement functions that take care of listing services, and notifying 14235 clients when new services are created. 14236 14237 * bus/services.c: (bus_services_list): 14238 * bus/services.h: 14239 Add new function that returns an array of strings with the currently 14240 registered services. 14241 14242 * glib/dbus-glib.h: 14243 * glib/dbus-gmain.c: 14244 Update copyright year. 14245 14246 2003-01-25 Anders Carlsson <andersca (a] codefactory.se> 14247 14248 * dbus/dbus-connection.c: (dbus_connection_send_message): 14249 Unlock the message in case it was sent earlier. 14250 14251 (dbus_connection_send_message_with_reply_and_block): 14252 Remove the reply message from the list. 14253 14254 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): 14255 Set array_len and new_pos correctly. 14256 14257 (_dbus_marshal_test): 14258 Remove debug output. 14259 14260 * dbus/dbus-message-internal.h: 14261 * dbus/dbus-message.c: (_dbus_message_get_reply_serial): 14262 New function that returns the reply serial. 14263 14264 (_dbus_message_unlock): 14265 New function that unlocks a message and resets its header. 14266 14267 (dbus_message_append_string_array), 14268 (dbus_message_get_fields_valist), 14269 (dbus_message_iter_get_field_type), 14270 (dbus_message_iter_get_string_array), 14271 (dbus_message_get_fields), 14272 (dbus_message_append_fields_valist): 14273 Handle string arrays. 14274 14275 (dbus_message_set_sender): 14276 Make this function public since the bus daemon needs it. 14277 14278 (decode_header_data): 14279 Set the reply serial to -1 initially. 14280 14281 * dbus/dbus-message.h: 14282 Add dbus_message_set_sender. 14283 14284 2003-01-24 Havoc Pennington <hp (a] pobox.com> 14285 14286 * doc/dbus-specification.sgml: add some stuff 14287 14288 2003-01-22 Havoc Pennington <hp (a] pobox.com> 14289 14290 * doc/dbus-specification.sgml: Start to document the protocol. 14291 14292 2003-01-22 Havoc Pennington <hp (a] pobox.com> 14293 14294 * dbus/dbus-connection.c 14295 (dbus_connection_send_message_with_reply_and_block): add some @todo 14296 14297 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak 14298 14299 2003-01-21 Havoc Pennington <hp (a] pobox.com> 14300 14301 (patch untested because can't compile) 14302 14303 * bus/driver.c (create_unique_client_name): make this function 14304 never recycle client names. Also, caller should initialize 14305 the DBusString. 14306 14307 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function 14308 14309 2003-01-21 Anders Carlsson <andersca (a] codefactory.se> 14310 14311 * dbus/dbus-marshal.c: (_dbus_marshal_double), 14312 (_dbus_marshal_int32), (_dbus_marshal_uint32), 14313 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array), 14314 (_dbus_marshal_double_array), (_dbus_marshal_string_array), 14315 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), 14316 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), 14317 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test): 14318 * dbus/dbus-marshal.h: 14319 * dbus/dbus-protocol.h: 14320 Add support for marshalling and demarshalling integer, double 14321 and string arrays. 14322 14323 2003-01-21 Anders Carlsson <andersca (a] codefactory.se> 14324 14325 * bus/Makefile.am: 14326 Add driver.[ch] 14327 14328 * bus/connection.c: (connection_disconnect_handler): 14329 Remove the connection from the bus driver's list. 14330 14331 (connection_watch_callback): Dispatch messages. 14332 14333 (free_connection_data): Free connection name. 14334 14335 (bus_connection_setup): Add connection to the bus driver's list. 14336 (bus_connection_remove_owned_service): 14337 (bus_connection_set_name), (bus_connection_get_name): 14338 Add functions for setting and getting the connection's name. 14339 14340 * bus/connection.h: 14341 Add function headers. 14342 14343 * bus/driver.c: (create_unique_client_name), 14344 (bus_driver_handle_hello_message), 14345 (bus_driver_send_welcome_message), (bus_driver_message_handler), 14346 (bus_driver_add_connection), (bus_driver_remove_connection): 14347 * bus/driver.h: 14348 * bus/main.c: 14349 * bus/services.c: (bus_service_free): 14350 * bus/services.h: 14351 New file that handles communication and registreation with the bus 14352 itself. 14353 14354 2003-01-21 Anders Carlsson <andersca (a] codefactory.se> 14355 14356 * dbus/dbus-connection.c: (dbus_connection_send_message): 14357 Add a new client_serial parameter. 14358 14359 (dbus_connection_send_message_with_reply): 14360 Remove a @todo since we've implemented the blocking function. 14361 14362 (dbus_connection_send_message_with_reply_and_block): 14363 New function that sends a message and waits for a reply and 14364 then returns the reply. 14365 14366 * dbus/dbus-connection.h: 14367 Add new functions. 14368 14369 * dbus/dbus-errors.c: (dbus_result_to_string): 14370 * dbus/dbus-errors.h: 14371 Add new DBUS_RESULT. 14372 14373 * dbus/dbus-message-internal.h: 14374 * dbus/dbus-message.c: (_dbus_message_get_reply_serial), 14375 (_dbus_message_set_sender), (dbus_message_write_header), 14376 (dbus_message_new_reply), (decode_header_data), 14377 (_dbus_message_loader_return_buffer), (_dbus_message_test): 14378 * dbus/dbus-message.h: 14379 Add new functions that set the reply serial and sender. 14380 Also marshal and demarshal them correctly and add test. 14381 14382 * dbus/dbus-protocol.h: 14383 Add new DBUS_MESSAGE_TYPE_SENDER. 14384 14385 * glib/dbus-glib.h: 14386 * glib/dbus-gmain.c: (watch_callback), (free_callback_data), 14387 (add_watch), (remove_watch), (add_timeout), (remove_timeout), 14388 (dbus_connection_hookup_with_g_main): 14389 * glib/test-dbus-glib.c: (main): 14390 Rewrite to use GIOChannel and remove the GSource crack. 14391 14392 * test/echo-client.c: (main): 14393 * test/watch.c: (check_messages): 14394 Update for changed APIs 14395 14396 2003-01-19 Anders Carlsson <andersca (a] codefactory.se> 14397 14398 * dbus/Makefile.am: Add dbus-timeout.[c] 14399 14400 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport): 14401 Create a DBusTimeoutList. 14402 (dbus_connection_set_timeout_functions): Add new function to 14403 set timeout callbacks 14404 14405 * dbus/dbus-connection.h: Add public DBusTimeout API. 14406 14407 * dbus/dbus-message.c: (dbus_message_get_service): 14408 * dbus/dbus-message.h: New function. 14409 14410 * dbus/dbus-server.c: Fix small doc typo. 14411 14412 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts. 14413 14414 2003-01-19 Anders Carlsson <andersca (a] codefactory.se> 14415 14416 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all 14417 of the string, just as long as specified. 14418 14419 2003-01-19 Havoc Pennington <hp (a] pobox.com> 14420 14421 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated): 14422 new function 14423 14424 * dbus/dbus-server.c (dbus_server_set_max_connections) 14425 (dbus_server_get_max_connections, dbus_server_get_n_connections): 14426 keep track of current number of connections, and add API for 14427 setting a max (but haven't implemented enforcing the max yet) 14428 14429 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14430 14431 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the 14432 reading/writing if read_watch != NULL or write_watch != NULL. 14433 14434 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix 14435 the message loader code to actually load message->header and 14436 message->body into the newly-created message. 14437 14438 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak 14439 in OOM case 14440 14441 * dbus/dbus-connection.c (dbus_connection_set_max_message_size) 14442 (dbus_connection_get_max_message_size) 14443 (dbus_connection_set_max_live_messages_size) 14444 (dbus_connection_get_max_live_messages_size): implement some 14445 resource limitation functions 14446 14447 * dbus/dbus-resources.c: new file implementing some of the 14448 resource limits stuff 14449 14450 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add 14451 missing docs, add @todo to handle OOM etc. 14452 14453 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing 14454 docs 14455 14456 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14457 14458 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the 14459 connection if it hasn't been already. 14460 14461 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction, 14462 replace with DisconnectFunction. 14463 14464 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14465 14466 Building --disable-verbose-mode --disable-asserts --disable-tests 14467 cuts the library from 112K to 45K or so 14468 14469 * configure.in: check for varargs macro support, 14470 add --enable-verbose-mode, --enable-asserts. 14471 14472 * dbus/dbus-internals.h (_dbus_assert): support 14473 DBUS_DISABLE_ASSERT 14474 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE 14475 14476 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14477 14478 * dbus/dbus-test.c: include config.h so that tests actually run 14479 14480 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned, 14481 so the failure mode when that assumption fails will be plenty 14482 obvious. 14483 14484 2003-01-18 Havoc Pennington <hp (a] pobox.com> 14485 14486 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE 14487 14488 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in 14489 the distribution 14490 14491 * test/Makefile.am: don't use special variable "TESTS" for echo-* 14492 since we don't want to use those in make check 14493 14494 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14495 14496 Release 0.2 14497 14498 * NEWS: update 14499 14500 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14501 14502 * test/Makefile.am: fix so that test source code ends up in the 14503 distribution on make distcheck 14504 14505 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14506 14507 Release 0.1. 14508 14509 * NEWS: update 14510 14511 2003-01-15 Havoc Pennington <hp (a] redhat.com> 14512 14513 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests): 14514 fix build when --disable-tests 14515 14516 * Makefile.am (EXTRA_DIST): put HACKING in here 14517 14518 * HACKING: document procedure for making a tarball release. 14519 14520 2003-01-14 Anders Carlsson <andersca (a] codefactory.se> 14521 14522 * bus/connection.c: (connection_error_handler), 14523 (bus_connection_setup): 14524 * bus/main.c: (main): 14525 Make sure that the DBusConnectionData struct is NULLed 14526 out to prevent a segfault. 14527 14528 * dbus/dbus-errors.c: (dbus_result_to_string): 14529 * dbus/dbus-errors.h: 14530 * dbus/dbus-message.c: (dbus_message_get_fields), 14531 (dbus_message_get_fields_valist), (_dbus_message_test): 14532 * dbus/dbus-message.h: 14533 Make dbus_message_get_fields return a result code so we can 14534 track invalid fields as well as oom. 14535 14536 2003-01-11 Havoc Pennington <hp (a] pobox.com> 14537 14538 * configure.in: change --enable-test/--enable-ansi action-if-given 14539 to enable_foo=$enableval instead of enable_foo=yes 14540 14541 2003-01-08 Havoc Pennington <hp (a] pobox.com> 14542 14543 * dbus/dbus-string.c (_dbus_string_align_length): new function 14544 14545 * dbus/dbus-test-main.c: move main() for test app here 14546 * dbus/dbus-test.c 14547 (dbus_internal_symbol_do_not_use_run_tests): we have to export a 14548 symbol to run tests, because dbus-test isn't in the main 14549 library 14550 14551 Code review nitpicks. 14552 14553 * dbus/dbus-message.c (dbus_message_write_header): add newlines 14554 for people with narrow emacs ;-). Assert client_serial was filled 14555 in. Assert message->name != NULL. 14556 (dbus_message_append_fields): have "first_field_type" arg separate 14557 from va list, needed for C++ binding that also uses varargs IIRC 14558 and helps with type safety 14559 (dbus_message_new): add @todo about using DBusString to store 14560 service/name internally 14561 (dbus_message_new): don't leak ->service and ->name on OOM later 14562 in the function 14563 (dbus_message_unref): free the service name 14564 (dbus_message_get_fields): same change to varargs 14565 i.e. first_field_type 14566 (_dbus_message_loader_return_buffer): assert that the message data 14567 is aligned (if not it's a bug in our code). Put in verbose griping 14568 about why we set corrupted = TRUE. 14569 (decode_header_data): add FIXME that char* is evil. Was going to 14570 add FIXME about evil locale-specific string.h strncmp, but just 14571 switched to wacky string-as-uint32 optimization. Move check for 14572 "no room for field name" above get_const_data_len() to avoid 14573 assertion failure in get_const_data_len if we have trailing 2 14574 bytes or the like. Check for service and name fields being 14575 provided twice. Don't leak service/name on error. Require field 14576 names to be aligned to 4 bytes. 14577 14578 * dbus/dbus-marshal.c: move byte swap stuff to header 14579 (_dbus_pack_int32): uscore-prefix 14580 (_dbus_unpack_int32): uscore-prefix 14581 (_dbus_unpack_uint32): export 14582 (_dbus_demarshal_string): add @todo complaining about use of 14583 memcpy() 14584 (_dbus_marshal_get_field_end_pos): add @todo about bad error 14585 handling allowing corrupt data to go unchecked 14586 14587 2003-01-08 Havoc Pennington <hp (a] redhat.com> 14588 14589 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write 14590 to the select() as needed for authentication. (should be using 14591 _dbus_poll() not select, but for another day) 14592 14593 * dbus/dbus.h: include dbus/dbus-protocol.h 14594 14595 2003-01-08 Anders Carlsson <andersca (a] codefactory.se> 14596 14597 * dbus/Makefile.am (dbusinclude_HEADERS): Install 14598 dbus-connection.h 14599 14600 2003-01-08 Anders Carlsson <andersca (a] codefactory.se> 14601 14602 * dbus/dbus-internals.c: (_dbus_type_to_string): 14603 New function that returns a string describing a type. 14604 14605 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array): 14606 * dbus/dbus-marshal.h: 14607 * dbus/dbus-message.c: (dbus_message_get_fields_valist), 14608 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double), 14609 (dbus_message_iter_get_byte_array): 14610 * dbus/dbus-message.h: 14611 Add new convenience functions for appending and getting message fields. 14612 Also add demarshalling routines for byte arrays. 14613 14614 2003-01-07 Anders Carlsson <andersca (a] codefactory.se> 14615 14616 * dbus/dbus-connection-internal.h: 14617 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), 14618 (_dbus_connection_get_next_client_serial), 14619 (dbus_connection_send_message): 14620 * dbus/dbus-internals.h: 14621 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32), 14622 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32), 14623 (_dbus_marshal_uint32), (_dbus_demarshal_double), 14624 (_dbus_demarshal_int32), (_dbus_demarshal_uint32), 14625 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos), 14626 (_dbus_verbose_bytes), (_dbus_marshal_test): 14627 * dbus/dbus-marshal.h: 14628 * dbus/dbus-message-internal.h: 14629 * dbus/dbus-message.c: (_dbus_message_set_client_serial), 14630 (dbus_message_write_header), (_dbus_message_lock), 14631 (dbus_message_new), (dbus_message_ref), (dbus_message_unref), 14632 (dbus_message_get_name), (dbus_message_append_int32), 14633 (dbus_message_append_uint32), (dbus_message_append_double), 14634 (dbus_message_append_string), (dbus_message_append_byte_array), 14635 (dbus_message_get_fields_iter), (dbus_message_iter_ref), 14636 (dbus_message_iter_unref), (dbus_message_iter_has_next), 14637 (dbus_message_iter_next), (dbus_message_iter_get_field_type), 14638 (dbus_message_iter_get_string), (dbus_message_iter_get_int32), 14639 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double), 14640 (decode_header_data), (_dbus_message_loader_return_buffer), 14641 (message_iter_test), (_dbus_message_test): 14642 * dbus/dbus-message.h: 14643 * dbus/dbus-protocol.h: 14644 * dbus/dbus-test.c: (main): 14645 * dbus/dbus-test.h: 14646 * glib/test-dbus-glib.c: (message_handler), (main): 14647 * test/echo-client.c: (main): 14648 * test/watch.c: (check_messages): 14649 Make messages sendable and receivable for real. 14650 14651 2003-01-07 Anders Carlsson <andersca (a] codefactory.se> 14652 14653 * dbus/dbus-marshal.c: (_dbus_marshal_double), 14654 (_dbus_marshal_string), (_dbus_marshal_byte_array): 14655 * dbus/dbus-message.c: (dbus_message_append_int32), 14656 (dbus_message_append_uint32), (dbus_message_append_double), 14657 (dbus_message_append_string), (dbus_message_append_byte_array): 14658 Handle OOM restoration. 14659 14660 2003-01-07 Anders Carlsson <andersca (a] codefactory.se> 14661 14662 * dbus/dbus-marshal.c: (_dbus_marshal_string), 14663 (_dbus_demarshal_string), (_dbus_marshal_test): 14664 * dbus/dbus-marshal.h: 14665 * dbus/dbus-message.c: (dbus_message_get_name), 14666 Document these functions. 14667 14668 (dbus_message_append_int32), (dbus_message_append_uint32), 14669 (dbus_message_append_double), (dbus_message_append_string), 14670 (dbus_message_append_byte_array): 14671 * dbus/dbus-message.h: 14672 Add functions for adding message fields of different types. 14673 14674 * dbus/dbus-protocol.h: 14675 Add the different types. 14676 14677 2003-01-05 Havoc Pennington <hp (a] pobox.com> 14678 14679 * bus/connection.c: implement routines for handling connections, 14680 first thing is keeping a list of owned services on each connection 14681 and setting up watches etc. 14682 14683 * bus/services.c: implement a mapping from service names to lists 14684 of connections 14685 14686 * dbus/dbus-hash.c: add DBUS_HASH_POINTER 14687 14688 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions 14689 to use static mutexes for global data 14690 14691 * dbus/dbus-connection.c (dbus_connection_set_data): add new 14692 collection of functions to set/get application-specific data 14693 on the DBusConnection. 14694 14695 2003-01-04 Havoc Pennington <hp (a] pobox.com> 14696 14697 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function 14698 (_dbus_poll): new function 14699 14700 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro 14701 copied from GLib 14702 14703 * bus/loop.c: initial code for the daemon main loop 14704 14705 2003-01-04 Havoc Pennington <hp (a] pobox.com> 14706 14707 * test/watch.c (error_handler): make it safe if the error handler 14708 is called multiple times (if we s/error handler/disconnect 14709 handler/ we should just guarantee it's called only once) 14710 14711 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the 14712 error handler on disconnect (it's quite possible we should 14713 just change the error handler to a "disconnect handler," I'm 14714 not sure we have any other meaningful errors) 14715 14716 * configure.in: check for getpwnam_r 14717 14718 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, 14719 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth 14720 mechanism as in SASL spec, using socket credentials 14721 14722 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function 14723 (_dbus_send_credentials_unix_socket): new function 14724 14725 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just 14726 dbus_accept() 14727 (_dbus_write): only check errno if <0 returned 14728 (_dbus_write_two): ditto 14729 14730 2003-01-02 Anders Carlsson <andersca (a] codefactory.se> 14731 14732 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), 14733 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), 14734 (_dbus_marshal_test): 14735 * dbus/dbus-marshal.h: 14736 Add _dbus_marshal_byte_array and rename _dbus_marshal_string 14737 to _dbus_marshal_utf8_string. Also fix some tests. 14738 14739 2002-12-28 Harri Porten <porten (a] kde.org> 14740 14741 * configure.in: added check for C++ compiler and a very cheesy 14742 check for the Qt integration 14743 14744 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled 14745 14746 * qt/Makefile.am: added 14747 14748 * qt/.cvsignore: added 14749 14750 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to 14751 latter, added #ifdef QT_THREAD_SUPPORT guard. 14752 14753 * dbus/Makefile.am: added missing headers for make dist 14754 14755 2002-12-28 Kristian Rietveld <kris (a] gtk.org> 14756 14757 * dbus/Makefile.am: fixup export-symbols-regex. 14758 14759 2002-12-27 Anders Carlsson <andersca (a] codefactory.se> 14760 14761 * acinclude.m4: Add this file and put the 14762 PKG_CHECK_MODULE macro in it. 14763 14764 2002-12-27 Anders Carlsson <andersca (a] codefactory.se> 14765 14766 * dbus/dbus-marshal.c: (_dbus_marshal_string), 14767 (_dbus_demarshal_double), (_dbus_demarshal_int32), 14768 (_dbus_demarshal_uint32), (_dbus_demarshal_string), 14769 (_dbus_marshal_test): 14770 Make the demarshalling routines align the pos argument. 14771 Add string marshalling tests and fix the obvious bugs 14772 discovered. 14773 14774 2002-12-26 Havoc Pennington <hp (a] pobox.com> 14775 14776 * dbus/dbus-auth.c: fixes fixes fixes 14777 14778 * dbus/dbus-transport-unix.c: wire up support for 14779 encoding/decoding data on the wire 14780 14781 * dbus/dbus-auth.c (_dbus_auth_encode_data) 14782 (_dbus_auth_decode_data): append to target string 14783 instead of nuking it. 14784 14785 2002-12-26 Havoc Pennington <hp (a] pobox.com> 14786 14787 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef 14788 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN, 14789 doh 14790 14791 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and 14792 avoid swap_bytes() overhead (ignoring possible assembly stuff for 14793 now). Main point is because I wanted unpack_uint32 to implement 14794 _dbus_verbose_bytes 14795 (_dbus_verbose_bytes): new function 14796 14797 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function 14798 14799 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add 14800 mechanism to handle a corrupt message stream 14801 (_dbus_message_loader_new): fix preallocation to only prealloc, 14802 not prelengthen 14803 14804 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function 14805 (_dbus_string_test): enhance tests for copy/move and fix the 14806 functions 14807 14808 * dbus/dbus-transport-unix.c: Hold references in more places to 14809 avoid reentrancy problems 14810 14811 * dbus/dbus-transport.c: ditto 14812 14813 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't 14814 leak reference count in no-message case 14815 14816 * test/watch.c (do_mainloop): handle adding/removing watches 14817 during iteration over the watches. Also, ref the connection/server 14818 stored on a watch, so we don't try to mangle a destroyed one. 14819 14820 * dbus/dbus-transport-unix.c (do_authentication): perform 14821 authentication 14822 14823 * dbus/dbus-auth.c (get_state): add a state 14824 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required 14825 (_dbus_auth_get_unused_bytes): append the unused bytes 14826 to the passed in string, rather than prepend 14827 14828 * dbus/dbus-transport.c (_dbus_transport_init_base): create 14829 the auth conversation DBusAuth 14830 14831 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd) 14832 (_dbus_transport_new_for_domain_socket): when creating a 14833 transport, pass in whether it's a client-side or server-side 14834 transport so we know which DBusAuth to create 14835 14836 2002-12-03 Havoc Pennington <hp (a] pobox.com> 14837 14838 * dbus/dbus-transport-unix.c (unix_finalize): finalize base 14839 _after_ finalizing the derived members 14840 (unix_connection_set): unref watch if we fail to add it 14841 14842 * dbus/dbus-connection.c (dbus_connection_unref): delete the 14843 transport first, so that the connection owned by the 14844 transport will be valid as the transport finalizes. 14845 14846 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch 14847 if necessary, and remove watches from the connection. 14848 14849 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment 14850 14851 2002-12-26 Anders Carlsson <andersca (a] codefactory.se> 14852 14853 * dbus/dbus-marshal.c: (_dbus_marshal_string), 14854 (_dbus_demarshal_double), (_dbus_demarshal_int32), 14855 (_dbus_demarshal_uint32), (_dbus_demarshal_string), 14856 (_dbus_marshal_test): 14857 * dbus/dbus-marshal.h: 14858 Add string marshal functions and have the demarshal functions 14859 return the new position. 14860 14861 2002-12-25 Havoc Pennington <hp (a] pobox.com> 14862 14863 * doc/dbus-sasl-profile.txt: docs on the authentication protocol, 14864 it is a simple protocol that just maps directly to SASL. 14865 14866 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol 14867 initial implementation, not actually used yet. 14868 14869 * dbus/dbus-string.c (_dbus_string_find): new function 14870 (_dbus_string_equal): new function 14871 (_dbus_string_base64_encode): new function 14872 (_dbus_string_base64_decode): new function 14873 14874 2002-12-25 Anders Carlsson <andersca (a] codefactory.se> 14875 14876 * dbus/Makefile.am: 14877 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double), 14878 (_dbus_marshal_int32), (_dbus_marshal_uint32), 14879 (_dbus_demarshal_double), (_dbus_demarshal_int32), 14880 (_dbus_demarshal_uint32), (_dbus_marshal_test): 14881 * dbus/dbus-marshal.h: 14882 * dbus/dbus-protocol.h: 14883 * dbus/dbus-test.c: (main): 14884 * dbus/dbus-test.h: 14885 Add un-optimized marshalling/demarshalling routines. 14886 14887 2002-12-25 Harri Porten <porten (a] kde.org> 14888 14889 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions 14890 14891 2002-12-24 Zack Rusin <zack (a] kde.org> 14892 14893 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus 14894 * qt/dbus-qt.h: skeleton with two sample implemenatation of the 14895 main loop stuff 14896 14897 2002-12-24 Havoc Pennington <hp (a] pobox.com> 14898 14899 * glib/dbus-gthread.c: fix include 14900 14901 * glib/dbus-glib.h: rename DBusMessageHandler for now. 14902 I think glib API needs to change, though, as you don't 14903 want to use DBusMessageFunction, you want to use the 14904 DBusMessageHandler object. Probably 14905 dbus_connection_open_with_g_main_loop() 14906 and dbus_connection_setup_g_main_loop() or something like that 14907 (but think of better names...) that just create a connection 14908 that has watch/timeout functions etc. already set up. 14909 14910 * dbus/dbus-connection.c 14911 (dbus_connection_send_message_with_reply): new function just to 14912 show how the message handler helps us deal with replies. 14913 14914 * dbus/dbus-list.c (_dbus_list_remove_last): new function 14915 14916 * dbus/dbus-string.c (_dbus_string_test): free a string that 14917 wasn't 14918 14919 * dbus/dbus-hash.c: use memory pools for the hash entries 14920 (rebuild_table): be more paranoid about overflow, and 14921 shrink table when we can 14922 (_dbus_hash_test): reduce number of sprintfs and write 14923 valid C89. Add tests for case where we grow and then 14924 shrink the hash table. 14925 14926 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools 14927 14928 * dbus/dbus-connection.c (dbus_connection_register_handler) 14929 (dbus_connection_unregister_handler): new functions 14930 14931 * dbus/dbus-message.c (dbus_message_get_name): new 14932 14933 * dbus/dbus-list.c: fix docs typo 14934 14935 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c: 14936 an object representing a handler for messages. 14937 14938 2002-12-16 Anders Carlsson <andersca (a] codefactory.se> 14939 14940 * glib/dbus-glib.h: 14941 * glib/dbus-gthread.c: (dbus_gthread_init): 14942 Don't use the gdbus prefix for public functions. 14943 14944 2002-12-16 Anders Carlsson <andersca (a] codefactory.se> 14945 14946 * Makefile.am: 14947 * configure.in: 14948 Add GLib checks and fixup .pc files 14949 14950 * glib/Makefile.am: 14951 * glib/dbus-glib.h: 14952 * glib/dbus-gmain.c: (gdbus_connection_prepare), 14953 (gdbus_connection_check), (gdbus_connection_dispatch), 14954 (gdbus_add_connection_watch), (gdbus_remove_connection_watch), 14955 (dbus_connection_gsource_new): 14956 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free), 14957 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init): 14958 * glib/test-dbus-glib.c: (message_handler), (main): 14959 Add GLib support. 14960 14961 2002-12-15 Harri Porten <porten (a] kde.org> 14962 14963 * autogen.sh: check for libtoolize before attempting to use it 14964 14965 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval 14966 struct. 14967 14968 * .cvsignore: ignore more stamp files 14969 14970 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error 14971 14972 * test/Makefile.am: added -I$(top_srcdir) to be able to compile 14973 without make install. 14974 14975 2002-12-15 Havoc Pennington <hp (a] pobox.com> 14976 14977 * dbus/dbus-threads.c: add thread stubs that a higher library 14978 layer can fill in. e.g. the GLib wrapper might fill them in with 14979 GThread stuff. We still need to use this thread API to 14980 thread-safe-ize the library. 14981 14982 2002-12-12 Havoc Pennington <hp (a] pobox.com> 14983 14984 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the 14985 below new interfaces and include fewer system headers. 14986 14987 * dbus/dbus-sysdeps.c (_dbus_read): new function 14988 (_dbus_write): new function 14989 (_dbus_write_two): new function 14990 (_dbus_connect_unix_socket): new function 14991 (_dbus_listen_unix_socket): new function 14992 14993 * dbus/dbus-message-internal.h: change interfaces to use 14994 DBusString 14995 14996 2002-12-11 Havoc Pennington <hp (a] pobox.com> 14997 14998 * dbus/dbus-types.h: add dbus_unichar 14999 15000 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv 15001 15002 * dbus/dbus-connection.c (dbus_connection_send_message): return 15003 TRUE on success 15004 15005 * dbus/dbus-transport.c: include dbus-watch.h 15006 15007 * dbus/dbus-connection.c: include dbus-message-internal.h 15008 15009 * HACKING: add file with coding guidelines stuff. 15010 15011 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string 15012 handling here, for security purposes (as in vsftpd). Not actually 15013 using this class yet. 15014 15015 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all 15016 system/libc usage here, as in vsftpd, for ease of auditing (and 15017 should also simplify portability). Haven't actually moved all the 15018 system/libc usage into here yet. 15019 15020 2002-11-25 Havoc Pennington <hp (a] pobox.com> 15021 15022 * dbus/dbus-internals.c (_dbus_verbose): fix to not 15023 always print the first verbose message. 15024 15025 2002-11-24 Havoc Pennington <hp (a] pobox.com> 15026 15027 * test/echo-client.c, test/echo-server.c: cheesy test 15028 clients. 15029 15030 * configure.in (AC_CHECK_FUNCS): check for writev 15031 15032 * dbus/dbus-message.c (_dbus_message_get_network_data): new 15033 function 15034 15035 * dbus/dbus-list.c (_dbus_list_foreach): new function 15036 15037 * dbus/dbus-internals.c (_dbus_verbose): new function 15038 15039 * dbus/dbus-server.c, dbus/dbus-server.h: public object 15040 representing a server that listens for connections. 15041 15042 * dbus/.cvsignore: create 15043 15044 * dbus/dbus-errors.h, dbus/dbus-errors.c: 15045 public API for reporting errors 15046 15047 * dbus/dbus-connection.h, dbus/dbus-connection.c: 15048 public object representing a connection that 15049 sends/receives messages. (Same object used for 15050 both client and server.) 15051 15052 * dbus/dbus-transport.h, dbus/dbus-transport.c: 15053 Basic abstraction for different kinds of stream 15054 that we might read/write messages from. 15055 15056 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15057 15058 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN 15059 _DBUS_INT_MAX 15060 15061 * dbus/dbus-test.c (main): add list test, and include 15062 dbus-test.h as intended 15063 15064 * dbus/dbus-hash.c (_dbus_hash_table_remove_string) 15065 (_dbus_hash_table_remove_int): return value indicates 15066 whether the entry existed to remove 15067 15068 * dbus/dbus-list.c: add linked list utility class, 15069 with docs and tests 15070 15071 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket 15072 array sometimes. 15073 15074 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15075 15076 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/ 15077 DBUS_END_DECLS to nothing, that should fix this once and for all 15078 15079 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES 15080 15081 * dbus/dbus-message.c, dbus/dbus-hash.c: 15082 add some missing @brief 15083 15084 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15085 15086 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS 15087 to avoid confusing Doxygen 15088 15089 * dbus/dbus-hash.c: @} not }@ 15090 15091 * dbus/dbus-message.c (struct DBusMessage): split out 15092 internals docs 15093 15094 2002-11-23 Havoc Pennington <hp (a] pobox.com> 15095 15096 * configure.in: pile on more warning flags if using gcc 15097 15098 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have 15099 to document static functions 15100 15101 * configure.in: add summary to end of configure so it 15102 looks nice and attractive 15103 15104 * dbus/dbus-hash.c: finish implementation and write unit 15105 tests and docs 15106 15107 * configure.in: add --enable-tests to enable unit tests 15108 15109 * dbus/dbus-test.c: test program to run unit tests 15110 for all files in dbus/*, initially runs a test for 15111 dbus-hash.c 15112 15113 * dbus/dbus-internals.h: file to hold some internal utility stuff 15114 15115 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15116 15117 * dbus/dbus-hash.c: copy in Tcl hash table, not yet 15118 "ported" away from Tcl 15119 15120 * dbus/dbus-types.h: header for types such as dbus_bool_t 15121 15122 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15123 15124 * dbus/dbus.h: fixups for doc warnings 15125 15126 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up 15127 macros 15128 (QUIET): make it quiet so we can see warnings 15129 15130 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory 15131 15132 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15133 15134 * Makefile.am: include "Doxyfile" target in all-local 15135 15136 * configure.in: generate the Doxyfile 15137 15138 * Doxyfile.in: move Doxyfile here, so we can use 15139 configure to generate a Doxyfile with the right 15140 version number etc. 15141 15142 2002-11-22 Havoc Pennington <hp (a] redhat.com> 15143 15144 * dbus/dbus-message.c: move inline docs into .c file 15145 15146 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api 15147 so all docs are under doc/ 15148 (MAN_EXTENSION): generate man pages. Use extension 15149 ".3dbus" which matches ".3qt" on my system, 15150 I guess this is OK, I don't know really. 15151 (FILE_PATTERNS): look for .c files not .h, makes sense 15152 for plain C I think 15153 15154 2002-11-22 Havoc Pennington <hp (a] pobox.com> 15155 15156 * Makefile.am (SUBDIRS): rename subdir "server" to "bus" 15157 because any app can be a server, and any app can be a client, 15158 the bus is a special kind of server. 15159 15160 Thu Nov 21 23:35:31 2002 Zack Rusin <zack (a] kde.org> 15161 15162 * Doxyfile : adding. Still needs Makefile rules to be generated 15163 automatically (just run "doxygen" in the toplevel dir for now to 15164 generate docs) 15165 15166 * dbus/dbus-message.h : Adding sample docs (javadoc since 15167 resembles gtk-doc a little more) 15168 15169 * dbus/dbus.h : Adding sample docs 15170 15171 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15172 15173 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION 15174 so we can allow ourselves to include files directly, 15175 instead of having to use dbus.h 15176 15177 * dbus/dbus.h: fill in 15178 15179 * dbus/dbus-message.h: sketch out a sample header file. 15180 Include griping if you include it directly instead of 15181 via dbus.h 15182 15183 * dbus/dbus-macros.h: new file with macros for extern "C", 15184 TRUE/FALSE, NULL, etc. 15185 15186 * doc/file-boilerplate.c: put include guards in here 15187 15188 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15189 15190 * doc/file-boilerplate.c: include both AFL and GPL boilerplate. 15191 15192 * COPYING: include the GPL as well, and license code 15193 under both AFL and GPL. 15194 15195 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15196 15197 * acconfig.h: get rid of this 15198 15199 * autogen.sh (run_configure): add --no-configure option 15200 15201 * configure.in: remove AC_ARG_PROGRAM to make 15202 autoconf complain less. add AC_PREREQ. 15203 add AC_DEFINE third arg. 15204 15205 2002-11-21 Anders Carlsson <andersca (a] codefactory.se> 15206 15207 * doc/Makefile.am: 15208 Fix references so we can distcheck. 15209 15210 2002-11-21 Havoc Pennington <hp (a] redhat.com> 15211 15212 * Initial module creation 15213 15214