1 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
3 * configure.in: use $with_init_scripts instead of $operating_system
4 to determine where to store the pid since the init scripts manipulate
5 the pid file (patch from Marcelo Ricardo Leitner
6 <marcelo dot leitner at terra dot com dot br>.
8 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
10 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
11 static DBusList *uninitialized_condvar_list to support new late
12 initialization threading model. In this model threads can be initialized
13 even after the D-Bus API has been used but still needs to be initialized
14 before the second thread has been started. Mutexes and condvar addresses
15 are stored in the two static lists and are replaced with actuall locks
16 when threads are initalized.
17 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
18 the location into the static list
19 (_dbus_mutex_free_at_location): New method for removing a mutex location
20 from the static list and freeing the mutex
21 (_dbus_condvar_new_at_location): New method for creating a conditional
22 variable and placing the location into the static list
23 (_dbus_condvar_free_at_location): New method for removing a conditional
24 variable location from the static list and freeing the conditional variable
25 (init_uninitialized_locks): Atomic method which goes through the static
26 lists of mutex and condvar location and updates them with actuall locks
27 (init_global_locks): changed to init_locks
29 * dbus/dbus-connection.c:
30 (_dbus_connection_test_get_locks): New method for tests to check connections
31 (_dbus_connection_new_for_transport): Use the new at_location mutex and
33 (dbus_connection_allocate_data_slot): Pass in the global lock address
34 to _dbus_data_slot_allocator_alloc
36 * dbus/dbus-dataslot.c:
37 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
38 instead of the mutex itself
40 * dbus/dbus-message.c:
41 (dbus_message_allocate_data_slot): Pass in the global lock address
42 to _dbus_data_slot_allocator_alloc
44 * dbus/dbus-pending-call.c:
45 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
46 to _dbus_data_slot_allocator_alloc
49 (_dbus_server_init_base): Use the new at_location mutex API
50 (dbus_server_allocate_data_slot): Pass in the global lock address
51 to _dbus_data_slot_allocator_alloc
53 * test/name-test/test-threads-init.c: New test case for late thread
56 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
58 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
59 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
60 causes compile problems when asserts are turned off
61 Keeping _dbus_warn for printing out the message so even if
62 asserts are turned off the user gets the messages that something is
65 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
67 Patches by Kjartan Maraas <kmaraas at gnome dot org>
69 * bus/services.c (bus_service_list_queued_owners):
70 Add a pointer cast to fix compiler warning
72 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
73 return a NULL instead of FALSE since the return type
74 is not expecting a boolean
76 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
77 Remove unused variable
79 * dbus/dbus-marshal-recursive-util.c (node_new):
80 return a NULL instead of FALSE since the return type
81 is not expecting a boolean
83 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
84 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
85 because we are expecting a pointer not a boolean
87 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
88 add void as the parameter so some compilers
91 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
92 _dbus_transport_new_for_tcp_socket):
93 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
94 because we are expecting a pointer not a boolean
96 * test/shell-test.c (test_command_line):
97 cast the second argument to _dbus_list_append to avoid compiler
100 * test/test-names.c (main): remove unused variable
102 * test/test-service.c (check_hello_from_self_reply):
103 Initialize echo_message and echo_reply to NULL
105 * test/test-shell-service.c (handle_echo):
106 Remove unused variable and cast the third parameter passed to
107 dbus_connection_get_object_path_data to avoid compiler warrnings
109 * test/name-test/test-names.c (clear_message_queue):
110 Remove unused function
112 * test/name-test/test-pending-call-dispatch.c:
113 Fix format string in printf
116 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
119 * test/name-test/test-names.c:
120 Remove test method dbus_bus_connection_get_unique_name because
121 we already have public method dbus_bus_get_unique_name that
122 does the exact same thing
124 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
126 * dbus/dbus-signature.c:
127 fix typos in Julio's previous patch which cause make check to fail
129 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
131 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
132 In any case it was wrong since this is a test checking to see if
133 address parsing is correct. There was no need to get the true
136 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
138 * dbus/dbus-macros.h: Revert the addition of stddef.h
139 as we should not be adding it to library headers
141 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
143 * dbus/dbus-signature.c:
144 Fix the unit tests so that they work if assertions are not enabled.
145 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
147 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
149 * tools/run-with-tmp-session-bus.sh:
150 * test/name-test/run-test.sh:
151 Remove bashisms (patch from Julio M. Merino Vidal
152 <jmmv at NetBSD dot org>)
154 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
156 * configure.in: add a version (>= 2.6.0) check for libxml2
158 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
160 * configure.in: make sure the compiler supports -Wfloat-equal
162 * bus/dir-watch-dnotify.c: move functional code after
163 variable declerations (C99 fix) (patches from Jens Granseuer
164 <jensgr at gmx dot net>
166 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
168 * dbus/dbus-macros.h:
169 add #include <stddef.h> so that Sun compilers don't complain about
172 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
174 * dbus/dbus-sysdeps.c:
175 * dbus/dbus-address.c:
178 don't hardcode tmp directory (patch from Dave Meikle
179 <dmk at davemeikle dot co dot uk>)
181 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
183 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
184 Change an assert to a detailed warning and abort.
185 When allocator->lock != mutex it indicates that the user has failed
186 to initalize threads before using the D-Bus library. This warning
187 helps the user identify the issue and fix their app.
189 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
191 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
192 with cleanups of bugs found from Coverity reports:
194 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
195 close the file on error to avoid a leak
197 * bus/expirelist.c (bus_expire_list_test):
198 Check for NULL on dbus_new0
200 * bus/activation.c (update_directory):
203 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
206 * bus/bus.c (process_config_every_time):
209 * bus/desktop-file.c (parse_key_value):
212 * bus/selinux.c (bus_selinux_id_table_insert):
215 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
217 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
220 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
222 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
225 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
227 * Doxyfile.in: fix the INPUT line so we can generate docs
228 when sourcedir != builddir (patch from Cygwin Ports maintainer
229 <yselkowitz at users dot sourceforge dot net>
231 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
233 * dbus/dbus-sysdeps.h:
234 * dbus/dbus-sysdeps.c:
235 * dbus/dbus-string.c:
236 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
237 GLib's function which does the same thing
241 * bus/dir-watch-default.c:
242 * bus/dir-watch-dnotify.c:
243 * bus/dir-watch-kqueue.c:
244 Add kqueue directory watching for freebsd and split the directory
245 watching code into seperate files per method/arch
246 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
248 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
252 * tools/dbus-launch.c:
254 allow --with-dbus-daemondir switch to be used to make the
255 daemon install to a seperate bindir like /usr/libexec
256 (patch from Brian Cameron <brian dot cameron at sun dot com)
258 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
260 * bus/Makefile.am (install-data-hook): removed the slash after
261 $(DESTDIR) so we don't get the double slash which does not work
262 in windows (patch from Andras Porjesz
263 <andras dot porjesz at siemens dot com>)
265 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
267 * dbus/dbus-sysdeps.h:
268 * dbus/dbus-sysdeps.c:
269 add _dbus_printf_length (patch from Peter Kümmel
270 <syntheticpp at gmx dot net>)
272 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
274 * dbus/dbus-internals.c: unistd.h is not used
275 (_dbus_verbose_real): only enable verbose printing
276 if DBUS_VERBOSE environment var is set to '1'
277 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
279 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
281 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
282 so we still compile on older gcc (patch from Frederic Peters
283 <fpeters at 0d dot be>
285 2006-08-04 Havoc Pennington <hp@redhat.com>
287 * configure.in: add -Wdeclaration-after-statement
289 * dbus/dbus-connection.c: change all the pending call stuff to
290 reflect the fact that pending call operations use the connection
293 * dbus/dbus-pending-call.c: add locking here
295 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
296 field const consistent with how message field is done
298 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
302 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
304 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
305 <in7y118 at public.uni-hamburg dot de> - fix invalid
306 read/write reported by valgrind
308 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
312 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
314 * dbus/dbus-connection.c:
315 (_dbus_connection_attach_pending_call_unlocked):
316 (connection_timeout_and_complete_all_pending_calls_unlocked):
317 Make sure we set timeout_added on pending calls to FALSE when
318 we remove the timeout from the connection
320 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
322 * Removed some extra bindings stuff lingering around (thanks timo)
323 * dbus-pendingcall.c (_dbus_pending_call_new):
324 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
325 when we tried to take a lock on an already locked connection
327 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
331 2006-07-17 Havoc Pennington <hp@redhat.com>
333 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
334 ints, reported by Owen Taylor
336 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
341 * dbus/dbus-marshal-validate.c:
342 Removed TODO items which were fixed or are no longer relevent
344 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
346 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
347 Remove stray files from the stripped bindings
349 2006-07-16 Havoc Pennington <hp@redhat.com>
351 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
352 Improve the error message on reply timeout
354 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
356 * Remove all bindings
358 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
360 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
361 and set pending_reply out arg to NULL is connection is disconnected
362 (connection_timeout_and_complete_all_pending_calls_unlocked): New
363 static method for cleaning up pending calls on disconnect
364 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
365 calls queued timeouts on disconnect
367 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
370 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
372 * bus/activation.[ch] (bus_activation_list_services): new function to
373 get the list of services that can be activated
375 * bus/dispatch.c: test coverage for the new bus method
378 * bus/driver.c: new bus method ListActivatableNames to get the list of
379 services that can be activated
381 * doc/dbus-specification.xml: ListActivatableNames method documentation
383 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
384 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
387 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
388 * dbus/dbus-message-factory.c:
389 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
391 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
392 * dbus/dbus-connection-internal.h:
393 * dbus/dbus-connection.c:
394 * file dbus/dbus-pending-call.c:
395 * dbus/dbus-pending-call.h:
396 Make DBusPendingCall an opaque type even to D-Bus internals
398 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
400 * dbus/dbus-connection.h: remove connection_disconnect and replace with
403 * dbus/dbus-connection.c: include dbus-bus.h
404 (_dbus_connection_read_write_dispatch): make static
406 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
408 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
410 (dbus_connection_dispatch): On disconnect unref any shared connections
412 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
413 for cleaning up shared connections on disconnect
414 (internal_bus_get): get a hard refrence to shared connections when
417 * doc/TODO: Remove items which are no longer relevent or have been fixed
418 Split 1.0 todo items with a 0.90 freeze todo list
420 2006-06-14 Ross Burton <ross@openedhand.com>
422 * glib/dbus-gobject.c:
423 Free a leaking GArray (surely not!) in dbus_g_method_return.
425 2006-06-14 Ross Burton <ross@openedhand.com>
428 * tools/dbus-monitor.c:
429 Don't use the GLib bindings in dbus-monitor (patch from Ralf
432 2006-06-14 Ross Burton <ross@openedhand.com>
434 * tools/dbus-print-message.c:
435 Also print the object path when outputting signals or method calls.
437 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
439 * qt/src/Makefile.am: install the qdbus.h header.
440 This allows people to actually use the installed code.
442 2006-06-12 Ross Burton <ross@openedhand.com>
444 * glib/dbus-gproxy.c:
445 Don't leak a GArray when firing signals (thank Rob Taylor for review).
447 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
451 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
453 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
454 break pedantic builds. Closes bug 6043 (patch approved by
455 Havoc back in February).
457 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
459 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
460 that took a QDBusMessage parameter.
461 * qt/src/qdbusbus.h: Add a default flag for RequestName.
462 * qt/tools/dbus.cpp: Don't use automatic call because we might
463 be calling an async method: request a reply.
465 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
467 * test/qt/*: Update the testcases, including testing the new
468 functionality of sending null QByteArray and QString over the
469 bus. Add new headertest test and restore the old
472 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
474 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
475 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
477 * qt/examples/Makefile.am:
478 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
481 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
482 QByteArray() (nulls) over the bus.
483 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
484 the one that has the signature suffix stripped.
485 * qt/src/qdbusreply.h: Make some methods const.
487 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
489 Patch from Timo Hoenig <thoenig@suse.de>.
491 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
492 required during build to EXTRA_DIST.
493 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
494 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
495 * configure.in: Fix "make dist", take care that the Makefile for
496 qt/dbus is being generated.
498 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
500 * bus/bus.c: Fix eavesdropping on method calls
502 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
505 * dbus/dbus-userdb-util.c:
506 Add Solaris console owner patch from Artem Kachitchkine
508 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
511 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
512 reorganisation. Thanks to Timo Hoenig for pointing this out.
514 2006-06-06 Robert McQueen <robot101@debian.org>
516 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
517 call to dbus_g_type_get_struct.
519 2006-06-06 Robert McQueen <robot101@debian.org>
521 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
522 pointers were put into a GPtrArray-based specialised collection, and
523 then freed along with the array. GValues which you add into
524 collections or maps which have the NOCOPY flag set are assumed to not
525 belong to the caller, so rather than the existing pointer-stealing
526 semantics, they are copied instead. Given that the main consumers of
527 this abstraction are the bindings themselves, I don't think this is
528 too bad, but others should watch their choice of take vs set_static.
530 2006-06-06 Robert McQueen <robot101@debian.org>
532 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
533 of g_slist_prepend not being used. Fixed copying of slist-based
534 specialised collections, then wrote a test case and found that it was
535 all broken. Went on to fix iterating and appending too. Good thing
536 nobody uses this code yet.
538 2006-06-06 Robert McQueen <robot101@debian.org>
540 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
541 the iterators use gvalue_take_ptrarray_value (the GValues themselves
542 are discarded without unsetting, so it makes no difference whether
543 we take or set_static). Remove cases for G_TYPE_POINTER because
544 there really is nothing useful we can do with them in our
545 specialised types - we *need* boxed copy/free functions at the very
548 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
550 * qt/dbus: Add directory. I had forgotten to add this
551 yesterday after the move...
553 * qt/examples/Makefile.am:
554 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
556 * qt/tools/Makefile.am:
557 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
558 Added feature to get and set properties.
559 Added validation of service, object path and interface names.
561 * qt/tools/dbusidl2cpp.cpp: Two new features:
562 1) Allow specifying both the header and the source file names,
563 by separating them with a colon.
564 2) Don't write an interface output if the -p switch wasn't
565 given, but the -a was.
567 * qt/src/*: Fix usage of Iterators and ConstIterators.
568 Fix shadowing of variables by other variables (-Wshadow).
569 Fix keyword-cleanliness in headers.
570 Fix ASCII-cast (QLatin1String, QLatin1Char).
571 Fix validation of member names.
572 Add extra checking of introspection data during XML parsing.
575 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
578 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
581 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
583 * configure.in: Make --disable-qt actually do
584 something. Patch inspired by Zack Rusin.
586 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
588 * qt/: Update to Subversion r548032.
589 This includes a big reorganisation of the files inside the
592 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
594 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
596 "Failed to connect to socket <host>:<port> <error>" instead of
597 "Failed to connect to socket <host>: <error>:<port>"
599 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
602 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
604 * qt/*: Update the QtDBus bindings up to revision 546310 in
606 This adds the dbuscpp2xml tool, that parses a C++ header and
607 outputs a D-BUS Introspection XML.
609 2006-05-21 Havoc Pennington <hp@redhat.com>
611 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
612 is not NULL when it shouldn't be. Also a couple of possible fixes
613 for #4637 though I don't understand why the bug happens, to be
614 honest... also the object constructor has an assert name != NULL
615 and the name is only currently NULL for peer-to-peer proxies that
616 I don't think anyone uses? So it should be asserting.
617 Anyway, for now at least see if we get an earlier assertion failure.
619 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
620 apparently broken code to be sure the tests fail and someone
623 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
625 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
626 and arrays when they had a single element: has_next returns
627 false, even before you read the element. So, instead, check
630 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
632 * qt/qdbusmessage.cpp:
633 * qt/qdbustypehelper_p.h:
634 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
635 the list is a const-reference
637 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
639 * Adding old doc patch that never got applied
641 * dbus/bus.c (dbus_bus_add_match): Add documentation
643 * doc/dbus-specification.xml: Add documentation for the match rules
644 and the AddMatch and RemoveMatch methods
646 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
648 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
651 * qt/dbusidl2cpp.cpp:
652 * qt/qdbusabstractadaptor.cpp:
653 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
654 sibling of the QDBusAbstractAdaptor objects instead of the
657 * qt/dbusidl2cpp.cpp:
658 * qt/qdbusabstractinterface.cpp:
659 * qt/qdbusabstractinterface.h:
660 * qt/qdbusabstractinterface_p.h:
661 * qt/qdbusinterface.cpp: Make properties in interfaces
662 actually work. The code that was generated would not compile,
663 due to moc calls to functions that did not exist. They now
666 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
670 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
671 Thanks to Brad Hards for providing the patch
673 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
675 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
678 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
680 * qt/examples/dbus.cpp: Enhance error messages and use
683 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
685 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
686 and disable the copy operators. (r533772, r534746)
688 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
690 * qt/qdbusabstractinterface.cpp:
691 * qt/qdbusabstractinterface.h: Change the default call mode to
692 not use the event loop. Add convenience call() methods that
693 take a CallMode parameter. (r534042)
695 * qt/qdbusconnection.h: Change the default call mode to not
696 use the event loop. (r534042)
698 * qt/qdbusinterface.cpp:
699 * qt/qdbusinterface.h: Add a method to tell us if the
700 interface is valid (since we don't return a null pointer
703 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
706 * qt/qdbusinternalfilters.cpp: Decouple the introspection
707 function in two so taht we get the chance to introspect
708 without having a QDBusMessage (r534102)
711 * qt/qdbusconnection.cpp:
712 * qt/qdbusconnection_p.h:
713 * qt/qdbusintegrator.cpp: Keep a list of our own names to
714 avoid a round-trip to the server when attempting to introspect
715 one of our own objects. Also make sure the filter functions
716 match the empty interface as well. (r534108)
717 Don't keep the connection names. Instead, trust the unique
718 connection name (r534111)
719 Remove event loop usage (r534112)
721 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
723 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
726 2006-04-28 Robert McQueen <robot101@debian.org>
728 * glib/dbus-gproxy.c: Fix properties so that they can be given in
729 any order, making it easier for people who inherit from this
732 2006-04-28 Robert McQueen <robot101@debian.org>
734 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
735 of memory from within pointer arrays and lists. Fixes bug #6300.
737 2006-04-28 Robert McQueen <robot101@debian.org>
739 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
740 generating struct signatures. Fixes bug #6083.
742 2006-04-28 Robert McQueen <robot101@debian.org>
744 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
745 to qdbusconnection_p.moc.
747 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
749 * README, INSTALL: Doc fixes
750 Patch from Brad Hards <bradh at frogmouth.net>
752 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
754 * qt/examples/dbus.cpp: Use the new merged-interface mode for
755 the dynamic meta object. No need to guess which interface to
758 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
760 * qt/qdbusconnection_p.h:
761 * qt/qdbusmetaobject.cpp:
762 * qt/qdbusmetaobject_p.h:
763 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
764 for the dynamic meta object. No need to guess which
766 * qt/qdbusabstractinterface_p.h:
767 * qt/qdbusconnection.cpp:
768 * qt/qdbusintegrator.cpp:
769 * qt/qdbusinterface.cpp:
770 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
771 Add a QDBusRef that looks and behaves like DCOPRef.
773 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
775 * dbus/dbus-connection.c: Interfaces are optional in method
776 calls, so don't give up if the interface parameter is NULL.
777 Patch reviewed by Havoc Pennington.
779 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
781 * qt/qdbusreply.h: Add default constructor and operator=
783 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
784 in public headers (r532952)
785 * qt/qdbusabstractinterface.cpp:
786 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
787 make it the default (r532951)
789 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
791 * dbus/dbus-connection.c: Fix asserts
792 Patch from Tim Moloney <t.moloney at verizon.net>
794 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
796 * mono/Connection.cs, mono/Message.cs: Check Target type
797 Patch from Aaron Bockover (abockover at novell.com)
799 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
801 * INSTALL: fine-tune the requirements for the Qt4 binding.
803 2006-04-16 Daniel P. Berrange <dan@berrange.com>
805 * tools/dbus-print-message.c: Added support for printing of all
806 remaining data types. Fixed logic for indentation of compound
809 2006-04-15 Daniel P. Berrange <dan@berrange.com>
811 * INSTALL: fill out content of file providing DBus specific
812 build installations, followed by generic Auto* INSTALL file
815 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
817 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
818 Patch by Stefan Eilers. (r529537)
820 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
822 * qt/qdbusinternalfilters.cpp: Don't show the parent's
825 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
827 * qt/Makefile.am: fix the dependency for
828 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
829 not in qdbusconnection.cpp.
830 Thanks to Jakub Stachowski <stachowski@hypair.net> for
833 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
835 * qt/examples/listnames.cpp:
836 * qt/examples/Makefile.am: Three ways to list the names on the
839 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
841 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
842 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
844 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
846 Merge from Subversion:
847 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
848 something that exists (r526315)
849 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
850 slots/signals (r526316)
851 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
852 also return an unknown-method error if the parameters don't
853 match for org.freedesktop.DBus.Properties. (r526842)
854 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
855 * qt/qdbusintegrator.cpp: Restore the proper order of
856 delivery: don't make method returns be delivered on priority
859 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
861 * configure.in qt/Makefile.am: add qt/examples
862 * qt/examples: Add QtDBus example programs:
863 - hello: Hello, World
864 - ping: Simple method-calling program
865 - pong: Simple object-exporting program (not using adaptors)
866 - complexping: Interactive method-calling program
867 (also gets and sets properties).
868 - complexpong: Sample program exporting methods, signals and
869 properties, using adaptors.
870 - dbus: Simple implementation of a generic method-calling
871 program, similar to 'dbus-send', but with semantics
873 - chat: Simplistic chat program, implemented using signals
874 and the system bus. Looks like IRC.
876 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
878 * configure.in: Detect QtGui (necessary for one of the
879 example programs). Note: this increases the minimum required
880 version of Qt to 4.1.3.
882 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
884 * test/qt/*: Sync with KDE Subversion revision 523647.
885 Update the testcases to the new API. Remove testcases for
886 classes that are no longer public or have been removed.
888 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
891 * dbus/qdbus.h: Sync with KDE Subversion revision
892 523647. Hopefully, this will be the last of the
893 source-incompatible changes. Documentation has been improved;
894 support for QList<basic-types> has been added; QDBusObject is
895 gone; QDBus(Abstract)Interface is now a QObject with
896 auto-generated meta-object; QDBusIntrospection is marked
897 private, since QMetaObject can be used now; lots of bugfixes.
899 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
901 Patch from Milosz Derezynski <internalerror at gmail.com>
904 Output the service directory in the configure summary
907 Add session_bus_services_dir
909 2006-03-10 Ross Burton <ross@openedhand.com>
911 * tools/dbus-print-message.c:
912 Add support for object paths and signatures.
914 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
916 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
918 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
920 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
921 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
922 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
923 * dbus/dbus-userdb.h: Add function to flush all user/group information
926 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
928 * qt/dbusidl2cpp.cpp:
929 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
930 for dcopidl2cpp, found in the KDE installations (or the more
931 modern kalyptus): generate Qt4 C++ code for the input XML
932 introspection. Currently no IDL parsing.
934 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
936 * test/qt/*: Update the self-tests.
938 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
941 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
942 represents the first feature-complete version of the Qt4
943 bindings since I took ove maintainership.
945 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
947 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
948 dir. This is C++, so we can't use the DBus ones.
950 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
952 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
953 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
955 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
957 * dbus/dbus-connection.c:
958 (_dbus_connection_block_pending_call):
959 Check to see if our data has already been read off the connection
960 by another blocking pending call before we block in poll.
961 (check_for_reply_and_update_dispatch_unlocked):
962 Code taken from _dbus_connection_block_pending_call - checks for
963 an already read reply and updates the dispatch if there is one.
965 * test/name-test/test-pending-call-dispatch.c:
966 New test for making sure we don't get stuck polling a
967 dbus connection which has no data on the socket when
968 blocking out of order on two or more pending calls.
970 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
972 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
973 make/automake don't detect that we're talking about the same
974 .lo file if I specify the full path to the source files.
976 2006-02-26 Havoc Pennington <hp@redhat.com>
978 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
980 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
981 session bus variable is unset, suggest "man dbus-launch" and "man
982 dbus-daemon" to figure out how to fix the problem
984 2006-02-25 Havoc Pennington <hp@redhat.com>
986 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
987 should make this thing use the new glib options parser
989 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
991 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
992 .lo files taking moc sources.
994 2006-02-25 Havoc Pennington <hp@redhat.com>
996 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
997 and install it as a public header
999 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1003 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1005 * proxies.py: Fix the callchain
1007 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1009 * patch from Sjoerd Simons <sjoerd at debian.org>:
1011 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
1014 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1015 call _dbus_group_info_free_allocated which causes infinite loop,
1016 correctly call _dbus_group_info_free
1018 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
1020 * qt/qdbusinterface_p.h:
1021 * qt/qdbusinterface.cpp: Use the standard
1022 org.freedesktop.DBus.Method.NoReply annotation for the "async"
1023 calls instead of creating one for us.
1025 * qt/qdbusconnection_p.h:
1026 * qt/qdbusintegrator.cpp: Remove debugging code.
1028 * qt/qdbusintegrator.cpp:
1029 * qt/qdbusmessage.cpp:
1030 * qt/qdbusmessage_p.h:
1031 * qt/qdbusmessage.h: Change the behaviour of automatic
1032 reply-sending: now a reply is always sent, unless the caller
1033 didn't request one or if the user slot has already sent one.
1035 2006-02-16 Robert McQueen <robot101@debian.org>
1037 * configure.in: Patch from Debian packages by Sjoerd Simons
1038 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1039 arguments so it's possible to build both bindings in the
1042 * qt/Makefile.am: Fix truncated value so that make dist works.
1044 2006-02-16 Robert McQueen <robot101@debian.org>
1046 * acinclude.m4, configure.in: Patch from Brad Hards
1047 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1048 improving quoting, re-ordering a few checks, and a few other
1051 2006-02-16 Robert McQueen <robot101@debian.org>
1053 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1054 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1055 assertion that the next element to read from the iter is fixed in
1056 size. This is not the case when you are at the end of the iter,
1057 because the next element type is INVALID.
1059 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1060 a bogus assert which means that you may not initialise a 0-length
1061 string unless you provide a non-NULL pointer. This prevented
1062 you from marshalling messages containing zero-length arrays in
1065 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1066 from Rob to correct bogus asserts when trying to demarshal an
1067 array and get_fixed_array got you 0 elements. Append nothing to
1068 the GArray in this case.
1070 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1071 an empty array via the glib bindings. Without all of the above
1072 patches, this new test fails.
1074 2006-02-16 Robert McQueen <robot101@debian.org>
1076 * glib/dbus-gmain.c: Make the previous commit compile.
1078 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1079 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1080 specify sender_keyword="foo", path_keyword="bar" when adding
1081 a signal listener, so that you can bind to signals generically
1082 but still do something useful in your callback.
1084 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1085 chars so that they're not cast to chars and made negative. Thanks
1086 to Jakub Stachowski for reporting this and testing the fix.
1088 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
1091 * glib/dbus-gmain.h:
1092 (dbus_g_connection_open): new method for openning
1093 a connection to an arbitrary address in the glib bindings
1095 * ChangeLog: checkin last entry which doesn't seem to be commited
1097 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
1099 * tools/dbus-launch.c: Fixed sh syntax output
1101 2006-02-13 Robert McQueen <robot101@debian.org>
1103 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1104 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1105 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1106 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1107 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1108 missing piece of the glib bindings jigsaw puzzle. This modifies
1109 the existing specialised types to have N type parameters (rather
1110 than the current 1 or 2 for arrays and dictionaries respectively).
1111 You can then use this to get a glib type to represent any arbitrary
1112 D-Bus struct type using dbus_g_type_get_struct. The only
1113 implementation of these types is with GValueArrays as before,
1114 but it's now possible to store these in arrays, emit them in
1117 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1119 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1120 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
1121 <thiago.macieira at trolltech.com>
1123 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1125 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1126 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1128 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1130 * bus/connection.c (bus_connections_expect_reply): Make
1131 pending reply limit not common to all connections (Bug #5416)
1132 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1134 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1136 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1138 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1140 * gcj/Makefile.am: point to correct jar command (Bug #4529)
1141 patch from Doug Goldstein <cardoe at gentoo.org>
1143 2006-02-09 Joe Shaw <joeshaw@novell.com>
1145 * mono/Arguments.cs: Fix a magic number in the mono bindings
1146 that doesn't work on 64 bit arches. Patch from Peter Johanson.
1148 2006-01-27 Robert McQueen <robot101@debian.org>
1150 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1151 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1152 when generating the client-side methods, instead of overloading
1153 CSymbol which broke everything horribly. My apologies.
1155 2006-01-27 Robert McQueen <robot101@debian.org>
1157 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1158 by me and Rob Taylor to add a simple_free function to D-Bus map
1159 and collection types, which allows those types which can be freed
1160 with a GDestroyNotify (such as GHashTables and GArrays, but not
1161 GPtrArrays) to be stored as the values in hashtables.
1163 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1164 Patch by Rob Taylor to add nested dicts to the glib tests to check
1165 the above code works, and appears not to leak when called repeatedly.
1167 2006-01-27 Robert McQueen <robot101@debian.org>
1169 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1170 to free a D-Bus allocated string with dbus_free () instead of
1173 2006-01-27 Iain Holmes <iain@openedhand.com>
1175 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1176 method from being called multiple times.
1178 2006-01-19 Robert McQueen <robot101@debian.org>
1180 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1181 <rob.taylor@collabora.co.uk> to add support for generating bindings
1182 to arrays that are represented as GPtrArrays rather than GArrays (ie
1183 size-variable things, such as strings, objects, structs, etc).
1185 2006-01-05 Robert McQueen <robot101@debian.org>
1187 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1188 <ricardo.kekki@movial.fi> to make it possible to inherit from
1189 DBusGProxy, by splitting the DBusGProxy struct into a public part and
1190 a private part, and moving the setting of the DBusGProxyManager into a
1191 connection property, allowing proper GObject construction.
1193 2006-01-05 Robert McQueen <robot101@debian.org>
1195 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1196 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1197 annotations when generating glib client bindings.
1199 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1201 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1203 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1205 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1207 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1209 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1211 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1213 2005-12-19 Ross Burton <ross@openedhand.com>
1215 * doc/dbus-tutorial.xml:
1216 Document the Glib client-side bindings, and list all possible annotations.
1218 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1220 * dbus/bus.c (dbus_bus_release_name): Add documentation
1222 2005-12-06 Robert McQueen <robot101@debian.org>
1224 * python/service.py: s/sucessful/successful/ so we're allocating to
1225 and reading from the same variable. Oops.
1227 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1231 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1233 * test/qt/Makefile.am: build from srcdir
1235 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1236 Note - this code is wrong and needs to be fixed by the Qt binding
1237 developers. The flags should be treated as bitfields and not enums.
1239 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1241 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1243 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
1244 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
1247 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1249 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1250 method for getting messages off the bus in the absence of a
1251 mainloop. This method is much like
1252 dbus_connection_read_write_dispatch except it does not dispatch
1253 the messages to a registered filter function. Instead it
1254 allows a developer to process messages by directly popping
1257 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1259 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
1260 the parser to continue instead of returning error
1261 (bus_desktop_file_load): Do not free parser data when
1262 parse_section_start or parse_key_value fails because it was
1263 already freed by parser_free (patch from Carlos Garcia Campos
1264 <carlosgc at gnome.org>)
1266 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1268 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1269 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1270 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1271 test/test-segfault.c, test/test-utils.c,
1272 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1273 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1274 Various cleanup of dead code and compiler warnings (patch from
1275 Kjartan Maraas <kmaraas at gnome.org>)
1277 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1279 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1280 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1282 2005-11-27 Robert McQueen <robot101@debian.org>
1284 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1285 part of the preceding one. Oops. Merge patch by Johan Hedberg
1286 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1287 on big-endian platforms.
1289 * test/python/test-client.py: Add some 16-bit integers to the test
1292 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1294 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1295 method return message for property getters
1297 2005-11-27 Robert McQueen <robot101@debian.org>
1299 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1300 with type v of an instance of dbus.Variant(foo, type='x') caused
1301 it to be boxed twice before sending over the bus.
1303 * python/dbus_bindings.pyx, python/service.py,
1304 test/python/test-client.py: Update the constants for the new
1305 request_name flags, and update comments/test cases now that queueing
1306 is the default action.
1308 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1311 - Change version to 0.60 for impending release
1312 - upped the sonames because of ABI and API breakage
1314 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1316 * configure.in: Add test/name-test/Makefile to the generated
1319 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1320 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1321 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1322 not to queue an ower if it can't be the primary owner
1324 * bus/bus.h: Add new internal BusOwner struct
1326 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1327 to bus_registry_ensure and don't set the prohibit_replacement flag
1328 since they are now set per BusOwner and not per name.
1329 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1330 that returns the list of connections in a name's connection queue
1332 * bus/services.c (struct BusService): remove prohibit_replacement field
1333 (struct BusOwner): new struct for keeping track of queued connections
1334 and their associated flags for the queue
1335 (struct BusRegistry): add a BusOwner memory pool
1336 (bus_registry_new): initialize the BusOwner memory pool
1337 (bus_registry_unref): free the BusOwner memory pool
1338 (_bus_service_find_owner_link): new internal method for
1339 searching the queue for a specific connection
1340 (bus_owner_set_flags): new method for adding setting the flags on a
1342 (bus_owner_new): new method that creates a BusOwner object from the
1343 pool and sets its flags
1344 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1345 (bus_registry_ensure): Add the flags parameter
1346 (bus_registry_acquire_service): Switch from using raw connections to
1347 using the BusOwner struct
1348 Add new state machine for dealing with the new set of flags
1349 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1350 cancel_ownership, free_ownership_cancel_data,
1351 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1352 restore_ownership, free_ownership_restore_data,
1353 add_restore_ownership_to_transaction): Switch to using BusOwner
1354 instead of raw connections
1355 (bus_service_add_owner): Add flags parameter
1356 Switch to using BusOwner instead of raw connections
1357 Add state machine for dealing with the new set of flags
1358 (bus_service_swap_owner): Swaps the first and second owners in the
1359 queue. Used to make sure proper signals are sent when a service looses
1360 or gains primary ownership. We never insert an owner at the top of the
1361 queue. Instead we insert it in the second position and then swap.
1362 (bus_service_remove_owner): Remove the owner from the queue sending
1363 out the NameLost and NameOwnerChanged signals if the we were the
1365 (bus_service_get_primary_owners_connection): New method that extracts
1366 the connection from the primary owner
1367 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1369 (bus_service_get_allow_replacement): Changed from the old
1370 bus_service_get_prohibit_replacement method. Checks the flags of the
1371 primary owner and returns if it can be replaced or not
1372 (bus_service_set_prohibit_replacement): removed
1373 (bus_service_has_owner): returns TRUE if and owner with
1374 the specified connection exists in the queue
1376 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1377 method that only compiles if tests are enabled. Allows us to get the
1378 unique name of a connection so we can check it against the queue when
1379 doing regression tests
1381 * bus/activation.c (bus_activation_send_pending_auto_activate),
1382 bus/dispatch.c (bus_dispatch),
1383 bus/driver.c (bus_driver_handle_get_service_owner,
1384 bus_driver_handle_get_connection_unix_user,
1385 bus_driver_handle_get_connection_unix_process_id,
1386 bus_driver_handle_get_connection_selinux_security_context),
1387 bus/signals.c (connection_is_primary_owner):
1388 use bus_service_get_primary_owners_connection instead of
1389 bus_service_get_primary_owner
1391 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1392 _dbus_listen_unix_socket): Calculate the length of the socket
1393 path and use that instead of using a fixed length which was
1394 causing socket names to contain many trailing Nul bytes.
1396 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1397 (dbus_g_method_get_sender): New method for extracting the sender
1398 from a DBusGMethodInvocation
1399 (dbus_g_method_return_get_reply): changed name to
1400 dbus_g_method_get_reply
1401 (dbus_g_method_return_send_reply): changed name to
1402 dbus_g_method_send reply
1404 * doc/dbus-specification.xml: New docs that describe how the new
1405 queueing system works and talks about the changes to the how
1406 we specify socket names
1408 * glib/examples/example-service.c,
1409 glib/examples/example-signal-emitter.c,
1410 glib/examples/statemachine/statemachine-server.c:
1411 Changed the RequestName flags to the new system
1413 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1414 regression test suite for testing various states of the new
1417 2005-11-15 Robert McQueen <robot101@debian.org>
1419 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1420 Taylor to add two methods, dbus_g_method_return_get_reply and
1421 dbus_g_method_return_send_reply, to allow you to get the reply
1422 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1423 and send it. The GLib bindings can't marshal a return value of
1424 something like a(s) if the array is empty - ultimately they should be
1425 made to heed the signature of the out arguments as the Python bindings
1426 now can, but this is a workable interim solution which might have
1429 2005-11-15 Robert McQueen <robot101@debian.org>
1431 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1432 method to org.freedesktop.DBus to release a bus name or give up
1433 waiting in the queue for it.
1435 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1436 dbus_bus_release_name method to send the ReleaseName method calls.
1437 Add constants for the return values to dbus/dbus-shared.h.
1439 * doc/dbus-specification.xml: Document the new ReleaseName method
1440 in the specification.
1442 * python/dbus_bindings.pyx: Add a low-level python binding for the
1443 release name method.
1445 * python/exceptions.py, python/service.py: Make freeing BusName
1446 objects release the name. Add a NameExistsException, and fix a
1447 bug with creating UnknownMethodException.
1449 * test/python/test-client.py: Add tests for freeing BusName
1450 objects causing names to be released.
1452 2005-11-14 Robert McQueen <robot101@debian.org>
1454 * python/service.py: Include the traceback in the error reply when we
1455 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1457 2005-11-14 David Zeuthen <davidz@redhat.com>
1459 Patch from Timo Hoenig <thoenig@suse.de>.
1461 * bus/bus.c: I've recently investigated why the automatic reload
1462 of configuration files does not work as expected.
1464 Currently, reloading configuration files does only work when
1465 running dbus-daemon with --nodaemon. If we are running as daemon
1466 we're hitting a dnotify bug once we fork the process.
1468 We're initializing the dnotify fds before calling fork(). Once
1469 the child process forked it does still have the fds (and they
1470 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1471 getting SIGIO as changes are made to the configuration files.
1473 The attached patch moves the initialization of the dnotify fds to
1474 process_config_postinit(). This is safe for all current code
1475 paths and solves the dnotify disfunction. If we're running
1476 dbus-daemon as daemon the fds for dnotify are now being
1477 initialized after fork() for the child process.
1479 * configure.in: The current configure.in check for dnotify probes
1480 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1481 match for 'xlinux', too. Additionally I have adapted the configure
1482 option's style to match with the others.
1484 2005-11-14 Robert McQueen <robot101@debian.org>
1486 * python/decorators.py, python/service.py: Add a new argument to the
1487 dbus.service.method decorator called sender_keyword, which if set,
1488 specifies the name of an argument which will be provided the bus
1489 name of the method caller.
1491 * test/python/test-client.py, test/python/test-service.py: Add a
1492 method and test to check the sender_keyword functionality.
1494 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1496 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1497 empty reply so blocking calls don't block forever (Patch from Sjoerd
1498 Simons <sjoerd at luon.net>)
1500 * AUTHORS: Add Robert McQueen for his work on the Python
1501 Bindings and other parts of D-Bus
1503 2005-11-07 Robert McQueen <robot101@debian.org>
1505 * python/decorators.py: Change emit_signal function to use the
1506 signature annotation of the signal when marhsalling the arguments from
1507 the service. Fix a bug where the code checking signature length
1508 against argument length referenced the wrong variable.
1510 * python/introspect_parser.py: Avoid adding the type signature of
1511 signal arguments to any methods which occur after them in the
1512 introspection data (!) by making the parser a little more careful
1513 about its current state.
1515 * python/service.py: Remove debug prints from last commit (again :D).
1517 * test/python/test-client.py, test/python/test-service.py: Add test
1518 signals with signature decorators to test the strict marshalling code
1519 gives errors at the right time. Could do with checking the signals
1520 actually get emitted too, given that the test does nothing with
1521 signals at the moment...
1523 2005-11-07 Robert McQueen <robot101@debian.org>
1525 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1526 instances to stop madness of creating new instances representing
1527 the same bus connection all the time, rendering any tracking of
1528 match rules and bus names quite meaningless. Caught a bug where
1529 the private argument to SessionBus() and friends was being passed
1530 in as use_default_mainloop by mistake. Still some problems with
1531 multiple dbus_binding.Connection instances representing the same
1532 low-level connection (eg when you use both SessionBus() and
1533 StarterBus() in same process), but it's a lot better now than it
1536 * python/dbus_bindings.pyx: Add constants with the return values
1537 for bus_request_name().
1539 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1540 and retrieve the same instances for the same name, so deletion can be
1541 done with refcounting. Also now throws some kind of error if you
1542 don't actually get the name you requested, unlike previously...
1544 * test/python/test-client.py: Add tests for instance caching of buses
1545 and bus name objects.
1547 2005-11-04 Robert McQueen <robot101@debian.org>
1549 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1550 marshalling of boolean values. Add some booleans to the values in
1553 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1554 argument to the dbus.service.method decorator, which allows you to
1555 name arguments to take two callback functions for replying with
1556 return values or an exception.
1558 * test/python/test-client.py, test/python/test-service.py: Add test
1559 case using asynchronous method reply functions, both return values and
1560 errors, and from within both the function itself and from a mainloop
1563 * python/decorators.py, python/service.py: Perform checking that the
1564 number of method/signal arguments matches the number of types in the
1565 signature at class loading time, not when you first introspect the
1568 * python/service.py: Remove debug print left by the last commit.
1570 2005-11-03 Robert McQueen <robot101@debian.org>
1572 * python/service.py: Heavy refactoring of method invocation, with
1573 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1574 in favour of a new _message_cb that uses seperate functions for
1575 looking up the method to call, marshalling the return values, and
1576 sending exceptions as errors, and is easier to follow as a
1577 consequence. Fixes some corner cases about returning things that
1578 don't match your declared out_signature, allows exceptions to define
1579 _dbus_error_name and have it be sent over the bus as the error name,
1580 and paves the way for cool stuff like heeding the message no reply
1581 flag, asynchronous method implementations, informing the method of the
1582 sender, and including backtraces in the error messages.
1584 * test/python/test-client.py: Catch and print exceptions thrown in the
1585 async callback tests, rather than passing them to the low-level
1586 bindings to be ignored in a noisy and frustrating manner.
1588 2005-11-03 Robert McQueen <robot101@debian.org>
1590 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1591 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1592 tweak others to be consistent.
1594 * test/python/test-client.py: Tweak output of testInheritance.
1596 2005-10-29 Robert McQueen <robot101@debian.org>
1598 * python/service.py: Major changes to allow multiple inheritance
1599 from classes that define D-Bus interfaces:
1601 1. Create a new Interface class which is the parent class of
1602 Object, and make the ObjectType metaclass into InterfaceType.
1604 2. Patch written with Rob Taylor to replace use of method_vtable
1605 with code that walks the class's __MRO__ (method resolution order)
1606 to behave like Python does when invoking methods and allow
1607 overriding as you'd expect. Code is quite tricky because
1608 we have to find two methods, the one to invoke which has the
1609 right name and isn't decorated with the /wrong/ interface,
1610 and the one to pick up the signatures from which is decorated
1611 with the right interface.
1613 The same caveats apply as to normal multiple inheritance -
1614 this has undefined behaviour if you try and inherit from two
1615 classes that define a method with the same name but are
1616 decorated with different interfaces. You should decorate
1617 your overriding method with the interface you want.
1619 3. Replace grungy introspection XML generation code in the metaclass
1620 with dictionaries that cope correctly with multiple inheritance
1621 and the overriding of methods. This also uses the signature
1622 decorations to provide correct introspection data, including
1623 the debut appearance of the types of your return values. :D
1625 * test/python/test-client.py, test/python/test-service.py: Add a test
1626 case to try invoking an method that overrides one inherited from a
1627 D-Bus interface class.
1629 2005-10-29 Robert McQueen <robot101@debian.org>
1631 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1632 Add checking for the end of struct character when marshalling a
1633 struct in MessageIter.append_strict.
1635 * python/examples/example-service.py,
1636 python/examples/gconf-proxy-service.py,
1637 python/examples/gconf-proxy-service2.py: Update to use gobject
1638 mainloop directly rather than appearing to depend on gtk.
1640 * python/test/test-client.py, python/test/test-server.py: Remove
1641 obsolete and broken test scripts for old bindings. We have up to date
1642 and working tests in test/python/.
1644 2005-10-29 Robert McQueen <robot101@debian.org>
1646 * python/decorators.py: Add optional arguments to the method and
1647 signal decorators to allow you to specify the signature of arguments
1648 and return values. Preserve the doc strings of signal functions in the
1649 decorated version, for pydoc and friends.
1651 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1652 parse_signature_block function with an iterable dbus.Signature()
1653 type. Fix a bug in MessageIter.append_strict where you could append
1654 anything by claiming it was a string.
1656 * python/service.py: Use the out_signature decoration on methods to
1657 marshal return values, meaning you no longer require dbus.Array()
1658 or dbus.Dictionary() to indicate the type when returning empty
1659 arrays or dictionaries. Fix a bug where exceptions which are defined
1660 in __main__ are not turned into error replies.
1662 * test/python/test-client.py, test/python/test-service.py: Add test
1663 for correct marshalling of return values according to out_signature.
1664 Fix a bug in the async call test where the error_handler is missing a
1667 2005-10-29 Robert McQueen <robot101@debian.org>
1669 * glib/Makefile.am, glib/examples/Makefile.am,
1670 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1671 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1673 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1675 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1676 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1679 2005-10-27 Ross Burton <ross@openedhand.com>
1681 * dbus/dbus-marshal-header.c:
1684 * glib/dbus-gobject.c:
1685 Stop compiler warning.
1687 2005-10-25 Ross Burton <ross@openedhand.com>
1690 * dbus/dbus-server-unix.c:
1691 * dbus/dbus-transport-unix.c:
1692 * glib/dbus-gmain.c:
1693 * glib/dbus-gobject.c:
1694 Add some const keywords.
1696 2005-10-25 Ross Burton <ross@openedhand.com>
1698 * doc/dbus-specification.xml:
1699 Document the NoReply annotation.
1701 * glib/dbus-binding-tool-glib.h:
1702 * glib/dbus-binding-tool-glib.c:
1703 Respect the NoReply annotation.
1705 2005-10-24 Robert McQueen <robot101@debian.org>
1707 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1708 derive from unicode instead of str, and encode/decode UTF-8 when
1709 marshalling/unmarshalling bus messages
1711 * python/introspect_parser.py: encode introspection data as UTF-8
1712 before passing the buffer into libxml2
1714 * test/python/test-client.py: add unicode test strings
1716 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1717 ignore generated python test files
1719 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1721 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1722 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1723 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1725 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1726 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1727 when constructing struct signatures
1729 * python/_dbus.py (Bus): handle private connections using the
1730 private keyword in the constructor. defaults to private=False
1731 (Bus::close): new method to close a connection to the bus
1733 * python/dbus_bindings.pyx (Connection::close): renamed method
1734 was previously called disconnect
1735 (bus_get): now supports getting a private connection
1737 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1738 keyword is set to True. if it is, execute the method without waiting
1740 (ProxyObject::_introspect_execute_queue): new method for executing
1741 all the pending methods that were waiting for the introspect to
1742 finish. this is called when introspect either succeeds or fails
1743 (ProxyObject::_introspect_error_handler): call queued methods
1745 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1747 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1748 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1750 * python/service.py (Object::_message_cb): handle exceptions correctly
1751 by sending them over the wire to the calling app. This makes sure
1752 the client returns immediately instead of waiting the 15 seconds to
1755 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1756 Add a test to benchmark how long it takes to introspect a service and
1757 call a method which returns a large element (pretty fast)
1759 * test/python/test-service.py (TestObject::GetComplexArray): new test
1760 method which pushes a lot of data
1762 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1764 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1765 reclaim memory outside of the loop and use del istead of just setting
1768 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1770 * python/service.py (ObjectType::_reflect_on_signal): Always close
1771 signal tag even when there are no arguments
1773 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1775 * configure.in: Set mono, mono-docs and Qt3 to default
1776 to no instead of auto when building. These bindings do not
1777 have full time maintainers and will not be supported for the
1780 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1782 patches from Michael Krivoruchko <misha at sun.com>:
1784 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1785 _dbus_connection_message_sent,
1786 _dbus_connection_send_preallocated_unlocked_no_update,
1787 _dbus_connection_pop_message_link_unlocked): handle the case when path
1788 is NULL when calling _dbus_verbose
1790 * configure.in: check for functions getpeerucred and getpeereid
1792 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1793 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1794 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1795 Patch was only tested on Solaris 10 x86 so it might be issues
1796 with other platforms (i.e. BSDs and MacOSX)
1799 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1801 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1802 instead of marshal basic so we can handle recursive types in a variant
1804 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1807 * test/glib/test-service-glib.c, test-service-glib.xml
1808 (my_object_echo_variant [EchoVariant],
1809 my_object_process_variant_of_array_of_ints123
1810 [ProcessVariantOfArrayOfInts123]):
1811 Add two test methods
1813 * python/introspect_parser.py: New module for parsing introspect
1816 * python/dbus_bindings.pyx:
1817 (various places): when throwing errors fix to use errormsg instead
1818 of message local variable because Pyrex can get confused with other
1819 message variables (initial patch by Robert McQueen
1820 <robert.mcqueen at collabora.co.uk>)
1821 (MessageIter::parse_signature_block): new method for getting the next
1822 block in a signiture.
1823 (MessageIter::append_strict): new method for appending values strictly
1824 using the passed in signature instead of guessing at the type
1825 (MessageItter:: append_dict, append_struct, append_array): use
1826 signatures to marshal children if the signature is available
1828 * python/exceptions.py (IntrospectionParserException): new exception
1830 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1831 introspected signatures if available, else we fall back to the
1832 old way of doing things.
1833 (ProxyObject::_introspect_reply_handler ): parse introspection data
1835 * python/service.py (ObjectType::_reflect_on_method): Properly
1836 terminate <method> if there are no args in the reflection data
1838 * test/python/test-client.py: add tests for talking with the GLib
1839 test server. This gives us better coverage for introspection since
1840 python to python will always generate arguments as variants. It also
1841 allows us to test the robustness of the GLib bindings and interlanguage
1845 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1847 * bus/driver.c (bus_driver_handle_introspect): Add signals
1848 to the introspect data. (patch from Daniel P. Berrange
1849 <dan at berrange.com>)
1851 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1853 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1854 _dbus_connection_run_builtin_filters): Changed these to
1855 be unlock_no_update functions and call
1856 _dbus_connection_send_unlocked_no_update instead of
1857 dbus_connection_send to avoid locking errors.
1859 * doc/TODO: Removed the make Ping test TODO
1861 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1863 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1864 We now copy the message from a DBusError and then free
1865 the error object befor throwing the error
1867 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1868 DBusBindingOutputMode enum which was causing a warning.
1869 #include <time.h> so using time_t is explicitly defined
1871 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1873 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1875 (internal_bus_get): new method that take over the heavy lifting
1876 of dbus_bus_get and adds the ability to get a private connection
1878 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1879 interface as in previous versions
1880 (dbus_bus_get_private): new method that is a wrapper to
1881 internal_bus_get to get a private connection to the bus
1884 (dbus_bus_get_private): add as a public libdbus interface
1886 - dbus-1.pc.in: output system_bus_default_address and
1887 sysconfdir variables so apps can use them when compiling
1889 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1890 * dbus/qt: New Qt bindings
1892 2005-09-12 Waldo Bastian <bastian@kde.org>
1894 * dbus/dbus-marshal-validate.c,
1895 doc/dbus-specification.xml, test/Makefile.am,
1896 test/test-names.c: allow hyphens in bus names.
1898 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1900 * test/data/auth/fallback.auth-script: we don't
1901 retry the EXTERNAL method when we know its going
1904 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1906 * dbus/dbus-connection-internal.h: rename
1907 (add|remove|toggle)_(watch|timeout) to unlocked()
1909 * dbus/dbus-connection.c: ditto.
1911 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1912 Update some callers for the renaming.
1914 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1916 * dbus/dbus-auth.c: (record_mechanisms): don't
1917 retry the first auth mechanism because we know
1918 we're just going to get rejected again.
1920 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1921 Fix thinko ... and what a nasty little bugger to
1922 track down you were ...
1924 * dbus/dbus-connection.c:
1925 (_dbus_connection_add_watch),
1926 (_dbus_connection_remove_watch): add note about
1927 these needing the connection to be locked.
1928 (_dbus_connection_get_dispatch_status_unlocked):
1929 set status to DATA_REMAINS when we queue the
1930 disconnected message.
1933 (bus_dispatch): fix warning.
1934 (check_existent_service_no_auto_start):
1935 Expect ChildSignaled error too.
1936 (check_existent_hello_from_self): fix another
1939 2005-09-08 Joe Shaw <joeshaw@novell.com>
1941 Patches from James Willcox <snorp@snorp.net>
1943 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1945 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1946 support array "out" parameters.
1948 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1949 for 16-bit int support.
1951 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1955 * Patch from Steve Grubb:
1956 - bus/activation.c (bus_activation_service_reload_test): clean up
1958 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1959 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1960 buffer overflows in the test suite. This is non critical because
1961 it can not be exploited and this code is only run when doing a
1964 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1965 - configure.in: Don't check and link against kdecore, only qt headers
1966 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1967 - gcj/org/freedesktop/dbus/Makefile.am:
1968 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1969 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1970 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1971 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1972 - tools/Makefile.am: Add platform extentions to binaries
1973 (i.e. .exe on windows)
1976 - Make it so if no suitable version of python is found we only
1977 disable building python instead of exiting the configure script
1978 - Require version 2.4 of glib for glib bindings
1979 - Up version to 0.50
1981 * python/__init__.py: Sync version with libdbus to (0,50,0)
1983 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1985 * dbus/dbus-object-tree.c (find_subtree_recurse):
1986 a couple of optimizations (bug #710):
1987 - do a binary search in the tree
1988 - insert a new child at the right place directly, no need for
1990 - do the "double alloc" thing when allocating children
1992 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1994 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1996 * python/dbus_bindings.pyx: Memory management foo
1997 (global): remove hacky _user_data_references global list
1998 (GIL_safe_cunregister_function_handler): userdata now stuffed into
1999 tuples. Unref user_data
2000 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2001 (Connection::__del__): Remove and replace with __dealloc__ method
2002 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
2003 to keep tuple from being deallocated instead of the global var hack
2004 (Connection::register_object_path): Stuff user_data into a tuple.
2005 Use Py_INCREF to keep tuple from being deallocated instead of the
2007 (Connection::register_fallback): Stuff user_data into a tuple.
2008 Use Py_INCREF to keep tuple from being deallocated instead of the
2010 (GIL_safe_pending_call_notification): Don't unref the message
2011 because it gets unreffed when going out of scope. Py_XDECREF
2013 (PendingCall::__del__): Remove and replace with __dealloc__ method
2014 (PendingCall::set_notify): ref the pending call because we will
2015 need it to stick around for when the notify callback gets called
2016 (Message::__del__): Remove and replace with __dealloc__ method
2018 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
2019 gthreads_init to match up with the dbus call
2021 * python/glib.py (init_threads): Changed to threads_init to match
2022 up with gobject.threads_init(). init_threads is kept for backwards
2023 compat but will most likely be deprecated in the future
2025 * test/python/test-client.py:
2026 - revamp to use Python's unittest functionality
2027 - add async call tests
2028 - setup threads in glib and dbus so we make sure locks are working
2030 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2032 * python/dbus_bindings.pyx
2033 (_pending_call_notification, cunregister_function_handler,
2034 cmessage_function_handler): All callback functions have been rearranged
2035 to workaround a bug in Pyrex when working with the GIL which is Python's
2036 global lock when dealing with threads. They have been split into
2037 a wrapper function (which assumes the name of the old function) and
2038 a _GIL_safe_<function name> function which contains the functionality
2039 of the old function. This ensures that Pyrex does not write code
2040 the lock is released.
2043 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2045 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2046 GIL global lock when calling back into Python
2048 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
2052 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2054 * bus/policy.c (bus_policy_allow_user): change default "user is
2055 allowed" to be "user has same uid as the bus itself"; any
2056 allow/deny rules will override.
2058 * bus/session.conf.in: don't allow all users, since now by default
2059 the user that ran the bus can connect.
2061 2005-08-26 Colin Walters <walters@verbum.org>
2063 * tools/dbus-print-message.c (print_message): Flush stdout
2064 after printing a message, so that redirecting to a file, then
2065 hitting Ctrl-C works.
2067 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
2069 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2070 (EmptyMessage): new class that subclasses Message. This is a workaround
2071 to a Pyrex bug that fails to call __del__ when the Message object goes out
2072 of scope. For some reason subclassing Message fixes this bug
2073 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2074 - s/Message(_create=0)/EmptyMessage everywhere else
2076 * test/python/test-{server|client}.py: add the python/.libs directory
2077 to the lookup path so dbus_bindings and dbus_glib_bindings don't
2078 get picked up from the system
2080 2005-08-25 Colin Walters <walters@verbum.org>
2082 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2083 to Ryan Lortie for the suggestion.
2085 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2087 * test/python: Add python regression test
2089 * configure.in: Add test/python/Makefile
2091 * test/Makefile.am: Add the python directory to SUBDIRS
2093 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2098 (Interface::connect_to_signal): propigate keywords for match on args
2099 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2101 * python/proxies.py (ProxyObject::connect_to_signal):
2102 propigate keywords for match on args
2104 * Makefile.am: point everything to pyexecdir since python borks
2107 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2111 2005-08-23 Colin Walters <walters@verbum.org>
2113 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2115 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2117 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2118 to fix some wranings. We now use dbus_bindings.DBusConnection instead
2119 of defining DBusConnection ourselves.
2121 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
2123 * python/dbus.pth: New path file to fix up problems when installing
2124 c libraries to lib64 and python files to lib.
2126 * python/Makefile.am: install dbus.pth in the correct spot
2128 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
2129 * ChangeLog: clean up my last entry a bit
2131 * doc/introspect.xsl: New stylesheet for converting introspection data
2132 into browser renderable xhtml. Contributed by Lennart Poettering.
2134 * doc/introspect.dtd: Fixups in the introspect format from Lennart
2137 * doc/dbus-tutorial.xml:
2138 - Add Colin Walter to the Authors section for authoring the GLib
2140 - Add descriptions of the new signature and type functionality
2141 in the Python complex type mapping section
2142 - Add a sidenote on the new args matching functionality in
2144 - Fixed up some of the examples to use the gobject.MainLoop
2148 (Bus::_create_args_dict): New. Converts a hash of arg matches
2149 to a more useable format
2150 (Bus::add_signal_receiver): add a **keywords parameter for catching
2151 arg match parameters
2152 (Bus::remove_signal_receiver): add a **keywords parameter for catching
2153 arg match parameters
2155 * python/matchrules.py:
2156 (MatchTree::exec_matches): Check for arg matches
2157 (SignalMatchRule::add_args_match): New method
2158 (SignalMatchRule::execute): Added args_list parameter as an optimization
2159 so we don't have to marshal the args more than once
2160 (SignalMatchRule::match_args_from_list): New method that checks to see
2161 if the rule's arg matches match an argument list. Only arguments
2162 set in the rule are checked.
2163 (SignalMatchRule::match_args_from_rule): New method that checks to see
2164 if the rule's arg matches match another rule's. All args have to match
2165 in order for this method to return true. If either rule has more args
2166 then it is not a match.
2167 (SignalMatchRule::is_match): Add args match
2168 (SignalMatchRule::repr): Add args to the final output if they exist
2170 2005-08-17 Ross Burton <ross@burtonini.com>
2172 * glib/dbus-gproxy.c:
2173 (dbus_g_proxy_call_no_reply): unref the message once sent.
2174 (dbus_g_proxy_call): protect against NULL proxy.
2176 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
2178 * python/__init__.py: Version updated (0, 43, 0)
2180 * python/dbus_bindings.pyx:
2181 - Fixed type objects to have self passed into __init__
2182 - Added the Variant type
2183 - Add the ability to specify types or signatures for Array, Variant
2185 (Connection::send_with_reply_handlers): return a PendingCall object
2186 (_pending_call_notification): handle the case when an error is returned
2187 without an error message in the body
2188 (MessageIter::get_boolean): return True or False instead of an integer
2189 (MessageIter::python_value_to_dbus_sig): add direct checking of types
2190 and add checks for objects with embeded signatures or types (Array,
2191 Variant and Dictionary)
2192 (MessageIter::append_byte): handle case when the value is a dbus.Byte
2193 (MessageIter::append_dict): handle embeded types or signatures
2194 (MessageIter::append_array): handle embeded types or signatures
2195 (MessageIter::append_variant): new method
2197 * python/proxies.py:
2198 (DeferedMethod): New. Dummy executable object used when queuing calls
2199 blocking on introspection data
2200 (ProxyMethod::__call__): add the timeout keyword for specifying longer
2201 or shorter timeouts for method calls
2202 (ProxyObject): Add first pass at an introspection state machine
2203 (ProxyObject::__init__): Add introspect keyword for turing off an on
2205 (ProxyObject::_Introspect): Internal Introspect call that bypasses
2206 the usual mechanisms for sending messages. This is to avoid a deadlock
2207 where the Intospect call would be queued waiting for the Introspect
2209 (ProxyObject::_introspect_reply_handler): New. This method is called
2210 when introspection returns with no error
2211 (ProxyObject::_introspect_error_handler): New. This method is called
2212 when introspection encounters an error
2213 (ProxyObject::__getattr__): Code to handle different introspection
2214 states. Queue async calls or block blocking calls if we are
2215 introspecting. Pass through as normal if we are not or are done with
2218 * python/service.py: Import signal and method from decorators.py
2220 * python/types.py: Add Variant type
2222 2005-08-16 Colin Walters <walters@verbum.org>
2224 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2225 DBusError message is NULL.
2227 2005-08-09 Havoc Pennington <hp@redhat.com>
2229 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2230 malloc'd copy of the name parameter
2232 2005-08-09 Havoc Pennington <hp@redhat.com>
2234 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2235 warning if the reply serial is set to 0
2237 2005-08-04 Colin Walters <walters@verbum.org>
2239 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2240 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2241 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2242 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2243 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2244 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2245 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2246 * glib/dbus-gvalue.h (dbus_g_value_types_init)
2247 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2248 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2250 Prefix name with _ to ensure they're not exported. All callers
2253 * glib/dbus-gvalue.c (typecode_to_gtype)
2254 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2255 (signature_iter_to_g_type_dict)
2256 (signature_iter_to_g_type_array)
2257 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2258 (dbus_gtypes_from_arg_signature):
2259 Move to dbus-gsignature.c.
2261 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2262 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2263 (dbus_binding_tool_output_glib_client): Ditto.
2265 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2266 and dbus-gsignature.h
2268 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2271 2005-08-03 Colin Walters <walters@verbum.org>
2273 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2274 catch any incompatible changes accidentally made.
2276 2005-08-03 Havoc Pennington <hp@redhat.com>
2278 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2279 typo, from Julien Puydt
2281 * bus/connection.c (bus_connection_disconnected): we were always
2282 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2284 2005-08-01 Colin Walters <walters@verbum.org>
2286 Patch from Joe Markus Clarke:
2288 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2291 2005-08-01 Colin Walters <walters@verbum.org>
2293 Patch from Joe Markus Clarke:
2295 * tools/dbus-send.c (main):
2297 Don't use C99 style initializers (bug #3933).
2299 2005-08-01 Colin Walters <walters@verbum.org>
2301 Patch from Joe Markus Clarke:
2303 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2304 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2305 * glib/dbus-gobject.c (write_interface):
2307 Don't use C99 style initializers (bug #3933).
2309 2005-07-31 Havoc Pennington <hp@redhat.com>
2311 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2312 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2314 2005-07-30 Havoc Pennington <hp@redhat.com>
2316 * fix a bunch of Doxygen warnings and mistakes
2318 2005-07-30 Havoc Pennington <hp@redhat.com>
2320 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2321 DBUS_BUILD_TESTS since it's now used in production code
2323 2005-07-29 Havoc Pennington <hp@redhat.com>
2325 * test/glib/test-profile.c (write_junk): initialize the junk
2326 buffer so valgrind doesn't have a breakdown
2328 2005-07-29 Havoc Pennington <hp@redhat.com>
2330 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2331 (match_rule_matches): remove unused arg
2332 (test_matching): add tests for match_rule_matches()
2334 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2335 do arg0='foo' arg5='bar' in the match rules
2336 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2338 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2340 2005-07-29 Ross Burton <ross@openedhand.com>
2342 * dbus/dbus-connection.c:
2343 Don't create a DBusCondVar which is never used.
2345 2005-07-27 Ross Burton <ross@openedhand.com>
2347 * dbus/dbus-message.c:
2348 Reduce the size of the maximum cached message to 10K.
2350 2005-07-25 Ross Burton <ross@openedhand.com>
2352 * glib/dbus-gproxy.c:
2353 Remove matches when all proxies are unregistered.
2355 2005-07-24 Colin Walters <walters@verbum.org>
2357 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2358 typedata; recursive arrays won't have it.
2360 * test/glib/test-dbus-glib.c:
2361 * test/glib/test-service-glib.c:
2362 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2364 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2366 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2367 proxies.py, service.py: Cleanup of code after running it through the
2368 pyflakes code checker mostly dealing with undefined names.
2369 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2371 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2373 * NEWS: Update to 0.35.2
2375 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2377 * python/_dbus.py: Remove import of the dbus.services
2378 module as it no longer exists (patch from Dimitur Kirov)
2380 * python/service.py (Object::__init__): Fixed typo
2381 s/name/bus_name (patch from Dimitur Kirov)
2383 * python/examples/example-signal-emitter.py: import dbus.glib
2384 to get the main loop and use glib mainloop instead of gtk so
2385 X doesn't have to be running.
2387 * python/examples/example-signal-recipient.py: import dbus.glib
2388 to get the main loop and use glib mainloop instead of gtk so
2389 X doesn't have to be running. Import the decorators module
2392 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2393 didn't pick up on but are needed to build
2395 * configure.in: upped version to 0.35.2
2397 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2398 added Colin Walters' SELinux API rename patch from head
2399 s/unix sercurity context/selinux security context/
2401 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2403 * python/Makefile.am: dbus_binding.pxd.in should be included
2404 in EXTRA_DIST not dbus_binding.pxd
2405 fix up $(srcdir) hopefully for the last time
2407 * NEWS: Update to 0.35.1
2409 2005-07-16 Colin Walters <walters@verbum.org>
2411 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2412 from bus_driver_handle_get_connection_unix_security_context. Update for
2414 (message_handlers): Update for renames.
2416 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2417 _dbus_string_init failure correctly.
2418 (bus_selinux_append_context): Convert SID to context. Append it
2420 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2423 * bus/selinux.h: Update prototype.
2425 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2426 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2428 2005-07-15 Colin Walters <walters@verbum.org>
2430 * doc/TODO: Add note about convenience wrappers.
2432 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2434 * NEWS: Update to 0.35
2436 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2438 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2439 so distcheck doesn't fail
2441 * glib/examples/Makefile.am: Add example-service.xml and
2442 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2444 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2445 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2447 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2448 compiler looks in the right places during distcheck
2450 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2452 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2455 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2457 * python/examples/example-service.py,
2458 python/examples/example-signal-emitter.py: Fixed up examples
2461 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2463 * python/__init__.py: Upped to version (0,42,0) because of
2466 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2468 * ChangeLog: fix date in last entry
2470 * configure.in, bus/system.conf.in: add the ability to configure
2471 the system bus user at compiletime with the --with-dbus-user flag
2472 (patch from Kristof Vansant)
2474 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2476 * bus/dispatch.c, test/test-service.c: Add testcase
2477 for sending messages to oneself (TODO item).
2479 * python/service.py (class Object): Swap ordering of bus_name
2480 and object_path parameters to better support inheritance.
2482 * doc/dbus-tutorial.xml: change Python docs to reflect change
2483 in parameter ordering and fix the inheritance section.
2485 * doc/TODO: remove sending message to oneself TODO item
2487 2005-07-15 Ross Burton <ross@openedhand.com>
2489 * glib/dbus-gproxy.c:
2490 Fix a leak when calling methods via the proxy.
2492 2005-07-15 Colin Walters <walters@verbum.org>
2494 * bus/selinux.c (bus_selinux_append_context): Wrap in
2497 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2499 * python/_dbus.py (Bus::remove_signal_receiver):
2500 don't add a callback to the match if none has been passed in
2502 * python/matchrules.py (SignalMatchTree::remove): if the rule
2503 being matched does not have a callback treat it as a wildcard
2506 * doc/dbus-tutorial.xml: Add Python tutorial
2508 2005-07-14 Colin Walters <walters@verbum.org>
2511 (bus_driver_handle_get_connection_unix_security_context): New function.
2512 (message_handlers): Add.
2514 * bus/selinux.c (bus_selinux_append_context): New function; appends
2515 security context to message.
2517 * bus/selinux.h: Prototype.
2519 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2521 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2523 * bus/activation.c: clean up all tabs to be 8 spaces
2524 (bus_activation_activate_service): make sure we clean up
2527 * bus/dispatch.c: clean up all tabs to be 8 spaces
2528 (check_shell_fail_service_auto_start): New function
2529 tests to make sure we get fail properly when trying to auto start a service
2530 with a faulty command line
2531 (check_shell_service_success_auto_start): New function tests to make sure
2532 auto started services get the arguments on the command line
2534 * test/test-shell-service.c: Added service for testing auto-starting with
2535 command line arguments
2537 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2538 test/data/valid-service-files/debug-shell-echo-success.service.in:
2539 Added service files for testing auto-starting with command line arguments
2541 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2543 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2545 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2547 * dbus/Makefile.am: added new files to build.
2549 * bus/activation.c (bus_activation_activate_service): support
2550 activation commands with parameters.
2552 * test/shell-test.c: added test program for the shell parsing
2555 2005-07-13 David Zeuthen <davidz@redhat.com>
2557 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2558 64 bit signed and unsigned parameters
2560 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2562 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2564 * python/service.py (class Name): renamed BusName to make it clearer
2565 what the object is for (a name on the bus)
2567 * python/examples/example-service.py,
2568 python/examples/example-signal-emitter.py: change the Name object to
2571 2005-07-12 Colin Walters <walters@verbum.org>
2573 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2575 * tools/dbus-launch.c: Include sys/select.h.
2577 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2578 * python/dbus_bindings.pyx.in: removed
2580 * python/dbus_bindings.pyx: Added.
2581 - Fixed some memleaks (patch from
2582 Sean Meiners <sean.meiners@linspireinc.com>)
2583 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2584 own pxd file (Pyrex definition)
2585 - Broke out glib dependancies into its own pyx module
2587 * python/dbus_bindings.pdx: Added.
2588 - Defines C class Connection for exporting to other modules
2590 * python/dbus_glib_bindings.pyx: Added.
2591 - New module to handle lowlevel dbus-glib mainloop integration
2593 * python/glib.py: Added.
2594 - Registers the glib mainloop when you import this module
2596 * python/services.py: Removed (renamed to service.py)
2598 * python/service.py: Added.
2599 - (class Server): renamed Name
2601 * python/__init__.py: Bump ro version (0,41,0)
2602 -don't import the decorators or service module
2603 by default. These now reside in the dbus.service namespace
2605 * python/_dbus.py (Bus::__init__): Add code run the main loop
2606 setup function on creation
2608 * python/examples/example-service.py,
2609 python/examples/example-signal-emitter.py: update examples
2611 * python/examples/gconf-proxy-service.py,
2612 python/examples/gconf-proxy-service2.py: TODO fix these up
2614 * doc/TODO: Addition
2615 - Added a Python Bindings 1.0 section
2616 - added "Add match on args or match on details to match rules"
2619 2005-07-12 Colin Walters <walters@verbum.org>
2621 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2622 (statemachine-glue.h):
2623 * glib/examples/Makefile.am (example-service-glue.h)
2624 (example-signal-emitter-glue.h):
2625 * glib/Makefile.am (dbus-glib-error-switch.h):
2626 Add libtool --mode=execute so we use the built library instead
2627 of any installed one.
2629 2005-07-11 Colin Walters <walters@verbum.org>
2631 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2632 (dbus_g_value_types_init): Remove assertion.
2633 (dbus_g_value_get_g_type, dbus_g_value_open)
2634 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2635 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2636 functions related to DBusGValue. Now we marshal/demarshal
2637 structures as GValueArray.
2638 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2640 (signature_iter_to_g_type_array): Don't call
2641 signature_iter_to_g_type_struct.
2642 (signature_iter_to_g_type_struct): Delete.
2643 (dbus_gvalue_to_signature): Delete.
2644 (dbus_gvalue_to_signature): New function with same name as other
2645 one; we can convert structures to signatures.
2646 (demarshal_valuearray): New function.
2647 (get_type_demarshaller): Use it.
2648 (demarshal_recurse): Delete.
2649 (marshal_proxy): New function.
2650 (marshal_map): Warn if we can't determine signature from type.
2651 (marshal_collection_ptrarray): Ditto.
2652 (marshal_collection_array): Ditto.
2653 (get_type_marshaller): Use marshal_valuearray.
2654 (marshal_recurse): Delete.
2655 (_dbus_gvalue_test): Add some tests.
2657 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2658 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2659 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2660 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2661 (dbus_g_value_free): Remove prototypes.
2663 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2666 * glib/examples/example-service.c:
2667 * glib/examples/example-client.c: Implement GetTuple.
2669 * test/glib/test-dbus-glib.c:
2670 * test/glib/test-service-glib.c:
2671 * test/glib/test-service-glib.xml: Add structure tests.
2673 2005-07-10 Colin Walters <walters@verbum.org>
2675 * doc/TODO: Knock off some GLib items with this patch.
2677 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2678 (_dbus_gvalue_signals_error): New functions.
2680 * glib/dbus-gvalue-utils.h: Prototype them.
2682 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2683 and change to not output const/retval flags for input args. All
2685 (invoke_object_method): Refactor to handle return values. Add
2686 some more comments in various places. Remove debug g_print.
2688 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2690 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2692 (compute_gsignature): New function; refactored from code from
2693 compute_marshaller and compute_marshaller_name. Enhance to
2694 handle return values and async ops more cleanly. Update for
2695 async ops returning NONE instead of BOOLEAN.
2696 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2697 and output appropriate string.
2698 (generate_glue): Handle return value annotation. Also don't dump
2699 constness flag for input arguments.
2701 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2702 files shared between installed library and utilities.
2703 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2704 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2705 binding tool can access gtype utility functions.
2707 * test/glib/test-service-glib.c:
2708 * test/glib/test-service-glib.xml:
2709 * test/glib/test-dbus-glib.c: Add some tests for return values.
2711 2005-07-09 Colin Walters <walters@verbum.org>
2713 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2714 argument if available, not method.
2716 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2717 (invoke_object_method): First, remove some redundant
2718 GValues (object_value, error_value) in favor of working on
2719 array directly. Second, rework constness to be less buggy.
2720 Now we iterate directly over the argument metadata instead
2721 of parallel iterating over output signature and metadata.
2723 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2725 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2726 annotation on input args.
2728 2005-07-09 Colin Walters <walters@verbum.org>
2730 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2733 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2736 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2737 (method_dir_signature_from_object_info): Handle arg_iterate change.
2738 (write_interface): Ditto.
2739 (lookup_object_info): Don't barf if format_version is > 0.
2740 (invoke_object_method): Handle arg constness.
2742 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2743 (arg_info_new): Create.
2744 (arg_info_unref): Destroy.
2745 (arg_info_get_annotations, arg_info_get_annotation)
2746 (arg_info_add_annotation): New functions.
2748 * glib/dbus-gidl.h: Prototype them.
2750 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2751 args, disallow them in properties.
2752 (parse_annotation): Handle arg annotations.
2754 * test/glib/test-service-glib.xml:
2755 * test/glib/test-service-glib.c: Update to make some methods
2758 2005-07-08 Colin Walters <walters@verbum.org>
2760 * test/glib/test-service-glib.xml:
2761 * test/glib/test-service-glib.c:
2762 * test/glib/test-dbus-glib.c: Test a{sv}.
2764 * glib/examples/statemachine/statemachine.c:
2765 * glib/examples/statemachine/statemachine-server.c:
2766 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2767 add progress bar, etc.
2769 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2770 needed anymore due to generic array/map marshalling.
2771 (dbus_g_value_types_init): Don't register basic arrays or the
2773 (dbus_gtype_from_signature_iter): Don't try to recurse into
2775 (dbus_gtype_to_signature): Check collection/map before type
2777 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2778 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2779 generic map creation/append functions instead of hash table
2781 (get_type_demarshaller): Handle maps.
2782 (demarshal_collection): Dispatch on collection type to either
2783 demarshal_collection_ptrarray or demarshal_collection_array.
2784 (get_type_marshaller): Handle maps.
2785 (marshal_collection): Dispatch collection type to either
2786 marshal_collection_ptrarray or marshal_collection_array.
2787 (_dbus_gvalue_test): New test.
2789 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2790 (hash_free_from_gtype): Use it to free GValues.
2791 (hashtable_append): New function.
2792 (ptrarray_append): Fix prototype.
2793 (slist_append): Ditto.
2794 (_dbus_gvalue_utils_test): Extend tests.
2796 * glib/dbus-gtype-specialized.c
2797 (dbus_g_type_specialized_init_append): Renamed from
2798 dbus_g_type_specialized_collection_init_append. Remove const from
2799 value, since we steal it.
2800 (dbus_g_type_specialized_map_append): New function.
2802 * glib/dbus-gtype-specialized.h: Update prototypes.
2803 Add DBusGTypeSpecializedMapAppendFunc.
2805 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2808 * glib/dbus-gtest.h: Prototype it.
2810 2005-07-08 Ross Burton <ross@openedhand.com>
2813 Add DBysGAsyncData for the async bindings.
2815 * glib/dbus-binding-tool-glib.c:
2816 Re-enable the async bindings.
2818 * test/glib/test-dbus-glib.c:
2819 Add a test for the generated async bindings.
2821 2005-07-08 Colin Walters <walters@verbum.org>
2823 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2826 2005-07-08 Colin Walters <walters@verbum.org>
2828 * tools/Makefile.am: Kill of print-introspect in favor of using
2829 dbus-send --print-reply=literal.
2831 * test/glib/test-service-glib.xml:
2832 * test/glib/test-service-glib.c (my_object_get_objs): New test
2835 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2836 (main): Test GetObjs.
2838 * glib/examples/statemachine/Makefile.am:
2839 * glib/examples/statemachine/sm-marshal.list:
2840 * glib/examples/statemachine/statemachine-client.c:
2841 * glib/examples/statemachine/statemachine-server.c:
2842 * glib/examples/statemachine/statemachine-server.xml:
2843 * glib/examples/statemachine/statemachine.c:
2844 * glib/examples/statemachine/statemachine.h:
2845 * glib/examples/statemachine/statemachine.xml:
2849 * glib/examples/example-service.c (main): Move invocation
2850 of dbus_g_object_type_install_info earlier, to emphasize it
2851 should only be done once.
2853 * glib/examples/example-signal-emitter.c (main): Ditto.
2855 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2857 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2858 (dbus_gvalue_marshal): Update prototypes.
2860 * glib/dbus-gvalue.c: Update all marshalling functions to take
2861 const GValue instead of GValue.
2862 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2864 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2866 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2867 Return a newly-allocated string.
2868 (demarshal_proxy, demarshal_object_path, demarshal_object)
2869 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2870 we get the wrong types from message.
2871 (get_type_demarshaller): New function, extracted from
2872 dbus_gvalue_demarshal.
2873 (demarshal_collection): New function, demarshals generic
2875 (dbus_gvalue_demarshal): Just invoke result of
2876 get_type_demarshaller. Throw error if we don't have one.
2877 (marshal_garray_basic): Abort on OOM.
2878 (get_type_marshaller): New function, extracted from
2879 dbus_gvalue_marshal.
2880 (collection_marshal_iterator, marshal_collection): New functions;
2881 implements generic marshalling for an iteratable specialized
2883 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2885 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2887 (ptrarray_value_from_gvalue): Ditto.
2888 (ptrarray_append, ptrarray_free): New functions.
2889 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2890 (slist_append, slist_end_append, slist_free): New functions.
2891 (dbus_g_type_specialized_builtins_init): Add append fuctions
2892 for GPtrArray and GSList. Register GSList.
2893 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2895 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2897 (dbus_g_type_specialized_collection_init_append)
2898 (dbus_g_type_specialized_collection_append)
2899 (dbus_g_type_specialized_collection_end_append): Prototype.
2900 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2903 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2904 (dbus_g_type_specialized_collection_append)
2905 (dbus_g_type_specialized_collection_end_append): New functions.
2906 (dbus_g_type_map_value_iterate): Take const GValue.
2907 (dbus_g_type_collection_value_iterate): Ditto.
2909 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2910 _dbus_gvalue_utils_test.
2912 * glib/dbus-gtest.h: Prototype it.
2914 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2915 using uninitialized owner_list.
2916 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2918 (dbus_g_proxy_end_call_internal): Update to use error set
2919 from dbus_gvalue_demarshal instead of setting it here.
2920 (dbus_g_proxy_begin_call): Move return_if_fail here.
2922 * glib/dbus-gobject.c (write_interface): Update for
2923 dbus_gtype_to_signature returning new string.
2925 * configure.in: Add glib/examples/statemachine.
2927 2005-07-08 Joe Shaw <joeshaw@novell.com>
2929 * configure.in: Add a configure option, --with-console-auth-dir
2931 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2932 new setting. Patch from Kay Sievers.
2934 2005-07-06 Colin Walters <walters@verbum.org>
2936 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2937 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2938 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2939 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2940 Delete in favor of dbus_g_proxy_begin_call and
2941 dbus_g_proxy_cancel_call.
2942 (DBusGProxyCall, DBusGProxyCallNotify): New.
2943 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2944 data, and destroy function. This replaces
2945 dbus_g_pending_call_set_notify.
2946 (dbus_g_proxy_cancel_call): Prototype.
2947 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2949 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2951 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2952 internal proxy for calls to the bus. Remove
2953 pending_nameowner_calls, now the internal proxy keeps track.
2954 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2955 pending_nameowner_calls.
2956 (got_name_owner_cb): Update prototype, and use
2957 dbus_g_proxy_end_call.
2958 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2959 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2960 favor of using internal proxy.
2961 (dbus_g_proxy_manager_unregister): Update to use
2962 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2963 (dbus_g_proxy_init): Initialize pending calls map.
2964 (dbus_g_proxy_constructor): New.
2965 (dbus_g_proxy_class_init): Add get/set property functions,
2966 constructor, and add NAME, PATH, and INTERFACE properties.
2967 (cancel_pending_call): New function.
2968 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2970 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2971 (GPendingNotifyClosure): New structure.
2972 (d_pending_call_notify, d_pending_call_free): Moved here from
2974 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2976 (manager_begin_bus_call): New internal function for talking to
2978 (dbus_g_proxy_new): Construct object using GObjet properties.
2979 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2980 Create closure of same, and insert call into map of pending calls.
2981 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2982 call. Look up pending call in current set. Remove it when we've
2984 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2985 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2986 and destroy function directly.
2987 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2988 (dbus_g_proxy_call): Invoke with NULL callback.
2989 (dbus_g_proxy_cancel_call): New function, replaces
2990 dbus_g_pending_call_cancel.
2992 * glib/dbus-gparser.c (validate_signature): Fix call to
2995 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2996 New quark for attaching metadata to GType.
2997 (info_hash): Delete.
2998 (lookup_object_info): Look up using quark.
2999 (dbus_g_object_type_install_info): Check that a type is classed,
3000 not that it's an object. Also just install type data using quark
3001 instead of using global hash.
3003 * glib/dbus-glib.c (dbus_g_pending_call_ref)
3004 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3005 (GPendingNotifyClosure): Delete.
3006 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3007 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3009 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3010 client method generation until we can fix it...
3012 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3013 (load_from_service_thread_func): Ditto.
3015 * tools/dbus-names-model.c (struct NamesModel): Hold
3017 (have_names_notify): Update prototype, use
3018 dbus_g_proxy_cancel_call.
3019 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3021 * tools/dbus-monitor.c (filter_func): Update for print_message
3024 * test/glib/test-dbus-glib.c: Add more tests for async
3025 invocations. Update many begin_call/end_call pairs to just use
3028 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
3029 allows us to dump print-introspect.c.
3031 * tools/dbus-print-message.h (print_message): Add literal argument
3032 to print_message which is intended to allow printing arguments without
3033 metadata like "string=".
3035 * tools/dbus-print-message.c (print_iter): Add literal argument.
3036 (print_message): Allow printing string messages literally.
3038 2005-07-05 Colin Walters <walters@verbum.org>
3040 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3041 Remove value refcount leak, original patch from Jorn Baayen
3042 <jorn@openedhand.com>. Also remove useless extra value in favor
3043 of prepending to value array directly.
3045 2005-07-02 Colin Walters <walters@verbum.org>
3047 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3049 2005-07-01 Colin Walters <walters@verbum.org>
3051 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3053 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3054 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3055 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3056 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3058 2005-06-30 Colin Walters <walters@verbum.org>
3060 * test/glib/test-dbus-glib.c:
3061 * test/glib/test-service-glib.c:
3062 * test/glib/test-service-glib.xml: Update tests for new error
3063 setting bits, also add async tests (patch from Ross Burton).
3065 * test/glib/Makefile.am (test_service_glib_LDADD): Add
3066 DBUS_GLIB_THREADS_LIBS.
3068 * glib/dbus-gproxy.c (get_name_owner)
3069 (dbus_g_pending_call_end_valist): Ditto.
3071 * glib/dbus-gobject.c (error_metadata): New mapping from GError
3072 domain (GQuark) to DBusGErrorInfo.
3073 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3074 quark in error_metadata. Take message interface as default
3075 error message interface.
3076 (gerror_to_dbus_error_message): Pass message interface.
3077 (dbus_set_g_error): Resurrected.
3078 (dbus_g_error_info_free): New function.
3079 (dbus_g_object_type_install_info): Use g_type_class_ref instead
3080 of _peek to actually create the object class if it hasn't been
3082 (dbus_g_error_domain_register): New function.
3084 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3086 * glib/dbus-gparser.c (validate_signature): Ditto.
3088 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3089 (dbus_g_error_domain_register): Prototype.
3091 * glib/dbus-glib.c (dbus_g_error_set): Delete.
3094 2005-06-29 Colin Walters <walters@verbum.org>
3096 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
3097 DBUS_TYPE_G_OBJECT_PATH.
3099 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3100 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3101 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
3102 (dbus_g_object_path_get_g_type): New function.
3103 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3104 to DBUS_TYPE_G_OBJECT_PATH by default.
3105 (demarshal_proxy): Remove unused name variable.
3106 (demarshal_object_path, marshal_object_path): New functions.
3107 (demarshal_proxy_array, marshal_proxy_array): Delete.
3109 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3110 DBUS_TYPE_G_OBJECT_PATH to char *.
3111 (dbus_g_type_get_lookup_function): Map builtin
3112 DBUS_TYPE_G_OBJECT_PATH.
3114 * test/glib/test-dbus-glib.c
3115 * test/glib/test-service-glib.c (my_object_objpath):
3116 Adapt tests to new object path marshalling.
3118 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
3120 * configure.in: force check for Python >= 2.4
3122 2005-06-29 Colin Walters <walters@verbum.org>
3124 Patch from Ross Burton <ross@openedhand.com>
3126 * glib/dbus-gobject.c (invoke_object_method): Unset object
3127 value in all cases, not only in async case.
3129 2005-06-29 Colin Walters <walters@verbum.org>
3131 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3132 name_call for keeping track of any outgoing GetNameOwner call.
3133 Also add for_owner and associated.
3134 (struct _DBusGProxyManager): Add owner_names, which is hash table
3135 that maps a base name to a list of names it owns (that we're
3136 interested in). Add pending_nameowner_calls which is a list of
3137 all outstanding GetNameOwner; avoids us having to iterate over
3138 every proxy. Add unassociated_proxies which keeps track of name
3139 proxies with no associated name owner.
3140 (dbus_g_proxy_manager_unref): Destroy owner_names.
3141 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3143 (find_name_in_info, name_owner_foreach)
3144 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3145 (dbus_g_proxy_manager_monitor_name_owner)
3146 (dbus_g_proxy_manager_unmonitor_name_owner)
3147 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3148 New functions; they manipulate the owner_names mapping.
3149 (got_name_owner_cb): New function.
3150 (get_name_owner): New function, extracted from
3151 dbus_g_proxy_new_for_name_owner.
3152 (dbus_g_proxy_manager_register): For now we need to keep track of
3153 all NameOwnerChanged. Also if the proxy is for a name, if we
3154 don't already know the name owner, queue a new GetNameOwner
3155 request and add it to our list of unassociated proxies. Otherwise
3157 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3158 cancel any pending GetNameOwner call, etc.
3159 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
3160 the owner_names mapping to look up the current names for the
3161 signal source, and dispatch to any proxies for that name.
3162 (dbus_g_proxy_new): Initialize new members.
3163 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3164 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3165 (dbus_g_pending_call_end_valist): New function, extracted from
3166 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
3167 but want to use the GLib infrastructure. Also note how many
3168 arguments in reply were over.
3169 (dbus_g_pending_call_end): New function, just call
3170 dbus_g_pending_call_end_valist.
3171 (dbus_g_proxy_end_call_internal): Just call
3172 dbus_g_pending_call_end_valist.
3174 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3175 of builtin marshaller for STRING_STRING_STRING.
3177 * test/glib/test-dbus-glib.c:
3178 * test/glib/test-service-glib.c:
3179 * test/glib/test-service-glib.xml:
3180 Extend tests to cover name proxies, destruction of owner proxies,
3183 * glib/examples/example-signal-recipient.c
3184 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3186 * tools/dbus-send.c (main): Print D-BUS error name in addition
3189 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
3191 * python/dbus_bindings.pyx.in (cunregister_function_handler,
3192 cmessage_function_handler): Patch from
3193 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3194 by using the Py_GILState_Ensure/Release to synchronize with the
3197 2005-06-28 Ray Strode <rstrode@redhat.com>
3199 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3200 babysitter helper process on last unref, bug #2813.
3202 2005-06-27 Colin Walters <walters@verbum.org>
3204 * test/glib/test-dbus-glib.c:
3205 * test/glib/test-service-glib.c:
3206 * test/glib/test-service-glib.xml:
3207 Test hash table signal emitting.
3209 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3210 types to their fundamental basis types, since this is what
3211 marshallers operate on. Also add an entry for VOID__BOXED.
3212 (dbus_g_object_register_marshaller_array): Convert to fundamental.
3214 2005-06-26 Havoc Pennington <hp@redhat.com>
3216 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3219 2005-06-26 Colin Walters <walters@verbum.org>
3221 * glib/dbus-glib.c (dbus_set_g_error): Delete.
3222 (dbus_g_error_set): New public function from its ashes; used by
3223 both service-side method implementation and GLib bindings
3225 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3226 (_dbus_glib_test): Add some tests.
3228 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3230 * test/glib/test-service-glib.c (my_object_throw_error): Use
3233 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3234 errors thrown by dbus_g_error_set.
3236 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3238 * glib/dbus-gparser.c (validate_signature): Ditto.
3240 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
3241 (dbus_g_proxy_end_call_internal): Ditto.
3243 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3244 converts DBUS_ERROR_x to DBUS_GERROR_x.
3245 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3247 * doc/TODO: Remove error TODO.
3249 * doc/dbus-tutorial.xml: Update with documentation about error
3252 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3253 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3254 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
3256 2005-06-22 Colin Walters <walters@verbum.org>
3258 Patch from Ross Burton <ross@openedhand.com>
3260 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3262 2005-06-20 Colin Walters <walters@verbum.org>
3264 * configure.in: Add glib/examples.
3266 * glib/Makefile.am: Add examples/
3268 * glib/examples/.cvsignore
3269 * glib/examples/Makefile.am
3270 * glib/examples/example-client.c
3271 * glib/examples/example-service.c
3272 * glib/examples/example-service.xml
3273 * glib/examples/example-signal-emitter.c
3274 * glib/examples/example-signal-emitter.xml
3275 * glib/examples/example-signal-recipient.c:
3276 New files; GLib binding examples, ported from
3279 2005-06-20 Colin Walters <walters@verbum.org>
3282 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3285 * glib/dbus-binding-tool-glib.c:
3286 * doc/dbus-tutorial.xml:
3287 * test/glib/test-dbus-glib.c: Update for rename.
3289 2005-06-20 Colin Walters <walters@verbum.org>
3291 Patch suggested by Ross Burton <ross@openedhand.com>
3293 * glib/dbus-gobject.c (export_signals): Free signal name.
3294 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3295 memory leak. Add a bit of documentation.
3296 (dbus_g_method_return_error): Free context, and note we do
3299 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3302 * glib/dbus-gobject.c:
3303 * glib/dbus-gproxy.c:
3304 * glib/dbus-gvalue.c: Predeclare structs as
3305 typedef struct _Something Something instead of
3306 typedef struct Something Something, so we can
3307 redeclare the prototypes. Other GNOME libraries
3310 2005-06-17 Colin Walters <walters@verbum.org>
3312 * tools/dbus-names-model.c (have_names_notify): Fix call
3313 to dbus_g_proxy_end_call.
3315 2005-06-17 Colin Walters <walters@verbum.org>
3317 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3318 spew warnings if we get malformed remote signals.
3320 * glib/dbus-gobject.c (propsig_iterate): New function.
3321 (lookup_object_info): New function, extracted from
3322 lookup_object_and_method.
3323 (introspect_properties, introspect_signals): Delete; these
3324 are merged into write_interface.
3325 (write_interface): Write out signals and properties here;
3326 dump the org.gtk.object stuff and use the interface given
3327 in the introspection data blob. Also fix up property XML.
3328 (lookup_values): New function.
3329 (introspect_interfaces): Gather a mapping from interface to a
3330 list of its methods, signals, and properties, then write out
3332 (lookup_object_and_method): Use lookup_object_info.
3333 (struct DBusGSignalClosure): Add interface.
3334 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3335 we can just use the constant data.
3336 (dbus_g_signal_closure_finalize): Don't free signal name.
3337 (signal_emitter_marshaller): Use interface from signal closure.
3338 (export_signals): Only export signals mentioned in introspection
3340 (dbus_g_connection_register_g_object): Warn if we have no
3341 introspection data for an object.
3342 (funcsig_equal): Remove unused variable.
3343 (dbus_g_object_register_marshaller): Take varargs instead of
3345 (dbus_g_object_register_marshaller_array): New function,
3346 extracted from old dbus_g_object_register_marshaller.
3348 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3349 signals and property data.
3350 (write_quoted_string): New function, extracted from generate_glue.
3351 (generate_glue): Write signals and properties to introspection
3354 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3355 exported_signals and exported_properties.
3356 (dbus_g_object_register_marshaller): Update prototype.
3357 (dbus_g_object_register_marshaller_array): Prototype.
3359 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3361 * test/glib/test-service-glib.c: Add new test signals and method
3364 * test/glib/test-service-glib.xml: Add some test signals.
3366 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3367 and my-object-marshal.h
3368 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3369 my-object-marshal.c.
3370 (my-object-marshal.c, my-object-marshal.h): Implement.
3372 * test/glib/.cvsignore: Update.
3374 * doc/TODO: Remove two GLib TODO items fixed by this
3377 2005-06-16 Colin Walters <walters@verbum.org>
3379 * doc/TODO: Update for GLib bindings.
3381 2005-06-16 Colin Walters <walters@verbum.org>
3383 * glib/dbus-binding-tool-glib.c:
3384 * glib/dbus-gobject.c:
3385 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3386 from Ross Burton, for his GLib bindings work.
3388 2005-06-16 Colin Walters <walters@verbum.org>
3390 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3391 to iterate instead of walking to G_TYPE_INVALID.
3393 Patch based on a patch from Ryan Gammon.
3395 2005-06-16 Colin Walters <walters@verbum.org>
3397 * bus/bus.c (bus_context_new): Set parser to NULL
3398 after we unref it (Patch from Chris Boscolo, #2174).
3400 2005-06-16 Colin Walters <walters@verbum.org>
3402 * python/dbus_bindings.pyx.in: Import size_t,
3403 __int64_t, __uint64_t, and __signed.
3405 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3406 Define cmsg struct, output it.
3407 (_dbus_read_credentials_unix_socket):
3410 Patch from Joe Markus Clarke for FreeBSD support.
3412 2005-06-16 Colin Walters <walters@verbum.org>
3414 * tools/dbus-send.c (append_array): Use strtok.
3415 (append_dict): New function.
3416 (type_from_name): New function, extracted from main.
3417 (main): Handle sending dicts.
3419 * tools/dbus-print-message.c (print_iter): Print dict
3422 2005-06-16 Colin Walters <walters@verbum.org>
3424 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3425 values as the empty string (#2948).
3427 2005-06-16 Colin Walters <walters@verbum.org>
3430 * mono/doc/Makefile.am:
3431 * test/glib/Makefile.am:
3433 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3435 2005-06-16 Colin Walters <walters@verbum.org>
3437 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3438 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3440 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3441 Increment pointer after swapping fixed array. Add assertion
3444 2005-06-15 Colin Walters <walters@verbum.org>
3446 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3447 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3449 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3451 * NEWS: Update to 0.34
3453 2005-06-15 David Zeuthen <davidz@redhat.com>
3455 * configure.in (LT_CURRENT): Revert back to 1 as the library
3456 hasn't changed and we've certainly not committed to protocol
3457 stability yet. All this does is to break ABI. See commit note
3458 from hp@redhat.com 2005-05-05 for details.
3460 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3462 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3463 (_dbus_connection_run_builtin_filters): New method
3464 (dbus_connection_dispatch): Run the builtin filters which in turn
3465 runs the peer filter which handles Ping messages.
3468 - Ping isn't handled: This patch fixes it
3470 - Add a test case for the Ping message: added TODO item
3472 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3474 * dbus/dbus-message.c:
3475 (dbus_message_has_path): New method
3476 (dbus_message_has_interface): New method
3477 (dbus_message_has_member): New method
3479 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3482 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3483 the keyring directory is private to the user
3486 - The convenience functions in dbus-bus.h should perhaps have
3487 the signatures that they would have if they were autogenerated
3488 stubs. e.g. the acquire service function. We should also evaluate
3489 which of these functions to include, in light of the fact that
3490 GLib/Qt native stubs will probably also exist.: Punted
3492 - add dbus_message_has_path(), maybe has_member/interface:
3495 - in dbus-keyring.c, enforce that the keyring dir is not
3496 world readable/writable: Fixed in this patch
3498 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3500 * dbus/dbus-marshal-validate.h: Added a new validation
3501 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3502 out of memory errors when validating signitures
3504 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3505 in places where we previously used DBUS_VALID and a FALSE return
3506 value to indicate OOM
3508 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3509 Use a stack to track the number of elements inside containers. The
3510 stack values are then used to validate that dict entries have only two
3511 elements within them.
3512 (validate_body_helper): check the reason for failure when validating
3515 * dbus/dbus-message.c (load_message): use
3516 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3517 DBUS_VALID and a FALSE return value to indicate OOM
3519 * doc/TODO: remove "- validate dict entry number of fields" as this
3522 2005-06-14 David Zeuthen <davidz@redhat.com>
3524 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3525 watches (if applicable) and add new watches
3527 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3528 (main): Setup SIGIO signal handler if using D_NOTIFY
3530 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3532 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3533 (merge_included): Also merge conf_dirs list
3534 (bus_config_parser_unref): Clear conf_dirs list
3535 (include_dir): Add directory to conf_dirs list
3536 (bus_config_parser_get_conf_dirs): New function
3538 * bus/dir-watch.[ch]: New files
3540 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3542 * configure.in: Add checks for D_NOTIFY on Linux
3544 2005-06-14 Colin Walters <walters@verbum.org>
3546 * glib/dbus-binding-tool-glib.c:
3547 * glib/dbus-gobject.c:
3548 * glib/dbus-gvalue.c: Fix indentation and brace style.
3550 2005-06-14 Ross Burton <ross@openedhand.com>.
3552 * glib/dbus-glib.h: Make DBusGMethodInvocation
3553 a private structure. Rearrange prototypes a bit.
3555 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3556 documentation for first_arg_type.
3558 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3559 here, add documentation. Move dbus_g_method_return
3560 and dbus_g_method_return_error into public API
3563 2005-06-14 Colin Walters <walters@verbum.org>
3565 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3566 Add missing return statements, noticed by Ross Burton.
3568 2005-06-13 Ross Burton <ross@openedhand.com>.
3570 * glib/dbus-gobject.c: Handle errors on message
3571 demarshalling by sending error message back.
3572 * glib/dbus-gvalue.c: Initialize return variables.
3574 2005-06-13 Colin Walters <walters@verbum.org>
3576 * glib/Makefile.am: Fix thinko in last patch.
3578 2005-06-13 Colin Walters <walters@verbum.org>
3580 * glib/Makefile.am: Move dbus-gtype-specialized.c
3581 and dbus-gtype-specialized.h into a _HEADERS variable,
3584 2005-06-12 Colin Walters <walters@verbum.org>
3586 Async signals and various bugfixes and testing by
3587 Ross Burton <ross@openedhand.com>.
3589 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3590 (dbus_gvalue_genmarshal_name_from_type)
3591 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3592 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3593 (dbus_g_value_types_init, dbus_gtype_from_signature)
3594 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3595 (dbus_gtypes_from_arg_signature): New function prototypes.
3596 (dbus_gvalue_demarshal): Take context and error arguments.
3597 (dbus_gvalue_demarshal_variant): New function.
3598 (dbus_gvalue_demarshal_message): New function.
3599 (dbus_gvalue_store): Delete.
3601 * glib/dbus-gvalue.c:
3603 File has been almost entirely rewritten; now we special-case
3604 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3605 hash tables correctly, etc. Full support for recursive values
3606 is not yet complete.
3608 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3609 argument of signal to G_TYPE_POINTER since we now pass a
3611 (lookup_g_marshaller): Delete in favor of
3612 _dbus_gobject_lookup_marshaller.
3613 (marshal_dbus_message_to_g_marshaller): Use
3614 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3615 to handle remote signal callbacks.
3616 (dbus_g_proxy_new_from_proxy): New function; creates a new
3617 DBusGProxy by copying an existing one.
3618 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3619 (dbus_g_proxy_get_path): New functions.
3620 (dbus_g_proxy_marshal_args_to_message): New function;
3621 factored out of existing code.
3622 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3623 from a varargs array.
3624 (dbus_g_proxy_begin_call_internal): New function.
3625 (dbus_g_proxy_end_call_internal): New function.
3626 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3627 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3628 after collecting args into value array.
3629 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3630 invoke dbus_g_proxy_end_call_internal.
3631 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3633 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3635 (array_free_all): New function.
3636 (dbus_g_proxy_add_signal): Take GTypes.
3638 * glib/dbus-gobject.h:
3639 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3640 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3643 * glib/dbus-gobject.c: Add a global marshal_table hash which
3644 stores mappings from type signatures to marshallers. Change lots
3645 of invocations of dbus_gtype_to_dbus_type to
3646 dbus_gtype_to_signature.
3647 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3648 (introspect_signals): Fix test for query.return_type.
3649 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3650 (invoke_object_method): Many changes. Handle asynchronous
3651 invocations. Convert arguments with
3652 dbus_gvalue_demarshal_message. Handle errors. Use
3653 DBusSignatureIter instead of strlen on args. Handle all arguments
3654 generically. Special-case variants.
3655 (dbus_g_method_return, dbus_g_method_return_error): New function.
3656 (DBusGSignalClosure): New structure, closes over signal
3658 (dbus_g_signal_closure_new): New function.
3659 (dbus_g_signal_closure_finalize): New function.
3660 (signal_emitter_marshaller): New function; is special marshaller
3661 which emits signals on bus.
3662 (export_signals): New function; introspects object signals and
3664 (dbus_g_object_type_install_info): Take GType instead of
3666 (dbus_g_connection_register_g_object): Invoke export_signals.
3667 (dbus_g_connection_lookup_g_object): New function.
3668 (DBusGFuncSignature) New structure; used for mapping type
3669 signatures to marshallers.
3670 (funcsig_hash): New function; hashes DBusGFuncSignature.
3671 (funcsig_equal): New function; compares DBusGFuncSignature.
3672 (_dbus_gobject_lookup_marshaller): New function.
3673 (dbus_g_object_register_marshaller): New function; used to
3674 register a marshaller at runtime for a particular signature.
3676 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3678 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3679 which notes a server method implementation should be
3682 * glib/dbus-binding-tool-glib.c
3683 (dbus_binding_tool_output_glib_server): Call
3684 dbus_g_value_types_init.
3685 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3687 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3688 of a lookup function.
3689 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3690 (write_untyped_out_args): New method; write output arguments.
3691 (write_formal_declarations_for_direction): Function for
3693 (write_formal_parameters_for_direction): Function for
3694 writing implementations.
3695 (write_typed_args_for_direction): Function for writing
3696 arguments prefixed with GTypes.
3697 (write_async_method_client): Write out async version
3700 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3701 (dbus_g_type_get_marshal_name): Move mapping from GType
3702 to marshal name into here.
3703 (dbus_g_type_get_c_name): Move into here.
3704 (compute_marshaller): Convert signature to type with
3705 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3706 (compute_marshaller_name): Ditto.
3707 (compute_marshaller): Handle async signal annotations.
3708 (gather_marshallers): Return if we don't have a known
3710 (generate_glue): Collect introspection blob here, and
3711 write all of the blob at the end. This allows an object
3712 with multiple interfaces to work.
3713 Mark async methods in introspection blob.
3715 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3716 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3717 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3719 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3720 avoids people accidentally using DBUS_TYPE_* which should
3721 not be necessary anymore.
3722 Do include dbus-gtype-specialized.h, which are utilities
3723 for GLib container types.
3724 Add various #defines for types such as
3725 DBUS_TYPE_G_BOOLEAN_ARRAY.
3726 (DBusGValueIterator, DBusGValue): Define, not fully used
3728 (dbus_g_value_get_g_type): Type for recursive value.
3729 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3730 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3731 (dbus_g_value_free): Prototypes.
3732 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3733 (dbus_g_proxy_set_interface): Prototype.
3734 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3735 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3737 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3739 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3740 doing async invocations.
3741 (dbus_g_method_return, dbus_g_method_return_error):
3743 * doc/dbus-tutorial.xml: Update GLib section.
3745 * tools/dbus-viewer.c (load_child_nodes): Update
3746 for new invocation type of dbus_g_proxy_end_call.
3747 (load_from_service_thread_func): Ditto.
3749 * tools/print-introspect.c (main): Ditto.
3751 * tools/dbus-names-model.c (have_names_notify)
3752 (names_model_reload, names_model_set_connection)
3755 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3756 needed since Python bindings use GLib bindings.
3758 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3759 Add --prefix argument.
3761 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3762 unneeded --ignore-unsupported arg.
3764 * test/glib/test-service-glib.c:
3765 * test/glib/test-service-glib.xml:
3766 * test/glib/test-dbus-glib.c: Add many more tests.
3768 2005-06-06 David Zeuthen <davidz@redhat.com>
3770 * doc/TODO: Add item about need to remove deprecated functions.
3772 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3774 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3775 to repair the ABI which was broken with the last commit.
3777 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3779 * dbus/dbus-connection.c, dbus/dbus-connection.h
3780 (dbus_connection_disconnect): renamed to dbus_connection_close
3781 for API symmetry with dbus_connection_open
3782 (_dbus_connection_open_internal):
3783 s/dbus_connection_disconnect/dbus_connection_close
3785 * dbus/dbus-bus.c (dbus_bus_get):
3786 s/dbus_connection_disconnect/dbus_connection_close
3788 * bus/connection.c (bus_connections_unref,
3789 bus_connections_setup_connection, bus_connections_expire_incomplete):
3790 s/dbus_connection_disconnect/dbus_connection_close
3792 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3793 kill_client_connection_unchecked, check_hello_connection):
3794 s/dbus_connection_disconnect/dbus_connection_close
3796 * bus/bus.c (new_connection_callback):
3797 s/dbus_connection_disconnect/dbus_connection_close
3799 * tools/dbus-send.c (main):
3800 s/dbus_connection_disconnect/dbus_connection_close
3802 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3803 s/dbus_connection_disconnect/dbus_connection_close
3805 * test/test-service.c (path_message_func, filter_func):
3806 s/dbus_connection_disconnect/dbus_connection_close
3808 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3810 2005-05-25 Colin Walters <walters@verbum.org>
3812 * dbus/dbus-protocol.h: Move various bus service #defines such
3813 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3815 * dbus/dbus-shared.h: Various defines moved here.
3816 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3818 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3820 * python/__init__.py: Python bindings deserve a minor version
3821 update. Upped to (0, 40, 2)
3823 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3825 * python/decorators.py: add explicitly_pass_message decorator
3826 for passing in the dbus message as keyword for edge case signal
3829 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3830 to conform with what dbus expects for match rules
3831 (SignalMatchRule.execute): add the dbus message as a keyword
3832 if the signal handler has requested it
3834 * python/examples/example/signal-recipient.py: added some more
3835 examples on how to hook up to signals
3837 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3839 * python/decorators.py: import dbus_bindings
3841 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3842 SignalMatchNode): new classes that implement wildcard signal
3843 callback matching using a tree lookup. Heavily modified from a
3844 patch sent by Celso Pinto (fd.o bug #3241)
3846 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3847 use new match classes to handle signals.
3849 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3851 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3853 2005-05-18 Havoc Pennington <hp@redhat.com>
3855 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3856 gettext. Not really worth requiring yet perhaps, but any
3857 production quality 1.0 would require it so we should go ahead and
3858 get things set up. We do have a couple token calls to
3859 bindtextdomain in the code already.
3861 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3863 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3864 when using recursive g_main_loops
3866 * python/_dbus.py (class Bus): add the ProxyObjectClass
3867 alias for ProxyObject to make it easier for the Twisted
3868 networking framework to integrate dbus.
3870 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3871 alias for ProxyMethod to make it easier for the Twisted
3872 networking framework to integrate dbus.
3874 2005-05-11 Ross Burton <ross@openedhand.com>
3876 * glib/dbus-glib-tool.c: Add --prefix argument.
3877 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3878 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3879 Add prefix argument.
3880 (generate_glue): Pass prefix argument down.
3881 (dbus_binding_tool_output_glib_server): Pass prefix to
3884 2005-05-11 Colin Walters <walters@verbum.org>
3886 * tools/dbus-send.c (append_array): New function.
3887 (append_arg): Broken out from main.
3888 (main): Add cheesy hack to send arrays and variants.
3890 * tools/dbus-print-message.c (print_iter): Broken out
3893 2005-05-11 Colin Walters <walters@verbum.org>
3895 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3896 New function, returns signature string for signature iter.
3897 * dbus/dbus-signature.h: Prototype it.
3898 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3899 New function, returns signature string for message iter.
3900 (dbus_message_iter_get_array_len): New function, returns
3902 (dbus_message_iter_get_fixed_array): Fix assertion; this
3903 function should be used when the iter is pointing to the
3904 contents of an array
3905 * dbus/dbus-message.h: Prototypes.
3906 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3907 New function; returns length of an array.
3908 * dbus/dbus-marshal-recursive.h: Prototype it.
3910 2005-05-11 Colin Walters <walters@verbum.org>
3912 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3915 2005-05-08 Havoc Pennington <hp@redhat.com>
3917 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3918 daemon's pid, not the parent's pid, to the file descriptor.
3919 Reported by Taj Morton.
3921 2005-05-05 Havoc Pennington <hp@redhat.com>
3923 * configure.in (LT_*): add notes on how the libtool versioning
3924 works to save thinking. Increment soname to indicate protocol
3925 breakage (though really the library interface hasn't changed I
3928 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3929 verify the GUID received from server matches what we were
3930 expecting, if we had an expectation
3932 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3933 (_dbus_auth_get_guid_from_server): new function
3934 (send_begin): parse the OK args
3936 * doc/dbus-specification.xml: add GUID to the auth protocol
3938 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3940 * Fix my name in previous changelog ;)
3942 * python/proxies.py (ProxyObject.__getattr__): add further patch
3943 from Anthony Baxter to throw an AttributeError when python
3944 __special__ functions are called instead of marshling them over
3945 the bus (Bug#1685 comment 3).
3947 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3949 * python/Makefile.am: changed to use pyexecdir for the binding
3950 shared libraries (Bug#2494)
3952 * python/exceptions.py: bring exceptions over from the bindings
3953 so they can be used in applications (Bug#2036)
3954 Make all exceptions derive from DBusException
3956 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3957 of classes so that print obj doesn't throw an exception (Bug #1685)
3959 2005-05-03 Ross Burton <ross@openedhand.com>
3961 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3962 Return if we get an error during registration. Set up a
3963 weak reference on object to unregister if object is destroyed.
3964 (unregister_gobject): New function.
3966 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3968 * python/dbus_bindings.pyx.in:
3969 - added new type classes for hinting to the marashaler what type
3970 to send over the wire
3971 - added int16 and uint16 marshalers
3972 - Fixed a bug in the type constants that caused int32 to go out
3973 as uint16 over the wire
3974 * python/dbus.py: split up into different files and renamed _dbus.py
3975 * python/__init__.py, python/_util.py, python/decorators.py,
3976 python/exceptions.py, python/proxies.py, python/services.py,
3977 python/types.py: new files split off from dbus.py
3978 * python/Makefile.am: Add new files, remove dbus.py and
3979 install all python files to <python module dir>/dbus
3980 * python/examples/*: Added #!/usr/bin/env python to the top of
3981 every example. Patch provided by Tatavarty Kalyan
3983 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3985 * NEWS: Update to 0.33
3987 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3989 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3990 method for doing async calls
3991 (_pending_call_notification): New C function for handling pendning call
3993 (set_notify): New method for setting pending call notification
3995 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3996 Async capabilities added to remote method calls
3997 (Sender): class removed
3998 (RemoteService): class removed
3999 (ObjectTree): class removed for now
4000 (RemoteObject): Renamed to ProxyObject
4001 (RemoteMethod): Renamed to ProxyMethod
4002 (method): Decorator added for decorating python methods as dbus methods
4003 (signal): Decorator added for decorating python methods as signal emitters
4004 (ObjectType): Metaclass added for generating introspection data and the
4005 method callback vtable
4006 (Interface): Wrapper class added to wrap objects in a dbus interface
4007 (Object): Uses ObjectType as its metaclass and exports Introspect
4008 of the org.freedesktop.DBus.Introspectable interface
4009 (ValidationException, UnknownMethodException): new exceptions
4011 * python/examples/*: Modified to fit with the new bindings
4013 2005-04-23 Havoc Pennington <hp@redhat.com>
4015 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4016 reported by Tony Houghton
4018 * test/test-service.c (main): test
4019 dbus_connection_get_object_path_data()
4021 * dbus/dbus-object-tree.c (find_handler): be sure we always init
4023 (_dbus_object_tree_get_user_data_unlocked): new function used by
4024 dbus_connection_get_object_path_data()
4025 (do_register): add assertion test for get_user_data_unlocked
4026 (object_tree_test_iteration): more tests
4028 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4029 new function from Dan Reed to let you get the user data from
4030 dbus_connection_register_object_path()
4032 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
4034 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4035 in numerous places that did not account for the NULL terminator
4036 (signature_from_seed): changed the manual string copy loop to
4037 just use strcpy instead
4038 make check should now pass
4040 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
4042 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4043 so that it allows messages that are not signals to pass in
4044 NULL as the interface.
4046 2005-04-18 David Zeuthen <davidz@redhat.com>
4048 * glib/dbus-gmain.c (io_handler_destroy_source):
4049 (timeout_handler_destroy_source, connection_setup_free):
4050 Also unref the source to avoid memory leaks.
4052 2005-04-13 David Zeuthen <davidz@redhat.com>
4054 * bus/config-parser.c (bus_config_parser_new): Bump this to a
4055 more reasonable, yet still totally arbitrary, value :-).
4057 2005-04-13 David Zeuthen <davidz@redhat.com>
4059 * doc/TODO: Added an "important for 1.0" item about selinux
4062 2005-04-13 David Zeuthen <davidz@redhat.com>
4064 * bus/selinux.c: Add c-file-style to top of file
4065 (log_audit_callback): Don't free the data here anymore
4066 (bus_selinux_check): Don't take spid and tpid since appending
4067 that to auxdata may OOM.
4068 (bus_selinux_allows_acquire_service): Handle OOM and signal back
4069 to the caller if we are OOM by taking an error object.
4070 (bus_selinux_allows_send): -do-
4072 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4073 and bus_selinux_allows_send
4075 * bus/bus.c (bus_context_check_security_policy): Pass error and
4076 pass on OOM thrown by bus_selinux_allows_send()
4078 * bus/services.c (bus_registry_acquire_service): Pass error and
4079 pass on OOM thrown by bus_selinux_allows_acquire_service()
4081 2005-04-13 Havoc Pennington <hp@redhat.com>
4083 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4084 message at a time to avoid monopolizing the main loop, bug
4085 #2953 from Benjamin Otte
4087 2005-04-09 Havoc Pennington <hp@redhat.com>
4089 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4090 possible overlap, fix from Daniel Reed
4091 (fixup_alignment): fix signedness warnings
4092 (_dbus_string_append_unichar): ditto
4094 2005-04-09 Havoc Pennington <hp@redhat.com>
4096 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4098 * glib/dbus-glib-tool.c (main): fix warning
4100 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4102 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4103 add a new function that can be used in simple applications that
4104 don't have a main loop and are willing to block
4106 2005-04-05 David Zeuthen <davidz@redhat.com>
4108 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4110 * glib/dbus-gmain.c:
4111 (io_handler_destroy_source): Remove from list of IO handlers
4112 of the ConnectionSetup object
4113 (timeout_handler_destroy_source): -do- for timeout handlers
4114 (io_handler_source_finalized): Don't remove from list since
4115 we now do that in io_handler_destroy_source(). Renamed from
4116 io_handler_source_destroyed
4117 (timeout_handler_source_destroyed): -do- for timeout handlers
4118 (connection_setup_free): It is now safe to iterate over all
4119 IO and timeout handlers as the _destroy_source removes them
4120 from the list synchronously
4122 2005-03-30 Havoc Pennington <hp@redhat.com>
4124 * configure.in: change check to gtk 2.4
4126 * tools/dbus-viewer.c (name_combo_changed_callback): remove
4127 gtk_combo_box_get_active_text() usage to decrement GTK requirement
4130 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4134 * HACKING: Fixed realease instructions. configure.in should be updated to
4135 the next release by the person who made the last release.
4137 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4139 * python/lvalue_cast_post_process.py - removed. Patch has been
4140 submitted to Pyrex maintainers that fixes gcc4.0 errors
4142 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4144 2005-03-24 Daniel Reed <n@ml.org>
4146 * tools/Makefile.am: Make print-introspect and
4147 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4149 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
4151 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4153 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
4154 had in Red Hat packages for a while but for some reason never
4156 (_dbus_is_a_number): New checks if a string
4157 can be converted to a number and does the conversion if it can
4158 (_dbus_user_database_lookup): Add check to see if the given username
4159 is a udi. This allows udi's to be used instead of usernames in the
4161 (_dbus_user_database_lookup_group): Add check to see if the given groupname
4162 is a gdi. This allows gdi's to be used instead of groupnames in the
4165 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
4167 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4168 code so that it compiles with gcc4.0
4170 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4171 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4172 results back to dbus_binding.c
4174 2005-03-20 Colin Walters <walters@verbum.org>
4176 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4178 * configure.in: Require GTK+ 2.6.
4180 2005-03-20 Colin Walters <walters@verbum.org>
4182 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4184 2005-03-17 Tom Parker <palfrey@tevp.net>
4186 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4187 print DBUS_UID_UNSET; instead print passed username. Also
4188 be sure to actually use gid looked up in cache.
4190 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4191 for DBUS_GID_UNSET and groupname.
4193 2005-03-17 Colin Walters <walters@verbum.org>
4195 * bus/print-introspect.c: Move to tools/.
4196 * bus/run-with-tmp-session-bus.sh: Ditto.
4198 * glib/Makefile.am (dbus-glib-bindings.h): Move
4199 generation to tools/Makefile.am.
4201 * test/glib/run-test.sh: Update to handle move
4202 of run-with-tmp-session-bus.sh.
4204 * test/glib/test-service-glib.c: Update to handle
4205 move of dbus-glib-bindings.h.
4207 * tools/print-introspect.c: Moved here
4208 from bus/, and ported to GLib bindings.
4210 * tools/run-with-tmp-session-bus.sh: Moved here
4213 * tools/Makefile.am: Generate dbus-glib-bindings.h
4214 and dbus-bus-introspect.xml here.
4216 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4219 2005-03-17 Colin Walters <walters@verbum.org>
4221 * bus/driver.c (write_args_for_direction): Use
4222 _dbus_string_get_const_data to retrieve string;
4223 _dbus_string_get_const_data_len doesn't actually return
4224 a NULL-terminated substring.
4226 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4227 (main): Change to use org_freedesktop_DBus_request_name
4228 instead of using g_proxy_begin_call/end_call.
4230 2005-03-15 Joe Shaw <joeshaw@novell.com>
4232 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4233 generating the finalizer. Fixes from Ben Maurer.
4235 2005-03-12 Joe Shaw <joeshaw@novell.com>
4237 * mono/BusDriver.cs: Update method names: ListServices
4238 becomes ListNames; GetOwner becomes GetNameOwner.
4240 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4241 onto the eval stack when removing the delegate.
4243 2005-03-12 Joe Shaw <joeshaw@novell.com>
4245 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4246 LT_CURRENT. Set it to the autoconf variable.
4248 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4249 classes that disconnects the signal handler delegate from the
4250 service object. Fixes a big leak of proxy objects on the
4251 client side of things. Patch from Ben Maurer
4252 <bmaurer@ximian.com>
4254 2005-03-12 Colin Walters <walters@verbum.org>
4256 * bus/driver.c (write_args_for_direction): New function,
4257 parses a type signature into arguments and outputs to
4259 (bus_driver_handle_introspect): Use it instead of
4260 hardcoding XML for certain signatures.
4262 * bus/Makefile.am (dbus-bus-introspect.xml): Add
4263 dependency on dbus-daemon.
4265 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4266 argument, pass it to dbus_binding_tool_output_glib_client.
4268 * glib/dbus-binding-tool-glib.c
4269 (generate_client_glue): Protect against multiple inclusion.
4270 (dbus_binding_tool_output_glib_client): Add
4271 G_BEGIN_DECLS/G_END_DECLS.
4273 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4274 Change to just take iface prefix directly.
4275 (write_formal_parameters): Clarify error message.
4276 (check_supported_parameters): New function; checks to see type
4277 signatures of method parameters are supported.
4278 (generate_client_glue): Handle ignore_unsupported flag.
4279 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4282 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4283 --ignore-unsupported by default until glib bindings
4286 2005-03-11 Colin Walters <walters@verbum.org>
4288 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4291 * bus/print-introspect.c: New file; prints introspection
4292 data for a given name and object path.
4294 * bus/run-with-tmp-session-bus.sh: New file, refactored
4295 from test/glib/run-test.sh. Creates a temporary session
4296 bus and runs another program.
4298 * test/glib/run-test.sh: Refactor to invoke
4299 run-with-tmp-session-bus.sh.
4301 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4302 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4303 macros instead of hardcoding.
4305 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4307 2005-03-11 Joe Shaw <joeshaw@novell.com>
4309 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4310 this unref; it doesn't match up evenly in some codepaths.
4311 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4312 this evenly matches with the ref near the top of this function.
4314 2005-03-09 Joe Shaw <joeshaw@novell.com>
4316 * dbus/dbus-object-tree.c
4317 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4318 and we try to unregister a path that's not registered, still go
4319 through the process of unlocking and don't just return.
4321 2005-03-09 Colin Walters <walters@verbum.org>
4323 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4324 to this are generated for client-side wrappers. Invokes a
4325 D-BUS method and returns reply values.
4327 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4328 function; writes signature string for argument direction.
4329 (write_args_for_direction): Change to pass input values directly
4330 instead of via address, and fix indentation.
4331 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4332 make generated wrappers inlineable.
4334 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4335 note about using dbus_type_is_fixed.
4337 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4338 dbus/dbus-signature.c as dbus_type_is_fixed.
4340 All callers updated.
4342 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4343 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4345 * dbus/dbus-signature.h: Prototype.
4347 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4350 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4351 appropriate instead of just freeing it.
4352 (main): Free returned strings using g_free.
4354 * test/glib/Makefile.am (test-service-glib-glue.h)
4355 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4357 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4358 simply maps a simple D-BUS type to GType.
4359 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4361 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4362 initialize the value with it.
4363 (dbus_gvalue_binding_type_from_type): Unused, delete.
4364 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4365 various types instead of unmarshalling to value data directly.
4366 Remove can_convert boolean.
4367 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4368 returning directly instead of using can_convert boolean.
4369 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4370 Stores a GValue in a pointer to a value of its corresponding C
4373 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4374 add dbus_gvalue_store.
4376 2005-03-08 Joe Shaw <joeshaw@novell.com>
4378 Fix a bunch of lifecycle and memory management problems
4379 in the mono bindings.
4381 * mono/Arguments.cs (Arguments): Implement IDisposable
4383 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4384 strictly a static class.
4386 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4387 delegates into this file.
4388 (Connection): Implement IDisposable.
4389 (Dispose): Disconnect the connection and set the raw connection
4390 pointer to IntPtr.Zero.
4391 (~Connection): Call Dispose().
4392 (RegisterObjectPath): Added. Manages the registration of object
4393 paths so we can cleanly disconnect them at dispose/finalize time.
4394 (UnregisterObjectPath): Ditto.
4395 (set_RawConnection): Unregister all of the object paths when
4396 changing the underlying DBusConnection. Add them back onto the
4397 new connection, if any.
4399 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4400 more unmanaged resources anymore, so it's not necessary. Move all
4401 the DBusObjectPathVTable stuff out of here.
4402 (Handler): Save references to our delegates so that they don't get
4403 finalized. Call Connection.RegisterObjectPath() instead of
4404 dbus_connection_register_object_path() directly.
4405 (Message_Called): Dispose the message after we're finished with
4408 * mono/Message.cs (Message): Implement IDisposable.
4409 (Dispose): Dispose the Arguments, and set the RawMessage to
4411 (SendWithReplyAndBlock): We own the ref to the reply that comes
4412 back from dbus_connection_send_with_reply_and_block() so add a
4413 comment about that and unref it after we've constructed a managed
4414 MethodReturn class around it. Fixes a big, big leak.
4416 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4418 (BuildSignalHandler): After we've sent the Signal message, dispose
4420 (BuildMethod): Dispose of the method call and reply messages after
4421 we've sent the message and extracted the data we want from the
4424 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4426 (Service_FilterCalled): Dispose of the message after we're
4429 2005-03-08 Joe Shaw <joeshaw@novell.com>
4431 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4432 After we attach our pending call to the connection, unref
4435 * mono/Connection.cs (set_RawConnection): Disconnect our
4436 filter and match callbacks from the old connection and
4437 reconnect them to the new connection, if any.
4439 * mono/DBusType/Array.cs: "Code" is a static member, so
4440 don't use "this" to refer to it. Fix for stricter checking
4443 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4444 object path that we pass into unmanaged code.
4446 * mono/DBusType/String.cs (Append): Don't leak the string
4447 that we pass into unmanged code.
4449 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4450 * NEWS: Update for 0.31
4452 * configure.in: Release 0.31
4453 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4455 * qt/Makefile.am: fixed build
4457 * dbus/Makefile.am: soname bump for libdbus
4459 * glib/Makefile.am: soname bump for libdbus-glib
4461 2005-03-05 Havoc Pennington <hp@redhat.com>
4463 * dbus/dbus-sysdeps.c:
4464 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4466 (_dbus_generate_random_bytes_buffer): fix return value
4468 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4469 checks actually work, from Tom Parker <fdo@tevp.net>
4471 2005-03-01 Colin Walters <walters@verbum.org>
4473 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4474 functions copied from dbus-glib-tool.c.
4475 (main): Convert lots of error code to use them.
4476 Also add some testing for introspection bits.
4478 2005-03-01 Colin Walters <walters@verbum.org>
4480 * doc/TODO: Remove introspection signature TODO.
4482 2005-02-27 Colin Walters <walters@verbum.org>
4484 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4485 Change return value to const char * instead of int so we can do
4487 (struct PropertyInfo, struct ArgInfo): Store char *.
4488 (property_info_new, arg_info_new): Update parameters, strdup.
4489 (property_info_unref, arg_info_unref): Free.
4491 * glib/dbus-gidl.h: Update prototypes.
4493 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4494 (validate_signature): New function, just validates signature and
4496 (parse_property, parse_arg): Invoke validate_signature. Store
4497 signature instead of just type code.
4499 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4500 function to return a primary type for a signature, dropping
4501 information about types in container types.
4502 (dbus_gvalue_genmarshal_name_from_type)
4503 (dbus_gvalue_binding_type_from_type)
4504 (dbus_gvalue_ctype_from_type): Update to take full signature
4505 instead of type code.
4506 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4508 * glib/dbus-gvalue.h: Update prototypes for above.
4510 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4511 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4512 (introspect_properties, introspect_signals, write_interface):
4513 Update to handle signatures, and remove usage of
4514 _dbus_gutils_type_to_string.
4515 (handle_introspect): Print out type codes instead of e.g. "string"
4516 in hardcoded introspection XML; also use x_AS_STRING constants
4517 instead of hardcoding in string.
4519 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4520 to string. Remove usage of _dbus_gutils_type_to_string.
4522 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4524 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4527 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4528 (compute_marshaller_name, generate_glue): Handle signature change
4530 (write_formal_parameters, write_args_for_direction): Ditto, and
4533 * tools/dbus-tree-view.c (type_to_string): Delete.
4534 (info_set_func_text): Update to print full signatures.
4536 * test/glib/test-service-glib.xml: Change types to new
4537 introspection format.
4539 2005-02-26 Havoc Pennington <hp@redhat.com>
4541 * doc/TODO: remove the "guid" item
4543 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4544 (with_bus_thread_func): use open_private
4546 * dbus/dbus-connection.c (dbus_connection_open_private): new
4547 function that works like the old dbus_connection_open()
4548 (dbus_connection_open): now returns an existing connection if
4551 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4552 through the GUID to the transport
4554 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4555 GUID in hex-encoded form.
4557 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4558 pass GUID argument in to the transport
4560 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4563 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4565 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4567 2005-02-25 Havoc Pennington <hp@redhat.com>
4569 * doc/dbus-specification.xml: document the GUID thing
4571 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4572 globally unique ID for the server, and put a "guid=hexencoded"
4573 field in the address
4575 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4577 * dbus/dbus-message.c: ditto
4579 * dbus/dbus-dataslot.c: ditto
4581 * dbus/dbus-list.c: ditto
4583 * dbus/dbus-internals.h: wait, just include
4584 dbus-threads-internal.h here
4586 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4589 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4591 2005-02-24 Colin Walters <walters@verbum.org>
4593 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4595 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4597 * glib/Makefile.am: added dbus-gobject.h to sources list
4598 so distcheck doesn't fail
4600 2005-02-24 Havoc Pennington <hp@redhat.com>
4602 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4603 you must disconnect before unref, since locking and other things
4604 are screwed up otherwise. Fix assorted other locking stuff.
4606 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4609 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4610 into a private header and don't export from the library
4612 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4614 2005-02-24 Colin Walters <walters@verbum.org>
4616 * dbus/dbus-signature.c: New file; implements various functions
4617 related to type signatures. Includes an interator for parsing,
4618 validation functions.
4619 (dbus_type_is_basic): Moved here from
4620 dbus-marshal-basic.c:_dbus_type_is_basic.
4621 (dbus_type_is_container): Moved here from
4622 dbus-marshal-basic.c:_dbus_type_is_container.
4624 All callers of _dbus_type_is_container and _dbus_type_is_basic
4625 updated, and include dbus-signature.h.
4627 * dbus/dbus-signature.h: New file; prototypes for the above.
4629 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4632 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4633 function factored out of _dbus_first_type_in_signature.
4634 (_dbus_first_type_in_signature_c_str): New function; returns first
4635 type code for a type signature character.
4637 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4638 handle function moves.
4640 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4642 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4643 function; skips to next complete type in type signature.
4644 Implemented using previous skip_one_complete_type. Now
4645 skip_one_complete_type just delegates to
4646 _dbus_type_signature_next.
4648 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4650 (_dbus_type_is_container): Ditto.
4652 * doc/dbus-specification.xml: Update introspection sample to
4653 use real type signatures.
4655 * dbus/dbus-test.h: Prototype signature test.
4657 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4660 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4662 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4664 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4665 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4667 2005-02-21 Colin Walters <walters@verbum.org>
4669 * dbus/dbus-test-main.c (main): Take optional specific test
4672 * dbus/dbus-test.c (run_test): New function, runs a test function
4673 with no data directory.
4674 (run_data_test): Like above, but takes data directory.
4675 (dbus_internal_do_not_use_run_tests): Take
4676 specific test argument. Replace lots of cut n' paste code
4677 with run_test and run_data_test.
4679 * dbus/dbus-test.h: Update prototype for
4680 dbus_internal_do_not_use_run_tests.
4682 2005-02-20 Havoc Pennington <hp@redhat.com>
4684 Fix bugs reported by Daniel P. Berrange
4686 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4687 (protected_change_watch): new function
4688 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4689 (_dbus_server_add_watch): change to work like the
4690 dbus-connection.c equivalents; like those, probably kind of
4691 busted, but should at least mostly work for now
4692 (dbus_server_disconnect): drop the lock if we were already
4693 disconnected, patch from Daniel P. Berrange
4695 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4696 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4699 * doc/TODO: todo about unscrewing this mess
4701 2005-02-19 Colin Walters <walters@verbum.org>
4703 * glib/dbus-binding-tool-glib.c
4704 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4706 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4707 as errno.h and sys/stat.h.
4708 (lose): New function, prints error with
4710 (lose_gerror): Similar, but takes GError for message.
4711 (main): Add --output argument to specify output file to write to,
4712 instead of always printing to stdout. In this mode, determine
4713 timestamps on source files to see whether any are newer than the
4714 target file. If not, exit. Also convert a number of error
4715 messages to use lose (since it's shorter), and switch to using
4716 g_io_channel_shutdown.
4718 2005-02-19 Havoc Pennington <hp@redhat.com>
4720 * glib/dbus-gobject.c
4721 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4723 * glib/dbus-glib.c: fix doxygen warnings
4725 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4726 is found on an <arg>
4728 2005-02-17 Colin Walters <walters@verbum.org>
4730 * glib/dbus-gobject.h: Don't export
4731 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4733 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4734 (invoke_object_method): Handle it.
4736 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4739 2005-02-17 Colin Walters <walters@verbum.org>
4741 * bus/.cvsignore, doc/.cvsignore
4742 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4745 2005-02-17 Colin Walters <walters@verbum.org>
4747 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4748 Rename to DBUS_SERVICE_DBUS.
4749 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4750 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4751 Change the value from "org.freedesktop.Local"
4752 to "org.freedesktop.DBus.Local".
4753 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4754 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4755 DBUS_INTERFACE_INTROSPECTABLE.
4756 Change the value from "org.freedesktop.Introspectable"
4757 to "org.freedesktop.DBus.Introspectable".
4758 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4759 DBUS_INTERFACE_PROPERTIES.
4760 Change the value from "org.freedesktop.Properties"
4761 to "org.freedesktop.DBus.Properties".
4762 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4763 DBUS_INTERFACE_PEER.
4764 Change the value from "org.freedesktop.Peer"
4765 to "org.freedesktop.DBus.Peer".
4766 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4767 DBUS_INTERFACE_LOCAL.
4768 Change the value from "org.freedesktop.Local"
4769 to "org.freedesktop.DBus.Local".
4771 All other users of those constants have been changed.
4773 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4775 * glib/dbus-gobject.c (handle_introspect): Use constants.
4777 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4779 2005-02-17 Colin Walters <walters@verbum.org>
4781 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4782 (parse_node, parse_interface, parse_method, parse_signal)
4783 (parse_property, parse_annotation): Lose if we're currently in an
4785 (parse_annotation): New function.
4786 (parser_start_element, parser_end_element): Handle annotation.
4787 (parse_method, parse_interface): Remove support for c_name attribute,
4788 switch to annotations.
4790 * glib/dbus-gidl.h (interface_info_get_binding_names)
4791 (method_info_get_binding_names)
4792 (interface_info_get_binding_name, method_info_get_binding_name)
4793 (interface_info_set_binding_name, method_info_set_binding_name):
4795 (interface_info_get_annotations, method_info_get_annotations)
4796 (interface_info_get_annotation, method_info_get_annotation)
4797 (interface_info_add_annotation, method_info_add_annotation):
4800 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4802 (struct MethodInfo): Ditto.
4803 Straightfoward conversion of binding methods into annotation methods
4806 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4808 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4810 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4811 Use new annotation API.
4813 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4816 * doc/dbus-specification.xml: Discuss introspection annotations,
4817 include list of well-known annotations.
4819 * test/glib/test-service-glib.xml: Make validate against new DTD.
4821 2005-02-17 Colin Walters <walters@verbum.org>
4823 This patch is based on initial work from
4824 Paul Kuliniewicz <kuliniew@purdue.edu>.
4826 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4827 initialization of GValue from dbus type to here.
4828 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4829 for the "glib-genmarshal" program from a DBus type.
4830 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4831 into the C name for it we use in the glib bindings.
4832 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4833 glib C type (not GValue).
4834 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4836 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4837 from dbus-gobject.c.
4839 * glib/dbus-gutils.h: Prototype it.
4841 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4842 (marshal_dbus_message_to_g_marshaller): Use new shared function
4843 dbus_glib_marshal_dbus_message_to_gvalue_array.
4845 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4846 Will be changed once we have annotations.
4848 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4849 GStaticRWLock. Callers updated.
4850 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4851 (string_table_next): New function for iterating over zero-terminated
4853 (string_table_lookup): New function; retrieves specific entry in
4855 (get_method_data): New function; look up method data in object data chunk.
4856 (object_error_domain_prefix_from_object_info)
4857 (object_error_code_from_object_info): New functions, but not implemented yet.
4858 (method_interface_from_object_info): New function; retrieve interface name.
4859 (method_name_from_object_info): New function; retrieve method name.
4860 (method_arg_info_from_object_info): New function; retrieve argument data.
4861 (arg_iterate): New function; iterates over serialized argument data.
4862 (method_dir_signature_from_object_info): New function; returns a
4863 GString holding type signature for arguments for just one
4864 direction (input or output).
4865 (method_input_signature_from_object_info)
4866 (method_output_signature_from_object_info): New functions.
4867 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4868 converts dbus message arguments into a GValue array. Used for both
4869 signal handling and method invocation.
4870 (struct DBusGlibWriteIterfaceData): New utility structure.
4871 (write_interface): New function; generate introspection XML for
4873 (introspect_interfaces): New function; gathers all interface->methods,
4874 generates introspection XML for them.
4875 (handle_introspect): Invoke introspect_interfaces.
4876 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4877 (lookup_object_and_method): New function; examines an incoming message
4878 and attempts to match it up (via interface, method name, and argument
4879 signature) with a known object and method.
4880 (gerror_domaincode_to_dbus_error_name): New function; converts a
4881 GError domain and code into a DBus error name. Needs GError data
4882 added to object introspection to work well.
4883 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4885 (invoke_object_method): New function to invoke an object method
4886 looked up via lookup_object_and_method. Parses the incoming
4887 message, turns it into a GValue array, then invokes the marshaller
4888 specified in the DBusGMethodInfo. Creates a new message with
4889 either return values or error message as appropriate.
4890 (gobject_message_function): Invoke lookup_object_and_method and
4891 invoke_object_method.
4893 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4894 (enum DBusBindingOutputMode): New enum for binding output modes.
4895 (pretty_print): Print binding names.
4896 (dbus_binding_tool_error_quark): GError bits.
4897 (version): Fix typo.
4898 (main): Create GIOChannel for output. Parse new --mode argument,
4899 possible values are "pretty-print", "glib-server", "glib-client".
4900 Use mode to invoke appropriate function.
4902 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4904 * glib/dbus-glib-tool.h: New header, just includes GError bits
4907 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4908 maps binding style to name.
4909 (struct MethodInfo): Ditto.
4910 (get_hash_keys, get_hash_key): Utility function, returns keys for
4912 (interface_info_new, method_info_new): Initialize bindings.
4913 (interface_info_unref, method_info_unref): Destroy bindings.
4914 (method_info_get_binding_names, method_info_get_binding_name)
4915 (interface_info_get_binding_names, interface_info_get_binding_name):
4916 Functions for retrieving binding names.
4917 (method_info_set_binding_name, interface_info_set_binding_name):
4918 Functions for setting binding names.
4920 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4921 for glib binding generation.
4923 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4924 and client-side glib glue generation.
4926 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4927 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4930 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4931 of using GClosureMarshal directly.
4932 (struct DBusGObjectInfo): Add n_infos member.
4934 * test/glib/test-service-glib.xml: New file; contains introspection data
4935 for MyTestObject used in test-service-glib.c.
4937 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4938 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4939 (my_object_uppercase, my_object_many_args): New test methods.
4940 (main): Use dbus_g_object_class_install_info to include generated object
4943 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4944 as well as client-side bindings.
4946 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4947 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4948 using both the dbus_gproxy stuff directly as well as the generated bindings.
4950 2005-02-15 Havoc Pennington <hp@redhat.com>
4952 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4953 complete a pending call, don't run filters first.
4955 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4956 dbus_pending_call_steal_reply
4958 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4959 _dbus_connection_block_pending_call
4960 (dbus_pending_call_get_reply): change to steal_reply and return a
4963 * dbus/dbus-connection.c
4964 (dbus_connection_send_with_reply_and_block): port to work in terms
4966 (_dbus_connection_block_pending_call): replace block_for_reply
4969 2005-02-14 Havoc Pennington <hp@redhat.com>
4971 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4972 properly handle looking up group information by name; fix
4975 2005-02-13 Havoc Pennington <hp@redhat.com>
4977 * dbus/dbus-connection.c (dbus_connection_return_message)
4978 (dbus_connection_borrow_message): hold dispatch lock while message
4980 (_dbus_connection_block_for_reply): hold dispatch lock while we
4981 block for the reply, so nobody steals our reply
4982 (dbus_connection_pop_message): hold the dispatch lock while we
4985 2005-02-13 Havoc Pennington <hp@redhat.com>
4987 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4988 (_dbus_connection_release_dispatch)
4989 (_dbus_connection_acquire_io_path)
4990 (_dbus_connection_release_io_path): make the mutex and condvar
4991 control access to the "acquired" flag. Drop the connection lock
4992 while waiting on the condvar. Hopefully these are baby steps in
4993 roughly the right direction.
4995 2005-02-13 Havoc Pennington <hp@redhat.com>
4997 * dbus/dbus-connection.c: use separate mutexes for the condition
4998 variables; this is some kind of baseline for sanity, but the
4999 condition variables still aren't used correctly afaict
5001 2005-02-13 Havoc Pennington <hp@redhat.com>
5003 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5006 * dbus/dbus-connection.c
5007 (_dbus_connection_detach_pending_call_unlocked): add this
5009 Initial semi-correct pass through to fix thread locking; there are
5010 still some issues with the condition variable paths I'm pretty
5013 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5016 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5017 rename to add _unlocked
5018 (struct DBusConnection): move "dispatch_acquired" and
5019 "io_path_acquired" to use only one bit each.
5020 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5021 (dbus_connection_set_watch_functions): hacky fix to reentrancy
5022 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
5023 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
5024 (_dbus_connection_remove_timeout)
5025 (_dbus_connection_toggle_timeout): drop lock when calling out to
5026 user functions; done in a hacky/bad way.
5027 (_dbus_connection_send_and_unlock): add a missing unlock
5028 (_dbus_connection_block_for_reply): add a missing unlock
5030 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5031 drop lock in a hacky probably unsafe way to call out to user
5034 2005-02-12 Havoc Pennington <hp@redhat.com>
5036 * tools/dbus-tree-view.c (info_set_func_text): display more
5039 * bus/driver.c (bus_driver_handle_list_services): list the bus
5042 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5044 * glib/dbus-gidl.c (signal_info_get_n_args): new function
5045 (method_info_get_n_args): new function
5047 2005-02-12 Havoc Pennington <hp@redhat.com>
5049 * bus/driver.c (bus_driver_handle_introspect): add introspection
5052 2005-02-12 Havoc Pennington <hp@redhat.com>
5054 * bus/driver.c: put the signature of each bus driver method in the
5055 table of handlers and check it on incoming calls; this isn't
5056 really useful, but going to add introspect support in a minute.
5058 2005-02-11 Joe Shaw <joeshaw@novell.com>
5060 * mono/Connection.cs: The unpredictability of finalizers in mono
5061 prevents us from deterministically disconnecting the filters from
5062 the Service class's finalizer, so move tracking of filters and
5063 matches here. Add API for that.
5065 * mono/Service.cs: Remove the code, add code which calls the
5066 methods now on the Connection class.
5068 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
5070 * python/dbus.py (class Sender): added to support dbus signals better
5071 (Bus::add_signal_receiver): added expand_args parameter which defaults
5072 to True. When expand args is True the signal handler will pass the
5073 message arguments as parameters to the signal handler. If False
5074 revert to previous behavior where the signal handler must get the
5075 argument list from the message. This is to help port applications
5076 like HAL that have a tendancy to send variable length argument lists.
5077 self._match_rule_to_receivers is now a dict of dicts.
5078 (Bus::remove_signal_receiver): pop handler off the dict intead of
5079 removing it from a list
5080 (Bus::_signal_func): change signal handlers so that interface,
5081 signal_name, service, path and message are packed into a Sender
5082 object and that is passed to the handler. If expand_args is True
5083 extract the args list from the message and append it to the parameter
5086 * python/dbus_bindings.pyx.in (class Signature): added to support
5088 (MessageIter::__init__): changed iteration limit to match D-BUS
5089 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
5090 STRUCT and VARIENT type support
5091 (MessageIter::python_value_to_dbus_sig): made recursive to support
5093 (MessageIter::append*): added Signature, dict, tuple
5096 * python/examples/example-client.py: added examples of getting tuples
5099 * python/examples/example-service.py: added examples of sending tuples
5102 * python/examples/example-signal-recipient.py: Fixed to handle new
5103 signal callback format
5105 2005-02-10 Havoc Pennington <hp@redhat.com>
5107 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5108 (call dbus_g_proxy_add_signal)
5110 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5112 (_dbus_server_new_for_domain_socket): escape the path
5114 * dbus/dbus-address.c (dbus_address_escape_value): new
5115 (dbus_address_unescape_value): new
5116 (dbus_parse_address): unescape values
5118 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5120 * doc/dbus-specification.xml: explain how to escape values in
5123 2005-02-10 Havoc Pennington <hp@redhat.com>
5125 * dbus/dbus-message-factory.c (generate_special): modify test to
5126 avoid using a non-basic dict key
5128 * dbus/dbus-marshal-validate-util.c: add test for the below
5130 * doc/dbus-specification.xml: require that dict keys are a basic
5133 * dbus/dbus-marshal-validate.c
5134 (_dbus_validate_signature_with_reason): require that dict key is a
5137 2005-02-10 Havoc Pennington <hp@redhat.com>
5139 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5140 change to be _and_unlock instead of _unlocked
5142 * dbus/dbus-connection.c
5143 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5144 have no_update so we can find this bug quickly in future
5146 2005-02-10 Havoc Pennington <hp@redhat.com>
5148 * dbus/dbus-message-util.c (verify_test_message): tests for string
5151 * dbus/dbus-message.c (dbus_message_append_args_valist): add
5152 support for arrays of string/signature/path
5154 2005-02-10 Joe Shaw <joeshaw@novell.com>
5156 * dbus/dbus-connection.c
5157 (_dbus_connection_queue_received_message_link,
5158 _dbus_connection_message_sent): Add the path to
5160 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
5161 _dbus_connection_send_preallocated_unlocked(), updated the
5162 dispatch status, and unlocks. Fixes a bug where certain
5163 situations (like a broken pipe) could cause a Disconnect message
5164 to not be sent, tricking the bus into thinking a service was still
5165 there when the process had quit.
5166 (_dbus_connection_send_preallocated): Call
5167 _dbus_connection_send_preallocated_and_unlock().
5168 (_dbus_connection_send_and_unlock): Added. Calls
5169 _dbus_connection_send_preallocated_and_unlock().
5170 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5171 (dbus_connection_send_with_reply): Update the dispatch status and
5174 * mono/Service.cs (~Service): Added. Removes the filter so that
5175 we don't get unmanaged code calling back into a GCed delegate.
5176 (RemoveFilter); Added.
5178 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
5180 * dbus/dbus-message.c (dbus_message_iter_open_container):
5181 - Removed check for iterator type being an array because
5182 get_arg_type does not work with writer iterators
5183 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5185 2005-02-07 Havoc Pennington <hp@redhat.com>
5187 * doc/dbus-specification.xml: some more language cleanups; add
5188 stuff about how to deal with invalid protocol and extension
5189 points; add _ to allowed chars in auth commands; add EXTENSION_
5192 2005-02-06 Havoc Pennington <hp@redhat.com>
5194 * s/expected/required/ in a couple places for clarity
5196 2005-02-07 Colin Walters <walters@verbum.org>
5198 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5199 sender or proposed_recipient.
5201 2005-02-06 Havoc Pennington <hp@redhat.com>
5203 * dbus/dbus-message-factory.c (generate_special): more tests
5205 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5206 array length that exceeds the maximum
5208 2005-02-05 Havoc Pennington <hp@redhat.com>
5210 * dbus/dbus-message-factory.c (generate_special): more test cases,
5213 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5214 reason why a signature was invalid
5216 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5217 skip the length of the string before we look at it in validation
5219 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5222 * dbus/dbus-message.c (_dbus_message_loader_new): default
5223 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5225 2005-02-05 Havoc Pennington <hp@redhat.com>
5227 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5228 if the signature of a variant was empty
5229 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5230 struct with no element type)
5232 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5233 mangled messages to break things
5235 2005-02-04 Havoc Pennington <hp@redhat.com>
5237 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5238 g_quark_try_string() so it actually can return 0
5239 (dbus_g_proxy_connect_signal): ditto
5241 2005-02-04 Havoc Pennington <hp@redhat.com>
5243 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5245 (tristring_from_message): assert cleanly on null path/interface
5246 (should not be possible though I decided later)
5247 (dbus_g_proxy_dispose): move proxy manager unregistration here
5248 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5249 g_return_if_fail() checks
5251 2005-02-04 Havoc Pennington <hp@redhat.com>
5253 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5255 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5256 (with some minor changes)
5258 * doc/dbus-specification.xml: add deprecated attribute to
5259 introspection format
5261 2005-01-31 Havoc Pennington <hp@redhat.com>
5263 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5264 think it's sort of right
5266 2005-01-30 Havoc Pennington <hp@redhat.com>
5268 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5270 2005-01-30 Havoc Pennington <hp@redhat.com>
5272 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5274 * autogen.sh: change to autotools 1.9
5276 * glib/dbus-gproxy.c: completely change how signals work
5277 (dbus_g_proxy_add_signal): new function to specify signature of a
5279 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5280 and g_warning if the incoming message has the wrong signature.
5282 2005-01-30 Havoc Pennington <hp@redhat.com>
5284 * tools/dbus-names-model.c (have_names_notify): fix this
5286 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5287 up the string array handling a bit
5289 2005-01-30 Havoc Pennington <hp@redhat.com>
5291 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5292 (dbus_g_pending_call_cancel): new function
5294 * dbus/dbus-glib.h: move GType decls for connection/message here;
5295 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5296 here, just kind of rationalizing how we handle all that
5298 * tools/dbus-names-model.c: new file for a tree model listing the
5301 * tools/dbus-tree-view.c (model_new): use proper typing on the
5304 2005-01-30 Havoc Pennington <hp@redhat.com>
5306 * glib/dbus-gmain.c: add a custom GSource back that just checks
5307 whether the message queue has anything in it; otherwise, there are
5308 cases where we won't see messages in the queue since there was no
5309 IO visible to the glib main loop
5311 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5312 increase default message timeout to 25 seconds
5314 2005-01-30 Havoc Pennington <hp@redhat.com>
5316 * test/glib/test-profile.c (no_bus_stop_server): remove the
5317 warning about the g_warning that I just fixed
5319 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5320 custom source, seems to be a lot easier to understand and work
5323 2005-01-30 Havoc Pennington <hp@redhat.com>
5325 I think this main loop thing is conceptually broken, but here are
5326 some band aids. I'll maybe rewrite it in a minute.
5328 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5329 custom GSource, so don't pass it in; confusing
5330 (gsource_server_finalize, gsource_connection_finalize): add
5331 finalize handlers that remove all the watches.
5333 2005-01-30 Havoc Pennington <hp@redhat.com>
5335 * glib/dbus-gobject.c (introspect_properties): fix the XML
5338 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5339 which effectively detects the use of freed messages
5341 * glib/dbus-gobject.c (handle_introspect): modify and return the
5342 reply message instead of the incoming message
5344 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5345 gee, maybe it should SEND THE XML instead of just making a string
5346 and freeing it again ;-)
5348 * tools/dbus-print-message.c (print_message): improve printing of
5351 * configure.in: add debug-glib.service to the output
5353 2005-01-30 Havoc Pennington <hp@redhat.com>
5355 dbus-viewer introspected and displayed the bus driver
5357 * dbus/dbus-object-tree.c
5358 (object_tree_test_iteration): add tests for a handler registered on "/"
5360 * dbus/dbus-object-tree.c
5361 (_dbus_decompose_path): fix to handle path "/" properly
5362 (run_decompose_tests): add tests for path decomposition
5364 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5367 * glib/dbus-gobject.c (handle_introspect): fix quotes
5369 * test/glib/run-test.sh: support launching the bus, then running
5372 * test/glib/test-service-glib.c (main): put in a trivial gobject
5373 subclass and register it on the connection
5375 * bus/driver.c (bus_driver_handle_introspect): implement
5376 introspection of the bus driver service
5378 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5379 identifiers, doctype decl
5381 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5382 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5383 returning the service unchanged.
5384 (bus_driver_handle_message): remove old check for reply_serial in
5385 method calls, now the message type deals with that
5386 (bus_driver_handle_message): handle NULL interface
5388 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5390 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5393 * tools/dbus-viewer.c: add support for introspecting a service on
5396 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5397 (dbus_g_pending_call_unref): add
5399 2005-01-29 Havoc Pennington <hp@redhat.com>
5401 * tools/dbus-tree-view.c: add support for displaying properties.
5402 (run dbus-viewer with an introspect xml file as arg, then resize
5403 the window so the tree elements show up, not sure what that is)
5405 * glib/dbus-gobject.c (handle_introspect): return
5406 org.freedesktop.Properties and org.freedesktop.Introspectable
5407 interfaces when we are introspected.
5409 * doc/dbus-specification.xml: allow empty interface name when
5412 2005-01-29 Havoc Pennington <hp@redhat.com>
5414 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5415 though it uses glib, it could be extended for any binding in
5418 * glib/dbus-gobject.c (gobject_message_function): change to the
5419 new way properties work
5421 * dbus/dbus-protocol.h: add the new interfaces
5423 * doc/dbus-specification.xml: document the introspection format,
5424 Introspectable interface, and add an org.freedesktop.Properties
5427 * glib/dbus-gparser.c: add support for a <property> element
5429 * glib/dbus-gidl.c: add PropertyInfo
5431 * glib/dbus-gobject.c (handle_introspect): put the outermost
5432 <node> outside the signal and property descriptions.
5433 (introspect_properties): export properties as <property> rather
5434 than as method calls
5436 2005-01-28 Havoc Pennington <hp@redhat.com>
5438 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5439 related to authentication protocol
5441 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5443 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5444 - BUS_ACTIVATION -> BUS_STARTER
5445 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5446 - class MessageIter (__init__): Added recursion checking
5447 so we throw a nice error instead of just disconnecting from the
5449 (get): Added arg_type parameter for recursion.
5450 Removed the nil type
5451 Added signiture type placeholder (not implemented)
5452 Added struct type placeholder (not implemented)
5453 Added varient type placeholder (not implemented)
5454 Commented out dict type for now
5455 (get_element_type): renamed from get_array_type
5456 (get_*): changed to use the dbus_message_iter_get_basic API
5457 (get_*_array): removed in favor of recursive get_array method
5458 (get_array): new recursive method which calls get to marshal
5459 the elements of the array
5460 (value_to_dbus_sig): New method returns the corrasponding
5461 dbus signiture to a python value
5462 (append): Comment out dict handling for now
5463 Handle lists with the new recursive API
5464 Comment out None handling for now
5465 (append_nil): removed
5466 (append_*): changed to use dbus_message_iter_append_basic API
5467 (append_*_array): removed in favor of recursive append_array
5469 (__str__): Make it easier to print out recursive iterators
5471 - class Message (__str__): moved type inspection to the
5472 MessageIter class' __str__ method
5473 (get_iter): Added an append parameter wich defaults to False
5474 If True use the new API's to create an append iterator
5476 * python/dbus.py: Update to use new bindings API
5477 - TYPE_ACTIVATION -> TYPE_STARTER
5478 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5479 - class ActivationBus -> class StarterBus
5480 - class RemoteObject (__call__): get an append iterator
5481 - (_dispatch_dbus_method_call): get an append iterator
5482 - class Object (emit_signal): get an append iterator
5484 * python/examples/: Fixed up the examples to work with the new API
5486 2005-01-28 Joe Shaw <joeshaw@novell.com>
5488 * configure.in: Bump version up to 0.30.
5490 * HACKING: Add a release item to bump the version number up after
5493 2005-01-28 Havoc Pennington <hp@redhat.com>
5495 * doc/dbus-specification.xml: update to describe 16-bit types and
5498 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5501 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5504 * dbus/dbus-marshal-recursive.c: implement
5506 2005-01-27 Havoc Pennington <hp@redhat.com>
5508 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5510 * configure.in: find the right type for 16 and 32 bit ints as well
5513 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5514 the 16-bit types so people don't have to stuff them in 32-bit or
5517 2005-01-27 Havoc Pennington <hp@redhat.com>
5519 * dbus/dbus-message.c: byteswap the message if you init an
5520 iterator to read/write from it
5522 * dbus/dbus-marshal-byteswap.c: new file implementing
5523 _dbus_marshal_byteswap()
5525 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5527 2005-01-26 Havoc Pennington <hp@redhat.com>
5529 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5530 build, apparently - nobody noticed?)
5532 2005-01-26 Havoc Pennington <hp@redhat.com>
5534 * dbus/dbus-marshal-recursive.h: remove todo comment
5536 2005-01-25 Joe Shaw <joeshaw@novell.com>
5538 * Land the mono binding changes to conform to the new APIs.
5540 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5541 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5543 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5544 type code as a string.
5545 (InitAppending): Rename dbus_message_append_iter_init() to
5546 dbus_message_iter_init_append().
5548 * mono/BusDriver.cs: Rename ServiceEventHandler to
5549 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5550 Rename ServiceOwnerChanged to NameOwnerChanged.
5552 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5555 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5557 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5558 dbus_bus_acquire_service() to dbus_bus_request_name().
5560 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5561 of Type.UnderlyingSystemType to get the correct element type for
5563 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5564 dbus_message_get_{element|arg}_type() instead of
5565 dbus_message_iter_init_array_iterator().
5566 (Append): Replace dbus_message_iter_append_array() with
5567 dbus_message_iter_open_container() and
5568 dbus_message_iter_close_container().
5570 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5571 types have been removed.
5573 * mono/DBusType/*.cs: Replace calls of
5574 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5575 but specify the type in the DllImport extern declaration. Ditto
5576 for dbus_message_iter_append_[type]() ->
5577 dbus_message_iter_append_basic().
5579 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5580 NameOwnerChangedHandler.
5582 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5584 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5585 - get_base_service -> get_unique_name
5586 - bus_get_base_service -> bus_get_unique_name
5587 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5588 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5589 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5590 - bus_activate_service -> bus_start_service_by_name
5591 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5592 - bus_acquire_service -> bus_request_name
5593 - dbus_bus_acquire_service -> dbus_bus_request_name
5594 - bus_service_exists -> bus_name_has_owner
5595 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5597 * python/dbus.py: Rename of methods
5598 - activate_service -> start_service_by_name
5599 - bus_acquire_service -> bus_request_name
5600 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5601 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5604 2005-01-24 Joe Shaw <joeshaw@novell.com>
5606 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5607 signature for the method that can't be found.
5609 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5610 the message has any arguments, we need to call
5611 _dbus_type_reader_get_current_type(), not
5612 _dbus_type_reader_has_next().
5614 2005-01-24 Havoc Pennington <hp@redhat.com>
5616 * dbus/dbus-message-factory.c: more testing of message validation
5618 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5621 2005-01-23 Havoc Pennington <hp@redhat.com>
5623 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5624 get this all working, not many tests in the framework yet though
5626 2005-01-22 Havoc Pennington <hp@redhat.com>
5628 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5629 tutorial, based on work from David Wheeler.
5631 2005-01-21 Havoc Pennington <hp@redhat.com>
5633 * dbus/dbus-bus.c: add more return_if_fail checks
5635 * dbus/dbus-message.c (load_message): have the "no validation"
5636 mode (have to edit the code to toggle the mode for now though)
5638 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5639 skips all validation; I want to use this at least for benchmark
5640 baseline, I'm not sure if it should be a publicly-available switch.
5642 2005-01-21 Havoc Pennington <hp@redhat.com>
5644 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5645 toplevel doxygen group as the low-level API stuff
5647 * dbus/dbus.h: note that libdbus is the low-level API
5649 2005-01-20 Havoc Pennington <hp@redhat.com>
5651 * update-dbus-docs.sh: script to update docs on the web site, only
5652 works for me though. neener.
5654 2005-01-20 Havoc Pennington <hp@redhat.com>
5656 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5657 code can reveal bugs in it
5659 2005-01-20 Havoc Pennington <hp@redhat.com>
5661 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5662 select() version, patches from Tor Lillqvist
5664 2005-01-20 Havoc Pennington <hp@redhat.com>
5666 * doc/dbus-tutorial.xml: replace > with >
5668 * bus/services.c (bus_registry_acquire_service): validate the name
5669 and return a better error if it's no good.
5671 * doc/dbus-specification.xml: note NO_AUTO_START change
5673 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5674 from AUTO_START, we're toggling the default
5676 * bus/dispatch.c: adapt the tests to change of auto-start default
5678 2005-01-18 Havoc Pennington <hp@redhat.com>
5680 * rename dbus-daemon-1 to dbus-daemon throughout
5682 2005-01-18 Havoc Pennington <hp@redhat.com>
5684 * Throughout, grand renaming to strip out the use of "service",
5685 just say "name" instead (or "bus name" when ambiguous). Did not
5686 change the internal code of the message bus itself, only the
5687 programmer-facing API and messages.
5689 * doc/dbus-specification.xml: further update the message bus section
5691 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5694 2005-01-17 Havoc Pennington <hp@redhat.com>
5696 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5699 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5700 "invalid name character" not only non-ASCII
5702 * doc/dbus-specification.xml: further update spec, message bus
5703 parts are still out-of-date but the marshaling etc. stuff is now
5706 2005-01-17 Havoc Pennington <hp@redhat.com>
5708 * doc/dbus-specification.xml: partially update spec
5710 2005-01-17 Havoc Pennington <hp@redhat.com>
5712 * Throughout, align variant bodies according to the contained
5713 type, rather than always to 8. Should save a fair bit of space in
5716 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5717 fix handling of case where p == end
5719 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5721 2005-01-17 Havoc Pennington <hp@redhat.com>
5723 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5725 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5726 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5727 are marshaling/unmarshaling a boolean.
5729 2005-01-16 Havoc Pennington <hp@redhat.com>
5731 This is about it on what can be disabled/deleted from libdbus
5732 easily, back below 150K anyhow. Deeper cuts are more work than
5733 just turning the code off as I've done here.
5735 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5736 signed int convenience funcs
5738 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5741 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5742 things out of libdbus
5744 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5746 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5747 tests-enabled-only, though it should probably be deleted)
5749 * dbus/dbus-message-util.c: same stuff
5751 * dbus/dbus-auth-util.c: same stuff
5753 2005-01-16 Havoc Pennington <hp@redhat.com>
5755 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5757 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5758 way for stripping down dbus-userdb.c stuff included in libdbus.
5759 Rename _dbus_parse_uid for consistency.
5761 2005-01-16 Havoc Pennington <hp@redhat.com>
5763 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5764 name the assertion failed in
5766 * dbus/dbus-internals.h (_dbus_return_if_fail)
5767 (_dbus_return_val_if_fail): assert that the name of the function
5768 containing the check doesn't start with '_', since we only want to
5769 use checks on public functions
5771 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5772 checks to assertions
5774 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5775 change checks to asserts for private function
5777 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5778 to asserts for private function
5780 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5781 broken assertion that was breaking make check
5782 (_dbus_type_reader_array_is_empty): remove this rather than fix
5783 it, was only used in assertions
5785 2005-01-16 Havoc Pennington <hp@redhat.com>
5787 * test/unused-code-gc.py: hacky script to find code that's used
5788 only by the bus (not libdbus) or used only by tests or not used at
5789 all. It has some false alarms, but looks like we can clean up a
5790 lot of size from libdbus.
5792 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5793 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5795 2005-01-16 Havoc Pennington <hp@redhat.com>
5797 * Add and fix docs according to Doxygen warnings throughout
5800 * dbus/dbus-marshal-recursive.c
5801 (_dbus_type_reader_array_is_empty): change this to just call
5802 array_reader_get_array_len() and make it static
5804 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5806 (dbus_message_iter_init_append): rename from append_iter_init
5808 * dbus/dbus-marshal-recursive.c
5809 (_dbus_type_reader_get_element_type): rename from
5810 _dbus_type_reader_get_array_type
5812 2005-01-15 Havoc Pennington <hp@redhat.com>
5814 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5816 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5817 when DBUS_DISABLE_ASSERT
5818 (_dbus_marshal_set_basic): be sure we align for the string length
5820 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5823 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5824 inline macro version
5825 (_dbus_string_set_byte): provide inline macro version
5827 2005-01-15 Havoc Pennington <hp@redhat.com>
5829 * Land the new message args API and type system.
5831 This patch is huge, but the public API change is not
5832 really large. The set of D-BUS types has changed somewhat,
5833 and the arg "getters" are more geared toward language bindings;
5834 they don't make a copy, etc.
5836 There are also some known issues. See these emails for details
5838 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5839 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5841 * dbus/dbus-marshal-*: all the new stuff
5843 * dbus/dbus-message.c: basically rewritten
5845 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5846 freed blocks to be all non-nul bytes so using freed memory is less
5847 likely to work right
5849 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5850 DBUS_FAIL_MALLOC=N environment variable, so you can do
5851 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5852 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5855 * qt/message.cpp: port to the new message args API
5856 (operator<<): use str.utf8() rather than str.unicode()
5857 (pretty sure this is right from the Qt docs?)
5859 * glib/dbus-gvalue.c: port to the new message args API
5861 * bus/dispatch.c, bus/driver.c: port to the new message args API
5863 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5864 "locked" flag to TRUE and align_offset to 0; I guess we never
5865 looked at these anyhow, but seems cleaner.
5867 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5868 move allocation padding macro to this header; use it to implement
5869 (_DBUS_STRING_STATIC): ability to declare a static string.
5871 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5872 change to return TRUE if the interface is not set.
5874 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5875 to dbus-marshal-validate.[hc]
5877 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5880 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5881 to dbus-marshal-*.[hc]
5883 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5884 function here from dbus-marshal.c
5886 2005-01-12 Joe Shaw <joeshaw@novell.com>
5888 * NEWS: Update for 0.23.
5890 * configure.in: Release 0.23.
5892 2005-01-12 Joe Shaw <joeshaw@novell.com>
5894 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5895 dbus DLL with --debug. Clean up after the .mdb files this leaves
5898 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5901 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5902 is an enum, get the enum's underlying type. Another mono
5905 2005-01-11 Joe Shaw <joeshaw@novell.com>
5907 Patch from Sjoerd Simons <sjoerd@luon.net>
5909 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5910 DESTDIR. It breaks stuff.
5912 2005-01-11 Joe Shaw <joeshaw@novell.com>
5914 Patch from Tambet Ingo <tambet@ximian.com>
5916 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5917 calling type.GetElementType(). The code previously depended on
5918 broken Mono behavior, which was fixed in Mono 1.1.3.
5920 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5921 Activator.CreateInstance() so that the class's constructor is
5922 called with the right parameters.
5924 2005-01-11 Joe Shaw <joeshaw@novell.com>
5926 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5928 * dbus/dbus-connection.c
5929 (_dbus_connection_queue_received_message_link): Call
5930 _dbus_connection_remove_timeout() instead of the _locked()
5931 variant, since it's always called from
5932 _dbus_connection_handle_watch(), which handles the locking.
5933 Removed the _locked() variant since it's no longer used.
5935 2005-01-03 Havoc Pennington <hp@redhat.com>
5937 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5940 2004-12-26 Havoc Pennington <hp@redhat.com>
5942 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5944 2005-01-03 Havoc Pennington <hp@redhat.com>
5946 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5949 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5951 2005-01-02 Havoc Pennington <hp@redhat.com>
5953 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5955 2005-01-01 Havoc Pennington <hp@redhat.com>
5957 * configure.in: add -Wfloat-equal
5959 2005-01-01 Havoc Pennington <hp@redhat.com>
5961 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5962 for a variety of reasons '==' doesn't do this.
5964 2004-12-31 Havoc Pennington <hp@redhat.com>
5966 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5967 I keep wishing I had
5969 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5971 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5973 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5975 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5976 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5977 dbus-protocol.h. Because they are defines and not enums they are not
5980 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5982 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5983 dbus_bus_activate_service
5985 * python/dbus.py (Bus.activate_service): activate a service on the
5988 2004-12-24 Havoc Pennington <hp@redhat.com>
5990 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5991 file format has also changed and I haven't adapted to that yet
5993 * Makefile.am: load .gcno files from latest gcc
5995 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
5996 * Patch from Rob Taylor <robtaylor@fastmail.fm>
5998 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6001 * python/dbus.py (get_unix_user): Added binding to
6002 call dbus_bindings.bus_get_unix_user
6004 * python/extract.py: Modified the proto_pat regex to
6005 handle unsigned long
6007 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6009 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6010 better POSIX compliance.
6012 2004-12-19 Havoc Pennington <hp@redhat.com>
6014 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
6015 (_dbus_string_insert_8_aligned): new functions
6017 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6019 2004-12-18 Havoc Pennington <hp@redhat.com>
6021 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6024 * dbus/dbus-message.c: fix a comment, and add a still-unused
6025 not-implemented function
6027 * dbus/dbus-marshal.h: fix comment
6029 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6031 2004-12-17 Joe Shaw <joeshaw@novell.com>
6033 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6034 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6035 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6036 Type.UnderlyingSystemType to get the actual system type
6037 underneath. This code previously depended on the broken Mono
6038 behavior, which was fixed in 1.1.3.
6040 2004-11-27 Havoc Pennington <hp@redhat.com>
6042 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6044 (_dbus_string_get_const_data): inline when asserts are disabled
6046 * dbus/dbus-message.c: record the _dbus_current_generation of
6047 creation so we can complain if dbus_shutdown() is used improperly.
6048 Do this only if checks are enabled.
6050 * dbus/dbus-connection.c: ditto
6052 2004-11-26 Havoc Pennington <hp@redhat.com>
6054 * test/glib/test-profile.c: add with_bus mode to profile echoes
6055 that go through the bus.
6057 * test/glib/run-test.sh: add ability to run test-profile
6059 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6062 2004-11-26 Havoc Pennington <hp@redhat.com>
6064 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6065 thing was implemented
6067 2004-11-26 Havoc Pennington <hp@redhat.com>
6069 * test/glib/test-profile.c: tweak a bit, add support for some
6070 made-up minimal malloc overhead with plain sockets, since in
6071 real life some sort of buffers are unavoidable thus we could
6072 count them in the theoretical best case
6074 2004-11-26 Havoc Pennington <hp@redhat.com>
6076 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6077 where I was trying to cache one too many messages
6079 2004-11-26 Havoc Pennington <hp@redhat.com>
6081 * dbus/dbus-message.c: reimplement message cache as an array which
6082 makes the cache about twice as fast and saves maybe 1.5% overall
6084 2004-11-26 Havoc Pennington <hp@redhat.com>
6086 * dbus/dbus-threads.c (init_global_locks): forgot to put the
6087 message cache lock here
6089 2004-11-26 Havoc Pennington <hp@redhat.com>
6091 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6092 the "char byte_order" next to each other to save 4 bytes
6093 (dbus_message_new_empty_header): reduce preallocation, since the
6094 message cache should achieve a similar effect
6095 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6096 message cache that keeps a few DBusMessage around in a pool,
6097 another 8% speedup or so.
6099 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6101 2004-11-25 Havoc Pennington <hp@redhat.com>
6103 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6104 to write, without reading or blocking, try it before the poll()
6105 and skip the poll() if nothing remains to write. This is about a
6106 3% speedup in the echo client/server
6108 2004-11-25 Havoc Pennington <hp@redhat.com>
6110 The primary change here is to always write() once before adding
6111 the write watch, which gives us about a 10% performance increase.
6113 * dbus/dbus-transport-unix.c: a number of modifications to cope
6114 with removing messages_pending
6115 (check_write_watch): properly handle
6116 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6117 messages_pending stuff
6118 (check_read_watch): properly handle WAITING_FOR_MEMORY and
6120 (unix_handle_watch): after writing, see if the write watch can be
6122 (unix_do_iteration): assert that write_watch/read_watch are
6123 non-NULL rather than testing that they aren't, since they
6124 aren't allowed to be NULL. check_write_watch() at the end so
6125 we add the watch if we did not finish writing (e.g. got EAGAIN)
6127 * dbus/dbus-transport-protected.h: remove messages_pending call,
6128 since it resulted in too much inefficient watch adding/removing;
6129 instead we now require that the transport user does an iteration
6130 after queueing outgoing messages, and after trying the first
6131 write() we add a write watch if we got EAGAIN or exceeded our
6132 max bytes to write per iteration setting
6134 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6137 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6138 freed and then accessed, valgrind flagged this bug, fix it
6140 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6141 as the last valid field plus 1, where really it is equal to the
6142 last valid field. Corrects some message corruption issues.
6144 * dbus/dbus-mainloop.c: verbosity changes
6146 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6147 instead of aborting in one of the test codepaths
6149 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6150 caused not printing the pid ever again if a verbose was missing
6151 the newline at the end
6152 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6154 * dbus/dbus-connection.c: verbosity changes;
6155 (dbus_connection_has_messages_to_send): new function
6156 (_dbus_connection_message_sent): no longer call transport->messages_pending
6157 (_dbus_connection_send_preallocated_unlocked): do one iteration to
6158 try to write() immediately, so we can avoid the write watch. This
6159 is the core purpose of this patchset
6160 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6161 dump the outgoing message queue, so nobody will get confused
6162 trying to send them or thinking stuff is pending to be sent
6164 * bus/test.c: verbosity changes
6166 * bus/driver.c: verbosity/assertion changes
6168 * bus/dispatch.c: a bunch of little tweaks to get it working again
6169 because this patchset changes when/where you need to block.
6171 2004-11-23 Havoc Pennington <hp@redhat.com>
6173 * test/glib/test-profile.c: modify to accept a plain_sockets
6174 argument in which case it will bench plain sockets instead of
6175 libdbus, for comparison purposes.
6177 2004-11-22 Havoc Pennington <hp@redhat.com>
6179 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6180 threads for more time, so sysprof can get a grip on it.
6182 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6185 2004-11-13 Havoc Pennington <hp@redhat.com>
6187 * test/glib/test-profile.c: fix this thing up a bit
6189 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6190 preallocation sizes by a fair bit; not sure if this will be an
6191 overall performance win or not, but it does reduce reallocs.
6193 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6194 the test hack that forced constant realloc if asserts are
6195 disabled, so we can profile sanely. Sprinkle in some
6196 _DBUS_UNLIKELY() which are probably pointless, but before I
6197 noticed the real performance problem I put them in.
6198 (_dbus_string_validate_utf8): micro-optimize this thing a little
6199 bit, though callgrind says it didn't help; then special-case
6200 ascii, which did help a lot; then be sure we detect nul bytes as
6201 invalid, which is a bugfix.
6202 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6203 superstition; use memset to nul the padding instead of a manual
6205 (_dbus_string_get_length): inline this as a
6206 macro; it showed up in the profile because it's used for loop
6209 2004-11-10 Colin Walters <walters@verbum.org>
6211 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6214 2004-11-09 Colin Walters <walters@verbum.org>
6216 * dbus/dbus-string.c (_dbus_string_get_length): New
6217 function, writes DBusString to C buffer.
6219 * dbus/dbus-string.h: Prototype it.
6221 * dbus/dbus-message.c (dbus_message_type_to_string): New
6222 function, converts message type into C string.
6224 * dbus/dbus-message.h: Prototype it.
6226 * bus/selinux.c (bus_selinux_check): Take source pid,
6227 target pid, and audit data. Pass audit data to
6229 (log_audit_callback): New function, appends extra
6231 (bus_selinux_allows_acquire_service): Also take
6232 service name, add it to audit data.
6233 (bus_selinux_allows_send): Also take message
6234 type, interface, method member, error name,
6235 and destination, and add them to audit data.
6236 (log_cb): Initialize func_audit.
6238 * bus/selinux.h (bus_selinux_allows_acquire_service)
6239 (bus_selinux_allows_send): Update prototypes
6241 * bus/services.c (bus_registry_acquire_service): Pass
6242 service name to bus_selinux_allows_acquire_service.
6244 * bus/bus.c (bus_context_check_security_policy): Pass
6245 additional audit data. Move assignment of dest
6248 2004-11-07 Colin Walters <walters@verbum.org>
6250 * dbus/dbus-transport-unix.c (do_authentication): Always
6251 initialize auth_completed.
6253 2004-11-07 Colin Walters <walters@verbum.org>
6255 * bus/bus.c (load_config): Break into three
6256 separate functions: process_config_first_time_only,
6257 process_config_every_time, and process_config_postinit.
6258 (process_config_every_time): Move call of
6259 bus_registry_set_service_context_table into
6260 process_config_postinit.
6261 (process_config_postinit): New function, does
6262 any processing that needs to happen late
6263 in initialization (and also on reload).
6264 (bus_context_new): Instead of calling load_config,
6265 open config parser here and call process_config_first_time_only
6266 and process_config_every_time directly. Later, after
6267 we have forked but before changing UID,
6268 invoke bus_selinux_full_init, and then call
6269 process_config_postinit.
6270 (bus_context_reload_config): As in bus_context_new,
6271 load parse file inside here, and call process_config_every_time
6272 and process_config_postinit.
6274 * bus/services.h, bus/services.c
6275 (bus_registry_set_service_context_table): Rename
6276 from bus_registry_set_sid_table. Take string hash from config
6277 parser, and convert them here into SIDs.
6279 * bus/config-parser.c (struct BusConfigParser): Have
6280 config parser only store a mapping of service->context
6282 (merge_service_context_hash): New function.
6283 (merge_included): Merge context string hashes instead
6284 of using bus_selinux_id_table_union.
6285 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6286 simply create a new string hash.
6287 (bus_config_parser_unref): Unref it.
6288 (start_selinux_child): Simply insert strings into hash,
6289 don't call bus_selinux_id_table_copy_over.
6291 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6292 (bus_selinux_id_table_copy_over): Delete.
6294 2004-11-03 Colin Walters <walters@verbum.org>
6296 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6299 2004-11-03 Colin Walters <walters@verbum.org>
6301 * bus/test-main.c (test_pre_hook): Fix test logic,
6302 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6304 2004-11-02 Colin Walters <walters@redhat.com>
6306 * bus/selinux.c (bus_selinux_init): Split into two functions,
6307 bus_selinux_pre_init and bus_selinux_post_init.
6308 (bus_selinux_pre_init): Just determine whether SELinux is
6310 (bus_selinux_post_init): Do everything else.
6312 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6313 config file, and bus_selinux_post_init after. This ensures that
6314 we don't lose the policyreload notification thread that
6315 bus_selinux_init created before forking previously.
6317 * bus/test-main.c (test_pre_hook): Update for split.
6319 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6321 Patch from Johan Fischer <linux@fischaz.com>
6323 * mono/doc/Makefile.am (install-data-local): Added directory
6326 2004-10-29 Colin Walters <walters@redhat.com>
6328 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6329 parameter for fd to write pid to.
6331 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6333 * bus/bus.c (bus_context_new): Pass print_pid_fd
6334 to _dbus_become_daemon (bug #1720)
6336 2004-10-29 Colin Walters <walters@redhat.com>
6338 Patch from Ed Catmur <ed@catmur.co.uk>
6340 * mono/doc/Makefile.am (install-data-local): Handle
6343 2004-10-29 Colin Walters <walters@redhat.com>
6345 * bus/.cvsignore, qt/.cvsignore: Update.
6347 2004-10-29 Colin Walters <walters@redhat.com>
6349 Patch from Kristof Vansant <de_lupus@pandora.be>
6351 * configure.in: Detect Slackware.
6352 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6353 * bus/rc.messagebus.in: New file.
6355 2004-10-29 Colin Walters <walters@redhat.com>
6357 * tools/dbus-monitor.c (filter_func): Return
6358 DBUS_HANDLER_RESULT_HANDLED in filter function
6360 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6362 2004-10-29 Colin Walters <walters@redhat.com>
6364 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6366 * bus/services.c (bus_registry_acquire_service):
6367 Correctly retrieve service name from DBusString
6370 2004-10-29 Colin Walters <walters@redhat.com>
6372 * dbus/dbus-glib.h: Update documentation to not
6373 refer to internal APIs.
6375 2004-10-27 Joe Shaw <joeshaw@novell.com>
6377 * mono/Arguments.cs (GetDBusTypeConstructor):
6378 type.UnderlyingSystemType will return "System.Byte" if you do it
6379 on "byte[]", which is not what we want. So check the type.IsArray
6380 property and use System.Array instead.
6382 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6384 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6385 the DBusUserInfo structure since this is passed into the function.
6386 This would cause a double free when the function that allocated
6387 the structure would try to free it when an error occured.
6389 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6390 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6391 for service activation to avoid 32bit/64bit parallel install issues
6393 2004-10-21 Colin Walters <walters@verbum.org>
6395 * AUTHORS: Fix my email address, the @gnu.org one
6396 has been bouncing for some time. Also add J5.
6398 2004-10-21 Colin Walters <walters@verbum.org>
6400 * dbus/dbus-transport-unix.c (do_authentication): Return
6401 authentication status to callers.
6402 (unix_handle_watch): If we completed authentication this round,
6403 don't do another read. Instead wait until the next iteration,
6404 after we've read any pending data in the auth buffer.
6405 (unix_do_iteration): Ditto.
6406 (unix_handle_watch): Updated for new do_authentication prototype.
6408 2004-10-18 Colin Walters <walters@verbum.org>
6410 * bus/selinux.c (bus_selinux_enabled): Handle
6411 --disable-selinux case.
6413 2004-10-18 Colin Walters <walters@verbum.org>
6415 * bus/selinux.h: Add bus_selinux_enabled.
6417 * bus/selinux.c (bus_selinux_enabled): Implement it.
6419 * bus/config-parser.c (struct include): Add
6420 if_selinux_enabled member.
6421 (start_busconfig_child): Parse if_selinux_enabled
6422 attribute for include.
6423 (bus_config_parser_content): Handle it.
6425 * bus/session.conf.in, bus/system.conf.in: Add
6426 inclusion of context mapping to default config files;
6427 conditional on SELinux being enabled.
6429 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6431 * test/data/invalid-config-files/badselinux-1.conf,
6432 test/data/invalid-config-files/badselinux-2.conf:
6433 Test files for bad syntax.
6435 2004-10-17 Colin Walters <walters@verbum.org>
6437 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6438 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6439 format specifier mismatches.
6441 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6443 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6446 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6447 pointer (bug #1540, Leonardo Boiko).
6449 2004-09-28 Jon Trowbridge <trow@ximian.com>
6451 * mono/BusDriver.cs: Changed BusDriver struct to remove
6452 the ServiceCreated and ServiceDeleted events and replace them
6453 with the new ServiceOwnerChanged event.
6455 * mono/example/BusListener.cs: Added a new example program,
6456 which listens for and reports any ServiceOwnerChanged events
6459 * mono/example/Makefile.am (DESTDIR): Build changes for the
6460 new BusListener.cs example.
6462 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6464 * bus/signals.c (bus_match_rule_parse): validate the components of
6465 match rules (bug #1439).
6467 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6469 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6471 * doc/dbus-specification.xml: document ServiceOwnerChanged
6474 * bus/driver.c, bus/driver.h, bus/services.c: Use
6475 ServiceOwnerChanged signal instead of ServiceCreated and
6478 * bus/dispatch.c: update testcase for the new signal.
6480 2004-09-20 Jon Trowbridge <trow@ximian.com>
6482 Patch from Nat Friedman <nat@novell.com>
6484 * mono/Makefile.am: A number of small build fixes to allow "make
6485 distcheck" to succeed.
6487 * mono/example/Makefile.am: "make distcheck" fixes.
6489 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6492 * test/Makefile.am: "make distcheck" fixes.
6494 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6496 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6498 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6500 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6501 messages after the first one (bug #1389).
6503 * bus/dispatch.c (check_double_hello_message): add a test case for
6504 the double hello message bug.
6505 (check_existent_service_activation): fix check of spawning error.
6507 2004-09-16 David Zeuthen <david@fubar.dk>
6509 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6511 2004-09-12 David Zeuthen <david@fubar.dk>
6513 Patch from Kay Sievers <kay.sievers@vrfy.org>
6515 * bus/bus.c (bus_context_new):
6517 * bus/main.c (usage)
6519 Add commandline option --nofork to override configuration file
6522 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6524 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6525 compilers don't like it (bug #974).
6527 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6529 * qt/connection.*: Applied patch by Jérôme Lodewyck
6530 <lodewyck@clipper.ens.fr> to integrate an existing
6531 connection into the Qt eventloop
6533 2004-08-30 Jon Trowbridge <trow@ximian.com>
6535 * mono/BusDriver.cs: Added. This is a class for interacting with
6536 the org.freedesktop.DBus service.
6538 * mono/Message.cs: Added a mechanism to expose the message that is
6539 currently being dispatched via the static Message.Current
6540 property. Added Message.Sender and Message.Destination
6543 * mono/Handler.cs: Expose the dispatched message via
6544 Message.Current when handling method calls.
6546 * mono/Service.cs: Expose the dispatched message via
6547 Message.Current when handling signal emissions.
6549 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6550 Connection.BaseService property.
6552 2004-08-28 Havoc Pennington <hp@redhat.com>
6554 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6556 More fixes from Steve Grubb
6558 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6559 (_dbus_listen_tcp_socket): fix fd leak
6561 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6562 EINTR to a bit lower in the code
6564 2004-08-26 Jon Trowbridge <trow@ximian.com>
6566 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6567 TRUE if we are inquiring about the existence of the built-in
6568 org.freedesktop.DBus service.
6570 2004-08-25 John Palmieri <johnp@redhat.com>
6571 * bus/config-parser.c:
6572 (struct PolicyType): Add POLICY_CONSOLE
6573 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6574 (start_busconfig_child): Sets up console element when
6575 <policy at_console=""> is encountered in a policy file
6576 (append_rule_from_element): Convert console elements to console
6580 (bus_policy_create_client_policy): Add console rules to the client
6581 policy based on if the client is at the console
6582 (bus_policy_append_console_rule): New function for adding a
6583 console rule to a policy
6584 (bus_policy_merge): Handle console rule merging
6586 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6587 where we check for console user files
6589 * dbus/dbus-sysdeps.c:
6590 (_dbus_file_exists): New function which checks if the given
6592 (_dbus_user_at_console): New function which does the system
6593 specific process of checking if the user is at the console
6595 * dbus/dbus-userdb.c:
6596 (_dbus_is_console_user): New function converts a UID to user name
6597 and then calls the system specific _dbus_user_at_console to
6598 see if the user is at the console and therefor a console user
6600 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6602 * bus/config-parser.c (set_limit):
6603 * bus/dbus-daemon-1.1.in:
6604 * test/data/valid-config-files/many-rules.conf: set the
6605 max_match_rules_per_connection limt from the config file.
6607 * doc/busconfig.dtd: update the DTD.
6609 * bus/driver.c: remove some unused variables.
6611 2004-08-24 Mikael Hallendal <micke@imendio.com>
6613 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6614 it's been replaced by dbus_g_bus_get
6616 2004-08-23 Colin Walters <walters@redhat.com>
6618 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6620 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6622 * bus/selinux.c: Create a thread for policy reload notification.
6623 (bus_selinux_get_policy_root): Implement.
6625 * bus/config-parser.c (start_busconfig_child)
6626 (bus_config_parser_content): Support SELinux-root relative
6629 * configure.in <HAVE_SELINUX>: Add -lpthread.
6631 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6632 (test_post_hook): Move memory checking into here.
6633 (test_pre_hook, test_post_hook): Move SELinux checks in
6634 here, but conditional on a DBUS_TEST_SELINUX environment
6635 variable. Unfortunately we can't run the SELinux checks
6636 as a normal user, since they won't have any permissions
6637 for /selinux. So this will have to be tested manually
6638 for now, until we have virtualization for most of
6641 2004-08-23 Havoc Pennington <hp@redhat.com>
6643 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6644 drop supplementary groups, suggested by Steve Grubb
6646 2004-08-20 Colin Walters <walters@redhat.com>
6648 * bus/config-parser.c (start_busconfig_child): Remove some unused
6651 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6654 2004-08-17 Joe Shaw <joeshaw@novell.com>
6656 * configure.in: If --enable-mono is passed in, if we can't find
6659 * mono/Makefile.am: Use /gacutil to install assemblies into the
6662 2004-08-12 Havoc Pennington <hp@redhat.com>
6664 * NEWS: update for 0.22
6666 * configure.in: release 0.22
6668 2004-08-11 Colin Walters <walters@redhat.com>
6670 * tools/dbus-send.c (main, usage): Add --reply-timeout
6673 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6675 * bus/bus.c (process_config_first_time_only): get rid of an unused
6676 DBusError that was causing a memoy leak (bug #989).
6678 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6679 fix compilation on Solaris/Forte C (bug #974)
6681 * bus/main.c (main): plug two minuscule memleaks.
6683 2004-08-10 Havoc Pennington <hp@redhat.com>
6685 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6687 2004-08-09 Havoc Pennington <hp@redhat.com>
6689 * COPYING: switch to Academic Free License version 2.1 instead of
6690 2.0, to resolve complaints about patent termination clause.
6692 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6694 * README: added documentation for the --enable-python
6697 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6699 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6700 _unref in the SELinux support.
6702 * doc/busconfig.dtd: update DTD for SELinux support.
6704 * bus/config-loader-libxml.c: fix error handler and parser
6705 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6707 * configure.in: remove the warning about libxml2.
6709 * dbus/dbus-bus.c: silence doxygen warning.
6711 2004-07-31 Colin Walters <walters@redhat.com>
6713 * configure.in: Move #error in SELinux check to its own line.
6715 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6717 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6718 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6721 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6722 broken by the change in the _SET_OOM macros.
6724 2004-07-31 Colin Walters <walters@redhat.com>
6726 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6729 2004-07-31 Colin Walters <walters@redhat.com>
6731 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6732 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6735 2004-07-24 Havoc Pennington <hp@redhat.com>
6737 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6739 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6742 * configure.in: add --enable-selinux
6744 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6746 * bus/main.c (main): initialize and shut down selinux
6748 * bus/connection.c: store SELinux ID on each connection, to avoid
6749 repeated getting of the string context and converting it into
6752 * bus/bus.c (bus_context_get_policy): new accessor, though it
6754 (bus_context_check_security_policy): check whether the security
6755 context of sender connection can send to the security context of
6756 recipient connection
6758 * bus/config-parser.c: add parsing for <selinux> and <associate>
6760 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6761 implement dbus_connection_get_unix_fd()
6763 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6764 function, used by the selinux stuff
6766 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6768 * bus/config-loader-libxml.c: complete the implementation of
6769 libxml backend for config file loader. Doesn't work with full OOM
6772 * configure.in: change error when selecting libxml into a warning.
6774 * test/data/invalid-config-files: add two non-well-formed XML
6777 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6779 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6780 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6781 be necessary to read all the buffer. (bug #894)
6783 * bus/activation.c (bus_activation_activate_service): fix a
6784 potential assertion failure (bug #896). Small optimization in the
6785 case of auto-activation messages.
6787 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6788 add test case for byte-through-vararg bug (#901). patch by Kimmo
6791 2004-07-28 Anders Carlsson <andersca@gnome.org>
6794 * python/dbus_bindings.pyx.in:
6795 Add dbus.init_gthreads (), allow emit_signal to pass
6796 arguments to the signal.
6798 2004-07-24 Havoc Pennington <hp@redhat.com>
6800 * AUTHORS: add some people, not really comprehensively, let me
6801 know if I missed you
6803 2004-07-24 Havoc Pennington <hp@redhat.com>
6805 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6808 * test/Makefile.am (DIST_SUBDIRS): here also
6810 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6812 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6813 breaking build on Solaris, reported by Farhad Saberi on the ML.
6815 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6816 va_arg invocation to account for integer promotion in the case of
6817 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6819 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6820 _dbus_list_get_first_link, not _dbus_list_get_first.
6822 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6824 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6825 handler functions so that the asserts in _dbus_object_subtree_unref
6828 * dbus/dbus-transport-unix.c (do_reading):
6829 _dbus_transport_queue_messages return value is of type
6830 dbus_bool_t, not DBusDispatchStatus.
6832 2004-07-19 David Zeuthen <david@fubar.dk>
6834 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6837 (check_get_connection_unix_user): Debug says GetProperty; but the
6838 method is called GetConnectionUnixUser
6839 (check_get_connection_unix_process_id): New function
6840 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6841 also call check_get_connection_unix_process_id()
6844 (bus_driver_handle_get_connection_unix_process_id): New function,
6845 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6849 (handle_server_data_external_mech): Set pid from the credentials
6850 obtained from the socket
6852 * dbus/dbus-connection.c:
6853 (dbus_connection_get_unix_process_id): New function
6855 * dbus/dbus-connection.h:
6856 Add prototype for dbus_connection_get_unix_process_id
6858 * dbus/dbus-transport.c:
6859 (_dbus_transport_get_unix_process_id): New function
6861 * dbus/dbus-transport.h:
6862 Add prototype for _dbus_transport_get_unix_process_id
6864 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6866 * dbus/dbus-message.c: Message counter fix, patch by Christian
6867 Hammond <chipx86@gnupdate.org>
6869 2004-07-18 Seth Nickell <seth@gnome.org>
6872 * python/dbus_bindings.pyx.in:
6873 * python/tests/test-client.py:
6875 Add dbus.ByteArray and dbus_bindings.ByteArray
6876 types so that byte streams can be passed back.
6878 Give jdahlin the heaps of credit that are so
6881 2004-07-12 Seth Nickell <seth@gnome.org>
6885 Add message argument to the default object_method_handler
6888 * python/dbus_bindings.pyx.in:
6890 Automatically return NIL when passed an empty list
6891 (we can't pass back a list since lists are typed
6892 and we don't have any idea what type the the client
6893 intended the list to be... :-( )
6895 2004-07-10 Seth Nickell <seth@gnome.org>
6897 * python/examples/Makefile.am:
6899 Fix distcheck breakage caused by new examples.
6901 2004-07-10 Seth Nickell <seth@gnome.org>
6905 Add "message" argument to service-side dbus.Object
6906 methods. This will break existing services written
6907 using the python bindings, but will allow extraction
6908 of all the message information (e.g. who its from).
6910 Add improved "object oriented" signal handling/emission.
6912 * python/examples/example-service.py:
6916 * python/examples/example-signal-emitter.py:
6917 * python/examples/example-signal-recipient.py:
6919 Two new examples that show how to emit and receive
6920 signals using the new APIs.
6922 * python/examples/example-signals.py:
6923 * python/examples/gconf-proxy-service.py:
6924 * python/examples/gconf-proxy-service2.py:
6926 Add "message" argument to service methods.
6928 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6930 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6931 * dbus/bus.c (dbus_bus_get_unix_user)
6932 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6933 method of org.freedesktop.DBus interface.
6935 * bus/dispatch.c: test case
6937 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6939 * python/Makefile.am: switched include directory from glib/ to dbus/
6940 since dbus-glib.h moved
6942 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6944 * configure.in: prevent building the gcj stuff and libxml loader
6945 since they are broken.
6947 2004-06-20 Havoc Pennington <hp@redhat.com>
6949 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6950 codes from the dbus error names
6952 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6953 as dbus/dbus-glib.h and that breakage is now visible due to
6954 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6956 * glib/dbus-glib.h: s/gproxy/g_proxy/
6958 * dbus/dbus-shared.h: new header to hold stuff shared with
6961 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6964 * glib/dbus-glib.h (dbus_set_g_error): move to
6965 dbus-glib-lowlevel.h
6967 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6968 of stuff to enable this
6970 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6972 * a bunch of other changes with the same basic "separate glib
6973 bindings from dbus.h" theme
6975 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6977 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6979 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6981 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6983 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6984 the reply value of the ServiceExists message.
6986 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6988 * python/dbus_bindings.pyx.in: No longer need to parse path
6989 elements and pass them as arrays of strings. The C API now
6990 accepts plain path strings.
6991 (_build_parsed_path): removed
6993 2004-06-07 Havoc Pennington <hp@redhat.com>
6995 * doc/TODO: remove auto-activation item since it's done; sort
6996 items by importance/milestone
6998 2004-06-07 Havoc Pennington <hp@redhat.com>
7000 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7001 random signature when using REQUIRED_FIELDS (this hack won't work
7004 * dbus/dbus-message.c: change the signature to be a header field,
7005 instead of message->signature special-case string. Incremental
7006 step forward. Then we can fix up code to send the signature in the
7007 message, then fix up code to validate said signature, then fix up
7008 code to not put the typecodes inline, etc.
7009 (load_one_message): don't make up the signature after the fact
7010 (decode_header_data): require signature field for the known
7013 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7015 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7017 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
7019 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7021 * mono/Handler.cs: Updated to follow new path argument for
7022 (un-)registering objects.
7024 * mono/example/Makefile.am:
7026 * configure.in: Bumped required version for mono and use new -pkg
7029 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
7031 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7032 registration functions take the path argument as char* instead of
7035 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7036 split off the path decompostion part of
7037 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7040 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7042 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7044 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7045 machine approach. A state is implemented as a function that
7046 handles incoming events as specified for that state.
7048 * doc/dbus-specification.xml: Update auth protocol state machine
7049 specification to match implementation. Remove some leftover
7052 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7054 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7055 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7058 * Doxyfile.in: remove deprecated options.
7060 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7061 glib/test-thread.h, glib/test-thread-client.c,
7062 glib/test-thread-server.c, glib/test-profile.c,
7063 glib/test-dbus-glib.c: remove these unused files.
7065 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
7067 * dbus/dbus-object-tree.c
7068 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7069 non-fallback handlers (bug #684).
7070 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7071 (find_subtree_recurse): report wether the returned subtree is an
7072 exact match or a "fallback" match higher up in the tree.
7073 (object_tree_test_iteration): update test case.
7075 2004-06-01 Seth Nickell <seth@gnome.org>
7077 * python/dbus_bindings.pyx.in:
7078 * python/tests/test-client.py:
7080 Round off basic type support. Add dicts (yay!), and
7081 remaining array types.
7083 Make MessageIter more general so it works for dicts too.
7085 Mark all loop variables as C integers.
7087 2004-05-31 Havoc Pennington <hp@redhat.com>
7089 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7092 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7094 * glib/dbus-glib-tool.c (main): set up to have a --self-test
7095 option that runs the tests, and start filling in some code
7096 including for starters just dumping the interfaces to stdout
7098 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7100 * test/data/valid-introspection-files/lots-of-types.xml: test of
7101 an example introspection file
7103 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7106 2004-05-31 Seth Nickell <seth@gnome.org>
7108 * python/dbus_bindings.pyx.in:
7109 * python/tests/test-client.py:
7114 Fix string array memory trashing bug... oops...
7116 2004-05-30 Seth Nickell <seth@gnome.org>
7120 Add a nicer-but-less-flexible alternate API for handling
7121 calls to virtual objects in dbus.ObjectTree.
7123 Screw up the argument order to the dbus.Object constructor
7124 for consistency with dbus.ObjectTree (and to make dbus_methods
7125 optional for future extension)
7127 * python/examples/Makefile.am:
7128 * python/examples/gconf-proxy-service.py:
7129 * python/examples/gconf-proxy-service2.py:
7131 Alternate implementation of gconf-proxy-service using the
7132 nicer dbus.ObjectTree API.
7134 * python/examples/example-service.py:
7135 * python/tests/test-server.py
7137 Reverse the argument order to deal with dbus.Object constructor
7140 2004-05-30 Seth Nickell <seth@gnome.org>
7142 * python/examples/example-client.py:
7143 * python/examples/example-service.py:
7145 Take it back. Lists seem to work but they're broken
7146 in the test suite. Make the base examples use
7149 2004-05-30 Seth Nickell <seth@gnome.org>
7151 * python/dbus_bindings.pyx.in:
7152 * python/tests/test-client.py:
7154 Add some more tests and fix errors that crop up.
7155 Unfortunately, currently it seems like marshalling
7156 and unmarshalling of lists is completely broken :-(
7158 2004-05-30 Seth Nickell <seth@gnome.org>
7160 * python/dbus_bindings.pyx.in:
7162 Add support for ObjectPath type.
7166 Refactor message handling code to a common function.
7168 * python/tests/test-client.py:
7169 * python/tests/test-server.py:
7171 Add tests that check to make sure values of all types
7172 can be echoed from a service w/o mangling.
7174 2004-05-29 Seth Nickell <seth@gnome.org>
7178 Add ObjectTree class which allows implementation
7179 of trees of "virtual" objects. Basically the python
7180 wrapper for "register_fallback".
7182 * python/examples/Makefile.am
7183 * python/examples/gconf-proxy-client.py:
7184 * python/examples/gconf-proxy-service.py:
7186 Implement a simple GConf proxy service that supports
7187 get/set on string and int GConf keys using the ObjectTree.
7189 2004-05-29 Seth Nickell <seth@gnome.org>
7192 * python/examples/example-client.py:
7193 * python/examples/example-service.py:
7194 * python/examples/list-system-services.py:
7196 Add SessionBus, SystemBus and ActivationBus classes
7197 so you don't need to know the special little BUS_TYPE
7200 2004-05-29 Havoc Pennington <hp@redhat.com>
7202 * bus/config-parser.c (process_test_valid_subdir): temporarily
7203 stop testing config parser OOM handling, since expat has issues
7204 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7206 * bus/dbus-daemon-1.1.in: change requested_reply to
7207 send_requested_reply/receive_requested_reply so we can send the
7208 replies, not just receive them.
7210 * bus/config-parser.c: parse the new
7211 send_requested_reply/receive_requested_reply
7213 * bus/policy.c (bus_client_policy_check_can_send): add
7214 requested_reply argument and use it
7216 * bus/bus.c (bus_context_check_security_policy): pass through
7217 requested_reply status to message send check
7219 * bus/system.conf.in: adapt to requested_reply change
7221 2004-05-28 Havoc Pennington <hp@redhat.com>
7223 * test/glib/test-service-glib.c (main): remove unused variable
7225 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7227 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7228 from the enum, no longer in use.
7230 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7233 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7234 whether error_name passed in is a valid error name.
7236 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
7238 * dbus/dbus-message.c (dbus_message_get_args): Added support for
7239 OBJECT_PATH and OBJECT_PATH_ARRAY
7241 2004-05-28 Seth Nickell <seth@gnome.org>
7243 * python/examples/Makefile.am:
7245 Forget to add Makefile.am. Do not pass go.
7247 2004-05-28 Michael Meeks <michael@ximian.com>
7249 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
7252 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7254 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7255 (_dbus_message_iter_get_basic_type_array): impl.
7256 drastically simplify ~all relevant _get methods to use these.
7257 (_dbus_message_iter_append_basic_array),
7258 (dbus_message_iter_append_basic): impl
7259 drastically simplify ~all relevant _append methods to use these.
7261 * dbus/dbus-message-builder.c (parse_basic_type)
7262 (parse_basic_array, lookup_basic_type): impl.
7263 (_dbus_message_data_load): prune scads of duplicate /
7266 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7267 (_dbus_demarshal_basic_type): implement,
7268 (demarshal_and_validate_len/arg): beef up debug.
7269 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7271 2004-05-27 Seth Nickell <seth@gnome.org>
7274 * python/Makefile.am:
7276 Include the example python apps in the tarball.
7278 * python/examples/list-system-services.py
7280 Add a python new example that fetches the list of services
7281 from the system bus.
7283 2004-05-27 Seth Nickell <seth@gnome.org>
7286 * python/dbus_bindings.pyx.in:
7288 Fix failure to notify that a signal was not handled,
7289 resulted in hung functions.
7291 2004-05-25 Colin Walters <walters@redhat.com>
7293 * tools/dbus-monitor.c (main): Monitor all types of messages.
7295 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7297 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7298 which unregisters the object path and disposes the handler.
7300 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7302 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7304 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7305 operands to && so we call dbus_message_iter_next () for the last
7308 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7310 * dbus/dbus-object-tree.c
7311 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7312 children even if the requested path isn't registered.
7313 (object_tree_test_iteration): test object_tree_list_registered.
7315 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7318 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7320 * doc/TODO: Remove resolved items.
7322 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7325 * bus/connection.c (bus_connections_expect_reply): Enforce the
7326 per-connection limit on pending replies.
7328 Patch from Jon Trowbridge <trow@ximian.com>:
7330 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7331 up a watch that triggers a config reload when one end of the pipe
7333 (signal_handler): Instead of doing the config reload in our SIGHUP
7334 handler, just write to the reload pipe and let the associated
7335 watch handle the reload when control returns to the main loop.
7337 * bus/driver.c (bus_driver_handle_reload_config): Added.
7338 Implements a ReloadConfig method for requesting a configuration
7339 file reload via the bus driver.
7341 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7343 * HACKING: Updated release instructions concerning the wiki page.
7345 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7347 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7348 filter against auth->allowed_mechs; we only add allowed mechs in
7349 record_mechanisms().
7351 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7352 ALLOWED_MECHS to auth-script format so we can set the list of
7355 * data/auth/client-out-of-mechanisms.auth-script: New test to
7356 check client disconnects when it is out of mechanisms to try.
7358 * dbus/dbus-auth.c (process_command): Remove check for lines
7359 longer that 1 MB; we only buffer up maximum 16 kB.
7361 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7362 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7363 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7364 assume there might be unused bytes.
7366 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7367 client-out-of-mechs, it is handled in process_reject(). Move check
7368 for max failures to send_rejected(), as it's a server-only thing.
7370 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7371 send_auth(), send_data(), send_rejected(), send_error(),
7372 send_ok(), send_begin() and send_cancel().
7374 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7376 Remove base64 encoding, replace with hex encoding. Original patch
7377 from trow@ximian.com, added error handling.
7379 * dbus/dbus-string.c (_dbus_string_base64_encode)
7380 (_dbus_string_base64_decode): Remove.
7381 (_dbus_string_hex_decode): Add end_return argument so we can
7382 distinguish between OOM and invalid hex encoding.
7383 (_dbus_string_test): Remove base64 tests and add test case for
7386 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7387 Replace base64 with hex.
7389 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7390 for invalid hex encoded data in auth protocol.
7392 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7394 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7397 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7399 * mono/dbus-sharp.dll.config.in: Added for GAC
7400 * mono/dbus-sharp.snk: Added for GAC
7401 * mono/Assembly.cs.in: Added for GAC
7402 * mono/Makefile.am: Changes for GAC installation
7403 * configure.in: Added refs for dbus-sharp.dll.config.in and
7404 Assembly.cs.in. More fixes for mono testing
7405 * mono/example/Makefile.am: Changed var to CSC
7406 * Makefile.am: Changed flag name to DBUS_USE_CSC
7408 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7410 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7411 * mono/doc/*: Added documentation framework
7412 * configure.in: Added monodoc check
7413 * README: Added description of mono configure flags
7415 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7417 * doc/dbus-specification.xml: Added a "Required" column to the
7418 header fields table and changed the "zero or more" verbage in
7419 the above paragraph to read "The header must contain the required
7420 named header fields and zero or more of the optional named header
7422 * test/data/invalid-messages/*.message: Added the required PATH
7423 named header field to the tests so that they don't fail on
7424 'Missing path field'
7426 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7428 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7429 the stack by implicitly defining variable and parameter types and
7430 removing the hack of defining C pointers as python objects and later
7433 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7435 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7437 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7439 * mono/DBusType/Dict.cs: Handle empty dicts
7440 * mono/DBusType/Array.cs: Handle empty arrays
7441 * mono/Arguments.cs: Handle empty arguments
7443 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7445 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7448 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7450 * test/data/valid-messages/standard-*.message: Update message
7451 test scripts to new header field names.
7453 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7455 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7456 overflow to times_we_did_each_thing array which would chop off the
7457 first character of the failure_dir string. Increased the size of
7458 the array to 7 to reflect the number of random mutation functions
7461 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7463 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7464 unix_server->watch here, it is unreffed in disconnect.
7465 (_dbus_server_new_for_tcp_socket): convert NULL host to
7466 "localhost" here so we don't append NULL to address.
7468 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7469 various addresses, including tcp with no explicit host.
7471 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7473 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7474 fix incorrect setting of .name_offset in the HeaderField (it was
7475 off by two bytes, positioned right after the name and typecode)
7477 * bus/bus.c (bus_context_new, bus_context_unref): test before
7478 calling dbus_server_free_data_slot and _dbus_user_database_unref
7479 in case of an error.
7481 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7484 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7486 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7487 _dbus_poll() instead of select().
7489 2004-04-15 Jon Trowbridge <trow@ximian.com>
7491 * bus/main.c (signal_handler): Reload the configuration files
7493 (main): Set up our SIGHUP handler.
7495 * bus/bus.c (struct BusContext): Store the config file, user and
7496 fork flag in the BusContext.
7497 (process_config_first_time_only): Added. Contains the code
7498 (previously in bus_context_new) for setting up the BusContext from
7499 the BusConfigParser that should only be run the first time the
7500 config files are read.
7501 (process_config_every_time): Added. Contains the code (previously
7502 in bus_context_new) for setting up the BusContext from the
7503 BusConfigParser that should be run every time the config files are
7505 (load_config): Added. Builds a BusConfigParser from the config
7506 files and passes the resulting structure off to
7507 process_config_first_time_only (assuming this is the first time)
7508 and process_config_every_time.
7509 (bus_context_new): All of the config-related code has been moved
7510 to process_config_first_time_only and process_config_every_time.
7511 Now this function just does the non-config-related initializations
7512 and calls load_config.
7513 (bus_context_reload_config): Added.
7515 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7517 * bus/driver.c (bus_driver_handle_get_service_owner):
7518 implement a GetServiceOwner method.
7519 * doc/dbus-specification.xml: document it.
7520 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7522 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7523 implement, using the bus GetServiceOwner method.
7525 * test/glib/test-dbus-glib.c:
7526 use dbus_gproxy_new_for_service_owner so that we can receive the
7529 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7531 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7532 dbus/dbus-message.c, dbus/dbus-protocol.h
7533 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7535 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7536 dbus/dbus-message.c, dbus/dbus-protocol.h
7537 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7539 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7540 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7541 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7543 * doc/dbus-specification.xml (Header Fields Table):
7544 s/SERVICE/DESTINATION
7545 s/SENDER_SERVICE/SENDER
7548 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7550 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7553 2004-04-13 Michael Meeks <michael@ximian.com>
7555 * glib/dbus-gobject.c (handle_introspect): split out
7556 (introspect_properties): this.
7557 (handle_introspect): implement this.
7559 * test/glib/Makefile.am: use the absolute path so the bus
7560 daemon's chdir ("/") doesn't kill us dead.
7562 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7564 2004-04-12 Jon Trowbridge <trow@ximian.com>
7566 * bus/config-parser.c (struct BusConfigParser): Added
7567 included_files field.
7568 (seen_include): Added. Checks whether or not a file has already
7569 been included by any parent BusConfigParser.
7570 (bus_config_parser_new): Copy the parent's included_files.
7571 (include_file): Track which files have been included, and fail on
7572 circular inclusions.
7573 (process_test_valid_subdir): Changed printf to report if we are
7574 testing valid or invalid conf files.
7575 (all_are_equiv): Changed printf to be a bit clearer about
7576 what we are actually doing.
7577 (bus_config_parser_test): Test invalid configuration files.
7579 2004-04-09 Jon Trowbridge <trow@ximian.com>
7581 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7582 argument. If non-null, the newly-constructed BusConfigParser will
7583 be initialized with the parent's BusLimits instead of the default
7585 (include_file): When including a config file, pass in
7586 the current parser as the parent and then copy the BusLimits
7587 from the included BusConfigParser pack to the current parser.
7588 (process_test_valid_subdir): Renamed from process_test_subdir.
7589 (process_test_equiv_subdir): Added. Walks through a directory,
7590 descending into each subdirectory and loading the config files
7591 it finds there. If any subdirectory contains two config files
7592 that don't produce identical BusConfigParser structs, fail.
7593 For now, the BusConfigParser's BusPolicies are not compared.
7594 (bus_config_parser_test): Call both process_test_valid_subdir and
7595 process_test_equiv_subdir.
7597 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7598 argument and pass it along to the call to bus_config_parser_new.
7599 Also made a few small changes to allow this code to compile.
7601 * bus/config-loader-expat.c (bus_config_load): Take a parent
7602 argument and pass it along to the call to bus_config_parser_new.
7604 * bus/bus.c (bus_context_new): Load the config file
7605 with a NULL parent argument.
7607 2004-03-29 Michael Meeks <michael@ximian.com>
7609 * glib/dbus-gobject.c (introspect_properties): split
7610 out, fix mangled 'while' flow control.
7611 (introspect_signals): implement.
7612 (handle_introspect): update.
7614 2004-03-29 Michael Meeks <michael@ximian.com>
7616 * glib/dbus-gobject.c (set_object_property): split out /
7617 re-work, use the property type, and not the message type(!)
7618 (get_object_property): ditto.
7620 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7621 (dbus_gvalue_marshal): make this code re-usable, needed
7622 for signals too, also on both proxy and server side.
7623 Re-write for more efficiency / readability.
7625 2004-03-29 Michael Meeks <michael@ximian.com>
7627 * dbus/dbus-message.c
7628 (dbus_message_new_error_printf): impl.
7630 * dbus/dbus-connection.c
7631 (dbus_connection_unregister_object_path): fix warning.
7633 * configure.in: fix no-mono-installed situation.
7635 2004-03-27 Havoc Pennington <hp@redhat.com>
7637 Patch from Timo Teräs:
7639 * tools/dbus-send.c (main): if --print-reply, assume type is
7640 method call; support boolean type args
7642 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7643 bunch of memleak and logic bugs
7645 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7647 * mono/Arguments.cs:
7648 * mono/Introspector.cs:
7650 * mono/InterfaceProxy.cs:
7652 * mono/ProxyBuilder.cs:
7654 Added InterfaceProxy class to avoid building proxies for every
7658 * dbus-message.c (dbus_message_append_args_valist)
7659 (dbus_message_iter_get_object_path)
7660 (dbus_message_iter_get_object_path_array)
7661 (dbus_message_iter_append_object_path)
7662 (dbus_message_iter_append_object_path_array):
7663 Added object_path iter functions to handle OBJECT_PATH arguments
7665 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7667 First checkin of mono bindings.
7670 Build stuff for the bindings
7671 * dbus-sharp.pc.in: Added for pkgconfig
7673 2004-03-21 Havoc Pennington <hp@redhat.com>
7675 * test/test-service.c (main): remove debug spew
7677 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7679 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7682 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7683 (dbus_message_iter_init_array_iterator)
7684 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7685 indicate whether the iterator is empty
7687 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7690 2004-03-19 Havoc Pennington <hp@redhat.com>
7692 * NEWS: 0.21 updates
7694 * configure.in: 0.21
7696 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7698 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7699 you don't need pyrex to make dist
7701 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7704 2004-03-18 Richard Hult <richard@imendio.com>
7706 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7707 (dbus_message_set_auto_activation): Add doxygen docs.
7709 2004-03-16 Richard Hult <richard@imendio.com>
7711 * bus/activation.c: (bus_activation_service_created),
7712 (bus_activation_send_pending_auto_activation_messages),
7713 (bus_activation_activate_service):
7715 * bus/dispatch.c: (bus_dispatch),
7716 (check_nonexistent_service_auto_activation),
7717 (check_service_auto_activated),
7718 (check_segfault_service_auto_activation),
7719 (check_existent_service_auto_activation), (bus_dispatch_test):
7720 * bus/driver.c: (bus_driver_handle_activate_service):
7721 * bus/services.c: (bus_registry_acquire_service):
7722 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7723 (dbus_message_get_auto_activation):
7724 * dbus/dbus-message.h:
7725 * dbus/dbus-protocol.h: Implement auto-activation.
7727 * doc/dbus-specification.xml: Add auto-activation to the spec.
7729 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7731 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7732 fix a bug with CUSTOM types.
7734 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7735 a unit test for this bug (used to fail).
7737 2004-03-12 Mikael Hallendal <micke@imendio.com>
7740 (babysitter_watch_callback): notify all pending activations waiting for
7741 the same exec that the activation failed.
7742 (bus_activation_activate_service): shortcut the activation if we
7743 already waiting for the same executable to start up.
7745 2004-03-12 Mikael Hallendal <micke@imendio.com>
7748 - Added service file reloading.
7749 Each service files directory is kept in an hash table in
7750 BusActivation and each BusActivationEntry knows what .service-file it
7751 was read from. So when you try to activate a service the bus will
7752 check if it's been updated, removed or if new .service-files has
7754 - Test code at the bottom for the service file reloading.
7755 * bus/test-main.c: (main):
7757 - added service reloading test.
7758 * dbus/dbus-sysdeps.c:
7759 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7761 2004-03-08 Michael Meeks <michael@ximian.com>
7763 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7764 bail immediately if disconnected, to avoid busy loop.
7766 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7767 cleanup cut/paste/inefficiency.
7769 2004-03-01 David Zeuthen <david@fubar.dk>
7771 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7772 bug where args were used twice. This bug resulted in a segfault
7773 on a Debian/PPC system when starting the messagebus daemon. Include
7774 dbus-sysdeps.h for DBUS_VA_COPY
7776 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7778 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7779 appropriate va_copy implementation. From GLib
7781 2004-02-24 Joe Shaw <joe@ximian.com>
7783 * bus/services.c (bus_registry_acquire_service): We need to pass
7784 in the service name to dbus_set_error() to prevent a crash.
7786 2003-12-26 Anders Carlsson <andersca@gnome.org>
7788 * AUTHORS: Reveal my True identity.
7790 2003-12-17 Mikael Hallendal <micke@imendio.com>
7792 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7793 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7795 2003-12-13 Mikael Hallendal <micke@imendio.com>
7797 * doc/TODO: Added not about better error check of configuration files.
7799 2003-12-02 Richard Hult <richard@imendio.com>
7801 * Update AFL version to 2.0 throughout the source files to reflect
7802 the update that was done a while ago.
7804 2003-12-02 Richard Hult <richard@imendio.com>
7806 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7807 wrote_dict_key to FALSE on the iter that the dict is appended to,
7808 just like when appending other types. Fixes a bug where a dict
7809 couldn't be put inside a dict.
7810 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7811 (message_iter_test, _dbus_message_test): Add test case for dict
7814 2003-12-01 David Zeuthen <david@fubar.dk>
7816 * python/dbus.py: Add the actual message when calling the reciever
7817 of a signal such that parameters can be inspected. Add the method
7818 remove_signal_receiver
7820 2003-11-26 Mikael Hallendal <micke@imendio.com>
7824 * glib/*.[ch]: Made ref functions return the pointer
7826 2003-11-25 Zack Rusin <zack@kde.org>
7828 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7830 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7833 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7834 the Integrator and to better fit with the server,
7836 2003-11-24 Zack Rusin <zack@kde.org>
7838 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7839 the integrator handles it now
7841 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7842 since QTimer wasn't really meant to be used the way DBusTimeout is
7844 2003-11-24 Zack Rusin <zack@kde.org>
7846 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7847 Integrator class which integrates D-BUS with the Qt event loop,
7849 * qt/connection.h, qt/connection.cpp: Move all the code which
7850 was dealing with D-BUS integration to the Integrator class,
7851 and start using Integrator,
7853 2003-11-23 Zack Rusin <zack@kde.org>
7855 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7858 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7859 switching namespaces to DBusQt, reworking the class,
7861 * Makefile.cvs: switching dependencies so that it matches KDE
7864 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7867 2003-11-19 Havoc Pennington <hp@redhat.com>
7871 * configure.in: bump version to 0.20
7873 * configure.in (have_qt): add yet another place to look for qt
7874 (someone hand trolltech a .pc file...)
7876 2003-11-01 Havoc Pennington <hp@redhat.com>
7878 * doc/dbus-specification.xml: add state machine docs on the auth
7879 protocol; just a first draft, I'm sure it's wrong.
7881 2003-10-28 David Zeuthen <david@fubar.dk>
7883 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7884 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7886 2003-10-28 Havoc Pennington <hp@redhat.com>
7888 * dbus/dbus-message.c (get_next_field): delete unused function
7890 2003-10-28 Havoc Pennington <hp@redhat.com>
7892 * bus/expirelist.c (do_expiration_with_current_time): detect
7893 failure of the expire_func due to OOM
7895 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7897 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7898 NoReply error that's now created by the bus when the service exits
7900 2003-10-28 Havoc Pennington <hp@redhat.com>
7902 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7903 tests for set_path, set_interface, set_member, etc.
7905 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7907 * dbus/dbus-message.c (set_string_field): always just delete and
7908 re-append the field; accept NULL for deletion
7909 (re_align_fields_recurse): reimplement
7911 2003-10-26 Havoc Pennington <hp@redhat.com>
7913 * dbus/dbus-connection.c: fix docs to properly describe the
7914 disconnected message
7915 (_dbus_connection_notify_disconnected): remove this function;
7916 we can't synchronously add the disconnected message, we have to
7917 do it after we've queued any remaining real messages
7918 (_dbus_connection_get_dispatch_status_unlocked): queue the
7919 disconnect message only if the transport has finished queueing all
7920 its real messages and is disconnected.
7921 (dbus_connection_disconnect): update the dispatch status here
7923 2003-10-22 Havoc Pennington <hp@redhat.com>
7925 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7927 * bus/connection.c (bus_transaction_send_from_driver): set the
7928 destination to the connection's base service
7930 2003-10-20 Havoc Pennington <hp@redhat.com>
7932 hmm, make check is currently not passing.
7934 * doc/dbus-specification.xml: add requirement that custom type
7935 names follow the same rules as interface names.
7937 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7938 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7941 * doc/dbus-specification.xml: update type codes to match
7942 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7943 CUSTOM. Add type OBJECT_PATH to the spec.
7945 2003-10-17 Havoc Pennington <hp@redhat.com>
7947 * bus/driver.c (create_unique_client_name): use "." as separator
7948 in base service names instead of '-'
7950 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7951 byte at the end of the string
7953 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7954 optimization macros since string validation seems to be a slow
7957 * doc/dbus-specification.xml: restrict valid
7958 service/interface/member/error names. Add test suite code for the
7961 * dbus/dbus-string.c: limit service/interface/member/error names
7964 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7965 format arg to verbose spew
7967 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7968 memory, return instead of g_error
7970 * test/test-service.c (path_message_func): support emitting a
7973 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7974 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7975 assuming the activation bus was the session bus so that services
7976 started manually will still register.
7977 (init_connections_unlocked): fix so that in OOM situation we get
7978 the same semantics when retrying the function
7980 * test/test-service.c (main): change to use path registration, to
7981 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7982 than DBUS_BUS_SESSION
7984 2003-10-16 Havoc Pennington <hp@redhat.com>
7986 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7988 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7989 coverage of the tests
7990 (coverage-report.txt): don't move the .da and .bbg files around
7992 2003-10-16 Havoc Pennington <hp@redhat.com>
7994 * bus/bus.c (struct BusContext): remove struct field I didn't mean
7997 2003-10-16 Havoc Pennington <hp@redhat.com>
7999 * bus/connection.c (bus_pending_reply_expired): either cancel or
8001 (bus_connections_check_reply): use unlink, not remove_link, as we
8002 don't want to free the link; fixes double free mess
8004 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8005 where no reply was received
8007 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8010 * bus/signals.c (match_rule_matches): add special cases for the
8011 bus driver, so you can match on sender/destination for it.
8013 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8014 DBUS_PRINT_BACKTRACE is set
8016 * dbus/dbus-internals.c: add pid to assertion failure messages
8018 * dbus/dbus-connection.c: add message type code to the debug spew
8020 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8021 sender=foo not service=foo
8023 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8024 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
8025 DBUS_ACTIVATION_ADDRESS instead
8027 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8028 DBUS_SYSTEM_BUS_ADDRESS if appropriate
8030 * bus/bus.c (bus_context_new): handle OOM copying bus type into
8033 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8034 (dbus_message_iter_get_object_path_array): new function (half
8035 finished, disabled for the moment)
8037 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8038 DBUS_MESSAGE_TYPE_ERROR
8040 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8041 avoid redirecting stderr to /dev/null
8042 (babysit): close stdin if not doing the "exit_with_session" thing
8044 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8045 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8046 stdout/stdin, so things don't get confused
8048 * bus/system.conf.in: fix to allow replies, I modified .conf
8049 instead of .conf.in again.
8051 2003-10-14 David Zeuthen <david@fubar.dk>
8053 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8054 argtype to arg_type when raising unknown arg type exception.
8055 Changed type list to reflect the changes in dbus-protocol.h so
8056 the bindings actually work.
8058 2003-10-14 Havoc Pennington <hp@redhat.com>
8060 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8061 to have a bug keeping it from outputting the .da files sometimes
8062 (string_get_string): don't append garbage nul bytes to the string.
8064 2003-10-15 Seth Nickell <seth@gnome.org>
8066 * python/Makefile.am:
8068 Include dbus_h_wrapper.h in the dist tarball.
8070 2003-10-14 Havoc Pennington <hp@redhat.com>
8072 * bus/bus.c (bus_context_check_security_policy): revamp this to
8073 work more sanely with new policy-based requested reply setup
8075 * bus/connection.c (bus_transaction_send_from_driver): set bus
8076 driver messages as no reply
8078 * bus/policy.c (bus_client_policy_check_can_receive): handle a
8079 requested_reply attribute on allow/deny rules
8081 * bus/system.conf: add <allow requested_reply="true"/>
8083 * bus/driver.c (bus_driver_handle_message): fix check for replies
8084 sent to the bus driver, which was backward. How did this ever work
8085 at all though? I think I'm missing something.
8087 * dbus/dbus-message.c (decode_header_data): require error and
8088 method return messages to have a reply serial field to be valid
8089 (_dbus_message_loader_queue_messages): break up this function;
8090 validate that reply serial and plain serial are nonzero;
8091 clean up the OOM/error handling.
8092 (get_uint_field): don't return -1 from this
8093 (dbus_message_create_header): fix signed/unsigned bug
8095 * bus/connection.c (bus_connections_expect_reply): save serial of
8096 the incoming message, not reply serial
8098 2003-10-14 Havoc Pennington <hp@redhat.com>
8100 * bus/connection.c: implement pending reply tracking using
8103 * bus/bus.c (bus_context_check_security_policy): verify that a
8104 reply is pending in order to allow a reply to be sent. Deny
8105 messages of unknown type.
8107 * bus/dbus-daemon-1.1.in: update to mention new resource limits
8109 * bus/bus.c (bus_context_get_max_replies_per_connection): new
8110 (bus_context_get_reply_timeout): new
8112 2003-10-13 Seth Nickell <seth@gnome.org>
8114 * python/Makefile.am:
8116 Pass "make distcheck": remove a couple files from DIST_FILES
8117 that weren't included in the final version.
8119 2003-10-12 Havoc Pennington <hp@pobox.com>
8121 Added test code that 1) starts an actual bus daemon and 2) uses
8122 DBusGProxy; fixed bugs that were revealed by the test. Lots
8123 more testing possible, but this is the basic framework.
8125 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8126 empty proxy lists from the proxy list hash
8128 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8129 couple of return_if_fail checks
8131 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8132 to allocate, so everything is cleared to NULL as it should be.
8134 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8135 source as data to dbus_connection_set_timeout_functions() as the
8136 timeout functions expected
8138 * test/glib/run-test.sh: add a little script to start up a message
8139 bus and run tests using it
8141 * tools/dbus-launch.1: updates
8143 * tools/dbus-launch.c (main): add --config-file option
8145 * tools/dbus-launch.c (main): remove confusing else if (runprog)
8146 that could never be reached.
8148 * dbus/dbus-message.c (dbus_message_new_method_return)
8149 (dbus_message_new_error, dbus_message_new_signal): set the
8150 no-reply-expected flag on all these. Redundant, but may
8151 as well be consistent.
8153 2003-10-11 Havoc Pennington <hp@pobox.com>
8155 * test/decode-gcov.c (function_solve_graph): make broken block
8156 graph a nonfatal error since it seems to be broken. Need to debug
8159 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8160 can't just check type > INVALID < LAST anymore
8162 * dbus/dbus-message.c (dbus_message_get_signature): new function
8163 (dbus_message_has_signature): new function
8164 (struct DBusMessage): add signature field (right now it isn't sent
8165 over the wire, just generated on the fly)
8166 (dbus_message_copy): copy the signature, and init strings to
8167 proper length to avoid some reallocs
8168 (dbus_message_iter_init_array_iterator): return void, since it
8170 (dbus_message_iter_init_dict_iterator): return void since it can't fail
8171 (_dbus_message_loader_queue_messages): add silly temporary hack to
8172 fill in message->signature on load
8174 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8175 characters, so they are relatively human-readable.
8177 2003-10-11 Havoc Pennington <hp@pobox.com>
8179 * dbus/dbus-message.c (_dbus_message_test): add more test
8180 coverage, but #if 0 for now since they uncover a bug
8181 not fixed yet; I think in re_align_field_recurse()
8182 (re_align_field_recurse): add FIXME about broken assertion
8184 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8186 * bus/connection.c: share a couple code bits with expirelist.c
8188 * bus/expirelist.h, bus/expirelist.c: implement a generic
8189 expire-items-after-N-seconds facility, was going to share between
8190 expiring connections and replies, decided not to use for expiring
8191 connections for now.
8193 * COPYING: include AFL 2.0 (still need to change all the file headers)
8195 2003-10-09 Havoc Pennington <hp@redhat.com>
8197 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8198 gcc 3.3. Not that we do anything about it yet.
8200 * bus/signals.c (bus_match_rule_parse): impose max length on the
8203 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8205 2003-10-09 Havoc Pennington <hp@redhat.com>
8207 Make matching rules theoretically work (add parser).
8209 * bus/bus.c (bus_context_check_security_policy): fix up to handle
8210 the case where destination is explicitly specified as bus driver
8211 and someone else is eavesdropping.
8213 * bus/policy.c (bus_client_policy_check_can_receive): fix up
8214 definition of eavesdropping and assertion
8216 * tools/dbus-send.c (main): use dbus_message_type_from_string
8218 * bus/signals.c (bus_match_rule_parse): implement
8220 * dbus/dbus-message.c (dbus_message_type_from_string): new
8222 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8224 2003-10-02 Havoc Pennington <hp@pobox.com>
8226 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8227 dbus_gproxy_oneway_call
8229 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
8230 (dbus_server_setup_with_g_main): fix to allow calling them more
8231 than once on the same args
8232 (dbus_bus_get_with_g_main): new function
8234 2003-10-02 Havoc Pennington <hp@redhat.com>
8236 * doc/dbus-tutorial.xml: write some stuff
8238 2003-09-29 Havoc Pennington <hp@pobox.com>
8240 * configure.in: split checks for Doxygen from XML docs, check for
8243 * doc/Makefile.am: XML-ify all the docs, and add a blank
8246 2003-09-29 Havoc Pennington <hp@pobox.com>
8248 * Merge dbus-object-names branch. To see the entire patch
8249 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8250 it's huuuuge though.
8251 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8253 2003-09-28 Havoc Pennington <hp@pobox.com>
8255 * HACKING: update to reflect new server
8257 2003-09-26 Seth Nickell <seth@gnome.org>
8260 * python/examples/example-signals.py:
8262 Start implementing some notions of signals. The API
8263 is really terrible, but they sort of work (with the
8264 exception of being able to filter by service, and to
8265 transmit signals *as* a particular service). Need to
8266 figure out how to make messages come from the service
8269 * python/dbus_bindings.pyx.in:
8271 Removed duplicate message_handler callbacks.
8273 2003-09-25 Havoc Pennington <hp@redhat.com>
8275 * bus/session.conf.in: fix my mess
8277 2003-09-25 Havoc Pennington <hp@pobox.com>
8279 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8281 2003-09-25 Seth Nickell <seth@gnome.org>
8283 * python/examples/example-service.py:
8285 Johan notices complete wrong code in example-service, but
8286 completely wrong in a way that works exactly the same (!).
8287 Johan is confused, how could this possibly work? Example
8288 code fails to serve purpose of making things clear.
8291 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8293 * doc/dbus-specification.sgml: don't require header fields
8294 to be 4-byte aligned and specify that fields should be
8295 distinguished from padding by the fact that zero is not
8298 * doc/TODO: remove re-alignment item and add item to doc
8299 the OBJECT_PATH type.
8301 * dbus/dbus-message.c:
8302 (HeaderField): rename the original member to value_offset
8303 and introduce a name_offset member to keep track of where
8304 the field actually begins.
8305 (adjust_field_offsets): remove.
8306 (append_int_field), (append_uint_field),
8307 (append_string_field): don't align the start of the header
8308 field to a 4-byte boundary.
8309 (get_next_field): impl finding the next marhsalled field
8310 after a given field.
8311 (re_align_field_recurse): impl re-aligning a number of
8312 already marshalled fields.
8313 (delete_field): impl deleting a field of any type and
8314 re-aligning any following fields.
8315 (delete_int_or_uint_field), (delete_string_field): remove.
8316 (set_int_field), (set_uint_field): no need to re-check
8317 that we have the correct type for the field.
8318 (set_string_field): ditto and impl re-aligning any
8320 (decode_header_data): update to take into account that
8321 the fields aren't 4-byte aligned any more and the new
8322 way to distinguish padding from header fields. Also,
8323 don't exit when there is too much header padding.
8324 (process_test_subdir): print the directory.
8325 (_dbus_message_test): add test to make sure a following
8326 field is re-aligned correctly after field deletion.
8328 * dbus/dbus-string.[ch]:
8329 (_dbus_string_insert_bytes): rename from insert_byte and
8330 allow the insert of multiple bytes.
8331 (_dbus_string_test): test inserting multiple bytes.
8333 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8334 warning note to docs about having to re-align any
8335 marshalled values following the string.
8337 * dbus/dbus-message-builder.c:
8338 (append_string_field), (_dbus_message_data_load):
8339 don't align the header field.
8341 * dbus/dbus-auth.c: (process_test_subdir): print the
8344 * test/break-loader.c: (randomly_add_one_byte): upd. for
8347 * test/data/invalid-messages/bad-header-field-alignment.message:
8350 * test/data/valid-messages/unknown-header-field.message: shove
8351 a dict in the unknown field.
8353 2003-09-25 Seth Nickell <seth@gnome.org>
8356 * python/dbus_bindings.pyx.in:
8358 Handle return values.
8360 * python/examples/example-client.py:
8361 * python/examples/example-service.py:
8363 Pass back return values from the service to the client.
8365 2003-09-24 Seth Nickell <seth@gnome.org>
8369 Connect Object methods (when you are sharing an object) up... pass
8370 in a list of methods to be shared. Sharing all the methods just
8371 worked out too weird. You can now create nice Services over the
8374 * python/dbus_bindings.pyx.in:
8376 Keep references to user_data tuples passed into C functions so
8377 Python doesn't garbage collect on us.
8379 Implement MethodReturn and Error subclasses of Message for creating
8380 DBusMessage's of those types.
8382 * python/examples/example-client.py:
8383 * python/examples/example-service.py:
8385 Simple example code showing both how create DBus services and objects,
8386 and how to use them.
8388 2003-09-23 Havoc Pennington <hp@pobox.com>
8390 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8392 2003-09-23 Havoc Pennington <hp@redhat.com>
8394 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8395 (dbus_gproxy_disconnect_signal): implement
8396 (dbus_gproxy_manager_remove_signal_match): implement
8397 (dbus_gproxy_manager_add_signal_match): implement
8398 (dbus_gproxy_oneway_call): implement
8400 2003-09-23 Havoc Pennington <hp@pobox.com>
8402 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8403 subclass. This means dropping the transparent thread safety of the
8404 proxy; you now need a separate proxy per-thread, or your own
8405 locking on the proxy. Probably right anyway.
8406 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8408 2003-09-22 Havoc Pennington <hp@redhat.com>
8410 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8412 2003-09-21 Seth Nickell <seth@gnome.org>
8414 First checkin of the Python bindings.
8416 * python/.cvsignore:
8417 * python/Makefile.am:
8418 * python/dbus_bindings.pyx.in:
8419 * python/dbus_h_wrapper.h:
8421 Pieces for Pyrex to operate on, building a dbus_bindings.so
8422 python module for low-level access to the DBus APIs.
8426 High-level Python module for accessing DBus objects.
8431 Build stuff for the python bindings.
8435 Extra macro needed for finding the Python C header files.
8437 2003-09-21 Havoc Pennington <hp@pobox.com>
8439 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8440 implementing the proxy manager, didn't get very far.
8442 * dbus/dbus-bus.c (dbus_bus_add_match): new
8443 (dbus_bus_remove_match): new
8445 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8446 path_name argument; adjust the other not-yet-implemented
8447 gproxy constructors to be what I think they should be.
8449 2003-09-21 Havoc Pennington <hp@pobox.com>
8451 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8452 by default for message bus connections.
8454 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8455 exit_on_disconnect flag is set and we process the disconnected
8457 (dbus_connection_set_exit_on_disconnect): new function
8459 2003-09-21 Havoc Pennington <hp@pobox.com>
8461 Get matching rules mostly working in the bus; only actually
8462 parsing the rule text remains. However, the client side of
8463 "signal connections" hasn't been started, this patch is only the
8466 * dbus/dispatch.c: fix for the matching rules changes
8468 * bus/driver.c (bus_driver_handle_remove_match)
8469 (bus_driver_handle_add_match): send an ack reply from these
8472 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8473 arguments, reported by Seth Nickell
8475 * bus/config-parser.c (append_rule_from_element): support
8476 eavesdrop=true|false attribute on policies so match rules
8477 can be prevented from snooping on the system bus.
8479 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8480 and "destination" in attribute names; fix some docs bugs;
8481 add eavesdrop=true|false attribute
8483 * bus/driver.c (bus_driver_handle_add_match)
8484 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8487 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8488 rid of broadcast service concept, signals are just always broadcast
8490 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8491 mostly implement matching rules stuff (currently only exposed as signal
8494 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8496 * doc/dbus-specification.sgml: Change the header field name
8497 to be an enum and update the rest of the spec to reference
8498 the fields using the conventinal name.
8500 * dbus/dbus-protocol.h: update to reflect the spec.
8502 * doc/TODO: add item to remove the 4 byte alignment requirement.
8504 * dbus/dbus-message.c: Remove the code to generalise the
8505 header/body length and serial number header fields as named
8506 header fields so we can reference field names using the
8508 (append_int_field), (append_uint_field), (append_string_field):
8509 Append the field name as a byte rather than four chars.
8510 (delete_int_or_uint_field), (delete_string_field): reflect the
8511 fact that the field name and typecode now occupy 4 bytes instead
8513 (decode_string_field), (decode_header_data): update to reflect
8514 protocol changes and move the field specific encoding from
8515 decode_string_field() back into decode_header_data().
8517 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8518 Add utility to aid debugging.
8520 * dbus/dbus-message-builder.c:
8521 (append_string_field), (_dbus_message_data_load): Update to
8522 reflect protocol changes; Change the FIELD_NAME directive
8523 to HEADER_FIELD and allow it to take the field's conventional
8524 name rather than the actual value.
8526 * test/data/*/*.message: Update to use HEADER_FIELD instead
8527 of FIELD_NAME; Always align the header on an 8 byte boundary
8528 *before* updating the header length.
8530 2003-09-15 Havoc Pennington <hp@pobox.com>
8532 * dbus/dbus-pending-call.c: add the get/set object data
8533 boilerplate as for DBusConnection, etc. Use generic object data
8534 for the notify callback.
8536 * glib/dbus-gparser.c (parse_node): parse child nodes
8538 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8540 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8541 contain functions shared between the convenience lib and the
8544 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8545 -export-symbols-regex to the GLib library
8547 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8548 fix the locking in here, and add a default handler for
8549 Introspect() that just returns sub-nodes.
8551 2003-09-14 Havoc Pennington <hp@pobox.com>
8553 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8554 rather than gfoo consistent
8556 * glib/dbus-gproxy.h: delete for now, move contents to
8557 dbus-glib.h, because the include files don't work right since we
8558 aren't in the dbus/ subdir.
8560 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8561 (dbus_gproxy_end_call): finish
8562 (dbus_gproxy_begin_call): finish
8564 * glib/dbus-gmain.c (dbus_set_g_error): new
8566 * glib/dbus-gobject.c (handle_introspect): include information
8567 about child nodes in the introspection
8569 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8570 function to help in implementation of introspection
8572 * dbus/dbus-object-tree.c
8573 (_dbus_object_tree_list_registered_and_unlock): new function
8575 2003-09-12 Havoc Pennington <hp@pobox.com>
8577 * glib/dbus-gidl.h: add common base class for all the foo_info
8580 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8583 * test/Makefile.am: try test srcdir -ef . in addition to test
8584 srcdir = ., one of them should work (yeah lame)
8586 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8589 * glib/dbus-gparser.h: make description_load routines return
8590 NodeInfo* not Parser*
8592 * Makefile.am (SUBDIRS): build test dir after all library dirs
8594 * configure.in: add GTK+ detection
8596 2003-09-07 Havoc Pennington <hp@pobox.com>
8598 * Make Doxygen contented.
8600 2003-09-07 Havoc Pennington <hp@pobox.com>
8602 * doc/dbus-specification.sgml: more updates
8604 2003-09-06 Havoc Pennington <hp@pobox.com>
8606 * doc/dbus-specification.sgml: partial updates
8608 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8609 zillionth time; hopefully I edited the right file this time.
8611 * bus/config-parser.c (append_rule_from_element): support
8612 send_type, send_path, receive_type, receive_path
8614 * bus/policy.c: add message type and path to the list of things
8615 that can be "firewalled"
8617 2003-09-06 Havoc Pennington <hp@pobox.com>
8619 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8620 (dbus_connection_register_object_path): make this not handle
8621 messages to paths below the given path
8623 2003-09-03 Havoc Pennington <hp@pobox.com>
8625 * test/glib/Makefile.am: add this with random glib-linked test
8628 * glib/Makefile.am: remove the random test programs from here,
8629 leave only the unit tests
8631 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8632 uscore/javacaps conversion, and fix
8633 (get_object_property, set_object_property): change to .NET
8634 convention for mapping props to methods, set_FooBar/get_FooBar,
8635 since one language has such a convention we may as well copy it.
8636 Plus real methods in either getFooBar or get_foo_bar style won't
8637 collide with this convention.
8639 2003-09-01 Havoc Pennington <hp@pobox.com>
8641 * glib/dbus-gparser.c: implement
8643 * glib/dbus-gobject.c: start implementing skeletons support
8645 * configure.in: when disabling checks/assert, also define
8646 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8648 2003-09-01 Havoc Pennington <hp@pobox.com>
8650 * glib/Makefile.am: rearrange a bunch of files and get "make
8651 check" framework set up
8653 2003-08-31 Havoc Pennington <hp@pobox.com>
8655 * fix build with --disable-tests
8657 2003-08-30 Havoc Pennington <hp@pobox.com>
8659 * dbus/dbus-connection.c: purge DBusMessageHandler
8661 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8662 use callbacks everywhere
8664 2003-08-30 Havoc Pennington <hp@pobox.com>
8666 * test/data/valid-config-files/system.d/test.conf: change to
8667 root for the user so warnings don't get printed
8669 * dbus/dbus-message.c: add dbus_message_get_path,
8670 dbus_message_set_path
8672 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8673 dispatching to a path
8675 * dbus/dbus-string.c (_dbus_string_validate_path): add
8677 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8678 (_dbus_marshal_object_path): implement
8680 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8681 to contain the path to the target object
8682 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8683 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8685 2003-08-30 Havoc Pennington <hp@pobox.com>
8687 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8689 2003-08-29 Havoc Pennington <hp@pobox.com>
8691 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8693 (struct DBusObjectSubtree): shrink this
8694 a lot, since we may have a lot of them
8695 (_dbus_object_tree_free_all_unlocked): implement
8696 (_dbus_object_tree_dispatch_and_unlock): implement
8698 2003-08-29 Havoc Pennington <hp@pobox.com>
8700 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8702 2003-08-28 Havoc Pennington <hp@pobox.com>
8706 * dbus/dbus-connection.c: port to no ObjectID, create a
8707 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8709 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8710 everything except UnregisterFunction and MessageFunction
8712 * dbus/dbus-marshal.c: port away from DBusObjectID,
8713 add DBUS_TYPE_OBJECT_PATH
8715 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8716 dbus/dbus-objectid.[hc]: remove these, we are moving to
8717 path-based object IDs
8719 2003-08-25 Havoc Pennington <hp@pobox.com>
8721 Just noticed that dbus_message_test is hosed, I wonder when I
8722 broke that. I thought make check was passing earlier...
8724 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8725 container tree, will replace most of dbus-object-registry
8727 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8730 2003-08-19 Havoc Pennington <hp@pobox.com>
8732 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8733 (dbus_message_is_error): fix this function
8735 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8738 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8739 reflect clarified man page
8740 (bus_client_policy_check_can_send): ditto
8742 * bus/session.conf.in: fixup
8744 * bus/system.conf.in: fixup
8746 2003-08-18 Havoc Pennington <hp@redhat.com>
8748 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8750 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8751 dumb bug created earlier (wrong order of args to
8752 decode_header_data())
8754 * tools/dbus-send.c: port
8756 * tools/dbus-print-message.c (print_message): port
8758 * test/data/*messages: port all messages over
8760 * dbus/dbus-message-builder.c: support including
8763 * bus/driver.c: port over
8765 * bus/dispatch.c: port over to new stuff
8767 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8768 rename disconnect signal to "Disconnected"
8770 2003-08-17 Havoc Pennington <hp@pobox.com>
8772 This doesn't compile yet, but syncing up so I can hack on it from
8773 work. What are branches for if not broken code? ;-)
8775 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8776 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8777 DBUS_HEADER_FIELD_ERROR_NAME
8779 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8780 for the interface+member pairs
8781 (string_hash): change to use g_str_hash algorithm
8782 (find_direct_function, find_string_function): refactor these to
8785 * dbus/dbus-message.c: port all of this over to support
8786 interface/member fields instead of name field
8788 * dbus/dbus-object-registry.c: port over
8790 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8791 from _dbus_string_validate_name
8793 * bus/dbus-daemon-1.1: change file format for the
8794 <deny>/<allow> stuff to match new message naming scheme
8796 * bus/policy.c: port over
8798 * bus/config-parser.c: parse new format
8800 2003-08-16 Havoc Pennington <hp@pobox.com>
8802 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8805 * glib/dbus-gproxy.c: some hacking
8807 2003-08-15 Havoc Pennington <hp@redhat.com>
8809 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8811 * dbus/dbus-connection.c
8812 (dbus_connection_send_with_reply_and_block): factor out internals;
8813 change to convert any error replies to DBusError instead of
8814 returning them as a message
8816 2003-08-15 Havoc Pennington <hp@pobox.com>
8818 * dbus/dbus-connection.c,
8819 dbus/dbus-pending-call.c: Finish the pending call stuff
8821 2003-08-14 Havoc Pennington <hp@redhat.com>
8823 * dbus/dbus-pending-call.c: start on new object that will replace
8824 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8827 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8828 with remote interfaces
8830 * dbus/dbus-gidl.c: do the boring boilerplate in here
8832 2003-08-12 Havoc Pennington <hp@pobox.com>
8834 * bus/dispatch.c (bus_dispatch): make this return proper
8835 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8837 * dbus/dbus-errors.c (dbus_set_error): use
8838 _dbus_string_append_printf_valist
8840 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8841 (_dbus_string_append_printf): new
8843 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8846 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8847 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8848 message is unhandled.
8850 2003-08-11 Havoc Pennington <hp@pobox.com>
8852 * bus/test.c (client_disconnect_handler): change to return
8853 HANDLED (would have been REMOVE_MESSAGE)
8855 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8856 HANDLED/NOT_YET_HANDLED instead of
8857 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8860 2003-08-10 Havoc Pennington <hp@pobox.com>
8862 * tools/dbus-send.c (main): add --type argument, for now
8863 supporting only method_call and signal types.
8865 * tools/dbus-print-message.c: print message type
8867 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8868 init connection->objects
8870 * doc/dbus-specification.sgml: fix sgml
8872 * bus/*.c: port over to object-instance API changes
8874 * test/test-service.c: ditto
8876 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8877 name, we will have to fix up the rest of the code to also handle
8879 (dbus_message_new): generic message-creation call
8880 (set_string_field): allow appending name field
8882 2003-08-06 Havoc Pennington <hp@pobox.com>
8884 * dbus/dbus-object-registry.c: implement signal connection
8887 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8889 * dbus/dbus-internals.c (_dbus_memdup): new function
8891 2003-08-02 Havoc Pennington <hp@pobox.com>
8893 * dbus/dbus-message.c (dbus_message_get_no_reply)
8894 (dbus_message_set_no_reply): add these and remove
8895 set_is_error/get_is_error
8897 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8898 remove the ERROR flag, since there's now an ERROR type
8900 2003-08-01 Havoc Pennington <hp@pobox.com>
8902 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8905 * dbus/dbus-message.c (dbus_message_get_type): new function
8907 * doc/dbus-specification.sgml: add "type" byte to messages
8909 2003-08-01 Havoc Pennington <hp@pobox.com>
8911 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8912 a message type enum to distinguish kinds of message
8913 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8914 that need not be replied to
8916 2003-08-01 Havoc Pennington <hp@pobox.com>
8918 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8919 (unpack_8_octets): fix no-64-bit-int bug
8921 * dbus/dbus-object-registry.c (validate_id): validate the
8922 connection ID bits, not just the instance ID.
8924 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8925 the connection-global 33 bits of the object ID
8927 * dbus/dbus-object-registry.c (info_from_entry): fill in
8928 object ID in the new way
8930 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8931 define server/client/instance bits.
8933 2003-07-30 Havoc Pennington <hp@pobox.com>
8935 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8938 2003-07-13 Havoc Pennington <hp@pobox.com>
8940 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8941 fields to DBusObjectVTable and DBusObjectInfo
8943 2003-07-12 Havoc Pennington <hp@pobox.com>
8945 * dbus/dbus-object-registry.c: implement unit test,
8946 fix bugs discovered in process
8948 * dbus/dbus-connection.c: remove handler_table and
8949 register_handler(), add DBusObjectRegistry usage
8951 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8952 (dbus_object_id_set_null): new functions
8954 2003-07-08 Havoc Pennington <hp@pobox.com>
8956 * dbus/dbus-object.c: implement some of this
8958 * dbus/dbus-object-registry.c
8959 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8961 (_dbus_object_registry_new): handle OOM
8963 2003-07-08 Havoc Pennington <hp@pobox.com>
8965 * dbus/dbus-object.h: sketch out an API for registering objects
8966 with a connection, that allows us to use as little as 24 bytes
8967 per object and lets application code represent an object in
8968 any conceivable way.
8970 * dbus/dbus-object-registry.c: implement the hard bits of the
8971 DBusConnection aspect of object API. Not yet wired up.
8973 2003-07-06 Havoc Pennington <hp@pobox.com>
8975 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8976 (_dbus_marshal_object_id): new
8977 (_dbus_demarshal_object_id): new
8978 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8979 consolidate identical switch cases. Don't conditionalize handling
8980 of DBUS_TYPE_UINT64, need to handle the type always.
8981 (_dbus_marshal_validate_arg): consolidate identical cases, and
8982 handle DBUS_TYPE_OBJECT_ID
8984 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8986 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8988 2003-09-28 Havoc Pennington <hp@pobox.com>
8992 2003-09-28 Havoc Pennington <hp@pobox.com>
8994 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8995 to work with Debian db2html
8997 2003-09-28 Havoc Pennington <hp@pobox.com>
8999 * configure.in: 0.13
9001 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9002 stylesheet-images for benefit of Debian
9004 Change back to using filesystem-linked sockets for the system
9005 bus, so only root can create the default system bus address.
9007 * bus/system.conf.in: change to use
9008 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9010 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9013 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9014 here, and AC_DEFINE DBUS_SYSTEM_PATH
9016 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9019 * doc/busconfig.dtd:
9022 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9024 * doc/dbus-specification.sgml:
9025 Add activation reply values.
9027 2003-08-05 Havoc Pennington <hp@redhat.com>
9029 * configure.in: 0.12
9031 2003-08-05 Anders Carlsson <andersca@codefactory.se>
9033 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9034 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9035 (add_watch), (remove_watch), (create_source):
9036 Refcount fds, fixes some reentrancy issues.
9038 2003-07-30 Havoc Pennington <hp@redhat.com>
9040 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9041 bus address to be abstract if we have abstract sockets
9045 2003-07-28 Havoc Pennington <hp@redhat.com>
9047 * bus/messagebus.in: fix to avoid processname/servicename
9048 confusion, from Michael Kearey
9049 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9051 2003-07-23 Havoc Pennington <hp@pobox.com>
9053 * dbus/dbus-message.c (dbus_message_iter_get_named):
9054 fix from Andy Hanton to remove broken "+1"
9056 2003-07-16 Havoc Pennington <hp@pobox.com>
9058 * tools/dbus-launch.c (babysit): close stdout/stderr in the
9059 babysitter process, as suggested by Thomas Leonard, so
9060 an "eval `dbus-launch --exit-with-session`" will actually
9063 2003-07-16 Havoc Pennington <hp@pobox.com>
9065 * configure.in: print out EXPANDED_* variables in the summary at
9066 the end; clean up the code that computes EXPANDED_ variables and
9067 get the ones using exec_prefix right. Should make things work
9068 when you build without --prefix
9070 2003-06-29 Havoc Pennington <hp@pobox.com>
9072 * mono/Test.cs (class Test): fire up a main loop and run it
9074 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9075 done once, the app has to do it
9077 2003-06-26 Havoc Pennington <hp@pobox.com>
9079 * mono/Connection.cs: set up connection with the glib main loop
9081 2003-07-01 Havoc Pennington <hp@redhat.com>
9083 * doc/dbus-specification.sgml: clarify the format of a type code,
9084 change suggested by Jim Blandy
9086 2003-06-29 Miloslav Trmac <mitr@volny.cz>
9089 * tools/Makefile.am: Don't assume srcdir == builddir.
9091 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9092 the allocated block.
9093 (_dbus_memory_test): New function.
9094 * dbus/dbus-test.h: Add _dbus_memory_test ().
9095 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9097 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9099 (dbus_message_new): Remove obsolete @todo.
9101 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9102 (_dbus_marshal_set_uint64): Fix comment.
9104 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9105 hardcode FIELD_REPLY_SERIAL.
9107 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9108 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9110 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9111 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9113 2003-06-24 Havoc Pennington <hp@pobox.com>
9115 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9117 2003-06-23 Anders Carlsson <andersca@codefactory.se>
9123 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9124 * gcj/org/.cvsignore:
9125 * gcj/org/Makefile.am:
9126 * gcj/org/freedesktop/.cvsignore:
9127 * gcj/org/freedesktop/Makefile.am:
9128 * gcj/org/freedesktop/dbus/.cvsignore:
9129 * gcj/org/freedesktop/dbus/Makefile.am:
9130 * gcj/org/freedesktop/dbus/Message.java: (Message),
9132 * gcj/org/freedesktop/dbus/natMessage.cc:
9133 Fix the build system.
9135 2003-06-22 Havoc Pennington <hp@pobox.com>
9137 * mono/Connection.cs: add more bindings
9139 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9142 2003-06-22 Havoc Pennington <hp@pobox.com>
9144 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9145 Start wrapping more stuff.
9147 2003-06-22 Havoc Pennington <hp@pobox.com>
9149 * mono/Message.cs: implement Message.Wrap() that ensures we only
9150 have a single C# wrapper per DBusMessage, assuming it works which
9151 it probably doesn't.
9153 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9154 (dbus_message_free_data_slot): new
9155 (dbus_message_set_data): new
9156 (dbus_message_get_data): new
9158 2003-06-22 Havoc Pennington <hp@pobox.com>
9160 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9161 (_dbus_data_slot_allocator_alloc): rework these to keep a
9162 reference count on each slot and automatically manage a global
9163 slot ID variable passed in by address
9165 * bus/bus.c: convert to new dataslot API
9167 * dbus/dbus-bus.c: convert to new dataslot API
9169 * dbus/dbus-connection.c: convert to new dataslot API
9171 * dbus/dbus-server.c: convert to new dataslot API
9173 * glib/dbus-gmain.c: ditto
9177 * bus/connection.c: ditto
9179 2003-06-22 Anders Carlsson <andersca@codefactory.se>
9181 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9182 after the gcj checks so that the correct configuration tags
9183 will be added to libtool.
9185 * dbus-glib-1.pc.in: No need to specify any includes since
9186 dbus-1.pc.in has those.
9188 2003-06-22 Havoc Pennington <hp@pobox.com>
9190 * mono/*, gcj/*, configure.in, Makefile.am:
9191 Check in makefiles and subdirs for mono and gcj bindings.
9192 Neither binding actually exists, just trying to get through
9193 all the build and other boring bits.
9195 2003-06-21 Philip Blundell <philb@gnu.org>
9197 * tools/dbus-monitor.1: Updated.
9199 * tools/dbus-send.1: Likewise.
9201 2003-06-20 Anders Carlsson <andersca@codefactory.se>
9203 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9204 for hangup and error after checking read so we won't discard
9205 pending data if both hangup and read are set.
9207 2003-06-19 Philip Blundell <philb@gnu.org>
9209 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9211 * tools/dbus-send.c: Accept both --system and --session.
9213 * tools/dbus-monitor.c: Same here.
9215 2003-06-19 Anders Carlsson <andersca@codefactory.se>
9217 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9218 from C++ (Patch by Miloslav Trmac).
9220 2003-06-15 Joe Shaw <joe@assbarn.com>
9222 * configure.in: Check for socklen_t.
9224 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9226 * test/test-segfault.c: Add #include <sys/time.h>
9228 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9229 dbus-launch needs it.
9231 2003-06-09 Havoc Pennington <hp@redhat.com>
9233 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9234 SUN_LEN, it breaks abstract socket usage
9236 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9239 2003-06-04 Havoc Pennington <hp@pobox.com>
9241 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9242 using unix:abstract=/foo, and when listening in a tmpdir
9243 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9245 * dbus/dbus-transport.c (_dbus_transport_open): support
9248 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9249 support abstract sockets
9251 * dbus/dbus-transport-unix.c
9252 (_dbus_transport_new_for_domain_socket): support abstract sockets
9254 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9255 toggle as an argument, implement abstract namespace support
9256 (_dbus_listen_unix_socket): ditto
9258 * configure.in: add --enable-abstract-sockets and implement
9259 a configure check for autodetection of the right value.
9261 2003-06-01 Havoc Pennington <hp@pobox.com>
9263 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9264 in /tmp (though on Linux this will end up being useless,
9265 when we add abstract namespace support)
9267 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9270 2003-05-28 Colin Walters <walters@verbum.org>
9272 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9274 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9276 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9278 2003-05-17 Colin Walters <walters@gnu.org>
9280 * tools/dbus-send.c: Don't exit with an error code if --help was
9281 passed. Default to using the session bus instead of the system
9284 * tools/dbus-launch.c: Ditto.
9286 * tools/dbus-monitor.c: Ditto.
9288 * tools/dbus-send.1: Update with new arguments.
9290 * tools/dbus-launch.c: Emit code to export variables. New
9291 arguments -s and -c to specify shell syntax, and a bit of code to
9292 autodetect syntax. Also, allow specifying a program to run.
9294 * tools/dbus-launch.1: Update with new arguments.
9296 * tools/dbus-send.1: Ditto.
9298 * tools/dbus-monitor.1: Ditto.
9300 2003-05-17 Havoc Pennington <hp@pobox.com>
9302 * bus/config-parser.c (merge_included): merge in policies from
9303 child configuration file.
9305 * bus/policy.c (bus_policy_merge): function to merge two policies
9308 2003-05-16 Havoc Pennington <hp@redhat.com>
9310 * dbus/dbus-connection.c: disable verbose lock spew
9312 * tools/dbus-send.c: add --print-reply command line option
9314 * tools/dbus-print-message.h (print_message): new util function
9315 shared by dbus-send and dbus-monitor
9317 * tools/dbus-monitor.c (handler_func): exit on disconnect
9319 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9320 disconnected, don't try to use the read_watch
9322 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9323 so we can find this bug more easily
9325 2003-05-16 Havoc Pennington <hp@redhat.com>
9327 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9328 NULL as DBusHashTable is annoyingly likely to do.
9330 2003-05-16 Colin Walters <walters@verbum.org>
9332 * tools/dbus-monitor.c: Add --session argument and usage()
9335 * tools/dbus-monitor.1: Update with new --session arg.
9337 * bus/Makefile.am (install-data-hook): Create
9338 $(libdir)/dbus-1.0/services so that the session bus is happy.
9340 2003-05-15 Havoc Pennington <hp@redhat.com>
9342 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9343 on non-x86. ifdef's are evil.
9345 2003-05-15 Havoc Pennington <hp@redhat.com>
9347 * configure.in: 0.11
9351 * bus/Makefile.am (initddir): apparently we are supposed to put
9352 init scripts in /etc/rc.d/init.d not /etc/init.d
9354 * bus/Makefile.am: remove the "you must --enable-tests to make
9355 check" as it broke distcheck
9357 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9359 2003-05-13 James Willcox <jwillcox@gnome.org>
9362 * bus/activation.c: (bus_activation_service_created),
9363 (bus_activation_activate_service):
9364 * bus/driver.c: (bus_driver_send_service_deleted),
9365 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9366 (bus_driver_send_service_acquired),
9367 (bus_driver_send_welcome_message),
9368 (bus_driver_handle_list_services):
9369 * bus/session.conf.in:
9370 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9371 (dbus_bus_service_exists), (dbus_bus_activate_service):
9374 Add some convenience API which lets you activate a service, and did a
9375 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9376 and dbus_message_get_args()
9378 2003-05-11 Havoc Pennington <hp@pobox.com>
9380 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9381 calling _dbus_marshal_validate_arg() for every byte in a byte
9384 * dbus/dbus-message-handler.c: use atomic reference counting to
9385 reduce number of locks slightly; the global lock in here sucks
9387 * dbus/dbus-connection.c
9388 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9389 update_dispatch_status that can be called with lock held; then use
9390 in a couple places to reduce locking/unlocking
9391 (dbus_connection_send): hold the lock over the whole function
9392 instead of acquiring it twice.
9394 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9396 * bus/connection.c (bus_connections_setup_connection): fix access
9397 to already-freed memory.
9399 * dbus/dbus-connection.c: keep a little cache of linked list
9400 nodes, to avoid using the global linked list alloc lock in the
9401 normal send-message case. Instead we just use the connection lock
9402 that we already have to take.
9404 * dbus/dbus-list.c (_dbus_list_find_last): new function
9406 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9407 change to use a struct for the atomic type; fix docs,
9408 they return value before increment, not after increment.
9410 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9411 (_dbus_string_append_8_aligned): new functions to try to
9412 microoptimize this operation.
9413 (reallocate_for_length): break this out of set_length(), to
9414 improve profile info, and also so we can consider inlining the
9417 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9418 strings with some preallocation, cuts down on our calls to realloc
9419 a fair bit. Though if we can get the "move entire string to empty
9420 string" optimization below to kick in here, it would be better.
9422 * dbus/dbus-string.c (_dbus_string_move): just call
9423 _dbus_string_move_len
9424 (_dbus_string_move_len): add a special case for moving
9425 an entire string into an empty string; we can just
9426 swap the string data instead of doing any reallocs.
9427 (_dbus_string_init_preallocated): new function
9429 2003-05-11 Havoc Pennington <hp@pobox.com>
9431 Write a "test-profile" that does echo client-server with threads;
9432 profile reveals lock contention, memcpy/realloc of buffers, and
9433 UTF-8 validation as hot spots. 20% of lock contention eliminated
9434 with dbus_atomic_inc/dec implementation on x86. Much remaining
9435 contention is global mempool locks for GList and DBusList.
9437 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9440 * dbus/dbus-connection.c (struct DBusConnection): use
9441 dbus_atomic_t for the reference count
9443 * dbus/dbus-message.c (struct DBusMessage): declare
9444 dbus_atomic_t values as volatile
9446 * configure.in: code to detect ability to use atomic integer
9447 operations in assembly, from GLib patch
9449 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9450 time, tired of it being wrong in threads and forked processes
9452 * glib/test-profile.c: a little program to bounce messages back
9453 and forth between threads and eat CPU
9455 * dbus/dbus-connection.c: add debug spew macros for debugging
9456 thread locks; include config.h at top; fix deadlock in
9457 dbus_connection_flush()
9459 2003-05-08 Havoc Pennington <hp@pobox.com>
9461 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9462 data from getting written, and there wasn't a good reason to
9465 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9466 dbus_verbose lines in test coverage
9467 (main): add list of functions sorted by # of untested blocks
9468 to the coverage report
9470 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9472 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9474 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9475 extend test coverage
9477 * test/data/auth/cancel.auth-script: test canceling an
9480 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9481 aren't used. in CVS history if we end up needing them.
9483 2003-05-04 Havoc Pennington <hp@pobox.com>
9485 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9488 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9489 function, which assumed length was in # of strings, not bytes
9491 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9494 * dbus/dbus-connection.c
9495 (_dbus_connection_queue_received_message): disable function for
9496 now, we are only using it in test mode
9498 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9499 remove a mistaken FIXME
9501 2003-05-04 Havoc Pennington <hp@pobox.com>
9503 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9504 unlock mutex on successful return, patch from Anders Gustafsson
9506 2003-05-04 Havoc Pennington <hp@pobox.com>
9508 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9511 2003-05-04 Havoc Pennington <hp@pobox.com>
9513 * tools/dbus-launch.c: implement
9515 * bus/main.c (main), bus/bus.c (bus_context_new):
9516 implement --print-pid and --fork
9518 2003-05-03 Havoc Pennington <hp@redhat.com>
9520 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9521 the address had no value, and add to test suite. Fix and
9522 regression test from Miloslav Trmac
9524 2003-05-03 Havoc Pennington <hp@pobox.com>
9526 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9527 watch is invalid when handled
9529 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9530 dbus-launch utility to launch the bus from a shell script. Didn't
9531 actually implement dbus-launch yet, it's just a placeholder still.
9533 2003-05-03 Havoc Pennington <hp@pobox.com>
9535 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9536 daemon; also documents daemon config file, so replaces
9537 doc/config-file.txt. Corrected some stuff from config-file.txt in
9538 the process of moving it.
9540 2003-05-03 Havoc Pennington <hp@pobox.com>
9542 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9545 2003-05-03 Colin Walters <walters@verbum.org>
9547 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9548 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9550 * Makefile.am: Update to use new .pc versioning scheme.
9552 2003-05-02 Havoc Pennington <hp@redhat.com>
9554 * bus/system.conf.in: allow send/receive to/from message bus
9557 2003-04-30 Havoc Pennington <hp@redhat.com>
9559 * configure.in: print a note when building with unit tests and
9562 2003-04-30 Havoc Pennington <hp@redhat.com>
9564 * Makefile.am: add a check-local that complains if you didn't
9565 configure with --enable-tests
9567 2003-04-29 Havoc Pennington <hp@redhat.com>
9569 * glib/dbus-gmain.c: docs cleanups
9571 * dbus/dbus-types.h: add docs on int64 types
9573 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9574 public API docs section
9576 2003-04-29 Havoc Pennington <hp@redhat.com>
9578 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9579 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9580 parallel install API version, not with the D-BUS package version.
9582 * HACKING: move some of README over here
9584 * README: updates, and document API/ABI policy
9586 * configure.in: reindentation
9588 2003-04-29 Havoc Pennington <hp@redhat.com>
9590 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9591 to use this library" to be sure people have the right
9594 2003-04-28 Havoc Pennington <hp@redhat.com>
9596 * configure.in: add --enable-docs which by default is auto yes if
9597 doxygen and db2html found, no otherwise; but can be forced on/off
9599 * doc/Makefile.am: conditionalize whether to build docs on
9602 2003-04-28 Havoc Pennington <hp@redhat.com>
9604 * configure.in: 0.10
9608 * bus/system.conf.in: add <includedir>system.d</includedir>
9610 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9611 username was provided but not uid
9613 * bus/config-parser.c (struct BusConfigParser): keep track of
9614 whether the parser is toplevel or was included; change some
9615 of the error handling if it's included.
9617 2003-04-27 Havoc Pennington <hp@pobox.com>
9621 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9622 report correct status if we finish processing authentication
9623 inside this function.
9625 * bus/activation.c (try_send_activation_failure): use
9626 bus_transaction_send_error_reply
9628 * bus/connection.c (bus_connection_get_groups): return an error
9629 explaining the problem
9631 * bus/bus.c (bus_context_check_security_policy): implement
9632 restriction here that inactive connections can only send the
9633 hello message. Also, allow bus driver to send anything to
9636 * bus/connection.c (bus_connection_complete): create the
9637 BusClientPolicy here instead of on-demand.
9638 (bus_connection_get_policy): don't return an error
9640 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9641 sender field in message being replied to
9643 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9644 causing it to return FALSE always
9646 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9647 we checked sender rather than destination
9649 2003-04-25 Havoc Pennington <hp@redhat.com>
9651 test suite is slightly hosed at the moment, will fix soon
9653 * bus/connection.c (bus_connections_expire_incomplete): fix to
9654 properly disable the timeout when required
9655 (bus_connection_set_name): check whether we can remove incomplete
9656 connections timeout after we complete each connection.
9658 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9659 probably still broken.
9661 * bus/services.c (bus_registry_acquire_service): implement max
9662 number of services owned, and honor allow/deny rules on which
9663 services a connection can own.
9665 * bus/connection.c (bus_connection_get_policy): report errors here
9667 * bus/activation.c: implement limit on number of pending
9670 2003-04-25 Havoc Pennington <hp@redhat.com>
9672 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9673 where we used >= 0 instead of != DBUS_UID_UNSET.
9675 2003-04-25 Havoc Pennington <hp@redhat.com>
9677 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9678 were toggled without add/remove, fix from Anders Gustafsson
9680 2003-04-24 Havoc Pennington <hp@redhat.com>
9682 * test/data/valid-config-files/basic.conf: add <limit> tags to
9685 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9686 <limit> tag in configuration file.
9688 2003-04-24 Havoc Pennington <hp@redhat.com>
9690 * bus/dispatch.c: somehow missed some name_is
9692 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9693 (_dbus_timeout_set_interval): new
9695 * bus/connection.c (bus_connections_setup_connection): record time
9696 when each connection is first set up, and expire them after the
9697 auth timeout passes.
9699 2003-04-24 Havoc Pennington <hp@redhat.com>
9701 * dbus/dbus-message.c (dbus_message_name_is): rename
9702 (dbus_message_service_is): rename
9703 (dbus_message_sender_is): rename
9704 (dbus_message_get_service): rename
9706 2003-04-24 Havoc Pennington <hp@redhat.com>
9708 * configure.in: add --enable-checks
9710 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9712 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9713 to use thread locks.
9714 (_dbus_connection_handler_destroyed_locked): move some private
9715 functions into proper docs group
9717 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9718 _dbus_return_val_if_fail
9720 Throughout: use dbus_return_if_fail
9722 2003-04-23 James Willcox <jwillcox@gnome.org>
9725 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9726 (dbus_connection_setup_with_g_main),
9727 (dbus_server_setup_with_g_main):
9728 * glib/test-dbus-glib.c: (main):
9729 * glib/test-thread-client.c: (main):
9730 * glib/test-thread-server.c: (new_connection_callback), (main):
9731 * tools/dbus-monitor.c: (main):
9733 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9734 and dbus_server_setup_with_g_main().
9736 2003-04-20 Havoc Pennington <hp@pobox.com>
9738 * doc/dbus-specification.sgml: document the restrictions on
9739 message and service names
9741 2003-04-22 Havoc Pennington <hp@redhat.com>
9743 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9744 support, and do some code cleanups to share more code and
9745 speed up array marshal/demarshal.
9747 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9749 * configure.in: generate dbus-arch-deps.h
9751 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9754 2003-04-22 Havoc Pennington <hp@redhat.com>
9756 * test/data/valid-messages/opposite-endian.message: fix test
9757 to use proper type for rply field
9759 * test/data/invalid-messages: add tests for below validation
9761 * dbus/dbus-message.c (decode_header_data): validate field types,
9762 and validate that named fields are valid names
9763 (decode_name_field): consider messages in the
9764 org.freedesktop.Local. namespace to be invalid.
9766 * dbus/dbus-string.c (_dbus_string_validate_name): new
9768 2003-04-19 Havoc Pennington <hp@pobox.com>
9770 * bus/driver.c (bus_driver_handle_hello): check limits and
9771 return an error if they are exceeded.
9773 * bus/connection.c: maintain separate lists of active and inactive
9774 connections, and a count of each. Maintain count of completed
9775 connections per user. Implement code to check connection limits.
9777 * dbus/dbus-list.c (_dbus_list_unlink): export
9779 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9780 number of bytes in the message queue for a connection
9782 2003-04-18 Havoc Pennington <hp@pobox.com>
9784 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9786 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9789 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9790 on realloc be sure to update the pointer in the keyring
9792 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9793 offset to avoid writing to unallocated memory
9795 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9796 try the next mechanism, so we properly handle OOM
9798 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9800 (_dbus_keyring_new): fix OOM bug
9801 (_dbus_keyring_new_homedir): always set error; impose a maximum
9802 number of keys we'll load from the file, mostly to speed up the
9803 test suite and make its OOM checks more useful, but also for
9806 * dbus/dbus-auth.c (process_error_server): reject authentication
9807 if we get an error from the client
9808 (process_cancel): on cancel, send REJECTED, per the spec
9809 (process_error_client): send CANCEL if we get an error from the
9812 2003-04-18 Havoc Pennington <hp@pobox.com>
9814 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9817 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9820 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9821 about DBUS_TEST_HOMEDIR once
9823 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9826 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9827 config file so we test the right thing
9829 Throughout: assorted docs improvements
9831 2003-04-18 Havoc Pennington <hp@pobox.com>
9833 * glib/dbus-gmain.c: adapt to watch changes
9835 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9837 * dbus/dbus-server.h: remove dbus_server_handle_watch
9839 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9841 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9842 like DBusTimeout, so we don't need dbus_connection_handle_watch
9845 2003-04-17 Havoc Pennington <hp@redhat.com>
9847 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9848 database usage so it all goes via the DBusUserDatabase cache.
9850 2003-04-17 Havoc Pennington <hp@redhat.com>
9852 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9853 there was an OOM watch we skipped, we always return TRUE so we
9854 iterate again to have a look at it again. Fixes test suite hang.
9855 Code rearrangement also lets us lose some memset and only iterate
9856 over callbacks once.
9858 * bus/driver.c (bus_driver_handle_message): sense of test for
9861 2003-04-16 Havoc Pennington <hp@pobox.com>
9863 * doc/dbus-specification.sgml: make spec say serials are unsigned
9865 * dbus/dbus-message.h: change message serials to unsigned
9867 * dbus/dbus-connection.c: adapt to message serials being unsigned
9869 2003-04-15 Havoc Pennington <hp@pobox.com>
9871 * bus/bus.c: create and keep around a shared DBusUserDatabase
9874 * bus/connection.c (bus_connection_get_groups): don't cache
9875 groups for user in the connection object, since user database
9876 object now does that.
9878 2003-04-16 Havoc Pennington <hp@redhat.com>
9880 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9881 list of size counters
9882 (_dbus_message_loader_putback_message_link): put back a popped link
9884 * dbus/dbus-connection.c
9885 (dbus_connection_set_max_live_messages_size): rename
9887 (dbus_connection_get_outgoing_size): get size of outgoing
9889 (_dbus_connection_set_connection_counter): remove this cruft
9891 2003-04-14 Havoc Pennington <hp@redhat.com>
9893 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9894 caching, but at some point we might want to be able to use a
9897 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9898 SHA1 conf file to test the sha1 auth mechanism, since the regular
9899 test always uses EXTERNAL when available.
9902 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9903 add conf file that requires use of sha1 auth
9905 2003-04-13 Havoc Pennington <hp@pobox.com>
9907 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9908 from Philip Blundell to send messages and monitor them.
9910 2003-04-13 Havoc Pennington <hp@pobox.com>
9912 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9915 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9918 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9919 fix to only recover unused bytes if we're already authenticated
9920 (_dbus_transport_get_is_authenticated): fix to still mark us
9921 authenticated if there are unused bytes.
9923 * bus/dispatch.c: implement security policy checking
9925 * bus/connection.c (bus_transaction_send_from_driver): new
9927 * bus/bus.c (bus_context_check_security_policy): new
9929 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9930 now we just set the DBusError and it gets converted to an error
9933 * bus/connection.c (allow_user_function): enable code using actual
9934 data from the config file
9936 * bus/policy.c (list_allows_user): handle wildcard rules for
9937 user/group connection perms
9939 2003-04-13 Havoc Pennington <hp@pobox.com>
9941 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9943 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9945 * bus/policy.c (bus_policy_append_mandatory_rule)
9946 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9947 (bus_policy_append_group_rule): new functions
9949 2003-04-12 Havoc Pennington <hp@pobox.com>
9951 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9953 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9954 the pid/gid/uid, just for paranoia.
9956 * test/break-loader.c (randomly_do_n_things): find a byte
9957 containing a type code, and randomly change it to a different
9960 2003-04-12 Havoc Pennington <hp@pobox.com>
9962 * bus/policy.h: change BusPolicy to be the thing from the config
9963 file, and rename old BusPolicy to BusClientPolicy
9965 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9966 match change in how policy works
9968 * dbus/dbus-internals.h: mark assert_not_reached as
9969 __attribute((noreturn))__
9971 2003-04-11 Havoc Pennington <hp@redhat.com>
9973 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9974 the broadcast service. Use boolean return for ServiceExists.
9976 2003-04-11 Havoc Pennington <hp@redhat.com>
9978 * configure.in: add another directory to look for qt in.
9980 2003-04-11 Havoc Pennington <hp@redhat.com>
9982 * AUTHORS: add Colin Walters
9984 2003-04-11 Havoc Pennington <hp@redhat.com>
9990 2003-04-11 Havoc Pennington <hp@redhat.com>
9992 * bus/messagebus.in: remove pid file when stopping the
9993 message bus, since the bus won't have privileges to remove it
9996 2003-04-11 Havoc Pennington <hp@redhat.com>
9998 * bus/bus.c (bus_context_new): move credentials change after
10001 2003-04-11 Havoc Pennington <hp@pobox.com>
10003 * test/decode-gcov.c: add "below average functions" to the
10004 coverage report, and change how some of the code works.
10006 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10007 not in the coverage stats.
10009 * test/test-service.c (main): use _dbus_verbose not fprintf in a
10010 couple places so running the test suite doesn't result in megaspam.
10012 2003-04-11 Havoc Pennington <hp@pobox.com>
10014 * bus/dispatch.c (check_existent_service_activation): accept a no
10015 memory error in a place we didn't before
10017 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10018 in case the first one failed," since the test suite is less
10021 2003-04-10 Havoc Pennington <hp@pobox.com>
10023 * bus/dispatch.c (check_segfault_service_activation): add test
10024 for launching an executable that just crashes.
10026 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10027 don't leave a million cores. We'll see how portable this is.
10029 2003-04-10 Havoc Pennington <hp@pobox.com>
10031 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10032 the possible parent failures before we fork, so that we don't
10033 fail to create a babysitter after creating the child.
10035 * bus/activation.c (bus_activation_activate_service): kill child
10036 if we don't successfully complete the activation.
10038 2003-04-10 Havoc Pennington <hp@redhat.com>
10040 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10041 the connection if it's disconnected
10043 * bus/activation.c (bus_activation_service_created): use new
10044 transaction features to roll back removal of pending activation if
10045 we don't successfully create the service after all. Don't remove
10046 pending activation if the function fails.
10048 * dbus/dbus-list.c (_dbus_list_insert_before_link)
10049 (_dbus_list_insert_after_link): new code to facilitate
10052 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10053 new functionality, so we can preallocate the ability to insert
10056 * bus/connection.c (bus_transaction_add_cancel_hook): new function
10057 allowing us to put custom hooks in a transaction to be used for
10058 cancelling said transaction
10060 * doc/dbus-specification.sgml: add some discussion of secondary
10061 service owners, and disallow zero-length service names
10063 * bus/services.c (bus_registry_acquire_service): new function,
10064 splits out part of bus_driver_handle_acquire_service() and fixes
10065 a bug where we didn't remove the service doing the acquiring
10066 from the secondary queue if we failed to remove the current owner
10067 from the front of the queue.
10069 2003-04-10 Alexander Larsson <alexl@redhat.com>
10071 * doc/dbus-specification.sgml:
10072 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10074 2003-04-10 Alexander Larsson <alexl@redhat.com>
10079 Added files to cvsignore
10081 * dbus/dbus-message.h:
10082 * dbus/dbus-message.c: (dbus_message_iter_get_named):
10083 Make get_named() take two out argument and return a boolean.
10084 (dbus_message_iter_get_args_valist):
10085 Update usage of get_named().
10086 (dbus_message_iter_append_byte):
10088 (dbus_message_iter_append_named)
10090 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10093 2003-04-10 Alexander Larsson <alexl@redhat.com>
10095 * dbus/dbus-marshal.[ch]:
10096 Add array_type_pos argument to _dbus_marshal_validate_arg.
10097 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10099 * dbus/dbus-message.[ch]:
10100 Multi-dimensional arrays have full type specification in the
10101 outermost array. Iter code re-arranged to handle this.
10102 Added some more iter tests.
10104 * doc/dbus-specification.sgml:
10107 Update new array encoding description.
10108 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10110 * test/data/invalid-messages/array-with-mixed-types.message:
10111 * test/data/valid-messages/array-of-array-of-uint32.message:
10112 Change to the new array format.
10114 * test/data/invalid-messages/too-short-dict.message:
10117 * test/data/valid-messages/recursive-types.message:
10118 Fix up and extend test.
10120 2003-04-10 Havoc Pennington <hp@pobox.com>
10122 * bus/dispatch.c: lots of fixes
10124 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10125 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10126 that was crack, broke the test service.
10128 * dbus/dbus-transport.c (_dbus_transport_open): fix error
10129 handling to avoid piling up errors if we get a failure on the
10132 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10133 pid in assertion failures.
10135 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10136 to some fixed size of file descriptor array. Don't return TRUE
10137 anytime a timeout exists, that led to lots of busy loop silliness
10140 2003-04-09 Havoc Pennington <hp@redhat.com>
10142 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10143 I'd checked this in earlier but hadn't.
10145 2003-04-09 Havoc Pennington <hp@redhat.com>
10147 * bus/dispatch.c (bus_dispatch_test): get a bit further through
10148 the activation test (man this is getting old!)
10150 2003-04-09 Havoc Pennington <hp@redhat.com>
10152 * test/test-utils.c: use dispatch status function to fix this up
10154 * bus/connection.c (connection_watch_callback): don't dispatch
10156 (connection_timeout_callback): don't dispatch from here
10157 (bus_connections_setup_connection): set the dispatch status function
10158 (bus_connection_disconnected): unset it
10160 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10161 used to add a connection to be dispatched
10162 (_dbus_loop_iterate): do the dispatching at the end of each
10165 * dbus/dbus-connection.c
10166 (dbus_connection_set_dispatch_status_function): new function
10167 allowing us to fix up main loop usage
10168 (_dbus_connection_last_unref): free all the various function
10170 (dbus_connection_dispatch): call the DispatchStatusFunction
10171 whenever this function returns
10172 (dbus_connection_handle_watch): call DispatchStatusFunction
10173 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10174 (reply_handler_timeout): call DispatchStatusFunction
10175 (dbus_connection_flush): call DispatchStatusFunction
10177 2003-04-09 Havoc Pennington <hp@redhat.com>
10179 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10182 * bus/dispatch.c (check_service_activated): fix bug in test
10184 * dbus/dbus-mainloop.c (check_timeout): fix this up
10186 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10187 verbose output so we can sort out output from different processes,
10188 e.g. in the activation case.
10190 2003-04-08 Colin Walters <walters@gnu.org>
10192 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10194 (bus_context_new): Set it.
10195 (bus_context_unref): Use it to delete the pid file.
10197 2003-04-08 Havoc Pennington <hp@redhat.com>
10199 * test/data/invalid-messages/array-with-mixed-types.message:
10200 regression test that fails for the moment
10202 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10203 tests for convenience
10205 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10206 array of nil, it broke things.
10208 * test/data/invalid-messages/array-of-nil.message: regression test
10210 * test/data/valid-messages/array-of-array-of-uint32.message:
10211 happened to write this so added it to suite
10213 2003-04-08 Havoc Pennington <hp@redhat.com>
10215 * bus/driver.c (bus_driver_handle_acquire_service): init
10216 retval/reply before checking name
10218 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10219 recursion depth argument
10221 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10222 in the public struct for future extension
10224 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10227 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10230 * doc/dbus-specification.sgml: fix typo
10232 2003-04-08 Alexander Larsson <alexl@redhat.com>
10234 Implemented recursive types, named types and new-style iters
10237 * glib/test-thread-client.c: (thread_func):
10238 * glib/test-thread-server.c: (handle_test_message):
10239 * test/test-service.c: (handle_echo):
10242 * dbus/Makefile.am:
10243 * dbus/dbus-dict.c:
10244 * dbus/dbus-dict.h:
10248 * dbus/dbus-internals.c: (_dbus_type_to_string):
10249 Update for new types.
10251 * dbus/dbus-marshal.[ch]:
10252 Implement recursive types and the new marshalling format.
10253 Remove hardcoded dict marshalling.
10254 Marshal named types.
10256 * dbus/dbus-message-builder.c:
10258 Remove references to old types
10260 * dbus/dbus-message.[ch]:
10261 New non-refcounted iter API that supports recursive iters.
10262 Use iters for appending, including support for recursive
10264 Add byte and named type support.
10265 Update everything to new marshalling formats.
10266 Add tests for new API.
10268 * dbus/dbus-protocol.h:
10269 Remove old array types.
10270 Add types: BYTE, ARRAY, DICT, NAMED
10272 * dbus/dbus-string.c:
10273 * dbus/dbus-sysdeps.c:
10274 Make parse_double locale safe.
10276 * dbus/dbus-test-main.c:
10279 * dbus/dbus-test.c:
10282 * doc/dbus-specification.sgml:
10285 * test/data/incomplete-messages/missing-body.message:
10286 * test/data/invalid-messages/bad-boolean.message:
10287 * test/data/invalid-messages/bad-boolean-array.message:
10288 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10289 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10290 * test/data/invalid-messages/too-short-dict.message:
10291 * test/data/valid-messages/dict-simple.message:
10292 * test/data/valid-messages/dict.message:
10293 * test/data/valid-messages/emptiness.message:
10294 * test/data/valid-messages/lots-of-arguments.message:
10295 * test/data/valid-messages/no-padding.message:
10296 * test/data/valid-messages/recursive-types.message:
10297 Add missing NAME fields
10298 Fix up dicts & arrays
10300 * test/data/invalid-messages/dict-with-nil-value.message:
10301 Removed, this is not invalid anymore.
10303 * test/data/valid-messages/recursive-types.message:
10304 Add new test for deeply recursive types.
10306 2003-04-07 Havoc Pennington <hp@pobox.com>
10308 * bus/driver.c (bus_driver_handle_acquire_service): return an
10309 error if you try to acquire a service that starts with ':'
10311 2003-04-07 Havoc Pennington <hp@redhat.com>
10313 * doc/dbus-specification.sgml: require that base service names
10314 start with ':' and that the base service is created/deleted
10315 as first and last things a connection does on the bus
10317 * bus/dispatch.c (check_existent_service_activation): lots more
10318 work on the activation test; it doesn't fully pass yet...
10320 * test/test-service.c (main): fix so we don't memleak the
10321 connection to the message bus
10322 (filter_func): accept a message asking us to exit
10324 2003-04-06 Havoc Pennington <hp@pobox.com>
10326 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10329 * configure.in: fixes to Qt detection from Colin Walters
10331 * doc/Makefile.am: Only remove generated docbook dirs if they
10332 exist, from Colin Walters
10334 * dbus/dbus-bus.c: change how we set well-known connections to
10335 NULL, so that it works if a single connection is stored in
10336 two well-known array slots.
10338 * test/Makefile.am: remove a lot of stuff that isn't immediately
10339 useful, it's in CVS history if we want it.
10341 * test/test-service.c: use dbus-mainloop instead of that
10344 2003-04-06 Havoc Pennington <hp@pobox.com>
10346 * dbus/Makefile.am: split lists of sources into stuff that goes in
10347 the library, util functions that go in the lib and are also used
10348 elsewhere, and util functions that are used in tests/daemon but
10349 don't go in the lib.
10351 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10352 here so it can be used in test binaries also
10354 2003-04-06 Havoc Pennington <hp@pobox.com>
10356 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10357 here in the parent process, so we can return an error if it
10358 fails. Also, move some of the code into the child so the parent
10359 is less hosed if we fail midway through.
10361 * bus/bus.c (bus_context_new): move pidfile detection further up
10362 in the function, before we start overwriting sockets and such.
10364 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10366 * configure.in: add --with-system-pid-file and --with-system-socket
10368 2003-04-06 Colin Walters <walters@verbum.org>
10370 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10372 * bus/system.conf.in: Declare a pidfile.
10374 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10375 create one (if appropriate).
10377 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10378 (struct BusConfigParser) [pidfile]: New.
10379 (element_type_to_name, merge_included, start_busconfig_child)
10380 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10381 (bus_config_parser_unref): Free it.
10382 (bus_config_parser_get_pidfile): New function.
10384 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10386 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10388 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10390 * dbus/dbus-sysdeps.h: Prototype it.
10392 2003-04-06 Havoc Pennington <hp@pobox.com>
10394 * bus/bus.c (bus_context_new): print the address in here, rather
10395 than in main(), because we need to do it before forking the daemon
10397 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10398 on the service nonexistent error
10400 * bus/driver.c (bus_driver_handle_acquire_service): set the
10401 sender on the AcquireService reply
10403 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10404 server also listen on a UNIX socket so services can connect to it.
10406 2003-04-06 Havoc Pennington <hp@pobox.com>
10408 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10409 so it detects deadlocks and also we actually init threads when
10412 2003-04-06 Havoc Pennington <hp@pobox.com>
10414 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10415 save the domain socket name, and unlink it when we disconnect the
10416 server. Means that at least when we exit normally, we won't leave
10417 a bunch of junk in /tmp
10419 * dbus/dbus-transport-unix.c
10420 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10421 memory management). (I was making a real change here but then
10424 2003-04-06 Havoc Pennington <hp@pobox.com>
10426 * bus/bus.c (bus_context_new): fix wrong handling of
10427 server_data_slot_unref() in the error case.
10429 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10430 "(condition) != 0" to _dbus_real_assert so that
10431 "_dbus_assert (pointer)" doesn't cause a warning
10433 * bus/main.c (main): accept --print-address option to print out
10434 the message bus address
10436 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10438 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10439 "tmpdir" option to unix: address on client side
10441 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10444 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10445 we can use to create sockets in the test suite.
10447 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10448 cleanly. To be used for testing.
10450 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10452 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10454 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10455 handle trying to call this when there's no servers active
10457 2003-04-05 Havoc Pennington <hp@pobox.com>
10461 * configure.in: 0.8
10463 2003-04-05 Havoc Pennington <hp@pobox.com>
10465 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10466 crash on startup. Need to get "try starting the daemon"
10467 in the test suite I guess. ;-)
10469 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10470 tracked the number of open connections; it's better done in
10471 application-specific code as you want it to span all servers etc.
10473 2003-04-05 Havoc Pennington <hp@pobox.com>
10475 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10476 patch from Colin Walters
10478 2003-04-05 Havoc Pennington <hp@pobox.com>
10480 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10481 reality; in fact multiple mechanisms are allowed.
10483 * dbus/dbus-internals.c (_dbus_real_assert)
10484 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10485 _dbus_assert_not_reached() into functions, so that they don't show
10486 up in basic block counts for test coverage, and don't use up as
10487 much disk space. Does mean slower execution speed though, so
10488 assumes --disable-asserts is the normal production case.
10490 2003-04-05 Havoc Pennington <hp@pobox.com>
10492 * test/Makefile.am (dist-hook): also dist *.in files
10496 * configure.in: 0.7
10498 2003-04-05 Havoc Pennington <hp@pobox.com>
10500 * dbus/dbus-string.c: docs warning
10502 * dbus/dbus-spawn.c: missing docs
10504 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10506 2003-04-05 Havoc Pennington <hp@pobox.com>
10508 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10511 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10512 to -1 once we've reaped the babysitter
10513 (_dbus_babysitter_handle_watch): do as much work as we can, not
10516 * bus/activation.c: add code using DBusBabysitter so that we
10517 handle it when a service fails to start up properly.
10518 (bus_activation_service_created): don't remove the activation
10519 entries as we go, just let them get removed when we free the pending
10520 activation. Unref reply messages after sending them.
10522 2003-04-05 Havoc Pennington <hp@pobox.com>
10524 * test/decode-gcov.c (main): print per-directory stats in the report
10526 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10528 2003-04-05 Havoc Pennington <hp@pobox.com>
10530 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10532 * test/decode-gcov.c: hack up a little program to suck data
10533 out of gcov files. Yes this is sort of silly.
10535 * configure.in: define something in config.h and do an
10536 AM_CONDITIONAL when gcov is enabled
10538 2003-04-04 Havoc Pennington <hp@redhat.com>
10540 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10541 return a "babysitter" object that is used to monitor the status of
10542 the spawned process and reap it when required.
10544 * test/test-segfault.c, test/test-exit.c,
10545 test/test-sleep-forever.c: binaries that do various lame things,
10546 used in the test suite.
10548 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10550 2003-04-03 Havoc Pennington <hp@pobox.com>
10552 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10553 in preparation for modifying it, dbus-sysdeps is getting
10554 a bit unmanageable.
10556 2003-04-03 Havoc Pennington <hp@redhat.com>
10558 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10561 * bus/*.[hc]: adapt to mainloop change
10563 2003-04-03 Havoc Pennington <hp@redhat.com>
10565 * bus/activation.c (load_directory): fix up memleaks
10566 (bus_activation_entry_free): free the entry
10568 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10569 we get one from the message bus; fix memleaks.
10571 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10573 2003-04-03 Havoc Pennington <hp@pobox.com>
10575 * bus/config-parser.c (bus_config_parser_unref): free
10576 list of mechanisms, bug discovered by test suite enhancements
10577 (putting system.conf and session.conf into suite)
10579 * test/Makefile.am, test/test-service.c: add placeholder for a
10580 test service that we'll activate as part of test suite. Doesn't
10583 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10584 setting NULL value, and use system malloc not dbus_malloc()
10585 when we have unavoidable memleakage.
10587 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10588 didn't work, and support DBUS_BUS_ACTIVATION.
10590 * bus/activation.c (child_setup): pass our well-known bus type to
10593 * bus/config-parser.c: support <type> to specify well-known type
10595 * doc/dbus-specification.sgml: document the env variables to
10596 locate well-known buses and find service activator
10598 2003-04-02 Havoc Pennington <hp@redhat.com>
10600 * test/Makefile.am (all-local): add a rule to copy tests to
10601 builddir, so we can have generated tests. Use this to remove the
10602 silly hack for testing system.conf and session.conf. Will use this
10603 shortly to generate .service files pointing to test binaries.
10605 2003-04-02 Havoc Pennington <hp@redhat.com>
10607 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10608 current alloc and needed new length, not max of the doubled
10609 allocation and needed new length. Also, when building tests,
10610 don't do the double-allocation stuff, just realloc every time.
10612 2003-04-02 Havoc Pennington <hp@redhat.com>
10614 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10616 (_dbus_string_get_dirname): new
10617 (_dbus_sysdeps_test): new
10618 (_dbus_directory_open): include dirnames in error messages
10620 * bus/config-parser.c: interpret <include> and <includedir> and
10621 <servicedir> relative to config file location if the given
10622 filename is not absolute.
10624 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10626 2003-04-02 Havoc Pennington <hp@redhat.com>
10628 * bus/connection.c (bus_transaction_send_error_reply): set sender
10629 service for the error, and unref the reply on success
10631 * bus/activation.c: convert to use BusTransaction so OOM can be
10633 (bus_activation_service_created): set sender of the message
10635 2003-04-01 Havoc Pennington <hp@redhat.com>
10637 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10638 <includedir> (at least mostly)
10640 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10641 first, then the user ID
10643 2003-04-01 Havoc Pennington <hp@pobox.com>
10645 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10648 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10650 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10652 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10653 socket 0777, and unlink any existing socket.
10655 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10656 the configuration file so specifies; set up auth mechanism
10659 * bus/config-parser.c (bus_config_parser_content): add support
10660 for <fork> option and fill in code for <auth>
10662 * bus/system.conf.in: add <fork/> to default configuration,
10663 and limit auth mechanisms to EXTERNAL
10665 * doc/config-file.txt (Elements): add <fork>
10667 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10668 (_dbus_change_identity): new function
10670 2003-03-31 Havoc Pennington <hp@redhat.com>
10672 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10673 (_dbus_listen_unix_socket): fix off-by-one error in null
10674 termination spotted by Nalin
10676 2003-03-31 Havoc Pennington <hp@redhat.com>
10678 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10679 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10680 having a real home directory available.
10682 2003-03-31 Havoc Pennington <hp@redhat.com>
10684 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10686 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10688 * configure.in: add support for specifying a style of init script
10691 2003-03-31 Havoc Pennington <hp@redhat.com>
10693 Fix some annoying DBusString API and fix all affected code.
10695 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10696 max_length argument
10697 (_dbus_string_get_data): change to return string instead of using
10699 (_dbus_string_get_const_data): ditto
10700 (_dbus_string_get_data_len): ditto
10701 (_dbus_string_get_const_data_len): ditto
10703 2003-03-31 Havoc Pennington <hp@redhat.com>
10705 * bus/main.c (main): fix up the command line arguments to be nicer
10707 2003-03-31 Havoc Pennington <hp@redhat.com>
10709 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10710 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10711 final location that lands in the config file
10713 * bus/config-loader-expat.c (bus_config_load): fix type of
10714 XML_Parser variable
10716 * doc/TODO: remove TODO item for dbus_bus_get()
10718 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10720 2003-03-31 Havoc Pennington <hp@pobox.com>
10722 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10723 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10724 argument since they are always client side
10726 * dbus/dbus-server.c (dbus_server_get_address): new function
10728 * bus/main.c (main): take the configuration file as an argument.
10730 * test/data/valid-config-files/debug-allow-all.conf: new file to
10731 use with dispatch.c tests for example
10733 * bus/test-main.c (main): require test data dir
10735 * bus/bus.c (bus_context_new): change this to take a
10736 configuration file name as argument
10738 * doc/config-file.txt (Elements): add <servicedir>
10740 * bus/system.conf, bus/session.conf: new files
10742 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10743 well-known socket if none set
10745 * configure.in: create system.conf and session.conf
10747 2003-03-30 Havoc Pennington <hp@pobox.com>
10749 * bus/config-parser.c: hacking
10751 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10752 to shut down, since it could cause weirdness with the DBusList
10755 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10756 link-oriented stack routines
10757 (alloc_link): free the mempool if the first alloc from it fails
10759 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10761 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10763 (_dbus_string_skip_white): new
10765 * doc/config-file.txt (Elements): add <includedir>
10767 2003-03-28 Havoc Pennington <hp@pobox.com>
10769 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10770 (_dbus_string_copy_data): new functions
10772 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10774 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10778 * dbus/dbus-memory.c:
10781 2003-03-28 Havoc Pennington <hp@pobox.com>
10783 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10784 I think it may have just been superstition. Not sure.
10786 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10787 failures that were not being handled.
10789 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10791 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10792 row that will fail on out-of-memory.
10794 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10795 function for testing out-of-memory handling.
10797 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10798 allocation functions, they do map exactly to the expat ones.
10800 2003-03-27 Havoc Pennington <hp@redhat.com>
10802 * bus/config-loader-libxml.c (bus_config_load): add another error
10805 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10808 Add note about automatic service activation.
10810 * doc/dbus-specification.sgml:
10811 Rename the specification and clarify a few things.
10813 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10816 * dbus/dbus-address.c:
10817 * dbus/dbus-dict.c:
10818 * dbus/dbus-marshal.c:
10819 * dbus/dbus-server-debug-pipe.c:
10820 * dbus/dbus-transport-unix.c:
10821 Fix documentation warnings.
10823 2003-03-26 Havoc Pennington <hp@pobox.com>
10825 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10826 after every test so it's quick and easy to see which leaked, and
10827 so we test multiple dbus_shutdown() calls
10829 * configure.in: change configure.in XML stuff to also support
10832 * config-loader-libxml.c: some hacking
10834 * config-loader-expat.c: some hacking
10836 * config-parser.c: some hacking, plus tests
10838 2003-03-25 Havoc Pennington <hp@redhat.com>
10840 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10842 * configure.in: add --with-xml option to specify XML library,
10843 right now only libxml is supported.
10845 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10846 nonworking code between home and work, still just stubs
10848 2003-03-24 Havoc Pennington <hp@redhat.com>
10850 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10853 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10854 NULL argument for "message" if the error is a well-known one,
10855 fill in a generic message in this case.
10857 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10860 * bus/test.c (bus_test_flush_bus): add
10862 * bus/policy.c (bus_policy_test): test code stub
10864 2003-03-24 Havoc Pennington <hp@pobox.com>
10866 * bus/connection.c (bus_connections_setup_connection): set up
10867 the "can this user connect" function, but it always returns
10868 TRUE until we have a config file parser so we can have a config
10869 file that allows connections.
10871 2003-03-23 Havoc Pennington <hp@pobox.com>
10873 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10874 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10875 the mutex, so we can check for proper memory management
10878 * dbus/dbus-dataslot.c: remove the mutex from
10879 DBusDataSlotAllocator and lock it manually when using it,
10880 to simplify fitting it into the global slots framework.
10882 * dbus/dbus-threads.c (init_static_locks): rework how we're
10883 handling global locks so they are easily shut down.
10885 * bus/policy.c (bus_policy_append_rule): fix
10887 * bus/test-main.c (main): check for memleaks
10889 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10890 test suite check for memleaks
10892 * dbus/dbus-memory.c: add support in test mode for tracking
10893 number of outstanding blocks
10895 2003-03-23 Havoc Pennington <hp@pobox.com>
10897 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10900 * dbus/dbus-hash.h: add ULONG hash keys
10902 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10903 (_dbus_get_group_id): new function
10905 2003-03-20 Havoc Pennington <hp@redhat.com>
10907 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10909 (dbus_connection_get_unix_user): new function
10911 2003-03-20 Havoc Pennington <hp@pobox.com>
10913 * bus/connection.c (bus_connection_send_oom_error): assert that
10914 message has a sender
10915 (connection_execute_transaction): ditto
10916 (bus_connection_preallocate_oom_error): fix to set the sender, and
10917 set recipient to the destination service, not the bus driver
10919 * bus/policy.c: hacking
10921 * dbus/dbus-message.c (dbus_message_service_is): new function
10922 (dbus_message_sender_is): new
10924 2003-03-19 Havoc Pennington <hp@redhat.com>
10926 * bus/policy.c: start sketching code for policy restrictions on
10927 what connections can do.
10929 2003-03-18 Havoc Pennington <hp@redhat.com>
10931 * doc/TODO: some notes on high-level todo items. Little nitpick
10932 stuff is all in @todo, so no need to add it here.
10934 * doc/config-file.txt: some notes on how config file might look
10936 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10938 * configure.in: 0.6
10942 2003-03-17 Havoc Pennington <hp@redhat.com>
10944 * dbus/dbus-internals.h: add gcc attributes so that
10945 our printf-style functions warn on bad arguments to
10948 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10951 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10954 2003-03-17 Havoc Pennington <hp@redhat.com>
10956 * bus/test-main.c (main): make it print something as it runs
10957 so make check doesn't look stuck
10959 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10960 from CVS, now obsolete
10962 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10964 * bus/dispatch.c: (bus_dispatch):
10965 Refetch the service name since it may have been reallocated
10966 when dbus_message_set_sender was called.
10968 * dbus/dbus-sysdeps.c: (_dbus_accept):
10969 Add address and address length variables and use them to stop
10970 valgrind from complaining.
10972 2003-03-17 Havoc Pennington <hp@pobox.com>
10974 All tests pass, no memleaks, no valgrind complaints.
10976 * bus/test.c: refcount handler_slot
10978 * bus/connection.c (bus_connections_new): refcount
10979 connection_data_slot
10981 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10982 bytes so that auth scripts pass.
10984 * bus/dispatch.c: init message_handler_slot so it gets allocated
10987 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10989 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10990 dealloc server_pipe_hash when no longer used for benefit of
10993 * dbus/dbus-auth.c (process_command): memleak fix
10995 * bus/dispatch.c (check_hello_message): memleak fix
10997 2003-03-16 Havoc Pennington <hp@pobox.com>
10999 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11001 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11003 * bus/activation.c (bus_activation_activate_service): Append
11004 the pending activation entry to the list of pending activations.
11006 2003-03-16 Havoc Pennington <hp@pobox.com>
11008 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11011 * dbus/dbus-address.c (create_entry): fix OOM handling when
11012 failing to alloc entry->method
11014 2003-03-16 Havoc Pennington <hp@pobox.com>
11016 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11019 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11020 add some missing dbus_set_result
11022 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11023 alloc the DBusMessageHandler
11025 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11026 the transport here, since we call this from the finalizer; it
11027 resulted in a double-finalize.
11029 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11030 where we tried to use transport->connection that was NULL,
11031 happened when transport was disconnected early on due to OOM
11033 * bus/*.c: adapt to handle OOM for watches/timeouts
11035 * dbus/dbus-transport-unix.c: port to handle OOM during
11038 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11039 reference to unused bytes instead of a copy
11041 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11044 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11047 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11050 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11052 * doc/dbus-specification.sgml:
11053 Document reply message for ActivateService.
11055 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11057 * bus/activation.c: (bus_pending_activation_entry_free),
11058 (bus_pending_activation_free), (bus_activation_new),
11059 (bus_activation_unref), (bus_activation_service_created),
11060 (bus_activation_activate_service):
11061 * bus/activation.h:
11062 * bus/bus.c: (bus_context_new):
11063 * bus/desktop-file.c: (new_section):
11064 * bus/driver.c: (bus_driver_send_service_deleted),
11065 (bus_driver_handle_activate_service):
11066 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11068 * dbus/dbus-connection.c:
11069 (dbus_connection_send_with_reply_and_block):
11070 * dbus/dbus-message.c: (dbus_message_append_args_valist):
11071 * dbus/dbus-protocol.h:
11072 Make activation work better. Now pending activations will be queued
11073 and the daemon won't try to activate services that are already registered.
11075 2003-03-16 Havoc Pennington <hp@pobox.com>
11077 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11080 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11081 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11083 2003-03-16 Havoc Pennington <hp@pobox.com>
11085 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11086 this. always run the test suite before commit...
11088 * bus/*: adapt to DBusConnection API changes
11090 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11091 requires renaming stuff to avoid dbus_connection_dispatch name
11094 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11097 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11098 separate from _dbus_message_loader_return_buffer()
11100 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11101 this, because it's now always broken to use; the number of
11102 messages in queue vs. the number still buffered by the message
11103 loader is undefined/meaningless. Should use
11104 dbus_connection_get_dispatch_state().
11105 (dbus_connection_dispatch): rename from
11106 dbus_connection_dispatch_message
11108 2003-03-16 Havoc Pennington <hp@pobox.com>
11110 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11113 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11115 * dbus/dbus-connection.c:
11116 (dbus_connection_send_with_reply_and_block):
11117 Decrease connection->n_incoming when removing an entry
11119 * dbus/dbus-dict.c: (dbus_dict_entry_free),
11120 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11121 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11122 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11123 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11124 (dbus_dict_get_byte_array):
11125 Handle NULL arrays and strings. Also add support for byte arrays.
11127 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11128 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11129 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11130 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11131 (_dbus_demarshal_dict), (demarshal_and_validate_len),
11132 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11133 * dbus/dbus-marshal.h:
11134 Add support for marshalling and demarshalling empty arrays and strings.
11136 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11137 (dbus_message_append_string_array),
11138 (dbus_message_iter_get_boolean),
11139 (dbus_message_iter_get_boolean_array),
11140 (dbus_message_iter_get_int32_array),
11141 (dbus_message_iter_get_uint32_array),
11142 (dbus_message_iter_get_double_array),
11143 (dbus_message_iter_get_byte_array),
11144 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11145 (check_message_handling):
11146 Add support for getting empty arrays and dicts.
11148 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11149 Don't do any validation at all for now, that's better than just checking
11152 * test/data/valid-messages/emptiness.message:
11153 New test message with lots of empty arrays.
11155 2003-03-16 Havoc Pennington <hp@pobox.com>
11157 * dbus/dbus-connection.c
11158 (_dbus_connection_queue_received_message_link): new function that
11159 can't fail due to OOM
11161 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11162 new function pops a message together with a list link
11165 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11166 message queuing functions to avoid needing to alloc memory
11168 2003-03-16 Havoc Pennington <hp@pobox.com>
11170 Oops - test code was only testing failure of around 30 of the
11171 mallocs in the test path, but it turns out there are 500+
11172 mallocs. I believe this was due to misguided linking setup such
11173 that there was one copy of dbus_malloc etc. in the daemon and one
11174 in the shared lib, and only daemon mallocs were tested. In any
11175 case, the test case now tests all 500+ mallocs, and doesn't pass
11176 yet, though there are lots of fixes in this patch.
11178 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11179 this so that it doesn't need to allocate memory, since it
11180 has no way of indicating failure due to OOM (and would be
11181 annoying if it did).
11183 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11185 * bus/Makefile.am: rearrange to create two self-contained
11186 libraries, to avoid having libraries with overlapping symbols.
11187 that was resulting in weirdness, e.g. I'm pretty sure there
11188 were two copies of global static variables.
11190 * dbus/dbus-internals.c: move the malloc debug stuff to
11193 * dbus/dbus-list.c (free_link): free list mempool if it becomes
11196 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11198 * dbus/dbus-address.c (dbus_parse_address): free list nodes
11201 * bus/dispatch.c (bus_dispatch_add_connection): free
11202 message_handler_slot when no longer using it, so
11203 memory leak checkers are happy for the test suite.
11205 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11207 * bus/bus.c (new_connection_callback): disconnect in here if
11208 bus_connections_setup_connection fails.
11210 * bus/connection.c (bus_connections_unref): fix to free the
11212 (bus_connections_setup_connection): if this fails, don't
11213 disconnect the connection, just be sure there are no side
11216 * dbus/dbus-string.c (undo_alignment): unbreak this
11218 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11220 (_dbus_auth_new): fix the order in which we free strings
11223 * bus/connection.c (bus_connection_disconnected): fix to
11224 not send ServiceDeleted multiple times in case of memory
11227 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11228 get the base service name
11229 (dbus_bus_register_client): don't return base service name,
11230 instead store it on the DBusConnection and have an accessor
11232 (dbus_bus_register_client): rename dbus_bus_register()
11234 * bus/dispatch.c (check_hello_message): verify that other
11235 connections on the bus also got the correct results, not
11236 just the one sending hello
11238 2003-03-15 Havoc Pennington <hp@pobox.com>
11240 Make it pass the Hello handling test including all OOM codepaths.
11241 Now to do other messages...
11243 * bus/services.c (bus_service_remove_owner): fix crash when
11244 removing owner from an empty list of owners
11245 (bus_registry_ensure): don't leave service in the list of
11246 a connection's owned services if we fail to put the service
11249 * bus/connection.c (bus_connection_preallocate_oom_error): set
11250 error flag on the OOM error.
11252 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11253 handle _dbus_transport_set_connection failure
11255 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11256 to create watches up front and simply enable/disable them as
11258 (unix_connection_set): this can now fail on OOM
11260 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11261 of enabling/disabling a watch or timeout.
11263 * bus/loop.c (bus_loop_iterate): don't touch disabled
11266 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11268 2003-03-15 Havoc Pennington <hp@pobox.com>
11270 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11271 write useful test code, after all that futzing around ;-)
11273 Test does not yet pass because we can't handle OOM in
11274 _dbus_transport_messages_pending (basically,
11275 dbus_connection_preallocate_send() does not prealloc the write
11276 watch). To fix this, I think we need to add new stuff to
11277 set_watch_functions, namely a SetEnabled function so we can alloc
11278 the watch earlier, then enable it later.
11280 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11281 dbus-memory.c to the convenience lib
11283 * bus/test.c: rename some static functions to keep them clearly
11284 distinct from stuff in connection.c. Handle client disconnection.
11286 2003-03-14 Havoc Pennington <hp@pobox.com>
11288 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11289 transport, tests more of the real codepath. Set up clients
11290 with bus_setup_debug_client.
11292 * bus/test.c (bus_setup_debug_client): function to set up debug
11293 "clients" on the main loop
11295 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11298 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11301 * dbus/dbus-server-debug.c: support a debug server based on pipes
11303 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11304 (_dbus_close): new function
11306 * configure.in: check for socketpair
11308 2003-03-14 Havoc Pennington <hp@redhat.com>
11310 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11313 * dbus/dbus-transport-debug.c: rework this a good bit to be
11314 less complicated. hopefully still works.
11316 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11319 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11322 * dbus/dbus-message.c (dbus_message_copy): rename from
11323 dbus_message_new_from_message, fix it up to copy
11324 all the message fields, add test case
11326 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11327 not quite passing yet
11329 2003-03-14 Havoc Pennington <hp@pobox.com>
11331 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11332 until no work remains" in test code. (the large diff here
11333 is just code movement, no actual changes)
11335 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11336 1, no point waiting around for test code.
11337 (_dbus_server_debug_accept_transport): unref the timeout
11338 after adding it (right?)
11340 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11342 2003-03-13 Havoc Pennington <hp@redhat.com>
11344 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11347 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11350 * dbus/dbus-connection.h: Make AddWatchFunction and
11351 AddTimeoutFunction return a bool so they can fail on out-of-memory
11353 * bus/bus.c (bus_context_new): set up timeout handlers
11355 * bus/connection.c (bus_connections_setup_connection): set up
11358 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11361 * bus/bus.c (bus_context_new): adapt to changes
11363 * bus/connection.c: adapt to changes
11365 * test/watch.c: adapt to DBusWatch changes
11367 * bus/dispatch.c (bus_dispatch_test): started adding this but
11370 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11372 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11374 2003-03-13 Havoc Pennington <hp@pobox.com>
11376 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11377 set up a test framework as for the library
11379 2003-03-12 Havoc Pennington <hp@pobox.com>
11381 Throughout: purge global variables, introduce BusActivation,
11382 BusConnections, BusRegistry, etc. objects instead.
11384 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11387 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11388 going to redo this a bit differently I think
11390 2003-03-12 Havoc Pennington <hp@redhat.com>
11392 Mega-patch that gets the message bus daemon initially handling
11393 out-of-memory. Work still needed. Also lots of random
11394 moving stuff to DBusError instead of ResultCode.
11396 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11398 * dbus/dbus-connection.c
11399 (dbus_connection_send_with_reply_and_block): use DBusError
11401 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11404 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11405 code here, as the only failure possible is OOM.
11407 * bus/connection.c (bus_connection_disconnect):
11408 rename bus_connection_disconnected as it's a notification only
11410 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11411 "name" on get_args failure, should be done by get_args;
11412 don't disconnect client for bad args, just return an error.
11413 (bus_driver_handle_service_exists): ditto
11415 * bus/services.c (bus_services_list): NULL-terminate returned array
11417 * bus/driver.c (bus_driver_send_service_lost)
11418 (bus_driver_send_service_acquired): send messages from driver to a
11419 specific client to the client's unique name, not to the broadcast
11422 * dbus/dbus-message.c (decode_header_data): reject messages that
11423 contain no name field
11424 (_dbus_message_get_client_serial): rename to
11425 dbus_message_get_serial and make public
11426 (_dbus_message_set_serial): rename from set_client_serial
11427 (_dbus_message_set_reply_serial): make public
11428 (_dbus_message_get_reply_serial): make public
11430 * bus/connection.c (bus_connection_foreach): allow stopping
11431 iteration by returning FALSE from foreach function.
11433 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11434 (dbus_connection_free_preallocated_send)
11435 (dbus_connection_preallocate_send): new API for sending a message
11436 without possibility of malloc failure.
11437 (dbus_connection_send_message): rename to just
11438 dbus_connection_send (and same for whole function family)
11440 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11442 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11444 * bus/activation.c: handle/return errors
11446 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11448 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11449 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11450 (_dbus_result_from_errno): move to this file
11452 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11454 * dbus/dbus-marshal.c:
11455 (_dbus_marshal_set_string):
11456 Take a length argument so we can marshal the correct string
11459 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11460 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11461 (_dbus_marshal_test):
11462 * dbus/dbus-marshal.h:
11463 Add support for marshalling and demarshalling dicts.
11465 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11466 Add support for TYPE DICT.
11468 * dbus/dbus-message.c: (set_string_field):
11469 Adjust header padding.
11471 (dbus_message_append_args_valist), (dbus_message_append_dict),
11472 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11473 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11474 (check_message_handling), (check_have_valid_message):
11475 * dbus/dbus-message.h:
11476 Add functions for setting and getting dicts.
11478 * dbus/dbus-protocol.h:
11479 Add DBUS_TYPE_DICT.
11484 * doc/dbus-specification.sgml:
11485 Add information about how dicts are marshalled.
11487 * test/data/invalid-messages/dict-with-nil-value.message:
11488 * test/data/invalid-messages/too-short-dict.message:
11489 * test/data/valid-messages/dict-simple.message:
11490 * test/data/valid-messages/dict.message:
11491 Add sample messages containing dicts.
11493 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11495 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11497 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11499 * dbus/Makefile.am:
11500 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11501 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11502 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11503 (dbus_dict_set_double), (dbus_dict_set_string),
11504 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11505 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11506 (dbus_dict_set_string_array), (_dbus_dict_test):
11507 * dbus/dbus-dict.h:
11508 Fix according to comments from Havoc.
11510 2003-03-06 Michael Meeks <michael@server.home>
11512 * configure.in: if we don't have kde-config, disable have_qt.
11514 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11516 * dbus/Makefile.am:
11519 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11520 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11521 (dbus_dict_remove), (dbus_dict_get_value_type),
11522 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11523 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11524 (dbus_dict_put_double), (dbus_dict_put_string),
11525 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11526 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11527 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11528 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11529 (dbus_dict_get_double), (dbus_dict_get_string),
11530 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11531 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11532 (dbus_dict_get_string_array), (_dbus_dict_test):
11533 * dbus/dbus-dict.h:
11534 Add DBusDict implementation
11536 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11537 * dbus/dbus-test.h:
11538 Add _dbus_dict_test
11540 2003-03-04 Havoc Pennington <hp@pobox.com>
11542 * test/data/auth/*: adapt to changes
11544 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11545 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11548 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11549 more stuff from being in a context name, to make the protocol
11550 simpler to deal with
11552 * dbus/dbus-errors.c (dbus_error_has_name): new function
11553 (dbus_error_is_set): new function
11555 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11556 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11558 * dbus/dbus-connection.c (dbus_connection_flush): also read
11559 messages during a flush operation
11561 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11563 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11565 * configure.in: Check for gethostbyname on Solaris.
11567 * dbus/dbus-transport.c: (_dbus_transport_open):
11568 Remove duplicate "tcp" entry.
11570 * doc/dbus-specification.sgml:
11571 Clarify some things.
11573 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11575 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11576 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11577 (_dbus_keyring_test):
11578 * dbus/dbus-md5.c: (_dbus_md5_compute):
11579 * dbus/dbus-sha.c: (_dbus_sha_compute):
11582 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11584 * README: Add some things.
11586 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11588 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11589 after case DBUS_TYPE_BOOELAN.
11591 2003-03-02 Havoc Pennington <hp@pobox.com>
11593 * test/break-loader.c (randomly_set_extreme_ints): add test that
11594 sets really huge and small integers
11596 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11597 that length of boolean array fits in the string, and that
11598 string has room for boolean value in single-bool case.
11600 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11601 optional value to "ALIGN" command which is what to fill the
11604 * test/data/valid-messages/no-padding.message: add regression
11605 test for the message padding problem
11607 2003-03-02 Havoc Pennington <hp@pobox.com>
11609 * dbus/dbus-message.c (decode_header_data): fix to always init
11610 message_padding, from Benjamin Dauvergne
11612 2003-03-02 Havoc Pennington <hp@pobox.com>
11614 * configure.in: 0.5
11618 2003-03-01 Joe Shaw <joe@assbarn.com>
11620 * configure.in: Check for "struct cmsgcred" and try to access its
11621 members for BSD-like unices.
11623 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11624 _dbus_read_credentials_unix_socket().
11625 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11626 read() for reading the credential byte off the unix socket. Use
11627 struct cmsgcred on systems that support it.
11629 2003-02-27 Alexander Larsson <alexl@redhat.com>
11631 * glib/Makefile.am:
11633 Make gthreads-2.0 dependency optional. Don't build thread test if
11636 2003-02-27 Havoc Pennington <hp@pobox.com>
11638 * dbus/dbus-connection.c
11639 (dbus_connection_send_message_with_reply_and_block): fix doh!
11640 doh! doh! bug that resulted in never removing a reply from the
11641 queue, no wonder we called get_reply_serial so much ;-)
11643 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11644 and client serial instead of demarshaling them every time
11646 2003-02-27 Havoc Pennington <hp@pobox.com>
11648 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11649 more inlined, using dbus-string-private.h, speeds things up
11652 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11653 when freeing the string
11654 (_dbus_string_steal_data): fix for align offset
11655 (undo_alignment): new function
11657 2003-02-26 Havoc Pennington <hp@redhat.com>
11659 All kinds of audit fixes from Owen, plus initial attempt to
11660 handle unaligned memory returned from malloc.
11662 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11663 leave room for align_offset and nul byte
11664 (fixup_alignment): function to track an align_offset and
11665 ensure real->str is aligned
11666 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11667 to allow a nul byte plus align offset
11668 (_dbus_string_lock): fix overflow issue
11669 (_dbus_string_init_const_len): add assertions on sanity of len,
11670 assign allocated to be ALLOCATION_PADDING larger than len
11671 (set_length): fixup the overflow handling
11672 (_dbus_string_get_data_len): fix overflow in assertion
11673 (open_gap): detect overflow in size of gap to be opened
11674 (_dbus_string_lengthen): add overflow check
11675 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11676 (_dbus_string_append): add overflow check
11677 (_dbus_string_append_unichar): overflow
11678 (_dbus_string_delete): fix overflow in assertion
11679 (_dbus_string_copy_len): overflow in assertion
11680 (_dbus_string_replace_len): overflows in assertions
11681 (_dbus_string_find): change to implement in terms of
11682 _dbus_string_find_to
11683 (_dbus_string_find_to): assorted fixage
11684 (_dbus_string_equal_c_str): assert c_str != NULL,
11685 fix logic so the function works
11686 (_dbus_string_ends_with_c_str): fix overflow thingy
11687 (_dbus_string_base64_encode): overflow fix
11688 (_dbus_string_validate_ascii): overflow
11689 (_dbus_string_validate_nul): overflow
11691 2003-02-26 Havoc Pennington <hp@redhat.com>
11693 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11695 2003-02-26 Alexander Larsson <alexl@redhat.com>
11698 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11700 * dbus/dbus-connection.c:
11701 * dbus/dbus-connection.h:
11702 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11703 Add dbus_connection_set_wakeup_main_function and use it when queueing
11704 incoming and outgoing messages.
11707 * dbus/dbus-dataslot.c:
11708 Threadsafe usage of DBusDataSlotAllocator
11710 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11713 * dbus/dbus-server-unix.c:
11716 * glib/dbus-gmain.c:
11717 Implement the new wakeup functions for glib.
11719 * glib/Makefile.am:
11720 * glib/test-thread-client.c:
11721 * glib/test-thread-server.c:
11722 * glib/test-thread.h:
11723 Initial cut at some thread test code. Not really done yet.
11725 2003-02-26 Havoc Pennington <hp@pobox.com>
11727 * dbus/dbus-connection.c
11728 (dbus_connection_send_message_with_reply_and_block): fix crash
11729 where we ref'd the outgoing message instead of the returned reply
11731 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11732 at the end of this function, so if we didn't need to read for
11733 authentication, we reinstall it for receiving messages
11735 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11736 a NULL sender for peer-to-peer case
11738 * dbus/dbus-transport-unix.c (check_read_watch): handle
11739 !authenticated case correctly
11741 * glib/dbus-gmain.c: add support for DBusServer
11743 * dbus/dbus-server.c: add data slot support
11745 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11746 return values and handle errors
11748 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11751 * Doxyfile.in (INPUT): add glib subdir
11753 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11754 setup_with_g_main instead of hookup_with_g_main; write docs
11756 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11758 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11759 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11760 * dbus/dbus-message.c: (dbus_message_append_boolean),
11761 (dbus_message_append_boolean_array),
11762 (dbus_message_get_args_valist), (_dbus_message_test):
11763 * dbus/dbus-message.h:
11764 * doc/dbus-specification.sgml:
11765 Various fixes as pointed out by Havoc.
11767 * test/data/invalid-messages/bad-boolean-array.message:
11768 * test/data/invalid-messages/bad-boolean.message:
11769 Add invalid boolean value test cases.
11771 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11773 * dbus/dbus-internals.c: (_dbus_type_to_string):
11774 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11775 (_dbus_marshal_validate_arg):
11776 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11777 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11778 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11779 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11780 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11781 (dbus_message_iter_get_double),
11782 (dbus_message_iter_get_boolean_array), (message_iter_test):
11783 * dbus/dbus-message.h:
11784 * dbus/dbus-protocol.h:
11785 * doc/dbus-specification.sgml:
11786 * test/data/valid-messages/lots-of-arguments.message:
11787 Add support for boolean and boolean array types.
11789 2003-02-23 Havoc Pennington <hp@pobox.com>
11791 * dbus/dbus-keyring.c: finish most of this implementation and
11794 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11795 these barf if the error isn't cleared to NULL
11797 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11798 (_dbus_create_directory): new function
11800 * dbus/dbus-errors.c (dbus_set_error): fix warning
11802 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11803 (_dbus_string_hex_decode): new function
11804 (test_hex_roundtrip): test code
11806 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11808 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11810 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11811 the save-to-temp/rename trick to atomically write the new file
11812 (_dbus_string_parse_uint): new function
11814 2003-02-22 Havoc Pennington <hp@pobox.com>
11816 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11818 2003-02-22 Havoc Pennington <hp@pobox.com>
11820 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11821 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11823 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11825 * dbus/test/data/sha-1: add US government test suite for SHA-1
11827 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11829 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11830 Make string arrays NULL-terminated.
11832 * dbus/dbus-memory.c: (dbus_free_string_array):
11833 * dbus/dbus-memory.h:
11834 New function for freeing NULL-terminated string arrays.
11836 * dbus/dbus-message-builder.c: (append_quoted_string),
11837 (_dbus_message_data_load):
11838 Add support for array types.
11840 * dbus/dbus-message.c: (check_message_handling):
11841 Add more types as test cases.
11843 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11844 (_dbus_string_parse_double):
11845 Add the start offset to the end offset.
11847 * test/data/valid-messages/lots-of-arguments.message:
11848 New test message with lots of arguments.
11850 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11852 * dbus/dbus-message.c: (dbus_message_append_nil),
11853 (dbus_message_append_int32), (dbus_message_append_uint32),
11854 (dbus_message_append_double), (dbus_message_append_string),
11855 (dbus_message_append_int32_array),
11856 (dbus_message_append_uint32_array),
11857 (dbus_message_append_double_array),
11858 (dbus_message_append_byte_array),
11859 (dbus_message_append_string_array):
11860 Fix all out-of-memory handling in these functions.
11862 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11864 * dbus/dbus-message.c: (dbus_message_append_nil):
11867 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11869 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11870 (dbus_message_append_nil), (dbus_message_append_int32_array),
11871 (dbus_message_append_uint32_array),
11872 (dbus_message_append_double_array),
11873 (dbus_message_append_byte_array),
11874 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11875 (dbus_message_iter_get_int32_array),
11876 (dbus_message_iter_get_uint32_array),
11877 (dbus_message_iter_get_double_array),
11878 (dbus_message_iter_get_byte_array),
11879 (dbus_message_iter_get_string_array):
11881 * dbus/dbus-message.h:
11882 Add functions for appending and getting arrays.
11884 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11886 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11887 element size at least 8 bytes, fixes mempool tests on
11890 2003-02-20 Alexander Larsson <alexl@redhat.com>
11892 * dbus/dbus-transport-unix.c (unix_do_iteration):
11893 Unlock the connection mutex during a blocking select call.
11894 Add todo about how we need a way to wake up the select.
11896 * dbus/dbus-connection-internal.h:
11897 * dbus/dbus-connection.c:
11898 Add _dbus_connection_lock and _dbus_connection_unlock.
11900 2003-02-19 Havoc Pennington <hp@pobox.com>
11902 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11903 Doxyfile.in, not Doxyfile
11905 * dbus/dbus-keyring.c: do some hacking on this
11907 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11909 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11911 (dbus_set_error): remove dbus_error_init, check for message ==
11912 NULL *before* we sprintf into it, and add @todo about including
11913 system headers in this file
11915 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11917 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11919 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11920 get various bits of user information based on either username
11922 (_dbus_homedir_from_username): new function
11924 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11927 Add check for nonposix getpwnam_r
11929 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11930 Align the pool element size to a sizeof (void *) boundary.
11932 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11933 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11934 General Solaris fixes.
11936 * test/data/valid-messages/simplest-manual.message:
11937 Explicitly state that we want little-endian packing.
11939 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11941 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11943 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11944 Added to create a transport connecting using a tcp/ip socket.
11946 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11947 to a tcp socket at given host and port.
11948 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11951 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11953 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11954 Added to create a server listening on a TCP/IP socket.
11956 2003-02-19 Havoc Pennington <hp@pobox.com>
11958 Throughout: mop up all the Doxygen warnings and undocumented
11961 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11962 to search any paths.
11964 * dbus/dbus-threads.c: move global mutex initializers to
11965 dbus-internals.h, multiple prototypes was confusing doxygen
11966 besides being kind of ugly
11968 * Doxyfile (PREDEFINED): have Doxygen define
11969 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11970 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11971 (do not abuse the feature! it's for stuff like the autogenerated
11972 macros in dbus-md5.c, not just for things you don't feel like
11975 2003-02-18 Havoc Pennington <hp@pobox.com>
11977 * dbus/dbus-string.c (_dbus_string_zero): new function
11979 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11980 wrap it in some dbus-friendly API
11982 * dbus/dbus-types.h: add 16-bit types
11984 2003-02-18 Joe Shaw <joe@assbarn.com>
11986 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11987 credentials from our currently running process.
11988 (get_word): Fix a buglet where we were copying the entire length
11989 instead of relative to our position.
11991 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11992 keys on the stack... it's 640k of data.
11994 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11995 read the credentials byte off the socket, even if we don't have
11997 (_dbus_poll): Implement poll() using select() for systems which
12000 * glib/test-dbus-glib.c (main): Print out an error if no
12001 parameters are given.
12003 * test/data/auth/fallback.auth-script: Added. Tests that a client
12004 can fallback to a secondary auth mechanism if the first fails.
12006 2003-02-18 Havoc Pennington <hp@pobox.com>
12008 * AUTHORS: add Alex
12010 2003-02-17 Havoc Pennington <hp@pobox.com>
12012 * doc/dbus-specification.sgml: lots of cosmetic
12013 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12014 env variable to DBUS_BUS_ADDRESS, s/client/application/,
12015 s/server/bus/ (except in authentication section). Add a section
12016 "Message Bus Message Routing"
12018 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
12024 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12026 * doc/dbus-specification.sgml:
12027 Specification updates.
12029 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12031 * bus/activation.c: (bus_activation_init), (child_setup),
12032 (bus_activation_activate_service):
12033 * bus/activation.h:
12034 * bus/main.c: (main):
12035 Set DBUS_ADDRESS environment variable.
12037 * dbus/dbus-errors.c: (dbus_set_error):
12038 Don't use va_copy since that's a C99 feature.
12040 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12041 (_dbus_spawn_async):
12042 * dbus/dbus-sysdeps.h:
12043 Add child_setup_func to _dbus_spawn_async.
12045 * doc/dbus-specification.sgml:
12046 Update specification.
12048 * test/spawn-test.c: (setup_func), (main):
12051 2003-02-17 Alexander Larsson <alexl@redhat.com>
12053 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12056 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12060 * doc/dbus-test-plan.sgml:
12061 Add test plan document.
12063 * test/Makefile.am:
12066 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12068 * dbus/dbus-message.c: (decode_header_data),
12069 (_dbus_message_loader_return_buffer):
12070 Set the header padding amount when loading a message.
12072 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12074 * bus/dispatch.c: (send_one_message):
12075 Only send broadcast messages to registered connections.
12077 * dbus/dbus-message.c: (dbus_message_name_is):
12078 * dbus/dbus-message.h:
12079 New convenience function.
12081 * dbus/dbus-transport-debug.c: (do_reading):
12082 Only dispatch one message per run.
12084 * test/Makefile.am:
12085 * test/bus-test.c: (new_connection_callback), (die),
12086 (test_hello_client1_handler), (test_hello_client2_handler),
12087 (test_hello_replies), (main):
12089 * test/bus-test-loop.[ch]:
12092 2003-02-16 Havoc Pennington <hp@pobox.com>
12094 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12095 backward conditional
12097 2003-02-16 Alexander Larsson <alexl@redhat.com>
12099 * dbus/dbus-connection.c:
12100 Implement sent_message_with_reply. (with_reply_and block is still
12102 Made dispatch_message not lose message if OOM.
12104 * dbus/dbus-errors.h:
12105 Add NoReply error (for reply timeouts).
12107 2003-02-16 Alexander Larsson <alexl@redhat.com>
12109 * dbus/dbus-hash.c (_dbus_hash_table_unref):
12110 Actually free keys and values when destroying hashtable.
12112 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12114 * dbus/dbus-auth.c: (client_try_next_mechanism):
12117 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12118 Return TRUE if there's no thread implementation around.
12120 * glib/dbus-gmain.c: (free_source),
12121 (dbus_connection_hookup_with_g_main):
12122 Make sure to remove the GSource when the connection is finalized.
12124 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12126 * bus/dispatch.c: (bus_dispatch_message_handler):
12127 * dbus/dbus-errors.h:
12128 Return an error if someone tries to send a message to a service
12129 that doesn't exist.
12131 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12133 * bus/activation.c: (load_directory), (bus_activation_init),
12134 (bus_activation_activate_service):
12135 * bus/activation.h:
12137 (bus_driver_handle_activate_service), (bus_driver_handle_message):
12138 More work on the activation handling.
12140 * dbus/dbus-errors.h:
12141 Add some error messages
12143 * dbus/dbus-message.c: (dbus_message_new_error_reply):
12144 * dbus/dbus-message.h:
12145 New function that creates an error message.
12147 * dbus/dbus-protocol.h:
12148 Add ACTIVATE_SERVER message.
12150 * dbus/dbus-server-unix.c: (unix_handle_watch),
12151 (_dbus_server_new_for_domain_socket):
12152 Call _dbus_fd_set_close_on_exec.
12154 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12155 (_dbus_spawn_async), (_dbus_disable_sigpipe),
12156 (_dbus_fd_set_close_on_exec):
12157 * dbus/dbus-sysdeps.h:
12158 Add _dbus_fd_set_close_on exec function. Also add function that checks
12159 that all open fds are set to close-on-exec and warns otherwise.
12161 * dbus/dbus-transport-unix.c:
12162 (_dbus_transport_new_for_domain_socket):
12163 Call _dbus_fd_set_close_on_exec.
12165 2003-02-16 Havoc Pennington <hp@pobox.com>
12167 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12168 allow people to avoid setting SIGPIPE to SIG_IGN
12169 (_dbus_connection_new_for_transport): disable SIGPIPE unless
12170 we've been asked not to
12172 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12174 * dbus/dbus-list.c: (_dbus_list_append_link),
12175 (_dbus_list_prepend_link):
12176 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12180 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12183 * bus/activation.c: (bus_activation_entry_free),
12184 (add_desktop_file_entry), (load_directory), (bus_activation_init):
12185 * bus/activation.h:
12186 * bus/main.c: (main):
12187 Add simple activation support, doesn't work yet though.
12189 2003-02-15 Zack Rusin <zack@kde.org>
12191 * qt/dbus-qthread.cpp: small casting fix
12193 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12195 * dbus/dbus-errors.c: (dbus_set_error):
12196 * dbus/dbus-errors.h:
12197 Add a few errors and make dbus_set_error void.
12199 * dbus/dbus-sysdeps.c:
12200 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12201 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12202 * dbus/dbus-sysdeps.h:
12203 Add _dbus_spawn_async.
12205 * test/spawn-test.c: (main):
12206 Test for _dbus_spawn_async.
12208 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12210 * dbus/dbus-internals.h:
12211 Fix build without tests.
12213 * dbus/dbus-list.c: (alloc_link):
12214 Fix a segfault when a malloc fails.
12216 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12217 (dbus_malloc0), (dbus_realloc):
12218 Add support for malloc debugging.
12220 2003-02-15 Alexander Larsson <alexl@redhat.com>
12222 * dbus/dbus-threads.c:
12223 * dbus/dbus-threads.h:
12224 Add condvars. Remove static mutext from API.
12225 Implement static mutexes by initializing them from threads_init.
12227 * glib/dbus-gthread.c:
12228 * qt/dbus-qthread.cpp:
12229 Update with the thread api changes.
12232 * dbus/dbus-list.c:
12233 * dbus/dbus-list.h:
12234 Turn StaticMutex into normal mutex + init function.
12235 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12236 _dbus_list_append_link, _dbus_list_prepend_link
12239 * dbus/dbus-sysdeps.c:
12240 * dbus/dbus-sysdeps.h:
12241 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12242 _dbus_atomic_dec. Only slow fallback implementation at the moment.
12244 * dbus/dbus-protocol.h:
12245 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12247 * dbus/dbus-message.c:
12248 Make ref/unref atomic.
12251 * dbus/dbus-connection-internal.h:
12252 * dbus/dbus-connection.c:
12253 * dbus/dbus-connection.h:
12255 Change _peek to _borrow,_return & _steal_borrowed.
12256 Change disconnect callback to event.
12257 Make dbus_connection_dispatch_messages reentrant.
12259 * dbus/dbus-transport.c:
12260 Don't ref the connection on calls to the transport
12263 * dbus/dbus-message-handler.c:
12266 * glib/dbus-gmain.c:
12267 Don't use peek_message anymore
12269 * test/Makefile.am:
12270 * test/debug-thread.c:
12271 * test/debug-thread.h:
12272 Simple thread implementation that asserts() on deadlocks in
12273 single-threaded code.
12276 (main) Call debug_threads_init.
12279 Use disconnect message instead of disconnect callback.
12281 * bus/connection.c:
12282 * bus/connection.h:
12283 Don't call dbus_connection_set_disconnect_function. Instead export
12284 bus_connection_disconnect.
12287 Call bus_connection_disconnect when we get a disconnected message.
12289 2003-02-15 Havoc Pennington <hp@pobox.com>
12291 * dbus/dbus-message.c (dbus_message_new): fool around with the
12294 2003-02-14 Havoc Pennington <hp@pobox.com>
12296 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12298 * dbus/dbus-memory.c: fail if the debug functions indicate we
12301 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12302 (_dbus_decrement_fail_alloc_counter): debug functions to
12303 simulate memory allocation failures
12305 2003-02-14 Havoc Pennington <hp@pobox.com>
12307 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12310 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12312 * bus/driver.c: (bus_driver_handle_hello):
12314 * bus/services.c: (bus_service_lookup):
12315 Reorder message sending so we get a more sane order.
12317 * test/bus-test.c: (message_handler):
12320 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12322 * bus/driver.c: (bus_driver_send_service_deleted),
12323 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12324 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12325 (bus_driver_send_welcome_message),
12326 (bus_driver_handle_list_services),
12327 (bus_driver_handle_acquire_service),
12328 (bus_driver_handle_service_exists):
12329 * dbus/dbus-bus.c: (dbus_bus_register_client),
12330 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12331 * dbus/dbus-errors.c: (dbus_result_to_string):
12332 * dbus/dbus-errors.h:
12333 * dbus/dbus-message.c: (dbus_message_append_args),
12334 (dbus_message_append_args_valist), (dbus_message_get_args),
12335 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12336 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12337 (dbus_message_iter_get_byte_array),
12338 (dbus_message_iter_get_string_array), (message_iter_test),
12339 (check_message_handling), (_dbus_message_test):
12340 * dbus/dbus-message.h:
12341 * test/bus-test.c: (main):
12342 Change fields to arguments in messages, so that they won't be
12343 confused with header fields.
12345 * glib/test-dbus-glib.c: (main):
12346 Remove append_fields from hello message.
12348 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12350 * dbus/dbus-errors.c:
12351 * dbus/dbus-message.c:
12352 * dbus/dbus-string.c:
12353 Documentation fixes.
12355 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12357 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12359 Implement support for timeouts in dbus-glib.
12361 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12363 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12364 * dbus/dbus-message.c: (process_test_subdir):
12365 * test/break-loader.c: (find_breaks_based_on):
12366 Plug some memory leaks.
12368 2003-02-13 Richard Hult <rhult@codefactory.se>
12370 * bus/main.c: Fix build.
12372 * dbus/dbus-errors.h:
12373 * dbus/dbus-errors.c: Fix copyright for Anders.
12375 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12380 * bus/connection.c: (bus_connection_foreach):
12383 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12384 (unescape_string), (new_section), (parse_section_start),
12385 (parse_key_value), (report_error), (bus_desktop_file_load),
12386 (bus_desktop_file_get_string):
12387 * bus/desktop-file.h:
12388 Use DBusError for error reporting.
12390 * bus/dispatch.c: (send_one_message),
12391 (bus_dispatch_message_handler):
12392 * bus/driver.c: (bus_driver_send_service_deleted),
12393 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12394 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12395 (bus_driver_send_welcome_message),
12396 (bus_driver_handle_list_services),
12397 (bus_driver_handle_acquire_service),
12398 (bus_driver_handle_service_exists):
12399 * bus/loop.c: (bus_loop_run):
12401 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12403 * bus/utils.c: (bus_wait_for_memory):
12405 New files with general utility functions.
12407 * dbus/dbus-internals.h:
12408 Remove _DBUS_HANDLE_OOM.
12410 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12412 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12413 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12414 * dbus/dbus-errors.h:
12415 Add DBusError structure.
12417 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12419 * test/data/valid-messages/standard-acquire-service.message:
12420 * test/data/valid-messages/standard-hello.message:
12421 * test/data/valid-messages/standard-list-services.message:
12422 * test/data/valid-messages/standard-service-exists.message:
12423 Add some standard messages.
12425 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12427 * bus/driver.c: (bus_driver_send_welcome_message),
12428 (bus_driver_handle_list_services),
12429 (bus_driver_handle_acquire_service),
12430 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12431 Update for API changes in libdbus.
12433 * dbus/dbus-message.c: (dbus_message_new_reply):
12434 * dbus/dbus-message.h:
12435 Remove the name argument. The spec states that replies shouldn't
12438 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12440 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12441 (report_error), (bus_desktop_file_load), (lookup_section),
12442 (lookup_line), (bus_desktop_file_get_raw),
12443 (bus_desktop_file_get_string):
12444 * bus/desktop-file.h:
12445 Some fixes, and new functions for getting a key value from a section.
12447 2003-02-13 Havoc Pennington <hp@pobox.com>
12449 * test/data/auth/fail-after-n-attempts.auth-script: new test
12451 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12454 2003-02-13 Havoc Pennington <hp@pobox.com>
12456 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12457 dbus_credentials_match were backward
12459 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12460 NO_CREDENTIALS and ROOT_CREDENTIALS
12462 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12463 into here. Never process more commands after we've reached an
12464 end state; store further data as unused bytes.
12466 * test/data/auth/*: add more auth tests
12468 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12469 command to match exact string and EXPECT_UNUSED to match unused
12472 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12474 2003-02-12 Havoc Pennington <hp@pobox.com>
12476 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12477 \r off of popped lines
12479 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12482 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12485 2003-02-12 Havoc Pennington <hp@pobox.com>
12487 * dbus/Makefile.am: remove break-loader from the build, since it
12490 * configure.in: add --enable-gcov to turn on coverage profiling
12491 flags and disable optimization
12493 2003-02-10 Havoc Pennington <hp@pobox.com>
12495 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12496 initial cut at test framework for DBusAuth from laptop.
12497 Doesn't quite work yet but it compiles and I need to get
12498 it off the 266mhz laptop. ;-)
12500 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12501 fix a memleak in error case
12503 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12506 * bus/desktop-file.c:
12507 * bus/desktop-file.h:
12508 Add a desktop file parser.
12510 2003-02-11 Zack Rusin <zack@kde.org>
12512 * qt/message.[h|cpp]: sample implementation
12513 of the KDE wrapper for DBusMessage
12515 2003-02-09 Zack Rusin <zack@kde.org>
12517 * test/bus-test.c: make_it_compile
12518 * doc/dbus-specification.sgml: minimal semantic fix
12520 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12526 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12528 * dbus/Makefile.am:
12529 * dbus/dbus-break-loader.c:
12530 * test/Makefile.am:
12531 * test/break-loader.c:
12532 Move dbus-break-loader to test/ and rename it to break-loader.
12534 2003-02-02 Havoc Pennington <hp@pobox.com>
12536 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12537 for code to manage cookies in your home directory
12539 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12541 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12542 to authenticate, then disconnect the client.
12544 2003-02-03 Alexander Larsson <alexl@redhat.com>
12546 * dbus/dbus-message.c (dbus_message_append_fields):
12549 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12551 * doc/dbus-specification.sgml:
12552 Update address format section.
12554 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12556 * test/Makefile.am:
12557 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12558 (message_handler), (new_connection_callback), (loop_quit),
12559 (loop_run), (main):
12562 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12564 * bus/driver.c: (bus_driver_handle_service_exists):
12565 Simplify the code a bit.
12567 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12570 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12573 Add libdbus-daemon.la and link to it.
12575 2003-02-01 James Willcox <jwillcox@gnome.org>
12577 * bus/driver.c: (bus_driver_handle_own_service):
12578 Actually include the service reply code in the message.
12580 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12582 * bus/driver.c: (bus_driver_handle_service_exists):
12583 Don't unref the incoming message.
12585 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12587 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12589 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12591 * dbus/dbus-server.c: (dbus_server_listen):
12592 * dbus/dbus-transport.c: (_dbus_transport_open):
12593 ifdef out the calls to the debug transport and server.
12595 2003-02-02 Alexander Larsson <alexl@redhat.com>
12597 * dbus/dbus-watch.c (dbus_watch_get_flags):
12598 Add note in the docs that ERROR or HANGUP won't be returned
12599 and are assumed always on.
12601 * glib/dbus-gmain.c (add_watch):
12602 Always add IO_ERR | IO_HUP
12604 * dbus/dbus-message.h:
12605 Add semicolon after dbus_message_iter_get_string_array().
12606 Makes qt code build again
12608 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12610 * bus/driver.c: (create_unique_client_name),
12611 (bus_driver_handle_hello):
12612 Don't take a name, just use a numeric id to identify
12615 * dbus/Makefile.am:
12616 * dbus/dbus-bus.c: (dbus_bus_register_client),
12617 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12619 Add new convenience functions for communicating with the bus.
12621 * dbus/dbus-message.h:
12623 * dbus/dbus-protocol.h:
12626 2003-02-01 Alexander Larsson <alexl@redhat.com>
12628 * dbus/dbus-message.c (dbus_message_append_fields):
12629 Add some more doc comments.
12631 2003-02-01 Havoc Pennington <hp@pobox.com>
12633 * dbus/dbus-break-loader.c (randomly_modify_length): change
12634 a 4-byte value in the message as if it were a length
12636 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12637 execute bit on saved files
12639 2003-02-01 Havoc Pennington <hp@pobox.com>
12641 * dbus/dbus-break-loader.c (main): new program to find messages
12642 that break the loader.
12644 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12645 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12647 * dbus/dbus-string.c (_dbus_string_set_byte): new
12649 2003-01-31 Havoc Pennington <hp@pobox.com>
12651 * dbus/dbus-message.c: refactor the test code to be more general,
12652 in preparation for writing a "randomly permute test cases to
12653 try to break the loader" program.
12655 2003-01-31 Havoc Pennington <hp@pobox.com>
12657 * doc/dbus-specification.sgml: work on the specification
12659 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12660 the protocol version of the message.
12662 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12663 no longer specifies that.
12664 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12667 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12668 "break" for DBUS_TYPE_NIL, remove @todo
12670 2003-01-31 Havoc Pennington <hp@pobox.com>
12672 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12673 just set_is_error/get_is_error as this is a commonly-used
12674 function, and write docs.
12676 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12678 * dbus/dbus-address.c: (dbus_address_entry_free):
12679 Free key and value lists.
12681 * dbus/dbus-internals.c: (_dbus_type_to_string):
12682 Add the types we didn't have.
12684 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12685 (_dbus_marshal_validate_arg):
12688 * dbus/dbus-message.c: (dbus_message_set_sender):
12689 Remove todo about being able to set sender to NULL.
12691 (dbus_message_set_is_error_reply),
12692 (dbus_message_get_is_error_reply):
12693 * dbus/dbus-message.h:
12696 * dbus/dbus-protocol.h:
12697 Add error reply flag.
12699 * test/data/valid-messages/opposite-endian.message:
12700 Add NIL type to test.
12702 2003-01-31 Havoc Pennington <hp@pobox.com>
12704 * doc/dbus-specification.sgml: fully specify the header. Add
12705 flags and major protocol version, and change header/body len to
12708 * dbus/dbus-message-builder.c (append_saved_length): append length
12711 * dbus/dbus-message.c (dbus_message_create_header): change header
12712 length and body length to unsigned. Add the new fields from the
12714 (_dbus_message_loader_return_buffer): unsigned header/body len
12716 2003-01-30 Havoc Pennington <hp@pobox.com>
12718 * dbus/dbus-auth.c: rework to use only REJECTED, no
12721 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12722 use REJECTED, suggested by Mark McLoughlin
12724 2003-01-30 Havoc Pennington <hp@pobox.com>
12726 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12727 a better way to report errors here. e.g. "unix address lacks
12728 path" or something. also "no such file" when the path doesn't
12731 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12733 (dbus_parse_address): add @todo about documenting address format,
12734 and allowing , and ; to be escaped
12736 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12738 * dbus/Makefile.am:
12739 Add dbus-address.[ch]
12741 * dbus/dbus-address.c: (dbus_address_entry_free),
12742 (dbus_address_entries_free), (create_entry),
12743 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12744 (dbus_parse_address), (_dbus_address_test):
12745 * dbus/dbus-address.h:
12746 New files for dealing with address parsing.
12748 * dbus/dbus-connection.c:
12749 Document timeout functions.
12751 * dbus/dbus-message.c:
12752 Document dbus_message_new_from_message.
12754 * dbus/dbus-server-debug.c:
12757 * dbus/dbus-server.c: (dbus_server_listen):
12758 Parse address and use correct server implementation.
12760 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12761 * dbus/dbus-string.h:
12762 New function with test.
12764 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12765 * dbus/dbus-test.h:
12768 * dbus/dbus-transport-debug.c:
12771 * dbus/dbus-transport.c: (_dbus_transport_open):
12772 Parse address and use correct transport implementation.
12774 2003-01-30 Havoc Pennington <hp@pobox.com>
12776 * dbus/dbus-message.c: use message->byte_order instead of
12777 DBUS_COMPILER_BYTE_ORDER throughout.
12778 (dbus_message_create_header): pad header to align the
12779 start of the body of the message to 8-byte boundary
12781 * dbus/dbus-marshal.h: make all the demarshalers take const
12782 DBusString arguments.
12784 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12785 validate message args here, so we don't have to do slow validation
12786 later, and so we catch bad messages as they are incoming. Also add
12787 better checks on header_len and body_len. Also fill in
12788 message->byte_order
12790 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12791 implemented properly)
12792 (_dbus_string_validate_nul): new function to check all-nul
12794 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12795 get_arg_end_pos and remove all validation
12796 (_dbus_marshal_validate_arg): actually do validation here.
12798 2003-01-29 Havoc Pennington <hp@pobox.com>
12800 * dbus/dbus-message.c (check_message_handling): fix assertion
12801 failure on set_client_serial
12803 2003-01-28 Havoc Pennington <hp@pobox.com>
12805 * dbus/dbus-server-debug.c: Add doc section comments
12807 * dbus/dbus-transport-debug.c: add doc section comments
12809 2003-01-28 Havoc Pennington <hp@redhat.com>
12811 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12812 the reverse order from how I had it
12813 (_dbus_string_base64_encode): reverse encoding order. I was
12814 basically byteswapping everything during encoding.
12816 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12818 * dbus/dbus-connection-internal.h:
12819 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12820 (_dbus_connection_remove_timeout):
12821 Add functions for adding and removing timeouts.
12823 * dbus/dbus-message.c: (dbus_message_new_from_message):
12824 Add new function that takes a message and creates an exact
12825 copy of it, but with the refcount set to 1.
12826 (check_message_handling):
12829 * dbus/dbus-server-protected.h:
12830 * dbus/dbus-server.c: (_dbus_server_init_base),
12831 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12832 (dbus_server_set_timeout_functions):
12833 (_dbus_server_remove_timeout):
12834 New functions so that a server can add and remove timeouts.
12836 (dbus_server_listen):
12837 Add commented out call to dbus_server_debug_new.
12839 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12840 Actually set the handler, doh.
12842 * dbus/dbus-transport.c: (_dbus_transport_open):
12843 Add commented out call to dbus_transport_debug_client_new.
12845 * dbus/Makefile.am:
12846 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12848 2003-01-28 Havoc Pennington <hp@pobox.com>
12850 * dbus/dbus-message.c (check_message_handling): function to check
12851 on the loaded message, iterates over it etc.
12853 2003-01-28 Havoc Pennington <hp@pobox.com>
12855 * test/Makefile.am (dist-hook): fix make distdir
12857 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12859 2003-01-27 Havoc Pennington <hp@pobox.com>
12861 * dbus/dbus-mempool.c (time_for_size): replace printf with
12864 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12865 empty lines; fix the SAVE_LENGTH stuff to be
12866 START_LENGTH/END_LENGTH so it actually works; couple other
12869 * test/Makefile.am (dist-hook): add dist-hook for .message files
12871 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12872 can be constant or locked.
12873 (_dbus_string_free): allow freeing a const string as
12874 documented/intended
12876 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12878 * dbus/dbus-test-main.c (main): take an argument which is the
12879 directory containing test data
12881 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12882 argument to this and load all the messages in test/data/
12883 checking that they can be loaded or not loaded as appropriate.
12885 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12887 * bus/dispatch.c: (bus_dispatch_message_handler):
12888 Dispatch messages sent to services.
12890 * bus/driver.c: (bus_driver_send_service_deleted),
12891 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12892 (bus_driver_send_service_acquired):
12893 Add helper functions for sending service related messages.
12895 (bus_driver_send_welcome_message):
12896 Send HELLO_REPLY instead of WELCOME.
12898 (bus_driver_handle_list_services):
12899 Send LIST_SERVICES_REPLY instead of SERVICES.
12901 (bus_driver_handle_own_service),
12902 (bus_driver_handle_service_exists):
12903 New message handlers.
12905 (bus_driver_handle_message):
12906 Invoke new message handlers.
12908 (bus_driver_remove_connection):
12909 Don't remove any services here since that's done automatically
12910 by bus_service_remove_owner now.
12913 New function signatures.
12915 * bus/services.c: (bus_service_add_owner):
12916 Send ServiceAcquired message if we're the only primary owner.
12918 (bus_service_remove_owner):
12919 Send ServiceAcquired/ServiceLost messages.
12921 (bus_service_set_prohibit_replacement),
12922 (bus_service_get_prohibit_replacement):
12923 Functions for setting prohibit replacement.
12925 (bus_service_has_owner):
12926 New function that checks if a connection is in the owner queue of
12930 Add new function signatures.
12932 * dbus/dbus-list.c: (_dbus_list_test):
12933 Add tests for _dbus_list_remove_last and traversing the list backwards.
12935 * dbus/dbus-list.h:
12936 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12937 go any further, so return NULL then.
12939 * dbus/dbus-protocol.h:
12940 Add new messages, service flags and service replies.
12942 2003-01-26 Havoc Pennington <hp@pobox.com>
12944 * dbus/dbus-message-builder.c: implement, completely untested.
12946 * test/data/*: add data to be used in testing.
12947 ".message" files are our simple loadable text format.
12948 ".message-raw" will be binary dumps of messages.
12950 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12952 2003-01-26 Havoc Pennington <hp@pobox.com>
12954 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12956 * dbus/dbus-errors.c (dbus_result_to_string): add
12959 * dbus/dbus-message-builder.c: new file, will contain code to load
12960 up messages from files. Not implemented yet.
12962 2003-01-26 Havoc Pennington <hp@pobox.com>
12964 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12965 the sender by setting to NULL
12967 2003-01-26 Havoc Pennington <hp@pobox.com>
12969 The unit tests pass, but otherwise untested. If it breaks, the
12970 tests should have been better. ;-)
12972 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12975 * dbus/dbus-message.c: redo everything so we maintain
12976 message->header as the only copy of the various fields.
12977 This avoids the possibility of out-of-memory in some cases,
12978 for example dbus_message_lock() can't run out of memory anymore,
12979 and avoids extra copying. Figured I may as well go ahead and do
12980 this since it was busted for dbus_message_lock to not return
12981 failure on OOM, and dbus_message_write_header was totally
12982 unchecked for OOM. Also fixed some random other bugs.
12984 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12985 that strings are nul-terminated. Also, end_pos can be equal
12986 to string length just not greater than, I think.
12987 (_dbus_marshal_set_int32): new function
12988 (_dbus_marshal_set_uint32): new function
12989 (_dbus_marshal_set_string): new function
12991 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12992 a warning, init timeout_list to NULL
12993 (dbus_connection_send_message): don't use uninitialized variable
12996 * dbus/dbus-string.c (_dbus_string_replace_len): new function
12998 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13000 * bus/driver.c: (bus_driver_handle_hello),
13001 (bus_driver_send_welcome_message):
13004 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13006 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13007 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13008 (dbus_connection_unref):
13009 * dbus/dbus-marshal.c: (_dbus_marshal_test):
13010 * dbus/dbus-message.c: (dbus_message_unref),
13013 (dbus_message_get_fields):
13014 Remove debugging printout.
13016 (_dbus_message_loader_return_buffer):
13017 Don't store the header string.
13019 (_dbus_message_test):
13022 2003-01-26 Richard Hult <rhult@codefactory.se>
13024 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13025 the file descriptor list, since it can change under us.
13027 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13029 * glib/dbus-gmain.c: (dbus_connection_prepare),
13030 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13031 (remove_watch), (dbus_connection_hookup_with_g_main):
13032 Rewrite the glib handling to use its own GSource instead of a
13033 GIOChannel so we can catch messages put in the queue while waiting
13036 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13039 * bus/connection.c: (connection_disconnect_handler),
13040 (connection_watch_callback), (bus_connection_setup):
13041 * bus/dispatch.c: (send_one_message),
13042 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13043 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13045 * bus/driver.c: (bus_driver_send_service_deleted),
13046 (bus_driver_send_service_created), (bus_driver_handle_hello),
13047 (bus_driver_send_welcome_message),
13048 (bus_driver_handle_list_services), (bus_driver_remove_connection),
13049 (bus_driver_handle_message):
13051 Refactor code, put the message dispatching in its own file. Use
13052 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13055 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13057 * dbus/dbus-internals.h:
13058 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13060 * dbus/dbus-message.c: (dbus_message_get_sender):
13061 * dbus/dbus-message.h:
13062 Implement dbus_message_get_sender.
13064 * dbus/dbus-protocol.h:
13065 Add message and service defines.
13067 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13069 * dbus/dbus-connection.c: (dbus_connection_send_message):
13070 * dbus/dbus-message-internal.h:
13071 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13072 (dbus_message_write_header):
13073 Remove _dbus_messag_unlock and don't set the client serial on a
13074 message if one already exists.
13076 2003-01-24 Havoc Pennington <hp@pobox.com>
13078 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13081 * bus/driver.c (bus_driver_handle_list_services): fix a leak
13084 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13086 * dbus/dbus-list.c: (alloc_link), (free_link):
13087 Use a memory pool for the links.
13089 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13091 * bus/connection.c: (bus_connection_foreach):
13092 * bus/connection.h:
13093 Add new bus_connection_foreach function.
13095 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13096 Add function that broadcasts a message to all clients.
13098 (bus_driver_send_service_created), (bus_driver_handle_hello),
13099 (bus_driver_send_welcome_message),
13100 (bus_driver_handle_list_services), (bus_driver_message_handler):
13101 Implement functions that take care of listing services, and notifying
13102 clients when new services are created.
13104 * bus/services.c: (bus_services_list):
13106 Add new function that returns an array of strings with the currently
13107 registered services.
13109 * glib/dbus-glib.h:
13110 * glib/dbus-gmain.c:
13111 Update copyright year.
13113 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13115 * dbus/dbus-connection.c: (dbus_connection_send_message):
13116 Unlock the message in case it was sent earlier.
13118 (dbus_connection_send_message_with_reply_and_block):
13119 Remove the reply message from the list.
13121 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13122 Set array_len and new_pos correctly.
13124 (_dbus_marshal_test):
13125 Remove debug output.
13127 * dbus/dbus-message-internal.h:
13128 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13129 New function that returns the reply serial.
13131 (_dbus_message_unlock):
13132 New function that unlocks a message and resets its header.
13134 (dbus_message_append_string_array),
13135 (dbus_message_get_fields_valist),
13136 (dbus_message_iter_get_field_type),
13137 (dbus_message_iter_get_string_array),
13138 (dbus_message_get_fields),
13139 (dbus_message_append_fields_valist):
13140 Handle string arrays.
13142 (dbus_message_set_sender):
13143 Make this function public since the bus daemon needs it.
13145 (decode_header_data):
13146 Set the reply serial to -1 initially.
13148 * dbus/dbus-message.h:
13149 Add dbus_message_set_sender.
13151 2003-01-24 Havoc Pennington <hp@pobox.com>
13153 * doc/dbus-specification.sgml: add some stuff
13155 2003-01-22 Havoc Pennington <hp@pobox.com>
13157 * doc/dbus-specification.sgml: Start to document the protocol.
13159 2003-01-22 Havoc Pennington <hp@pobox.com>
13161 * dbus/dbus-connection.c
13162 (dbus_connection_send_message_with_reply_and_block): add some @todo
13164 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13166 2003-01-21 Havoc Pennington <hp@pobox.com>
13168 (patch untested because can't compile)
13170 * bus/driver.c (create_unique_client_name): make this function
13171 never recycle client names. Also, caller should initialize
13174 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13176 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13178 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13179 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13180 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13181 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13182 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13183 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13184 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13185 * dbus/dbus-marshal.h:
13186 * dbus/dbus-protocol.h:
13187 Add support for marshalling and demarshalling integer, double
13190 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13195 * bus/connection.c: (connection_disconnect_handler):
13196 Remove the connection from the bus driver's list.
13198 (connection_watch_callback): Dispatch messages.
13200 (free_connection_data): Free connection name.
13202 (bus_connection_setup): Add connection to the bus driver's list.
13203 (bus_connection_remove_owned_service):
13204 (bus_connection_set_name), (bus_connection_get_name):
13205 Add functions for setting and getting the connection's name.
13207 * bus/connection.h:
13208 Add function headers.
13210 * bus/driver.c: (create_unique_client_name),
13211 (bus_driver_handle_hello_message),
13212 (bus_driver_send_welcome_message), (bus_driver_message_handler),
13213 (bus_driver_add_connection), (bus_driver_remove_connection):
13216 * bus/services.c: (bus_service_free):
13218 New file that handles communication and registreation with the bus
13221 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13223 * dbus/dbus-connection.c: (dbus_connection_send_message):
13224 Add a new client_serial parameter.
13226 (dbus_connection_send_message_with_reply):
13227 Remove a @todo since we've implemented the blocking function.
13229 (dbus_connection_send_message_with_reply_and_block):
13230 New function that sends a message and waits for a reply and
13231 then returns the reply.
13233 * dbus/dbus-connection.h:
13236 * dbus/dbus-errors.c: (dbus_result_to_string):
13237 * dbus/dbus-errors.h:
13238 Add new DBUS_RESULT.
13240 * dbus/dbus-message-internal.h:
13241 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13242 (_dbus_message_set_sender), (dbus_message_write_header),
13243 (dbus_message_new_reply), (decode_header_data),
13244 (_dbus_message_loader_return_buffer), (_dbus_message_test):
13245 * dbus/dbus-message.h:
13246 Add new functions that set the reply serial and sender.
13247 Also marshal and demarshal them correctly and add test.
13249 * dbus/dbus-protocol.h:
13250 Add new DBUS_MESSAGE_TYPE_SENDER.
13252 * glib/dbus-glib.h:
13253 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13254 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13255 (dbus_connection_hookup_with_g_main):
13256 * glib/test-dbus-glib.c: (main):
13257 Rewrite to use GIOChannel and remove the GSource crack.
13259 * test/echo-client.c: (main):
13260 * test/watch.c: (check_messages):
13261 Update for changed APIs
13263 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13265 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13267 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13268 Create a DBusTimeoutList.
13269 (dbus_connection_set_timeout_functions): Add new function to
13270 set timeout callbacks
13272 * dbus/dbus-connection.h: Add public DBusTimeout API.
13274 * dbus/dbus-message.c: (dbus_message_get_service):
13275 * dbus/dbus-message.h: New function.
13277 * dbus/dbus-server.c: Fix small doc typo.
13279 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13281 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13283 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13284 of the string, just as long as specified.
13286 2003-01-19 Havoc Pennington <hp@pobox.com>
13288 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13291 * dbus/dbus-server.c (dbus_server_set_max_connections)
13292 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13293 keep track of current number of connections, and add API for
13294 setting a max (but haven't implemented enforcing the max yet)
13296 2003-01-18 Havoc Pennington <hp@pobox.com>
13298 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13299 reading/writing if read_watch != NULL or write_watch != NULL.
13301 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13302 the message loader code to actually load message->header and
13303 message->body into the newly-created message.
13305 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13308 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13309 (dbus_connection_get_max_message_size)
13310 (dbus_connection_set_max_live_messages_size)
13311 (dbus_connection_get_max_live_messages_size): implement some
13312 resource limitation functions
13314 * dbus/dbus-resources.c: new file implementing some of the
13315 resource limits stuff
13317 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13318 missing docs, add @todo to handle OOM etc.
13320 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13323 2003-01-18 Havoc Pennington <hp@pobox.com>
13325 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13326 connection if it hasn't been already.
13328 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13329 replace with DisconnectFunction.
13331 2003-01-18 Havoc Pennington <hp@pobox.com>
13333 Building --disable-verbose-mode --disable-asserts --disable-tests
13334 cuts the library from 112K to 45K or so
13336 * configure.in: check for varargs macro support,
13337 add --enable-verbose-mode, --enable-asserts.
13339 * dbus/dbus-internals.h (_dbus_assert): support
13340 DBUS_DISABLE_ASSERT
13341 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13343 2003-01-18 Havoc Pennington <hp@pobox.com>
13345 * dbus/dbus-test.c: include config.h so that tests actually run
13347 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13348 so the failure mode when that assumption fails will be plenty
13351 2003-01-18 Havoc Pennington <hp@pobox.com>
13353 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13355 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13358 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13359 since we don't want to use those in make check
13361 2003-01-15 Havoc Pennington <hp@redhat.com>
13367 2003-01-15 Havoc Pennington <hp@redhat.com>
13369 * test/Makefile.am: fix so that test source code ends up in the
13370 distribution on make distcheck
13372 2003-01-15 Havoc Pennington <hp@redhat.com>
13378 2003-01-15 Havoc Pennington <hp@redhat.com>
13380 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13381 fix build when --disable-tests
13383 * Makefile.am (EXTRA_DIST): put HACKING in here
13385 * HACKING: document procedure for making a tarball release.
13387 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13389 * bus/connection.c: (connection_error_handler),
13390 (bus_connection_setup):
13391 * bus/main.c: (main):
13392 Make sure that the DBusConnectionData struct is NULLed
13393 out to prevent a segfault.
13395 * dbus/dbus-errors.c: (dbus_result_to_string):
13396 * dbus/dbus-errors.h:
13397 * dbus/dbus-message.c: (dbus_message_get_fields),
13398 (dbus_message_get_fields_valist), (_dbus_message_test):
13399 * dbus/dbus-message.h:
13400 Make dbus_message_get_fields return a result code so we can
13401 track invalid fields as well as oom.
13403 2003-01-11 Havoc Pennington <hp@pobox.com>
13405 * configure.in: change --enable-test/--enable-ansi action-if-given
13406 to enable_foo=$enableval instead of enable_foo=yes
13408 2003-01-08 Havoc Pennington <hp@pobox.com>
13410 * dbus/dbus-string.c (_dbus_string_align_length): new function
13412 * dbus/dbus-test-main.c: move main() for test app here
13414 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13415 symbol to run tests, because dbus-test isn't in the main
13418 Code review nitpicks.
13420 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13421 for people with narrow emacs ;-). Assert client_serial was filled
13422 in. Assert message->name != NULL.
13423 (dbus_message_append_fields): have "first_field_type" arg separate
13424 from va list, needed for C++ binding that also uses varargs IIRC
13425 and helps with type safety
13426 (dbus_message_new): add @todo about using DBusString to store
13427 service/name internally
13428 (dbus_message_new): don't leak ->service and ->name on OOM later
13430 (dbus_message_unref): free the service name
13431 (dbus_message_get_fields): same change to varargs
13432 i.e. first_field_type
13433 (_dbus_message_loader_return_buffer): assert that the message data
13434 is aligned (if not it's a bug in our code). Put in verbose griping
13435 about why we set corrupted = TRUE.
13436 (decode_header_data): add FIXME that char* is evil. Was going to
13437 add FIXME about evil locale-specific string.h strncmp, but just
13438 switched to wacky string-as-uint32 optimization. Move check for
13439 "no room for field name" above get_const_data_len() to avoid
13440 assertion failure in get_const_data_len if we have trailing 2
13441 bytes or the like. Check for service and name fields being
13442 provided twice. Don't leak service/name on error. Require field
13443 names to be aligned to 4 bytes.
13445 * dbus/dbus-marshal.c: move byte swap stuff to header
13446 (_dbus_pack_int32): uscore-prefix
13447 (_dbus_unpack_int32): uscore-prefix
13448 (_dbus_unpack_uint32): export
13449 (_dbus_demarshal_string): add @todo complaining about use of
13451 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13452 handling allowing corrupt data to go unchecked
13454 2003-01-08 Havoc Pennington <hp@redhat.com>
13456 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13457 to the select() as needed for authentication. (should be using
13458 _dbus_poll() not select, but for another day)
13460 * dbus/dbus.h: include dbus/dbus-protocol.h
13462 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13464 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13467 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13469 * dbus/dbus-internals.c: (_dbus_type_to_string):
13470 New function that returns a string describing a type.
13472 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13473 * dbus/dbus-marshal.h:
13474 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13475 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13476 (dbus_message_iter_get_byte_array):
13477 * dbus/dbus-message.h:
13478 Add new convenience functions for appending and getting message fields.
13479 Also add demarshalling routines for byte arrays.
13481 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13483 * dbus/dbus-connection-internal.h:
13484 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13485 (_dbus_connection_get_next_client_serial),
13486 (dbus_connection_send_message):
13487 * dbus/dbus-internals.h:
13488 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13489 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13490 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13491 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13492 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13493 (_dbus_verbose_bytes), (_dbus_marshal_test):
13494 * dbus/dbus-marshal.h:
13495 * dbus/dbus-message-internal.h:
13496 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13497 (dbus_message_write_header), (_dbus_message_lock),
13498 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13499 (dbus_message_get_name), (dbus_message_append_int32),
13500 (dbus_message_append_uint32), (dbus_message_append_double),
13501 (dbus_message_append_string), (dbus_message_append_byte_array),
13502 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13503 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13504 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13505 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13506 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13507 (decode_header_data), (_dbus_message_loader_return_buffer),
13508 (message_iter_test), (_dbus_message_test):
13509 * dbus/dbus-message.h:
13510 * dbus/dbus-protocol.h:
13511 * dbus/dbus-test.c: (main):
13512 * dbus/dbus-test.h:
13513 * glib/test-dbus-glib.c: (message_handler), (main):
13514 * test/echo-client.c: (main):
13515 * test/watch.c: (check_messages):
13516 Make messages sendable and receivable for real.
13518 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13520 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13521 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13522 * dbus/dbus-message.c: (dbus_message_append_int32),
13523 (dbus_message_append_uint32), (dbus_message_append_double),
13524 (dbus_message_append_string), (dbus_message_append_byte_array):
13525 Handle OOM restoration.
13527 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13529 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13530 (_dbus_demarshal_string), (_dbus_marshal_test):
13531 * dbus/dbus-marshal.h:
13532 * dbus/dbus-message.c: (dbus_message_get_name),
13533 Document these functions.
13535 (dbus_message_append_int32), (dbus_message_append_uint32),
13536 (dbus_message_append_double), (dbus_message_append_string),
13537 (dbus_message_append_byte_array):
13538 * dbus/dbus-message.h:
13539 Add functions for adding message fields of different types.
13541 * dbus/dbus-protocol.h:
13542 Add the different types.
13544 2003-01-05 Havoc Pennington <hp@pobox.com>
13546 * bus/connection.c: implement routines for handling connections,
13547 first thing is keeping a list of owned services on each connection
13548 and setting up watches etc.
13550 * bus/services.c: implement a mapping from service names to lists
13553 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13555 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13556 to use static mutexes for global data
13558 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13559 collection of functions to set/get application-specific data
13560 on the DBusConnection.
13562 2003-01-04 Havoc Pennington <hp@pobox.com>
13564 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13565 (_dbus_poll): new function
13567 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13570 * bus/loop.c: initial code for the daemon main loop
13572 2003-01-04 Havoc Pennington <hp@pobox.com>
13574 * test/watch.c (error_handler): make it safe if the error handler
13575 is called multiple times (if we s/error handler/disconnect
13576 handler/ we should just guarantee it's called only once)
13578 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13579 error handler on disconnect (it's quite possible we should
13580 just change the error handler to a "disconnect handler," I'm
13581 not sure we have any other meaningful errors)
13583 * configure.in: check for getpwnam_r
13585 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13586 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13587 mechanism as in SASL spec, using socket credentials
13589 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13590 (_dbus_send_credentials_unix_socket): new function
13592 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13594 (_dbus_write): only check errno if <0 returned
13595 (_dbus_write_two): ditto
13597 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13599 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13600 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13601 (_dbus_marshal_test):
13602 * dbus/dbus-marshal.h:
13603 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13604 to _dbus_marshal_utf8_string. Also fix some tests.
13606 2002-12-28 Harri Porten <porten@kde.org>
13608 * configure.in: added check for C++ compiler and a very cheesy
13609 check for the Qt integration
13611 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13613 * qt/Makefile.am: added
13615 * qt/.cvsignore: added
13617 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13618 latter, added #ifdef QT_THREAD_SUPPORT guard.
13620 * dbus/Makefile.am: added missing headers for make dist
13622 2002-12-28 Kristian Rietveld <kris@gtk.org>
13624 * dbus/Makefile.am: fixup export-symbols-regex.
13626 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13628 * acinclude.m4: Add this file and put the
13629 PKG_CHECK_MODULE macro in it.
13631 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13633 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13634 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13635 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13636 (_dbus_marshal_test):
13637 Make the demarshalling routines align the pos argument.
13638 Add string marshalling tests and fix the obvious bugs
13641 2002-12-26 Havoc Pennington <hp@pobox.com>
13643 * dbus/dbus-auth.c: fixes fixes fixes
13645 * dbus/dbus-transport-unix.c: wire up support for
13646 encoding/decoding data on the wire
13648 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13649 (_dbus_auth_decode_data): append to target string
13650 instead of nuking it.
13652 2002-12-26 Havoc Pennington <hp@pobox.com>
13654 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13655 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13658 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13659 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13660 now). Main point is because I wanted unpack_uint32 to implement
13661 _dbus_verbose_bytes
13662 (_dbus_verbose_bytes): new function
13664 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13666 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13667 mechanism to handle a corrupt message stream
13668 (_dbus_message_loader_new): fix preallocation to only prealloc,
13671 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13672 (_dbus_string_test): enhance tests for copy/move and fix the
13675 * dbus/dbus-transport-unix.c: Hold references in more places to
13676 avoid reentrancy problems
13678 * dbus/dbus-transport.c: ditto
13680 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13681 leak reference count in no-message case
13683 * test/watch.c (do_mainloop): handle adding/removing watches
13684 during iteration over the watches. Also, ref the connection/server
13685 stored on a watch, so we don't try to mangle a destroyed one.
13687 * dbus/dbus-transport-unix.c (do_authentication): perform
13690 * dbus/dbus-auth.c (get_state): add a state
13691 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13692 (_dbus_auth_get_unused_bytes): append the unused bytes
13693 to the passed in string, rather than prepend
13695 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13696 the auth conversation DBusAuth
13698 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13699 (_dbus_transport_new_for_domain_socket): when creating a
13700 transport, pass in whether it's a client-side or server-side
13701 transport so we know which DBusAuth to create
13703 2002-12-03 Havoc Pennington <hp@pobox.com>
13705 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13706 _after_ finalizing the derived members
13707 (unix_connection_set): unref watch if we fail to add it
13709 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13710 transport first, so that the connection owned by the
13711 transport will be valid as the transport finalizes.
13713 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13714 if necessary, and remove watches from the connection.
13716 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13718 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13720 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13721 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13722 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13723 (_dbus_marshal_test):
13724 * dbus/dbus-marshal.h:
13725 Add string marshal functions and have the demarshal functions
13726 return the new position.
13728 2002-12-25 Havoc Pennington <hp@pobox.com>
13730 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13731 it is a simple protocol that just maps directly to SASL.
13733 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13734 initial implementation, not actually used yet.
13736 * dbus/dbus-string.c (_dbus_string_find): new function
13737 (_dbus_string_equal): new function
13738 (_dbus_string_base64_encode): new function
13739 (_dbus_string_base64_decode): new function
13741 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13743 * dbus/Makefile.am:
13744 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13745 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13746 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13747 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13748 * dbus/dbus-marshal.h:
13749 * dbus/dbus-protocol.h:
13750 * dbus/dbus-test.c: (main):
13751 * dbus/dbus-test.h:
13752 Add un-optimized marshalling/demarshalling routines.
13754 2002-12-25 Harri Porten <porten@kde.org>
13756 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13758 2002-12-24 Zack Rusin <zack@kde.org>
13760 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13761 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13764 2002-12-24 Havoc Pennington <hp@pobox.com>
13766 * glib/dbus-gthread.c: fix include
13768 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13769 I think glib API needs to change, though, as you don't
13770 want to use DBusMessageFunction, you want to use the
13771 DBusMessageHandler object. Probably
13772 dbus_connection_open_with_g_main_loop()
13773 and dbus_connection_setup_g_main_loop() or something like that
13774 (but think of better names...) that just create a connection
13775 that has watch/timeout functions etc. already set up.
13777 * dbus/dbus-connection.c
13778 (dbus_connection_send_message_with_reply): new function just to
13779 show how the message handler helps us deal with replies.
13781 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13783 * dbus/dbus-string.c (_dbus_string_test): free a string that
13786 * dbus/dbus-hash.c: use memory pools for the hash entries
13787 (rebuild_table): be more paranoid about overflow, and
13788 shrink table when we can
13789 (_dbus_hash_test): reduce number of sprintfs and write
13790 valid C89. Add tests for case where we grow and then
13791 shrink the hash table.
13793 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13795 * dbus/dbus-connection.c (dbus_connection_register_handler)
13796 (dbus_connection_unregister_handler): new functions
13798 * dbus/dbus-message.c (dbus_message_get_name): new
13800 * dbus/dbus-list.c: fix docs typo
13802 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13803 an object representing a handler for messages.
13805 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13807 * glib/dbus-glib.h:
13808 * glib/dbus-gthread.c: (dbus_gthread_init):
13809 Don't use the gdbus prefix for public functions.
13811 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13815 Add GLib checks and fixup .pc files
13817 * glib/Makefile.am:
13818 * glib/dbus-glib.h:
13819 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13820 (gdbus_connection_check), (gdbus_connection_dispatch),
13821 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13822 (dbus_connection_gsource_new):
13823 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13824 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13825 * glib/test-dbus-glib.c: (message_handler), (main):
13828 2002-12-15 Harri Porten <porten@kde.org>
13830 * autogen.sh: check for libtoolize before attempting to use it
13832 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13835 * .cvsignore: ignore more stamp files
13837 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13839 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13840 without make install.
13842 2002-12-15 Havoc Pennington <hp@pobox.com>
13844 * dbus/dbus-threads.c: add thread stubs that a higher library
13845 layer can fill in. e.g. the GLib wrapper might fill them in with
13846 GThread stuff. We still need to use this thread API to
13847 thread-safe-ize the library.
13849 2002-12-12 Havoc Pennington <hp@pobox.com>
13851 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13852 below new interfaces and include fewer system headers.
13854 * dbus/dbus-sysdeps.c (_dbus_read): new function
13855 (_dbus_write): new function
13856 (_dbus_write_two): new function
13857 (_dbus_connect_unix_socket): new function
13858 (_dbus_listen_unix_socket): new function
13860 * dbus/dbus-message-internal.h: change interfaces to use
13863 2002-12-11 Havoc Pennington <hp@pobox.com>
13865 * dbus/dbus-types.h: add dbus_unichar
13867 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13869 * dbus/dbus-connection.c (dbus_connection_send_message): return
13872 * dbus/dbus-transport.c: include dbus-watch.h
13874 * dbus/dbus-connection.c: include dbus-message-internal.h
13876 * HACKING: add file with coding guidelines stuff.
13878 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13879 handling here, for security purposes (as in vsftpd). Not actually
13880 using this class yet.
13882 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13883 system/libc usage here, as in vsftpd, for ease of auditing (and
13884 should also simplify portability). Haven't actually moved all the
13885 system/libc usage into here yet.
13887 2002-11-25 Havoc Pennington <hp@pobox.com>
13889 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13890 always print the first verbose message.
13892 2002-11-24 Havoc Pennington <hp@pobox.com>
13894 * test/echo-client.c, test/echo-server.c: cheesy test
13897 * configure.in (AC_CHECK_FUNCS): check for writev
13899 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13902 * dbus/dbus-list.c (_dbus_list_foreach): new function
13904 * dbus/dbus-internals.c (_dbus_verbose): new function
13906 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13907 representing a server that listens for connections.
13909 * dbus/.cvsignore: create
13911 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13912 public API for reporting errors
13914 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13915 public object representing a connection that
13916 sends/receives messages. (Same object used for
13917 both client and server.)
13919 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13920 Basic abstraction for different kinds of stream
13921 that we might read/write messages from.
13923 2002-11-23 Havoc Pennington <hp@pobox.com>
13925 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13928 * dbus/dbus-test.c (main): add list test, and include
13929 dbus-test.h as intended
13931 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13932 (_dbus_hash_table_remove_int): return value indicates
13933 whether the entry existed to remove
13935 * dbus/dbus-list.c: add linked list utility class,
13936 with docs and tests
13938 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13941 2002-11-23 Havoc Pennington <hp@pobox.com>
13943 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13944 DBUS_END_DECLS to nothing, that should fix this once and for all
13946 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13948 * dbus/dbus-message.c, dbus/dbus-hash.c:
13949 add some missing @brief
13951 2002-11-23 Havoc Pennington <hp@pobox.com>
13953 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13954 to avoid confusing Doxygen
13956 * dbus/dbus-hash.c: @} not }@
13958 * dbus/dbus-message.c (struct DBusMessage): split out
13961 2002-11-23 Havoc Pennington <hp@pobox.com>
13963 * configure.in: pile on more warning flags if using gcc
13965 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13966 to document static functions
13968 * configure.in: add summary to end of configure so it
13969 looks nice and attractive
13971 * dbus/dbus-hash.c: finish implementation and write unit
13974 * configure.in: add --enable-tests to enable unit tests
13976 * dbus/dbus-test.c: test program to run unit tests
13977 for all files in dbus/*, initially runs a test for
13980 * dbus/dbus-internals.h: file to hold some internal utility stuff
13982 2002-11-22 Havoc Pennington <hp@redhat.com>
13984 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13985 "ported" away from Tcl
13987 * dbus/dbus-types.h: header for types such as dbus_bool_t
13989 2002-11-22 Havoc Pennington <hp@redhat.com>
13991 * dbus/dbus.h: fixups for doc warnings
13993 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13995 (QUIET): make it quiet so we can see warnings
13997 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13999 2002-11-22 Havoc Pennington <hp@redhat.com>
14001 * Makefile.am: include "Doxyfile" target in all-local
14003 * configure.in: generate the Doxyfile
14005 * Doxyfile.in: move Doxyfile here, so we can use
14006 configure to generate a Doxyfile with the right
14007 version number etc.
14009 2002-11-22 Havoc Pennington <hp@redhat.com>
14011 * dbus/dbus-message.c: move inline docs into .c file
14013 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14014 so all docs are under doc/
14015 (MAN_EXTENSION): generate man pages. Use extension
14016 ".3dbus" which matches ".3qt" on my system,
14017 I guess this is OK, I don't know really.
14018 (FILE_PATTERNS): look for .c files not .h, makes sense
14019 for plain C I think
14021 2002-11-22 Havoc Pennington <hp@pobox.com>
14023 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14024 because any app can be a server, and any app can be a client,
14025 the bus is a special kind of server.
14027 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
14029 * Doxyfile : adding. Still needs Makefile rules to be generated
14030 automatically (just run "doxygen" in the toplevel dir for now to
14033 * dbus/dbus-message.h : Adding sample docs (javadoc since
14034 resembles gtk-doc a little more)
14036 * dbus/dbus.h : Adding sample docs
14038 2002-11-21 Havoc Pennington <hp@redhat.com>
14040 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14041 so we can allow ourselves to include files directly,
14042 instead of having to use dbus.h
14044 * dbus/dbus.h: fill in
14046 * dbus/dbus-message.h: sketch out a sample header file.
14047 Include griping if you include it directly instead of
14050 * dbus/dbus-macros.h: new file with macros for extern "C",
14051 TRUE/FALSE, NULL, etc.
14053 * doc/file-boilerplate.c: put include guards in here
14055 2002-11-21 Havoc Pennington <hp@redhat.com>
14057 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14059 * COPYING: include the GPL as well, and license code
14060 under both AFL and GPL.
14062 2002-11-21 Havoc Pennington <hp@redhat.com>
14064 * acconfig.h: get rid of this
14066 * autogen.sh (run_configure): add --no-configure option
14068 * configure.in: remove AC_ARG_PROGRAM to make
14069 autoconf complain less. add AC_PREREQ.
14070 add AC_DEFINE third arg.
14072 2002-11-21 Anders Carlsson <andersca@codefactory.se>
14075 Fix references so we can distcheck.
14077 2002-11-21 Havoc Pennington <hp@redhat.com>
14079 * Initial module creation