Patches by Kjartan Maraas <kmaraas at gnome dot org>
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         Patches by Kjartan Maraas <kmaraas at gnome dot org>
4
5         * bus/services.c (bus_service_list_queued_owners):
6         Add a pointer cast to fix compiler warning
7
8         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
9         return a NULL instead of FALSE since the return type
10         is not expecting a boolean
11
12         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
13         Remove unused variable
14
15         * dbus/dbus-marshal-recursive-util.c (node_new):
16         return a NULL instead of FALSE since the return type
17         is not expecting a boolean
18
19         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
20         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
21         because we are expecting a pointer not a boolean
22
23         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
24         add void as the parameter so some compilers
25         don't complain
26
27         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
28           _dbus_transport_new_for_tcp_socket):
29         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
30         because we are expecting a pointer not a boolean
31
32         * test/shell-test.c (test_command_line):
33         cast the second argument to _dbus_list_append to avoid compiler
34         warnings
35
36         * test/test-names.c (main): remove unused variable
37
38         * test/test-service.c (check_hello_from_self_reply):
39         Initialize echo_message and echo_reply to NULL
40         
41         * test/test-shell-service.c (handle_echo):
42         Remove unused variable and cast the third parameter passed to
43         dbus_connection_get_object_path_data to avoid compiler warrnings
44
45         * test/name-test/test-names.c (clear_message_queue):
46         Remove unused function
47
48         * test/name-test/test-pending-call-dispatch.c:
49         Fix format string in printf
50
51
52 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
53
54         * dbus/dbus-bus.c:
55         * test/name-test/test-names.c:
56         Remove test method dbus_bus_connection_get_unique_name because 
57         we already have public method dbus_bus_get_unique_name that 
58         does the exact same thing
59
60 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
61
62         * dbus/dbus-signature.c:
63         fix typos in Julio's previous patch which cause make check to fail
64
65 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
66
67         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
68         In any case it was wrong since this is a test checking to see if
69         address parsing is correct.  There was no need to get the true
70         tmp directory.  
71
72 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
73
74         * dbus/dbus-macros.h: Revert the addition of stddef.h
75         as we should not be adding it to library headers 
76
77 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
78
79         * dbus/dbus-signature.c:
80         Fix the unit tests so that they work if assertions are not enabled.
81         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
82
83 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
84
85         * tools/run-with-tmp-session-bus.sh:
86         * test/name-test/run-test.sh:
87         Remove bashisms (patch from Julio M. Merino Vidal
88         <jmmv at NetBSD dot org>)
89
90 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
91
92         * configure.in: add a version (>= 2.6.0) check for libxml2
93
94 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
95
96         * configure.in: make sure the compiler supports -Wfloat-equal
97         
98         * bus/dir-watch-dnotify.c: move functional code after 
99         variable declerations (C99 fix)  (patches from Jens Granseuer
100         <jensgr at gmx dot net>
101
102 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
103
104         * dbus/dbus-macros.h:
105         add #include <stddef.h> so that Sun compilers don't complain about
106         the defining NULL
107
108 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
109
110         * dbus/dbus-sysdeps.c:
111         * dbus/dbus-address.c:
112         * bus/activation.c:
113         * test/shell-test.c:
114         don't hardcode tmp directory (patch from Dave Meikle 
115         <dmk at davemeikle dot co dot uk>)
116
117 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
118
119         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
120         Change an assert to a detailed warning and abort.  
121         When allocator->lock != mutex it indicates that the user has failed
122         to initalize threads before using the D-Bus library.  This warning
123         helps the user identify the issue and fix their app.
124
125 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
126
127         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
128         with cleanups of bugs found from Coverity reports:
129
130         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
131         close the file on error to avoid a leak
132
133         * bus/expirelist.c (bus_expire_list_test):
134         Check for NULL on dbus_new0
135
136         * bus/activation.c (update_directory):
137         remove dead code
138
139         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
140         Fix some leaks
141
142         * bus/bus.c (process_config_every_time):
143         Fixed a leak
144
145         * bus/desktop-file.c (parse_key_value):
146         Fixed leak
147
148         * bus/selinux.c (bus_selinux_id_table_insert):
149         Fixed leak
150
151 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
152
153         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
154         remove dead code
155
156 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
157
158         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
159         #!/bin/bash
160
161 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
162
163         * Doxyfile.in: fix the INPUT line so we can generate docs 
164         when sourcedir != builddir (patch from Cygwin Ports maintainer
165         <yselkowitz at users dot sourceforge dot net>
166
167 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
168
169         * dbus/dbus-sysdeps.h:
170         * dbus/dbus-sysdeps.c: 
171         * dbus/dbus-string.c: 
172         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
173         GLib's function which does the same thing
174
175         * configure.in:
176         * bus/Makefile.am:
177         * bus/dir-watch-default.c:
178         * bus/dir-watch-dnotify.c:
179         * bus/dir-watch-kqueue.c:
180         Add kqueue directory watching for freebsd and split the directory
181         watching code into seperate files per method/arch
182         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
183
184 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
185
186         * configure.in:
187         * tools/Makefile.am:
188         * tools/dbus-launch.c:
189         * bus/Makefile.am:
190         allow --with-dbus-daemondir switch to be used to make the
191         daemon install to a seperate bindir like /usr/libexec
192         (patch from Brian Cameron <brian dot cameron at sun dot com)
193
194 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
195
196         * bus/Makefile.am (install-data-hook): removed the slash after 
197         $(DESTDIR) so we don't get the double slash which does not work
198         in windows (patch from Andras Porjesz 
199         <andras dot porjesz at siemens dot com>)
200
201 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
202
203         * dbus/dbus-sysdeps.h:
204         * dbus/dbus-sysdeps.c: 
205           add _dbus_printf_length (patch from Peter Kümmel 
206           <syntheticpp at gmx dot net>)
207
208 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
209
210         * dbus/dbus-internals.c: unistd.h is not used 
211         (_dbus_verbose_real): only enable verbose printing 
212         if DBUS_VERBOSE environment var is set to '1'
213         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
214
215 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
216
217         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
218         so we still compile on older gcc (patch from Frederic Peters 
219         <fpeters at 0d dot be>
220
221 2006-08-04  Havoc Pennington  <hp@redhat.com>
222
223         * configure.in: add -Wdeclaration-after-statement
224
225         * dbus/dbus-connection.c: change all the pending call stuff to
226         reflect the fact that pending call operations use the connection
227         lock
228
229         * dbus/dbus-pending-call.c: add locking here
230
231         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
232         field const consistent with how message field is done
233
234 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
235
236         * s/D-BUS/D-Bus/g
237
238 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
239
240         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
241         <in7y118 at public.uni-hamburg dot de> - fix invalid
242         read/write reported by valgrind
243
244 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
245
246         * Released 0.91
247
248 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
249
250         * dbus/dbus-connection.c:
251         (_dbus_connection_attach_pending_call_unlocked):
252         (connection_timeout_and_complete_all_pending_calls_unlocked):
253         Make sure we set timeout_added on pending calls to FALSE when
254         we remove the timeout from the connection
255
256 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
257
258         * Removed some extra bindings stuff lingering around (thanks timo)
259         * dbus-pendingcall.c (_dbus_pending_call_new): 
260         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
261         when we tried to take a lock on an already locked connection
262
263 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
264
265         * Released 0.90
266
267 2006-07-17  Havoc Pennington  <hp@redhat.com>
268
269         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
270         ints, reported by Owen Taylor
271
272 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
273
274         * doc/TODO:
275         * dbus/dbus-bus.c:
276         * dbus-errors.c:
277         * dbus/dbus-marshal-validate.c:
278           Removed TODO items which were fixed or are no longer relevent
279
280 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
281
282         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
283         Remove stray files from the stripped bindings
284
285 2006-07-16  Havoc Pennington  <hp@redhat.com>
286
287         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
288         Improve the error message on reply timeout
289
290 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
291
292         * Remove all bindings
293
294 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
295
296         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
297         and set pending_reply out arg to NULL is connection is disconnected
298         (connection_timeout_and_complete_all_pending_calls_unlocked): New
299         static method for cleaning up pending calls on disconnect
300         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
301         calls queued timeouts on disconnect 
302
303          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
304         Remove 
305
306 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
307
308         * bus/activation.[ch] (bus_activation_list_services): new function to 
309         get the list of services that can be activated
310
311         * bus/dispatch.c: test coverage for the new bus method
312         ListActivatableNames
313
314         * bus/driver.c: new bus method ListActivatableNames to get the list of
315         services that can be activated
316
317         * doc/dbus-specification.xml: ListActivatableNames method documentation
318
319 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
320         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
321         source files
322
323 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
324         * dbus/dbus-message-factory.c:
325         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
326
327 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
328         * dbus/dbus-connection-internal.h:
329         * dbus/dbus-connection.c:
330         * file dbus/dbus-pending-call.c:
331         * dbus/dbus-pending-call.h:
332         Make DBusPendingCall an opaque type even to D-Bus internals
333
334 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
335
336         * dbus/dbus-connection.h: remove connection_disconnect and replace with
337         connection_close
338
339         * dbus/dbus-connection.c: include dbus-bus.h
340         (_dbus_connection_read_write_dispatch): make static
341
342 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
343
344         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
345         function
346         (dbus_connection_dispatch): On disconnect unref any shared connections
347
348         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
349         for cleaning up shared connections on disconnect
350         (internal_bus_get): get a hard refrence to shared connections when
351         they are created
352         
353         * doc/TODO: Remove items which are no longer relevent or have been fixed
354         Split 1.0 todo items with a 0.90 freeze todo list
355  
356 2006-06-14  Ross Burton  <ross@openedhand.com>
357
358         * glib/dbus-gobject.c:
359         Free a leaking GArray (surely not!) in dbus_g_method_return.
360
361 2006-06-14  Ross Burton  <ross@openedhand.com>
362
363         * tools/Makefile.am:
364         * tools/dbus-monitor.c:
365         Don't use the GLib bindings in dbus-monitor (patch from Ralf
366         Habacker).
367         
368 2006-06-14  Ross Burton  <ross@openedhand.com>
369
370         * tools/dbus-print-message.c:
371         Also print the object path when outputting signals or method calls.
372
373 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
374
375         * qt/src/Makefile.am: install the qdbus.h header.
376         This allows people to actually use the installed code.
377
378 2006-06-12  Ross Burton  <ross@openedhand.com>
379
380         * glib/dbus-gproxy.c:
381         Don't leak a GArray when firing signals (thank Rob Taylor for review).
382
383 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
384
385         * Released 0.62
386
387 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
388
389         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
390         break pedantic builds. Closes bug 6043 (patch approved by
391         Havoc back in February).
392
393 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
394
395         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
396         that took a QDBusMessage parameter.
397         * qt/src/qdbusbus.h: Add a default flag for RequestName.
398         * qt/tools/dbus.cpp: Don't use automatic call because we might
399         be calling an async method: request a reply.
400
401 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
402
403         * test/qt/*: Update the testcases, including testing the new
404         functionality of sending null QByteArray and QString over the
405         bus. Add new headertest test and restore the old
406         qdbusxmlparser test.
407
408 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
409
410         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
411         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
412
413         * qt/examples/Makefile.am:
414         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
415         form.
416
417         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
418         QByteArray() (nulls) over the bus.
419         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
420         the one that has the signature suffix stripped.
421         * qt/src/qdbusreply.h: Make some methods const.
422
423 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
424
425         Patch from Timo Hoenig <thoenig@suse.de>.
426
427         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
428         required during build to EXTRA_DIST.
429         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
430         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
431         * configure.in: Fix "make dist", take care that the Makefile for
432         qt/dbus is being generated.
433
434 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
435
436         * bus/bus.c: Fix eavesdropping on method calls
437
438 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
439
440         * configure.in:
441         * dbus/dbus-userdb-util.c:
442         Add Solaris console owner patch from Artem Kachitchkine
443
444 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
445
446         * qt/Makfile.am:
447         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
448         reorganisation. Thanks to Timo Hoenig for pointing this out.
449
450 2006-06-06  Robert McQueen  <robot101@debian.org>
451
452         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
453           call to dbus_g_type_get_struct.
454
455 2006-06-06  Robert McQueen  <robot101@debian.org>
456
457         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
458           pointers were put into a GPtrArray-based specialised collection, and
459           then freed along with the array. GValues which you add into
460           collections or maps which have the NOCOPY flag set are assumed to not
461           belong to the caller, so rather than the existing pointer-stealing
462           semantics, they are copied instead. Given that the main consumers of
463           this abstraction are the bindings themselves, I don't think this is
464           too bad, but others should watch their choice of take vs set_static.
465
466 2006-06-06  Robert McQueen  <robot101@debian.org>
467
468         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
469           of g_slist_prepend not being used. Fixed copying of slist-based
470           specialised collections, then wrote a test case and found that it was
471           all broken. Went on to fix iterating and appending too. Good thing
472           nobody uses this code yet.
473
474 2006-06-06  Robert McQueen  <robot101@debian.org>
475
476         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
477           the iterators use gvalue_take_ptrarray_value (the GValues themselves
478           are discarded without unsetting, so it makes no difference whether
479           we take or set_static). Remove cases for G_TYPE_POINTER because
480           there really is nothing useful we can do with them in our
481           specialised types - we *need* boxed copy/free functions at the very
482           least.
483
484 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
485
486         * qt/dbus: Add directory. I had forgotten to add this
487         yesterday after the move...
488
489         * qt/examples/Makefile.am:
490         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
491
492         * qt/tools/Makefile.am:
493         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
494         Added feature to get and set properties.
495         Added validation of service, object path and interface names.
496
497         * qt/tools/dbusidl2cpp.cpp: Two new features:
498         1) Allow specifying both the header and the source file names,
499         by separating them with a colon.
500         2) Don't write an interface output if the -p switch wasn't
501         given, but the -a was.
502
503         * qt/src/*: Fix usage of Iterators and ConstIterators.
504         Fix shadowing of variables by other variables (-Wshadow).
505         Fix keyword-cleanliness in headers.
506         Fix ASCII-cast (QLatin1String, QLatin1Char).
507         Fix validation of member names.
508         Add extra checking of introspection data during XML parsing.
509         Various bug fixes.
510
511 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
512
513         * dbus/Makefile.am:
514         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
515         qt/dbus/qdbus.h now.
516
517 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
518
519         * configure.in: Make --disable-qt actually do
520           something. Patch inspired by Zack Rusin.
521
522 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
523
524         * qt/: Update to Subversion r548032.
525         This includes a big reorganisation of the files inside the
526         subdir.
527
528 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
529
530         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
531         clear:  
532         "Failed to connect to socket <host>:<port> <error>" instead of
533         "Failed to connect to socket <host>: <error>:<port>"
534
535         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
536         for a tcp transport. 
537
538 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
539
540         * qt/*: Update the QtDBus bindings up to revision 546310 in
541         Subversion.
542         This adds the dbuscpp2xml tool, that parses a C++ header and
543         outputs a D-BUS Introspection XML.
544
545 2006-05-21  Havoc Pennington  <hp@redhat.com>
546
547         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
548         is not NULL when it shouldn't be. Also a couple of possible fixes
549         for #4637 though I don't understand why the bug happens, to be
550         honest... also the object constructor has an assert name != NULL
551         and the name is only currently NULL for peer-to-peer proxies that 
552         I don't think anyone uses? So it should be asserting.
553         Anyway, for now at least see if we get an earlier assertion failure.
554
555         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
556         apparently broken code to be sure the tests fail and someone 
557         will fix them...
558
559 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
560
561         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
562         and arrays when they had a single element: has_next returns
563         false, even before you read the element. So, instead, check
564         the array length.
565
566 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
567
568         * qt/qdbusmessage.cpp:
569         * qt/qdbustypehelper_p.h:
570         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
571         the list is a const-reference
572
573 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
574
575         * Adding old doc patch that never got applied
576         
577         * dbus/bus.c (dbus_bus_add_match): Add documentation
578
579         * doc/dbus-specification.xml: Add documentation for the match rules
580           and the AddMatch and RemoveMatch methods
581
582 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
583
584         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
585         call (r535506)
586
587         * qt/dbusidl2cpp.cpp:
588         * qt/qdbusabstractadaptor.cpp:
589         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
590         sibling of the QDBusAbstractAdaptor objects instead of the
591         parent. (r535848)
592
593         * qt/dbusidl2cpp.cpp:
594         * qt/qdbusabstractinterface.cpp:
595         * qt/qdbusabstractinterface.h:
596         * qt/qdbusabstractinterface_p.h:
597         * qt/qdbusinterface.cpp: Make properties in interfaces
598         actually work. The code that was generated would not compile,
599         due to moc calls to functions that did not exist. They now
600         shall. (r536571)
601
602 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
603
604         * Makefile.am:
605         * configure.in:
606         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
607         Thanks to Brad Hards for providing the patch
608
609 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
610
611         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
612         call. (r535506)
613
614 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
615
616         * qt/examples/dbus.cpp: Enhance error messages and use
617         QDBusInterfacePtr.
618
619 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
620
621         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
622         and disable the copy operators. (r533772, r534746)
623
624         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
625
626         * qt/qdbusabstractinterface.cpp:
627         * qt/qdbusabstractinterface.h: Change the default call mode to
628         not use the event loop. Add convenience call() methods that
629         take a CallMode parameter. (r534042)
630
631         * qt/qdbusconnection.h: Change the default call mode to not
632         use the event loop. (r534042)
633
634         * qt/qdbusinterface.cpp:
635         * qt/qdbusinterface.h: Add a method to tell us if the
636         interface is valid (since we don't return a null pointer
637         anymore) (r534099)
638
639         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
640         (r534101)
641
642         * qt/qdbusinternalfilters.cpp: Decouple the introspection
643         function in two so taht we get the chance to introspect
644         without having a QDBusMessage (r534102)
645
646         * qt/qdbusbus.h:
647         * qt/qdbusconnection.cpp:
648         * qt/qdbusconnection_p.h:
649         * qt/qdbusintegrator.cpp: Keep a list of our own names to
650         avoid a round-trip to the server when attempting to introspect
651         one of our own objects. Also make sure the filter functions
652         match the empty interface as well. (r534108)
653         Don't keep the connection names. Instead, trust the unique
654         connection name (r534111)
655         Remove event loop usage (r534112)
656
657 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
658
659         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
660         Brad Hards.
661
662 2006-04-28  Robert McQueen  <robot101@debian.org>
663
664         * glib/dbus-gproxy.c: Fix properties so that they can be given in
665         any order, making it easier for people who inherit from this
666         object.
667
668 2006-04-28  Robert McQueen  <robot101@debian.org>
669
670         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
671         of memory from within pointer arrays and lists. Fixes bug #6300.
672
673 2006-04-28  Robert McQueen  <robot101@debian.org>
674
675         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
676         generating struct signatures. Fixes bug #6083.
677
678 2006-04-28  Robert McQueen  <robot101@debian.org>
679
680         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
681         to qdbusconnection_p.moc.
682
683 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
684
685         * README, INSTALL: Doc fixes
686         Patch from Brad Hards <bradh at frogmouth.net>
687
688 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
689
690         * qt/examples/dbus.cpp: Use the new merged-interface mode for
691         the dynamic meta object. No need to guess which interface to
692         call.
693
694 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
695
696         * qt/qdbusconnection_p.h:
697         * qt/qdbusmetaobject.cpp:
698         * qt/qdbusmetaobject_p.h:
699         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
700         for the dynamic meta object. No need to guess which
701         interface to call.
702         * qt/qdbusabstractinterface_p.h:
703         * qt/qdbusconnection.cpp:
704         * qt/qdbusintegrator.cpp:
705         * qt/qdbusinterface.cpp:
706         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
707         Add a QDBusRef that looks and behaves like DCOPRef.
708
709 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
710
711         * dbus/dbus-connection.c: Interfaces are optional in method
712         calls, so don't give up if the interface parameter is NULL.
713         Patch reviewed by Havoc Pennington.
714
715 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
716
717         * qt/qdbusreply.h: Add default constructor and operator=
718           (r532625)
719         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
720           in public headers (r532952)
721         * qt/qdbusabstractinterface.cpp:
722         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
723           make it the default (r532951)
724
725 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
726
727         * dbus/dbus-connection.c: Fix asserts
728         Patch from Tim Moloney <t.moloney at verizon.net>
729
730 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
731
732         * mono/Connection.cs, mono/Message.cs: Check Target type
733         Patch from Aaron Bockover (abockover at novell.com)
734
735 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
736
737         * INSTALL: fine-tune the requirements for the Qt4 binding.
738
739 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
740
741         * tools/dbus-print-message.c: Added support for printing of all 
742           remaining data types. Fixed logic for indentation of compound
743           data types.
744         
745 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
746
747         * INSTALL: fill out content of file providing DBus specific
748           build installations, followed by generic Auto* INSTALL file
749           content
750         
751 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
752
753         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
754           Patch by Stefan Eilers. (r529537)
755
756 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
757
758         * qt/qdbusinternalfilters.cpp: Don't show the parent's
759           contents (r528208)
760
761 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
762
763         * qt/Makefile.am: fix the dependency for
764           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
765           not in qdbusconnection.cpp.
766           Thanks to Jakub Stachowski <stachowski@hypair.net> for
767           spotting this.
768
769 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
770
771         * qt/examples/listnames.cpp:
772         * qt/examples/Makefile.am: Three ways to list the names on the
773           bus.
774
775 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
776
777         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
778           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
779
780 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
781
782         Merge from Subversion:
783         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
784           something that exists (r526315)
785         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
786           slots/signals (r526316)
787         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
788           also return an unknown-method error if the parameters don't
789           match for org.freedesktop.DBus.Properties. (r526842)
790         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
791         * qt/qdbusintegrator.cpp: Restore the proper order of
792           delivery: don't make method returns be delivered on priority
793           (r528150)
794
795 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
796
797         * configure.in qt/Makefile.am: add qt/examples
798         * qt/examples: Add QtDBus example programs:
799           - hello: Hello, World
800           - ping: Simple method-calling program
801           - pong: Simple object-exporting program (not using adaptors)
802           - complexping: Interactive method-calling program 
803                 (also gets and sets properties).
804           - complexpong: Sample program exporting methods, signals and
805                 properties, using adaptors.
806           - dbus: Simple implementation of a generic method-calling
807                 program, similar to 'dbus-send', but with semantics
808                 similar to 'dcop'.
809           - chat: Simplistic chat program, implemented using signals
810                 and the system bus. Looks like IRC.
811
812 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
813
814         * configure.in: Detect QtGui (necessary for one of the
815           example programs). Note: this increases the minimum required
816           version of Qt to 4.1.3.
817
818 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
819
820         * test/qt/*: Sync with KDE Subversion revision 523647.
821         Update the testcases to the new API. Remove testcases for
822         classes that are no longer public or have been removed.
823
824 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
825
826         * qt/*: 
827         * dbus/qdbus.h: Sync with KDE Subversion revision
828         523647. Hopefully, this will be the last of the
829         source-incompatible changes. Documentation has been improved;
830         support for QList<basic-types> has been added; QDBusObject is
831         gone; QDBus(Abstract)Interface is now a QObject with
832         auto-generated meta-object; QDBusIntrospection is marked
833         private, since QMetaObject can be used now; lots of bugfixes.
834
835 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
836
837         Patch from Milosz Derezynski <internalerror at gmail.com>
838         
839         * configure.in:
840         Output the service directory in the configure summary
841
842         * dbus-1.pc.in:
843         Add session_bus_services_dir
844
845 2006-03-10  Ross Burton  <ross@openedhand.com>
846
847         * tools/dbus-print-message.c:
848         Add support for object paths and signatures.
849
850 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
851
852         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
853         config reload.
854         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
855         information caches
856         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
857         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
858         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
859         * dbus/dbus-userdb.h: Add function to flush all user/group information
860         caches.
861
862 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
863
864         * qt/dbusidl2cpp.cpp:
865         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
866         for dcopidl2cpp, found in the KDE installations (or the more
867         modern kalyptus): generate Qt4 C++ code for the input XML
868         introspection. Currently no IDL parsing.
869
870 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
871
872         * test/qt/*: Update the self-tests.
873
874 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
875
876         * qt/*: 
877         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
878         represents the first feature-complete version of the Qt4
879         bindings since I took ove maintainership.
880
881 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
882
883         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
884         dir. This is C++, so we can't use the DBus ones.
885
886 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
887
888         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
889         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
890
891 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
892
893         * dbus/dbus-connection.c: 
894         (_dbus_connection_block_pending_call):
895         Check to see if our data has already been read off the connection
896         by another blocking pending call before we block in poll.
897         (check_for_reply_and_update_dispatch_unlocked):
898         Code taken from _dbus_connection_block_pending_call - checks for
899         an already read reply and updates the dispatch if there is one.
900
901         * test/name-test/test-pending-call-dispatch.c:
902         New test for making sure we don't get stuck polling a 
903         dbus connection which has no data on the socket when
904         blocking out of order on two or more pending calls.
905
906 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
907
908         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
909         make/automake don't detect that we're talking about the same
910         .lo file if I specify the full path to the source files.
911
912 2006-02-26  Havoc Pennington  <hp@redhat.com>
913
914         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
915
916         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
917         session bus variable is unset, suggest "man dbus-launch" and "man
918         dbus-daemon" to figure out how to fix the problem
919
920 2006-02-25  Havoc Pennington  <hp@redhat.com>
921
922         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
923         should make this thing use the new glib options parser
924
925 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
926
927         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
928         .lo files taking moc sources.
929
930 2006-02-25  Havoc Pennington  <hp@redhat.com>
931
932         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
933         and install it as a public header
934
935 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
936
937         * Released 0.61
938
939 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
940         
941         * proxies.py: Fix the callchain
942
943 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
944         
945         * patch from Sjoerd Simons <sjoerd at debian.org>:      
946
947         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
948         dbus/dbus-sysdeps.c
949
950         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
951         call _dbus_group_info_free_allocated which causes infinite loop,
952         correctly call _dbus_group_info_free
953
954 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
955
956         * qt/qdbusinterface_p.h:
957         * qt/qdbusinterface.cpp: Use the standard
958         org.freedesktop.DBus.Method.NoReply annotation for the "async"
959         calls instead of creating one for us.
960
961         * qt/qdbusconnection_p.h:
962         * qt/qdbusintegrator.cpp: Remove debugging code.
963
964         * qt/qdbusintegrator.cpp:
965         * qt/qdbusmessage.cpp:
966         * qt/qdbusmessage_p.h:
967         * qt/qdbusmessage.h: Change the behaviour of automatic
968         reply-sending: now a reply is always sent, unless the caller
969         didn't request one or if the user slot has already sent one.
970
971 2006-02-16  Robert McQueen  <robot101@debian.org>
972
973         * configure.in: Patch from Debian packages by Sjoerd Simons
974         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
975         arguments so it's possible to build both bindings in the
976         same tree.
977
978         * qt/Makefile.am: Fix truncated value so that make dist works.
979
980 2006-02-16  Robert McQueen  <robot101@debian.org>
981
982         * acinclude.m4, configure.in: Patch from Brad Hards
983         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
984         improving quoting, re-ordering a few checks, and a few other
985         aesthetic tidy-ups.
986
987 2006-02-16  Robert McQueen  <robot101@debian.org>
988
989         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
990         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
991         assertion that the next element to read from the iter is fixed in
992         size. This is not the case when you are at the end of the iter,
993         because the next element type is INVALID.
994
995         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
996         a bogus assert which means that you may not initialise a 0-length
997         string unless you provide a non-NULL pointer. This prevented
998         you from marshalling messages containing zero-length arrays in
999         some cases.
1000
1001         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1002         from Rob to correct bogus asserts when trying to demarshal an
1003         array and get_fixed_array got you 0 elements. Append nothing to
1004         the GArray in this case.
1005
1006         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1007         an empty array via the glib bindings. Without all of the above
1008         patches, this new test fails.
1009
1010 2006-02-16  Robert McQueen  <robot101@debian.org>
1011
1012         * glib/dbus-gmain.c: Make the previous commit compile.
1013
1014         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1015         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1016         specify sender_keyword="foo", path_keyword="bar" when adding
1017         a signal listener, so that you can bind to signals generically
1018         but still do something useful in your callback.
1019
1020         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1021         chars so that they're not cast to chars and made negative. Thanks
1022         to Jakub Stachowski for reporting this and testing the fix.
1023
1024 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * dbus/dbus-glib.h:
1027         * glib/dbus-gmain.h:
1028         (dbus_g_connection_open): new method for openning
1029         a connection to an arbitrary address in the glib bindings
1030
1031         * ChangeLog: checkin last entry which doesn't seem to be commited
1032
1033 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         * tools/dbus-launch.c: Fixed sh syntax output
1036
1037 2006-02-13  Robert McQueen  <robot101@debian.org>
1038
1039         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1040         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1041         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1042         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1043         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1044         missing piece of the glib bindings jigsaw puzzle. This modifies
1045         the existing specialised types to have N type parameters (rather
1046         than the current 1 or 2 for arrays and dictionaries respectively).
1047         You can then use this to get a glib type to represent any arbitrary
1048         D-Bus struct type using dbus_g_type_get_struct. The only
1049         implementation of these types is with GValueArrays as before,
1050         but it's now possible to store these in arrays, emit them in
1051         signals, etc.
1052
1053 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1054
1055         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1056         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1057         <thiago.macieira at trolltech.com>
1058
1059 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1062         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1063
1064 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * bus/connection.c (bus_connections_expect_reply): Make
1067         pending reply limit not common to all connections (Bug #5416)
1068         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1069
1070 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1071
1072         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1073
1074 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1075
1076         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1077         patch from Doug Goldstein <cardoe at gentoo.org>
1078
1079 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1080
1081         * mono/Arguments.cs: Fix a magic number in the mono bindings
1082         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1083
1084 2006-01-27  Robert McQueen  <robot101@debian.org>
1085
1086         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1087         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1088         when generating the client-side methods, instead of overloading
1089         CSymbol which broke everything horribly. My apologies.
1090
1091 2006-01-27  Robert McQueen  <robot101@debian.org>
1092
1093         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1094         by me and Rob Taylor to add a simple_free function to D-Bus map
1095         and collection types, which allows those types which can be freed
1096         with a GDestroyNotify (such as GHashTables and GArrays, but not
1097         GPtrArrays) to be stored as the values in hashtables.
1098
1099         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1100         Patch by Rob Taylor to add nested dicts to the glib tests to check
1101         the above code works, and appears not to leak when called repeatedly.
1102
1103 2006-01-27  Robert McQueen  <robot101@debian.org>
1104
1105         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1106         to free a D-Bus allocated string with dbus_free () instead of
1107         g_free ().
1108
1109 2006-01-27  Iain Holmes  <iain@openedhand.com>
1110
1111         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1112         method from being called multiple times.
1113
1114 2006-01-19  Robert McQueen  <robot101@debian.org>
1115
1116         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1117         <rob.taylor@collabora.co.uk> to add support for generating bindings
1118         to arrays that are represented as GPtrArrays rather than GArrays (ie
1119         size-variable things, such as strings, objects, structs, etc).
1120
1121 2006-01-05  Robert McQueen  <robot101@debian.org>
1122
1123         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1124         <ricardo.kekki@movial.fi> to make it possible to inherit from
1125         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1126         a private part, and moving the setting of the DBusGProxyManager into a
1127         connection property, allowing proper GObject construction.
1128
1129 2006-01-05  Robert McQueen  <robot101@debian.org>
1130
1131         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1132         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1133         annotations when generating glib client bindings.
1134
1135 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1136
1137         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1138
1139         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1140
1141 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1142
1143         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1144
1145 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1146
1147         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1148
1149 2005-12-19  Ross Burton  <ross@openedhand.com>
1150
1151         * doc/dbus-tutorial.xml:
1152         Document the Glib client-side bindings, and list all possible annotations.
1153
1154 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         * dbus/bus.c (dbus_bus_release_name): Add documentation
1157
1158 2005-12-06  Robert McQueen  <robot101@debian.org>
1159
1160         * python/service.py: s/sucessful/successful/ so we're allocating to
1161         and reading from the same variable. Oops.
1162
1163 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * Released 0.60
1166
1167 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1168
1169         * test/qt/Makefile.am: build from srcdir
1170
1171         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1172         Note - this code is wrong and needs to be fixed by the Qt binding
1173         developers.  The flags should be treated as bitfields and not enums.
1174
1175         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1176
1177 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1180           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1181           in production code
1182
1183 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1184
1185         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1186         method for getting messages off the bus in the absence of a
1187         mainloop.  This method is much like 
1188         dbus_connection_read_write_dispatch except it does not dispatch
1189         the messages to a registered filter function.  Instead it
1190         allows a developer to process messages by directly popping
1191         them off the bus.
1192
1193 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1194
1195         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1196         the parser to continue instead of returning error
1197         (bus_desktop_file_load): Do not free parser data when
1198         parse_section_start or parse_key_value fails because it was 
1199         already freed by parser_free (patch from Carlos Garcia Campos  
1200         <carlosgc at gnome.org>)
1201
1202 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1205         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1206         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1207         test/test-segfault.c, test/test-utils.c,
1208         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1209         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1210         Various cleanup of dead code and compiler warnings (patch from
1211         Kjartan Maraas <kmaraas at gnome.org>) 
1212
1213 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1214
1215         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1216         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1217
1218 2005-11-27  Robert McQueen  <robot101@debian.org>
1219
1220         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1221         part of the preceding one. Oops. Merge patch by Johan Hedberg
1222         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1223         on big-endian platforms.
1224
1225         * test/python/test-client.py: Add some 16-bit integers to the test
1226         values.
1227
1228 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1229
1230         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1231         method return message for property getters
1232
1233 2005-11-27  Robert McQueen  <robot101@debian.org>
1234
1235         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1236         with type v of an instance of dbus.Variant(foo, type='x') caused
1237         it to be boxed twice before sending over the bus.
1238
1239         * python/dbus_bindings.pyx, python/service.py,
1240         test/python/test-client.py: Update the constants for the new
1241         request_name flags, and update comments/test cases now that queueing
1242         is the default action.
1243
1244 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         * configure.in:
1247         - Change version to 0.60 for impending release
1248         - upped the sonames because of ABI and API breakage
1249
1250 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1251
1252         * configure.in: Add test/name-test/Makefile to the generated
1253         Makefile list
1254
1255         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1256         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1257         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1258         not to queue an ower if it can't be the primary owner
1259
1260         * bus/bus.h: Add new internal BusOwner struct
1261
1262         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1263         to bus_registry_ensure and don't set the prohibit_replacement flag
1264         since they are now set per BusOwner and not per name.
1265         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1266         that returns the list of connections in a name's connection queue
1267         
1268         * bus/services.c (struct BusService): remove prohibit_replacement field
1269         (struct BusOwner): new struct for keeping track of queued connections
1270         and their associated flags for the queue
1271         (struct BusRegistry): add a BusOwner memory pool
1272         (bus_registry_new): initialize the BusOwner memory pool
1273         (bus_registry_unref): free the BusOwner memory pool
1274         (_bus_service_find_owner_link): new internal method for
1275         searching the queue for a specific connection
1276         (bus_owner_set_flags): new method for adding setting the flags on a
1277         bus owner
1278         (bus_owner_new): new method that creates a BusOwner object from the
1279         pool and sets its flags
1280         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1281         (bus_registry_ensure): Add the flags parameter
1282         (bus_registry_acquire_service): Switch from using raw connections to
1283         using the BusOwner struct
1284         Add new state machine for dealing with the new set of flags
1285         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1286         cancel_ownership, free_ownership_cancel_data, 
1287         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1288         restore_ownership, free_ownership_restore_data, 
1289         add_restore_ownership_to_transaction): Switch to using BusOwner 
1290         instead of raw connections
1291         (bus_service_add_owner): Add flags parameter
1292         Switch to using BusOwner instead of raw connections
1293         Add state machine for dealing with the new set of flags
1294         (bus_service_swap_owner): Swaps the first and second owners in the
1295         queue.  Used to make sure proper signals are sent when a service looses 
1296         or gains primary ownership.  We never insert an owner at the top of the
1297         queue.  Instead we insert it in the second position and then swap.
1298         (bus_service_remove_owner): Remove the owner from the queue sending
1299         out the NameLost and NameOwnerChanged signals if the we were the 
1300         primary owner
1301         (bus_service_get_primary_owners_connection): New method that extracts
1302         the connection from the primary owner
1303         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1304         connection
1305         (bus_service_get_allow_replacement): Changed from the old 
1306         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1307         primary owner and returns if it can be replaced or not
1308         (bus_service_set_prohibit_replacement): removed
1309         (bus_service_has_owner): returns TRUE if and owner with
1310         the specified connection exists in the queue
1311         
1312         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1313         method that only compiles if tests are enabled.  Allows us to get the 
1314         unique name of a connection so we can check it against the queue when
1315         doing regression tests
1316
1317         * bus/activation.c (bus_activation_send_pending_auto_activate),
1318         bus/dispatch.c (bus_dispatch),  
1319         bus/driver.c (bus_driver_handle_get_service_owner, 
1320         bus_driver_handle_get_connection_unix_user, 
1321         bus_driver_handle_get_connection_unix_process_id,
1322         bus_driver_handle_get_connection_selinux_security_context),
1323         bus/signals.c (connection_is_primary_owner): 
1324         use bus_service_get_primary_owners_connection instead of
1325         bus_service_get_primary_owner
1326
1327         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1328         _dbus_listen_unix_socket): Calculate the length of the socket
1329         path and use that instead of using a fixed length which was
1330         causing socket names to contain many trailing Nul bytes.
1331
1332         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1333         (dbus_g_method_get_sender): New method for extracting the sender 
1334         from a DBusGMethodInvocation
1335         (dbus_g_method_return_get_reply): changed name to 
1336         dbus_g_method_get_reply
1337         (dbus_g_method_return_send_reply): changed name to
1338         dbus_g_method_send reply
1339
1340         * doc/dbus-specification.xml: New docs that describe how the new
1341         queueing system works and talks about the changes to the how
1342         we specify socket names
1343
1344         * glib/examples/example-service.c, 
1345         glib/examples/example-signal-emitter.c,
1346         glib/examples/statemachine/statemachine-server.c:
1347         Changed the RequestName flags to the new system
1348
1349         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1350         regression test suite for testing various states of the new
1351         queueing system
1352         
1353 2005-11-15  Robert McQueen  <robot101@debian.org>
1354
1355         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1356         Taylor to add two methods, dbus_g_method_return_get_reply and
1357         dbus_g_method_return_send_reply, to allow you to get the reply
1358         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1359         and send it. The GLib bindings can't marshal a return value of
1360         something like a(s) if the array is empty - ultimately they should be
1361         made to heed the signature of the out arguments as the Python bindings
1362         now can, but this is a workable interim solution which might have
1363         other applications.
1364
1365 2005-11-15  Robert McQueen  <robot101@debian.org>
1366
1367         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1368         method to org.freedesktop.DBus to release a bus name or give up
1369         waiting in the queue for it.
1370
1371         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1372         dbus_bus_release_name method to send the ReleaseName method calls.
1373         Add constants for the return values to dbus/dbus-shared.h.
1374
1375         * doc/dbus-specification.xml: Document the new ReleaseName method
1376         in the specification.
1377
1378         * python/dbus_bindings.pyx: Add a low-level python binding for the
1379         release name method.
1380
1381         * python/exceptions.py, python/service.py: Make freeing BusName
1382         objects release the name. Add a NameExistsException, and fix a
1383         bug with creating UnknownMethodException.
1384
1385         * test/python/test-client.py: Add tests for freeing BusName
1386         objects causing names to be released.
1387
1388 2005-11-14  Robert McQueen  <robot101@debian.org>
1389
1390         * python/service.py: Include the traceback in the error reply when we
1391         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1392
1393 2005-11-14  David Zeuthen  <davidz@redhat.com>
1394
1395         Patch from Timo Hoenig <thoenig@suse.de>.
1396
1397         * bus/bus.c: I've recently investigated why the automatic reload
1398         of configuration files does not work as expected.
1399
1400         Currently, reloading configuration files does only work when
1401         running dbus-daemon with --nodaemon.  If we are running as daemon
1402         we're hitting a dnotify bug once we fork the process.
1403
1404         We're initializing the dnotify fds before calling fork().  Once
1405         the child process forked it does still have the fds (and they
1406         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1407         getting SIGIO as changes are made to the configuration files.
1408
1409         The attached patch moves the initialization of the dnotify fds to
1410         process_config_postinit().  This is safe for all current code
1411         paths and solves the dnotify disfunction.  If we're running
1412         dbus-daemon as daemon the fds for dnotify are now being
1413         initialized after fork() for the child process.
1414
1415         * configure.in: The current configure.in check for dnotify probes
1416         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1417         match for 'xlinux', too. Additionally I have adapted the configure
1418         option's style to match with the others.
1419
1420 2005-11-14  Robert McQueen  <robot101@debian.org>
1421
1422         * python/decorators.py, python/service.py: Add a new argument to the
1423         dbus.service.method decorator called sender_keyword, which if set,
1424         specifies the name of an argument which will be provided the bus
1425         name of the method caller.
1426
1427         * test/python/test-client.py, test/python/test-service.py: Add a
1428         method and test to check the sender_keyword functionality.
1429
1430 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1433         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1434         Simons <sjoerd at luon.net>)
1435
1436         * AUTHORS: Add Robert McQueen for his work on the Python
1437         Bindings and other parts of D-Bus
1438
1439 2005-11-07  Robert McQueen  <robot101@debian.org>
1440
1441         * python/decorators.py: Change emit_signal function to use the
1442         signature annotation of the signal when marhsalling the arguments from
1443         the service. Fix a bug where the code checking signature length
1444         against argument length referenced the wrong variable.
1445
1446         * python/introspect_parser.py: Avoid adding the type signature of
1447         signal arguments to any methods which occur after them in the
1448         introspection data (!) by making the parser a little more careful
1449         about its current state.
1450
1451         * python/service.py: Remove debug prints from last commit (again :D).
1452
1453         * test/python/test-client.py, test/python/test-service.py: Add test
1454         signals with signature decorators to test the strict marshalling code
1455         gives errors at the right time. Could do with checking the signals
1456         actually get emitted too, given that the test does nothing with
1457         signals at the moment...
1458
1459 2005-11-07  Robert McQueen  <robot101@debian.org>
1460
1461         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1462         instances to stop madness of creating new instances representing
1463         the same bus connection all the time, rendering any tracking of
1464         match rules and bus names quite meaningless. Caught a bug where
1465         the private argument to SessionBus() and friends was being passed
1466         in as use_default_mainloop by mistake. Still some problems with
1467         multiple dbus_binding.Connection instances representing the same
1468         low-level connection (eg when you use both SessionBus() and
1469         StarterBus() in same process), but it's a lot better now than it
1470         was.
1471
1472         * python/dbus_bindings.pyx: Add constants with the return values
1473         for bus_request_name().
1474
1475         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1476         and retrieve the same instances for the same name, so deletion can be
1477         done with refcounting. Also now throws some kind of error if you
1478         don't actually get the name you requested, unlike previously...
1479
1480         * test/python/test-client.py: Add tests for instance caching of buses
1481         and bus name objects.
1482
1483 2005-11-04  Robert McQueen  <robot101@debian.org>
1484
1485         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1486         marshalling of boolean values. Add some booleans to the values in
1487         the test client.
1488
1489         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1490         argument to the dbus.service.method decorator, which allows you to
1491         name arguments to take two callback functions for replying with
1492         return values or an exception.
1493
1494         * test/python/test-client.py, test/python/test-service.py: Add test
1495         case using asynchronous method reply functions, both return values and
1496         errors, and from within both the function itself and from a mainloop
1497         callback.
1498
1499         * python/decorators.py, python/service.py: Perform checking that the
1500         number of method/signal arguments matches the number of types in the
1501         signature at class loading time, not when you first introspect the
1502         class.
1503
1504         * python/service.py: Remove debug print left by the last commit.
1505
1506 2005-11-03  Robert McQueen  <robot101@debian.org>
1507
1508         * python/service.py: Heavy refactoring of method invocation, with
1509         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1510         in favour of a new _message_cb that uses seperate functions for
1511         looking up the method to call, marshalling the return values, and
1512         sending exceptions as errors, and is easier to follow as a
1513         consequence.  Fixes some corner cases about returning things that
1514         don't match your declared out_signature, allows exceptions to define
1515         _dbus_error_name and have it be sent over the bus as the error name,
1516         and paves the way for cool stuff like heeding the message no reply
1517         flag, asynchronous method implementations, informing the method of the
1518         sender, and including backtraces in the error messages.
1519
1520         * test/python/test-client.py: Catch and print exceptions thrown in the
1521         async callback tests, rather than passing them to the low-level
1522         bindings to be ignored in a noisy and frustrating manner.
1523
1524 2005-11-03  Robert McQueen  <robot101@debian.org>
1525
1526         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1527         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1528         tweak others to be consistent.
1529
1530         * test/python/test-client.py: Tweak output of testInheritance.
1531
1532 2005-10-29  Robert McQueen  <robot101@debian.org>
1533
1534         * python/service.py: Major changes to allow multiple inheritance
1535         from classes that define D-Bus interfaces:
1536         
1537          1. Create a new Interface class which is the parent class of
1538             Object, and make the ObjectType metaclass into InterfaceType.
1539         
1540          2. Patch written with Rob Taylor to replace use of method_vtable
1541             with code that walks the class's __MRO__ (method resolution order)
1542             to behave like Python does when invoking methods and allow
1543             overriding as you'd expect. Code is quite tricky because
1544             we have to find two methods, the one to invoke which has the
1545             right name and isn't decorated with the /wrong/ interface,
1546             and the one to pick up the signatures from which is decorated
1547             with the right interface.
1548         
1549             The same caveats apply as to normal multiple inheritance -
1550             this has undefined behaviour if you try and inherit from two
1551             classes that define a method with the same name but are
1552             decorated with different interfaces. You should decorate
1553             your overriding method with the interface you want.
1554         
1555          3. Replace grungy introspection XML generation code in the metaclass
1556             with dictionaries that cope correctly with multiple inheritance
1557             and the overriding of methods. This also uses the signature
1558             decorations to provide correct introspection data, including
1559             the debut appearance of the types of your return values. :D
1560
1561         * test/python/test-client.py, test/python/test-service.py: Add a test
1562         case to try invoking an method that overrides one inherited from a
1563         D-Bus interface class.
1564
1565 2005-10-29  Robert McQueen  <robot101@debian.org>
1566
1567         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1568         Add checking for the end of struct character when marshalling a
1569         struct in MessageIter.append_strict.
1570
1571         * python/examples/example-service.py,
1572         python/examples/gconf-proxy-service.py,
1573         python/examples/gconf-proxy-service2.py: Update to use gobject
1574         mainloop directly rather than appearing to depend on gtk.
1575
1576         * python/test/test-client.py, python/test/test-server.py: Remove
1577         obsolete and broken test scripts for old bindings. We have up to date
1578         and working tests in test/python/.
1579
1580 2005-10-29  Robert McQueen  <robot101@debian.org>
1581
1582         * python/decorators.py: Add optional arguments to the method and
1583         signal decorators to allow you to specify the signature of arguments
1584         and return values. Preserve the doc strings of signal functions in the
1585         decorated version, for pydoc and friends.
1586
1587         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1588         parse_signature_block function with an iterable dbus.Signature()
1589         type. Fix a bug in MessageIter.append_strict where you could append
1590         anything by claiming it was a string.
1591
1592         * python/service.py: Use the out_signature decoration on methods to
1593         marshal return values, meaning you no longer require dbus.Array()
1594         or dbus.Dictionary() to indicate the type when returning empty
1595         arrays or dictionaries. Fix a bug where exceptions which are defined
1596         in __main__ are not turned into error replies.
1597
1598         * test/python/test-client.py, test/python/test-service.py: Add test
1599         for correct marshalling of return values according to out_signature.
1600         Fix a bug in the async call test where the error_handler is missing a
1601         self argument.
1602
1603 2005-10-29  Robert McQueen  <robot101@debian.org>
1604
1605         * glib/Makefile.am, glib/examples/Makefile.am,
1606         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1607         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1608
1609         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1610
1611         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1612         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1613         the command line.
1614
1615 2005-10-27  Ross Burton  <ross@openedhand.com>
1616
1617         * dbus/dbus-marshal-header.c:
1618         Remove dead code.
1619
1620         * glib/dbus-gobject.c:
1621         Stop compiler warning.
1622
1623 2005-10-25  Ross Burton  <ross@openedhand.com>
1624
1625         * dbus/dbus-auth.c:
1626         * dbus/dbus-server-unix.c:
1627         * dbus/dbus-transport-unix.c:
1628         * glib/dbus-gmain.c:
1629         * glib/dbus-gobject.c:
1630         Add some const keywords.
1631
1632 2005-10-25  Ross Burton  <ross@openedhand.com>
1633
1634         * doc/dbus-specification.xml:
1635         Document the NoReply annotation.
1636
1637         * glib/dbus-binding-tool-glib.h:
1638         * glib/dbus-binding-tool-glib.c:
1639         Respect the NoReply annotation.
1640
1641 2005-10-24  Robert McQueen <robot101@debian.org>
1642
1643         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1644         derive from unicode instead of str, and encode/decode UTF-8 when
1645         marshalling/unmarshalling bus messages
1646
1647         * python/introspect_parser.py: encode introspection data as UTF-8
1648         before passing the buffer into libxml2
1649
1650         * test/python/test-client.py: add unicode test strings
1651
1652         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1653         ignore generated python test files
1654
1655 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1658         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1659         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1660
1661         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1662         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1663         when constructing struct signatures
1664
1665         * python/_dbus.py (Bus): handle private connections using the
1666         private keyword in the constructor. defaults to private=False
1667         (Bus::close): new method to close a connection to the bus
1668
1669         * python/dbus_bindings.pyx (Connection::close): renamed method
1670         was previously called disconnect
1671         (bus_get): now supports getting a private connection
1672
1673         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1674         keyword is set to True.  if it is, execute the method without waiting
1675         for a reply
1676         (ProxyObject::_introspect_execute_queue): new method for executing
1677         all the pending methods that were waiting for the introspect to
1678         finish.  this is called when introspect either succeeds or fails
1679         (ProxyObject::_introspect_error_handler): call queued methods
1680
1681 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1682
1683         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1684         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1685
1686         * python/service.py (Object::_message_cb): handle exceptions correctly
1687         by sending them over the wire to the calling app.  This makes sure
1688         the client returns immediately instead of waiting the 15 seconds to
1689         timeout.
1690
1691         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1692         Add a test to benchmark how long it takes to introspect a service and 
1693         call a method which returns a large element (pretty fast)
1694
1695         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1696         method which pushes a lot of data
1697
1698 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1699
1700         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1701         reclaim memory outside of the loop and use del istead of just setting
1702         the key to None
1703
1704 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * python/service.py (ObjectType::_reflect_on_signal): Always close
1707         signal tag even when there are no arguments
1708
1709 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * configure.in: Set mono, mono-docs and Qt3 to default
1712         to no instead of auto when building.  These bindings do not
1713         have full time maintainers and will not be supported for the
1714         1.0 release.
1715
1716 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1717
1718         patches from Michael Krivoruchko <misha at sun.com>: 
1719         
1720         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1721         _dbus_connection_message_sent, 
1722         _dbus_connection_send_preallocated_unlocked_no_update, 
1723         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1724         is NULL when calling _dbus_verbose
1725
1726         * configure.in: check for functions getpeerucred and getpeereid
1727
1728         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1729         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1730         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1731         Patch was only tested on Solaris 10 x86 so it might be issues
1732         with other platforms (i.e. BSDs and MacOSX)
1733         
1734
1735 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1736
1737         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1738         instead of marshal basic so we can handle recursive types in a variant
1739
1740         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1741         in variants
1742
1743         * test/glib/test-service-glib.c, test-service-glib.xml
1744         (my_object_echo_variant [EchoVariant], 
1745         my_object_process_variant_of_array_of_ints123
1746         [ProcessVariantOfArrayOfInts123]): 
1747         Add two test methods
1748
1749         * python/introspect_parser.py: New module for parsing introspect
1750         data.
1751
1752         * python/dbus_bindings.pyx:
1753         (various places): when throwing errors fix to use errormsg instead 
1754         of message local variable because Pyrex can get confused with other 
1755         message variables (initial patch by Robert McQueen 
1756         <robert.mcqueen at collabora.co.uk>)
1757         (MessageIter::parse_signature_block): new method for getting the next
1758         block in a signiture.
1759         (MessageIter::append_strict): new method for appending values strictly
1760         using the passed in signature instead of guessing at the type
1761         (MessageItter:: append_dict, append_struct, append_array): use 
1762         signatures to marshal children if the signature is available
1763         
1764         * python/exceptions.py (IntrospectionParserException): new exception
1765
1766         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1767         introspected signatures if available, else we fall back to the
1768         old way of doing things.
1769         (ProxyObject::_introspect_reply_handler ): parse introspection data
1770         
1771         * python/service.py (ObjectType::_reflect_on_method): Properly
1772         terminate <method> if there are no args in the reflection data
1773
1774         * test/python/test-client.py: add tests for talking with the GLib
1775         test server.  This gives us better coverage for introspection since
1776         python to python will always generate arguments as variants.  It also
1777         allows us to test the robustness of the GLib bindings and interlanguage
1778         communications.
1779
1780         
1781 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1782
1783         * bus/driver.c (bus_driver_handle_introspect): Add signals
1784         to the introspect data. (patch from Daniel P. Berrange 
1785         <dan at berrange.com>)
1786
1787         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1788         
1789         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1790         _dbus_connection_run_builtin_filters): Changed these to
1791         be unlock_no_update functions and call 
1792         _dbus_connection_send_unlocked_no_update instead of
1793         dbus_connection_send to avoid locking errors.
1794         
1795         * doc/TODO: Removed the make Ping test TODO
1796         
1797 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1798
1799         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1800         We now copy the message from a DBusError and then free 
1801         the error object befor throwing the error
1802
1803         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1804         DBusBindingOutputMode enum which was causing a warning.
1805         #include <time.h> so using time_t is explicitly defined
1806
1807 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1808
1809         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1810         - dbus/dbus-bus.c
1811         (internal_bus_get): new method that take over the heavy lifting
1812         of dbus_bus_get and adds the ability to get a private connection
1813         to the bus
1814         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1815         interface as in previous versions
1816         (dbus_bus_get_private): new method that is a wrapper to 
1817         internal_bus_get to get a private connection to the bus
1818
1819         - dbus/dbus-bus.h
1820         (dbus_bus_get_private): add as a public libdbus interface
1821
1822         - dbus-1.pc.in: output system_bus_default_address and 
1823         sysconfdir variables so apps can use them when compiling
1824
1825 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1826         * dbus/qt: New Qt bindings
1827
1828 2005-09-12  Waldo Bastian  <bastian@kde.org>
1829
1830         * dbus/dbus-marshal-validate.c,
1831         doc/dbus-specification.xml, test/Makefile.am,
1832         test/test-names.c: allow hyphens in bus names.
1833
1834 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1835
1836         * test/data/auth/fallback.auth-script: we don't
1837         retry the EXTERNAL method when we know its going
1838         to fail anymore.
1839
1840 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1841
1842         * dbus/dbus-connection-internal.h: rename
1843         (add|remove|toggle)_(watch|timeout) to unlocked()
1844         
1845         * dbus/dbus-connection.c: ditto.
1846         
1847         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1848         Update some callers for the renaming.
1849
1850 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1851
1852         * dbus/dbus-auth.c: (record_mechanisms): don't
1853         retry the first auth mechanism because we know
1854         we're just going to get rejected again.
1855         
1856         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1857         Fix thinko ... and what a nasty little bugger to
1858         track down you were ...
1859
1860         * dbus/dbus-connection.c:
1861         (_dbus_connection_add_watch),
1862         (_dbus_connection_remove_watch): add note about
1863         these needing the connection to be locked.
1864         (_dbus_connection_get_dispatch_status_unlocked):
1865         set status to DATA_REMAINS when we queue the
1866         disconnected message.
1867         
1868         * bus/dispatch.c:
1869         (bus_dispatch): fix warning.
1870         (check_existent_service_no_auto_start):
1871         Expect ChildSignaled error too.
1872         (check_existent_hello_from_self): fix another
1873         couple of warnings.
1874         
1875 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1876
1877         Patches from James Willcox <snorp@snorp.net>
1878
1879         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1880
1881         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1882         support array "out" parameters.
1883
1884         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1885         for 16-bit int support.
1886
1887 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1888
1889         * Released 0.50
1890
1891         * Patch from Steve Grubb:
1892         - bus/activation.c (bus_activation_service_reload_test): clean up
1893         some indentation
1894         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1895         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1896         buffer overflows in the test suite.  This is non critical because
1897         it can not be exploited and this code is only run when doing a 
1898         make check.
1899
1900         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1901         - configure.in: Don't check and link against kdecore, only qt headers
1902         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1903         - gcj/org/freedesktop/dbus/Makefile.am:
1904         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1905         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1906         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1907         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1908         - tools/Makefile.am: Add platform extentions to binaries 
1909         (i.e. .exe on windows)
1910
1911         * configure.in: 
1912         - Make it so if no suitable version of python is found we only 
1913         disable building python instead of exiting the configure script
1914         - Require version 2.4 of glib for glib bindings
1915         - Up version to 0.50
1916
1917         * python/__init__.py: Sync version with libdbus to (0,50,0)
1918         
1919 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1920
1921         * dbus/dbus-object-tree.c (find_subtree_recurse):
1922         a couple of optimizations (bug #710):
1923         - do a binary search in the tree
1924         - insert a new child at the right place directly, no need for
1925           qsort anymore
1926         - do the "double alloc" thing when allocating children
1927
1928 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1929
1930         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1931
1932         * python/dbus_bindings.pyx: Memory management foo
1933         (global): remove hacky _user_data_references global list
1934         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1935         tuples. Unref user_data
1936         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1937         (Connection::__del__): Remove and replace with __dealloc__ method
1938         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1939         to keep tuple from being deallocated instead of the global var hack
1940         (Connection::register_object_path): Stuff user_data into a tuple.
1941         Use Py_INCREF to keep tuple from being deallocated instead of the 
1942         global var hack
1943         (Connection::register_fallback): Stuff user_data into a tuple.
1944         Use Py_INCREF to keep tuple from being deallocated instead of the 
1945         global var hack
1946         (GIL_safe_pending_call_notification): Don't unref the message
1947         because it gets unreffed when going out of scope.  Py_XDECREF
1948         the user_data
1949         (PendingCall::__del__): Remove and replace with __dealloc__ method
1950         (PendingCall::set_notify): ref the pending call because we will
1951         need it to stick around for when the notify callback gets called
1952         (Message::__del__): Remove and replace with __dealloc__ method
1953
1954         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1955         gthreads_init to match up with the dbus call
1956
1957         * python/glib.py (init_threads): Changed to threads_init to match
1958         up with gobject.threads_init().  init_threads is kept for backwards
1959         compat but will most likely be deprecated in the future
1960
1961         * test/python/test-client.py: 
1962         - revamp to use Python's unittest functionality
1963         - add async call tests
1964         - setup threads in glib and dbus so we make sure locks are working
1965         
1966 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1967
1968         * python/dbus_bindings.pyx 
1969         (_pending_call_notification, cunregister_function_handler, 
1970         cmessage_function_handler): All callback functions have been rearranged 
1971         to workaround a bug in Pyrex when working with the GIL which is Python's 
1972         global lock when dealing with threads.  They have been split into
1973         a wrapper function (which assumes the name of the old function) and
1974         a _GIL_safe_<function name> function which contains the functionality
1975         of the old function.  This ensures that Pyrex does not write code
1976         the lock is released.
1977         
1978
1979 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1982         GIL global lock when calling back into Python
1983
1984 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * Release 0.36.2
1987
1988         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1989
1990         * bus/policy.c (bus_policy_allow_user): change default "user is
1991         allowed" to be "user has same uid as the bus itself"; any
1992         allow/deny rules will override.
1993
1994         * bus/session.conf.in: don't allow all users, since now by default
1995         the user that ran the bus can connect.
1996
1997 2005-08-26  Colin Walters  <walters@verbum.org>
1998
1999         * tools/dbus-print-message.c (print_message): Flush stdout
2000         after printing a message, so that redirecting to a file, then
2001         hitting Ctrl-C works.
2002
2003 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2004
2005         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2006         (EmptyMessage): new class that subclasses Message.  This is a workaround
2007         to a Pyrex bug that fails to call __del__ when the Message object goes out
2008         of scope.  For some reason subclassing Message fixes this bug
2009         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2010         - s/Message(_create=0)/EmptyMessage everywhere else
2011         
2012         * test/python/test-{server|client}.py: add the python/.libs directory
2013         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2014         get picked up from the system
2015
2016 2005-08-25  Colin Walters  <walters@verbum.org>
2017
2018         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2019         to Ryan Lortie for the suggestion.
2020
2021 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2022
2023         * test/python: Add python regression test
2024
2025         * configure.in: Add test/python/Makefile
2026
2027         * test/Makefile.am: Add the python directory to SUBDIRS
2028
2029 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2030
2031         * Release 0.36.1
2032
2033         * python/_dbus.py: 
2034         (Interface::connect_to_signal): propigate keywords for match on args
2035         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2036
2037         * python/proxies.py (ProxyObject::connect_to_signal):
2038         propigate keywords for match on args
2039
2040         * Makefile.am: point everything to pyexecdir since python borks
2041         on multilib
2042
2043 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2044
2045         * Release 0.36
2046
2047 2005-08-23  Colin Walters  <walters@verbum.org>
2048
2049         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2050
2051 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2052
2053         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2054         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2055         of defining DBusConnection ourselves.
2056
2057 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2058
2059         * python/dbus.pth: New path file to fix up problems when installing
2060         c libraries to lib64 and python files to lib.
2061
2062         * python/Makefile.am: install dbus.pth in the correct spot
2063
2064 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2065         * ChangeLog: clean up my last entry a bit
2066
2067         * doc/introspect.xsl: New stylesheet for converting introspection data
2068         into browser renderable xhtml. Contributed by Lennart Poettering.
2069
2070         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2071         Poettering.
2072
2073         * doc/dbus-tutorial.xml: 
2074         - Add Colin Walter to the Authors section for authoring the GLib
2075         section
2076         - Add descriptions of the new signature and type functionality
2077         in the Python complex type mapping section
2078         - Add a sidenote on the new args matching functionality in 
2079         the Python bindings
2080         - Fixed up some of the examples to use the gobject.MainLoop
2081         instead of gtk.main
2082         
2083         * python/_dbus.py:
2084         (Bus::_create_args_dict): New. Converts a hash of arg matches
2085         to a more useable format
2086         (Bus::add_signal_receiver): add a **keywords parameter for catching
2087         arg match parameters
2088         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2089         arg match parameters
2090         
2091         * python/matchrules.py:
2092         (MatchTree::exec_matches): Check for arg matches
2093         (SignalMatchRule::add_args_match): New method
2094         (SignalMatchRule::execute): Added args_list parameter as an optimization
2095         so we don't have to marshal the args more than once
2096         (SignalMatchRule::match_args_from_list): New method that checks to see
2097         if the rule's arg matches match an argument list.  Only arguments
2098         set in the rule are checked.
2099         (SignalMatchRule::match_args_from_rule): New method that checks to see
2100         if the rule's arg matches match another rule's.  All args have to match
2101         in order for this method to return true.  If either rule has more args
2102         then it is not a match.
2103         (SignalMatchRule::is_match): Add args match
2104         (SignalMatchRule::repr): Add args to the final output if they exist
2105
2106 2005-08-17  Ross Burton  <ross@burtonini.com>
2107
2108         * glib/dbus-gproxy.c:
2109         (dbus_g_proxy_call_no_reply): unref the message once sent.
2110         (dbus_g_proxy_call): protect against NULL proxy.
2111
2112 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2113
2114         * python/__init__.py: Version updated (0, 43, 0)
2115         
2116         * python/dbus_bindings.pyx: 
2117         - Fixed type objects to have self passed into __init__
2118         - Added the Variant type
2119         - Add the ability to specify types or signatures for Array, Variant 
2120         and Dictionary
2121         (Connection::send_with_reply_handlers): return a PendingCall object
2122         (_pending_call_notification): handle the case when an error is returned 
2123         without an error message in the body
2124         (MessageIter::get_boolean): return True or False instead of an integer
2125         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2126         and add checks for objects with embeded signatures or types (Array, 
2127         Variant and Dictionary)
2128         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2129         (MessageIter::append_dict): handle embeded types or signatures
2130         (MessageIter::append_array): handle embeded types or signatures
2131         (MessageIter::append_variant): new method
2132         
2133         * python/proxies.py:
2134         (DeferedMethod): New. Dummy executable object used when queuing calls 
2135         blocking on introspection data
2136         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2137         or shorter timeouts for method calls
2138         (ProxyObject): Add first pass at an introspection state machine
2139         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2140         introspection. 
2141         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2142         the usual mechanisms for sending messages.  This is to avoid a deadlock
2143         where the Intospect call would be queued waiting for the Introspect 
2144         call to finish ;-)
2145         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2146         when introspection returns with no error
2147         (ProxyObject::_introspect_error_handler): New.  This method is called 
2148         when introspection encounters an error
2149         (ProxyObject::__getattr__): Code to handle different introspection 
2150         states.  Queue async calls or block blocking calls if we are 
2151         introspecting.  Pass through as normal if we are not or are done with 
2152         introspecting.
2153         
2154         * python/service.py: Import signal and method from decorators.py
2155
2156         * python/types.py: Add Variant type
2157
2158 2005-08-16  Colin Walters  <walters@verbum.org>
2159
2160         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2161         DBusError message is NULL.
2162
2163 2005-08-09  Havoc Pennington  <hp@redhat.com>
2164
2165         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2166         malloc'd copy of the name parameter
2167
2168 2005-08-09  Havoc Pennington  <hp@redhat.com>
2169
2170         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2171         warning if the reply serial is set to 0
2172
2173 2005-08-04  Colin Walters  <walters@verbum.org>
2174
2175         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2176         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2177         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2178         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2179         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2180         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2181         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2182         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2183         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2184         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2185         
2186         Prefix name with _ to ensure they're not exported.  All callers
2187         updated.
2188
2189         * glib/dbus-gvalue.c (typecode_to_gtype)
2190         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2191         (signature_iter_to_g_type_dict)
2192         (signature_iter_to_g_type_array)
2193         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2194         (dbus_gtypes_from_arg_signature):
2195         Move to dbus-gsignature.c.
2196
2197         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2198         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2199         (dbus_binding_tool_output_glib_client): Ditto.
2200
2201         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2202         and dbus-gsignature.h
2203
2204         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2205         unused variable.
2206
2207 2005-08-03  Colin Walters  <walters@verbum.org>
2208
2209         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2210         catch any incompatible changes accidentally made.
2211
2212 2005-08-03  Havoc Pennington  <hp@redhat.com>
2213
2214         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2215         typo, from Julien Puydt
2216
2217         * bus/connection.c (bus_connection_disconnected): we were always
2218         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2219
2220 2005-08-01  Colin Walters  <walters@verbum.org>
2221
2222         Patch from Joe Markus Clarke:   
2223         
2224         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2225         use-after-free.
2226
2227 2005-08-01  Colin Walters  <walters@verbum.org>
2228         
2229         Patch from Joe Markus Clarke:   
2230         
2231         * tools/dbus-send.c (main): 
2232         
2233         Don't use C99 style initializers (bug #3933).
2234         
2235 2005-08-01  Colin Walters  <walters@verbum.org>
2236
2237         Patch from Joe Markus Clarke:   
2238
2239         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2240         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2241         * glib/dbus-gobject.c (write_interface):
2242
2243         Don't use C99 style initializers (bug #3933).
2244
2245 2005-07-31  Havoc Pennington  <hp@redhat.com>
2246
2247         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2248         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2249
2250 2005-07-30  Havoc Pennington  <hp@redhat.com>
2251
2252         * fix a bunch of Doxygen warnings and mistakes
2253
2254 2005-07-30  Havoc Pennington  <hp@redhat.com>
2255
2256         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2257         DBUS_BUILD_TESTS since it's now used in production code
2258
2259 2005-07-29  Havoc Pennington  <hp@redhat.com>
2260
2261         * test/glib/test-profile.c (write_junk): initialize the junk
2262         buffer so valgrind doesn't have a breakdown
2263
2264 2005-07-29  Havoc Pennington  <hp@redhat.com>
2265
2266         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2267         (match_rule_matches): remove unused arg
2268         (test_matching): add tests for match_rule_matches()
2269
2270         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2271         do arg0='foo' arg5='bar' in the match rules
2272         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2273
2274         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2275
2276 2005-07-29  Ross Burton  <ross@openedhand.com>
2277
2278         * dbus/dbus-connection.c:
2279         Don't create a DBusCondVar which is never used.
2280
2281 2005-07-27  Ross Burton  <ross@openedhand.com>
2282
2283         * dbus/dbus-message.c:
2284         Reduce the size of the maximum cached message to 10K.
2285
2286 2005-07-25  Ross Burton  <ross@openedhand.com>
2287
2288         * glib/dbus-gproxy.c:
2289         Remove matches when all proxies are unregistered.
2290
2291 2005-07-24  Colin Walters  <walters@verbum.org>
2292
2293         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2294         typedata; recursive arrays won't have it.
2295
2296         * test/glib/test-dbus-glib.c:
2297         * test/glib/test-service-glib.c:
2298         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2299         
2300 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2301
2302         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2303         proxies.py, service.py: Cleanup of code after running it through the
2304         pyflakes code checker mostly dealing with undefined names.  
2305         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2306
2307 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2308
2309         * NEWS: Update to 0.35.2
2310
2311 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2312
2313         * python/_dbus.py: Remove import of the dbus.services
2314         module as it no longer exists (patch from Dimitur Kirov)
2315
2316         * python/service.py (Object::__init__): Fixed typo
2317         s/name/bus_name (patch from Dimitur Kirov)
2318
2319         * python/examples/example-signal-emitter.py: import dbus.glib
2320         to get the main loop and use glib mainloop instead of gtk so
2321         X doesn't have to be running.
2322
2323         * python/examples/example-signal-recipient.py: import dbus.glib
2324         to get the main loop and use glib mainloop instead of gtk so
2325         X doesn't have to be running. Import the decorators module
2326         directly.
2327
2328         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2329         didn't pick up on but are needed to build
2330
2331         * configure.in: upped version to 0.35.2
2332
2333         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2334         added Colin Walters' SELinux API rename patch from head 
2335         s/unix sercurity context/selinux security context/
2336
2337 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2338
2339         * python/Makefile.am: dbus_binding.pxd.in should be included 
2340         in EXTRA_DIST not dbus_binding.pxd
2341         fix up $(srcdir) hopefully for the last time
2342
2343         * NEWS: Update to 0.35.1
2344
2345 2005-07-16  Colin Walters  <walters@verbum.org>
2346
2347         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2348         from bus_driver_handle_get_connection_unix_security_context.  Update for
2349         error usage.
2350         (message_handlers): Update for renames.
2351
2352         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2353         _dbus_string_init failure correctly.
2354         (bus_selinux_append_context): Convert SID to context.  Append it
2355         as a byte array.
2356         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2357         hasn't been called.
2358
2359         * bus/selinux.h: Update prototype.
2360
2361         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2362         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2363
2364 2005-07-15  Colin Walters  <walters@verbum.org>
2365
2366         * doc/TODO: Add note about convenience wrappers.
2367
2368 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2369
2370         * NEWS: Update to 0.35
2371
2372 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2373
2374         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2375         so distcheck doesn't fail
2376
2377         * glib/examples/Makefile.am: Add example-service.xml and 
2378         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2379
2380         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2381         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2382
2383         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2384         compiler looks in the right places during distcheck
2385
2386 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2387
2388         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2389         to fail
2390
2391 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2392
2393         * python/examples/example-service.py,
2394         python/examples/example-signal-emitter.py: Fixed up examples
2395         for API changes
2396
2397 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2398
2399         * python/__init__.py: Upped to version (0,42,0) because of
2400         the API change
2401
2402 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2403
2404         * ChangeLog: fix date in last entry
2405
2406         * configure.in, bus/system.conf.in: add the ability to configure 
2407         the system bus user at compiletime with the --with-dbus-user flag
2408         (patch from Kristof Vansant)
2409
2410 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2411
2412         * bus/dispatch.c, test/test-service.c: Add testcase
2413         for sending messages to oneself (TODO item).
2414
2415         * python/service.py (class Object): Swap ordering of bus_name 
2416         and object_path parameters to better support inheritance.
2417
2418         * doc/dbus-tutorial.xml: change Python docs to reflect change
2419         in parameter ordering and fix the inheritance section.
2420
2421         * doc/TODO: remove sending message to oneself TODO item
2422
2423 2005-07-15  Ross Burton  <ross@openedhand.com>
2424
2425         * glib/dbus-gproxy.c:
2426         Fix a leak when calling methods via the proxy.
2427
2428 2005-07-15  Colin Walters  <walters@verbum.org>
2429
2430         * bus/selinux.c (bus_selinux_append_context): Wrap in
2431         HAVE_SELINUX.
2432
2433 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2434
2435         * python/_dbus.py (Bus::remove_signal_receiver):
2436         don't add a callback to the match if none has been passed in
2437         
2438         * python/matchrules.py (SignalMatchTree::remove): if the rule
2439         being matched does not have a callback treat it as a wildcard
2440         fix matching logic
2441
2442         * doc/dbus-tutorial.xml: Add Python tutorial
2443
2444 2005-07-14  Colin Walters  <walters@verbum.org>
2445
2446         * bus/driver.c
2447         (bus_driver_handle_get_connection_unix_security_context): New function.
2448         (message_handlers): Add.
2449
2450         * bus/selinux.c (bus_selinux_append_context): New function; appends
2451         security context to message.
2452
2453         * bus/selinux.h: Prototype.
2454
2455         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2456
2457 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2458
2459         * bus/activation.c: clean up all tabs to be 8 spaces 
2460         (bus_activation_activate_service): make sure we clean up
2461         if activation fails
2462
2463         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2464         (check_shell_fail_service_auto_start): New function
2465         tests to make sure we get fail properly when trying to auto start a service
2466         with a faulty command line
2467         (check_shell_service_success_auto_start): New function tests to make sure
2468         auto started services get the arguments on the command line
2469
2470         * test/test-shell-service.c: Added service for testing auto-starting with 
2471         command line arguments
2472
2473         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2474         test/data/valid-service-files/debug-shell-echo-success.service.in:
2475         Added service files for testing auto-starting with command line arguments
2476
2477         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2478
2479 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2480
2481         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2482         
2483         * dbus/Makefile.am: added new files to build.
2484
2485         * bus/activation.c (bus_activation_activate_service): support
2486         activation commands with parameters.
2487
2488         * test/shell-test.c: added test program for the shell parsing
2489         code.
2490
2491 2005-07-13  David Zeuthen  <davidz@redhat.com>
2492
2493         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2494         64 bit signed and unsigned parameters
2495
2496 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2497
2498         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2499
2500         * python/service.py (class Name): renamed BusName to make it clearer
2501         what the object is for (a name on the bus)
2502
2503         * python/examples/example-service.py,
2504         python/examples/example-signal-emitter.py: change the Name object to
2505         BusName
2506
2507 2005-07-12  Colin Walters  <walters@verbum.org>
2508
2509         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2510
2511         * tools/dbus-launch.c: Include sys/select.h.
2512
2513 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2514         * python/dbus_bindings.pyx.in: removed
2515
2516         * python/dbus_bindings.pyx: Added.
2517         - Fixed some memleaks (patch from 
2518         Sean Meiners <sean.meiners@linspireinc.com>)
2519         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2520         own pxd file (Pyrex definition)
2521         - Broke out glib dependancies into its own pyx module
2522         
2523         * python/dbus_bindings.pdx: Added.
2524         - Defines C class Connection for exporting to other modules
2525
2526         * python/dbus_glib_bindings.pyx: Added.
2527         - New module to handle lowlevel dbus-glib mainloop integration
2528
2529         * python/glib.py: Added.
2530         - Registers the glib mainloop when you import this module
2531
2532         * python/services.py: Removed (renamed to service.py)
2533         
2534         * python/service.py: Added.
2535         - (class Server): renamed Name
2536
2537         * python/__init__.py: Bump ro version (0,41,0)
2538         -don't import the decorators or service module
2539         by default.  These now reside in the dbus.service namespace
2540
2541         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2542         setup function on creation 
2543
2544         * python/examples/example-service.py,
2545         python/examples/example-signal-emitter.py: update examples
2546
2547         * python/examples/gconf-proxy-service.py,
2548         python/examples/gconf-proxy-service2.py: TODO fix these up
2549
2550         * doc/TODO: Addition
2551         - Added a Python Bindings 1.0 section
2552         - added "Add match on args or match on details to match rules"
2553
2554
2555 2005-07-12  Colin Walters  <walters@verbum.org>
2556
2557         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2558         (statemachine-glue.h): 
2559         * glib/examples/Makefile.am (example-service-glue.h) 
2560         (example-signal-emitter-glue.h): 
2561         * glib/Makefile.am (dbus-glib-error-switch.h): 
2562         Add libtool --mode=execute so we use the built library instead
2563         of any installed one.
2564
2565 2005-07-11  Colin Walters  <walters@verbum.org>
2566
2567         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2568         (dbus_g_value_types_init): Remove assertion.
2569         (dbus_g_value_get_g_type, dbus_g_value_open)
2570         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2571         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2572         functions related to DBusGValue.  Now we marshal/demarshal
2573         structures as GValueArray.
2574         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2575         structures.
2576         (signature_iter_to_g_type_array): Don't call
2577         signature_iter_to_g_type_struct.
2578         (signature_iter_to_g_type_struct): Delete.
2579         (dbus_gvalue_to_signature): Delete.
2580         (dbus_gvalue_to_signature): New function with same name as other
2581         one; we can convert structures to signatures.
2582         (demarshal_valuearray): New function.
2583         (get_type_demarshaller): Use it.
2584         (demarshal_recurse): Delete.
2585         (marshal_proxy): New function.
2586         (marshal_map): Warn if we can't determine signature from type.
2587         (marshal_collection_ptrarray): Ditto.
2588         (marshal_collection_array): Ditto.
2589         (get_type_marshaller): Use marshal_valuearray.
2590         (marshal_recurse): Delete.
2591         (_dbus_gvalue_test): Add some tests.
2592
2593         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2594         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2595         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2596         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2597         (dbus_g_value_free): Remove prototypes.
2598
2599         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2600         G_TYPE_VALUE_ARRAY.
2601
2602         * glib/examples/example-service.c:
2603         * glib/examples/example-client.c: Implement GetTuple.
2604
2605         * test/glib/test-dbus-glib.c:
2606         * test/glib/test-service-glib.c:
2607         * test/glib/test-service-glib.xml: Add structure tests.
2608
2609 2005-07-10  Colin Walters  <walters@verbum.org>
2610
2611         * doc/TODO: Knock off some GLib items with this patch.
2612
2613         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2614         (_dbus_gvalue_signals_error): New functions.
2615
2616         * glib/dbus-gvalue-utils.h: Prototype them.
2617
2618         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2619         and change to not output const/retval flags for input args.  All
2620         callers updated.
2621         (invoke_object_method): Refactor to handle return values.  Add
2622         some more comments in various places.  Remove debug g_print.
2623
2624         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2625
2626         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2627         Handle G_TYPE_NONE.
2628         (compute_gsignature): New function; refactored from code from
2629         compute_marshaller and compute_marshaller_name.  Enhance to
2630         handle return values and async ops more cleanly.  Update for
2631         async ops returning NONE instead of BOOLEAN.
2632         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2633         and output appropriate string.
2634         (generate_glue): Handle return value annotation.  Also don't dump
2635         constness flag for input arguments.
2636
2637         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2638         files shared between installed library and utilities.
2639         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2640         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2641         binding tool can access gtype utility functions.
2642
2643         * test/glib/test-service-glib.c: 
2644         * test/glib/test-service-glib.xml: 
2645         * test/glib/test-dbus-glib.c: Add some tests for return values.
2646
2647 2005-07-09  Colin Walters  <walters@verbum.org>
2648
2649         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2650         argument if available, not method.
2651
2652         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2653         (invoke_object_method): First, remove some redundant
2654         GValues (object_value, error_value) in favor of working on
2655         array directly.  Second, rework constness to be less buggy.
2656         Now we iterate directly over the argument metadata instead
2657         of parallel iterating over output signature and metadata.
2658
2659         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2660
2661         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2662         annotation on input args.
2663         
2664 2005-07-09  Colin Walters  <walters@verbum.org>
2665
2666         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2667         Define.
2668
2669         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2670         annotation.
2671
2672         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2673         (method_dir_signature_from_object_info): Handle arg_iterate change.
2674         (write_interface): Ditto.
2675         (lookup_object_info): Don't barf if format_version is > 0.
2676         (invoke_object_method): Handle arg constness.
2677
2678         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2679         (arg_info_new): Create.
2680         (arg_info_unref): Destroy.
2681         (arg_info_get_annotations, arg_info_get_annotation) 
2682         (arg_info_add_annotation): New functions.
2683
2684         * glib/dbus-gidl.h: Prototype them.
2685
2686         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2687         args, disallow them in properties.
2688         (parse_annotation): Handle arg annotations.
2689
2690         * test/glib/test-service-glib.xml: 
2691         * test/glib/test-service-glib.c: Update to make some methods
2692         const.
2693
2694 2005-07-08  Colin Walters  <walters@verbum.org>
2695
2696         * test/glib/test-service-glib.xml: 
2697         * test/glib/test-service-glib.c:
2698         * test/glib/test-dbus-glib.c: Test a{sv}.
2699
2700         * glib/examples/statemachine/statemachine.c:
2701         * glib/examples/statemachine/statemachine-server.c:
2702         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2703         add progress bar, etc.
2704
2705         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2706         needed anymore due to generic array/map marshalling.
2707         (dbus_g_value_types_init): Don't register basic arrays or the
2708         string/string hash.
2709         (dbus_gtype_from_signature_iter): Don't try to recurse into
2710         variants.
2711         (dbus_gtype_to_signature): Check collection/map before type
2712         metadata.
2713         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2714         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2715         generic map creation/append functions instead of hash table
2716         specifically.
2717         (get_type_demarshaller): Handle maps.
2718         (demarshal_collection): Dispatch on collection type to either
2719         demarshal_collection_ptrarray or demarshal_collection_array.
2720         (get_type_marshaller): Handle maps.
2721         (marshal_collection): Dispatch collection type to either
2722         marshal_collection_ptrarray or marshal_collection_array.
2723         (_dbus_gvalue_test): New test.
2724
2725         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2726         (hash_free_from_gtype): Use it to free GValues.
2727         (hashtable_append): New function.
2728         (ptrarray_append): Fix prototype.
2729         (slist_append): Ditto.
2730         (_dbus_gvalue_utils_test): Extend tests.
2731
2732         * glib/dbus-gtype-specialized.c
2733         (dbus_g_type_specialized_init_append): Renamed from
2734         dbus_g_type_specialized_collection_init_append.  Remove const from
2735         value, since we steal it.
2736         (dbus_g_type_specialized_map_append): New function.
2737
2738         * glib/dbus-gtype-specialized.h: Update prototypes.
2739         Add DBusGTypeSpecializedMapAppendFunc.
2740
2741         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2742         _dbus_gvalue_test.
2743         
2744         * glib/dbus-gtest.h: Prototype it.
2745
2746 2005-07-08  Ross Burton  <ross@openedhand.com>
2747
2748         * dbus/dbus-glib.h:
2749         Add DBysGAsyncData for the async bindings.
2750
2751         * glib/dbus-binding-tool-glib.c:
2752         Re-enable the async bindings.
2753
2754         * test/glib/test-dbus-glib.c:
2755         Add a test for the generated async bindings.
2756
2757 2005-07-08  Colin Walters  <walters@verbum.org>
2758
2759         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2760         connection concept.
2761         
2762 2005-07-08  Colin Walters  <walters@verbum.org>
2763         
2764         * tools/Makefile.am: Kill of print-introspect in favor of using
2765         dbus-send --print-reply=literal.
2766
2767         * test/glib/test-service-glib.xml: 
2768         * test/glib/test-service-glib.c (my_object_get_objs): New test
2769         for "ao".
2770
2771         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2772         (main): Test GetObjs.
2773
2774         * glib/examples/statemachine/Makefile.am:
2775         * glib/examples/statemachine/sm-marshal.list:
2776         * glib/examples/statemachine/statemachine-client.c:
2777         * glib/examples/statemachine/statemachine-server.c:
2778         * glib/examples/statemachine/statemachine-server.xml:
2779         * glib/examples/statemachine/statemachine.c:
2780         * glib/examples/statemachine/statemachine.h:
2781         * glib/examples/statemachine/statemachine.xml:
2782
2783         New example.
2784
2785         * glib/examples/example-service.c (main): Move invocation
2786         of dbus_g_object_type_install_info earlier, to emphasize it
2787         should only be done once.
2788
2789         * glib/examples/example-signal-emitter.c (main): Ditto.
2790
2791         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2792
2793         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2794         (dbus_gvalue_marshal): Update prototypes.
2795
2796         * glib/dbus-gvalue.c: Update all marshalling functions to take
2797         const GValue instead of GValue.
2798         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2799         types.
2800         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2801         change.
2802         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2803         Return a newly-allocated string.
2804         (demarshal_proxy, demarshal_object_path, demarshal_object)
2805         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2806         we get the wrong types from message.
2807         (get_type_demarshaller): New function, extracted from
2808         dbus_gvalue_demarshal.
2809         (demarshal_collection): New function, demarshals generic
2810         collection.
2811         (dbus_gvalue_demarshal): Just invoke result of
2812         get_type_demarshaller.  Throw error if we don't have one.
2813         (marshal_garray_basic): Abort on OOM.
2814         (get_type_marshaller): New function, extracted from
2815         dbus_gvalue_marshal.
2816         (collection_marshal_iterator, marshal_collection): New functions;
2817         implements generic marshalling for an iteratable specialized
2818         collection.
2819         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2820
2821         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2822         G_TYPE_STRING.
2823         (ptrarray_value_from_gvalue): Ditto.
2824         (ptrarray_append, ptrarray_free): New functions.
2825         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2826         (slist_append, slist_end_append, slist_free): New functions.
2827         (dbus_g_type_specialized_builtins_init): Add append fuctions
2828         for GPtrArray and GSList.  Register GSList.
2829         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2830
2831         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2832         New.
2833         (dbus_g_type_specialized_collection_init_append)
2834         (dbus_g_type_specialized_collection_append)
2835         (dbus_g_type_specialized_collection_end_append): Prototype.
2836         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2837         end_append_func.
2838
2839         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2840         (dbus_g_type_specialized_collection_append) 
2841         (dbus_g_type_specialized_collection_end_append): New functions.
2842         (dbus_g_type_map_value_iterate): Take const GValue.
2843         (dbus_g_type_collection_value_iterate): Ditto.
2844
2845         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2846         _dbus_gvalue_utils_test.
2847         
2848         * glib/dbus-gtest.h: Prototype it.
2849
2850         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2851         using uninitialized owner_list.
2852         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2853         public API.
2854         (dbus_g_proxy_end_call_internal): Update to use error set
2855         from dbus_gvalue_demarshal instead of setting it here.
2856         (dbus_g_proxy_begin_call): Move return_if_fail here.
2857
2858         * glib/dbus-gobject.c (write_interface): Update for
2859         dbus_gtype_to_signature returning new string.
2860
2861         * configure.in: Add glib/examples/statemachine.
2862
2863 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2864
2865         * configure.in: Add a configure option, --with-console-auth-dir
2866         
2867         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2868         new setting.  Patch from Kay Sievers.
2869
2870 2005-07-06  Colin Walters  <walters@verbum.org>
2871
2872         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2873         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2874         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2875         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2876         Delete in favor of dbus_g_proxy_begin_call and
2877         dbus_g_proxy_cancel_call.
2878         (DBusGProxyCall, DBusGProxyCallNotify): New.
2879         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2880         data, and destroy function.  This replaces
2881         dbus_g_pending_call_set_notify.
2882         (dbus_g_proxy_cancel_call): Prototype.
2883         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2884
2885         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2886         pending_calls map.
2887         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2888         internal proxy for calls to the bus. Remove
2889         pending_nameowner_calls, now the internal proxy keeps track.
2890         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2891         pending_nameowner_calls.
2892         (got_name_owner_cb): Update prototype, and use
2893         dbus_g_proxy_end_call.
2894         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2895         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2896         favor of using internal proxy.
2897         (dbus_g_proxy_manager_unregister): Update to use
2898         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2899         (dbus_g_proxy_init): Initialize pending calls map.
2900         (dbus_g_proxy_constructor): New.
2901         (dbus_g_proxy_class_init): Add get/set property functions,
2902         constructor, and add NAME, PATH, and INTERFACE properties.
2903         (cancel_pending_call): New function.
2904         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2905         cancel them.
2906         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2907         (GPendingNotifyClosure): New structure.
2908         (d_pending_call_notify, d_pending_call_free): Moved here from
2909         dbus-glib.c.
2910         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2911         ordering.
2912         (manager_begin_bus_call): New internal function for talking to
2913         internal bus proxy.
2914         (dbus_g_proxy_new): Construct object using GObjet properties.
2915         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2916         Create closure of same, and insert call into map of pending calls.
2917         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2918         call.  Look up pending call in current set.  Remove it when we've
2919         completed.
2920         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2921         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2922         and destroy function directly.
2923         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2924         (dbus_g_proxy_call): Invoke with NULL callback.
2925         (dbus_g_proxy_cancel_call): New function, replaces
2926         dbus_g_pending_call_cancel.
2927
2928         * glib/dbus-gparser.c (validate_signature): Fix call to
2929         dbus_set_g_error.
2930
2931         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2932         New quark for attaching metadata to GType.
2933         (info_hash): Delete.
2934         (lookup_object_info): Look up using quark.
2935         (dbus_g_object_type_install_info): Check that a type is classed,
2936         not that it's an object.  Also just install type data using quark
2937         instead of using global hash.
2938
2939         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2940         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2941         (GPendingNotifyClosure): Delete.
2942         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2943         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2944
2945         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2946         client method generation until we can fix it...
2947         
2948         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2949         (load_from_service_thread_func): Ditto.
2950
2951         * tools/dbus-names-model.c (struct NamesModel): Hold
2952         DBusGProxyCall.
2953         (have_names_notify): Update prototype, use
2954         dbus_g_proxy_cancel_call.
2955         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2956
2957         * tools/dbus-monitor.c (filter_func): Update for print_message
2958         API change.
2959
2960         * test/glib/test-dbus-glib.c: Add more tests for async
2961         invocations.  Update many begin_call/end_call pairs to just use
2962         dbus_g_proxy_call.
2963
2964         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2965         allows us to dump print-introspect.c.
2966
2967         * tools/dbus-print-message.h (print_message): Add literal argument
2968         to print_message which is intended to allow printing arguments without
2969         metadata like "string=".
2970
2971         * tools/dbus-print-message.c (print_iter): Add literal argument.
2972         (print_message): Allow printing string messages literally.
2973
2974 2005-07-05  Colin Walters  <walters@verbum.org>
2975
2976         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2977         Remove value refcount leak, original patch from Jorn Baayen
2978         <jorn@openedhand.com>.  Also remove useless extra value in favor
2979         of prepending to value array directly.
2980
2981 2005-07-02  Colin Walters  <walters@verbum.org>
2982
2983         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2984
2985 2005-07-01  Colin Walters  <walters@verbum.org>
2986
2987         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2988         
2989         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2990         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2991         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2992         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2993
2994 2005-06-30  Colin Walters  <walters@verbum.org>
2995
2996         * test/glib/test-dbus-glib.c:
2997         * test/glib/test-service-glib.c:
2998         * test/glib/test-service-glib.xml: Update tests for new error
2999         setting bits, also add async tests (patch from Ross Burton).
3000
3001         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3002         DBUS_GLIB_THREADS_LIBS.
3003
3004         * glib/dbus-gproxy.c (get_name_owner)
3005         (dbus_g_pending_call_end_valist): Ditto.
3006
3007         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3008         domain (GQuark) to DBusGErrorInfo.  
3009         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3010         quark in error_metadata.  Take message interface as default
3011         error message interface.
3012         (gerror_to_dbus_error_message): Pass message interface.
3013         (dbus_set_g_error): Resurrected.
3014         (dbus_g_error_info_free): New function.
3015         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3016         of _peek to actually create the object class if it hasn't been
3017         created yet.
3018         (dbus_g_error_domain_register): New function.
3019
3020         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3021
3022         * glib/dbus-gparser.c (validate_signature): Ditto.
3023
3024         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3025         (dbus_g_error_domain_register): Prototype.
3026
3027         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3028         Update tests.
3029
3030 2005-06-29  Colin Walters  <walters@verbum.org>
3031
3032         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3033         DBUS_TYPE_G_OBJECT_PATH.
3034
3035         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3036         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3037         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3038         (dbus_g_object_path_get_g_type): New function.
3039         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3040         to DBUS_TYPE_G_OBJECT_PATH by default.
3041         (demarshal_proxy): Remove unused name variable.
3042         (demarshal_object_path, marshal_object_path): New functions.
3043         (demarshal_proxy_array, marshal_proxy_array): Delete.
3044         
3045         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3046         DBUS_TYPE_G_OBJECT_PATH to char *.
3047         (dbus_g_type_get_lookup_function): Map builtin
3048         DBUS_TYPE_G_OBJECT_PATH.
3049
3050         * test/glib/test-dbus-glib.c
3051         * test/glib/test-service-glib.c (my_object_objpath): 
3052         Adapt tests to new object path marshalling.
3053
3054 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3055
3056         * configure.in: force check for Python >= 2.4
3057
3058 2005-06-29  Colin Walters  <walters@verbum.org>
3059         
3060         Patch from Ross Burton <ross@openedhand.com>
3061         
3062         * glib/dbus-gobject.c (invoke_object_method): Unset object
3063         value in all cases, not only in async case.
3064
3065 2005-06-29  Colin Walters  <walters@verbum.org>
3066
3067         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3068         name_call for keeping track of any outgoing GetNameOwner call.
3069         Also add for_owner and associated.
3070         (struct _DBusGProxyManager): Add owner_names, which is hash table
3071         that maps a base name to a list of names it owns (that we're
3072         interested in).  Add pending_nameowner_calls which is a list of
3073         all outstanding GetNameOwner; avoids us having to iterate over
3074         every proxy.  Add unassociated_proxies which keeps track of name
3075         proxies with no associated name owner.
3076         (dbus_g_proxy_manager_unref): Destroy owner_names.
3077         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3078         name refcounts.
3079         (find_name_in_info, name_owner_foreach)
3080         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3081         (dbus_g_proxy_manager_monitor_name_owner)
3082         (dbus_g_proxy_manager_unmonitor_name_owner)
3083         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3084         New functions; they manipulate the owner_names mapping.
3085         (got_name_owner_cb): New function.
3086         (get_name_owner): New function, extracted from
3087         dbus_g_proxy_new_for_name_owner.
3088         (dbus_g_proxy_manager_register): For now we need to keep track of
3089         all NameOwnerChanged.  Also if the proxy is for a name, if we
3090         don't already know the name owner, queue a new GetNameOwner
3091         request and add it to our list of unassociated proxies.  Otherwise
3092         inc the refcount.
3093         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3094         cancel any pending GetNameOwner call, etc.
3095         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3096         the owner_names mapping to look up the current names for the
3097         signal source, and dispatch to any proxies for that name.
3098         (dbus_g_proxy_new): Initialize new members.
3099         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3100         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3101         (dbus_g_pending_call_end_valist): New function, extracted from
3102         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3103         but want to use the GLib infrastructure.  Also note how many
3104         arguments in reply were over.
3105         (dbus_g_pending_call_end): New function, just call
3106         dbus_g_pending_call_end_valist.
3107         (dbus_g_proxy_end_call_internal): Just call
3108         dbus_g_pending_call_end_valist.
3109
3110         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3111         of builtin marshaller for STRING_STRING_STRING.
3112
3113         * test/glib/test-dbus-glib.c: 
3114         * test/glib/test-service-glib.c:
3115         * test/glib/test-service-glib.xml:
3116         Extend tests to cover name proxies, destruction of owner proxies,
3117         etc.
3118         
3119         * glib/examples/example-signal-recipient.c
3120         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3121         
3122         * tools/dbus-send.c (main): Print D-BUS error name in addition
3123         to message.
3124
3125 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3126
3127         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3128         cmessage_function_handler): Patch from 
3129         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3130         by using the Py_GILState_Ensure/Release to synchronize with the
3131         python runtime.
3132         
3133 2005-06-28  Ray Strode  <rstrode@redhat.com>
3134
3135         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3136         babysitter helper process on last unref, bug #2813.
3137
3138 2005-06-27  Colin Walters  <walters@verbum.org>
3139
3140         * test/glib/test-dbus-glib.c: 
3141         * test/glib/test-service-glib.c:
3142         * test/glib/test-service-glib.xml:
3143         Test hash table signal emitting.
3144
3145         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3146         types to their fundamental basis types, since this is what
3147         marshallers operate on.  Also add an entry for VOID__BOXED.
3148         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3149
3150 2005-06-26  Havoc Pennington  <hp@redhat.com>
3151
3152         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3153         from Don Park
3154
3155 2005-06-26  Colin Walters  <walters@verbum.org>
3156
3157         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3158         (dbus_g_error_set): New public function from its ashes; used by
3159         both service-side method implementation and GLib bindings
3160         internals.
3161         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3162         (_dbus_glib_test): Add some tests.
3163
3164         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3165
3166         * test/glib/test-service-glib.c (my_object_throw_error): Use
3167         dbus_g_error_set.
3168
3169         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3170         errors thrown by dbus_g_error_set.
3171
3172         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3173
3174         * glib/dbus-gparser.c (validate_signature): Ditto.
3175
3176         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3177         (dbus_g_proxy_end_call_internal): Ditto.
3178
3179         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3180         converts DBUS_ERROR_x to DBUS_GERROR_x.
3181         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3182
3183         * doc/TODO: Remove error TODO.
3184
3185         * doc/dbus-tutorial.xml: Update with documentation about error
3186         handling.
3187
3188         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3189         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3190         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3191
3192 2005-06-22  Colin Walters  <walters@verbum.org>
3193         
3194         Patch from Ross Burton <ross@openedhand.com>
3195
3196         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3197
3198 2005-06-20  Colin Walters  <walters@verbum.org>
3199
3200         * configure.in: Add glib/examples.
3201
3202         * glib/Makefile.am: Add examples/
3203
3204         * glib/examples/.cvsignore
3205         * glib/examples/Makefile.am
3206         * glib/examples/example-client.c
3207         * glib/examples/example-service.c
3208         * glib/examples/example-service.xml
3209         * glib/examples/example-signal-emitter.c
3210         * glib/examples/example-signal-emitter.xml
3211         * glib/examples/example-signal-recipient.c:
3212         New files; GLib binding examples, ported from
3213         python/examples.
3214
3215 2005-06-20  Colin Walters  <walters@verbum.org>
3216
3217         * dbus/dbus-glib.h: 
3218         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3219         dbus_g_proxy_call.
3220
3221         * glib/dbus-binding-tool-glib.c: 
3222         * doc/dbus-tutorial.xml: 
3223         * test/glib/test-dbus-glib.c: Update for rename.
3224         
3225 2005-06-20  Colin Walters  <walters@verbum.org>
3226
3227         Patch suggested by Ross Burton <ross@openedhand.com>
3228
3229         * glib/dbus-gobject.c (export_signals): Free signal name.
3230         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3231         memory leak.  Add a bit of documentation.
3232         (dbus_g_method_return_error): Free context, and note we do
3233         so.
3234
3235 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3236
3237         * dbus/dbus-glib.h:
3238         * glib/dbus-gobject.c:
3239         * glib/dbus-gproxy.c:
3240         * glib/dbus-gvalue.c: Predeclare structs as 
3241         typedef struct _Something Something instead of 
3242         typedef struct Something Something, so we can 
3243         redeclare the prototypes. Other GNOME libraries 
3244         do this already.
3245
3246 2005-06-17  Colin Walters  <walters@verbum.org>
3247
3248         * tools/dbus-names-model.c (have_names_notify): Fix call
3249         to dbus_g_proxy_end_call.
3250         
3251 2005-06-17  Colin Walters  <walters@verbum.org>
3252
3253         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3254         spew warnings if we get malformed remote signals.
3255
3256         * glib/dbus-gobject.c (propsig_iterate): New function.
3257         (lookup_object_info): New function, extracted from
3258         lookup_object_and_method.
3259         (introspect_properties, introspect_signals): Delete; these
3260         are merged into write_interface.
3261         (write_interface): Write out signals and properties here;
3262         dump the org.gtk.object stuff and use the interface given
3263         in the introspection data blob.  Also fix up property XML.
3264         (lookup_values): New function.
3265         (introspect_interfaces): Gather a mapping from interface to a
3266         list of its methods, signals, and properties, then write out
3267         each interface.
3268         (lookup_object_and_method): Use lookup_object_info.
3269         (struct DBusGSignalClosure): Add interface.
3270         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3271         we can just use the constant data.
3272         (dbus_g_signal_closure_finalize): Don't free signal name.
3273         (signal_emitter_marshaller): Use interface from signal closure.
3274         (export_signals): Only export signals mentioned in introspection
3275         blob.
3276         (dbus_g_connection_register_g_object): Warn if we have no
3277         introspection data for an object.
3278         (funcsig_equal): Remove unused variable.
3279         (dbus_g_object_register_marshaller): Take varargs instead of
3280         list.
3281         (dbus_g_object_register_marshaller_array): New function,
3282         extracted from old dbus_g_object_register_marshaller.
3283
3284         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3285         signals and property data.
3286         (write_quoted_string): New function, extracted from generate_glue.
3287         (generate_glue): Write signals and properties to introspection
3288         blob.
3289
3290         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3291         exported_signals and exported_properties.
3292         (dbus_g_object_register_marshaller): Update prototype.
3293         (dbus_g_object_register_marshaller_array): Prototype.
3294         
3295         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3296
3297         * test/glib/test-service-glib.c: Add new test signals and method
3298         to emit them.
3299
3300         * test/glib/test-service-glib.xml: Add some test signals.
3301
3302         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3303         and my-object-marshal.h
3304         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3305         my-object-marshal.c.
3306         (my-object-marshal.c, my-object-marshal.h): Implement.
3307
3308         * test/glib/.cvsignore: Update.
3309
3310         * doc/TODO: Remove two GLib TODO items fixed by this
3311         patch.
3312
3313 2005-06-16  Colin Walters  <walters@verbum.org>
3314
3315         * doc/TODO: Update for GLib bindings.
3316         
3317 2005-06-16  Colin Walters  <walters@verbum.org>
3318
3319         * glib/dbus-binding-tool-glib.c:
3320         * glib/dbus-gobject.c:
3321         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3322         from Ross Burton, for his GLib bindings work.
3323
3324 2005-06-16  Colin Walters  <walters@verbum.org>
3325
3326         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3327         to iterate instead of walking to G_TYPE_INVALID.
3328
3329         Patch based on a patch from Ryan Gammon.
3330
3331 2005-06-16  Colin Walters  <walters@verbum.org>
3332
3333         * bus/bus.c (bus_context_new): Set parser to NULL
3334         after we unref it (Patch from Chris Boscolo, #2174).
3335         
3336 2005-06-16  Colin Walters  <walters@verbum.org>
3337
3338         * python/dbus_bindings.pyx.in: Import size_t,
3339         __int64_t, __uint64_t, and __signed.
3340
3341         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3342         Define cmsg struct, output it.
3343         (_dbus_read_credentials_unix_socket):
3344         Use cmsg struct.
3345         
3346         Patch from Joe Markus Clarke for FreeBSD support.
3347         
3348 2005-06-16  Colin Walters  <walters@verbum.org>
3349
3350         * tools/dbus-send.c (append_array): Use strtok.
3351         (append_dict): New function.
3352         (type_from_name): New function, extracted from main.
3353         (main): Handle sending dicts.
3354
3355         * tools/dbus-print-message.c (print_iter): Print dict
3356         entries.
3357         
3358 2005-06-16  Colin Walters  <walters@verbum.org>
3359
3360         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3361         values as the empty string (#2948).
3362         
3363 2005-06-16  Colin Walters  <walters@verbum.org>
3364
3365         * dbus/Makefile.am:
3366         * mono/doc/Makefile.am:
3367         * test/glib/Makefile.am:
3368
3369         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3370
3371 2005-06-16  Colin Walters  <walters@verbum.org>
3372
3373         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3374         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3375
3376         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3377         Increment pointer after swapping fixed array.  Add assertion
3378         for array length.
3379                 
3380 2005-06-15  Colin Walters  <walters@verbum.org>
3381
3382         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3383         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3384         
3385 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3386
3387         * NEWS: Update to 0.34
3388
3389 2005-06-15  David Zeuthen  <davidz@redhat.com>
3390
3391         * configure.in (LT_CURRENT): Revert back to 1 as the library
3392         hasn't changed and we've certainly not committed to protocol
3393         stability yet.  All this does is to break ABI. See commit note
3394         from hp@redhat.com 2005-05-05 for details.
3395         
3396 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3397
3398         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3399         (_dbus_connection_run_builtin_filters): New method
3400         (dbus_connection_dispatch): Run the builtin filters which in turn
3401         runs the peer filter which handles Ping messages.
3402
3403         * doc/TODO: 
3404          - Ping isn't handled: This patch fixes it
3405          
3406          - Add a test case for the Ping message: added TODO item
3407
3408 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3409
3410         * dbus/dbus-message.c:
3411         (dbus_message_has_path): New method
3412         (dbus_message_has_interface): New method
3413         (dbus_message_has_member): New method
3414
3415         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3416         New method
3417
3418         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3419         the keyring directory is private to the user
3420
3421         * doc/TODO:
3422          - The convenience functions in dbus-bus.h should perhaps have
3423          the signatures that they would have if they were autogenerated
3424          stubs. e.g. the acquire service function. We should also evaluate
3425          which of these functions to include, in light of the fact that
3426          GLib/Qt native stubs will probably also exist.: Punted
3427
3428          - add dbus_message_has_path(), maybe has_member/interface:
3429          fixed in this patch
3430
3431          - in dbus-keyring.c, enforce that the keyring dir is not
3432          world readable/writable: Fixed in this patch
3433
3434 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3435
3436         * dbus/dbus-marshal-validate.h: Added a new validation
3437         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3438         out of memory errors when validating signitures
3439
3440         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3441         in places where we previously used DBUS_VALID and a FALSE return 
3442         value to indicate OOM
3443         
3444         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3445         Use a stack to track the number of elements inside containers.  The 
3446         stack values are then used to validate that dict entries have only two
3447         elements within them.
3448         (validate_body_helper): check the reason for failure when validating
3449         varients
3450         
3451         * dbus/dbus-message.c (load_message): use 
3452         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3453         DBUS_VALID and a FALSE return value to indicate OOM
3454
3455         * doc/TODO: remove "- validate dict entry number of fields" as this
3456         patch fixes it
3457
3458 2005-06-14  David Zeuthen  <davidz@redhat.com>
3459
3460         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3461         watches (if applicable) and add new watches
3462
3463         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3464         (main): Setup SIGIO signal handler if using D_NOTIFY
3465
3466         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3467
3468         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3469         (merge_included): Also merge conf_dirs list
3470         (bus_config_parser_unref): Clear conf_dirs list
3471         (include_dir): Add directory to conf_dirs list
3472         (bus_config_parser_get_conf_dirs): New function
3473
3474         * bus/dir-watch.[ch]: New files
3475
3476         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3477
3478         * configure.in: Add checks for D_NOTIFY on Linux
3479
3480 2005-06-14  Colin Walters  <walters@verbum.org>
3481
3482         * glib/dbus-binding-tool-glib.c:
3483         * glib/dbus-gobject.c:
3484         * glib/dbus-gvalue.c: Fix indentation and brace style.
3485         
3486 2005-06-14  Ross Burton <ross@openedhand.com>.
3487
3488         * glib/dbus-glib.h: Make DBusGMethodInvocation
3489         a private structure.  Rearrange prototypes a bit.
3490         
3491         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3492         documentation for first_arg_type.
3493         
3494         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3495         here, add documentation.  Move dbus_g_method_return
3496         and dbus_g_method_return_error into public API
3497         section.
3498
3499 2005-06-14  Colin Walters  <walters@verbum.org>
3500
3501         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3502         Add missing return statements, noticed by Ross Burton.
3503         
3504 2005-06-13  Ross Burton <ross@openedhand.com>.
3505
3506         * glib/dbus-gobject.c: Handle errors on message
3507         demarshalling by sending error message back.
3508         * glib/dbus-gvalue.c: Initialize return variables.
3509
3510 2005-06-13  Colin Walters  <walters@verbum.org>
3511
3512         * glib/Makefile.am: Fix thinko in last patch.
3513
3514 2005-06-13  Colin Walters  <walters@verbum.org>
3515
3516         * glib/Makefile.am: Move dbus-gtype-specialized.c
3517         and dbus-gtype-specialized.h into a _HEADERS variable,
3518         install them.
3519
3520 2005-06-12  Colin Walters  <walters@verbum.org>
3521
3522         Async signals and various bugfixes and testing by
3523         Ross Burton <ross@openedhand.com>.
3524
3525         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3526         (dbus_gvalue_genmarshal_name_from_type)
3527         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3528         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3529         (dbus_g_value_types_init, dbus_gtype_from_signature)
3530         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3531         (dbus_gtypes_from_arg_signature): New function prototypes.
3532         (dbus_gvalue_demarshal): Take context and error arguments.
3533         (dbus_gvalue_demarshal_variant): New function.
3534         (dbus_gvalue_demarshal_message): New function.
3535         (dbus_gvalue_store): Delete.
3536
3537         * glib/dbus-gvalue.c:
3538
3539         File has been almost entirely rewritten; now we special-case
3540         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3541         hash tables correctly, etc.  Full support for recursive values
3542         is not yet complete.
3543
3544         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3545         argument of signal to G_TYPE_POINTER since we now pass a
3546         structure.
3547         (lookup_g_marshaller): Delete in favor of
3548         _dbus_gobject_lookup_marshaller.
3549         (marshal_dbus_message_to_g_marshaller): Use
3550         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3551         to handle remote signal callbacks.
3552         (dbus_g_proxy_new_from_proxy): New function; creates a new
3553         DBusGProxy by copying an existing one.
3554         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3555         (dbus_g_proxy_get_path): New functions.
3556         (dbus_g_proxy_marshal_args_to_message): New function;
3557         factored out of existing code.
3558         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3559         from a varargs array.
3560         (dbus_g_proxy_begin_call_internal): New function.
3561         (dbus_g_proxy_end_call_internal): New function.
3562         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3563         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3564         after collecting args into value array.
3565         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3566         invoke dbus_g_proxy_end_call_internal.
3567         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3568         end_call_internal.
3569         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3570         types.
3571         (array_free_all): New function.
3572         (dbus_g_proxy_add_signal): Take GTypes.
3573
3574         * glib/dbus-gobject.h:
3575         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3576         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3577         Prototype.
3578
3579         * glib/dbus-gobject.c: Add a global marshal_table hash which
3580         stores mappings from type signatures to marshallers.  Change lots
3581         of invocations of dbus_gtype_to_dbus_type to
3582         dbus_gtype_to_signature.
3583         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3584         (introspect_signals): Fix test for query.return_type.
3585         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3586         (invoke_object_method): Many changes.  Handle asynchronous
3587         invocations.  Convert arguments with
3588         dbus_gvalue_demarshal_message.  Handle errors.  Use
3589         DBusSignatureIter instead of strlen on args. Handle all arguments
3590         generically.  Special-case variants.
3591         (dbus_g_method_return, dbus_g_method_return_error): New function.
3592         (DBusGSignalClosure): New structure, closes over signal
3593         information.
3594         (dbus_g_signal_closure_new): New function.
3595         (dbus_g_signal_closure_finalize): New function.
3596         (signal_emitter_marshaller): New function; is special marshaller
3597         which emits signals on bus.
3598         (export_signals): New function; introspects object signals and
3599         connects to them.
3600         (dbus_g_object_type_install_info): Take GType instead of
3601         GObjectClass.
3602         (dbus_g_connection_register_g_object): Invoke export_signals.
3603         (dbus_g_connection_lookup_g_object): New function.
3604         (DBusGFuncSignature) New structure; used for mapping type
3605         signatures to marshallers.
3606         (funcsig_hash): New function; hashes DBusGFuncSignature.
3607         (funcsig_equal): New function; compares DBusGFuncSignature.
3608         (_dbus_gobject_lookup_marshaller): New function.
3609         (dbus_g_object_register_marshaller): New function; used to
3610         register a marshaller at runtime for a particular signature.
3611
3612         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3613
3614         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3615         which notes a server method implementation should be
3616         asynchronous.
3617
3618         * glib/dbus-binding-tool-glib.c
3619         (dbus_binding_tool_output_glib_server): Call
3620         dbus_g_value_types_init.
3621         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3622         variants specially.
3623         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3624         of a lookup function.
3625         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3626         (write_untyped_out_args): New method; write output arguments.
3627         (write_formal_declarations_for_direction): Function for
3628         writing prototypes.
3629         (write_formal_parameters_for_direction): Function for
3630         writing implementations.
3631         (write_typed_args_for_direction): Function for writing
3632         arguments prefixed with GTypes.
3633         (write_async_method_client): Write out async version
3634         of method.
3635
3636         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3637         (dbus_g_type_get_marshal_name): Move mapping from GType
3638         to marshal name into here.
3639         (dbus_g_type_get_c_name): Move into here.
3640         (compute_marshaller): Convert signature to type with
3641         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3642         (compute_marshaller_name): Ditto.
3643         (compute_marshaller): Handle async signal annotations.
3644         (gather_marshallers): Return if we don't have a known
3645         prefix.
3646         (generate_glue): Collect introspection blob here, and
3647         write all of the blob at the end.  This allows an object
3648         with multiple interfaces to work.
3649         Mark async methods in introspection blob.
3650
3651         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3652         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3653         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3654
3655         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3656         avoids people accidentally using DBUS_TYPE_* which should
3657         not be necessary anymore.
3658         Do include dbus-gtype-specialized.h, which are utilities
3659         for GLib container types.
3660         Add various #defines for types such as
3661         DBUS_TYPE_G_BOOLEAN_ARRAY.
3662         (DBusGValueIterator, DBusGValue): Define, not fully used
3663         yet.
3664         (dbus_g_value_get_g_type): Type for recursive value.
3665         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3666         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3667         (dbus_g_value_free): Prototypes.
3668         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3669         (dbus_g_proxy_set_interface): Prototype.
3670         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3671         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3672         types.
3673         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3674         Accessors.
3675         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3676         doing async invocations.
3677         (dbus_g_method_return, dbus_g_method_return_error):
3678         Prototypes.
3679         * doc/dbus-tutorial.xml: Update GLib section.
3680         
3681         * tools/dbus-viewer.c (load_child_nodes): Update
3682         for new invocation type of dbus_g_proxy_end_call.
3683         (load_from_service_thread_func): Ditto.
3684
3685         * tools/print-introspect.c (main): Ditto.
3686
3687         * tools/dbus-names-model.c (have_names_notify)
3688         (names_model_reload, names_model_set_connection)
3689         Use GTypes.
3690
3691         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3692         needed since Python bindings use GLib bindings.
3693
3694         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3695         Add --prefix argument.
3696
3697         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3698         unneeded --ignore-unsupported arg.
3699         
3700         * test/glib/test-service-glib.c: 
3701         * test/glib/test-service-glib.xml:
3702         * test/glib/test-dbus-glib.c: Add many more tests.
3703
3704 2005-06-06  David Zeuthen  <davidz@redhat.com>
3705
3706         * doc/TODO: Add item about need to remove deprecated functions.
3707
3708         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3709
3710         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3711         to repair the ABI which was broken with the last commit.
3712
3713 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3714
3715         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3716         (dbus_connection_disconnect): renamed to dbus_connection_close 
3717         for API symmetry with dbus_connection_open
3718         (_dbus_connection_open_internal): 
3719         s/dbus_connection_disconnect/dbus_connection_close
3720
3721         * dbus/dbus-bus.c (dbus_bus_get):
3722         s/dbus_connection_disconnect/dbus_connection_close
3723
3724         * bus/connection.c (bus_connections_unref, 
3725         bus_connections_setup_connection, bus_connections_expire_incomplete):
3726         s/dbus_connection_disconnect/dbus_connection_close
3727
3728         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3729         kill_client_connection_unchecked, check_hello_connection):
3730         s/dbus_connection_disconnect/dbus_connection_close
3731
3732         * bus/bus.c (new_connection_callback):
3733         s/dbus_connection_disconnect/dbus_connection_close
3734
3735         * tools/dbus-send.c (main):
3736         s/dbus_connection_disconnect/dbus_connection_close
3737
3738         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3739         s/dbus_connection_disconnect/dbus_connection_close
3740         
3741         * test/test-service.c (path_message_func, filter_func):
3742         s/dbus_connection_disconnect/dbus_connection_close
3743         
3744         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3745         
3746 2005-05-25  Colin Walters  <walters@verbum.org>
3747
3748         * dbus/dbus-protocol.h: Move various bus service #defines such
3749           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3750           dbus/dbus-shared.h.
3751         * dbus/dbus-shared.h: Various defines moved here.
3752         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3753
3754 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3755
3756         * python/__init__.py: Python bindings deserve a minor version
3757         update.  Upped to (0, 40, 2)
3758
3759 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3760
3761         * python/decorators.py: add explicitly_pass_message decorator
3762         for passing in the dbus message as keyword for edge case signal
3763         handling
3764
3765         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3766         to conform with what dbus expects for match rules
3767         (SignalMatchRule.execute): add the dbus message as a keyword
3768         if the signal handler has requested it
3769
3770         * python/examples/example/signal-recipient.py: added some more
3771         examples on how to hook up to signals
3772
3773 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3774
3775         * python/decorators.py: import dbus_bindings
3776
3777         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3778         SignalMatchNode): new classes that implement wildcard signal
3779         callback matching using a tree lookup. Heavily modified from a
3780         patch sent by Celso Pinto (fd.o bug #3241)
3781
3782         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3783         use new match classes to handle signals.
3784
3785 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3786         
3787         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3788
3789 2005-05-18  Havoc Pennington  <hp@redhat.com>
3790
3791         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3792         gettext. Not really worth requiring yet perhaps, but any
3793         production quality 1.0 would require it so we should go ahead and
3794         get things set up. We do have a couple token calls to
3795         bindtextdomain in the code already.
3796
3797 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3798
3799         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3800         when using recursive g_main_loops
3801
3802         * python/_dbus.py (class Bus): add the ProxyObjectClass
3803         alias for ProxyObject to make it easier for the Twisted 
3804         networking framework to integrate dbus.
3805
3806         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3807         alias for ProxyMethod to make it easier for the Twisted 
3808         networking framework to integrate dbus. 
3809
3810 2005-05-11  Ross Burton  <ross@openedhand.com>
3811
3812         * glib/dbus-glib-tool.c: Add --prefix argument.
3813         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3814         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3815         Add prefix argument.
3816         (generate_glue): Pass prefix argument down.
3817         (dbus_binding_tool_output_glib_server): Pass prefix to
3818         glib-genmarshal.
3819         
3820 2005-05-11  Colin Walters  <walters@verbum.org>
3821
3822         * tools/dbus-send.c (append_array): New function.
3823         (append_arg): Broken out from main.
3824         (main): Add cheesy hack to send arrays and variants.
3825         (usage): Update.
3826         * tools/dbus-print-message.c (print_iter): Broken out
3827         from main.
3828
3829 2005-05-11  Colin Walters  <walters@verbum.org>
3830
3831         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3832         New function, returns signature string for signature iter.
3833         * dbus/dbus-signature.h: Prototype it.
3834         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3835         New function, returns signature string for message iter.
3836         (dbus_message_iter_get_array_len): New function, returns
3837         length of array.
3838         (dbus_message_iter_get_fixed_array): Fix assertion; this
3839         function should be used when the iter is pointing to the
3840         contents of an array
3841         * dbus/dbus-message.h: Prototypes.
3842         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3843         New function; returns length of an array.
3844         * dbus/dbus-marshal-recursive.h: Prototype it.
3845         
3846 2005-05-11  Colin Walters  <walters@verbum.org>
3847
3848         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3849         compilation error.
3850         
3851 2005-05-08  Havoc Pennington  <hp@redhat.com>
3852
3853         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3854         daemon's pid, not the parent's pid, to the file descriptor.
3855         Reported by Taj Morton.
3856
3857 2005-05-05  Havoc Pennington  <hp@redhat.com>
3858
3859         * configure.in (LT_*): add notes on how the libtool versioning
3860         works to save thinking. Increment soname to indicate protocol
3861         breakage (though really the library interface hasn't changed I
3862         guess)
3863
3864         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3865         verify the GUID received from server matches what we were
3866         expecting, if we had an expectation
3867
3868         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3869         (_dbus_auth_get_guid_from_server): new function
3870         (send_begin): parse the OK args
3871
3872         * doc/dbus-specification.xml: add GUID to the auth protocol
3873
3874 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3875
3876         * Fix my name in previous changelog ;)
3877
3878         * python/proxies.py (ProxyObject.__getattr__): add further patch
3879         from Anthony Baxter to throw an AttributeError when python 
3880         __special__ functions are called instead of marshling them over 
3881         the bus (Bug#1685 comment 3).
3882
3883 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3884
3885         * python/Makefile.am: changed to use pyexecdir for the binding
3886         shared libraries (Bug#2494)
3887
3888         * python/exceptions.py: bring exceptions over from the bindings
3889         so they can be used in applications (Bug#2036)
3890         Make all exceptions derive from DBusException
3891
3892         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3893         of classes so that print obj doesn't throw an exception (Bug #1685)
3894
3895 2005-05-03  Ross Burton  <ross@openedhand.com>
3896
3897         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3898         Return if we get an error during registration.  Set up a
3899         weak reference on object to unregister if object is destroyed.
3900         (unregister_gobject): New function.
3901         
3902 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3903
3904         * python/dbus_bindings.pyx.in: 
3905         - added new type classes for hinting to the marashaler what type 
3906         to send over the wire
3907         - added int16 and uint16 marshalers
3908         - Fixed a bug in the type constants that caused int32 to go out
3909         as uint16 over the wire
3910         * python/dbus.py: split up into different files and renamed _dbus.py
3911         * python/__init__.py, python/_util.py, python/decorators.py, 
3912         python/exceptions.py, python/proxies.py, python/services.py,
3913         python/types.py: new files split off from dbus.py
3914         * python/Makefile.am: Add new files, remove dbus.py and 
3915         install all python files to <python module dir>/dbus
3916         * python/examples/*: Added #!/usr/bin/env python to the top of
3917         every example.  Patch provided by Tatavarty Kalyan
3918
3919 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3920
3921         * NEWS: Update to 0.33
3922
3923 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3924
3925         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3926         method for doing async calls
3927         (_pending_call_notification): New C function for handling pendning call
3928         callbacks
3929         (set_notify): New method for setting pending call notification
3930         
3931         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3932         Async capabilities added to remote method calls
3933         (Sender): class removed
3934         (RemoteService): class removed
3935         (ObjectTree): class removed for now
3936         (RemoteObject): Renamed to ProxyObject
3937         (RemoteMethod): Renamed to ProxyMethod
3938         (method): Decorator added for decorating python methods as dbus methods
3939         (signal): Decorator added for decorating python methods as signal emitters
3940         (ObjectType): Metaclass added for generating introspection data and the
3941         method callback vtable
3942         (Interface): Wrapper class added to wrap objects in a dbus interface
3943         (Object): Uses ObjectType as its metaclass and exports Introspect
3944         of the org.freedesktop.DBus.Introspectable interface
3945         (ValidationException, UnknownMethodException): new exceptions
3946
3947         * python/examples/*: Modified to fit with the new bindings
3948
3949 2005-04-23  Havoc Pennington  <hp@redhat.com>
3950
3951         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3952         reported by Tony Houghton
3953
3954         * test/test-service.c (main): test
3955         dbus_connection_get_object_path_data()
3956
3957         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3958         the exact_match
3959         (_dbus_object_tree_get_user_data_unlocked): new function used by
3960         dbus_connection_get_object_path_data()
3961         (do_register): add assertion test for get_user_data_unlocked
3962         (object_tree_test_iteration): more tests
3963
3964         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3965         new function from Dan Reed to let you get the user data from 
3966         dbus_connection_register_object_path()
3967
3968 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3969
3970         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3971         in numerous places that did not account for the NULL terminator
3972         (signature_from_seed): changed the manual string copy loop to 
3973         just use strcpy instead
3974         make check should now pass
3975
3976 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3977
3978         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3979         so that it allows messages that are not signals to pass in 
3980         NULL as the interface.
3981
3982 2005-04-18  David Zeuthen  <davidz@redhat.com>
3983
3984         * glib/dbus-gmain.c (io_handler_destroy_source): 
3985         (timeout_handler_destroy_source, connection_setup_free): 
3986         Also unref the source to avoid memory leaks.
3987
3988 2005-04-13  David Zeuthen  <davidz@redhat.com>
3989
3990         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3991         more reasonable, yet still totally arbitrary, value :-). 
3992
3993 2005-04-13  David Zeuthen  <davidz@redhat.com>
3994
3995         * doc/TODO: Added an "important for 1.0" item about selinux
3996         allow/deny messages
3997
3998 2005-04-13  David Zeuthen  <davidz@redhat.com>
3999
4000         * bus/selinux.c: Add c-file-style to top of file
4001         (log_audit_callback): Don't free the data here anymore
4002         (bus_selinux_check): Don't take spid and tpid since appending
4003         that to auxdata may OOM.
4004         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4005         to the caller if we are OOM by taking an error object.
4006         (bus_selinux_allows_send): -do-
4007
4008         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4009         and bus_selinux_allows_send
4010
4011         * bus/bus.c (bus_context_check_security_policy): Pass error and
4012         pass on OOM thrown by bus_selinux_allows_send()
4013
4014         * bus/services.c (bus_registry_acquire_service): Pass error and
4015         pass on OOM thrown by bus_selinux_allows_acquire_service()
4016
4017 2005-04-13  Havoc Pennington  <hp@redhat.com>
4018
4019         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4020         message at a time to avoid monopolizing the main loop, bug 
4021         #2953 from Benjamin Otte
4022
4023 2005-04-09  Havoc Pennington  <hp@redhat.com>
4024
4025         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4026         possible overlap, fix from Daniel Reed
4027         (fixup_alignment): fix signedness warnings
4028         (_dbus_string_append_unichar): ditto
4029
4030 2005-04-09  Havoc Pennington  <hp@redhat.com>
4031
4032         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4033
4034         * glib/dbus-glib-tool.c (main): fix warning
4035
4036         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4037
4038         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4039         add a new function that can be used in simple applications that
4040         don't have a main loop and are willing to block
4041
4042 2005-04-05  David Zeuthen  <davidz@redhat.com>
4043
4044         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4045
4046         * glib/dbus-gmain.c:
4047         (io_handler_destroy_source): Remove from list of IO handlers
4048         of the ConnectionSetup object
4049         (timeout_handler_destroy_source): -do- for timeout handlers
4050         (io_handler_source_finalized): Don't remove from list since
4051         we now do that in io_handler_destroy_source(). Renamed from
4052         io_handler_source_destroyed
4053         (timeout_handler_source_destroyed): -do- for timeout handlers
4054         (connection_setup_free): It is now safe to iterate over all
4055         IO and timeout handlers as the _destroy_source removes them
4056         from the list synchronously
4057
4058 2005-03-30  Havoc Pennington  <hp@redhat.com>
4059
4060         * configure.in: change check to gtk 2.4
4061
4062         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4063         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4064         to 2.4
4065
4066 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4067
4068         * News: Update 0.32
4069
4070         * HACKING: Fixed realease instructions.  configure.in should be updated to
4071           the next release by the person who made the last release.
4072
4073 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4074
4075         * python/lvalue_cast_post_process.py - removed.  Patch has been
4076           submitted to Pyrex maintainers that fixes gcc4.0 errors
4077
4078         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4079
4080 2005-03-24  Daniel Reed  <n@ml.org>
4081
4082         * tools/Makefile.am: Make print-introspect and
4083         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4084
4085 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4086
4087         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4088
4089         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4090           had in Red Hat packages for a while but for some reason never 
4091           got merged upstream
4092           (_dbus_is_a_number): New checks if a string
4093           can be converted to a number and does the conversion if it can
4094           (_dbus_user_database_lookup): Add check to see if the given username
4095           is a udi.  This allows udi's to be used instead of usernames in the
4096           config file.
4097           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4098           is a gdi.  This allows gdi's to be used instead of groupnames in the
4099           config file.
4100
4101 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4102
4103         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4104           code so that it compiles with gcc4.0
4105
4106         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4107           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4108           results back to dbus_binding.c
4109
4110 2005-03-20  Colin Walters  <walters@verbum.org>
4111
4112         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4113
4114         * configure.in: Require GTK+ 2.6.
4115         
4116 2005-03-20  Colin Walters  <walters@verbum.org>
4117
4118         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4119
4120 2005-03-17  Tom Parker  <palfrey@tevp.net>
4121
4122         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4123         print DBUS_UID_UNSET; instead print passed username.  Also
4124         be sure to actually use gid looked up in cache.
4125         
4126         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4127         for DBUS_GID_UNSET and groupname.
4128
4129 2005-03-17  Colin Walters  <walters@verbum.org>
4130
4131         * bus/print-introspect.c: Move to tools/.
4132         * bus/run-with-tmp-session-bus.sh: Ditto.
4133         
4134         * glib/Makefile.am (dbus-glib-bindings.h): Move
4135         generation to tools/Makefile.am.
4136
4137         * test/glib/run-test.sh: Update to handle move
4138         of run-with-tmp-session-bus.sh.
4139
4140         * test/glib/test-service-glib.c: Update to handle
4141         move of dbus-glib-bindings.h.
4142
4143         * tools/print-introspect.c: Moved here
4144         from bus/, and ported to GLib bindings.
4145
4146         * tools/run-with-tmp-session-bus.sh: Moved here
4147         from bus/.
4148
4149         * tools/Makefile.am: Generate dbus-glib-bindings.h
4150         and dbus-bus-introspect.xml here.
4151
4152         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4153         Update.
4154
4155 2005-03-17  Colin Walters  <walters@verbum.org>
4156
4157         * bus/driver.c (write_args_for_direction): Use
4158         _dbus_string_get_const_data to retrieve string;
4159         _dbus_string_get_const_data_len doesn't actually return
4160         a NULL-terminated substring.
4161
4162         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4163         (main): Change to use org_freedesktop_DBus_request_name
4164         instead of using g_proxy_begin_call/end_call.
4165
4166 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4167
4168         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4169         generating the finalizer.  Fixes from Ben Maurer.
4170
4171 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4172
4173         * mono/BusDriver.cs: Update method names: ListServices
4174         becomes ListNames; GetOwner becomes GetNameOwner.
4175
4176         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4177         onto the eval stack when removing the delegate.
4178
4179 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4180
4181         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4182         LT_CURRENT.  Set it to the autoconf variable.
4183                                                                                 
4184         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4185         classes that disconnects the signal handler delegate from the
4186         service object.  Fixes a big leak of proxy objects on the
4187         client side of things.  Patch from Ben Maurer
4188         <bmaurer@ximian.com>
4189
4190 2005-03-12  Colin Walters  <walters@verbum.org>
4191
4192         * bus/driver.c (write_args_for_direction): New function,
4193         parses a type signature into arguments and outputs to
4194         XML.
4195         (bus_driver_handle_introspect): Use it instead of
4196         hardcoding XML for certain signatures.
4197         
4198         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4199         dependency on dbus-daemon.
4200
4201         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4202         argument, pass it to dbus_binding_tool_output_glib_client.
4203
4204         * glib/dbus-binding-tool-glib.c
4205         (generate_client_glue): Protect against multiple inclusion.
4206         (dbus_binding_tool_output_glib_client): Add
4207         G_BEGIN_DECLS/G_END_DECLS.
4208
4209         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4210         Change to just take iface prefix directly.
4211         (write_formal_parameters): Clarify error message.
4212         (check_supported_parameters): New function; checks to see type
4213         signatures of method parameters are supported.
4214         (generate_client_glue): Handle ignore_unsupported flag.
4215         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4216         parameter.
4217
4218         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4219         --ignore-unsupported by default until glib bindings
4220         support arrays.
4221
4222 2005-03-11  Colin Walters  <walters@verbum.org>
4223
4224         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4225         install it.
4226
4227         * bus/print-introspect.c: New file; prints introspection
4228         data for a given name and object path.
4229
4230         * bus/run-with-tmp-session-bus.sh: New file, refactored
4231         from test/glib/run-test.sh.  Creates a temporary session
4232         bus and runs another program.
4233
4234         * test/glib/run-test.sh: Refactor to invoke
4235         run-with-tmp-session-bus.sh.
4236
4237         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4238         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4239         macros instead of hardcoding.
4240
4241         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4242
4243 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4244
4245         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4246         this unref; it doesn't match up evenly in some codepaths.
4247         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4248         this evenly matches with the ref near the top of this function.
4249
4250 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4251
4252         * dbus/dbus-object-tree.c
4253         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4254         and we try to unregister a path that's not registered, still go
4255         through the process of unlocking and don't just return.
4256
4257 2005-03-09  Colin Walters  <walters@verbum.org>
4258
4259         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4260         to this are generated for client-side wrappers.  Invokes a
4261         D-BUS method and returns reply values.  
4262
4263         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4264         function; writes signature string for argument direction.
4265         (write_args_for_direction): Change to pass input values directly
4266         instead of via address, and fix indentation.
4267         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4268         make generated wrappers inlineable.
4269
4270         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4271         note about using dbus_type_is_fixed.
4272
4273         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4274         dbus/dbus-signature.c as dbus_type_is_fixed.
4275
4276         All callers updated.
4277
4278         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4279         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4280
4281         * dbus/dbus-signature.h: Prototype.
4282
4283         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4284         error printf code.
4285
4286         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4287         appropriate instead of just freeing it.
4288         (main): Free returned strings using g_free.
4289
4290         * test/glib/Makefile.am (test-service-glib-glue.h)
4291         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4292
4293         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4294         simply maps a simple D-BUS type to GType.
4295         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4296         GType.
4297         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4298         initialize the value with it.
4299         (dbus_gvalue_binding_type_from_type): Unused, delete.
4300         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4301         various types instead of unmarshalling to value data directly.
4302         Remove can_convert boolean.
4303         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4304         returning directly instead of using can_convert boolean.
4305         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4306         Stores a GValue in a pointer to a value of its corresponding C
4307         type.
4308
4309         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4310         add dbus_gvalue_store.
4311
4312 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4313
4314         Fix a bunch of lifecycle and memory management problems
4315         in the mono bindings.
4316
4317         * mono/Arguments.cs (Arguments): Implement IDisposable
4318
4319         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4320         strictly a static class.
4321
4322         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4323         delegates into this file.
4324         (Connection): Implement IDisposable.
4325         (Dispose): Disconnect the connection and set the raw connection
4326         pointer to IntPtr.Zero.
4327         (~Connection): Call Dispose().
4328         (RegisterObjectPath): Added.  Manages the registration of object
4329         paths so we can cleanly disconnect them at dispose/finalize time.
4330         (UnregisterObjectPath): Ditto.
4331         (set_RawConnection): Unregister all of the object paths when
4332         changing the underlying DBusConnection.  Add them back onto the
4333         new connection, if any.
4334
4335         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4336         more unmanaged resources anymore, so it's not necessary.  Move all
4337         the DBusObjectPathVTable stuff out of here.
4338         (Handler): Save references to our delegates so that they don't get
4339         finalized.  Call Connection.RegisterObjectPath() instead of
4340         dbus_connection_register_object_path() directly.
4341         (Message_Called): Dispose the message after we're finished with
4342         it.
4343
4344         * mono/Message.cs (Message): Implement IDisposable.
4345         (Dispose): Dispose the Arguments, and set the RawMessage to
4346         IntPtr.Zero.
4347         (SendWithReplyAndBlock): We own the ref to the reply that comes
4348         back from dbus_connection_send_with_reply_and_block() so add a
4349         comment about that and unref it after we've constructed a managed
4350         MethodReturn class around it.  Fixes a big, big leak.
4351
4352         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4353         method.
4354         (BuildSignalHandler): After we've sent the Signal message, dispose
4355         of it.
4356         (BuildMethod): Dispose of the method call and reply messages after
4357         we've sent the message and extracted the data we want from the
4358         reply.
4359
4360         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4361         anymore.
4362         (Service_FilterCalled): Dispose of the message after we're
4363         finished with it.
4364
4365 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4366
4367         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4368         After we attach our pending call to the connection, unref
4369         it.  Fixes a leak.
4370  
4371         * mono/Connection.cs (set_RawConnection): Disconnect our
4372         filter and match callbacks from the old connection and
4373         reconnect them to the new connection, if any.
4374
4375         * mono/DBusType/Array.cs: "Code" is a static member, so
4376         don't use "this" to refer to it.  Fix for stricter checking
4377         in Mono 1.1.4.
4378  
4379         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4380         object path that we pass into unmanaged code.
4381  
4382         * mono/DBusType/String.cs (Append): Don't leak the string
4383         that we pass into unmanged code.
4384
4385 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4386         * NEWS: Update for 0.31
4387
4388         * configure.in: Release 0.31
4389         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4390
4391         * qt/Makefile.am: fixed build
4392
4393         * dbus/Makefile.am: soname bump for libdbus
4394
4395         * glib/Makefile.am: soname bump for libdbus-glib
4396
4397 2005-03-05  Havoc Pennington  <hp@redhat.com>
4398
4399         * dbus/dbus-sysdeps.c:
4400         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4401         value
4402         (_dbus_generate_random_bytes_buffer): fix return value
4403
4404         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4405         checks actually work, from Tom Parker <fdo@tevp.net>
4406
4407 2005-03-01  Colin Walters  <walters@verbum.org>
4408
4409         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4410         functions copied from dbus-glib-tool.c.
4411         (main): Convert lots of error code to use them.
4412         Also add some testing for introspection bits.
4413
4414 2005-03-01  Colin Walters  <walters@verbum.org>
4415         
4416         * doc/TODO: Remove introspection signature TODO.
4417
4418 2005-02-27  Colin Walters  <walters@verbum.org>
4419
4420         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4421         Change return value to const char * instead of int so we can do
4422         full signatures.
4423         (struct PropertyInfo, struct ArgInfo): Store char *.
4424         (property_info_new, arg_info_new): Update parameters, strdup.
4425         (property_info_unref, arg_info_unref): Free.
4426
4427         * glib/dbus-gidl.h: Update prototypes.
4428
4429         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4430         (validate_signature): New function, just validates signature and
4431         sets GError.
4432         (parse_property, parse_arg): Invoke validate_signature.  Store
4433         signature instead of just type code.
4434
4435         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4436         function to return a primary type for a signature, dropping
4437         information about types in container types.
4438         (dbus_gvalue_genmarshal_name_from_type)
4439         (dbus_gvalue_binding_type_from_type)
4440         (dbus_gvalue_ctype_from_type): Update to take full signature
4441          instead of type code.
4442         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4443
4444         * glib/dbus-gvalue.h: Update prototypes for above.
4445
4446         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4447         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4448         (introspect_properties, introspect_signals, write_interface):
4449         Update to handle signatures, and remove usage of
4450         _dbus_gutils_type_to_string.
4451         (handle_introspect): Print out type codes instead of e.g. "string"
4452         in hardcoded introspection XML; also use x_AS_STRING constants
4453         instead of hardcoding in string.
4454
4455         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4456         to string.  Remove usage of _dbus_gutils_type_to_string.
4457
4458         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4459
4460         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4461         deletion.
4462         
4463         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4464         (compute_marshaller_name, generate_glue): Handle signature change
4465         to string.
4466         (write_formal_parameters, write_args_for_direction): Ditto, and
4467         remove FIXME.
4468
4469         * tools/dbus-tree-view.c (type_to_string): Delete.
4470         (info_set_func_text): Update to print full signatures.
4471
4472         * test/glib/test-service-glib.xml: Change types to new
4473         introspection format.
4474
4475 2005-02-26  Havoc Pennington  <hp@redhat.com>
4476
4477         * doc/TODO: remove the "guid" item
4478
4479         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4480         (with_bus_thread_func): use open_private
4481
4482         * dbus/dbus-connection.c (dbus_connection_open_private): new
4483         function that works like the old dbus_connection_open()
4484         (dbus_connection_open): now returns an existing connection if
4485         possible
4486
4487         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4488         through the GUID to the transport
4489
4490         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4491         GUID in hex-encoded form.
4492
4493         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4494         pass GUID argument in to the transport
4495
4496         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4497         guid argument
4498
4499         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4500
4501         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4502
4503 2005-02-25  Havoc Pennington  <hp@redhat.com>
4504
4505         * doc/dbus-specification.xml: document the GUID thing
4506
4507         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4508         globally unique ID for the server, and put a "guid=hexencoded"
4509         field in the address
4510
4511         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4512
4513         * dbus/dbus-message.c: ditto
4514
4515         * dbus/dbus-dataslot.c: ditto
4516
4517         * dbus/dbus-list.c: ditto
4518
4519         * dbus/dbus-internals.h: wait, just include
4520         dbus-threads-internal.h here
4521         
4522         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4523         use in main library
4524
4525         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4526
4527 2005-02-24  Colin Walters  <walters@verbum.org>
4528
4529         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4530
4531 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4532
4533         * glib/Makefile.am: added dbus-gobject.h to sources list
4534         so distcheck doesn't fail
4535         
4536 2005-02-24  Havoc Pennington  <hp@redhat.com>
4537
4538         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4539         you must disconnect before unref, since locking and other things
4540         are screwed up otherwise. Fix assorted other locking stuff.
4541
4542         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4543         fix compilation
4544
4545         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4546         into a private header and don't export from the library
4547
4548         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4549
4550 2005-02-24  Colin Walters  <walters@verbum.org>
4551         
4552         * dbus/dbus-signature.c: New file; implements various functions
4553         related to type signatures.  Includes an interator for parsing,
4554         validation functions.
4555         (dbus_type_is_basic): Moved here from
4556         dbus-marshal-basic.c:_dbus_type_is_basic.
4557         (dbus_type_is_container): Moved here from
4558         dbus-marshal-basic.c:_dbus_type_is_container.
4559
4560         All callers of _dbus_type_is_container and _dbus_type_is_basic
4561         updated, and include dbus-signature.h.
4562
4563         * dbus/dbus-signature.h: New file; prototypes for the above.
4564
4565         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4566         dbus-signature.h.
4567
4568         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4569         function factored out of _dbus_first_type_in_signature.
4570         (_dbus_first_type_in_signature_c_str): New function; returns first
4571         type code for a type signature character.
4572
4573         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4574         handle function moves.
4575
4576         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4577
4578         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4579         function; skips to next complete type in type signature.
4580         Implemented using previous skip_one_complete_type.  Now
4581         skip_one_complete_type just delegates to
4582         _dbus_type_signature_next.
4583
4584         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4585         to dbus-signature.c
4586         (_dbus_type_is_container): Ditto.
4587
4588         * doc/dbus-specification.xml: Update introspection sample to
4589         use real type signatures.
4590
4591         * dbus/dbus-test.h: Prototype signature test.
4592
4593         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4594         signature tests.
4595
4596         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4597
4598 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4599
4600         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4601         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4602
4603 2005-02-21  Colin Walters  <walters@verbum.org>
4604
4605         * dbus/dbus-test-main.c (main): Take optional specific test
4606         argument.
4607
4608         * dbus/dbus-test.c (run_test): New function, runs a test function
4609         with no data directory.
4610         (run_data_test): Like above, but takes data directory.
4611         (dbus_internal_do_not_use_run_tests): Take
4612         specific test argument.  Replace lots of cut n' paste code
4613         with run_test and run_data_test.
4614
4615         * dbus/dbus-test.h: Update prototype for
4616         dbus_internal_do_not_use_run_tests.
4617
4618 2005-02-20  Havoc Pennington  <hp@redhat.com>
4619
4620         Fix bugs reported by Daniel P. Berrange
4621         
4622         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4623         (protected_change_watch): new function
4624         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4625         (_dbus_server_add_watch): change to work like the
4626         dbus-connection.c equivalents; like those, probably kind of
4627         busted, but should at least mostly work for now
4628         (dbus_server_disconnect): drop the lock if we were already
4629         disconnected, patch from Daniel P. Berrange
4630
4631         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4632         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4633         same stuff
4634
4635         * doc/TODO: todo about unscrewing this mess
4636
4637 2005-02-19  Colin Walters  <walters@verbum.org>
4638
4639         * glib/dbus-binding-tool-glib.c
4640         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4641
4642         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4643         as errno.h and sys/stat.h.
4644         (lose): New function, prints error with
4645         newline and exits.
4646         (lose_gerror): Similar, but takes GError for message.
4647         (main): Add --output argument to specify output file to write to,
4648         instead of always printing to stdout.  In this mode, determine
4649         timestamps on source files to see whether any are newer than the
4650         target file.  If not, exit.  Also convert a number of error
4651         messages to use lose (since it's shorter), and switch to using
4652         g_io_channel_shutdown.
4653
4654 2005-02-19  Havoc Pennington  <hp@redhat.com>
4655
4656         * glib/dbus-gobject.c
4657         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4658
4659         * glib/dbus-glib.c: fix doxygen warnings
4660
4661         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4662         is found on an <arg>
4663
4664 2005-02-17  Colin Walters  <walters@verbum.org>
4665
4666         * glib/dbus-gobject.h: Don't export
4667         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4668         
4669         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4670         (invoke_object_method): Handle it.
4671
4672         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4673         Handle rename.
4674         
4675 2005-02-17  Colin Walters  <walters@verbum.org>
4676
4677         * bus/.cvsignore, doc/.cvsignore
4678         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4679         Update.
4680
4681 2005-02-17  Colin Walters  <walters@verbum.org>
4682         
4683         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4684         Rename to DBUS_SERVICE_DBUS.
4685         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4686         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4687         Change the value from "org.freedesktop.Local"
4688         to "org.freedesktop.DBus.Local".
4689         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4690         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4691         DBUS_INTERFACE_INTROSPECTABLE.
4692         Change the value from "org.freedesktop.Introspectable"
4693         to "org.freedesktop.DBus.Introspectable".
4694         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4695         DBUS_INTERFACE_PROPERTIES.
4696         Change the value from "org.freedesktop.Properties"
4697         to "org.freedesktop.DBus.Properties".
4698         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4699         DBUS_INTERFACE_PEER.
4700         Change the value from "org.freedesktop.Peer"
4701         to "org.freedesktop.DBus.Peer".
4702         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4703         DBUS_INTERFACE_LOCAL.
4704         Change the value from "org.freedesktop.Local"
4705         to "org.freedesktop.DBus.Local".
4706
4707         All other users of those constants have been changed.
4708
4709         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4710
4711         * glib/dbus-gobject.c (handle_introspect): Use constants.
4712
4713         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4714
4715 2005-02-17  Colin Walters  <walters@verbum.org>
4716
4717         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4718         (parse_node, parse_interface, parse_method, parse_signal)
4719         (parse_property, parse_annotation): Lose if we're currently in an
4720         annotation.
4721         (parse_annotation): New function.
4722         (parser_start_element, parser_end_element): Handle annotation.
4723         (parse_method, parse_interface): Remove support for c_name attribute,
4724         switch to annotations.
4725
4726         * glib/dbus-gidl.h (interface_info_get_binding_names)
4727         (method_info_get_binding_names)
4728         (interface_info_get_binding_name, method_info_get_binding_name)
4729         (interface_info_set_binding_name, method_info_set_binding_name):
4730         Remove.
4731         (interface_info_get_annotations, method_info_get_annotations)
4732         (interface_info_get_annotation, method_info_get_annotation)
4733         (interface_info_add_annotation, method_info_add_annotation):
4734         Prototype.
4735
4736         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4737         for "bindings".
4738         (struct MethodInfo): Ditto.
4739         Straightfoward conversion of binding methods into annotation methods
4740         as prototyped.
4741
4742         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4743
4744         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4745
4746         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4747         Use new annotation API.
4748
4749         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4750         annotation element.
4751         
4752         * doc/dbus-specification.xml: Discuss introspection annotations,
4753         include list of well-known annotations.
4754
4755         * test/glib/test-service-glib.xml: Make validate against new DTD.
4756
4757 2005-02-17  Colin Walters  <walters@verbum.org>
4758
4759         This patch is based on initial work from
4760         Paul Kuliniewicz <kuliniew@purdue.edu>.
4761
4762         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4763         initialization of GValue from dbus type to here.
4764         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4765         for the "glib-genmarshal" program from a DBus type.
4766         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4767         into the C name for it we use in the glib bindings.
4768         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4769         glib C type (not GValue).
4770         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4771
4772         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4773         from dbus-gobject.c.
4774
4775         * glib/dbus-gutils.h: Prototype it.
4776
4777         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4778         (marshal_dbus_message_to_g_marshaller): Use new shared function
4779         dbus_glib_marshal_dbus_message_to_gvalue_array.
4780
4781         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4782         Will be changed once we have annotations.
4783
4784         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4785         GStaticRWLock.  Callers updated.
4786         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4787         (string_table_next): New function for iterating over zero-terminated
4788         string value array.
4789         (string_table_lookup): New function; retrieves specific entry in
4790         array.
4791         (get_method_data): New function; look up method data in object data chunk.
4792         (object_error_domain_prefix_from_object_info)
4793         (object_error_code_from_object_info): New functions, but not implemented yet.
4794         (method_interface_from_object_info): New function; retrieve interface name.
4795         (method_name_from_object_info): New function; retrieve method name.
4796         (method_arg_info_from_object_info): New function; retrieve argument data.
4797         (arg_iterate): New function; iterates over serialized argument data.
4798         (method_dir_signature_from_object_info): New function; returns a
4799         GString holding type signature for arguments for just one
4800         direction (input or output).
4801         (method_input_signature_from_object_info)
4802         (method_output_signature_from_object_info): New functions.
4803         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4804         converts dbus message arguments into a GValue array.  Used for both
4805         signal handling and method invocation.
4806         (struct DBusGlibWriteIterfaceData): New utility structure.
4807         (write_interface): New function; generate introspection XML for
4808         an interface.
4809         (introspect_interfaces): New function; gathers all interface->methods,
4810         generates introspection XML for them.
4811         (handle_introspect): Invoke introspect_interfaces.
4812         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4813         (lookup_object_and_method): New function; examines an incoming message
4814         and attempts to match it up (via interface, method name, and argument
4815         signature) with a known object and method.
4816         (gerror_domaincode_to_dbus_error_name): New function; converts a
4817         GError domain and code into a DBus error name.  Needs GError data
4818         added to object introspection to work well.
4819         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4820         GError.
4821         (invoke_object_method): New function to invoke an object method
4822         looked up via lookup_object_and_method.  Parses the incoming
4823         message, turns it into a GValue array, then invokes the marshaller
4824         specified in the DBusGMethodInfo.  Creates a new message with
4825         either return values or error message as appropriate.
4826         (gobject_message_function): Invoke lookup_object_and_method and
4827         invoke_object_method.
4828
4829         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4830         (enum DBusBindingOutputMode): New enum for binding output modes.
4831         (pretty_print): Print binding names.
4832         (dbus_binding_tool_error_quark): GError bits.
4833         (version): Fix typo.
4834         (main): Create GIOChannel for output.  Parse new --mode argument,
4835         possible values are "pretty-print", "glib-server", "glib-client".
4836         Use mode to invoke appropriate function.
4837         
4838         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4839
4840         * glib/dbus-glib-tool.h: New header, just includes GError bits
4841         for now.
4842
4843         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4844         maps binding style to name.
4845         (struct MethodInfo): Ditto.
4846         (get_hash_keys, get_hash_key): Utility function, returns keys for
4847         a GHashTable.
4848         (interface_info_new, method_info_new): Initialize bindings.
4849         (interface_info_unref, method_info_unref): Destroy bindings.
4850         (method_info_get_binding_names, method_info_get_binding_name)
4851         (interface_info_get_binding_names, interface_info_get_binding_name):
4852         Functions for retrieving binding names.
4853         (method_info_set_binding_name, interface_info_set_binding_name):
4854         Functions for setting binding names.
4855
4856         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4857         for glib binding generation.
4858
4859         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4860         and client-side glib glue generation.
4861
4862         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4863         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4864         dbus-glib-tool.h.
4865
4866         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4867         of using GClosureMarshal directly.
4868         (struct DBusGObjectInfo): Add n_infos member.
4869
4870         * test/glib/test-service-glib.xml: New file; contains introspection data
4871         for MyTestObject used in test-service-glib.c.
4872
4873         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4874         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4875         (my_object_uppercase, my_object_many_args): New test methods.
4876         (main): Use dbus_g_object_class_install_info to include generated object
4877         info.
4878
4879         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4880         as well as client-side bindings.
4881
4882         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4883         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4884         using both the dbus_gproxy stuff directly as well as the generated bindings.
4885
4886 2005-02-15  Havoc Pennington  <hp@redhat.com>
4887
4888         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4889         complete a pending call, don't run filters first.
4890
4891         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4892         dbus_pending_call_steal_reply
4893
4894         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4895         _dbus_connection_block_pending_call
4896         (dbus_pending_call_get_reply): change to steal_reply and return a
4897         ref
4898
4899         * dbus/dbus-connection.c
4900         (dbus_connection_send_with_reply_and_block): port to work in terms
4901         of DBusPendingCall
4902         (_dbus_connection_block_pending_call): replace block_for_reply
4903         with this
4904
4905 2005-02-14  Havoc Pennington  <hp@redhat.com>
4906
4907         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4908         properly handle looking up group information by name; fix 
4909         from j@bootlab.org
4910
4911 2005-02-13  Havoc Pennington  <hp@redhat.com>
4912
4913         * dbus/dbus-connection.c (dbus_connection_return_message) 
4914         (dbus_connection_borrow_message): hold dispatch lock while message
4915         is outstanding
4916         (_dbus_connection_block_for_reply): hold dispatch lock while we
4917         block for the reply, so nobody steals our reply
4918         (dbus_connection_pop_message): hold the dispatch lock while we
4919         pluck the message
4920
4921 2005-02-13  Havoc Pennington  <hp@redhat.com>
4922
4923         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4924         (_dbus_connection_release_dispatch)
4925         (_dbus_connection_acquire_io_path)
4926         (_dbus_connection_release_io_path): make the mutex and condvar
4927         control access to the "acquired" flag. Drop the connection lock
4928         while waiting on the condvar. Hopefully these are baby steps in
4929         roughly the right direction.
4930
4931 2005-02-13  Havoc Pennington  <hp@redhat.com>
4932
4933         * dbus/dbus-connection.c: use separate mutexes for the condition
4934         variables; this is some kind of baseline for sanity, but the
4935         condition variables still aren't used correctly afaict
4936
4937 2005-02-13  Havoc Pennington  <hp@redhat.com>
4938
4939         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4940         fix a double-unlock
4941
4942         * dbus/dbus-connection.c
4943         (_dbus_connection_detach_pending_call_unlocked): add this
4944
4945         Initial semi-correct pass through to fix thread locking; there are
4946         still some issues with the condition variable paths I'm pretty
4947         sure
4948         
4949         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4950         lock/unlock calls
4951
4952         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4953         rename to add _unlocked
4954         (struct DBusConnection): move "dispatch_acquired" and
4955         "io_path_acquired" to use only one bit each.
4956         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4957         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4958         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4959         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4960         (_dbus_connection_remove_timeout) 
4961         (_dbus_connection_toggle_timeout): drop lock when calling out to
4962         user functions; done in a hacky/bad way.
4963         (_dbus_connection_send_and_unlock): add a missing unlock
4964         (_dbus_connection_block_for_reply): add a missing unlock
4965
4966         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4967         drop lock in a hacky probably unsafe way to call out to user
4968         function
4969
4970 2005-02-12  Havoc Pennington  <hp@redhat.com>
4971
4972         * tools/dbus-tree-view.c (info_set_func_text): display more
4973         details on args
4974
4975         * bus/driver.c (bus_driver_handle_list_services): list the bus
4976         driver
4977
4978         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4979
4980         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4981         (method_info_get_n_args): new function
4982
4983 2005-02-12  Havoc Pennington  <hp@redhat.com>
4984
4985         * bus/driver.c (bus_driver_handle_introspect): add introspection
4986         for bus driver
4987
4988 2005-02-12  Havoc Pennington  <hp@redhat.com>
4989
4990         * bus/driver.c: put the signature of each bus driver method in the
4991         table of handlers and check it on incoming calls; this isn't
4992         really useful, but going to add introspect support in a minute.
4993
4994 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4995
4996         * mono/Connection.cs: The unpredictability of finalizers in mono
4997         prevents us from deterministically disconnecting the filters from
4998         the Service class's finalizer, so move tracking of filters and
4999         matches here.  Add API for that.
5000
5001         * mono/Service.cs: Remove the code, add code which calls the
5002         methods now on the Connection class.
5003
5004 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5005
5006         * python/dbus.py (class Sender): added to support dbus signals better
5007         (Bus::add_signal_receiver): added expand_args parameter which defaults
5008         to True.  When expand args is True the signal handler will pass the 
5009         message arguments as parameters to the signal handler.  If False
5010         revert to previous behavior where the signal handler must get the
5011         argument list from the message.  This is to help port applications
5012         like HAL that have a tendancy to send variable length argument lists.
5013         self._match_rule_to_receivers is now a dict of dicts.
5014         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5015         removing it from a list
5016         (Bus::_signal_func): change signal handlers so that interface,
5017         signal_name, service, path and message are packed into a Sender
5018         object and that is passed to the handler.  If expand_args is True
5019         extract the args list from the message and append it to the parameter
5020         list
5021         
5022         * python/dbus_bindings.pyx.in (class Signature): added to support 
5023         signiature types
5024         (MessageIter::__init__): changed iteration limit to match D-BUS
5025         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5026         STRUCT and VARIENT type support
5027         (MessageIter::python_value_to_dbus_sig): made recursive to support
5028         recursive types
5029         (MessageIter::append*): added Signature, dict, tuple 
5030         support
5031
5032         * python/examples/example-client.py: added examples of getting tuples
5033         and dicts
5034
5035         * python/examples/example-service.py: added examples of sending tuples
5036         and dicts
5037
5038         * python/examples/example-signal-recipient.py: Fixed to handle new
5039         signal callback format
5040
5041 2005-02-10  Havoc Pennington  <hp@redhat.com>
5042
5043         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5044         (call dbus_g_proxy_add_signal)
5045
5046         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5047         escape the hostname
5048         (_dbus_server_new_for_domain_socket): escape the path
5049
5050         * dbus/dbus-address.c (dbus_address_escape_value): new
5051         (dbus_address_unescape_value): new
5052         (dbus_parse_address): unescape values
5053
5054         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5055
5056         * doc/dbus-specification.xml: explain how to escape values in
5057         addresses
5058
5059 2005-02-10  Havoc Pennington  <hp@redhat.com>
5060
5061         * dbus/dbus-message-factory.c (generate_special): modify test to
5062         avoid using a non-basic dict key
5063
5064         * dbus/dbus-marshal-validate-util.c: add test for the below
5065
5066         * doc/dbus-specification.xml: require that dict keys are a basic
5067         type
5068
5069         * dbus/dbus-marshal-validate.c
5070         (_dbus_validate_signature_with_reason): require that dict key is a
5071         basic type
5072
5073 2005-02-10  Havoc Pennington  <hp@redhat.com>
5074
5075         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5076         change to be _and_unlock instead of _unlocked
5077
5078         * dbus/dbus-connection.c
5079         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5080         have no_update so we can find this bug quickly in future
5081
5082 2005-02-10  Havoc Pennington  <hp@redhat.com>
5083
5084         * dbus/dbus-message-util.c (verify_test_message): tests for string
5085         array
5086
5087         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5088         support for arrays of string/signature/path
5089
5090 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5091
5092         * dbus/dbus-connection.c
5093         (_dbus_connection_queue_received_message_link,
5094         _dbus_connection_message_sent): Add the path to
5095         the verbose output.
5096         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5097         _dbus_connection_send_preallocated_unlocked(), updated the
5098         dispatch status, and unlocks.  Fixes a bug where certain
5099         situations (like a broken pipe) could cause a Disconnect message
5100         to not be sent, tricking the bus into thinking a service was still
5101         there when the process had quit.
5102         (_dbus_connection_send_preallocated): Call
5103         _dbus_connection_send_preallocated_and_unlock().
5104         (_dbus_connection_send_and_unlock): Added.  Calls
5105         _dbus_connection_send_preallocated_and_unlock().
5106         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5107         (dbus_connection_send_with_reply): Update the dispatch status and
5108         unlock.
5109
5110         * mono/Service.cs (~Service): Added.  Removes the filter so that
5111         we don't get unmanaged code calling back into a GCed delegate.
5112         (RemoveFilter); Added.
5113
5114 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5115
5116         * dbus/dbus-message.c (dbus_message_iter_open_container):
5117         - Removed check for iterator type being an array because
5118         get_arg_type does not work with writer iterators
5119         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5120
5121 2005-02-07  Havoc Pennington  <hp@redhat.com>
5122
5123         * doc/dbus-specification.xml: some more language cleanups; add
5124         stuff about how to deal with invalid protocol and extension
5125         points; add _ to allowed chars in auth commands; add EXTENSION_
5126         auth command prefix
5127
5128 2005-02-06  Havoc Pennington  <hp@redhat.com>
5129
5130         * s/expected/required/ in a couple places for clarity
5131
5132 2005-02-07  Colin Walters  <walters@verbum.org>
5133
5134         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5135         sender or proposed_recipient.
5136
5137 2005-02-06  Havoc Pennington  <hp@redhat.com>
5138
5139         * dbus/dbus-message-factory.c (generate_special): more tests
5140
5141         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5142         array length that exceeds the maximum
5143
5144 2005-02-05  Havoc Pennington  <hp@redhat.com>
5145
5146         * dbus/dbus-message-factory.c (generate_special): more test cases,
5147         increasing coverage
5148
5149         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5150         reason why a signature was invalid
5151
5152         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5153         skip the length of the string before we look at it in validation
5154
5155         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5156         equal_substring
5157
5158         * dbus/dbus-message.c (_dbus_message_loader_new): default
5159         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5160
5161 2005-02-05  Havoc Pennington  <hp@redhat.com>
5162
5163         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5164         if the signature of a variant was empty
5165         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5166         struct with no element type)
5167
5168         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5169         mangled messages to break things
5170
5171 2005-02-04  Havoc Pennington  <hp@redhat.com>
5172
5173         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5174         g_quark_try_string() so it actually can return 0
5175         (dbus_g_proxy_connect_signal): ditto
5176
5177 2005-02-04  Havoc Pennington  <hp@redhat.com>
5178
5179         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5180         bogus warning
5181         (tristring_from_message): assert cleanly on null path/interface
5182         (should not be possible though I decided later)
5183         (dbus_g_proxy_dispose): move proxy manager unregistration here
5184         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5185         g_return_if_fail() checks
5186
5187 2005-02-04  Havoc Pennington  <hp@redhat.com>
5188
5189         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5190
5191         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5192         (with some minor changes)
5193
5194         * doc/dbus-specification.xml: add deprecated attribute to
5195         introspection format
5196
5197 2005-01-31  Havoc Pennington  <hp@redhat.com>
5198
5199         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5200         think it's sort of right
5201
5202 2005-01-30  Havoc Pennington  <hp@redhat.com>
5203
5204         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5205
5206 2005-01-30  Havoc Pennington  <hp@redhat.com>
5207
5208         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5209
5210         * autogen.sh: change to autotools 1.9
5211
5212         * glib/dbus-gproxy.c: completely change how signals work
5213         (dbus_g_proxy_add_signal): new function to specify signature of a
5214         signal
5215         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5216         and g_warning if the incoming message has the wrong signature.
5217
5218 2005-01-30  Havoc Pennington  <hp@redhat.com>
5219
5220         * tools/dbus-names-model.c (have_names_notify): fix this
5221
5222         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5223         up the string array handling a bit 
5224
5225 2005-01-30  Havoc Pennington  <hp@redhat.com>
5226
5227         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5228         (dbus_g_pending_call_cancel): new function
5229
5230         * dbus/dbus-glib.h: move GType decls for connection/message here;
5231         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5232         here, just kind of rationalizing how we handle all that
5233
5234         * tools/dbus-names-model.c: new file for a tree model listing the
5235         services on a bus
5236
5237         * tools/dbus-tree-view.c (model_new): use proper typing on the
5238         model rows
5239
5240 2005-01-30  Havoc Pennington  <hp@redhat.com>
5241
5242         * glib/dbus-gmain.c: add a custom GSource back that just checks
5243         whether the message queue has anything in it; otherwise, there are 
5244         cases where we won't see messages in the queue since there was no 
5245         IO visible to the glib main loop
5246
5247         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5248         increase default message timeout to 25 seconds
5249
5250 2005-01-30  Havoc Pennington  <hp@redhat.com>
5251
5252         * test/glib/test-profile.c (no_bus_stop_server): remove the
5253         warning about the g_warning that I just fixed
5254
5255         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5256         custom source, seems to be a lot easier to understand and work
5257         better.
5258
5259 2005-01-30  Havoc Pennington  <hp@redhat.com>
5260
5261         I think this main loop thing is conceptually broken, but here are 
5262         some band aids. I'll maybe rewrite it in a minute.
5263         
5264         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5265         custom GSource, so don't pass it in; confusing
5266         (gsource_server_finalize, gsource_connection_finalize): add
5267         finalize handlers that remove all the watches.  
5268
5269 2005-01-30  Havoc Pennington  <hp@redhat.com>
5270
5271         * glib/dbus-gobject.c (introspect_properties): fix the XML
5272         generated
5273
5274         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5275         which effectively detects the use of freed messages
5276
5277         * glib/dbus-gobject.c (handle_introspect): modify and return the
5278         reply message instead of the incoming message
5279
5280         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5281         gee, maybe it should SEND THE XML instead of just making a string
5282         and freeing it again ;-)
5283
5284         * tools/dbus-print-message.c (print_message): improve printing of
5285         messages
5286
5287         * configure.in: add debug-glib.service to the output
5288
5289 2005-01-30  Havoc Pennington  <hp@redhat.com>
5290
5291         dbus-viewer introspected and displayed the bus driver
5292         
5293         * dbus/dbus-object-tree.c 
5294         (object_tree_test_iteration): add tests for a handler registered on "/"
5295
5296         * dbus/dbus-object-tree.c
5297         (_dbus_decompose_path): fix to handle path "/" properly
5298         (run_decompose_tests): add tests for path decomposition
5299         
5300         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5301         properly
5302
5303         * glib/dbus-gobject.c (handle_introspect): fix quotes
5304
5305         * test/glib/run-test.sh: support launching the bus, then running
5306         dbus-viewer
5307
5308         * test/glib/test-service-glib.c (main): put in a trivial gobject
5309         subclass and register it on the connection
5310
5311         * bus/driver.c (bus_driver_handle_introspect): implement
5312         introspection of the bus driver service
5313
5314         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5315         identifiers, doctype decl
5316
5317         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5318         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5319         returning the service unchanged.
5320         (bus_driver_handle_message): remove old check for reply_serial in
5321         method calls, now the message type deals with that
5322         (bus_driver_handle_message): handle NULL interface
5323
5324         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5325
5326         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5327         -1 for len
5328
5329         * tools/dbus-viewer.c: add support for introspecting a service on
5330         a bus
5331
5332         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5333         (dbus_g_pending_call_unref): add
5334
5335 2005-01-29  Havoc Pennington  <hp@redhat.com>
5336
5337         * tools/dbus-tree-view.c: add support for displaying properties.
5338         (run dbus-viewer with an introspect xml file as arg, then resize
5339         the window so the tree elements show up, not sure what that is)
5340
5341         * glib/dbus-gobject.c (handle_introspect): return
5342         org.freedesktop.Properties and org.freedesktop.Introspectable
5343         interfaces when we are introspected.
5344
5345         * doc/dbus-specification.xml: allow empty interface name when 
5346         Get/Set a property
5347
5348 2005-01-29  Havoc Pennington  <hp@redhat.com>
5349
5350         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5351         though it uses glib, it could be extended for any binding in
5352         principle
5353
5354         * glib/dbus-gobject.c (gobject_message_function): change to the
5355         new way properties work
5356
5357         * dbus/dbus-protocol.h: add the new interfaces
5358
5359         * doc/dbus-specification.xml: document the introspection format,
5360         Introspectable interface, and add an org.freedesktop.Properties
5361         interface.
5362
5363         * glib/dbus-gparser.c: add support for a <property> element
5364
5365         * glib/dbus-gidl.c: add PropertyInfo
5366
5367         * glib/dbus-gobject.c (handle_introspect): put the outermost
5368         <node> outside the signal and property descriptions.
5369         (introspect_properties): export properties as <property> rather
5370         than as method calls
5371
5372 2005-01-28  Havoc Pennington  <hp@redhat.com>
5373
5374         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5375         related to authentication protocol
5376
5377 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5378
5379         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5380                 - BUS_ACTIVATION -> BUS_STARTER
5381                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5382                 - class MessageIter (__init__): Added recursion checking 
5383                 so we throw a nice error instead of just disconnecting from the
5384                 bus.
5385                 (get): Added arg_type parameter for recursion.
5386                 Removed the nil type
5387                 Added signiture type placeholder (not implemented)
5388                 Added struct type placeholder (not implemented)
5389                 Added varient type placeholder (not implemented)
5390                 Commented out dict type for now     
5391                 (get_element_type): renamed from get_array_type
5392                 (get_*): changed to use the dbus_message_iter_get_basic API
5393                 (get_*_array): removed in favor of recursive get_array method
5394                 (get_array): new recursive method which calls get to marshal
5395                 the elements of the array
5396                 (value_to_dbus_sig): New method returns the corrasponding
5397                 dbus signiture to a python value
5398                 (append): Comment out dict handling for now
5399                 Handle lists with the new recursive API
5400                 Comment out None handling for now
5401                 (append_nil): removed
5402                 (append_*): changed to use dbus_message_iter_append_basic API
5403                 (append_*_array): removed in favor of recursive append_array 
5404                 method
5405                 (__str__): Make it easier to print out recursive iterators
5406                 for debugging
5407                 - class Message (__str__): moved type inspection to the
5408                 MessageIter class' __str__ method
5409                 (get_iter): Added an append parameter wich defaults to False
5410                 If True use the new API's to create an append iterator
5411
5412         * python/dbus.py: Update to use new bindings API
5413                 - TYPE_ACTIVATION -> TYPE_STARTER
5414                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5415                 - class ActivationBus -> class StarterBus
5416                 - class RemoteObject (__call__): get an append iterator
5417                 - (_dispatch_dbus_method_call): get an append iterator
5418                 - class Object (emit_signal): get an append iterator
5419
5420         * python/examples/: Fixed up the examples to work with the new API
5421                 
5422 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5423
5424         * configure.in: Bump version up to 0.30.
5425
5426         * HACKING: Add a release item to bump the version number up after 
5427         a release.
5428
5429 2005-01-28  Havoc Pennington  <hp@redhat.com>
5430
5431         * doc/dbus-specification.xml: update to describe 16-bit types and
5432         dict entries
5433
5434         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5435         assertion
5436
5437         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5438         type
5439
5440         * dbus/dbus-marshal-recursive.c: implement
5441
5442 2005-01-27  Havoc Pennington  <hp@redhat.com>
5443
5444         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5445
5446         * configure.in: find the right type for 16 and 32 bit ints as well
5447         as 64
5448
5449         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5450         the 16-bit types so people don't have to stuff them in 32-bit or
5451         byte arrays.
5452
5453 2005-01-27  Havoc Pennington  <hp@redhat.com>
5454
5455         * dbus/dbus-message.c: byteswap the message if you init an
5456         iterator to read/write from it
5457         
5458         * dbus/dbus-marshal-byteswap.c: new file implementing 
5459         _dbus_marshal_byteswap()
5460
5461         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5462
5463 2005-01-26  Havoc Pennington  <hp@redhat.com>
5464         
5465         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5466         build, apparently - nobody noticed?)
5467         
5468 2005-01-26  Havoc Pennington  <hp@redhat.com>
5469
5470         * dbus/dbus-marshal-recursive.h: remove todo comment
5471
5472 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5473
5474         * Land the mono binding changes to conform to the new APIs.
5475
5476         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5477         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5478
5479         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5480         type code as a string.
5481         (InitAppending): Rename dbus_message_append_iter_init() to
5482         dbus_message_iter_init_append().
5483
5484         * mono/BusDriver.cs: Rename ServiceEventHandler to
5485         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5486         Rename ServiceOwnerChanged to NameOwnerChanged.
5487
5488         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5489         underlying C call.
5490
5491         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5492
5493         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5494         dbus_bus_acquire_service() to dbus_bus_request_name().
5495
5496         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5497         of Type.UnderlyingSystemType to get the correct element type for
5498         the array.
5499         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5500         dbus_message_get_{element|arg}_type() instead of
5501         dbus_message_iter_init_array_iterator().
5502         (Append): Replace dbus_message_iter_append_array() with
5503         dbus_message_iter_open_container() and
5504         dbus_message_iter_close_container().
5505
5506         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5507         types have been removed.
5508         
5509         * mono/DBusType/*.cs: Replace calls of
5510         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5511         but specify the type in the DllImport extern declaration.  Ditto
5512         for dbus_message_iter_append_[type]() ->
5513         dbus_message_iter_append_basic().
5514
5515         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5516         NameOwnerChangedHandler.
5517
5518 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5519
5520         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5521                 - get_base_service -> get_unique_name
5522                 - bus_get_base_service -> bus_get_unique_name
5523                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5524                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5525                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5526                 - bus_activate_service -> bus_start_service_by_name
5527                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5528                 - bus_acquire_service -> bus_request_name
5529                 - dbus_bus_acquire_service -> dbus_bus_request_name
5530                 - bus_service_exists -> bus_name_has_owner
5531                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5532
5533         * python/dbus.py: Rename of methods
5534                 - activate_service -> start_service_by_name
5535                 - bus_acquire_service -> bus_request_name
5536                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5537                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5538
5539         
5540 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5541
5542         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5543         signature for the method that can't be found.
5544
5545         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5546         the message has any arguments, we need to call
5547         _dbus_type_reader_get_current_type(), not
5548         _dbus_type_reader_has_next().
5549
5550 2005-01-24  Havoc Pennington  <hp@redhat.com>
5551
5552         * dbus/dbus-message-factory.c: more testing of message validation
5553
5554         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5555         header
5556
5557 2005-01-23  Havoc Pennington  <hp@redhat.com>
5558
5559         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5560         get this all working, not many tests in the framework yet though
5561
5562 2005-01-22  Havoc Pennington  <hp@redhat.com>
5563
5564         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5565         tutorial, based on work from David Wheeler.
5566
5567 2005-01-21  Havoc Pennington  <hp@redhat.com>
5568
5569         * dbus/dbus-bus.c: add more return_if_fail checks
5570
5571         * dbus/dbus-message.c (load_message): have the "no validation"
5572         mode (have to edit the code to toggle the mode for now though)
5573
5574         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5575         skips all validation; I want to use this at least for benchmark
5576         baseline, I'm not sure if it should be a publicly-available switch.
5577
5578 2005-01-21  Havoc Pennington  <hp@redhat.com>
5579
5580         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5581         toplevel doxygen group as the low-level API stuff
5582
5583         * dbus/dbus.h: note that libdbus is the low-level API
5584
5585 2005-01-20  Havoc Pennington  <hp@redhat.com>
5586
5587         * update-dbus-docs.sh: script to update docs on the web site, only
5588         works for me though. neener.
5589
5590 2005-01-20  Havoc Pennington  <hp@redhat.com>
5591
5592         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5593         code can reveal bugs in it
5594
5595 2005-01-20  Havoc Pennington  <hp@redhat.com>
5596
5597         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5598         select() version, patches from Tor Lillqvist
5599
5600 2005-01-20  Havoc Pennington  <hp@redhat.com>
5601
5602         * doc/dbus-tutorial.xml: replace > with &gt;
5603
5604         * bus/services.c (bus_registry_acquire_service): validate the name
5605         and return a better error if it's no good.
5606
5607         * doc/dbus-specification.xml: note NO_AUTO_START change
5608
5609         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5610         from AUTO_START, we're toggling the default
5611
5612         * bus/dispatch.c: adapt the tests to change of auto-start default
5613
5614 2005-01-18  Havoc Pennington  <hp@redhat.com>
5615
5616         * rename dbus-daemon-1 to dbus-daemon throughout
5617
5618 2005-01-18  Havoc Pennington  <hp@redhat.com>
5619
5620         * Throughout, grand renaming to strip out the use of "service",
5621         just say "name" instead (or "bus name" when ambiguous).  Did not
5622         change the internal code of the message bus itself, only the
5623         programmer-facing API and messages.
5624         
5625         * doc/dbus-specification.xml: further update the message bus section
5626         
5627         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5628         in error case
5629
5630 2005-01-17  Havoc Pennington  <hp@redhat.com>
5631
5632         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5633         ever
5634
5635         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5636         "invalid name character" not only non-ASCII
5637
5638         * doc/dbus-specification.xml: further update spec, message bus 
5639         parts are still out-of-date but the marshaling etc. stuff is now
5640         accurate-ish
5641
5642 2005-01-17  Havoc Pennington  <hp@redhat.com>
5643
5644         * doc/dbus-specification.xml: partially update spec
5645
5646 2005-01-17  Havoc Pennington  <hp@redhat.com>
5647
5648         * Throughout, align variant bodies according to the contained
5649         type, rather than always to 8. Should save a fair bit of space in
5650         message headers.
5651         
5652         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5653         fix handling of case where p == end
5654
5655         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5656
5657 2005-01-17  Havoc Pennington  <hp@redhat.com>
5658
5659         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5660
5661         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5662         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5663         are marshaling/unmarshaling a boolean.
5664
5665 2005-01-16  Havoc Pennington  <hp@redhat.com>
5666
5667         This is about it on what can be disabled/deleted from libdbus
5668         easily, back below 150K anyhow. Deeper cuts are more work than 
5669         just turning the code off as I've done here.
5670         
5671         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5672         signed int convenience funcs
5673
5674         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5675         verbose mode
5676
5677         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5678         things out of libdbus
5679
5680         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5681         
5682         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5683         tests-enabled-only, though it should probably be deleted)
5684
5685         * dbus/dbus-message-util.c: same stuff
5686
5687         * dbus/dbus-auth-util.c: same stuff
5688
5689 2005-01-16  Havoc Pennington  <hp@redhat.com>
5690
5691         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5692
5693         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5694         way for stripping down dbus-userdb.c stuff included in libdbus.
5695         Rename _dbus_parse_uid for consistency.
5696
5697 2005-01-16  Havoc Pennington  <hp@redhat.com>
5698
5699         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5700         name the assertion failed in
5701
5702         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5703         (_dbus_return_val_if_fail): assert that the name of the function
5704         containing the check doesn't start with '_', since we only want to 
5705         use checks on public functions
5706         
5707         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5708         checks to assertions
5709
5710         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5711         change checks to asserts for private function
5712
5713         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5714         to asserts for private function
5715
5716         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5717         broken assertion that was breaking make check
5718         (_dbus_type_reader_array_is_empty): remove this rather than fix
5719         it, was only used in assertions
5720
5721 2005-01-16  Havoc Pennington  <hp@redhat.com>
5722
5723         * test/unused-code-gc.py: hacky script to find code that's used
5724         only by the bus (not libdbus) or used only by tests or not used at
5725         all. It has some false alarms, but looks like we can clean up a
5726         lot of size from libdbus.
5727
5728         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5729         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5730         
5731 2005-01-16  Havoc Pennington  <hp@redhat.com>
5732
5733         * Add and fix docs according to Doxygen warnings throughout
5734         source.
5735         
5736         * dbus/dbus-marshal-recursive.c
5737         (_dbus_type_reader_array_is_empty): change this to just call
5738         array_reader_get_array_len() and make it static
5739
5740         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5741         from get_array_type
5742         (dbus_message_iter_init_append): rename from append_iter_init
5743
5744         * dbus/dbus-marshal-recursive.c
5745         (_dbus_type_reader_get_element_type): rename from
5746         _dbus_type_reader_get_array_type
5747
5748 2005-01-15  Havoc Pennington  <hp@redhat.com>
5749
5750         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5751
5752         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5753         when DBUS_DISABLE_ASSERT
5754         (_dbus_marshal_set_basic): be sure we align for the string length
5755
5756         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5757         this look faster
5758
5759         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5760         inline macro version
5761         (_dbus_string_set_byte): provide inline macro version
5762
5763 2005-01-15  Havoc Pennington  <hp@redhat.com>
5764
5765         * Land the new message args API and type system.
5766
5767         This patch is huge, but the public API change is not 
5768         really large. The set of D-BUS types has changed somewhat, 
5769         and the arg "getters" are more geared toward language bindings;
5770         they don't make a copy, etc.
5771
5772         There are also some known issues. See these emails for details
5773         on this huge patch:
5774         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5775         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5776         
5777         * dbus/dbus-marshal-*: all the new stuff
5778
5779         * dbus/dbus-message.c: basically rewritten
5780
5781         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5782         freed blocks to be all non-nul bytes so using freed memory is less
5783         likely to work right
5784
5785         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5786         DBUS_FAIL_MALLOC=N environment variable, so you can do
5787         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5788         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5789         thorough.
5790
5791         * qt/message.cpp: port to the new message args API
5792         (operator<<): use str.utf8() rather than str.unicode()
5793         (pretty sure this is right from the Qt docs?)
5794
5795         * glib/dbus-gvalue.c: port to the new message args API
5796
5797         * bus/dispatch.c, bus/driver.c: port to the new message args API
5798
5799         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5800         "locked" flag to TRUE and align_offset to 0; I guess we never
5801         looked at these anyhow, but seems cleaner.
5802
5803         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5804         move allocation padding macro to this header; use it to implement
5805         (_DBUS_STRING_STATIC): ability to declare a static string.
5806
5807         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5808         change to return TRUE if the interface is not set.
5809
5810         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5811         to dbus-marshal-validate.[hc]
5812
5813         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5814         dbus-internals.c
5815
5816         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5817         to dbus-marshal-*.[hc]
5818
5819         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5820         function here from dbus-marshal.c
5821
5822 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5823
5824         * NEWS: Update for 0.23.
5825
5826         * configure.in: Release 0.23.
5827
5828 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5829
5830         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5831         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5832         behind.
5833
5834         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5835         uninstall"
5836
5837         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5838         is an enum, get the enum's underlying type.  Another mono
5839         1.1.3 fix.
5840
5841 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5842
5843         Patch from Sjoerd Simons <sjoerd@luon.net>
5844
5845         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5846         DESTDIR.  It breaks stuff.
5847
5848 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5849
5850         Patch from Tambet Ingo <tambet@ximian.com>
5851
5852         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5853         calling type.GetElementType().  The code previously depended on
5854         broken Mono behavior, which was fixed in Mono 1.1.3.
5855
5856         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5857         Activator.CreateInstance() so that the class's constructor is
5858         called with the right parameters.
5859
5860 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5861
5862         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5863
5864         * dbus/dbus-connection.c
5865         (_dbus_connection_queue_received_message_link): Call
5866         _dbus_connection_remove_timeout() instead of the _locked()
5867         variant, since it's always called from
5868         _dbus_connection_handle_watch(), which handles the locking.
5869         Removed the _locked() variant since it's no longer used.
5870
5871 2005-01-03  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5874         return
5875         
5876 2004-12-26  Havoc Pennington  <hp@redhat.com>
5877
5878         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5879
5880 2005-01-03  Havoc Pennington  <hp@redhat.com>
5881
5882         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5883         floating point
5884
5885         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5886
5887 2005-01-02  Havoc Pennington  <hp@redhat.com>
5888
5889         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5890
5891 2005-01-01  Havoc Pennington  <hp@redhat.com>
5892
5893         * configure.in: add -Wfloat-equal
5894
5895 2005-01-01  Havoc Pennington  <hp@redhat.com>
5896
5897         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5898         for a variety of reasons '==' doesn't do this.
5899
5900 2004-12-31  Havoc Pennington  <hp@redhat.com>
5901
5902         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5903         I keep wishing I had
5904
5905 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5906
5907         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5908
5909 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5910
5911         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5912         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5913         dbus-protocol.h.  Because they are defines and not enums they are not
5914         autogenerated.
5915
5916 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5917
5918         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5919         dbus_bus_activate_service
5920
5921         * python/dbus.py (Bus.activate_service): activate a service on the
5922         bus.
5923
5924 2004-12-24  Havoc Pennington  <hp@redhat.com>
5925
5926         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5927         file format has also changed and I haven't adapted to that yet
5928         
5929         * Makefile.am: load .gcno files from latest gcc
5930
5931 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5932         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5933
5934         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5935         lowlevel binding
5936
5937         * python/dbus.py (get_unix_user): Added binding to 
5938         call dbus_bindings.bus_get_unix_user
5939
5940         * python/extract.py: Modified the proto_pat regex to
5941         handle unsigned long
5942
5943 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5944
5945         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5946         better POSIX compliance.
5947
5948 2004-12-19  Havoc Pennington  <hp@redhat.com>
5949
5950         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5951         (_dbus_string_insert_8_aligned): new functions
5952
5953         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5954
5955 2004-12-18  Havoc Pennington  <hp@redhat.com>
5956
5957         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5958         macro
5959
5960         * dbus/dbus-message.c: fix a comment, and add a still-unused
5961         not-implemented function
5962
5963         * dbus/dbus-marshal.h: fix comment
5964
5965         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5966
5967 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5968
5969         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5970         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5971         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5972         Type.UnderlyingSystemType to get the actual system type
5973         underneath.  This code previously depended on the broken Mono
5974         behavior, which was fixed in 1.1.3.
5975
5976 2004-11-27  Havoc Pennington  <hp@redhat.com>
5977
5978         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5979         are disabled
5980         (_dbus_string_get_const_data): inline when asserts are disabled
5981
5982         * dbus/dbus-message.c: record the _dbus_current_generation of
5983         creation so we can complain if dbus_shutdown() is used improperly.
5984         Do this only if checks are enabled.
5985
5986         * dbus/dbus-connection.c: ditto
5987         
5988 2004-11-26  Havoc Pennington  <hp@redhat.com>
5989
5990         * test/glib/test-profile.c: add with_bus mode to profile echoes
5991         that go through the bus.
5992
5993         * test/glib/run-test.sh: add ability to run test-profile
5994
5995         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5996         config file reload.
5997
5998 2004-11-26  Havoc Pennington  <hp@redhat.com>
5999
6000         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6001         thing was implemented
6002
6003 2004-11-26  Havoc Pennington  <hp@redhat.com>
6004
6005         * test/glib/test-profile.c: tweak a bit, add support for some
6006         made-up minimal malloc overhead with plain sockets, since in 
6007         real life some sort of buffers are unavoidable thus we could 
6008         count them in the theoretical best case
6009
6010 2004-11-26  Havoc Pennington  <hp@redhat.com>
6011
6012         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6013         where I was trying to cache one too many messages
6014
6015 2004-11-26  Havoc Pennington  <hp@redhat.com>
6016
6017         * dbus/dbus-message.c: reimplement message cache as an array which 
6018         makes the cache about twice as fast and saves maybe 1.5% overall
6019
6020 2004-11-26  Havoc Pennington  <hp@redhat.com>
6021
6022         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6023         message cache lock here
6024
6025 2004-11-26  Havoc Pennington  <hp@redhat.com>
6026
6027         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6028         the "char byte_order" next to each other to save 4 bytes
6029         (dbus_message_new_empty_header): reduce preallocation, since the
6030         message cache should achieve a similar effect
6031         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6032         message cache that keeps a few DBusMessage around in a pool,
6033         another 8% speedup or so.
6034
6035         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6036
6037 2004-11-25  Havoc Pennington  <hp@redhat.com>
6038
6039         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6040         to write, without reading or blocking, try it before the poll()
6041         and skip the poll() if nothing remains to write. This is about a
6042         3% speedup in the echo client/server
6043
6044 2004-11-25  Havoc Pennington  <hp@redhat.com>
6045
6046         The primary change here is to always write() once before adding
6047         the write watch, which gives us about a 10% performance increase.
6048         
6049         * dbus/dbus-transport-unix.c: a number of modifications to cope
6050         with removing messages_pending
6051         (check_write_watch): properly handle
6052         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6053         messages_pending stuff
6054         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6055         AUTHENTICATED cases
6056         (unix_handle_watch): after writing, see if the write watch can be
6057         removed
6058         (unix_do_iteration): assert that write_watch/read_watch are
6059         non-NULL rather than testing that they aren't, since they 
6060         aren't allowed to be NULL. check_write_watch() at the end so 
6061         we add the watch if we did not finish writing (e.g. got EAGAIN)
6062
6063         * dbus/dbus-transport-protected.h: remove messages_pending call,
6064         since it resulted in too much inefficient watch adding/removing; 
6065         instead we now require that the transport user does an iteration 
6066         after queueing outgoing messages, and after trying the first
6067         write() we add a write watch if we got EAGAIN or exceeded our 
6068         max bytes to write per iteration setting
6069
6070         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6071         function
6072
6073         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6074         freed and then accessed, valgrind flagged this bug, fix it
6075
6076         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6077         as the last valid field plus 1, where really it is equal to the
6078         last valid field. Corrects some message corruption issues.
6079
6080         * dbus/dbus-mainloop.c: verbosity changes
6081
6082         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6083         instead of aborting in one of the test codepaths
6084
6085         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6086         caused not printing the pid ever again if a verbose was missing
6087         the newline at the end
6088         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6089
6090         * dbus/dbus-connection.c: verbosity changes; 
6091         (dbus_connection_has_messages_to_send): new function
6092         (_dbus_connection_message_sent): no longer call transport->messages_pending
6093         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6094         try to write() immediately, so we can avoid the write watch. This
6095         is the core purpose of this patchset
6096         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6097         dump the outgoing message queue, so nobody will get confused
6098         trying to send them or thinking stuff is pending to be sent
6099
6100         * bus/test.c: verbosity changes
6101
6102         * bus/driver.c: verbosity/assertion changes
6103
6104         * bus/dispatch.c: a bunch of little tweaks to get it working again
6105         because this patchset changes when/where you need to block.
6106
6107 2004-11-23  Havoc Pennington  <hp@redhat.com>
6108
6109         * test/glib/test-profile.c: modify to accept a plain_sockets
6110         argument in which case it will bench plain sockets instead of
6111         libdbus, for comparison purposes.
6112
6113 2004-11-22  Havoc Pennington  <hp@redhat.com>
6114
6115         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6116         threads for more time, so sysprof can get a grip on it.
6117
6118         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6119         pointless variable
6120
6121 2004-11-13  Havoc Pennington  <hp@redhat.com>
6122
6123         * test/glib/test-profile.c: fix this thing up a bit
6124
6125         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6126         preallocation sizes by a fair bit; not sure if this will be an
6127         overall performance win or not, but it does reduce reallocs.
6128
6129         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6130         the test hack that forced constant realloc if asserts are
6131         disabled, so we can profile sanely. Sprinkle in some
6132         _DBUS_UNLIKELY() which are probably pointless, but before I
6133         noticed the real performance problem I put them in.
6134         (_dbus_string_validate_utf8): micro-optimize this thing a little
6135         bit, though callgrind says it didn't help; then special-case
6136         ascii, which did help a lot; then be sure we detect nul bytes as
6137         invalid, which is a bugfix.
6138         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6139         superstition; use memset to nul the padding instead of a manual
6140         loop.
6141         (_dbus_string_get_length): inline this as a
6142         macro; it showed up in the profile because it's used for loop
6143         tests and so forth
6144
6145 2004-11-10  Colin Walters  <walters@verbum.org>
6146
6147         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6148         for extra paranoia.
6149
6150 2004-11-09  Colin Walters  <walters@verbum.org>
6151
6152         * dbus/dbus-string.c (_dbus_string_get_length): New
6153         function, writes DBusString to C buffer.
6154
6155         * dbus/dbus-string.h: Prototype it.
6156
6157         * dbus/dbus-message.c (dbus_message_type_to_string): New
6158         function, converts message type into C string.
6159
6160         * dbus/dbus-message.h: Prototype it.
6161
6162         * bus/selinux.c (bus_selinux_check): Take source pid,
6163         target pid, and audit data.  Pass audit data to
6164         avc_has_perm.
6165         (log_audit_callback): New function, appends extra
6166         audit information.
6167         (bus_selinux_allows_acquire_service): Also take
6168         service name, add it to audit data.
6169         (bus_selinux_allows_send): Also take message
6170         type, interface, method member, error name,
6171         and destination, and add them to audit data.
6172         (log_cb): Initialize func_audit.
6173         
6174         * bus/selinux.h (bus_selinux_allows_acquire_service)
6175         (bus_selinux_allows_send): Update prototypes 
6176
6177         * bus/services.c (bus_registry_acquire_service): Pass
6178         service name to bus_selinux_allows_acquire_service.
6179
6180         * bus/bus.c (bus_context_check_security_policy): Pass
6181         additional audit data.  Move assignment of dest
6182         to its own line.
6183
6184 2004-11-07  Colin Walters  <walters@verbum.org>
6185
6186         * dbus/dbus-transport-unix.c (do_authentication): Always
6187         initialize auth_completed.
6188         
6189 2004-11-07  Colin Walters  <walters@verbum.org>
6190
6191         * bus/bus.c (load_config): Break into three
6192         separate functions: process_config_first_time_only,
6193         process_config_every_time, and process_config_postinit.
6194         (process_config_every_time): Move call of
6195         bus_registry_set_service_context_table into
6196         process_config_postinit.
6197         (process_config_postinit): New function, does
6198         any processing that needs to happen late
6199         in initialization (and also on reload).
6200         (bus_context_new): Instead of calling load_config,
6201         open config parser here and call process_config_first_time_only
6202         and process_config_every_time directly.  Later, after
6203         we have forked but before changing UID,
6204         invoke bus_selinux_full_init, and then call
6205         process_config_postinit.
6206         (bus_context_reload_config): As in bus_context_new,
6207         load parse file inside here, and call process_config_every_time
6208         and process_config_postinit.
6209
6210         * bus/services.h, bus/services.c
6211         (bus_registry_set_service_context_table): Rename
6212         from bus_registry_set_sid_table.  Take string hash from config
6213         parser, and convert them here into SIDs.
6214
6215         * bus/config-parser.c (struct BusConfigParser): Have
6216         config parser only store a mapping of service->context
6217         string.
6218         (merge_service_context_hash): New function.
6219         (merge_included): Merge context string hashes instead
6220         of using bus_selinux_id_table_union.
6221         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6222         simply create a new string hash.
6223         (bus_config_parser_unref): Unref it.
6224         (start_selinux_child): Simply insert strings into hash,
6225         don't call bus_selinux_id_table_copy_over.
6226
6227         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6228         (bus_selinux_id_table_copy_over): Delete.
6229
6230 2004-11-03  Colin Walters  <walters@verbum.org>
6231
6232         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6233         variables.
6234         
6235 2004-11-03  Colin Walters  <walters@verbum.org>
6236
6237         * bus/test-main.c (test_pre_hook): Fix test logic,
6238         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6239
6240 2004-11-02  Colin Walters  <walters@redhat.com>
6241
6242         * bus/selinux.c (bus_selinux_init): Split into two functions,
6243         bus_selinux_pre_init and bus_selinux_post_init.
6244         (bus_selinux_pre_init): Just determine whether SELinux is
6245         enabled.
6246         (bus_selinux_post_init): Do everything else.
6247
6248         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6249         config file, and bus_selinux_post_init after.  This ensures that
6250         we don't lose the policyreload notification thread that
6251         bus_selinux_init created before forking previously.
6252         
6253         * bus/test-main.c (test_pre_hook): Update for split.
6254
6255 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6256
6257         Patch from Johan Fischer <linux@fischaz.com>
6258         
6259         * mono/doc/Makefile.am (install-data-local): Added directory
6260         install for DESTDIR
6261
6262 2004-10-29  Colin Walters  <walters@redhat.com>
6263
6264         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6265         parameter for fd to write pid to.       
6266
6267         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6268         
6269         * bus/bus.c (bus_context_new): Pass print_pid_fd
6270         to _dbus_become_daemon (bug #1720)
6271
6272 2004-10-29  Colin Walters  <walters@redhat.com>
6273
6274         Patch from Ed Catmur <ed@catmur.co.uk>
6275
6276         * mono/doc/Makefile.am (install-data-local): Handle
6277         DESTDIR.
6278
6279 2004-10-29  Colin Walters  <walters@redhat.com>
6280
6281         * bus/.cvsignore, qt/.cvsignore: Update.
6282
6283 2004-10-29  Colin Walters  <walters@redhat.com>
6284
6285         Patch from Kristof Vansant <de_lupus@pandora.be>
6286
6287         * configure.in: Detect Slackware.
6288         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6289         * bus/rc.messagebus.in: New file.
6290
6291 2004-10-29  Colin Walters  <walters@redhat.com>
6292
6293         * tools/dbus-monitor.c (filter_func): Return
6294         DBUS_HANDLER_RESULT_HANDLED in filter function
6295         for now.  See:
6296         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6297
6298 2004-10-29  Colin Walters  <walters@redhat.com>
6299
6300         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6301
6302         * bus/services.c (bus_registry_acquire_service): 
6303         Correctly retrieve service name from DBusString
6304         for printing.
6305
6306 2004-10-29  Colin Walters  <walters@redhat.com>
6307
6308         * dbus/dbus-glib.h: Update documentation to not
6309         refer to internal APIs.
6310
6311 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6312
6313         * mono/Arguments.cs (GetDBusTypeConstructor):
6314         type.UnderlyingSystemType will return "System.Byte" if you do it
6315         on "byte[]", which is not what we want.  So check the type.IsArray
6316         property and use System.Array instead.
6317
6318 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6319
6320         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6321         the DBusUserInfo structure since this is passed into the function.
6322         This would cause a double free when the function that allocated
6323         the structure would try to free it when an error occured.
6324
6325         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6326         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6327         for service activation to avoid 32bit/64bit parallel install issues
6328
6329 2004-10-21  Colin Walters  <walters@verbum.org>
6330
6331         * AUTHORS: Fix my email address, the @gnu.org one
6332         has been bouncing for some time.  Also add J5.
6333         
6334 2004-10-21  Colin Walters  <walters@verbum.org>
6335
6336         * dbus/dbus-transport-unix.c (do_authentication): Return
6337         authentication status to callers.
6338         (unix_handle_watch): If we completed authentication this round,
6339         don't do another read.  Instead wait until the next iteration,
6340         after we've read any pending data in the auth buffer.
6341         (unix_do_iteration): Ditto.
6342         (unix_handle_watch): Updated for new do_authentication prototype.
6343
6344 2004-10-18  Colin Walters  <walters@verbum.org>
6345
6346         * bus/selinux.c (bus_selinux_enabled): Handle
6347         --disable-selinux case.
6348         
6349 2004-10-18  Colin Walters  <walters@verbum.org>
6350
6351         * bus/selinux.h: Add bus_selinux_enabled.
6352         
6353         * bus/selinux.c (bus_selinux_enabled): Implement it.
6354         
6355         * bus/config-parser.c (struct include): Add
6356         if_selinux_enabled member.
6357         (start_busconfig_child): Parse if_selinux_enabled
6358         attribute for include.
6359         (bus_config_parser_content): Handle it.
6360
6361         * bus/session.conf.in, bus/system.conf.in: Add
6362         inclusion of context mapping to default config files;
6363         conditional on SELinux being enabled.
6364         
6365         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6366         
6367         * test/data/invalid-config-files/badselinux-1.conf, 
6368         test/data/invalid-config-files/badselinux-2.conf:
6369         Test files for bad syntax.
6370         
6371 2004-10-17  Colin Walters  <walters@verbum.org>
6372
6373         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6374         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6375         format specifier mismatches.
6376
6377 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6378
6379         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6380         format string.
6381
6382         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6383         pointer (bug #1540, Leonardo Boiko).
6384
6385 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6386
6387         * mono/BusDriver.cs: Changed BusDriver struct to remove
6388         the ServiceCreated and ServiceDeleted events and replace them
6389         with the new ServiceOwnerChanged event.
6390
6391         * mono/example/BusListener.cs: Added a new example program,
6392         which listens for and reports any ServiceOwnerChanged events
6393         on the bus driver.
6394
6395         * mono/example/Makefile.am (DESTDIR): Build changes for the
6396         new BusListener.cs example.
6397
6398 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6399
6400         * bus/signals.c (bus_match_rule_parse): validate the components of
6401         match rules (bug #1439).
6402
6403         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6404
6405 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6406
6407         * doc/dbus-specification.xml: document ServiceOwnerChanged
6408         signal.
6409         
6410         * bus/driver.c, bus/driver.h, bus/services.c: Use
6411         ServiceOwnerChanged signal instead of ServiceCreated and
6412         ServiceDeleted.
6413         
6414         * bus/dispatch.c: update testcase for the new signal.
6415
6416 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6417
6418         Patch from Nat Friedman <nat@novell.com>
6419
6420         * mono/Makefile.am: A number of small build fixes to allow "make
6421         distcheck" to succeed.
6422
6423         * mono/example/Makefile.am: "make distcheck" fixes.
6424
6425         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6426         key in @srcdir@.
6427
6428         * test/Makefile.am: "make distcheck" fixes.
6429
6430 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6431
6432         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6433
6434         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6435
6436         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6437         messages after the first one (bug #1389).
6438         
6439         * bus/dispatch.c (check_double_hello_message): add a test case for
6440         the double hello message bug.
6441         (check_existent_service_activation): fix check of spawning error.
6442         
6443 2004-09-16  David Zeuthen  <david@fubar.dk>
6444
6445         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6446
6447 2004-09-12  David Zeuthen  <david@fubar.dk>
6448
6449         Patch from Kay Sievers <kay.sievers@vrfy.org>
6450
6451         * bus/bus.c (bus_context_new):
6452         * bus/bus.h:
6453         * bus/main.c (usage)
6454         (main):
6455         Add commandline option --nofork to override configuration file
6456         setting.
6457
6458 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6459
6460         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6461         compilers don't like it (bug #974).
6462
6463 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6464
6465         * qt/connection.*: Applied patch by Jérôme Lodewyck
6466         <lodewyck@clipper.ens.fr> to integrate an existing
6467         connection into the Qt eventloop
6468
6469 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6470
6471         * mono/BusDriver.cs: Added.  This is a class for interacting with
6472         the org.freedesktop.DBus service.
6473
6474         * mono/Message.cs: Added a mechanism to expose the message that is
6475         currently being dispatched via the static Message.Current
6476         property.  Added Message.Sender and Message.Destination
6477         properties.
6478
6479         * mono/Handler.cs: Expose the dispatched message via
6480         Message.Current when handling method calls.
6481
6482         * mono/Service.cs: Expose the dispatched message via
6483         Message.Current when handling signal emissions.
6484         
6485         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6486         Connection.BaseService property.
6487
6488 2004-08-28  Havoc Pennington  <hp@redhat.com>
6489
6490         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6491
6492         More fixes from Steve Grubb
6493         
6494         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6495         (_dbus_listen_tcp_socket): fix fd leak
6496
6497         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6498         EINTR to a bit lower in the code
6499
6500 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6501
6502         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6503         TRUE if we are inquiring about the existence of the built-in
6504         org.freedesktop.DBus service.
6505
6506 2004-08-25  John Palmieri  <johnp@redhat.com>
6507         * bus/config-parser.c:
6508         (struct PolicyType): Add POLICY_CONSOLE
6509         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6510         (start_busconfig_child): Sets up console element when
6511         <policy at_console=""> is encountered in a policy file
6512         (append_rule_from_element): Convert console elements to console
6513         rules.
6514
6515         * bus/policy.c: 
6516         (bus_policy_create_client_policy): Add console rules to the client
6517         policy based on if the client is at the console
6518         (bus_policy_append_console_rule): New function for adding a
6519         console rule to a policy
6520         (bus_policy_merge): Handle console rule merging
6521
6522         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6523         where we check for console user files
6524         
6525         * dbus/dbus-sysdeps.c:
6526         (_dbus_file_exists): New function which checks if the given
6527         file exists
6528         (_dbus_user_at_console): New function which does the system
6529         specific process of checking if the user is at the console
6530
6531         * dbus/dbus-userdb.c:
6532         (_dbus_is_console_user): New function converts a UID to user name
6533         and then calls the system specific _dbus_user_at_console to 
6534         see if the user is at the console and therefor a console user
6535
6536 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6537
6538         * bus/config-parser.c (set_limit):
6539         * bus/dbus-daemon-1.1.in:
6540         * test/data/valid-config-files/many-rules.conf: set the
6541         max_match_rules_per_connection limt from the config file. 
6542
6543         * doc/busconfig.dtd: update the DTD.
6544
6545         * bus/driver.c: remove some unused variables.
6546
6547 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6548
6549         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6550         it's been replaced by dbus_g_bus_get
6551
6552 2004-08-23  Colin Walters  <walters@redhat.com>
6553
6554         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6555
6556         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6557
6558         * bus/selinux.c: Create a thread for policy reload notification.
6559         (bus_selinux_get_policy_root): Implement.
6560
6561         * bus/config-parser.c (start_busconfig_child)
6562         (bus_config_parser_content): Support SELinux-root relative
6563         inclusion.
6564
6565         * configure.in <HAVE_SELINUX>: Add -lpthread.
6566         
6567         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6568         (test_post_hook): Move memory checking into here.
6569         (test_pre_hook, test_post_hook): Move SELinux checks in
6570         here, but conditional on a DBUS_TEST_SELINUX environment
6571         variable.  Unfortunately we can't run the SELinux checks
6572         as a normal user, since they won't have any permissions
6573         for /selinux.  So this will have to be tested manually
6574         for now, until we have virtualization for most of
6575         libselinux.
6576         
6577 2004-08-23  Havoc Pennington  <hp@redhat.com>
6578
6579         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6580         drop supplementary groups, suggested by Steve Grubb
6581
6582 2004-08-20  Colin Walters  <walters@redhat.com>
6583
6584         * bus/config-parser.c (start_busconfig_child): Remove some unused
6585         variables.
6586         
6587         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6588         warning.
6589
6590 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6591
6592         * configure.in: If --enable-mono is passed in, if we can't find
6593         mono error out.
6594
6595         * mono/Makefile.am: Use /gacutil to install assemblies into the
6596         GAC and not /root.
6597
6598 2004-08-12  Havoc Pennington  <hp@redhat.com>
6599
6600         * NEWS: update for 0.22
6601
6602         * configure.in: release 0.22
6603
6604 2004-08-11  Colin Walters  <walters@redhat.com>
6605
6606         * tools/dbus-send.c (main, usage): Add --reply-timeout
6607         argument.
6608
6609 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6610
6611         * bus/bus.c (process_config_first_time_only): get rid of an unused
6612         DBusError that was causing a memoy leak (bug #989).
6613
6614         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6615         fix compilation on Solaris/Forte C (bug #974)
6616
6617         * bus/main.c (main): plug two minuscule memleaks.
6618
6619 2004-08-10  Havoc Pennington  <hp@redhat.com>
6620
6621         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6622
6623 2004-08-09  Havoc Pennington  <hp@redhat.com>
6624
6625         * COPYING: switch to Academic Free License version 2.1 instead of
6626         2.0, to resolve complaints about patent termination clause.
6627
6628 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6629
6630         * README: added documentation for the --enable-python 
6631         configure switch.
6632
6633 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6634
6635         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6636         _unref in the SELinux support.
6637
6638         * doc/busconfig.dtd: update DTD for SELinux support.
6639
6640         * bus/config-loader-libxml.c: fix error handler and parser
6641         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6642
6643         * configure.in: remove the warning about libxml2.
6644
6645         * dbus/dbus-bus.c: silence doxygen warning.
6646
6647 2004-07-31  Colin Walters  <walters@redhat.com>
6648
6649         * configure.in: Move #error in SELinux check to its own line.
6650
6651 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6652
6653         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6654         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6655         dbus_error_set.
6656
6657         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6658         broken by the change in the _SET_OOM macros.
6659
6660 2004-07-31  Colin Walters  <walters@redhat.com>
6661
6662         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6663         BUS_SET_OOM.
6664
6665 2004-07-31  Colin Walters  <walters@redhat.com>
6666
6667         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6668         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6669         AC_MSG_CHECKING.
6670
6671 2004-07-24  Havoc Pennington  <hp@redhat.com>
6672
6673         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6674
6675         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6676         functionality
6677
6678         * configure.in: add --enable-selinux
6679         
6680         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6681
6682         * bus/main.c (main): initialize and shut down selinux
6683
6684         * bus/connection.c: store SELinux ID on each connection, to avoid 
6685         repeated getting of the string context and converting it into 
6686         an ID
6687
6688         * bus/bus.c (bus_context_get_policy): new accessor, though it
6689         isn't used
6690         (bus_context_check_security_policy): check whether the security
6691         context of sender connection can send to the security context of
6692         recipient connection
6693
6694         * bus/config-parser.c: add parsing for <selinux> and <associate>
6695         
6696         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6697         implement dbus_connection_get_unix_fd()
6698
6699         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6700         function, used by the selinux stuff
6701         
6702 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6703
6704         * bus/config-loader-libxml.c: complete the implementation of
6705         libxml backend for config file loader. Doesn't work with full OOM
6706         test yet. 
6707         
6708         * configure.in: change error when selecting libxml into a warning.
6709         
6710         * test/data/invalid-config-files: add two non-well-formed XML
6711         files. 
6712         
6713         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6714         
6715         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6716         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6717         be necessary to read all the buffer. (bug #894)
6718
6719         * bus/activation.c (bus_activation_activate_service): fix a
6720         potential assertion failure (bug #896). Small optimization in the
6721         case of auto-activation messages.
6722
6723         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6724         add test case for byte-through-vararg bug (#901). patch by Kimmo
6725         Hämäläinen. 
6726
6727 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6728
6729         * python/dbus.py:
6730         * python/dbus_bindings.pyx.in:
6731         Add dbus.init_gthreads (), allow emit_signal to pass
6732         arguments to the signal.
6733         
6734 2004-07-24  Havoc Pennington  <hp@redhat.com>
6735
6736         * AUTHORS: add some people, not really comprehensively, let me
6737         know if I missed you
6738
6739 2004-07-24  Havoc Pennington  <hp@redhat.com>
6740
6741         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6742         Owen
6743
6744         * test/Makefile.am (DIST_SUBDIRS): here also
6745
6746 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6747
6748         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6749         breaking build on Solaris, reported by Farhad Saberi on the ML.
6750
6751         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6752         va_arg invocation to account for integer promotion in the case of
6753         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6754
6755         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6756         _dbus_list_get_first_link, not _dbus_list_get_first.
6757
6758         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6759
6760         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6761         handler functions so that the asserts in _dbus_object_subtree_unref
6762         do not fail.
6763
6764         * dbus/dbus-transport-unix.c (do_reading):
6765         _dbus_transport_queue_messages return value is of type
6766         dbus_bool_t, not DBusDispatchStatus.
6767         
6768 2004-07-19  David Zeuthen  <david@fubar.dk>
6769
6770         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6771
6772         * bus/dispatch.c:
6773         (check_get_connection_unix_user): Debug says GetProperty; but the
6774         method is called GetConnectionUnixUser
6775         (check_get_connection_unix_process_id): New function
6776         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6777         also call check_get_connection_unix_process_id()
6778         
6779         * bus/driver.c:
6780         (bus_driver_handle_get_connection_unix_process_id): New function,
6781         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6782         interface
6783         
6784         * dbus/dbus-auth.c:
6785         (handle_server_data_external_mech): Set pid from the credentials
6786         obtained from the socket
6787         
6788         * dbus/dbus-connection.c:
6789         (dbus_connection_get_unix_process_id): New function
6790         
6791         * dbus/dbus-connection.h: 
6792         Add prototype for dbus_connection_get_unix_process_id
6793         
6794         * dbus/dbus-transport.c:
6795         (_dbus_transport_get_unix_process_id): New function
6796         
6797         * dbus/dbus-transport.h:
6798         Add prototype for _dbus_transport_get_unix_process_id
6799         
6800 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6801
6802         * dbus/dbus-message.c: Message counter fix, patch by Christian
6803         Hammond <chipx86@gnupdate.org>
6804
6805 2004-07-18  Seth Nickell  <seth@gnome.org>
6806
6807         * python/dbus.py:
6808         * python/dbus_bindings.pyx.in:
6809         * python/tests/test-client.py:
6810
6811         Add dbus.ByteArray and dbus_bindings.ByteArray
6812         types so that byte streams can be passed back.
6813
6814         Give jdahlin the heaps of credit that are so
6815         rightfully his.
6816         
6817 2004-07-12  Seth Nickell  <seth@gnome.org>
6818
6819         * python/dbus.py:
6820
6821         Add message argument to the default object_method_handler
6822         function.
6823         
6824         * python/dbus_bindings.pyx.in:
6825
6826         Automatically return NIL when passed an empty list
6827         (we can't pass back a list since lists are typed
6828         and we don't have any idea what type the the client
6829         intended the list to be... :-( )
6830         
6831 2004-07-10  Seth Nickell  <seth@gnome.org>
6832
6833         * python/examples/Makefile.am:
6834
6835         Fix distcheck breakage caused by new examples.
6836
6837 2004-07-10  Seth Nickell  <seth@gnome.org>
6838
6839         * python/dbus.py:
6840
6841         Add "message" argument to service-side dbus.Object
6842         methods. This will break existing services written
6843         using the python bindings, but will allow extraction
6844         of all the message information (e.g. who its from).
6845
6846         Add improved "object oriented" signal handling/emission.
6847         
6848         * python/examples/example-service.py:
6849
6850         Nix this example.
6851         
6852         * python/examples/example-signal-emitter.py:
6853         * python/examples/example-signal-recipient.py:
6854
6855         Two new examples that show how to emit and receive
6856         signals using the new APIs.
6857         
6858         * python/examples/example-signals.py:
6859         * python/examples/gconf-proxy-service.py:
6860         * python/examples/gconf-proxy-service2.py:
6861
6862         Add "message" argument to service methods.
6863
6864 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6865
6866         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6867         * dbus/bus.c (dbus_bus_get_unix_user)
6868         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6869         method of org.freedesktop.DBus interface.
6870
6871         * bus/dispatch.c: test case
6872
6873 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6874
6875         * python/Makefile.am: switched include directory from glib/ to dbus/
6876         since dbus-glib.h moved
6877  
6878 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6879
6880         * configure.in: prevent building the gcj stuff and libxml loader
6881         since they are broken.
6882
6883 2004-06-20  Havoc Pennington  <hp@redhat.com>
6884
6885         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6886         codes from the dbus error names
6887         
6888         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6889         as dbus/dbus-glib.h and that breakage is now visible due to 
6890         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6891         
6892         * glib/dbus-glib.h: s/gproxy/g_proxy/
6893
6894         * dbus/dbus-shared.h: new header to hold stuff shared with
6895         binding APIs
6896         
6897         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6898         than dbus-errors.h
6899
6900         * glib/dbus-glib.h (dbus_set_g_error): move to
6901         dbus-glib-lowlevel.h
6902
6903         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6904         of stuff to enable this
6905
6906         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6907
6908         * a bunch of other changes with the same basic "separate glib 
6909         bindings from dbus.h" theme
6910         
6911 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6912
6913         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6914
6915         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6916
6917 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6918
6919         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6920         the reply value of the ServiceExists message.
6921
6922 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6923
6924         * python/dbus_bindings.pyx.in: No longer need to parse path
6925         elements and pass them as arrays of strings.  The C API now
6926         accepts plain path strings.
6927         (_build_parsed_path): removed 
6928
6929 2004-06-07  Havoc Pennington  <hp@redhat.com>
6930
6931         * doc/TODO: remove auto-activation item since it's done; sort
6932         items by importance/milestone
6933
6934 2004-06-07  Havoc Pennington  <hp@redhat.com>
6935
6936         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6937         random signature when using REQUIRED_FIELDS (this hack won't work
6938         in the long term)
6939
6940         * dbus/dbus-message.c: change the signature to be a header field,
6941         instead of message->signature special-case string. Incremental
6942         step forward. Then we can fix up code to send the signature in the
6943         message, then fix up code to validate said signature, then fix up
6944         code to not put the typecodes inline, etc.
6945         (load_one_message): don't make up the signature after the fact
6946         (decode_header_data): require signature field for the known
6947         message types
6948
6949         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6950
6951         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6952
6953 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6954
6955         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6956
6957         * mono/Handler.cs: Updated to follow new path argument for
6958         (un-)registering objects.
6959
6960         * mono/example/Makefile.am:
6961         * mono/Makefile.am:
6962         * configure.in: Bumped required version for mono and use new -pkg
6963         syntax for deps
6964
6965 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6966
6967         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6968         registration functions take the path argument as char* instead of
6969         char**.
6970
6971         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6972         split off the path decompostion part of
6973         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6974         warnings. 
6975
6976         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6977         
6978 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6979  
6980         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6981         machine approach.  A state is implemented as a function that
6982         handles incoming events as specified for that state.
6983         
6984         * doc/dbus-specification.xml: Update auth protocol state machine
6985         specification to match implementation.  Remove some leftover
6986         base64 examples.
6987
6988 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6989
6990         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6991         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6992         quiet doxygen.
6993
6994         * Doxyfile.in: remove deprecated options.
6995
6996         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6997         glib/test-thread.h, glib/test-thread-client.c,
6998         glib/test-thread-server.c, glib/test-profile.c,
6999         glib/test-dbus-glib.c: remove these unused files.
7000
7001 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7002
7003         * dbus/dbus-object-tree.c
7004         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7005         non-fallback handlers (bug #684).
7006         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7007         (find_subtree_recurse): report wether the returned subtree is an
7008         exact match or a "fallback" match higher up in the tree.
7009         (object_tree_test_iteration): update test case.
7010
7011 2004-06-01  Seth Nickell  <seth@gnome.org>
7012
7013         * python/dbus_bindings.pyx.in:
7014         * python/tests/test-client.py:
7015
7016         Round off basic type support. Add dicts (yay!), and 
7017         remaining array types.
7018
7019         Make MessageIter more general so it works for dicts too.
7020
7021         Mark all loop variables as C integers.
7022         
7023 2004-05-31  Havoc Pennington  <hp@redhat.com>
7024
7025         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7026         "in" before "out"
7027
7028         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7029
7030         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7031         option that runs the tests, and start filling in some code
7032         including for starters just dumping the interfaces to stdout
7033
7034         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7035
7036         * test/data/valid-introspection-files/lots-of-types.xml: test of
7037         an example introspection file
7038
7039         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7040         "node" (I think...)
7041
7042 2004-05-31  Seth Nickell  <seth@gnome.org>
7043
7044         * python/dbus_bindings.pyx.in:
7045         * python/tests/test-client.py:
7046
7047         Test Suite: 1
7048         Python Bindings: 0
7049
7050         Fix string array memory trashing bug... oops...
7051
7052 2004-05-30  Seth Nickell  <seth@gnome.org>
7053
7054         * python/dbus.py:
7055
7056         Add a nicer-but-less-flexible alternate API for handling 
7057         calls to virtual objects in dbus.ObjectTree.
7058
7059         Screw up the argument order to the dbus.Object constructor
7060         for consistency with dbus.ObjectTree (and to make dbus_methods
7061         optional for future extension)
7062         
7063         * python/examples/Makefile.am:
7064         * python/examples/gconf-proxy-service.py:
7065         * python/examples/gconf-proxy-service2.py:
7066
7067         Alternate implementation of gconf-proxy-service using the
7068         nicer dbus.ObjectTree API.
7069         
7070         * python/examples/example-service.py:
7071         * python/tests/test-server.py
7072
7073         Reverse the argument order to deal with dbus.Object constructor
7074         changes.
7075         
7076 2004-05-30  Seth Nickell  <seth@gnome.org>
7077
7078         * python/examples/example-client.py:
7079         * python/examples/example-service.py:
7080
7081         Take it back. Lists seem to work but they're broken
7082         in the test suite. Make the base examples use
7083         lists (works fine).
7084
7085 2004-05-30  Seth Nickell  <seth@gnome.org>
7086
7087         * python/dbus_bindings.pyx.in:
7088         * python/tests/test-client.py:
7089
7090         Add some more tests and fix errors that crop up.
7091         Unfortunately, currently it seems like marshalling
7092         and unmarshalling of lists is completely broken :-(
7093
7094 2004-05-30  Seth Nickell  <seth@gnome.org>
7095
7096         * python/dbus_bindings.pyx.in:
7097
7098         Add support for ObjectPath type.
7099
7100         * python/dbus.py:
7101
7102         Refactor message handling code to a common function.
7103         
7104         * python/tests/test-client.py:
7105         * python/tests/test-server.py:
7106
7107         Add tests that check to make sure values of all types
7108         can be echoed from a service w/o mangling.
7109         
7110 2004-05-29  Seth Nickell  <seth@gnome.org>
7111
7112         * python/dbus.py:
7113
7114         Add ObjectTree class which allows implementation
7115         of trees of "virtual" objects. Basically the python
7116         wrapper for "register_fallback".
7117         
7118         * python/examples/Makefile.am
7119         * python/examples/gconf-proxy-client.py:
7120         * python/examples/gconf-proxy-service.py:
7121
7122         Implement a simple GConf proxy service that supports
7123         get/set on string and int GConf keys using the ObjectTree.
7124         
7125 2004-05-29  Seth Nickell  <seth@gnome.org>
7126
7127         * python/dbus.py:
7128         * python/examples/example-client.py:
7129         * python/examples/example-service.py:
7130         * python/examples/list-system-services.py:
7131
7132         Add SessionBus, SystemBus and ActivationBus classes
7133         so you don't need to know the special little BUS_TYPE
7134         flag.
7135         
7136 2004-05-29  Havoc Pennington  <hp@redhat.com>
7137
7138         * bus/config-parser.c (process_test_valid_subdir): temporarily
7139         stop testing config parser OOM handling, since expat has issues
7140         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7141
7142         * bus/dbus-daemon-1.1.in: change requested_reply to
7143         send_requested_reply/receive_requested_reply so we can send the
7144         replies, not just receive them.
7145
7146         * bus/config-parser.c: parse the new
7147         send_requested_reply/receive_requested_reply
7148
7149         * bus/policy.c (bus_client_policy_check_can_send): add
7150         requested_reply argument and use it
7151
7152         * bus/bus.c (bus_context_check_security_policy): pass through
7153         requested_reply status to message send check
7154
7155         * bus/system.conf.in: adapt to requested_reply change
7156         
7157 2004-05-28  Havoc Pennington  <hp@redhat.com>
7158
7159         * test/glib/test-service-glib.c (main): remove unused variable
7160
7161         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7162
7163         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7164         from the enum, no longer in use.
7165
7166         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7167         works right.
7168
7169         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7170         whether error_name passed in is a valid error name.
7171
7172 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7173
7174         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7175         OBJECT_PATH and OBJECT_PATH_ARRAY
7176
7177 2004-05-28  Seth Nickell  <seth@gnome.org>
7178
7179         * python/examples/Makefile.am:
7180
7181         Forget to add Makefile.am. Do not pass go.
7182
7183 2004-05-28  Michael Meeks  <michael@ximian.com>
7184
7185         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7186         fix no int64 case.
7187
7188         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7189
7190         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7191         (_dbus_message_iter_get_basic_type_array): impl.
7192         drastically simplify ~all relevant _get methods to use these.
7193         (_dbus_message_iter_append_basic_array),
7194         (dbus_message_iter_append_basic): impl
7195         drastically simplify ~all relevant _append methods to use these.
7196
7197         * dbus/dbus-message-builder.c (parse_basic_type) 
7198         (parse_basic_array, lookup_basic_type): impl.
7199         (_dbus_message_data_load): prune scads of duplicate /
7200         cut & paste coding.
7201
7202         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7203         (_dbus_demarshal_basic_type): implement,
7204         (demarshal_and_validate_len/arg): beef up debug.
7205         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7206
7207 2004-05-27  Seth Nickell  <seth@gnome.org>
7208
7209         * configure.in:
7210         * python/Makefile.am:
7211
7212         Include the example python apps in the tarball.
7213         
7214         * python/examples/list-system-services.py
7215
7216         Add a python new example that fetches the list of services
7217         from the system bus.
7218         
7219 2004-05-27  Seth Nickell  <seth@gnome.org>
7220
7221         * python/dbus.py:
7222         * python/dbus_bindings.pyx.in:
7223
7224         Fix failure to notify that a signal was not handled,
7225         resulted in hung functions.
7226         
7227 2004-05-25  Colin Walters  <walters@redhat.com>
7228
7229         * tools/dbus-monitor.c (main): Monitor all types of messages.
7230
7231 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7232
7233         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7234         which unregisters the object path and disposes the handler.
7235
7236 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7237  
7238         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7239          
7240         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7241         operands to && so we call dbus_message_iter_next () for the last
7242         argument also.
7243
7244 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7245
7246         * dbus/dbus-object-tree.c
7247         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7248         children even if the requested path isn't registered.
7249         (object_tree_test_iteration): test object_tree_list_registered.
7250
7251         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7252         it to 0.
7253         
7254 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7255
7256         * doc/TODO: Remove resolved items.
7257
7258         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7259         field.
7260         
7261         * bus/connection.c (bus_connections_expect_reply): Enforce the
7262         per-connection limit on pending replies.
7263         
7264         Patch from Jon Trowbridge <trow@ximian.com>:
7265  
7266         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7267         up a watch that triggers a config reload when one end of the pipe
7268         becomes readable.
7269         (signal_handler): Instead of doing the config reload in our SIGHUP
7270         handler, just write to the reload pipe and let the associated
7271         watch handle the reload when control returns to the main loop.
7272  
7273         * bus/driver.c (bus_driver_handle_reload_config): Added.
7274         Implements a ReloadConfig method for requesting a configuration
7275         file reload via the bus driver.
7276  
7277 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7278
7279         * HACKING: Updated release instructions concerning the wiki page.
7280
7281 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7282
7283         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7284         filter against auth->allowed_mechs; we only add allowed mechs in
7285         record_mechanisms().
7286  
7287         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7288         ALLOWED_MECHS to auth-script format so we can set the list of
7289         allowed mechanisms.
7290  
7291         * data/auth/client-out-of-mechanisms.auth-script: New test to
7292         check client disconnects when it is out of mechanisms to try.
7293  
7294         * dbus/dbus-auth.c (process_command): Remove check for lines
7295         longer that 1 MB; we only buffer up maximum 16 kB.
7296  
7297         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7298         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7299         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7300         assume there might be unused bytes.
7301  
7302         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7303         client-out-of-mechs, it is handled in process_reject(). Move check
7304         for max failures to send_rejected(), as it's a server-only thing.
7305
7306         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7307         send_auth(), send_data(), send_rejected(), send_error(),
7308         send_ok(), send_begin() and send_cancel().
7309
7310 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7311
7312         Remove base64 encoding, replace with hex encoding. Original patch
7313         from trow@ximian.com, added error handling.
7314
7315         * dbus/dbus-string.c (_dbus_string_base64_encode)
7316         (_dbus_string_base64_decode): Remove.
7317         (_dbus_string_hex_decode): Add end_return argument so we can
7318         distinguish between OOM and invalid hex encoding.
7319         (_dbus_string_test): Remove base64 tests and add test case for
7320         invalid hex.
7321
7322         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7323         Replace base64 with hex.
7324
7325         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7326         for invalid hex encoded data in auth protocol.
7327
7328 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7329
7330         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7331         leak.
7332
7333 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7334
7335         * mono/dbus-sharp.dll.config.in: Added for GAC
7336         * mono/dbus-sharp.snk: Added for GAC
7337         * mono/Assembly.cs.in: Added for GAC
7338         * mono/Makefile.am: Changes for GAC installation        
7339         * configure.in: Added refs for dbus-sharp.dll.config.in and
7340         Assembly.cs.in. More fixes for mono testing
7341         * mono/example/Makefile.am: Changed var to CSC
7342         * Makefile.am: Changed flag name to DBUS_USE_CSC
7343
7344 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7345
7346         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7347         * mono/doc/*: Added documentation framework
7348         * configure.in: Added monodoc check
7349         * README: Added description of mono configure flags
7350
7351 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7352
7353         * doc/dbus-specification.xml: Added a "Required" column to the 
7354         header fields table and changed the "zero or more" verbage in
7355         the above paragraph to read "The header must contain the required 
7356         named header fields and zero or more of the optional named header 
7357         fields".
7358         * test/data/invalid-messages/*.message: Added the required PATH 
7359         named header field to the tests so that they don't fail on 
7360         'Missing path field'
7361
7362 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7363
7364         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7365         the stack by implicitly defining variable and parameter types and
7366         removing the hack of defining C pointers as python objects and later
7367         casting them.
7368
7369 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7370
7371         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7372
7373 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7374
7375         * mono/DBusType/Dict.cs: Handle empty dicts
7376         * mono/DBusType/Array.cs: Handle empty arrays
7377         * mono/Arguments.cs: Handle empty arguments
7378
7379 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7380
7381         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7382         field
7383
7384 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7385
7386         * test/data/valid-messages/standard-*.message: Update message
7387         test scripts to new header field names.
7388
7389 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7390
7391         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7392         overflow to times_we_did_each_thing array which would chop off the
7393         first character of the failure_dir string. Increased the size of
7394         the array to 7 to reflect the number of random mutation functions
7395         we have.
7396
7397 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7398
7399         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7400         unix_server->watch here, it is unreffed in disconnect.
7401         (_dbus_server_new_for_tcp_socket): convert NULL host to
7402         "localhost" here so we don't append NULL to address.
7403         
7404         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7405         various addresses, including tcp with no explicit host.
7406
7407 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7408
7409         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7410         fix incorrect setting of .name_offset in the HeaderField (it was
7411         off by two bytes, positioned right after the name and typecode)
7412
7413         * bus/bus.c (bus_context_new, bus_context_unref): test before
7414         calling dbus_server_free_data_slot and _dbus_user_database_unref
7415         in case of an error.
7416
7417         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7418         by libdbus-gtool.
7419
7420 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7421
7422         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7423         _dbus_poll() instead of select().
7424
7425 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7426
7427         * bus/main.c (signal_handler): Reload the configuration files
7428         on SIGHUP.
7429         (main): Set up our SIGHUP handler.
7430
7431         * bus/bus.c (struct BusContext): Store the config file, user and
7432         fork flag in the BusContext.
7433         (process_config_first_time_only): Added.  Contains the code
7434         (previously in bus_context_new) for setting up the BusContext from
7435         the BusConfigParser that should only be run the first time the
7436         config files are read.
7437         (process_config_every_time): Added.  Contains the code (previously
7438         in bus_context_new) for setting up the BusContext from the
7439         BusConfigParser that should be run every time the config files are
7440         read.
7441         (load_config): Added.  Builds a BusConfigParser from the config
7442         files and passes the resulting structure off to
7443         process_config_first_time_only (assuming this is the first time)
7444         and process_config_every_time.
7445         (bus_context_new): All of the config-related code has been moved
7446         to process_config_first_time_only and process_config_every_time.
7447         Now this function just does the non-config-related initializations
7448         and calls load_config.
7449         (bus_context_reload_config): Added.
7450
7451 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7452
7453         * bus/driver.c (bus_driver_handle_get_service_owner):
7454         implement a GetServiceOwner method.
7455         * doc/dbus-specification.xml: document it.
7456         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7457         
7458         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7459         implement, using the bus GetServiceOwner method.
7460
7461         * test/glib/test-dbus-glib.c:
7462         use dbus_gproxy_new_for_service_owner so that we can receive the
7463         signal. 
7464
7465 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7466
7467         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7468         dbus/dbus-message.c, dbus/dbus-protocol.h
7469         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7470
7471         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7472         dbus/dbus-message.c, dbus/dbus-protocol.h
7473         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7474
7475         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7476         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7477         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7478
7479         * doc/dbus-specification.xml (Header Fields Table):
7480         s/SERVICE/DESTINATION
7481         s/SENDER_SERVICE/SENDER
7482
7483
7484 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7485
7486         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7487         a few seconds.
7488
7489 2004-04-13  Michael Meeks  <michael@ximian.com>
7490
7491         * glib/dbus-gobject.c (handle_introspect): split out
7492         (introspect_properties): this.
7493         (handle_introspect): implement this.
7494
7495         * test/glib/Makefile.am: use the absolute path so the bus
7496         daemon's chdir ("/") doesn't kill us dead.
7497
7498         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7499
7500 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7501
7502         * bus/config-parser.c (struct BusConfigParser): Added
7503         included_files field.
7504         (seen_include): Added.  Checks whether or not a file has already
7505         been included by any parent BusConfigParser.
7506         (bus_config_parser_new): Copy the parent's included_files.
7507         (include_file): Track which files have been included, and fail on
7508         circular inclusions.
7509         (process_test_valid_subdir): Changed printf to report if we are
7510         testing valid or invalid conf files.
7511         (all_are_equiv): Changed printf to be a bit clearer about
7512         what we are actually doing.
7513         (bus_config_parser_test): Test invalid configuration files.
7514
7515 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7516
7517         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7518         argument.  If non-null, the newly-constructed BusConfigParser will
7519         be initialized with the parent's BusLimits instead of the default
7520         values.
7521         (include_file): When including a config file, pass in
7522         the current parser as the parent and then copy the BusLimits
7523         from the included BusConfigParser pack to the current parser.
7524         (process_test_valid_subdir): Renamed from process_test_subdir.
7525         (process_test_equiv_subdir): Added.  Walks through a directory,
7526         descending into each subdirectory and loading the config files
7527         it finds there.  If any subdirectory contains two config files
7528         that don't produce identical BusConfigParser structs, fail.
7529         For now, the BusConfigParser's BusPolicies are not compared.
7530         (bus_config_parser_test): Call both process_test_valid_subdir and
7531         process_test_equiv_subdir.
7532
7533         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7534         argument and pass it along to the call to bus_config_parser_new.
7535         Also made a few small changes to allow this code to compile.
7536
7537         * bus/config-loader-expat.c (bus_config_load): Take a parent
7538         argument and pass it along to the call to bus_config_parser_new.
7539
7540         * bus/bus.c (bus_context_new): Load the config file
7541         with a NULL parent argument.
7542
7543 2004-03-29  Michael Meeks  <michael@ximian.com>
7544
7545         * glib/dbus-gobject.c (introspect_properties): split
7546         out, fix mangled 'while' flow control.
7547         (introspect_signals): implement.
7548         (handle_introspect): update.
7549
7550 2004-03-29  Michael Meeks  <michael@ximian.com>
7551
7552         * glib/dbus-gobject.c (set_object_property): split out / 
7553         re-work, use the property type, and not the message type(!)
7554         (get_object_property): ditto.
7555
7556         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7557         (dbus_gvalue_marshal): make this code re-usable, needed
7558         for signals too, also on both proxy and server side.
7559         Re-write for more efficiency / readability.
7560
7561 2004-03-29  Michael Meeks  <michael@ximian.com>
7562
7563         * dbus/dbus-message.c
7564         (dbus_message_new_error_printf): impl.
7565
7566         * dbus/dbus-connection.c
7567         (dbus_connection_unregister_object_path): fix warning.
7568
7569         * configure.in: fix no-mono-installed situation.
7570
7571 2004-03-27  Havoc Pennington  <hp@redhat.com>
7572
7573         Patch from Timo Teräs:
7574         
7575         * tools/dbus-send.c (main): if --print-reply, assume type is
7576         method call; support boolean type args
7577         
7578         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7579         bunch of memleak and logic bugs
7580         
7581 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7582
7583         * mono/Arguments.cs:
7584         * mono/Introspector.cs:
7585         * mono/Handler.cs:
7586         * mono/InterfaceProxy.cs:
7587         * mono/Message.cs
7588         * mono/ProxyBuilder.cs:
7589         * mono/Service.cs:
7590         Added InterfaceProxy class to avoid building proxies for every
7591         object.
7592
7593         * dbus-message.h:
7594         * dbus-message.c (dbus_message_append_args_valist)
7595         (dbus_message_iter_get_object_path)
7596         (dbus_message_iter_get_object_path_array)
7597         (dbus_message_iter_append_object_path)
7598         (dbus_message_iter_append_object_path_array):
7599         Added object_path iter functions to handle OBJECT_PATH arguments
7600         
7601 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7602
7603         First checkin of mono bindings.
7604         * configure.in:
7605         * Makefile.am:
7606         Build stuff for the bindings
7607         * dbus-sharp.pc.in: Added for pkgconfig
7608         
7609 2004-03-21  Havoc Pennington  <hp@redhat.com>
7610
7611         * test/test-service.c (main): remove debug spew
7612
7613 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7614
7615         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7616         arrays
7617
7618         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7619         (dbus_message_iter_init_array_iterator)
7620         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7621         indicate whether the iterator is empty
7622
7623         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7624         warnings
7625
7626 2004-03-19  Havoc Pennington  <hp@redhat.com>
7627
7628         * NEWS: 0.21 updates
7629
7630         * configure.in: 0.21
7631
7632         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7633         
7634         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7635         you don't need pyrex to make dist
7636
7637         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7638         sources; run moc
7639         
7640 2004-03-18  Richard Hult  <richard@imendio.com>
7641
7642         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7643         (dbus_message_set_auto_activation): Add doxygen docs.
7644
7645 2004-03-16  Richard Hult  <richard@imendio.com>
7646
7647         * bus/activation.c: (bus_activation_service_created),
7648         (bus_activation_send_pending_auto_activation_messages),
7649         (bus_activation_activate_service):
7650         * bus/activation.h:
7651         * bus/dispatch.c: (bus_dispatch),
7652         (check_nonexistent_service_auto_activation),
7653         (check_service_auto_activated),
7654         (check_segfault_service_auto_activation),
7655         (check_existent_service_auto_activation), (bus_dispatch_test):
7656         * bus/driver.c: (bus_driver_handle_activate_service):
7657         * bus/services.c: (bus_registry_acquire_service):
7658         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7659         (dbus_message_get_auto_activation):
7660         * dbus/dbus-message.h:
7661         * dbus/dbus-protocol.h: Implement auto-activation.
7662         
7663         * doc/dbus-specification.xml: Add auto-activation to the spec.
7664
7665 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7666
7667         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7668         fix a bug with CUSTOM types.
7669
7670         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7671         a unit test for this bug (used to fail).
7672
7673 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7674
7675         * bus/activation.c:
7676         (babysitter_watch_callback): notify all pending activations waiting for
7677           the same exec that the activation failed.
7678         (bus_activation_activate_service): shortcut the activation if we 
7679           already waiting for the same executable to start up.
7680
7681 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7682
7683         * bus/activation.c: 
7684         - Added service file reloading. 
7685           Each service files directory is kept in an hash table in 
7686           BusActivation and each BusActivationEntry knows what .service-file it
7687           was read from. So when you try to activate a service the bus will 
7688           check if it's been updated, removed or if new .service-files has 
7689           been installed.
7690         - Test code at the bottom for the service file reloading.
7691         * bus/test-main.c: (main):
7692         * bus/test.h:
7693         - added service reloading test.
7694         * dbus/dbus-sysdeps.c: 
7695         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7696
7697 2004-03-08  Michael Meeks  <michael@ximian.com>
7698
7699         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7700         bail immediately if disconnected, to avoid busy loop.
7701
7702         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7703         cleanup cut/paste/inefficiency.
7704
7705 2004-03-01  David Zeuthen  <david@fubar.dk>
7706
7707         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7708         bug where args were used twice. This bug resulted in a segfault
7709         on a Debian/PPC system when starting the messagebus daemon. Include
7710         dbus-sysdeps.h for DBUS_VA_COPY
7711
7712         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7713
7714         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7715         appropriate va_copy implementation. From GLib
7716         
7717 2004-02-24  Joe Shaw  <joe@ximian.com>
7718
7719         * bus/services.c (bus_registry_acquire_service): We need to pass
7720         in the service name to dbus_set_error() to prevent a crash.
7721
7722 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7723
7724         * AUTHORS: Reveal my True identity.
7725
7726 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7727
7728         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7729         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7730
7731 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7732
7733         * doc/TODO: Added not about better error check of configuration files.
7734
7735 2003-12-02  Richard Hult  <richard@imendio.com>
7736
7737         * Update AFL version to 2.0 throughout the source files to reflect
7738         the update that was done a while ago.
7739
7740 2003-12-02  Richard Hult  <richard@imendio.com>
7741
7742         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7743         wrote_dict_key to FALSE on the iter that the dict is appended to,
7744         just like when appending other types. Fixes a bug where a dict
7745         couldn't be put inside a dict.
7746         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7747         (message_iter_test, _dbus_message_test): Add test case for dict
7748         inside dict.
7749
7750 2003-12-01  David Zeuthen  <david@fubar.dk>
7751
7752         * python/dbus.py: Add the actual message when calling the reciever
7753         of a signal such that parameters can be inspected. Add the method
7754         remove_signal_receiver
7755         
7756 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7757
7758         * bus/*.[ch]:
7759         * dbus/*.[ch]:
7760         * glib/*.[ch]: Made ref functions return the pointer
7761
7762 2003-11-25  Zack Rusin  <zack@kde.org>
7763
7764         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7765
7766         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7767         wrappers,
7768
7769         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7770         the Integrator and to better fit with the server,
7771
7772 2003-11-24  Zack Rusin  <zack@kde.org>
7773
7774         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7775         the integrator handles it now
7776
7777         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7778         since QTimer wasn't really meant to be used the way DBusTimeout is
7779
7780 2003-11-24  Zack Rusin  <zack@kde.org>
7781
7782         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7783         Integrator class which integrates D-BUS with the Qt event loop,
7784
7785         * qt/connection.h, qt/connection.cpp: Move all the code which
7786         was dealing with D-BUS integration to the Integrator class,
7787         and start using Integrator,
7788
7789 2003-11-23  Zack Rusin  <zack@kde.org>
7790
7791         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7792         wrapper
7793
7794         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7795         switching namespaces to DBusQt, reworking the class,
7796
7797         * Makefile.cvs: switching dependencies so that it matches KDE 
7798         schematics,
7799         
7800         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7801         the library
7802
7803 2003-11-19  Havoc Pennington  <hp@redhat.com>
7804
7805         * NEWS: update
7806
7807         * configure.in: bump version to 0.20
7808
7809         * configure.in (have_qt): add yet another place to look for qt
7810         (someone hand trolltech a .pc file...)
7811
7812 2003-11-01  Havoc Pennington  <hp@redhat.com>
7813
7814         * doc/dbus-specification.xml: add state machine docs on the auth
7815         protocol; just a first draft, I'm sure it's wrong.      
7816
7817 2003-10-28  David Zeuthen  <david@fubar.dk>
7818
7819         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7820         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7821         
7822 2003-10-28  Havoc Pennington  <hp@redhat.com>
7823
7824         * dbus/dbus-message.c (get_next_field): delete unused function
7825
7826 2003-10-28  Havoc Pennington  <hp@redhat.com>
7827
7828         * bus/expirelist.c (do_expiration_with_current_time): detect
7829         failure of the expire_func due to OOM
7830
7831         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7832
7833         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7834         NoReply error that's now created by the bus when the service exits
7835
7836 2003-10-28  Havoc Pennington  <hp@redhat.com>
7837
7838         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7839         tests for set_path, set_interface, set_member, etc.
7840
7841         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7842
7843         * dbus/dbus-message.c (set_string_field): always just delete and
7844         re-append the field; accept NULL for deletion
7845         (re_align_fields_recurse): reimplement
7846         
7847 2003-10-26  Havoc Pennington  <hp@redhat.com>
7848
7849         * dbus/dbus-connection.c: fix docs to properly describe the
7850         disconnected message
7851         (_dbus_connection_notify_disconnected): remove this function; 
7852         we can't synchronously add the disconnected message, we have to 
7853         do it after we've queued any remaining real messages
7854         (_dbus_connection_get_dispatch_status_unlocked): queue the
7855         disconnect message only if the transport has finished queueing all
7856         its real messages and is disconnected.
7857         (dbus_connection_disconnect): update the dispatch status here
7858
7859 2003-10-22  Havoc Pennington  <hp@redhat.com>
7860
7861         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7862
7863         * bus/connection.c (bus_transaction_send_from_driver): set the
7864         destination to the connection's base service
7865
7866 2003-10-20  Havoc Pennington  <hp@redhat.com>
7867
7868         hmm, make check is currently not passing.
7869         
7870         * doc/dbus-specification.xml: add requirement that custom type
7871         names follow the same rules as interface names.
7872
7873         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7874         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7875         'map'
7876
7877         * doc/dbus-specification.xml: update type codes to match
7878         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7879         CUSTOM. Add type OBJECT_PATH to the spec.
7880
7881 2003-10-17  Havoc Pennington  <hp@redhat.com>
7882
7883         * bus/driver.c (create_unique_client_name): use "." as separator
7884         in base service names instead of '-'
7885
7886         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7887         byte at the end of the string
7888
7889         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7890         optimization macros since string validation seems to be a slow
7891         point.
7892         
7893         * doc/dbus-specification.xml: restrict valid
7894         service/interface/member/error names. Add test suite code for the
7895         name validation.
7896
7897         * dbus/dbus-string.c: limit service/interface/member/error names 
7898         to [0-9][A-Z][a-z]_
7899
7900         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7901         format arg to verbose spew
7902
7903         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7904         memory, return instead of g_error
7905
7906         * test/test-service.c (path_message_func): support emitting a
7907         signal on request
7908
7909         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7910         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7911         assuming the activation bus was the session bus so that services
7912         started manually will still register.
7913         (init_connections_unlocked): fix so that in OOM situation we get
7914         the same semantics when retrying the function
7915         
7916         * test/test-service.c (main): change to use path registration, to
7917         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7918         than DBUS_BUS_SESSION
7919
7920 2003-10-16  Havoc Pennington  <hp@redhat.com>
7921
7922         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7923
7924         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7925         coverage of the tests
7926         (coverage-report.txt): don't move the .da and .bbg files around
7927
7928 2003-10-16  Havoc Pennington  <hp@redhat.com>
7929
7930         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7931         to put there
7932
7933 2003-10-16  Havoc Pennington  <hp@redhat.com>
7934
7935         * bus/connection.c (bus_pending_reply_expired): either cancel or
7936         execute, not both
7937         (bus_connections_check_reply): use unlink, not remove_link, as we
7938         don't want to free the link; fixes double free mess
7939
7940         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7941         where no reply was received
7942
7943         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7944         fix a refcount leak
7945
7946         * bus/signals.c (match_rule_matches): add special cases for the
7947         bus driver, so you can match on sender/destination for it.
7948
7949         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7950         DBUS_PRINT_BACKTRACE is set
7951
7952         * dbus/dbus-internals.c: add pid to assertion failure messages
7953
7954         * dbus/dbus-connection.c: add message type code to the debug spew
7955
7956         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7957         sender=foo not service=foo
7958
7959         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7960         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7961         DBUS_ACTIVATION_ADDRESS instead
7962
7963         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7964         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7965
7966         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7967         context struct
7968
7969         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7970         (dbus_message_iter_get_object_path_array): new function (half
7971         finished, disabled for the moment)
7972         
7973         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7974         DBUS_MESSAGE_TYPE_ERROR
7975
7976         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7977         avoid redirecting stderr to /dev/null
7978         (babysit): close stdin if not doing the "exit_with_session" thing
7979
7980         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7981         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7982         stdout/stdin, so things don't get confused
7983         
7984         * bus/system.conf.in: fix to allow replies, I modified .conf
7985         instead of .conf.in again.
7986
7987 2003-10-14  David Zeuthen  <david@fubar.dk>
7988
7989         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7990         argtype to arg_type when raising unknown arg type exception.
7991         Changed type list to reflect the changes in dbus-protocol.h so 
7992         the bindings actually work.
7993
7994 2003-10-14  Havoc Pennington  <hp@redhat.com>
7995
7996         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7997         to have a bug keeping it from outputting the .da files sometimes
7998         (string_get_string): don't append garbage nul bytes to the string.
7999
8000 2003-10-15  Seth Nickell  <seth@gnome.org>
8001
8002         * python/Makefile.am:
8003
8004         Include dbus_h_wrapper.h in the dist tarball.
8005
8006 2003-10-14  Havoc Pennington  <hp@redhat.com>
8007
8008         * bus/bus.c (bus_context_check_security_policy): revamp this to
8009         work more sanely with new policy-based requested reply setup
8010
8011         * bus/connection.c (bus_transaction_send_from_driver): set bus
8012         driver messages as no reply
8013
8014         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8015         requested_reply attribute on allow/deny rules
8016
8017         * bus/system.conf: add <allow requested_reply="true"/>
8018
8019         * bus/driver.c (bus_driver_handle_message): fix check for replies
8020         sent to the bus driver, which was backward. How did this ever work
8021         at all though? I think I'm missing something.
8022
8023         * dbus/dbus-message.c (decode_header_data): require error and
8024         method return messages to have a reply serial field to be valid
8025         (_dbus_message_loader_queue_messages): break up this function;
8026         validate that reply serial and plain serial are nonzero; 
8027         clean up the OOM/error handling.
8028         (get_uint_field): don't return -1 from this
8029         (dbus_message_create_header): fix signed/unsigned bug
8030
8031         * bus/connection.c (bus_connections_expect_reply): save serial of
8032         the incoming message, not reply serial
8033
8034 2003-10-14  Havoc Pennington  <hp@redhat.com>
8035
8036         * bus/connection.c: implement pending reply tracking using
8037         BusExpireList
8038
8039         * bus/bus.c (bus_context_check_security_policy): verify that a
8040         reply is pending in order to allow a reply to be sent. Deny 
8041         messages of unknown type.
8042
8043         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8044
8045         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8046         (bus_context_get_reply_timeout): new
8047
8048 2003-10-13  Seth Nickell  <seth@gnome.org>
8049
8050         * python/Makefile.am:
8051
8052         Pass "make distcheck": remove a couple files from DIST_FILES
8053         that weren't included in the final version.
8054
8055 2003-10-12  Havoc Pennington  <hp@pobox.com>
8056
8057         Added test code that 1) starts an actual bus daemon and 2) uses
8058         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8059         more testing possible, but this is the basic framework.
8060         
8061         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8062         empty proxy lists from the proxy list hash
8063
8064         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8065         couple of return_if_fail checks
8066
8067         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8068         to allocate, so everything is cleared to NULL as it should be.
8069
8070         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8071         source as data to dbus_connection_set_timeout_functions() as the 
8072         timeout functions expected
8073
8074         * test/glib/run-test.sh: add a little script to start up a message
8075         bus and run tests using it
8076
8077         * tools/dbus-launch.1: updates
8078
8079         * tools/dbus-launch.c (main): add --config-file option
8080
8081         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8082         that could never be reached.
8083
8084         * dbus/dbus-message.c (dbus_message_new_method_return) 
8085         (dbus_message_new_error, dbus_message_new_signal): set the
8086         no-reply-expected flag on all these. Redundant, but may
8087         as well be consistent.
8088
8089 2003-10-11  Havoc Pennington  <hp@pobox.com>
8090
8091         * test/decode-gcov.c (function_solve_graph): make broken block
8092         graph a nonfatal error since it seems to be broken. Need to debug
8093         this.
8094
8095         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8096         can't just check type > INVALID < LAST anymore
8097
8098         * dbus/dbus-message.c (dbus_message_get_signature): new function
8099         (dbus_message_has_signature): new function
8100         (struct DBusMessage): add signature field (right now it isn't sent
8101         over the wire, just generated on the fly)
8102         (dbus_message_copy): copy the signature, and init strings to
8103         proper length to avoid some reallocs
8104         (dbus_message_iter_init_array_iterator): return void, since it
8105         can't fail
8106         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8107         (_dbus_message_loader_queue_messages): add silly temporary hack to
8108         fill in message->signature on load
8109
8110         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8111         characters, so they are relatively human-readable.
8112
8113 2003-10-11  Havoc Pennington  <hp@pobox.com>
8114
8115         * dbus/dbus-message.c (_dbus_message_test): add more test
8116         coverage, but #if 0 for now since they uncover a bug 
8117         not fixed yet; I think in re_align_field_recurse()
8118         (re_align_field_recurse): add FIXME about broken assertion
8119
8120         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8121
8122         * bus/connection.c: share a couple code bits with expirelist.c
8123
8124         * bus/expirelist.h, bus/expirelist.c: implement a generic
8125         expire-items-after-N-seconds facility, was going to share between
8126         expiring connections and replies, decided not to use for expiring
8127         connections for now.
8128
8129         * COPYING: include AFL 2.0 (still need to change all the file headers)
8130
8131 2003-10-09  Havoc Pennington  <hp@redhat.com>
8132
8133         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8134         gcc 3.3. Not that we do anything about it yet.
8135
8136         * bus/signals.c (bus_match_rule_parse): impose max length on the
8137         match rule text
8138
8139         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8140
8141 2003-10-09  Havoc Pennington  <hp@redhat.com>
8142
8143         Make matching rules theoretically work (add parser).
8144         
8145         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8146         the case where destination is explicitly specified as bus driver
8147         and someone else is eavesdropping.
8148         
8149         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8150         definition of eavesdropping and assertion
8151
8152         * tools/dbus-send.c (main): use dbus_message_type_from_string
8153
8154         * bus/signals.c (bus_match_rule_parse): implement
8155
8156         * dbus/dbus-message.c (dbus_message_type_from_string): new
8157
8158         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8159
8160 2003-10-02  Havoc Pennington  <hp@pobox.com>
8161
8162         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8163         dbus_gproxy_oneway_call
8164
8165         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8166         (dbus_server_setup_with_g_main): fix to allow calling them more
8167         than once on the same args
8168         (dbus_bus_get_with_g_main): new function
8169
8170 2003-10-02  Havoc Pennington  <hp@redhat.com>
8171
8172         * doc/dbus-tutorial.xml: write some stuff
8173
8174 2003-09-29  Havoc Pennington  <hp@pobox.com>
8175
8176         * configure.in: split checks for Doxygen from XML docs, check for
8177         xmlto
8178
8179         * doc/Makefile.am: XML-ify all the docs, and add a blank
8180         dbus-tutorial.xml
8181
8182 2003-09-29  Havoc Pennington  <hp@pobox.com>
8183
8184         * Merge dbus-object-names branch. To see the entire patch 
8185         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8186         it's huuuuge though.
8187         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8188         
8189 2003-09-28  Havoc Pennington  <hp@pobox.com>
8190
8191         * HACKING: update to reflect new server
8192
8193 2003-09-26  Seth Nickell  <seth@gnome.org>
8194
8195         * python/dbus.py:
8196         * python/examples/example-signals.py:
8197
8198         Start implementing some notions of signals. The API
8199         is really terrible, but they sort of work (with the
8200         exception of being able to filter by service, and to
8201         transmit signals *as* a particular service). Need to
8202         figure out how to make messages come from the service
8203         we registered :-(
8204         
8205         * python/dbus_bindings.pyx.in:
8206
8207         Removed duplicate message_handler callbacks.
8208         
8209 2003-09-25  Havoc Pennington  <hp@redhat.com>
8210
8211         * bus/session.conf.in: fix my mess
8212
8213 2003-09-25  Havoc Pennington  <hp@pobox.com>
8214
8215         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8216
8217 2003-09-25  Seth Nickell  <seth@gnome.org>
8218
8219         * python/examples/example-service.py:
8220
8221         Johan notices complete wrong code in example-service, but
8222         completely wrong in a way that works exactly the same (!).
8223         Johan is confused, how could this possibly work? Example
8224         code fails to serve purpose of making things clear.
8225         Seth fixes.
8226
8227 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8228
8229         * doc/dbus-specification.sgml: don't require header fields
8230         to be 4-byte aligned and specify that fields should be
8231         distinguished from padding by the fact that zero is not
8232         a valid field name.
8233         
8234         * doc/TODO: remove re-alignment item and add item to doc
8235         the OBJECT_PATH type.
8236         
8237         * dbus/dbus-message.c:
8238         (HeaderField): rename the original member to value_offset
8239         and introduce a name_offset member to keep track of where
8240         the field actually begins.
8241         (adjust_field_offsets): remove.
8242         (append_int_field), (append_uint_field),
8243         (append_string_field): don't align the start of the header
8244         field to a 4-byte boundary.
8245         (get_next_field): impl finding the next marhsalled field
8246         after a given field.
8247         (re_align_field_recurse): impl re-aligning a number of
8248         already marshalled fields.
8249         (delete_field): impl deleting a field of any type and
8250         re-aligning any following fields.
8251         (delete_int_or_uint_field), (delete_string_field): remove.
8252         (set_int_field), (set_uint_field): no need to re-check
8253         that we have the correct type for the field.
8254         (set_string_field): ditto and impl re-aligning any
8255         following fields.
8256         (decode_header_data): update to take into account that
8257         the fields aren't 4-byte aligned any more and the new
8258         way to distinguish padding from header fields. Also,
8259         don't exit when there is too much header padding.
8260         (process_test_subdir): print the directory.
8261         (_dbus_message_test): add test to make sure a following
8262         field is re-aligned correctly after field deletion.
8263         
8264         * dbus/dbus-string.[ch]:
8265         (_dbus_string_insert_bytes): rename from insert_byte and
8266         allow the insert of multiple bytes.
8267         (_dbus_string_test): test inserting multiple bytes.
8268
8269         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8270         warning note to docs about having to re-align any
8271         marshalled values following the string.
8272         
8273         * dbus/dbus-message-builder.c:
8274         (append_string_field), (_dbus_message_data_load):
8275         don't align the header field.
8276         
8277         * dbus/dbus-auth.c: (process_test_subdir): print the
8278         directory.
8279         
8280         * test/break-loader.c: (randomly_add_one_byte): upd. for
8281         insert_byte change.
8282         
8283         * test/data/invalid-messages/bad-header-field-alignment.message:
8284         new test case.
8285         
8286         * test/data/valid-messages/unknown-header-field.message: shove
8287         a dict in the unknown field.
8288
8289 2003-09-25  Seth Nickell  <seth@gnome.org>
8290
8291         * python/dbus.py:
8292         * python/dbus_bindings.pyx.in:
8293
8294         Handle return values.
8295         
8296         * python/examples/example-client.py:
8297         * python/examples/example-service.py:
8298
8299         Pass back return values from the service to the client.
8300         
8301 2003-09-24  Seth Nickell  <seth@gnome.org>
8302
8303         * python/dbus.py:
8304
8305         Connect Object methods (when you are sharing an object) up... pass
8306         in a list of methods to be shared. Sharing all the methods just
8307         worked out too weird. You can now create nice Services over the
8308         DBus in Python. :-)
8309         
8310         * python/dbus_bindings.pyx.in:
8311
8312         Keep references to user_data tuples passed into C functions so 
8313         Python doesn't garbage collect on us.
8314
8315         Implement MethodReturn and Error subclasses of Message for creating
8316         DBusMessage's of those types.
8317         
8318         * python/examples/example-client.py:
8319         * python/examples/example-service.py:
8320
8321         Simple example code showing both how create DBus services and objects,
8322         and how to use them.
8323
8324 2003-09-23  Havoc Pennington  <hp@pobox.com>
8325
8326         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8327
8328 2003-09-23  Havoc Pennington  <hp@redhat.com>
8329
8330         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8331         (dbus_gproxy_disconnect_signal): implement
8332         (dbus_gproxy_manager_remove_signal_match): implement
8333         (dbus_gproxy_manager_add_signal_match): implement
8334         (dbus_gproxy_oneway_call): implement
8335
8336 2003-09-23  Havoc Pennington  <hp@pobox.com>
8337
8338         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8339         subclass. This means dropping the transparent thread safety of the
8340         proxy; you now need a separate proxy per-thread, or your own
8341         locking on the proxy. Probably right anyway.
8342         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8343
8344 2003-09-22  Havoc Pennington  <hp@redhat.com>
8345
8346         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8347
8348 2003-09-21  Seth Nickell  <seth@gnome.org>
8349
8350         First checkin of the Python bindings.
8351         
8352         * python/.cvsignore:
8353         * python/Makefile.am:
8354         * python/dbus_bindings.pyx.in:
8355         * python/dbus_h_wrapper.h:
8356
8357         Pieces for Pyrex to operate on, building a dbus_bindings.so
8358         python module for low-level access to the DBus APIs.
8359         
8360         * python/dbus.py:
8361
8362         High-level Python module for accessing DBus objects.
8363
8364         * configure.in:
8365         * Makefile.am:
8366
8367         Build stuff for the python bindings.
8368
8369         * acinclude.m4:
8370
8371         Extra macro needed for finding the Python C header files.
8372
8373 2003-09-21  Havoc Pennington  <hp@pobox.com>
8374
8375         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8376         implementing the proxy manager, didn't get very far.
8377
8378         * dbus/dbus-bus.c (dbus_bus_add_match): new
8379         (dbus_bus_remove_match): new
8380
8381         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8382         path_name argument; adjust the other not-yet-implemented 
8383         gproxy constructors to be what I think they should be.
8384
8385 2003-09-21  Havoc Pennington  <hp@pobox.com>
8386
8387         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8388         by default for message bus connections.
8389
8390         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8391         exit_on_disconnect flag is set and we process the disconnected
8392         signal.
8393         (dbus_connection_set_exit_on_disconnect): new function
8394
8395 2003-09-21  Havoc Pennington  <hp@pobox.com>
8396
8397         Get matching rules mostly working in the bus; only actually
8398         parsing the rule text remains. However, the client side of
8399         "signal connections" hasn't been started, this patch is only the
8400         bus side.
8401         
8402         * dbus/dispatch.c: fix for the matching rules changes
8403         
8404         * bus/driver.c (bus_driver_handle_remove_match)
8405         (bus_driver_handle_add_match): send an ack reply from these
8406         method calls
8407
8408         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8409         arguments, reported by Seth Nickell
8410
8411         * bus/config-parser.c (append_rule_from_element): support
8412         eavesdrop=true|false attribute on policies so match rules 
8413         can be prevented from snooping on the system bus.
8414
8415         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8416         and "destination" in attribute names; fix some docs bugs; 
8417         add eavesdrop=true|false attribute
8418
8419         * bus/driver.c (bus_driver_handle_add_match)
8420         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8421         messages
8422
8423         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8424         rid of broadcast service concept, signals are just always broadcast
8425
8426         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8427         mostly implement matching rules stuff (currently only exposed as signal
8428         connections)
8429
8430 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8431
8432         * doc/dbus-specification.sgml: Change the header field name
8433         to be an enum and update the rest of the spec to reference
8434         the fields using the conventinal name.
8435
8436         * dbus/dbus-protocol.h: update to reflect the spec.
8437
8438         * doc/TODO: add item to remove the 4 byte alignment requirement.
8439         
8440         * dbus/dbus-message.c: Remove the code to generalise the
8441         header/body length and serial number header fields as named
8442         header fields so we can reference field names using the 
8443         protocol values.
8444         (append_int_field), (append_uint_field), (append_string_field):
8445         Append the field name as a byte rather than four chars.
8446         (delete_int_or_uint_field), (delete_string_field): reflect the
8447         fact that the field name and typecode now occupy 4 bytes instead
8448         of 8.
8449         (decode_string_field), (decode_header_data): update to reflect
8450         protocol changes and move the field specific encoding from
8451         decode_string_field() back into decode_header_data().
8452         
8453         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8454         Add utility to aid debugging.
8455         
8456         * dbus/dbus-message-builder.c:
8457         (append_string_field), (_dbus_message_data_load): Update to
8458         reflect protocol changes; Change the FIELD_NAME directive
8459         to HEADER_FIELD and allow it to take the field's conventional
8460         name rather than the actual value.
8461         
8462         * test/data/*/*.message: Update to use HEADER_FIELD instead
8463         of FIELD_NAME; Always align the header on an 8 byte boundary
8464         *before* updating the header length.
8465
8466 2003-09-15  Havoc Pennington  <hp@pobox.com>
8467
8468         * dbus/dbus-pending-call.c: add the get/set object data
8469         boilerplate as for DBusConnection, etc. Use generic object data
8470         for the notify callback.
8471
8472         * glib/dbus-gparser.c (parse_node): parse child nodes
8473
8474         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8475         
8476         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8477         contain functions shared between the convenience lib and the
8478         installed lib
8479
8480         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8481         -export-symbols-regex to the GLib library
8482
8483         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8484         fix the locking in here, and add a default handler for
8485         Introspect() that just returns sub-nodes.
8486
8487 2003-09-14  Havoc Pennington  <hp@pobox.com>
8488
8489         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8490         rather than gfoo consistent
8491
8492         * glib/dbus-gproxy.h: delete for now, move contents to
8493         dbus-glib.h, because the include files don't work right since we
8494         aren't in the dbus/ subdir.
8495         
8496         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8497         (dbus_gproxy_end_call): finish
8498         (dbus_gproxy_begin_call): finish
8499
8500         * glib/dbus-gmain.c (dbus_set_g_error): new
8501
8502         * glib/dbus-gobject.c (handle_introspect): include information
8503         about child nodes in the introspection
8504
8505         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8506         function to help in implementation of introspection
8507
8508         * dbus/dbus-object-tree.c
8509         (_dbus_object_tree_list_registered_and_unlock): new function
8510
8511 2003-09-12  Havoc Pennington  <hp@pobox.com>
8512
8513         * glib/dbus-gidl.h: add common base class for all the foo_info
8514         types
8515
8516         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8517         similar to kdcop
8518
8519         * test/Makefile.am: try test srcdir -ef . in addition to test
8520         srcdir = ., one of them should work (yeah lame)
8521         
8522         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8523         library
8524         
8525         * glib/dbus-gparser.h: make description_load routines return
8526         NodeInfo* not Parser*
8527
8528         * Makefile.am (SUBDIRS): build test dir after all library dirs
8529
8530         * configure.in: add GTK+ detection
8531
8532 2003-09-07  Havoc Pennington  <hp@pobox.com>
8533
8534         * Make Doxygen contented.
8535
8536 2003-09-07  Havoc Pennington  <hp@pobox.com>
8537
8538         * doc/dbus-specification.sgml: more updates
8539
8540 2003-09-06  Havoc Pennington  <hp@pobox.com>
8541
8542         * doc/dbus-specification.sgml: partial updates
8543
8544         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8545         zillionth time; hopefully I edited the right file this time.
8546
8547         * bus/config-parser.c (append_rule_from_element): support
8548         send_type, send_path, receive_type, receive_path
8549
8550         * bus/policy.c: add message type and path to the list of things
8551         that can be "firewalled"
8552
8553 2003-09-06  Havoc Pennington  <hp@pobox.com>
8554
8555         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8556         (dbus_connection_register_object_path): make this not handle
8557         messages to paths below the given path
8558
8559 2003-09-03  Havoc Pennington  <hp@pobox.com>
8560
8561         * test/glib/Makefile.am: add this with random glib-linked test
8562         programs
8563
8564         * glib/Makefile.am: remove the random test programs from here,
8565         leave only the unit tests
8566
8567         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8568         uscore/javacaps conversion, and fix     
8569         (get_object_property, set_object_property): change to .NET
8570         convention for mapping props to methods, set_FooBar/get_FooBar, 
8571         since one language has such a convention we may as well copy it. 
8572         Plus real methods in either getFooBar or get_foo_bar style won't 
8573         collide with this convention.
8574
8575 2003-09-01  Havoc Pennington  <hp@pobox.com>
8576
8577         * glib/dbus-gparser.c: implement
8578
8579         * glib/dbus-gobject.c: start implementing skeletons support
8580
8581         * configure.in: when disabling checks/assert, also define
8582         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8583
8584 2003-09-01  Havoc Pennington  <hp@pobox.com>
8585
8586         * glib/Makefile.am: rearrange a bunch of files and get "make
8587         check" framework set up
8588
8589 2003-08-31  Havoc Pennington  <hp@pobox.com>
8590
8591         * fix build with --disable-tests
8592
8593 2003-08-30  Havoc Pennington  <hp@pobox.com>
8594
8595         * dbus/dbus-connection.c: purge DBusMessageHandler
8596
8597         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8598         use callbacks everywhere
8599
8600 2003-08-30  Havoc Pennington  <hp@pobox.com>
8601
8602         * test/data/valid-config-files/system.d/test.conf: change to 
8603         root for the user so warnings don't get printed
8604
8605         * dbus/dbus-message.c: add dbus_message_get_path,
8606         dbus_message_set_path
8607         
8608         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8609         dispatching to a path
8610
8611         * dbus/dbus-string.c (_dbus_string_validate_path): add
8612
8613         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8614         (_dbus_marshal_object_path): implement
8615
8616         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8617         to contain the path to the target object
8618         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8619         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8620
8621 2003-08-30  Havoc Pennington  <hp@pobox.com>
8622
8623         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8624
8625 2003-08-29  Havoc Pennington  <hp@pobox.com>
8626
8627         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8628         registered
8629         (struct DBusObjectSubtree): shrink this
8630         a lot, since we may have a lot of them
8631         (_dbus_object_tree_free_all_unlocked): implement
8632         (_dbus_object_tree_dispatch_and_unlock): implement
8633
8634 2003-08-29  Havoc Pennington  <hp@pobox.com>
8635
8636         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8637
8638 2003-08-28  Havoc Pennington  <hp@pobox.com>
8639
8640         purge DBusObjectID
8641         
8642         * dbus/dbus-connection.c: port to no ObjectID, create a
8643         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8644
8645         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8646         everything except UnregisterFunction and MessageFunction
8647         
8648         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8649         add DBUS_TYPE_OBJECT_PATH
8650         
8651         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8652         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8653         path-based object IDs
8654
8655 2003-08-25  Havoc Pennington  <hp@pobox.com>
8656
8657         Just noticed that dbus_message_test is hosed, I wonder when I
8658         broke that. I thought make check was passing earlier...
8659         
8660         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8661         container tree, will replace most of dbus-object-registry
8662
8663         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8664         screwup
8665
8666 2003-08-19  Havoc Pennington  <hp@pobox.com>
8667
8668         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8669         (dbus_message_is_error): fix this function
8670
8671         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8672         match
8673
8674         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8675         reflect clarified man page
8676         (bus_client_policy_check_can_send): ditto
8677         
8678         * bus/session.conf.in: fixup
8679
8680         * bus/system.conf.in: fixup
8681
8682 2003-08-18  Havoc Pennington  <hp@redhat.com>
8683
8684         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8685
8686         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8687         dumb bug created earlier (wrong order of args to
8688         decode_header_data())
8689         
8690         * tools/dbus-send.c: port
8691
8692         * tools/dbus-print-message.c (print_message): port
8693
8694         * test/data/*messages: port all messages over
8695         
8696         * dbus/dbus-message-builder.c: support including 
8697         message type
8698         
8699         * bus/driver.c: port over
8700         
8701         * bus/dispatch.c: port over to new stuff
8702
8703         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8704         rename disconnect signal to "Disconnected"
8705
8706 2003-08-17  Havoc Pennington  <hp@pobox.com>
8707
8708         This doesn't compile yet, but syncing up so I can hack on it from
8709         work. What are branches for if not broken code? ;-)
8710         
8711         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8712         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8713         DBUS_HEADER_FIELD_ERROR_NAME
8714         
8715         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8716         for the interface+member pairs
8717         (string_hash): change to use g_str_hash algorithm
8718         (find_direct_function, find_string_function): refactor these to
8719         share most code.
8720         
8721         * dbus/dbus-message.c: port all of this over to support 
8722         interface/member fields instead of name field
8723
8724         * dbus/dbus-object-registry.c: port over
8725         
8726         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8727         from _dbus_string_validate_name
8728
8729         * bus/dbus-daemon-1.1: change file format for the 
8730         <deny>/<allow> stuff to match new message naming scheme
8731
8732         * bus/policy.c: port over
8733
8734         * bus/config-parser.c: parse new format
8735         
8736 2003-08-16  Havoc Pennington  <hp@pobox.com>
8737
8738         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8739         broken assertion
8740
8741         * glib/dbus-gproxy.c: some hacking
8742
8743 2003-08-15  Havoc Pennington  <hp@redhat.com>
8744
8745         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8746
8747         * dbus/dbus-connection.c
8748         (dbus_connection_send_with_reply_and_block): factor out internals;
8749         change to convert any error replies to DBusError instead of 
8750         returning them as a message
8751
8752 2003-08-15  Havoc Pennington  <hp@pobox.com>
8753
8754         * dbus/dbus-connection.c, 
8755         dbus/dbus-pending-call.c: Finish the pending call stuff
8756
8757 2003-08-14  Havoc Pennington  <hp@redhat.com>
8758
8759         * dbus/dbus-pending-call.c: start on new object that will replace
8760         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8761         replies
8762
8763         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8764         with remote interfaces
8765
8766         * dbus/dbus-gidl.c: do the boring boilerplate in here
8767         
8768 2003-08-12  Havoc Pennington  <hp@pobox.com>
8769
8770         * bus/dispatch.c (bus_dispatch): make this return proper 
8771         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8772
8773         * dbus/dbus-errors.c (dbus_set_error): use
8774         _dbus_string_append_printf_valist
8775
8776         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8777         (_dbus_string_append_printf): new
8778
8779         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8780         UNKNOWN_METHOD
8781
8782         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8783         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8784         message is unhandled.
8785
8786 2003-08-11  Havoc Pennington  <hp@pobox.com>
8787
8788         * bus/test.c (client_disconnect_handler): change to return
8789         HANDLED (would have been REMOVE_MESSAGE)
8790
8791         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8792         HANDLED/NOT_YET_HANDLED instead of
8793         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8794         should be used.
8795
8796 2003-08-10  Havoc Pennington  <hp@pobox.com>
8797
8798         * tools/dbus-send.c (main): add --type argument, for now
8799         supporting only method_call and signal types.
8800
8801         * tools/dbus-print-message.c: print message type
8802
8803         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8804         init connection->objects
8805
8806         * doc/dbus-specification.sgml: fix sgml
8807
8808         * bus/*.c: port over to object-instance API changes
8809
8810         * test/test-service.c: ditto
8811         
8812         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8813         name, we will have to fix up the rest of the code to also handle
8814         this
8815         (dbus_message_new): generic message-creation call
8816         (set_string_field): allow appending name field
8817
8818 2003-08-06  Havoc Pennington  <hp@pobox.com>
8819
8820         * dbus/dbus-object-registry.c: implement signal connection 
8821         and dispatch
8822
8823         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8824
8825         * dbus/dbus-internals.c (_dbus_memdup): new function
8826
8827 2003-08-02  Havoc Pennington  <hp@pobox.com>
8828
8829         * dbus/dbus-message.c (dbus_message_get_no_reply)
8830         (dbus_message_set_no_reply): add these and remove
8831         set_is_error/get_is_error
8832
8833         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8834         remove the ERROR flag, since there's now an ERROR type
8835
8836 2003-08-01  Havoc Pennington  <hp@pobox.com>
8837
8838         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8839         implement
8840
8841         * dbus/dbus-message.c (dbus_message_get_type): new function
8842
8843         * doc/dbus-specification.sgml: add "type" byte to messages
8844
8845 2003-08-01  Havoc Pennington  <hp@pobox.com>
8846
8847         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8848         a message type enum to distinguish kinds of message
8849         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8850         that need not be replied to
8851
8852 2003-08-01  Havoc Pennington  <hp@pobox.com>
8853
8854         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8855         (unpack_8_octets): fix no-64-bit-int bug
8856
8857         * dbus/dbus-object-registry.c (validate_id): validate the 
8858         connection ID bits, not just the instance ID.
8859
8860         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8861         the connection-global 33 bits of the object ID
8862
8863         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8864         object ID in the new way
8865
8866         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8867         define server/client/instance bits.
8868
8869 2003-07-30  Havoc Pennington  <hp@pobox.com>
8870
8871         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8872         build
8873
8874 2003-07-13  Havoc Pennington  <hp@pobox.com>
8875
8876         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8877         fields to DBusObjectVTable and DBusObjectInfo
8878
8879 2003-07-12  Havoc Pennington  <hp@pobox.com>
8880
8881         * dbus/dbus-object-registry.c: implement unit test,
8882         fix bugs discovered in process
8883
8884         * dbus/dbus-connection.c: remove handler_table and
8885         register_handler(), add DBusObjectRegistry usage
8886
8887         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8888         (dbus_object_id_set_null): new functions
8889
8890 2003-07-08  Havoc Pennington  <hp@pobox.com>
8891
8892         * dbus/dbus-object.c: implement some of this
8893
8894         * dbus/dbus-object-registry.c
8895         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8896         param
8897         (_dbus_object_registry_new): handle OOM
8898
8899 2003-07-08  Havoc Pennington  <hp@pobox.com>
8900
8901         * dbus/dbus-object.h: sketch out an API for registering objects
8902         with a connection, that allows us to use as little as 24 bytes
8903         per object and lets application code represent an object in 
8904         any conceivable way.
8905
8906         * dbus/dbus-object-registry.c: implement the hard bits of the
8907         DBusConnection aspect of object API. Not yet wired up.
8908         
8909 2003-07-06  Havoc Pennington  <hp@pobox.com>
8910
8911         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8912         (_dbus_marshal_object_id): new
8913         (_dbus_demarshal_object_id): new
8914         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8915         consolidate identical switch cases. Don't conditionalize handling
8916         of DBUS_TYPE_UINT64, need to handle the type always.
8917         (_dbus_marshal_validate_arg): consolidate identical cases, and
8918         handle DBUS_TYPE_OBJECT_ID
8919
8920         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8921
8922         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8923
8924 2003-09-28  Havoc Pennington  <hp@pobox.com>
8925
8926         * real 0.13 release
8927
8928 2003-09-28  Havoc Pennington  <hp@pobox.com>
8929
8930         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8931         to work with Debian db2html
8932
8933 2003-09-28  Havoc Pennington  <hp@pobox.com>
8934
8935         * configure.in: 0.13
8936
8937         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8938         stylesheet-images for benefit of Debian
8939         
8940         Change back to using filesystem-linked sockets for the system
8941         bus, so only root can create the default system bus address.
8942         
8943         * bus/system.conf.in: change to use
8944         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8945
8946         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8947         from here.
8948
8949         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8950         here, and AC_DEFINE DBUS_SYSTEM_PATH
8951
8952 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8953
8954         * doc/TODO:
8955         * doc/busconfig.dtd:
8956         Add busconfig DTD.
8957         
8958 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8959
8960         * doc/dbus-specification.sgml:
8961         Add activation reply values.
8962         
8963 2003-08-05  Havoc Pennington  <hp@redhat.com>
8964
8965         * configure.in: 0.12
8966
8967 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8968
8969         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8970         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8971         (add_watch), (remove_watch), (create_source):
8972         Refcount fds, fixes some reentrancy issues.
8973         
8974 2003-07-30  Havoc Pennington  <hp@redhat.com>
8975
8976         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8977         bus address to be abstract if we have abstract sockets
8978
8979         * NEWS: update
8980
8981 2003-07-28  Havoc Pennington  <hp@redhat.com>
8982
8983         * bus/messagebus.in: fix to avoid processname/servicename 
8984         confusion, from Michael Kearey
8985         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8986         
8987 2003-07-23  Havoc Pennington  <hp@pobox.com>
8988
8989         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8990         fix from Andy Hanton to remove broken "+1"
8991
8992 2003-07-16  Havoc Pennington  <hp@pobox.com>
8993
8994         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8995         babysitter process, as suggested by Thomas Leonard, so 
8996         an "eval `dbus-launch --exit-with-session`" will actually 
8997         return
8998
8999 2003-07-16  Havoc Pennington  <hp@pobox.com>
9000
9001         * configure.in: print out EXPANDED_* variables in the summary at
9002         the end; clean up the code that computes EXPANDED_ variables and
9003         get the ones using exec_prefix right. Should make things work
9004         when you build without --prefix
9005
9006 2003-06-29  Havoc Pennington  <hp@pobox.com>
9007
9008         * mono/Test.cs (class Test): fire up a main loop and run it
9009
9010         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9011         done once, the app has to do it
9012
9013 2003-06-26  Havoc Pennington  <hp@pobox.com>
9014
9015         * mono/Connection.cs: set up connection with the glib main loop
9016
9017 2003-07-01  Havoc Pennington  <hp@redhat.com>
9018
9019         * doc/dbus-specification.sgml: clarify the format of a type code,
9020         change suggested by Jim Blandy
9021
9022 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9023
9024         * doc/Makefile.am:
9025         * tools/Makefile.am: Don't assume srcdir == builddir.
9026
9027         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9028         the allocated block.
9029         (_dbus_memory_test): New function.
9030         * dbus/dbus-test.h: Add _dbus_memory_test ().
9031         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9032
9033         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9034         of %c%c%c%c.
9035         (dbus_message_new): Remove obsolete @todo.
9036
9037         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9038         (_dbus_marshal_set_uint64): Fix comment.
9039
9040         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9041         hardcode FIELD_REPLY_SERIAL.
9042
9043         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9044         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9045
9046         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9047         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9048
9049 2003-06-24  Havoc Pennington  <hp@pobox.com>
9050
9051         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9052
9053 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9054
9055         * configure.in:
9056         * gcj/.cvsignore:
9057         * gcj/Hello.java:
9058         * gcj/Makefile.am:
9059         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9060         * gcj/org/.cvsignore:
9061         * gcj/org/Makefile.am:
9062         * gcj/org/freedesktop/.cvsignore:
9063         * gcj/org/freedesktop/Makefile.am:
9064         * gcj/org/freedesktop/dbus/.cvsignore:
9065         * gcj/org/freedesktop/dbus/Makefile.am:
9066         * gcj/org/freedesktop/dbus/Message.java: (Message),
9067         (Message.Message):
9068         * gcj/org/freedesktop/dbus/natMessage.cc:
9069         Fix the build system.
9070
9071 2003-06-22  Havoc Pennington  <hp@pobox.com>
9072
9073         * mono/Connection.cs: add more bindings
9074
9075         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9076         more than once.
9077
9078 2003-06-22  Havoc Pennington  <hp@pobox.com>
9079
9080         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9081         Start wrapping more stuff.
9082
9083 2003-06-22  Havoc Pennington  <hp@pobox.com>
9084
9085         * mono/Message.cs: implement Message.Wrap() that ensures we only
9086         have a single C# wrapper per DBusMessage, assuming it works which
9087         it probably doesn't.
9088
9089         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9090         (dbus_message_free_data_slot): new
9091         (dbus_message_set_data): new
9092         (dbus_message_get_data): new
9093
9094 2003-06-22  Havoc Pennington  <hp@pobox.com>
9095
9096         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9097         (_dbus_data_slot_allocator_alloc): rework these to keep a
9098         reference count on each slot and automatically manage a global
9099         slot ID variable passed in by address
9100
9101         * bus/bus.c: convert to new dataslot API
9102
9103         * dbus/dbus-bus.c: convert to new dataslot API
9104
9105         * dbus/dbus-connection.c: convert to new dataslot API
9106
9107         * dbus/dbus-server.c: convert to new dataslot API
9108
9109         * glib/dbus-gmain.c: ditto
9110
9111         * bus/test.c: ditto
9112
9113         * bus/connection.c: ditto
9114
9115 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9116
9117         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9118         after the gcj checks so that the correct configuration tags
9119         will be added to libtool.
9120
9121         * dbus-glib-1.pc.in: No need to specify any includes since
9122         dbus-1.pc.in has those.
9123
9124 2003-06-22  Havoc Pennington  <hp@pobox.com>
9125
9126         * mono/*, gcj/*, configure.in, Makefile.am:
9127         Check in makefiles and subdirs for mono and gcj bindings.
9128         Neither binding actually exists, just trying to get through
9129         all the build and other boring bits.
9130
9131 2003-06-21  Philip Blundell  <philb@gnu.org>
9132
9133         * tools/dbus-monitor.1: Updated.
9134
9135         * tools/dbus-send.1: Likewise.
9136
9137 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9138
9139         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9140         for hangup and error after checking read so we won't discard
9141         pending data if both hangup and read are set.
9142
9143 2003-06-19  Philip Blundell  <philb@gnu.org>
9144
9145         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9146
9147         * tools/dbus-send.c: Accept both --system and --session.
9148
9149         * tools/dbus-monitor.c: Same here.
9150
9151 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9152
9153         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9154         from C++ (Patch by Miloslav Trmac).
9155
9156 2003-06-15  Joe Shaw  <joe@assbarn.com>
9157
9158         * configure.in: Check for socklen_t.
9159
9160         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9161
9162         * test/test-segfault.c: Add #include <sys/time.h>
9163
9164         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9165         dbus-launch needs it.
9166
9167 2003-06-09  Havoc Pennington  <hp@redhat.com>
9168
9169         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9170         SUN_LEN, it breaks abstract socket usage
9171
9172         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9173         starts of lines.
9174
9175 2003-06-04  Havoc Pennington  <hp@pobox.com>
9176
9177         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9178         using unix:abstract=/foo, and when listening in a tmpdir
9179         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9180
9181         * dbus/dbus-transport.c (_dbus_transport_open): support
9182         unix:abstract=/foo
9183
9184         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9185         support abstract sockets
9186
9187         * dbus/dbus-transport-unix.c
9188         (_dbus_transport_new_for_domain_socket): support abstract sockets
9189
9190         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9191         toggle as an argument, implement abstract namespace support
9192         (_dbus_listen_unix_socket): ditto
9193
9194         * configure.in: add --enable-abstract-sockets and implement
9195         a configure check for autodetection of the right value.
9196
9197 2003-06-01  Havoc Pennington  <hp@pobox.com>
9198
9199         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9200         in /tmp (though on Linux this will end up being useless,
9201         when we add abstract namespace support)
9202
9203         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9204         subst'ing it
9205
9206 2003-05-28  Colin Walters  <walters@verbum.org>
9207
9208         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9209
9210 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9211
9212         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9213
9214 2003-05-17  Colin Walters  <walters@gnu.org>
9215
9216         * tools/dbus-send.c: Don't exit with an error code if --help was
9217         passed.  Default to using the session bus instead of the system
9218         one.
9219
9220         * tools/dbus-launch.c: Ditto.
9221
9222         * tools/dbus-monitor.c: Ditto.
9223
9224         * tools/dbus-send.1: Update with new arguments.
9225
9226         * tools/dbus-launch.c: Emit code to export variables.  New
9227         arguments -s and -c to specify shell syntax, and a bit of code to
9228         autodetect syntax.  Also, allow specifying a program to run.
9229
9230         * tools/dbus-launch.1: Update with new arguments.
9231
9232         * tools/dbus-send.1: Ditto.
9233
9234         * tools/dbus-monitor.1: Ditto.
9235
9236 2003-05-17  Havoc Pennington  <hp@pobox.com>
9237
9238         * bus/config-parser.c (merge_included): merge in policies from
9239         child configuration file.
9240
9241         * bus/policy.c (bus_policy_merge): function to merge two policies
9242         together
9243
9244 2003-05-16  Havoc Pennington  <hp@redhat.com>
9245
9246         * dbus/dbus-connection.c: disable verbose lock spew
9247
9248         * tools/dbus-send.c: add --print-reply command line option
9249
9250         * tools/dbus-print-message.h (print_message): new util function
9251         shared by dbus-send and dbus-monitor
9252
9253         * tools/dbus-monitor.c (handler_func): exit on disconnect
9254
9255         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9256         disconnected, don't try to use the read_watch
9257
9258         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9259         so we can find this bug more easily
9260
9261 2003-05-16  Havoc Pennington  <hp@redhat.com>
9262
9263         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9264         NULL as DBusHashTable is annoyingly likely to do.
9265
9266 2003-05-16  Colin Walters  <walters@verbum.org>
9267
9268         * tools/dbus-monitor.c: Add --session argument and usage()
9269         function.
9270
9271         * tools/dbus-monitor.1: Update with new --session arg.
9272
9273         * bus/Makefile.am (install-data-hook): Create
9274         $(libdir)/dbus-1.0/services so that the session bus is happy.
9275
9276 2003-05-15  Havoc Pennington  <hp@redhat.com>
9277
9278         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9279         on non-x86. ifdef's are evil.
9280
9281 2003-05-15  Havoc Pennington  <hp@redhat.com>
9282
9283         * configure.in: 0.11
9284
9285         * NEWS: update
9286
9287         * bus/Makefile.am (initddir): apparently we are supposed to put
9288         init scripts in /etc/rc.d/init.d not /etc/init.d
9289
9290         * bus/Makefile.am: remove the "you must --enable-tests to make
9291         check" as it broke distcheck
9292
9293         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9294
9295 2003-05-13  James Willcox  <jwillcox@gnome.org>
9296
9297         * configure.in:
9298         * bus/activation.c: (bus_activation_service_created),
9299         (bus_activation_activate_service):
9300         * bus/driver.c: (bus_driver_send_service_deleted),
9301         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9302         (bus_driver_send_service_acquired),
9303         (bus_driver_send_welcome_message),
9304         (bus_driver_handle_list_services):
9305         * bus/session.conf.in:
9306         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9307         (dbus_bus_service_exists), (dbus_bus_activate_service):
9308         * dbus/dbus-bus.h:
9309
9310         Add some convenience API which lets you activate a service, and did a
9311         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9312         and dbus_message_get_args()
9313
9314 2003-05-11  Havoc Pennington  <hp@pobox.com>
9315
9316         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9317         calling _dbus_marshal_validate_arg() for every byte in a byte
9318         array, etc.
9319
9320         * dbus/dbus-message-handler.c: use atomic reference counting to
9321         reduce number of locks slightly; the global lock in here sucks
9322
9323         * dbus/dbus-connection.c
9324         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9325         update_dispatch_status that can be called with lock held; then use
9326         in a couple places to reduce locking/unlocking
9327         (dbus_connection_send): hold the lock over the whole function
9328         instead of acquiring it twice.
9329
9330         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9331
9332         * bus/connection.c (bus_connections_setup_connection): fix access
9333         to already-freed memory.
9334
9335         * dbus/dbus-connection.c: keep a little cache of linked list
9336         nodes, to avoid using the global linked list alloc lock in the
9337         normal send-message case. Instead we just use the connection lock
9338         that we already have to take.
9339
9340         * dbus/dbus-list.c (_dbus_list_find_last): new function
9341
9342         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9343         change to use a struct for the atomic type; fix docs,
9344         they return value before increment, not after increment.
9345
9346         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9347         (_dbus_string_append_8_aligned): new functions to try to
9348         microoptimize this operation.
9349         (reallocate_for_length): break this out of set_length(), to
9350         improve profile info, and also so we can consider inlining the
9351         set_length() part.
9352
9353         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9354         strings with some preallocation, cuts down on our calls to realloc
9355         a fair bit. Though if we can get the "move entire string to empty
9356         string" optimization below to kick in here, it would be better.
9357
9358         * dbus/dbus-string.c (_dbus_string_move): just call
9359         _dbus_string_move_len
9360         (_dbus_string_move_len): add a special case for moving
9361         an entire string into an empty string; we can just
9362         swap the string data instead of doing any reallocs.
9363         (_dbus_string_init_preallocated): new function
9364
9365 2003-05-11  Havoc Pennington  <hp@pobox.com>
9366
9367         Write a "test-profile" that does echo client-server with threads;
9368         profile reveals lock contention, memcpy/realloc of buffers, and
9369         UTF-8 validation as hot spots. 20% of lock contention eliminated
9370         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9371         contention is global mempool locks for GList and DBusList.
9372
9373         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9374         x86 implementation
9375
9376         * dbus/dbus-connection.c (struct DBusConnection): use
9377         dbus_atomic_t for the reference count
9378
9379         * dbus/dbus-message.c (struct DBusMessage): declare
9380         dbus_atomic_t values as volatile
9381
9382         * configure.in: code to detect ability to use atomic integer
9383         operations in assembly, from GLib patch
9384
9385         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9386         time, tired of it being wrong in threads and forked processes
9387
9388         * glib/test-profile.c: a little program to bounce messages back
9389         and forth between threads and eat CPU
9390
9391         * dbus/dbus-connection.c: add debug spew macros for debugging
9392         thread locks; include config.h at top; fix deadlock in
9393         dbus_connection_flush()
9394
9395 2003-05-08  Havoc Pennington  <hp@pobox.com>
9396
9397         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9398         data from getting written, and there wasn't a good reason to
9399         use _exit really.
9400
9401         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9402         dbus_verbose lines in test coverage
9403         (main): add list of functions sorted by # of untested blocks
9404         to the coverage report
9405
9406         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9407
9408         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9409
9410         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9411         extend test coverage
9412
9413         * test/data/auth/cancel.auth-script: test canceling an
9414         authentication
9415
9416         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9417         aren't used. in CVS history if we end up needing them.
9418
9419 2003-05-04  Havoc Pennington  <hp@pobox.com>
9420
9421         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9422         unit test
9423
9424         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9425         function, which assumed length was in # of strings, not bytes
9426
9427         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9428         missing coverage
9429
9430         * dbus/dbus-connection.c
9431         (_dbus_connection_queue_received_message): disable function for
9432         now, we are only using it in test mode
9433
9434         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9435         remove a mistaken FIXME
9436
9437 2003-05-04  Havoc Pennington  <hp@pobox.com>
9438
9439         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9440         unlock mutex on successful return, patch from Anders Gustafsson
9441
9442 2003-05-04  Havoc Pennington  <hp@pobox.com>
9443
9444         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9445         Anders Gustafsson
9446
9447 2003-05-04  Havoc Pennington  <hp@pobox.com>
9448
9449         * tools/dbus-launch.c: implement
9450
9451         * bus/main.c (main), bus/bus.c (bus_context_new):
9452         implement --print-pid and --fork
9453
9454 2003-05-03  Havoc Pennington  <hp@redhat.com>
9455
9456         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9457         the address had no value, and add to test suite. Fix and
9458         regression test from Miloslav Trmac
9459
9460 2003-05-03  Havoc Pennington  <hp@pobox.com>
9461
9462         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9463         watch is invalid when handled
9464
9465         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9466         dbus-launch utility to launch the bus from a shell script.  Didn't
9467         actually implement dbus-launch yet, it's just a placeholder still.
9468
9469 2003-05-03  Havoc Pennington  <hp@pobox.com>
9470
9471         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9472         daemon; also documents daemon config file, so replaces
9473         doc/config-file.txt. Corrected some stuff from config-file.txt in
9474         the process of moving it.
9475
9476 2003-05-03  Havoc Pennington  <hp@pobox.com>
9477
9478         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9479         add some man pages
9480
9481 2003-05-03  Colin Walters  <walters@verbum.org>
9482
9483         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9484         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9485
9486         * Makefile.am: Update to use new .pc versioning scheme.
9487
9488 2003-05-02  Havoc Pennington  <hp@redhat.com>
9489
9490         * bus/system.conf.in: allow send/receive to/from message bus
9491         service
9492
9493 2003-04-30  Havoc Pennington  <hp@redhat.com>
9494
9495         * configure.in: print a note when building with unit tests and
9496         without assertions
9497
9498 2003-04-30  Havoc Pennington  <hp@redhat.com>
9499
9500         * Makefile.am: add a check-local that complains if you didn't
9501         configure with --enable-tests
9502
9503 2003-04-29  Havoc Pennington  <hp@redhat.com>
9504
9505         * glib/dbus-gmain.c: docs cleanups
9506
9507         * dbus/dbus-types.h: add docs on int64 types
9508
9509         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9510         public API docs section
9511
9512 2003-04-29  Havoc Pennington  <hp@redhat.com>
9513
9514         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9515         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9516         parallel install API version, not with the D-BUS package version.
9517
9518         * HACKING: move some of README over here
9519
9520         * README: updates, and document API/ABI policy
9521
9522         * configure.in: reindentation
9523
9524 2003-04-29  Havoc Pennington  <hp@redhat.com>
9525
9526         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9527         to use this library" to be sure people have the right
9528         expectations.
9529
9530 2003-04-28  Havoc Pennington  <hp@redhat.com>
9531
9532         * configure.in: add --enable-docs which by default is auto yes if
9533         doxygen and db2html found, no otherwise; but can be forced on/off
9534
9535         * doc/Makefile.am: conditionalize whether to build docs on
9536         --enable-docs
9537
9538 2003-04-28  Havoc Pennington  <hp@redhat.com>
9539
9540         * configure.in: 0.10
9541
9542         * NEWS: update
9543
9544         * bus/system.conf.in: add <includedir>system.d</includedir>
9545
9546         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9547         username was provided but not uid
9548
9549         * bus/config-parser.c (struct BusConfigParser): keep track of
9550         whether the parser is toplevel or was included; change some
9551         of the error handling if it's included.
9552
9553 2003-04-27  Havoc Pennington  <hp@pobox.com>
9554
9555         Unbreak my code...
9556
9557         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9558         report correct status if we finish processing authentication
9559         inside this function.
9560
9561         * bus/activation.c (try_send_activation_failure): use
9562         bus_transaction_send_error_reply
9563
9564         * bus/connection.c (bus_connection_get_groups): return an error
9565         explaining the problem
9566
9567         * bus/bus.c (bus_context_check_security_policy): implement
9568         restriction here that inactive connections can only send the
9569         hello message. Also, allow bus driver to send anything to
9570         any recipient.
9571
9572         * bus/connection.c (bus_connection_complete): create the
9573         BusClientPolicy here instead of on-demand.
9574         (bus_connection_get_policy): don't return an error
9575
9576         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9577         sender field in message being replied to
9578
9579         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9580         causing it to return FALSE always
9581
9582         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9583         we checked sender rather than destination
9584
9585 2003-04-25  Havoc Pennington  <hp@redhat.com>
9586
9587         test suite is slightly hosed at the moment, will fix soon
9588
9589         * bus/connection.c (bus_connections_expire_incomplete): fix to
9590         properly disable the timeout when required
9591         (bus_connection_set_name): check whether we can remove incomplete
9592         connections timeout after we complete each connection.
9593
9594         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9595         probably still broken.
9596
9597         * bus/services.c (bus_registry_acquire_service): implement max
9598         number of services owned, and honor allow/deny rules on which
9599         services a connection can own.
9600
9601         * bus/connection.c (bus_connection_get_policy): report errors here
9602
9603         * bus/activation.c: implement limit on number of pending
9604         activations
9605
9606 2003-04-25  Havoc Pennington  <hp@redhat.com>
9607
9608         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9609         where we used >= 0 instead of != DBUS_UID_UNSET.
9610
9611 2003-04-25  Havoc Pennington  <hp@redhat.com>
9612
9613         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9614         were toggled without add/remove, fix from Anders Gustafsson
9615
9616 2003-04-24  Havoc Pennington  <hp@redhat.com>
9617
9618         * test/data/valid-config-files/basic.conf: add <limit> tags to
9619         this test
9620
9621         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9622         <limit> tag in configuration file.
9623
9624 2003-04-24  Havoc Pennington  <hp@redhat.com>
9625
9626         * bus/dispatch.c: somehow missed some name_is
9627
9628         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9629         (_dbus_timeout_set_interval): new
9630
9631         * bus/connection.c (bus_connections_setup_connection): record time
9632         when each connection is first set up, and expire them after the
9633         auth timeout passes.
9634
9635 2003-04-24  Havoc Pennington  <hp@redhat.com>
9636
9637         * dbus/dbus-message.c (dbus_message_name_is): rename
9638         (dbus_message_service_is): rename
9639         (dbus_message_sender_is): rename
9640         (dbus_message_get_service): rename
9641
9642 2003-04-24  Havoc Pennington  <hp@redhat.com>
9643
9644         * configure.in: add --enable-checks
9645
9646         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9647
9648         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9649         to use thread locks.
9650         (_dbus_connection_handler_destroyed_locked): move some private
9651         functions into proper docs group
9652
9653         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9654         _dbus_return_val_if_fail
9655
9656         Throughout: use dbus_return_if_fail
9657
9658 2003-04-23  James Willcox  <jwillcox@gnome.org>
9659
9660         * glib/dbus-glib.h:
9661         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9662         (dbus_connection_setup_with_g_main),
9663         (dbus_server_setup_with_g_main):
9664         * glib/test-dbus-glib.c: (main):
9665         * glib/test-thread-client.c: (main):
9666         * glib/test-thread-server.c: (new_connection_callback), (main):
9667         * tools/dbus-monitor.c: (main):
9668
9669         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9670         and dbus_server_setup_with_g_main().
9671
9672 2003-04-20  Havoc Pennington  <hp@pobox.com>
9673
9674         * doc/dbus-specification.sgml: document the restrictions on
9675         message and service names
9676
9677 2003-04-22  Havoc Pennington  <hp@redhat.com>
9678
9679         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9680         support, and do some code cleanups to share more code and
9681         speed up array marshal/demarshal.
9682
9683         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9684
9685         * configure.in: generate dbus-arch-deps.h
9686
9687         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9688         64-bit typecodes
9689
9690 2003-04-22  Havoc Pennington  <hp@redhat.com>
9691
9692         * test/data/valid-messages/opposite-endian.message: fix test
9693         to use proper type for rply field
9694
9695         * test/data/invalid-messages: add tests for below validation
9696
9697         * dbus/dbus-message.c (decode_header_data): validate field types,
9698         and validate that named fields are valid names
9699         (decode_name_field): consider messages in the
9700         org.freedesktop.Local. namespace to be invalid.
9701
9702         * dbus/dbus-string.c (_dbus_string_validate_name): new
9703
9704 2003-04-19  Havoc Pennington  <hp@pobox.com>
9705
9706         * bus/driver.c (bus_driver_handle_hello): check limits and
9707         return an error if they are exceeded.
9708
9709         * bus/connection.c: maintain separate lists of active and inactive
9710         connections, and a count of each. Maintain count of completed
9711         connections per user. Implement code to check connection limits.
9712
9713         * dbus/dbus-list.c (_dbus_list_unlink): export
9714
9715         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9716         number of bytes in the message queue for a connection
9717
9718 2003-04-18  Havoc Pennington  <hp@pobox.com>
9719
9720         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9721
9722         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9723         memleaks
9724
9725         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9726         on realloc be sure to update the pointer in the keyring
9727
9728         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9729         offset to avoid writing to unallocated memory
9730
9731         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9732         try the next mechanism, so we properly handle OOM
9733
9734         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9735         on OOM.
9736         (_dbus_keyring_new): fix OOM bug
9737         (_dbus_keyring_new_homedir): always set error; impose a maximum
9738         number of keys we'll load from the file, mostly to speed up the
9739         test suite and make its OOM checks more useful, but also for
9740         general sanity.
9741
9742         * dbus/dbus-auth.c (process_error_server): reject authentication
9743         if we get an error from the client
9744         (process_cancel): on cancel, send REJECTED, per the spec
9745         (process_error_client): send CANCEL if we get an error from the
9746         server.
9747
9748 2003-04-18  Havoc Pennington  <hp@pobox.com>
9749
9750         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9751         debug spew
9752
9753         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9754         handling problem
9755
9756         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9757         about DBUS_TEST_HOMEDIR once
9758
9759         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9760         the environment
9761
9762         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9763         config file so we test the right thing
9764
9765         Throughout: assorted docs improvements
9766
9767 2003-04-18  Havoc Pennington  <hp@pobox.com>
9768
9769         * glib/dbus-gmain.c: adapt to watch changes
9770
9771         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9772
9773         * dbus/dbus-server.h: remove dbus_server_handle_watch
9774
9775         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9776
9777         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9778         like DBusTimeout, so we don't need dbus_connection_handle_watch
9779         etc.
9780
9781 2003-04-17  Havoc Pennington  <hp@redhat.com>
9782
9783         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9784         database usage so it all goes via the DBusUserDatabase cache.
9785
9786 2003-04-17  Havoc Pennington  <hp@redhat.com>
9787
9788         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9789         there was an OOM watch we skipped, we always return TRUE so we
9790         iterate again to have a look at it again. Fixes test suite hang.
9791         Code rearrangement also lets us lose some memset and only iterate
9792         over callbacks once.
9793
9794         * bus/driver.c (bus_driver_handle_message): sense of test for
9795         reply was backward
9796
9797 2003-04-16  Havoc Pennington  <hp@pobox.com>
9798
9799         * doc/dbus-specification.sgml: make spec say serials are unsigned
9800
9801         * dbus/dbus-message.h: change message serials to unsigned
9802
9803         * dbus/dbus-connection.c: adapt to message serials being unsigned
9804
9805 2003-04-15  Havoc Pennington  <hp@pobox.com>
9806
9807         * bus/bus.c: create and keep around a shared DBusUserDatabase
9808         object.
9809
9810         * bus/connection.c (bus_connection_get_groups): don't cache
9811         groups for user in the connection object, since user database
9812         object now does that.
9813
9814 2003-04-16  Havoc Pennington  <hp@redhat.com>
9815
9816         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9817         list of size counters
9818         (_dbus_message_loader_putback_message_link): put back a popped link
9819
9820         * dbus/dbus-connection.c
9821         (dbus_connection_set_max_live_messages_size): rename
9822         max_received_size
9823         (dbus_connection_get_outgoing_size): get size of outgoing
9824         queue
9825         (_dbus_connection_set_connection_counter): remove this cruft
9826
9827 2003-04-14  Havoc Pennington  <hp@redhat.com>
9828
9829         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9830         caching, but at some point we might want to be able to use a
9831         different database.
9832
9833         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9834         SHA1 conf file to test the sha1 auth mechanism, since the regular
9835         test always uses EXTERNAL when available.
9836
9837         * configure.in,
9838         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9839         add conf file that requires use of sha1 auth
9840
9841 2003-04-13  Havoc Pennington  <hp@pobox.com>
9842
9843         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9844         from Philip Blundell to send messages and monitor them.
9845
9846 2003-04-13  Havoc Pennington  <hp@pobox.com>
9847
9848         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9849         callbacks
9850
9851         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9852         users
9853
9854         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9855         fix to only recover unused bytes if we're already authenticated
9856         (_dbus_transport_get_is_authenticated): fix to still mark us
9857         authenticated if there are unused bytes.
9858
9859         * bus/dispatch.c: implement security policy checking
9860
9861         * bus/connection.c (bus_transaction_send_from_driver): new
9862
9863         * bus/bus.c (bus_context_check_security_policy): new
9864
9865         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9866         now we just set the DBusError and it gets converted to an error
9867         reply.
9868
9869         * bus/connection.c (allow_user_function): enable code using actual
9870         data from the config file
9871
9872         * bus/policy.c (list_allows_user): handle wildcard rules for
9873         user/group connection perms
9874
9875 2003-04-13  Havoc Pennington  <hp@pobox.com>
9876
9877         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9878
9879         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9880
9881         * bus/policy.c (bus_policy_append_mandatory_rule)
9882         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9883         (bus_policy_append_group_rule): new functions
9884
9885 2003-04-12  Havoc Pennington  <hp@pobox.com>
9886
9887         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9888
9889         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9890         the pid/gid/uid, just for paranoia.
9891
9892         * test/break-loader.c (randomly_do_n_things): find a byte
9893         containing a type code, and randomly change it to a different
9894         type code.
9895
9896 2003-04-12  Havoc Pennington  <hp@pobox.com>
9897
9898         * bus/policy.h: change BusPolicy to be the thing from the config
9899         file, and rename old BusPolicy to BusClientPolicy
9900
9901         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9902         match change in how policy works
9903
9904         * dbus/dbus-internals.h: mark assert_not_reached as
9905         __attribute((noreturn))__
9906
9907 2003-04-11  Havoc Pennington  <hp@redhat.com>
9908
9909         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9910         the broadcast service. Use boolean return for ServiceExists.
9911
9912 2003-04-11  Havoc Pennington  <hp@redhat.com>
9913
9914         * configure.in: add another directory to look for qt in.
9915
9916 2003-04-11  Havoc Pennington  <hp@redhat.com>
9917
9918         * AUTHORS: add Colin Walters
9919
9920 2003-04-11  Havoc Pennington  <hp@redhat.com>
9921
9922         * NEWS: update
9923
9924         * configure.in: 0.9
9925
9926 2003-04-11  Havoc Pennington  <hp@redhat.com>
9927
9928         * bus/messagebus.in: remove pid file when stopping the
9929         message bus, since the bus won't have privileges to remove it
9930         itself.
9931
9932 2003-04-11  Havoc Pennington  <hp@redhat.com>
9933
9934         * bus/bus.c (bus_context_new): move credentials change after
9935         creating pidfile
9936
9937 2003-04-11  Havoc Pennington  <hp@pobox.com>
9938
9939         * test/decode-gcov.c: add "below average functions" to the
9940         coverage report, and change how some of the code works.
9941
9942         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9943         not in the coverage stats.
9944
9945         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9946         couple places so running the test suite doesn't result in megaspam.
9947
9948 2003-04-11  Havoc Pennington  <hp@pobox.com>
9949
9950         * bus/dispatch.c (check_existent_service_activation): accept a no
9951         memory error in a place we didn't before
9952
9953         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9954         in case the first one failed," since the test suite is less
9955         broken now.
9956
9957 2003-04-10  Havoc Pennington  <hp@pobox.com>
9958
9959         * bus/dispatch.c (check_segfault_service_activation): add test
9960         for launching an executable that just crashes.
9961
9962         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9963         don't leave a million cores. We'll see how portable this is.
9964
9965 2003-04-10  Havoc Pennington  <hp@pobox.com>
9966
9967         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9968         the possible parent failures before we fork, so that we don't
9969         fail to create a babysitter after creating the child.
9970
9971         * bus/activation.c (bus_activation_activate_service): kill child
9972         if we don't successfully complete the activation.
9973
9974 2003-04-10  Havoc Pennington  <hp@redhat.com>
9975
9976         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9977         the connection if it's disconnected
9978
9979         * bus/activation.c (bus_activation_service_created): use new
9980         transaction features to roll back removal of pending activation if
9981         we don't successfully create the service after all. Don't remove
9982         pending activation if the function fails.
9983
9984         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9985         (_dbus_list_insert_after_link): new code to facilitate
9986         services.c fixes
9987
9988         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9989         new functionality, so we can preallocate the ability to insert
9990         into a hash table.
9991
9992         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9993         allowing us to put custom hooks in a transaction to be used for
9994         cancelling said transaction
9995
9996         * doc/dbus-specification.sgml: add some discussion of secondary
9997         service owners, and disallow zero-length service names
9998
9999         * bus/services.c (bus_registry_acquire_service): new function,
10000         splits out part of bus_driver_handle_acquire_service() and fixes
10001         a bug where we didn't remove the service doing the acquiring
10002         from the secondary queue if we failed to remove the current owner
10003         from the front of the queue.
10004
10005 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10006
10007         * doc/dbus-specification.sgml:
10008         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10009
10010 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10011
10012         * bus/.cvsignore:
10013         * glib/.cvsignore:
10014         * test/.cvsignore:
10015         Added files to cvsignore
10016
10017         * dbus/dbus-message.h:
10018         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10019         Make get_named() take two out argument and return a boolean.
10020         (dbus_message_iter_get_args_valist):
10021         Update usage of get_named().
10022         (dbus_message_iter_append_byte):
10023         Fix typo
10024         (dbus_message_iter_append_named)
10025         Fix typo
10026         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10027         More tests.
10028
10029 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10030
10031         * dbus/dbus-marshal.[ch]:
10032         Add array_type_pos argument to _dbus_marshal_validate_arg.
10033         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10034
10035         * dbus/dbus-message.[ch]:
10036         Multi-dimensional arrays have full type specification in the
10037         outermost array. Iter code re-arranged to handle this.
10038         Added some more iter tests.
10039
10040         * doc/dbus-specification.sgml:
10041         Add me to authors.
10042         Remove old FIXME.
10043         Update new array encoding description.
10044         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10045
10046         * test/data/invalid-messages/array-with-mixed-types.message:
10047         * test/data/valid-messages/array-of-array-of-uint32.message:
10048         Change to the new array format.
10049
10050         * test/data/invalid-messages/too-short-dict.message:
10051         Fix bug in test.
10052
10053         * test/data/valid-messages/recursive-types.message:
10054         Fix up and extend test.
10055
10056 2003-04-10  Havoc Pennington  <hp@pobox.com>
10057
10058         * bus/dispatch.c: lots of fixes
10059
10060         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10061         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10062         that was crack, broke the test service.
10063
10064         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10065         handling to avoid piling up errors if we get a failure on the
10066         first address.
10067
10068         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10069         pid in assertion failures.
10070
10071         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10072         to some fixed size of file descriptor array. Don't return TRUE
10073         anytime a timeout exists, that led to lots of busy loop silliness
10074         in the tests.
10075
10076 2003-04-09  Havoc Pennington  <hp@redhat.com>
10077
10078         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10079         I'd checked this in earlier but hadn't.
10080
10081 2003-04-09  Havoc Pennington  <hp@redhat.com>
10082
10083         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10084         the activation test (man this is getting old!)
10085
10086 2003-04-09  Havoc Pennington  <hp@redhat.com>
10087
10088         * test/test-utils.c: use dispatch status function to fix this up
10089
10090         * bus/connection.c (connection_watch_callback): don't dispatch
10091         from here
10092         (connection_timeout_callback): don't dispatch from here
10093         (bus_connections_setup_connection): set the dispatch status function
10094         (bus_connection_disconnected): unset it
10095
10096         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10097         used to add a connection to be dispatched
10098         (_dbus_loop_iterate): do the dispatching at the end of each
10099         iteration
10100
10101         * dbus/dbus-connection.c
10102         (dbus_connection_set_dispatch_status_function): new function
10103         allowing us to fix up main loop usage
10104         (_dbus_connection_last_unref): free all the various function
10105         user data
10106         (dbus_connection_dispatch): call the DispatchStatusFunction
10107         whenever this function returns
10108         (dbus_connection_handle_watch): call DispatchStatusFunction
10109         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10110         (reply_handler_timeout): call DispatchStatusFunction
10111         (dbus_connection_flush): call DispatchStatusFunction
10112
10113 2003-04-09  Havoc Pennington  <hp@redhat.com>
10114
10115         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10116         a memory leak
10117
10118         * bus/dispatch.c (check_service_activated): fix bug in test
10119
10120         * dbus/dbus-mainloop.c (check_timeout): fix this up
10121
10122         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10123         verbose output so we can sort out output from different processes,
10124         e.g. in the activation case.
10125
10126 2003-04-08  Colin Walters  <walters@gnu.org>
10127
10128         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10129         the pid file.
10130         (bus_context_new): Set it.
10131         (bus_context_unref): Use it to delete the pid file.
10132
10133 2003-04-08  Havoc Pennington  <hp@redhat.com>
10134
10135         * test/data/invalid-messages/array-with-mixed-types.message:
10136         regression test that fails for the moment
10137
10138         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10139         tests for convenience
10140
10141         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10142         array of nil, it broke things.
10143
10144         * test/data/invalid-messages/array-of-nil.message: regression test
10145
10146         * test/data/valid-messages/array-of-array-of-uint32.message:
10147         happened to write this so added it to suite
10148
10149 2003-04-08  Havoc Pennington  <hp@redhat.com>
10150
10151         * bus/driver.c (bus_driver_handle_acquire_service): init
10152         retval/reply before checking name
10153
10154         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10155         recursion depth argument
10156
10157         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10158         in the public struct for future extension
10159
10160         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10161         typo
10162
10163         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10164         message
10165
10166         * doc/dbus-specification.sgml: fix typo
10167
10168 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10169
10170         Implemented recursive types, named types and new-style iters
10171
10172         * bus/driver.c:
10173         * glib/test-thread-client.c: (thread_func):
10174         * glib/test-thread-server.c: (handle_test_message):
10175         * test/test-service.c: (handle_echo):
10176         Update to new api
10177
10178         * dbus/Makefile.am:
10179         * dbus/dbus-dict.c:
10180         * dbus/dbus-dict.h:
10181         * dbus/dbus.h
10182         Remove DBusDict
10183
10184         * dbus/dbus-internals.c: (_dbus_type_to_string):
10185         Update for new types.
10186
10187         * dbus/dbus-marshal.[ch]:
10188         Implement recursive types and the new marshalling format.
10189         Remove hardcoded dict marshalling.
10190         Marshal named types.
10191
10192         * dbus/dbus-message-builder.c:
10193         Add BYTE_ARRAY.
10194         Remove references to old types
10195
10196         * dbus/dbus-message.[ch]:
10197         New non-refcounted iter API that supports recursive iters.
10198         Use iters for appending, including support for recursive
10199         iters.
10200         Add byte and named type support.
10201         Update everything to new marshalling formats.
10202         Add tests for new API.
10203
10204         * dbus/dbus-protocol.h:
10205         Remove old array types.
10206         Add types: BYTE, ARRAY, DICT, NAMED
10207
10208         * dbus/dbus-string.c:
10209         * dbus/dbus-sysdeps.c:
10210         Make parse_double locale safe.
10211
10212         * dbus/dbus-test-main.c:
10213         Call setlocale.
10214
10215         * dbus/dbus-test.c:
10216         Kill dict test
10217
10218         * doc/dbus-specification.sgml:
10219         Update spec
10220
10221         * test/data/incomplete-messages/missing-body.message:
10222         * test/data/invalid-messages/bad-boolean.message:
10223         * test/data/invalid-messages/bad-boolean-array.message:
10224         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10225         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10226         * test/data/invalid-messages/too-short-dict.message:
10227         * test/data/valid-messages/dict-simple.message:
10228         * test/data/valid-messages/dict.message:
10229         * test/data/valid-messages/emptiness.message:
10230         * test/data/valid-messages/lots-of-arguments.message:
10231         * test/data/valid-messages/no-padding.message:
10232         * test/data/valid-messages/recursive-types.message:
10233         Add missing NAME fields
10234         Fix up dicts & arrays
10235
10236         * test/data/invalid-messages/dict-with-nil-value.message:
10237         Removed, this is not invalid anymore.
10238
10239         * test/data/valid-messages/recursive-types.message:
10240         Add new test for deeply recursive types.
10241
10242 2003-04-07  Havoc Pennington  <hp@pobox.com>
10243
10244         * bus/driver.c (bus_driver_handle_acquire_service): return an
10245         error if you try to acquire a service that starts with ':'
10246
10247 2003-04-07  Havoc Pennington  <hp@redhat.com>
10248
10249         * doc/dbus-specification.sgml: require that base service names
10250         start with ':' and that the base service is created/deleted
10251         as first and last things a connection does on the bus
10252
10253         * bus/dispatch.c (check_existent_service_activation): lots more
10254         work on the activation test; it doesn't fully pass yet...
10255
10256         * test/test-service.c (main): fix so we don't memleak the
10257         connection to the message bus
10258         (filter_func): accept a message asking us to exit
10259
10260 2003-04-06  Havoc Pennington  <hp@pobox.com>
10261
10262         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10263         from Colin Walters
10264
10265         * configure.in: fixes to Qt detection from Colin Walters
10266
10267         * doc/Makefile.am: Only remove generated docbook dirs if they
10268         exist, from Colin Walters
10269
10270         * dbus/dbus-bus.c: change how we set well-known connections to
10271         NULL, so that it works if a single connection is stored in
10272         two well-known array slots.
10273
10274         * test/Makefile.am: remove a lot of stuff that isn't immediately
10275         useful, it's in CVS history if we want it.
10276
10277         * test/test-service.c: use dbus-mainloop instead of that
10278         watch.[hc] crack
10279
10280 2003-04-06  Havoc Pennington  <hp@pobox.com>
10281
10282         * dbus/Makefile.am: split lists of sources into stuff that goes in
10283         the library, util functions that go in the lib and are also used
10284         elsewhere, and util functions that are used in tests/daemon but
10285         don't go in the lib.
10286
10287         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10288         here so it can be used in test binaries also
10289
10290 2003-04-06  Havoc Pennington  <hp@pobox.com>
10291
10292         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10293         here in the parent process, so we can return an error if it
10294         fails. Also, move some of the code into the child so the parent
10295         is less hosed if we fail midway through.
10296
10297         * bus/bus.c (bus_context_new): move pidfile detection further up
10298         in the function, before we start overwriting sockets and such.
10299
10300         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10301
10302         * configure.in: add --with-system-pid-file and --with-system-socket
10303
10304 2003-04-06  Colin Walters  <walters@verbum.org>
10305
10306         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10307
10308         * bus/system.conf.in: Declare a pidfile.
10309
10310         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10311         create one (if appropriate).
10312
10313         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10314         (struct BusConfigParser) [pidfile]: New.
10315         (element_type_to_name, merge_included, start_busconfig_child)
10316         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10317         (bus_config_parser_unref): Free it.
10318         (bus_config_parser_get_pidfile): New function.
10319
10320         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10321
10322         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10323
10324         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10325
10326         * dbus/dbus-sysdeps.h: Prototype it.
10327
10328 2003-04-06  Havoc Pennington  <hp@pobox.com>
10329
10330         * bus/bus.c (bus_context_new): print the address in here, rather
10331         than in main(), because we need to do it before forking the daemon
10332
10333         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10334         on the service nonexistent error
10335
10336         * bus/driver.c (bus_driver_handle_acquire_service): set the
10337         sender on the AcquireService reply
10338
10339         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10340         server also listen on a UNIX socket so services can connect to it.
10341
10342 2003-04-06  Havoc Pennington  <hp@pobox.com>
10343
10344         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10345         so it detects deadlocks and also we actually init threads when
10346         debugging.
10347
10348 2003-04-06  Havoc Pennington  <hp@pobox.com>
10349
10350         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10351         save the domain socket name, and unlink it when we disconnect the
10352         server. Means that at least when we exit normally, we won't leave
10353         a bunch of junk in /tmp
10354
10355         * dbus/dbus-transport-unix.c
10356         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10357         memory management). (I was making a real change here but then
10358         didn't)
10359
10360 2003-04-06  Havoc Pennington  <hp@pobox.com>
10361
10362         * bus/bus.c (bus_context_new): fix wrong handling of
10363         server_data_slot_unref() in the error case.
10364
10365         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10366         "(condition) != 0" to _dbus_real_assert so that
10367         "_dbus_assert (pointer)" doesn't cause a warning
10368
10369         * bus/main.c (main): accept --print-address option to print out
10370         the message bus address
10371
10372         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10373
10374         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10375         "tmpdir" option to unix: address on client side
10376
10377         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10378         to unix: address
10379
10380         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10381         we can use to create sockets in the test suite.
10382
10383         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10384         cleanly. To be used for testing.
10385
10386         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10387
10388         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10389
10390         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10391         handle trying to call this when there's no servers active
10392
10393 2003-04-05  Havoc Pennington  <hp@pobox.com>
10394
10395         * NEWS: update
10396
10397         * configure.in: 0.8
10398
10399 2003-04-05  Havoc Pennington  <hp@pobox.com>
10400
10401         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10402         crash on startup. Need to get "try starting the daemon"
10403         in the test suite I guess. ;-)
10404
10405         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10406         tracked the number of open connections; it's better done in
10407         application-specific code as you want it to span all servers etc.
10408
10409 2003-04-05  Havoc Pennington  <hp@pobox.com>
10410
10411         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10412         patch from Colin Walters
10413
10414 2003-04-05  Havoc Pennington  <hp@pobox.com>
10415
10416         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10417         reality; in fact multiple mechanisms are allowed.
10418
10419         * dbus/dbus-internals.c (_dbus_real_assert)
10420         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10421         _dbus_assert_not_reached() into functions, so that they don't show
10422         up in basic block counts for test coverage, and don't use up as
10423         much disk space. Does mean slower execution speed though, so
10424         assumes --disable-asserts is the normal production case.
10425
10426 2003-04-05  Havoc Pennington  <hp@pobox.com>
10427
10428         * test/Makefile.am (dist-hook): also dist *.in files
10429
10430         * NEWS: update
10431
10432         * configure.in: 0.7
10433
10434 2003-04-05  Havoc Pennington  <hp@pobox.com>
10435
10436         * dbus/dbus-string.c: docs warning
10437
10438         * dbus/dbus-spawn.c: missing docs
10439
10440         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10441
10442 2003-04-05  Havoc Pennington  <hp@pobox.com>
10443
10444         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10445         magic from GLib
10446
10447         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10448         to -1 once we've reaped the babysitter
10449         (_dbus_babysitter_handle_watch): do as much work as we can, not
10450         just one go of it
10451
10452         * bus/activation.c: add code using DBusBabysitter so that we
10453         handle it when a service fails to start up properly.
10454         (bus_activation_service_created): don't remove the activation
10455         entries as we go, just let them get removed when we free the pending
10456         activation. Unref reply messages after sending them.
10457
10458 2003-04-05  Havoc Pennington  <hp@pobox.com>
10459
10460         * test/decode-gcov.c (main): print per-directory stats in the report
10461
10462         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10463
10464 2003-04-05  Havoc Pennington  <hp@pobox.com>
10465
10466         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10467
10468         * test/decode-gcov.c: hack up a little program to suck data
10469         out of gcov files. Yes this is sort of silly.
10470
10471         * configure.in: define something in config.h and do an
10472         AM_CONDITIONAL when gcov is enabled
10473
10474 2003-04-04  Havoc Pennington  <hp@redhat.com>
10475
10476         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10477         return a "babysitter" object that is used to monitor the status of
10478         the spawned process and reap it when required.
10479
10480         * test/test-segfault.c, test/test-exit.c,
10481         test/test-sleep-forever.c: binaries that do various lame things,
10482         used in the test suite.
10483
10484         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10485
10486 2003-04-03  Havoc Pennington  <hp@pobox.com>
10487
10488         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10489         in preparation for modifying it, dbus-sysdeps is getting
10490         a bit unmanageable.
10491
10492 2003-04-03  Havoc Pennington  <hp@redhat.com>
10493
10494         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10495         have multiple ones
10496
10497         * bus/*.[hc]: adapt to mainloop change
10498
10499 2003-04-03  Havoc Pennington  <hp@redhat.com>
10500
10501         * bus/activation.c (load_directory): fix up memleaks
10502         (bus_activation_entry_free): free the entry
10503
10504         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10505         we get one from the message bus; fix memleaks.
10506
10507         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10508
10509 2003-04-03  Havoc Pennington  <hp@pobox.com>
10510
10511         * bus/config-parser.c (bus_config_parser_unref): free
10512         list of mechanisms, bug discovered by test suite enhancements
10513         (putting system.conf and session.conf into suite)
10514
10515         * test/Makefile.am, test/test-service.c: add placeholder for a
10516         test service that we'll activate as part of test suite. Doesn't
10517         do anything yet.
10518
10519         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10520         setting NULL value, and use system malloc not dbus_malloc()
10521         when we have unavoidable memleakage.
10522
10523         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10524         didn't work, and support DBUS_BUS_ACTIVATION.
10525
10526         * bus/activation.c (child_setup): pass our well-known bus type to
10527         the child
10528
10529         * bus/config-parser.c: support <type> to specify well-known type
10530
10531         * doc/dbus-specification.sgml: document the env variables to
10532         locate well-known buses and find service activator
10533
10534 2003-04-02  Havoc Pennington  <hp@redhat.com>
10535
10536         * test/Makefile.am (all-local): add a rule to copy tests to
10537         builddir, so we can have generated tests. Use this to remove the
10538         silly hack for testing system.conf and session.conf. Will use this
10539         shortly to generate .service files pointing to test binaries.
10540
10541 2003-04-02  Havoc Pennington  <hp@redhat.com>
10542
10543         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10544         current alloc and needed new length, not max of the doubled
10545         allocation and needed new length. Also, when building tests,
10546         don't do the double-allocation stuff, just realloc every time.
10547
10548 2003-04-02  Havoc Pennington  <hp@redhat.com>
10549
10550         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10551         in error messages
10552         (_dbus_string_get_dirname): new
10553         (_dbus_sysdeps_test): new
10554         (_dbus_directory_open): include dirnames in error messages
10555
10556         * bus/config-parser.c: interpret <include> and <includedir> and
10557         <servicedir> relative to config file location if the given
10558         filename is not absolute.
10559
10560         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10561
10562 2003-04-02  Havoc Pennington  <hp@redhat.com>
10563
10564         * bus/connection.c (bus_transaction_send_error_reply): set sender
10565         service for the error, and unref the reply on success
10566
10567         * bus/activation.c: convert to use BusTransaction so OOM can be
10568         handled correctly
10569         (bus_activation_service_created): set sender of the message
10570
10571 2003-04-01  Havoc Pennington  <hp@redhat.com>
10572
10573         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10574         <includedir> (at least mostly)
10575
10576         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10577         first, then the user ID
10578
10579 2003-04-01  Havoc Pennington  <hp@pobox.com>
10580
10581         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10582         function
10583
10584         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10585
10586         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10587
10588         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10589         socket 0777, and unlink any existing socket.
10590
10591         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10592         the configuration file so specifies; set up auth mechanism
10593         restrictions
10594
10595         * bus/config-parser.c (bus_config_parser_content): add support
10596         for <fork> option and fill in code for <auth>
10597
10598         * bus/system.conf.in: add <fork/> to default configuration,
10599         and limit auth mechanisms to EXTERNAL
10600
10601         * doc/config-file.txt (Elements): add <fork>
10602
10603         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10604         (_dbus_change_identity): new function
10605
10606 2003-03-31  Havoc Pennington  <hp@redhat.com>
10607
10608         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10609         (_dbus_listen_unix_socket): fix off-by-one error in null
10610         termination spotted by Nalin
10611
10612 2003-03-31  Havoc Pennington  <hp@redhat.com>
10613
10614         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10615         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10616         having a real home directory available.
10617
10618 2003-03-31  Havoc Pennington  <hp@redhat.com>
10619
10620         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10621
10622         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10623
10624         * configure.in: add support for specifying a style of init script
10625         to install
10626
10627 2003-03-31  Havoc Pennington  <hp@redhat.com>
10628
10629         Fix some annoying DBusString API and fix all affected code.
10630
10631         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10632         max_length argument
10633         (_dbus_string_get_data): change to return string instead of using
10634         an out param
10635         (_dbus_string_get_const_data): ditto
10636         (_dbus_string_get_data_len): ditto
10637         (_dbus_string_get_const_data_len): ditto
10638
10639 2003-03-31  Havoc Pennington  <hp@redhat.com>
10640
10641         * bus/main.c (main): fix up the command line arguments to be nicer
10642
10643 2003-03-31  Havoc Pennington  <hp@redhat.com>
10644
10645         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10646         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10647         final location that lands in the config file
10648
10649         * bus/config-loader-expat.c (bus_config_load): fix type of
10650         XML_Parser variable
10651
10652         * doc/TODO: remove TODO item for dbus_bus_get()
10653
10654         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10655
10656 2003-03-31  Havoc Pennington  <hp@pobox.com>
10657
10658         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10659         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10660         argument since they are always client side
10661
10662         * dbus/dbus-server.c (dbus_server_get_address): new function
10663
10664         * bus/main.c (main): take the configuration file as an argument.
10665
10666         * test/data/valid-config-files/debug-allow-all.conf: new file to
10667         use with dispatch.c tests for example
10668
10669         * bus/test-main.c (main): require test data dir
10670
10671         * bus/bus.c (bus_context_new): change this to take a
10672         configuration file name as argument
10673
10674         * doc/config-file.txt (Elements): add <servicedir>
10675
10676         * bus/system.conf, bus/session.conf: new files
10677
10678         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10679         well-known socket if none set
10680
10681         * configure.in: create system.conf and session.conf
10682
10683 2003-03-30  Havoc Pennington  <hp@pobox.com>
10684
10685         * bus/config-parser.c: hacking
10686
10687         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10688         to shut down, since it could cause weirdness with the DBusList
10689         lock
10690
10691         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10692         link-oriented stack routines
10693         (alloc_link): free the mempool if the first alloc from it fails
10694
10695         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10696
10697         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10698         from GLib
10699         (_dbus_string_skip_white): new
10700
10701         * doc/config-file.txt (Elements): add <includedir>
10702
10703 2003-03-28  Havoc Pennington  <hp@pobox.com>
10704
10705         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10706         (_dbus_string_copy_data): new functions
10707
10708 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10709
10710         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10711         * dbus/dbus-bus.h:
10712         Add dbus_bus_get.
10713
10714         * dbus/dbus-memory.c:
10715         Fix a doc comment.
10716
10717 2003-03-28  Havoc Pennington  <hp@pobox.com>
10718
10719         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10720         I think it may have just been superstition. Not sure.
10721
10722         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10723         failures that were not being handled.
10724
10725         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10726
10727         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10728         row that will fail on out-of-memory.
10729
10730         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10731         function for testing out-of-memory handling.
10732
10733         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10734         allocation functions, they do map exactly to the expat ones.
10735
10736 2003-03-27  Havoc Pennington  <hp@redhat.com>
10737
10738         * bus/config-loader-libxml.c (bus_config_load): add another error
10739         check
10740
10741 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10742
10743         * doc/TODO:
10744         Add note about automatic service activation.
10745
10746         * doc/dbus-specification.sgml:
10747         Rename the specification and clarify a few things.
10748
10749 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10750
10751         * Doxyfile.in:
10752         * dbus/dbus-address.c:
10753         * dbus/dbus-dict.c:
10754         * dbus/dbus-marshal.c:
10755         * dbus/dbus-server-debug-pipe.c:
10756         * dbus/dbus-transport-unix.c:
10757         Fix documentation warnings.
10758
10759 2003-03-26  Havoc Pennington  <hp@pobox.com>
10760
10761         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10762         after every test so it's quick and easy to see which leaked, and
10763         so we test multiple dbus_shutdown() calls
10764
10765         * configure.in: change configure.in XML stuff to also support
10766         expat
10767
10768         * config-loader-libxml.c: some hacking
10769
10770         * config-loader-expat.c: some hacking
10771
10772         * config-parser.c: some hacking, plus tests
10773
10774 2003-03-25  Havoc Pennington  <hp@redhat.com>
10775
10776         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10777
10778         * configure.in: add --with-xml option to specify XML library,
10779         right now only libxml is supported.
10780
10781         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10782         nonworking code between home and work, still just stubs
10783
10784 2003-03-24  Havoc Pennington  <hp@redhat.com>
10785
10786         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10787         file
10788
10789         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10790         NULL argument for "message" if the error is a well-known one,
10791         fill in a generic message in this case.
10792
10793         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10794         favor of DBusError
10795
10796         * bus/test.c (bus_test_flush_bus): add
10797
10798         * bus/policy.c (bus_policy_test): test code stub
10799
10800 2003-03-24  Havoc Pennington  <hp@pobox.com>
10801
10802         * bus/connection.c (bus_connections_setup_connection): set up
10803         the "can this user connect" function, but it always returns
10804         TRUE until we have a config file parser so we can have a config
10805         file that allows connections.
10806
10807 2003-03-23  Havoc Pennington  <hp@pobox.com>
10808
10809         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10810         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10811         the mutex, so we can check for proper memory management
10812         and OOM handling.
10813
10814         * dbus/dbus-dataslot.c: remove the mutex from
10815         DBusDataSlotAllocator and lock it manually when using it,
10816         to simplify fitting it into the global slots framework.
10817
10818         * dbus/dbus-threads.c (init_static_locks): rework how we're
10819         handling global locks so they are easily shut down.
10820
10821         * bus/policy.c (bus_policy_append_rule): fix
10822
10823         * bus/test-main.c (main): check for memleaks
10824
10825         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10826         test suite check for memleaks
10827
10828         * dbus/dbus-memory.c: add support in test mode for tracking
10829         number of outstanding blocks
10830
10831 2003-03-23  Havoc Pennington  <hp@pobox.com>
10832
10833         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10834         policies code
10835
10836         * dbus/dbus-hash.h: add ULONG hash keys
10837
10838         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10839         (_dbus_get_group_id): new function
10840
10841 2003-03-20  Havoc Pennington  <hp@redhat.com>
10842
10843         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10844         new function
10845         (dbus_connection_get_unix_user): new function
10846
10847 2003-03-20  Havoc Pennington  <hp@pobox.com>
10848
10849         * bus/connection.c (bus_connection_send_oom_error): assert that
10850         message has a sender
10851         (connection_execute_transaction): ditto
10852         (bus_connection_preallocate_oom_error): fix to set the sender, and
10853         set recipient to the destination service, not the bus driver
10854
10855         * bus/policy.c: hacking
10856
10857         * dbus/dbus-message.c (dbus_message_service_is): new function
10858         (dbus_message_sender_is): new
10859
10860 2003-03-19  Havoc Pennington  <hp@redhat.com>
10861
10862         * bus/policy.c: start sketching code for policy restrictions on
10863         what connections can do.
10864
10865 2003-03-18  Havoc Pennington  <hp@redhat.com>
10866
10867         * doc/TODO: some notes on high-level todo items. Little nitpick
10868         stuff is all in @todo, so no need to add it here.
10869
10870         * doc/config-file.txt: some notes on how config file might look
10871
10872 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10873
10874         * configure.in: 0.6
10875
10876         * NEWS: Update.
10877
10878 2003-03-17  Havoc Pennington  <hp@redhat.com>
10879
10880         * dbus/dbus-internals.h: add gcc attributes so that
10881         our printf-style functions warn on bad arguments to
10882         format
10883
10884         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10885         format bug
10886
10887         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10888         printf format bug
10889
10890 2003-03-17  Havoc Pennington  <hp@redhat.com>
10891
10892         * bus/test-main.c (main): make it print something as it runs
10893         so make check doesn't look stuck
10894
10895         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10896         from CVS, now obsolete
10897
10898 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10899
10900         * bus/dispatch.c: (bus_dispatch):
10901         Refetch the service name since it may have been reallocated
10902         when dbus_message_set_sender was called.
10903
10904         * dbus/dbus-sysdeps.c: (_dbus_accept):
10905         Add address and address length variables and use them to stop
10906         valgrind from complaining.
10907
10908 2003-03-17  Havoc Pennington  <hp@pobox.com>
10909
10910         All tests pass, no memleaks, no valgrind complaints.
10911
10912         * bus/test.c: refcount handler_slot
10913
10914         * bus/connection.c (bus_connections_new): refcount
10915         connection_data_slot
10916
10917         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10918         bytes so that auth scripts pass.
10919
10920         * bus/dispatch.c: init message_handler_slot so it gets allocated
10921         properly
10922
10923         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10924
10925         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10926         dealloc server_pipe_hash when no longer used for benefit of
10927         leak checking
10928
10929         * dbus/dbus-auth.c (process_command): memleak fix
10930
10931         * bus/dispatch.c (check_hello_message): memleak fix
10932
10933 2003-03-16  Havoc Pennington  <hp@pobox.com>
10934
10935         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10936
10937 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10938
10939         * bus/activation.c (bus_activation_activate_service): Append
10940         the pending activation entry to the list of pending activations.
10941
10942 2003-03-16  Havoc Pennington  <hp@pobox.com>
10943
10944         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10945         connections
10946
10947         * dbus/dbus-address.c (create_entry): fix OOM handling when
10948         failing to alloc entry->method
10949
10950 2003-03-16  Havoc Pennington  <hp@pobox.com>
10951
10952         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10953         the watch
10954
10955         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10956         add some missing dbus_set_result
10957
10958         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10959         alloc the DBusMessageHandler
10960
10961         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10962         the transport here, since we call this from the finalizer; it
10963         resulted in a double-finalize.
10964
10965         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10966         where we tried to use transport->connection that was NULL,
10967         happened when transport was disconnected early on due to OOM
10968
10969         * bus/*.c: adapt to handle OOM for watches/timeouts
10970
10971         * dbus/dbus-transport-unix.c: port to handle OOM during
10972         watch handling
10973
10974         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10975         reference to unused bytes instead of a copy
10976
10977         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10978         out of memory
10979
10980         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10981         FALSE on OOM
10982
10983         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10984         of memory
10985
10986 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10987
10988         * doc/dbus-specification.sgml:
10989         Document reply message for ActivateService.
10990
10991 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10992
10993         * bus/activation.c: (bus_pending_activation_entry_free),
10994         (bus_pending_activation_free), (bus_activation_new),
10995         (bus_activation_unref), (bus_activation_service_created),
10996         (bus_activation_activate_service):
10997         * bus/activation.h:
10998         * bus/bus.c: (bus_context_new):
10999         * bus/desktop-file.c: (new_section):
11000         * bus/driver.c: (bus_driver_send_service_deleted),
11001         (bus_driver_handle_activate_service):
11002         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11003         * bus/services.h:
11004         * dbus/dbus-connection.c:
11005         (dbus_connection_send_with_reply_and_block):
11006         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11007         * dbus/dbus-protocol.h:
11008         Make activation work better. Now pending activations will be queued
11009         and the daemon won't try to activate services that are already registered.
11010
11011 2003-03-16  Havoc Pennington  <hp@pobox.com>
11012
11013         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11014         connection data
11015
11016         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11017         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11018
11019 2003-03-16  Havoc Pennington  <hp@pobox.com>
11020
11021         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11022         this. always run the test suite before commit...
11023
11024         * bus/*: adapt to DBusConnection API changes
11025
11026         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11027         requires renaming stuff to avoid dbus_connection_dispatch name
11028         conflict.
11029
11030         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11031         function
11032
11033         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11034         separate from _dbus_message_loader_return_buffer()
11035
11036         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11037         this, because it's now always broken to use; the number of
11038         messages in queue vs. the number still buffered by the message
11039         loader is undefined/meaningless. Should use
11040         dbus_connection_get_dispatch_state().
11041         (dbus_connection_dispatch): rename from
11042         dbus_connection_dispatch_message
11043
11044 2003-03-16  Havoc Pennington  <hp@pobox.com>
11045
11046         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11047         implementation
11048
11049 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11050
11051         * dbus/dbus-connection.c:
11052         (dbus_connection_send_with_reply_and_block):
11053         Decrease connection->n_incoming when removing an entry
11054         from the list.
11055         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11056         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11057         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11058         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11059         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11060         (dbus_dict_get_byte_array):
11061         Handle NULL arrays and strings. Also add support for byte arrays.
11062
11063         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11064         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11065         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11066         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11067         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11068         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11069         * dbus/dbus-marshal.h:
11070         Add support for marshalling and demarshalling empty arrays and strings.
11071
11072         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11073         (dbus_message_append_string_array),
11074         (dbus_message_iter_get_boolean),
11075         (dbus_message_iter_get_boolean_array),
11076         (dbus_message_iter_get_int32_array),
11077         (dbus_message_iter_get_uint32_array),
11078         (dbus_message_iter_get_double_array),
11079         (dbus_message_iter_get_byte_array),
11080         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11081         (check_message_handling):
11082         Add support for getting empty arrays and dicts.
11083
11084         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11085         Don't do any validation at all for now, that's better than just checking
11086         for ASCII.
11087
11088         * test/data/valid-messages/emptiness.message:
11089         New test message with lots of empty arrays.
11090
11091 2003-03-16  Havoc Pennington  <hp@pobox.com>
11092
11093         * dbus/dbus-connection.c
11094         (_dbus_connection_queue_received_message_link): new function that
11095         can't fail due to OOM
11096
11097         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11098         new function pops a message together with a list link
11099         containing it.
11100
11101         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11102         message queuing functions to avoid needing to alloc memory
11103
11104 2003-03-16  Havoc Pennington  <hp@pobox.com>
11105
11106         Oops - test code was only testing failure of around 30 of the
11107         mallocs in the test path, but it turns out there are 500+
11108         mallocs. I believe this was due to misguided linking setup such
11109         that there was one copy of dbus_malloc etc. in the daemon and one
11110         in the shared lib, and only daemon mallocs were tested. In any
11111         case, the test case now tests all 500+ mallocs, and doesn't pass
11112         yet, though there are lots of fixes in this patch.
11113
11114         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11115         this so that it doesn't need to allocate memory, since it
11116         has no way of indicating failure due to OOM (and would be
11117         annoying if it did).
11118
11119         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11120
11121         * bus/Makefile.am: rearrange to create two self-contained
11122         libraries, to avoid having libraries with overlapping symbols.
11123         that was resulting in weirdness, e.g. I'm pretty sure there
11124         were two copies of global static variables.
11125
11126         * dbus/dbus-internals.c: move the malloc debug stuff to
11127         dbus-memory.c
11128
11129         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11130         empty.
11131
11132         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11133
11134         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11135         on failure.
11136
11137         * bus/dispatch.c (bus_dispatch_add_connection): free
11138         message_handler_slot when no longer using it, so
11139         memory leak checkers are happy for the test suite.
11140
11141         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11142
11143         * bus/bus.c (new_connection_callback): disconnect in here if
11144         bus_connections_setup_connection fails.
11145
11146         * bus/connection.c (bus_connections_unref): fix to free the
11147         connections
11148         (bus_connections_setup_connection): if this fails, don't
11149         disconnect the connection, just be sure there are no side
11150         effects.
11151
11152         * dbus/dbus-string.c (undo_alignment): unbreak this
11153
11154         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11155         leaking
11156         (_dbus_auth_new): fix the order in which we free strings
11157         on OOM failure
11158
11159         * bus/connection.c (bus_connection_disconnected): fix to
11160         not send ServiceDeleted multiple times in case of memory
11161         allocation failure
11162
11163         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11164         get the base service name
11165         (dbus_bus_register_client): don't return base service name,
11166         instead store it on the DBusConnection and have an accessor
11167         function for it.
11168         (dbus_bus_register_client): rename dbus_bus_register()
11169
11170         * bus/dispatch.c (check_hello_message): verify that other
11171         connections on the bus also got the correct results, not
11172         just the one sending hello
11173
11174 2003-03-15  Havoc Pennington  <hp@pobox.com>
11175
11176         Make it pass the Hello handling test including all OOM codepaths.
11177         Now to do other messages...
11178
11179         * bus/services.c (bus_service_remove_owner): fix crash when
11180         removing owner from an empty list of owners
11181         (bus_registry_ensure): don't leave service in the list of
11182         a connection's owned services if we fail to put the service
11183         in the hash table.
11184
11185         * bus/connection.c (bus_connection_preallocate_oom_error): set
11186         error flag on the OOM error.
11187
11188         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11189         handle _dbus_transport_set_connection failure
11190
11191         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11192         to create watches up front and simply enable/disable them as
11193         needed.
11194         (unix_connection_set): this can now fail on OOM
11195
11196         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11197         of enabling/disabling a watch or timeout.
11198
11199         * bus/loop.c (bus_loop_iterate): don't touch disabled
11200         watches/timeouts
11201
11202         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11203
11204 2003-03-15  Havoc Pennington  <hp@pobox.com>
11205
11206         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11207         write useful test code, after all that futzing around ;-)
11208
11209         Test does not yet pass because we can't handle OOM in
11210         _dbus_transport_messages_pending (basically,
11211         dbus_connection_preallocate_send() does not prealloc the write
11212         watch). To fix this, I think we need to add new stuff to
11213         set_watch_functions, namely a SetEnabled function so we can alloc
11214         the watch earlier, then enable it later.
11215
11216         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11217         dbus-memory.c to the convenience lib
11218
11219         * bus/test.c: rename some static functions to keep them clearly
11220         distinct from stuff in connection.c. Handle client disconnection.
11221
11222 2003-03-14  Havoc Pennington  <hp@pobox.com>
11223
11224         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11225         transport, tests more of the real codepath. Set up clients
11226         with bus_setup_debug_client.
11227
11228         * bus/test.c (bus_setup_debug_client): function to set up debug
11229         "clients" on the main loop
11230
11231         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11232         support
11233
11234         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11235         server type
11236
11237         * dbus/dbus-server-debug.c: support a debug server based on pipes
11238
11239         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11240         (_dbus_close): new function
11241
11242         * configure.in: check for socketpair
11243
11244 2003-03-14  Havoc Pennington  <hp@redhat.com>
11245
11246         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11247         cheesy hack
11248
11249         * dbus/dbus-transport-debug.c: rework this a good bit to be
11250         less complicated. hopefully still works.
11251
11252         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11253         manually
11254
11255         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11256         after running it
11257
11258         * dbus/dbus-message.c (dbus_message_copy): rename from
11259         dbus_message_new_from_message, fix it up to copy
11260         all the message fields, add test case
11261
11262         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11263         not quite passing yet
11264
11265 2003-03-14  Havoc Pennington  <hp@pobox.com>
11266
11267         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11268         until no work remains" in test code. (the large diff here
11269         is just code movement, no actual changes)
11270
11271         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11272         1, no point waiting around for test code.
11273         (_dbus_server_debug_accept_transport): unref the timeout
11274         after adding it (right?)
11275
11276         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11277
11278 2003-03-13  Havoc Pennington  <hp@redhat.com>
11279
11280         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11281         out of memory
11282
11283         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11284         of memory
11285
11286         * dbus/dbus-connection.h: Make AddWatchFunction and
11287         AddTimeoutFunction return a bool so they can fail on out-of-memory
11288
11289         * bus/bus.c (bus_context_new): set up timeout handlers
11290
11291         * bus/connection.c (bus_connections_setup_connection): set up
11292         timeout handlers
11293
11294         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11295         can fail
11296
11297         * bus/bus.c (bus_context_new): adapt to changes
11298
11299         * bus/connection.c: adapt to changes
11300
11301         * test/watch.c: adapt to DBusWatch changes
11302
11303         * bus/dispatch.c (bus_dispatch_test): started adding this but
11304         didn't finish
11305
11306 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11307
11308         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11309
11310 2003-03-13  Havoc Pennington  <hp@pobox.com>
11311
11312         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11313         set up a test framework as for the library
11314
11315 2003-03-12  Havoc Pennington  <hp@pobox.com>
11316
11317         Throughout: purge global variables, introduce BusActivation,
11318         BusConnections, BusRegistry, etc. objects instead.
11319
11320         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11321         message bus object
11322
11323         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11324         going to redo this a bit differently I think
11325
11326 2003-03-12  Havoc Pennington  <hp@redhat.com>
11327
11328         Mega-patch that gets the message bus daemon initially handling
11329         out-of-memory. Work still needed. Also lots of random
11330         moving stuff to DBusError instead of ResultCode.
11331
11332         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11333
11334         * dbus/dbus-connection.c
11335         (dbus_connection_send_with_reply_and_block): use DBusError
11336
11337         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11338         DBusResultCode
11339
11340         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11341         code here, as the only failure possible is OOM.
11342
11343         * bus/connection.c (bus_connection_disconnect):
11344         rename bus_connection_disconnected as it's a notification only
11345
11346         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11347         "name" on get_args failure, should be done by get_args;
11348         don't disconnect client for bad args, just return an error.
11349         (bus_driver_handle_service_exists): ditto
11350
11351         * bus/services.c (bus_services_list): NULL-terminate returned array
11352
11353         * bus/driver.c (bus_driver_send_service_lost)
11354         (bus_driver_send_service_acquired): send messages from driver to a
11355         specific client to the client's unique name, not to the broadcast
11356         service.
11357
11358         * dbus/dbus-message.c (decode_header_data): reject messages that
11359         contain no name field
11360         (_dbus_message_get_client_serial): rename to
11361         dbus_message_get_serial and make public
11362         (_dbus_message_set_serial): rename from set_client_serial
11363         (_dbus_message_set_reply_serial): make public
11364         (_dbus_message_get_reply_serial): make public
11365
11366         * bus/connection.c (bus_connection_foreach): allow stopping
11367         iteration by returning FALSE from foreach function.
11368
11369         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11370         (dbus_connection_free_preallocated_send)
11371         (dbus_connection_preallocate_send): new API for sending a message
11372         without possibility of malloc failure.
11373         (dbus_connection_send_message): rename to just
11374         dbus_connection_send (and same for whole function family)
11375
11376         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11377
11378         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11379
11380         * bus/activation.c: handle/return errors
11381
11382         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11383
11384         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11385         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11386         (_dbus_result_from_errno): move to this file
11387
11388 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11389
11390         * dbus/dbus-marshal.c:
11391         (_dbus_marshal_set_string):
11392         Take a length argument so we can marshal the correct string
11393         length.
11394
11395         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11396         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11397         (_dbus_marshal_test):
11398         * dbus/dbus-marshal.h:
11399         Add support for marshalling and demarshalling dicts.
11400
11401         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11402         Add support for TYPE DICT.
11403
11404         * dbus/dbus-message.c: (set_string_field):
11405         Adjust header padding.
11406
11407         (dbus_message_append_args_valist), (dbus_message_append_dict),
11408         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11409         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11410         (check_message_handling), (check_have_valid_message):
11411         * dbus/dbus-message.h:
11412         Add functions for setting and getting dicts.
11413
11414         * dbus/dbus-protocol.h:
11415         Add DBUS_TYPE_DICT.
11416
11417         * dbus/dbus.h:
11418         Add dbus-dict.h
11419
11420         * doc/dbus-specification.sgml:
11421         Add information about how dicts are marshalled.
11422
11423         * test/data/invalid-messages/dict-with-nil-value.message:
11424         * test/data/invalid-messages/too-short-dict.message:
11425         * test/data/valid-messages/dict-simple.message:
11426         * test/data/valid-messages/dict.message:
11427         Add sample messages containing dicts.
11428
11429 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11430
11431         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11432
11433 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11434
11435         * dbus/Makefile.am:
11436         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11437         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11438         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11439         (dbus_dict_set_double), (dbus_dict_set_string),
11440         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11441         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11442         (dbus_dict_set_string_array), (_dbus_dict_test):
11443         * dbus/dbus-dict.h:
11444         Fix according to comments from Havoc.
11445
11446 2003-03-06  Michael Meeks  <michael@server.home>
11447
11448         * configure.in: if we don't have kde-config, disable have_qt.
11449
11450 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11451
11452         * dbus/Makefile.am:
11453         Add dbus-dict.[ch]
11454
11455         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11456         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11457         (dbus_dict_remove), (dbus_dict_get_value_type),
11458         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11459         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11460         (dbus_dict_put_double), (dbus_dict_put_string),
11461         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11462         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11463         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11464         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11465         (dbus_dict_get_double), (dbus_dict_get_string),
11466         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11467         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11468         (dbus_dict_get_string_array), (_dbus_dict_test):
11469         * dbus/dbus-dict.h:
11470         Add DBusDict implementation
11471
11472         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11473         * dbus/dbus-test.h:
11474         Add _dbus_dict_test
11475
11476 2003-03-04  Havoc Pennington  <hp@pobox.com>
11477
11478         * test/data/auth/*: adapt to changes
11479
11480         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11481         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11482         userid
11483
11484         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11485         more stuff from being in a context name, to make the protocol
11486         simpler to deal with
11487
11488         * dbus/dbus-errors.c (dbus_error_has_name): new function
11489         (dbus_error_is_set): new function
11490
11491         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11492         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11493
11494         * dbus/dbus-connection.c (dbus_connection_flush): also read
11495         messages during a flush operation
11496
11497         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11498
11499 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11500
11501         * configure.in: Check for gethostbyname on Solaris.
11502
11503         * dbus/dbus-transport.c: (_dbus_transport_open):
11504         Remove duplicate "tcp" entry.
11505
11506         * doc/dbus-specification.sgml:
11507         Clarify some things.
11508
11509 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11510
11511         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11512         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11513         (_dbus_keyring_test):
11514         * dbus/dbus-md5.c: (_dbus_md5_compute):
11515         * dbus/dbus-sha.c: (_dbus_sha_compute):
11516         Plug memory leaks.
11517
11518 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11519
11520         * README: Add some things.
11521
11522 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11523
11524         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11525         after case DBUS_TYPE_BOOELAN.
11526
11527 2003-03-02  Havoc Pennington  <hp@pobox.com>
11528
11529         * test/break-loader.c (randomly_set_extreme_ints): add test that
11530         sets really huge and small integers
11531
11532         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11533         that length of boolean array fits in the string, and that
11534         string has room for boolean value in single-bool case.
11535
11536         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11537         optional value to "ALIGN" command which is what to fill the
11538         alignment with.
11539
11540         * test/data/valid-messages/no-padding.message: add regression
11541         test for the message padding problem
11542
11543 2003-03-02  Havoc Pennington  <hp@pobox.com>
11544
11545         * dbus/dbus-message.c (decode_header_data): fix to always init
11546         message_padding, from Benjamin Dauvergne
11547
11548 2003-03-02  Havoc Pennington  <hp@pobox.com>
11549
11550         * configure.in: 0.5
11551
11552         * NEWS: Update.
11553
11554 2003-03-01  Joe Shaw  <joe@assbarn.com>
11555
11556         * configure.in: Check for "struct cmsgcred" and try to access its
11557         members for BSD-like unices.
11558
11559         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11560         _dbus_read_credentials_unix_socket().
11561         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11562         read() for reading the credential byte off the unix socket.  Use
11563         struct cmsgcred on systems that support it.
11564
11565 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11566
11567         * glib/Makefile.am:
11568         * configure.in:
11569         Make gthreads-2.0 dependency optional. Don't build thread test if
11570         its not found.
11571
11572 2003-02-27  Havoc Pennington  <hp@pobox.com>
11573
11574         * dbus/dbus-connection.c
11575         (dbus_connection_send_message_with_reply_and_block): fix doh!
11576         doh! doh! bug that resulted in never removing a reply from the
11577         queue, no wonder we called get_reply_serial so much ;-)
11578
11579         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11580         and client serial instead of demarshaling them every time
11581
11582 2003-02-27  Havoc Pennington  <hp@pobox.com>
11583
11584         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11585         more inlined, using dbus-string-private.h, speeds things up
11586         substantially
11587
11588         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11589         when freeing the string
11590         (_dbus_string_steal_data): fix for align offset
11591         (undo_alignment): new function
11592
11593 2003-02-26  Havoc Pennington  <hp@redhat.com>
11594
11595         All kinds of audit fixes from Owen, plus initial attempt to
11596         handle unaligned memory returned from malloc.
11597
11598         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11599         leave room for align_offset and nul byte
11600         (fixup_alignment): function to track an align_offset and
11601         ensure real->str is aligned
11602         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11603         to allow a nul byte plus align offset
11604         (_dbus_string_lock): fix overflow issue
11605         (_dbus_string_init_const_len): add assertions on sanity of len,
11606         assign allocated to be ALLOCATION_PADDING larger than len
11607         (set_length): fixup the overflow handling
11608         (_dbus_string_get_data_len): fix overflow in assertion
11609         (open_gap): detect overflow in size of gap to be opened
11610         (_dbus_string_lengthen): add overflow check
11611         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11612         (_dbus_string_append): add overflow check
11613         (_dbus_string_append_unichar): overflow
11614         (_dbus_string_delete): fix overflow in assertion
11615         (_dbus_string_copy_len): overflow in assertion
11616         (_dbus_string_replace_len): overflows in assertions
11617         (_dbus_string_find): change to implement in terms of
11618         _dbus_string_find_to
11619         (_dbus_string_find_to): assorted fixage
11620         (_dbus_string_equal_c_str): assert c_str != NULL,
11621         fix logic so the function works
11622         (_dbus_string_ends_with_c_str): fix overflow thingy
11623         (_dbus_string_base64_encode): overflow fix
11624         (_dbus_string_validate_ascii): overflow
11625         (_dbus_string_validate_nul): overflow
11626
11627 2003-02-26  Havoc Pennington  <hp@redhat.com>
11628
11629         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11630
11631 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11632
11633         * configure.in:
11634         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11635
11636         * dbus/dbus-connection.c:
11637         * dbus/dbus-connection.h:
11638         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11639         Add dbus_connection_set_wakeup_main_function and use it when queueing
11640         incoming and outgoing messages.
11641
11642
11643         * dbus/dbus-dataslot.c:
11644         Threadsafe usage of DBusDataSlotAllocator
11645
11646         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11647         dbus_new can fail.
11648
11649         * dbus/dbus-server-unix.c:
11650         Add todo comment
11651
11652         * glib/dbus-gmain.c:
11653         Implement the new wakeup functions for glib.
11654
11655         * glib/Makefile.am:
11656         * glib/test-thread-client.c:
11657         * glib/test-thread-server.c:
11658         * glib/test-thread.h:
11659         Initial cut at some thread test code. Not really done yet.
11660
11661 2003-02-26  Havoc Pennington  <hp@pobox.com>
11662
11663         * dbus/dbus-connection.c
11664         (dbus_connection_send_message_with_reply_and_block): fix crash
11665         where we ref'd the outgoing message instead of the returned reply
11666
11667         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11668         at the end of this function, so if we didn't need to read for
11669         authentication, we reinstall it for receiving messages
11670
11671         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11672         a NULL sender for peer-to-peer case
11673
11674         * dbus/dbus-transport-unix.c (check_read_watch): handle
11675         !authenticated case correctly
11676
11677         * glib/dbus-gmain.c: add support for DBusServer
11678
11679         * dbus/dbus-server.c: add data slot support
11680
11681         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11682         return values and handle errors
11683
11684         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11685         DBusConnection
11686
11687         * Doxyfile.in (INPUT): add glib subdir
11688
11689         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11690         setup_with_g_main instead of hookup_with_g_main; write docs
11691
11692 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11693
11694         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11695         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11696         * dbus/dbus-message.c: (dbus_message_append_boolean),
11697         (dbus_message_append_boolean_array),
11698         (dbus_message_get_args_valist), (_dbus_message_test):
11699         * dbus/dbus-message.h:
11700         * doc/dbus-specification.sgml:
11701         Various fixes as pointed out by Havoc.
11702
11703         * test/data/invalid-messages/bad-boolean-array.message:
11704         * test/data/invalid-messages/bad-boolean.message:
11705         Add invalid boolean value test cases.
11706
11707 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11708
11709         * dbus/dbus-internals.c: (_dbus_type_to_string):
11710         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11711         (_dbus_marshal_validate_arg):
11712         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11713         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11714         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11715         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11716         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11717         (dbus_message_iter_get_double),
11718         (dbus_message_iter_get_boolean_array), (message_iter_test):
11719         * dbus/dbus-message.h:
11720         * dbus/dbus-protocol.h:
11721         * doc/dbus-specification.sgml:
11722         * test/data/valid-messages/lots-of-arguments.message:
11723         Add support for boolean and boolean array types.
11724
11725 2003-02-23  Havoc Pennington  <hp@pobox.com>
11726
11727         * dbus/dbus-keyring.c: finish most of this implementation and
11728         simple unit test
11729
11730         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11731         these barf if the error isn't cleared to NULL
11732
11733         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11734         (_dbus_create_directory): new function
11735
11736         * dbus/dbus-errors.c (dbus_set_error): fix warning
11737
11738         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11739         (_dbus_string_hex_decode): new function
11740         (test_hex_roundtrip): test code
11741
11742         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11743
11744         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11745
11746         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11747         the save-to-temp/rename trick to atomically write the new file
11748         (_dbus_string_parse_uint): new function
11749
11750 2003-02-22  Havoc Pennington  <hp@pobox.com>
11751
11752         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11753
11754 2003-02-22  Havoc Pennington  <hp@pobox.com>
11755
11756         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11757         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11758
11759         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11760
11761         * dbus/test/data/sha-1: add US government test suite for SHA-1
11762
11763 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11764
11765         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11766         Make string arrays NULL-terminated.
11767
11768         * dbus/dbus-memory.c: (dbus_free_string_array):
11769         * dbus/dbus-memory.h:
11770         New function for freeing NULL-terminated string arrays.
11771
11772         * dbus/dbus-message-builder.c: (append_quoted_string),
11773         (_dbus_message_data_load):
11774         Add support for array types.
11775
11776         * dbus/dbus-message.c: (check_message_handling):
11777         Add more types as test cases.
11778
11779         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11780         (_dbus_string_parse_double):
11781         Add the start offset to the end offset.
11782
11783         * test/data/valid-messages/lots-of-arguments.message:
11784         New test message with lots of arguments.
11785
11786 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11787
11788         * dbus/dbus-message.c: (dbus_message_append_nil),
11789         (dbus_message_append_int32), (dbus_message_append_uint32),
11790         (dbus_message_append_double), (dbus_message_append_string),
11791         (dbus_message_append_int32_array),
11792         (dbus_message_append_uint32_array),
11793         (dbus_message_append_double_array),
11794         (dbus_message_append_byte_array),
11795         (dbus_message_append_string_array):
11796         Fix all out-of-memory handling in these functions.
11797
11798 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11799
11800         * dbus/dbus-message.c: (dbus_message_append_nil):
11801         Fix a silly.
11802
11803 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11804
11805         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11806         (dbus_message_append_nil), (dbus_message_append_int32_array),
11807         (dbus_message_append_uint32_array),
11808         (dbus_message_append_double_array),
11809         (dbus_message_append_byte_array),
11810         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11811         (dbus_message_iter_get_int32_array),
11812         (dbus_message_iter_get_uint32_array),
11813         (dbus_message_iter_get_double_array),
11814         (dbus_message_iter_get_byte_array),
11815         (dbus_message_iter_get_string_array):
11816
11817         * dbus/dbus-message.h:
11818         Add functions for appending and getting arrays.
11819
11820 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11821
11822         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11823         element size at least 8 bytes, fixes mempool tests on
11824         64-bit machines.
11825
11826 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11827
11828         * dbus/dbus-transport-unix.c (unix_do_iteration):
11829         Unlock the connection mutex during a blocking select call.
11830         Add todo about how we need a way to wake up the select.
11831
11832         * dbus/dbus-connection-internal.h:
11833         * dbus/dbus-connection.c:
11834         Add _dbus_connection_lock and _dbus_connection_unlock.
11835
11836 2003-02-19  Havoc Pennington  <hp@pobox.com>
11837
11838         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11839         Doxyfile.in, not Doxyfile
11840
11841         * dbus/dbus-keyring.c: do some hacking on this
11842
11843         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11844
11845         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11846         dbus_error_init
11847         (dbus_set_error): remove dbus_error_init, check for message ==
11848         NULL *before* we sprintf into it, and add @todo about including
11849         system headers in this file
11850
11851         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11852
11853         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11854
11855         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11856         get various bits of user information based on either username
11857         or user ID
11858         (_dbus_homedir_from_username): new function
11859
11860 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11861
11862         * configure.in:
11863         Add check for nonposix getpwnam_r
11864
11865         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11866         Align the pool element size to a sizeof (void *) boundary.
11867
11868         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11869         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11870         General Solaris fixes.
11871
11872         * test/data/valid-messages/simplest-manual.message:
11873         Explicitly state that we want little-endian packing.
11874
11875 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11876
11877         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11878
11879         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11880         Added to create a transport connecting using a tcp/ip socket.
11881
11882         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11883         to a tcp socket at given host and port.
11884         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11885         hostname and port.
11886
11887         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11888
11889         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11890         Added to create a server listening on a TCP/IP socket.
11891
11892 2003-02-19  Havoc Pennington  <hp@pobox.com>
11893
11894         Throughout: mop up all the Doxygen warnings and undocumented
11895         stuff.
11896
11897         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11898         to search any paths.
11899
11900         * dbus/dbus-threads.c: move global mutex initializers to
11901         dbus-internals.h, multiple prototypes was confusing doxygen
11902         besides being kind of ugly
11903
11904         * Doxyfile (PREDEFINED): have Doxygen define
11905         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11906         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11907         (do not abuse the feature! it's for stuff like the autogenerated
11908         macros in dbus-md5.c, not just for things you don't feel like
11909         documenting...)
11910
11911 2003-02-18  Havoc Pennington  <hp@pobox.com>
11912
11913         * dbus/dbus-string.c (_dbus_string_zero): new function
11914
11915         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11916         wrap it in some dbus-friendly API
11917
11918         * dbus/dbus-types.h: add 16-bit types
11919
11920 2003-02-18  Joe Shaw  <joe@assbarn.com>
11921
11922         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11923         credentials from our currently running process.
11924         (get_word): Fix a buglet where we were copying the entire length
11925         instead of relative to our position.
11926
11927         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11928         keys on the stack... it's 640k of data.
11929
11930         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11931         read the credentials byte off the socket, even if we don't have
11932         SO_PEERCRED.
11933         (_dbus_poll): Implement poll() using select() for systems which
11934         don't have it.
11935
11936         * glib/test-dbus-glib.c (main): Print out an error if no
11937         parameters are given.
11938
11939         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11940         can fallback to a secondary auth mechanism if the first fails.
11941
11942 2003-02-18  Havoc Pennington  <hp@pobox.com>
11943
11944         * AUTHORS: add Alex
11945
11946 2003-02-17  Havoc Pennington  <hp@pobox.com>
11947
11948         * doc/dbus-specification.sgml: lots of cosmetic
11949         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11950         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11951         s/server/bus/ (except in authentication section). Add a section
11952         "Message Bus Message Routing"
11953
11954 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11955
11956         Release 0.4
11957
11958         * NEWS: Update
11959
11960 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11961
11962         * doc/dbus-specification.sgml:
11963         Specification updates.
11964
11965 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11966
11967         * bus/activation.c: (bus_activation_init), (child_setup),
11968         (bus_activation_activate_service):
11969         * bus/activation.h:
11970         * bus/main.c: (main):
11971         Set DBUS_ADDRESS environment variable.
11972
11973         * dbus/dbus-errors.c: (dbus_set_error):
11974         Don't use va_copy since that's a C99 feature.
11975
11976         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11977         (_dbus_spawn_async):
11978         * dbus/dbus-sysdeps.h:
11979         Add child_setup_func to _dbus_spawn_async.
11980
11981         * doc/dbus-specification.sgml:
11982         Update specification.
11983
11984         * test/spawn-test.c: (setup_func), (main):
11985         Fix test.
11986
11987 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11988
11989         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11990         Added todo.
11991
11992 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11993
11994         * doc/.cvsignore:
11995         * doc/Makefile.am:
11996         * doc/dbus-test-plan.sgml:
11997         Add test plan document.
11998
11999         * test/Makefile.am:
12000         Fix distcheck.
12001
12002 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12003
12004         * dbus/dbus-message.c: (decode_header_data),
12005         (_dbus_message_loader_return_buffer):
12006         Set the header padding amount when loading a message.
12007
12008 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12009
12010         * bus/dispatch.c: (send_one_message):
12011         Only send broadcast messages to registered connections.
12012
12013         * dbus/dbus-message.c: (dbus_message_name_is):
12014         * dbus/dbus-message.h:
12015         New convenience function.
12016
12017         * dbus/dbus-transport-debug.c: (do_reading):
12018         Only dispatch one message per run.
12019
12020         * test/Makefile.am:
12021         * test/bus-test.c: (new_connection_callback), (die),
12022         (test_hello_client1_handler), (test_hello_client2_handler),
12023         (test_hello_replies), (main):
12024
12025         * test/bus-test-loop.[ch]:
12026         Add these.
12027
12028 2003-02-16  Havoc Pennington  <hp@pobox.com>
12029
12030         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12031         backward conditional
12032
12033 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12034
12035         * dbus/dbus-connection.c:
12036         Implement sent_message_with_reply. (with_reply_and block is still
12037         busted).
12038         Made dispatch_message not lose message if OOM.
12039
12040         * dbus/dbus-errors.h:
12041         Add NoReply error (for reply timeouts).
12042
12043 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12044
12045         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12046         Actually free keys and values when destroying hashtable.
12047
12048 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12049
12050         * dbus/dbus-auth.c: (client_try_next_mechanism):
12051         Plug a leak.
12052
12053         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12054         Return TRUE if there's no thread implementation around.
12055
12056         * glib/dbus-gmain.c: (free_source),
12057         (dbus_connection_hookup_with_g_main):
12058         Make sure to remove the GSource when the connection is finalized.
12059
12060 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12061
12062         * bus/dispatch.c: (bus_dispatch_message_handler):
12063         * dbus/dbus-errors.h:
12064         Return an error if someone tries to send a message to a service
12065         that doesn't exist.
12066
12067 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12068
12069         * bus/activation.c: (load_directory), (bus_activation_init),
12070         (bus_activation_activate_service):
12071         * bus/activation.h:
12072         * bus/driver.c:
12073         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12074         More work on the activation handling.
12075
12076         * dbus/dbus-errors.h:
12077         Add some error messages
12078
12079         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12080         * dbus/dbus-message.h:
12081         New function that creates an error message.
12082
12083         * dbus/dbus-protocol.h:
12084         Add ACTIVATE_SERVER message.
12085
12086         * dbus/dbus-server-unix.c: (unix_handle_watch),
12087         (_dbus_server_new_for_domain_socket):
12088         Call _dbus_fd_set_close_on_exec.
12089
12090         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12091         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12092         (_dbus_fd_set_close_on_exec):
12093         * dbus/dbus-sysdeps.h:
12094         Add _dbus_fd_set_close_on exec function. Also add function that checks
12095         that all open fds are set to close-on-exec and warns otherwise.
12096
12097         * dbus/dbus-transport-unix.c:
12098         (_dbus_transport_new_for_domain_socket):
12099         Call _dbus_fd_set_close_on_exec.
12100
12101 2003-02-16  Havoc Pennington  <hp@pobox.com>
12102
12103         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12104         allow people to avoid setting SIGPIPE to SIG_IGN
12105         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12106         we've been asked not to
12107
12108 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12109
12110         * dbus/dbus-list.c: (_dbus_list_append_link),
12111         (_dbus_list_prepend_link):
12112         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12113         (dbus_realloc):
12114         Warning fixes.
12115
12116 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12117
12118         * bus/Makefile.am:
12119         * bus/activation.c: (bus_activation_entry_free),
12120         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12121         * bus/activation.h:
12122         * bus/main.c: (main):
12123         Add simple activation support, doesn't work yet though.
12124
12125 2003-02-15   Zack Rusin  <zack@kde.org>
12126
12127         * qt/dbus-qthread.cpp:  small casting fix
12128
12129 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12130
12131         * dbus/dbus-errors.c: (dbus_set_error):
12132         * dbus/dbus-errors.h:
12133         Add a few errors and make dbus_set_error void.
12134
12135         * dbus/dbus-sysdeps.c:
12136         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12137         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12138         * dbus/dbus-sysdeps.h:
12139         Add _dbus_spawn_async.
12140
12141         * test/spawn-test.c: (main):
12142         Test for _dbus_spawn_async.
12143
12144 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * dbus/dbus-internals.h:
12147         Fix build without tests.
12148
12149         * dbus/dbus-list.c: (alloc_link):
12150         Fix a segfault when a malloc fails.
12151
12152         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12153         (dbus_malloc0), (dbus_realloc):
12154         Add support for malloc debugging.
12155
12156 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12157
12158         * dbus/dbus-threads.c:
12159         * dbus/dbus-threads.h:
12160         Add condvars. Remove static mutext from API.
12161         Implement static mutexes by initializing them from threads_init.
12162
12163         * glib/dbus-gthread.c:
12164         * qt/dbus-qthread.cpp:
12165         Update with the thread api changes.
12166
12167
12168         * dbus/dbus-list.c:
12169         * dbus/dbus-list.h:
12170         Turn StaticMutex into normal mutex + init function.
12171         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12172         _dbus_list_append_link, _dbus_list_prepend_link
12173
12174
12175         * dbus/dbus-sysdeps.c:
12176         * dbus/dbus-sysdeps.h:
12177         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12178         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12179
12180         * dbus/dbus-protocol.h:
12181         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12182
12183         * dbus/dbus-message.c:
12184         Make ref/unref atomic.
12185         Fix some docs.
12186
12187         * dbus/dbus-connection-internal.h:
12188         * dbus/dbus-connection.c:
12189         * dbus/dbus-connection.h:
12190         Make threadsafe.
12191         Change _peek to _borrow,_return & _steal_borrowed.
12192         Change disconnect callback to event.
12193         Make dbus_connection_dispatch_messages reentrant.
12194
12195         * dbus/dbus-transport.c:
12196         Don't ref the connection on calls to the transport
12197         implementation.
12198
12199         * dbus/dbus-message-handler.c:
12200         Make threadsafe.
12201
12202         * glib/dbus-gmain.c:
12203         Don't use peek_message anymore
12204
12205         * test/Makefile.am:
12206         * test/debug-thread.c:
12207         * test/debug-thread.h:
12208         Simple thread implementation that asserts() on deadlocks in
12209         single-threaded code.
12210
12211         * test/bus-test.c:
12212         (main) Call debug_threads_init.
12213
12214         * test/watch.c:
12215         Use disconnect message instead of disconnect callback.
12216
12217         * bus/connection.c:
12218         * bus/connection.h:
12219         Don't call dbus_connection_set_disconnect_function. Instead export
12220         bus_connection_disconnect.
12221
12222         * bus/dispatch.c:
12223         Call bus_connection_disconnect when we get a disconnected message.
12224
12225 2003-02-15  Havoc Pennington  <hp@pobox.com>
12226
12227         * dbus/dbus-message.c (dbus_message_new): fool around with the
12228         docs
12229
12230 2003-02-14  Havoc Pennington  <hp@pobox.com>
12231
12232         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12233
12234         * dbus/dbus-memory.c: fail if the debug functions indicate we
12235         should
12236
12237         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12238         (_dbus_decrement_fail_alloc_counter): debug functions to
12239         simulate memory allocation failures
12240
12241 2003-02-14  Havoc Pennington  <hp@pobox.com>
12242
12243         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12244         to DBusError
12245
12246 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12247
12248         * bus/driver.c: (bus_driver_handle_hello):
12249         * bus/driver.h:
12250         * bus/services.c: (bus_service_lookup):
12251         Reorder message sending so we get a more sane order.
12252
12253         * test/bus-test.c: (message_handler):
12254         Fix tyop.
12255
12256 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * bus/driver.c: (bus_driver_send_service_deleted),
12259         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12260         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12261         (bus_driver_send_welcome_message),
12262         (bus_driver_handle_list_services),
12263         (bus_driver_handle_acquire_service),
12264         (bus_driver_handle_service_exists):
12265         * dbus/dbus-bus.c: (dbus_bus_register_client),
12266         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12267         * dbus/dbus-errors.c: (dbus_result_to_string):
12268         * dbus/dbus-errors.h:
12269         * dbus/dbus-message.c: (dbus_message_append_args),
12270         (dbus_message_append_args_valist), (dbus_message_get_args),
12271         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12272         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12273         (dbus_message_iter_get_byte_array),
12274         (dbus_message_iter_get_string_array), (message_iter_test),
12275         (check_message_handling), (_dbus_message_test):
12276         * dbus/dbus-message.h:
12277         * test/bus-test.c: (main):
12278         Change fields to arguments in messages, so that they won't be
12279         confused with header fields.
12280
12281         * glib/test-dbus-glib.c: (main):
12282         Remove append_fields from hello message.
12283
12284 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12285
12286         * dbus/dbus-errors.c:
12287         * dbus/dbus-message.c:
12288         * dbus/dbus-string.c:
12289         Documentation fixes.
12290
12291 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12292
12293         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12294         (remove_timeout):
12295         Implement support for timeouts in dbus-glib.
12296
12297 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12298
12299         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12300         * dbus/dbus-message.c: (process_test_subdir):
12301         * test/break-loader.c: (find_breaks_based_on):
12302         Plug some memory leaks.
12303
12304 2003-02-13  Richard Hult  <rhult@codefactory.se>
12305
12306         * bus/main.c: Fix build.
12307
12308         * dbus/dbus-errors.h:
12309         * dbus/dbus-errors.c: Fix copyright for Anders.
12310
12311 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12312
12313         * bus/Makefile.am:
12314         Add utils.[ch]
12315
12316         * bus/connection.c: (bus_connection_foreach):
12317         Fix a warning.
12318
12319         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12320         (unescape_string), (new_section), (parse_section_start),
12321         (parse_key_value), (report_error), (bus_desktop_file_load),
12322         (bus_desktop_file_get_string):
12323         * bus/desktop-file.h:
12324         Use DBusError for error reporting.
12325
12326         * bus/dispatch.c: (send_one_message),
12327         (bus_dispatch_message_handler):
12328         * bus/driver.c: (bus_driver_send_service_deleted),
12329         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12330         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12331         (bus_driver_send_welcome_message),
12332         (bus_driver_handle_list_services),
12333         (bus_driver_handle_acquire_service),
12334         (bus_driver_handle_service_exists):
12335         * bus/loop.c: (bus_loop_run):
12336         * bus/main.c:
12337         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12338
12339         * bus/utils.c: (bus_wait_for_memory):
12340         * bus/utils.h:
12341         New files with general utility functions.
12342
12343         * dbus/dbus-internals.h:
12344         Remove _DBUS_HANDLE_OOM.
12345
12346 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12347
12348         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12349         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12350         * dbus/dbus-errors.h:
12351         Add DBusError structure.
12352
12353 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12354
12355         * test/data/valid-messages/standard-acquire-service.message:
12356         * test/data/valid-messages/standard-hello.message:
12357         * test/data/valid-messages/standard-list-services.message:
12358         * test/data/valid-messages/standard-service-exists.message:
12359         Add some standard messages.
12360
12361 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12362
12363         * bus/driver.c: (bus_driver_send_welcome_message),
12364         (bus_driver_handle_list_services),
12365         (bus_driver_handle_acquire_service),
12366         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12367         Update for API changes in libdbus.
12368
12369         * dbus/dbus-message.c: (dbus_message_new_reply):
12370         * dbus/dbus-message.h:
12371         Remove the name argument. The spec states that replies shouldn't
12372         have a name.
12373
12374 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12375
12376         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12377         (report_error), (bus_desktop_file_load), (lookup_section),
12378         (lookup_line), (bus_desktop_file_get_raw),
12379         (bus_desktop_file_get_string):
12380         * bus/desktop-file.h:
12381         Some fixes, and new functions for getting a key value from a section.
12382
12383 2003-02-13  Havoc Pennington  <hp@pobox.com>
12384
12385         * test/data/auth/fail-after-n-attempts.auth-script: new test
12386
12387         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12388         reject the client.
12389
12390 2003-02-13  Havoc Pennington  <hp@pobox.com>
12391
12392         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12393         dbus_credentials_match were backward
12394
12395         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12396         NO_CREDENTIALS and ROOT_CREDENTIALS
12397
12398         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12399         into here. Never process more commands after we've reached an
12400         end state; store further data as unused bytes.
12401
12402         * test/data/auth/*: add more auth tests
12403
12404         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12405         command to match exact string and EXPECT_UNUSED to match unused
12406         bytes
12407
12408         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12409
12410 2003-02-12  Havoc Pennington  <hp@pobox.com>
12411
12412         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12413         \r off of popped lines
12414
12415         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12416         scripts
12417
12418         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12419         SEND, append \r\n
12420
12421 2003-02-12  Havoc Pennington  <hp@pobox.com>
12422
12423         * dbus/Makefile.am: remove break-loader from the build, since it
12424         moved.
12425
12426         * configure.in: add --enable-gcov to turn on coverage profiling
12427         flags and disable optimization
12428
12429 2003-02-10  Havoc Pennington  <hp@pobox.com>
12430
12431         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12432         initial cut at test framework for DBusAuth from laptop.
12433         Doesn't quite work yet but it compiles and I need to get
12434         it off the 266mhz laptop. ;-)
12435
12436         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12437         fix a memleak in error case
12438
12439 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12440
12441         * bus/Makefile.am:
12442         * bus/desktop-file.c:
12443         * bus/desktop-file.h:
12444         Add a desktop file parser.
12445
12446 2003-02-11  Zack Rusin  <zack@kde.org>
12447
12448         * qt/message.[h|cpp]: sample implementation
12449         of the KDE wrapper for DBusMessage
12450
12451 2003-02-09  Zack Rusin  <zack@kde.org>
12452
12453         * test/bus-test.c: make_it_compile
12454         * doc/dbus-specification.sgml: minimal semantic fix
12455
12456 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12457
12458         Release 0.3
12459
12460         * NEWS: Update
12461
12462 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12463
12464         * dbus/Makefile.am:
12465         * dbus/dbus-break-loader.c:
12466         * test/Makefile.am:
12467         * test/break-loader.c:
12468         Move dbus-break-loader to test/ and rename it to break-loader.
12469
12470 2003-02-02  Havoc Pennington  <hp@pobox.com>
12471
12472         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12473         for code to manage cookies in your home directory
12474
12475         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12476
12477         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12478         to authenticate, then disconnect the client.
12479
12480 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12481
12482         * dbus/dbus-message.c (dbus_message_append_fields):
12483         Correct docs.
12484
12485 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12486
12487         * doc/dbus-specification.sgml:
12488         Update address format section.
12489
12490 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12491
12492         * test/Makefile.am:
12493         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12494         (message_handler), (new_connection_callback), (loop_quit),
12495         (loop_run), (main):
12496         Add bus test.
12497
12498 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12499
12500         * bus/driver.c: (bus_driver_handle_service_exists):
12501         Simplify the code a bit.
12502
12503         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12504         Fix a silly.
12505
12506 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12507
12508         * bus/Makefile.am:
12509         Add libdbus-daemon.la and link to it.
12510
12511 2003-02-01  James Willcox  <jwillcox@gnome.org>
12512
12513         * bus/driver.c: (bus_driver_handle_own_service):
12514         Actually include the service reply code in the message.
12515
12516 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12517
12518         * bus/driver.c: (bus_driver_handle_service_exists):
12519         Don't unref the incoming message.
12520
12521 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12522
12523         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12524
12525 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12526
12527         * dbus/dbus-server.c: (dbus_server_listen):
12528         * dbus/dbus-transport.c: (_dbus_transport_open):
12529         ifdef out the calls to the debug transport and server.
12530
12531 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12532
12533         * dbus/dbus-watch.c (dbus_watch_get_flags):
12534         Add note in the docs that ERROR or HANGUP won't be returned
12535         and are assumed always on.
12536
12537         * glib/dbus-gmain.c (add_watch):
12538         Always add IO_ERR | IO_HUP
12539
12540         * dbus/dbus-message.h:
12541         Add semicolon after dbus_message_iter_get_string_array().
12542         Makes qt code build again
12543
12544 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12545
12546         * bus/driver.c: (create_unique_client_name),
12547         (bus_driver_handle_hello):
12548         Don't take a name, just use a numeric id to identify
12549         each client.
12550
12551         * dbus/Makefile.am:
12552         * dbus/dbus-bus.c: (dbus_bus_register_client),
12553         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12554         * dbus/dbus-bus.h:
12555         Add new convenience functions for communicating with the bus.
12556
12557         * dbus/dbus-message.h:
12558
12559         * dbus/dbus-protocol.h:
12560         Fix a typo.
12561
12562 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12563
12564         * dbus/dbus-message.c (dbus_message_append_fields):
12565         Add some more doc comments.
12566
12567 2003-02-01  Havoc Pennington  <hp@pobox.com>
12568
12569         * dbus/dbus-break-loader.c (randomly_modify_length): change
12570         a 4-byte value in the message as if it were a length
12571
12572         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12573         execute bit on saved files
12574
12575 2003-02-01  Havoc Pennington  <hp@pobox.com>
12576
12577         * dbus/dbus-break-loader.c (main): new program to find messages
12578         that break the loader.
12579
12580         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12581         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12582
12583         * dbus/dbus-string.c (_dbus_string_set_byte): new
12584
12585 2003-01-31  Havoc Pennington  <hp@pobox.com>
12586
12587         * dbus/dbus-message.c: refactor the test code to be more general,
12588         in preparation for writing a "randomly permute test cases to
12589         try to break the loader" program.
12590
12591 2003-01-31  Havoc Pennington  <hp@pobox.com>
12592
12593         * doc/dbus-specification.sgml: work on the specification
12594
12595         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12596         the protocol version of the message.
12597
12598         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12599         no longer specifies that.
12600         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12601         1/2/3/4)
12602
12603         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12604         "break" for DBUS_TYPE_NIL, remove @todo
12605
12606 2003-01-31  Havoc Pennington  <hp@pobox.com>
12607
12608         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12609         just set_is_error/get_is_error as this is a commonly-used
12610         function, and write docs.
12611
12612 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12613
12614         * dbus/dbus-address.c: (dbus_address_entry_free):
12615         Free key and value lists.
12616
12617         * dbus/dbus-internals.c: (_dbus_type_to_string):
12618         Add the types we didn't have.
12619
12620         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12621         (_dbus_marshal_validate_arg):
12622         Add NIL types.
12623
12624         * dbus/dbus-message.c: (dbus_message_set_sender):
12625         Remove todo about being able to set sender to NULL.
12626
12627         (dbus_message_set_is_error_reply),
12628         (dbus_message_get_is_error_reply):
12629         * dbus/dbus-message.h:
12630         New functions.
12631
12632         * dbus/dbus-protocol.h:
12633         Add error reply flag.
12634
12635         * test/data/valid-messages/opposite-endian.message:
12636         Add NIL type to test.
12637
12638 2003-01-31  Havoc Pennington  <hp@pobox.com>
12639
12640         * doc/dbus-specification.sgml: fully specify the header.  Add
12641         flags and major protocol version, and change header/body len to
12642         unsigned.
12643
12644         * dbus/dbus-message-builder.c (append_saved_length): append length
12645         as uint32
12646
12647         * dbus/dbus-message.c (dbus_message_create_header): change header
12648         length and body length to unsigned. Add the new fields from the
12649         spec
12650         (_dbus_message_loader_return_buffer): unsigned header/body len
12651
12652 2003-01-30  Havoc Pennington  <hp@pobox.com>
12653
12654         * dbus/dbus-auth.c: rework to use only REJECTED, no
12655         MECHANISMS
12656
12657         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12658         use REJECTED, suggested by Mark McLoughlin
12659
12660 2003-01-30  Havoc Pennington  <hp@pobox.com>
12661
12662         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12663         a better way to report errors here. e.g.  "unix address lacks
12664         path" or something. also "no such file" when the path doesn't
12665         exist, etc.
12666
12667         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12668         leaking list nodes
12669         (dbus_parse_address): add @todo about documenting address format,
12670         and allowing , and ; to be escaped
12671
12672 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12673
12674         * dbus/Makefile.am:
12675         Add dbus-address.[ch]
12676
12677         * dbus/dbus-address.c: (dbus_address_entry_free),
12678         (dbus_address_entries_free), (create_entry),
12679         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12680         (dbus_parse_address), (_dbus_address_test):
12681         * dbus/dbus-address.h:
12682         New files for dealing with address parsing.
12683
12684         * dbus/dbus-connection.c:
12685         Document timeout functions.
12686
12687         * dbus/dbus-message.c:
12688         Document dbus_message_new_from_message.
12689
12690         * dbus/dbus-server-debug.c:
12691         Document.
12692
12693         * dbus/dbus-server.c: (dbus_server_listen):
12694         Parse address and use correct server implementation.
12695
12696         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12697         * dbus/dbus-string.h:
12698         New function with test.
12699
12700         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12701         * dbus/dbus-test.h:
12702         Add address tests.
12703
12704         * dbus/dbus-transport-debug.c:
12705         Document.
12706
12707         * dbus/dbus-transport.c: (_dbus_transport_open):
12708         Parse address and use correct transport implementation.
12709
12710 2003-01-30  Havoc Pennington  <hp@pobox.com>
12711
12712         * dbus/dbus-message.c: use message->byte_order instead of
12713         DBUS_COMPILER_BYTE_ORDER throughout.
12714         (dbus_message_create_header): pad header to align the
12715         start of the body of the message to 8-byte boundary
12716
12717         * dbus/dbus-marshal.h: make all the demarshalers take const
12718         DBusString arguments.
12719
12720         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12721         validate message args here, so we don't have to do slow validation
12722         later, and so we catch bad messages as they are incoming. Also add
12723         better checks on header_len and body_len. Also fill in
12724         message->byte_order
12725
12726         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12727         implemented properly)
12728         (_dbus_string_validate_nul): new function to check all-nul
12729
12730         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12731         get_arg_end_pos and remove all validation
12732         (_dbus_marshal_validate_arg): actually do validation here.
12733
12734 2003-01-29  Havoc Pennington  <hp@pobox.com>
12735
12736         * dbus/dbus-message.c (check_message_handling): fix assertion
12737         failure on set_client_serial
12738
12739 2003-01-28  Havoc Pennington  <hp@pobox.com>
12740
12741         * dbus/dbus-server-debug.c: Add doc section comments
12742
12743         * dbus/dbus-transport-debug.c: add doc section comments
12744
12745 2003-01-28  Havoc Pennington  <hp@redhat.com>
12746
12747         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12748         the reverse order from how I had it
12749         (_dbus_string_base64_encode): reverse encoding order. I was
12750         basically byteswapping everything during encoding.
12751
12752 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12753
12754         * dbus/dbus-connection-internal.h:
12755         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12756         (_dbus_connection_remove_timeout):
12757         Add functions for adding and removing timeouts.
12758
12759         * dbus/dbus-message.c: (dbus_message_new_from_message):
12760         Add new function that takes a message and creates an exact
12761         copy of it, but with the refcount set to 1.
12762         (check_message_handling):
12763         Fix build error.
12764
12765         * dbus/dbus-server-protected.h:
12766         * dbus/dbus-server.c: (_dbus_server_init_base),
12767         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12768         (dbus_server_set_timeout_functions):
12769         (_dbus_server_remove_timeout):
12770         New functions so that a server can add and remove timeouts.
12771
12772         (dbus_server_listen):
12773         Add commented out call to dbus_server_debug_new.
12774
12775         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12776         Actually set the handler, doh.
12777
12778         * dbus/dbus-transport.c: (_dbus_transport_open):
12779         Add commented out call to dbus_transport_debug_client_new.
12780
12781         * dbus/Makefile.am:
12782         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12783
12784 2003-01-28  Havoc Pennington  <hp@pobox.com>
12785
12786         * dbus/dbus-message.c (check_message_handling): function to check
12787         on the loaded message, iterates over it etc.
12788
12789 2003-01-28  Havoc Pennington  <hp@pobox.com>
12790
12791         * test/Makefile.am (dist-hook): fix make distdir
12792
12793         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12794
12795 2003-01-27  Havoc Pennington  <hp@pobox.com>
12796
12797         * dbus/dbus-mempool.c (time_for_size): replace printf with
12798         _dbus_verbose
12799
12800         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12801         empty lines; fix the SAVE_LENGTH stuff to be
12802         START_LENGTH/END_LENGTH so it actually works; couple other
12803         bugfixes
12804
12805         * test/Makefile.am (dist-hook): add dist-hook for .message files
12806
12807         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12808         can be constant or locked.
12809         (_dbus_string_free): allow freeing a const string as
12810         documented/intended
12811
12812         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12813
12814         * dbus/dbus-test-main.c (main): take an argument which is the
12815         directory containing test data
12816
12817         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12818         argument to this and load all the messages in test/data/
12819         checking that they can be loaded or not loaded as appropriate.
12820
12821 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12822
12823         * bus/dispatch.c: (bus_dispatch_message_handler):
12824         Dispatch messages sent to services.
12825
12826         * bus/driver.c: (bus_driver_send_service_deleted),
12827         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12828         (bus_driver_send_service_acquired):
12829         Add helper functions for sending service related messages.
12830
12831         (bus_driver_send_welcome_message):
12832         Send HELLO_REPLY instead of WELCOME.
12833
12834         (bus_driver_handle_list_services):
12835         Send LIST_SERVICES_REPLY instead of SERVICES.
12836
12837         (bus_driver_handle_own_service),
12838         (bus_driver_handle_service_exists):
12839         New message handlers.
12840
12841         (bus_driver_handle_message):
12842         Invoke new message handlers.
12843
12844         (bus_driver_remove_connection):
12845         Don't remove any services here since that's done automatically
12846         by bus_service_remove_owner now.
12847
12848         * bus/driver.h:
12849         New function signatures.
12850
12851         * bus/services.c: (bus_service_add_owner):
12852         Send ServiceAcquired message if we're the only primary owner.
12853
12854         (bus_service_remove_owner):
12855         Send ServiceAcquired/ServiceLost messages.
12856
12857         (bus_service_set_prohibit_replacement),
12858         (bus_service_get_prohibit_replacement):
12859         Functions for setting prohibit replacement.
12860
12861         (bus_service_has_owner):
12862         New function that checks if a connection is in the owner queue of
12863         a certain service.
12864
12865         * bus/services.h:
12866         Add new function signatures.
12867
12868         * dbus/dbus-list.c: (_dbus_list_test):
12869         Add tests for _dbus_list_remove_last and traversing the list backwards.
12870
12871         * dbus/dbus-list.h:
12872         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12873         go any further, so return NULL then.
12874
12875         * dbus/dbus-protocol.h:
12876         Add new messages, service flags and service replies.
12877
12878 2003-01-26  Havoc Pennington  <hp@pobox.com>
12879
12880         * dbus/dbus-message-builder.c: implement, completely untested.
12881
12882         * test/data/*: add data to be used in testing.
12883         ".message" files are our simple loadable text format.
12884         ".message-raw" will be binary dumps of messages.
12885
12886         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12887
12888 2003-01-26  Havoc Pennington  <hp@pobox.com>
12889
12890         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12891
12892         * dbus/dbus-errors.c (dbus_result_to_string): add
12893         file errors
12894
12895         * dbus/dbus-message-builder.c: new file, will contain code to load
12896         up messages from files. Not implemented yet.
12897
12898 2003-01-26  Havoc Pennington  <hp@pobox.com>
12899
12900         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12901         the sender by setting to NULL
12902
12903 2003-01-26  Havoc Pennington  <hp@pobox.com>
12904
12905         The unit tests pass, but otherwise untested.  If it breaks, the
12906         tests should have been better. ;-)
12907
12908         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12909         the connection.
12910
12911         * dbus/dbus-message.c: redo everything so we maintain
12912         message->header as the only copy of the various fields.
12913         This avoids the possibility of out-of-memory in some cases,
12914         for example dbus_message_lock() can't run out of memory anymore,
12915         and avoids extra copying. Figured I may as well go ahead and do
12916         this since it was busted for dbus_message_lock to not return
12917         failure on OOM, and dbus_message_write_header was totally
12918         unchecked for OOM. Also fixed some random other bugs.
12919
12920         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12921         that strings are nul-terminated. Also, end_pos can be equal
12922         to string length just not greater than, I think.
12923         (_dbus_marshal_set_int32): new function
12924         (_dbus_marshal_set_uint32): new function
12925         (_dbus_marshal_set_string): new function
12926
12927         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12928         a warning, init timeout_list to NULL
12929         (dbus_connection_send_message): don't use uninitialized variable
12930         "serial"
12931
12932         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12933
12934 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12935
12936         * bus/driver.c: (bus_driver_handle_hello),
12937         (bus_driver_send_welcome_message):
12938         Plug leaks
12939
12940 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12941
12942         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12943         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12944         (dbus_connection_unref):
12945         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12946         * dbus/dbus-message.c: (dbus_message_unref),
12947         Plug memory leaks.
12948
12949         (dbus_message_get_fields):
12950         Remove debugging printout.
12951
12952         (_dbus_message_loader_return_buffer):
12953         Don't store the header string.
12954
12955         (_dbus_message_test):
12956         Plug leaks.
12957
12958 2003-01-26  Richard Hult  <rhult@codefactory.se>
12959
12960         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12961         the file descriptor list, since it can change under us.
12962
12963 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12964
12965         * glib/dbus-gmain.c: (dbus_connection_prepare),
12966         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12967         (remove_watch), (dbus_connection_hookup_with_g_main):
12968         Rewrite the glib handling to use its own GSource instead of a
12969         GIOChannel so we can catch messages put in the queue while waiting
12970         for a reply.
12971
12972 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12973
12974         * bus/Makefile.am:
12975         * bus/connection.c: (connection_disconnect_handler),
12976         (connection_watch_callback), (bus_connection_setup):
12977         * bus/dispatch.c: (send_one_message),
12978         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12979         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12980         * bus/dispatch.h:
12981         * bus/driver.c: (bus_driver_send_service_deleted),
12982         (bus_driver_send_service_created), (bus_driver_handle_hello),
12983         (bus_driver_send_welcome_message),
12984         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12985         (bus_driver_handle_message):
12986         * bus/driver.h:
12987         Refactor code, put the message dispatching in its own file. Use
12988         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12989         is disconnected.
12990
12991 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12992
12993         * dbus/dbus-internals.h:
12994         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12995
12996         * dbus/dbus-message.c: (dbus_message_get_sender):
12997         * dbus/dbus-message.h:
12998         Implement dbus_message_get_sender.
12999
13000         * dbus/dbus-protocol.h:
13001         Add message and service defines.
13002
13003 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13004
13005         * dbus/dbus-connection.c: (dbus_connection_send_message):
13006         * dbus/dbus-message-internal.h:
13007         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13008         (dbus_message_write_header):
13009         Remove _dbus_messag_unlock and don't set the client serial on a
13010         message if one already exists.
13011
13012 2003-01-24  Havoc Pennington  <hp@pobox.com>
13013
13014         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13015         list_pool
13016
13017         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13018         on OOM
13019
13020 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13021
13022         * dbus/dbus-list.c: (alloc_link), (free_link):
13023         Use a memory pool for the links.
13024
13025 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13026
13027         * bus/connection.c: (bus_connection_foreach):
13028         * bus/connection.h:
13029         Add new bus_connection_foreach function.
13030
13031         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13032         Add function that broadcasts a message to all clients.
13033
13034         (bus_driver_send_service_created), (bus_driver_handle_hello),
13035         (bus_driver_send_welcome_message),
13036         (bus_driver_handle_list_services), (bus_driver_message_handler):
13037         Implement functions that take care of listing services, and notifying
13038         clients when new services are created.
13039
13040         * bus/services.c: (bus_services_list):
13041         * bus/services.h:
13042         Add new function that returns an array of strings with the currently
13043         registered services.
13044
13045         * glib/dbus-glib.h:
13046         * glib/dbus-gmain.c:
13047         Update copyright year.
13048
13049 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13050
13051         * dbus/dbus-connection.c: (dbus_connection_send_message):
13052         Unlock the message in case it was sent earlier.
13053
13054         (dbus_connection_send_message_with_reply_and_block):
13055         Remove the reply message from the list.
13056
13057         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13058         Set array_len and new_pos correctly.
13059
13060         (_dbus_marshal_test):
13061         Remove debug output.
13062
13063         * dbus/dbus-message-internal.h:
13064         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13065         New function that returns the reply serial.
13066
13067         (_dbus_message_unlock):
13068         New function that unlocks a message and resets its header.
13069
13070         (dbus_message_append_string_array),
13071         (dbus_message_get_fields_valist),
13072         (dbus_message_iter_get_field_type),
13073         (dbus_message_iter_get_string_array),
13074         (dbus_message_get_fields),
13075         (dbus_message_append_fields_valist):
13076         Handle string arrays.
13077
13078         (dbus_message_set_sender):
13079         Make this function public since the bus daemon needs it.
13080
13081         (decode_header_data):
13082         Set the reply serial to -1 initially.
13083
13084         * dbus/dbus-message.h:
13085         Add dbus_message_set_sender.
13086
13087 2003-01-24  Havoc Pennington  <hp@pobox.com>
13088
13089         * doc/dbus-specification.sgml: add some stuff
13090
13091 2003-01-22  Havoc Pennington  <hp@pobox.com>
13092
13093         * doc/dbus-specification.sgml: Start to document the protocol.
13094
13095 2003-01-22  Havoc Pennington  <hp@pobox.com>
13096
13097         * dbus/dbus-connection.c
13098         (dbus_connection_send_message_with_reply_and_block): add some @todo
13099
13100         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13101
13102 2003-01-21  Havoc Pennington  <hp@pobox.com>
13103
13104         (patch untested because can't compile)
13105
13106         * bus/driver.c (create_unique_client_name): make this function
13107         never recycle client names. Also, caller should initialize
13108         the DBusString.
13109
13110         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13111
13112 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13113
13114         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13115         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13116         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13117         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13118         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13119         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13120         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13121         * dbus/dbus-marshal.h:
13122         * dbus/dbus-protocol.h:
13123         Add support for marshalling and demarshalling integer, double
13124         and string arrays.
13125
13126 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13127
13128         * bus/Makefile.am:
13129         Add driver.[ch]
13130
13131         * bus/connection.c: (connection_disconnect_handler):
13132         Remove the connection from the bus driver's list.
13133
13134         (connection_watch_callback): Dispatch messages.
13135
13136         (free_connection_data): Free connection name.
13137
13138         (bus_connection_setup): Add connection to the bus driver's list.
13139         (bus_connection_remove_owned_service):
13140         (bus_connection_set_name), (bus_connection_get_name):
13141         Add functions for setting and getting the connection's name.
13142
13143         * bus/connection.h:
13144         Add function headers.
13145
13146         * bus/driver.c: (create_unique_client_name),
13147         (bus_driver_handle_hello_message),
13148         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13149         (bus_driver_add_connection), (bus_driver_remove_connection):
13150         * bus/driver.h:
13151         * bus/main.c:
13152         * bus/services.c: (bus_service_free):
13153         * bus/services.h:
13154         New file that handles communication and registreation with the bus
13155         itself.
13156
13157 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13158
13159         * dbus/dbus-connection.c: (dbus_connection_send_message):
13160         Add a new client_serial parameter.
13161
13162         (dbus_connection_send_message_with_reply):
13163         Remove a @todo since we've implemented the blocking function.
13164
13165         (dbus_connection_send_message_with_reply_and_block):
13166         New function that sends a message and waits for a reply and
13167         then returns the reply.
13168
13169         * dbus/dbus-connection.h:
13170         Add new functions.
13171
13172         * dbus/dbus-errors.c: (dbus_result_to_string):
13173         * dbus/dbus-errors.h:
13174         Add new DBUS_RESULT.
13175
13176         * dbus/dbus-message-internal.h:
13177         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13178         (_dbus_message_set_sender), (dbus_message_write_header),
13179         (dbus_message_new_reply), (decode_header_data),
13180         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13181         * dbus/dbus-message.h:
13182         Add new functions that set the reply serial and sender.
13183         Also marshal and demarshal them correctly and add test.
13184
13185         * dbus/dbus-protocol.h:
13186         Add new DBUS_MESSAGE_TYPE_SENDER.
13187
13188         * glib/dbus-glib.h:
13189         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13190         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13191         (dbus_connection_hookup_with_g_main):
13192         * glib/test-dbus-glib.c: (main):
13193         Rewrite to use GIOChannel and remove the GSource crack.
13194
13195         * test/echo-client.c: (main):
13196         * test/watch.c: (check_messages):
13197         Update for changed APIs
13198
13199 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13200
13201         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13202
13203         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13204         Create a DBusTimeoutList.
13205         (dbus_connection_set_timeout_functions): Add new function to
13206         set timeout callbacks
13207
13208         * dbus/dbus-connection.h: Add public DBusTimeout API.
13209
13210         * dbus/dbus-message.c: (dbus_message_get_service):
13211         * dbus/dbus-message.h:  New function.
13212
13213         * dbus/dbus-server.c: Fix small doc typo.
13214
13215         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13216
13217 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13218
13219         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13220         of the string, just as long as specified.
13221
13222 2003-01-19  Havoc Pennington  <hp@pobox.com>
13223
13224         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13225         new function
13226
13227         * dbus/dbus-server.c (dbus_server_set_max_connections)
13228         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13229         keep track of current number of connections, and add API for
13230         setting a max (but haven't implemented enforcing the max yet)
13231
13232 2003-01-18  Havoc Pennington  <hp@pobox.com>
13233
13234         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13235         reading/writing if read_watch != NULL or write_watch != NULL.
13236
13237         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13238         the message loader code to actually load message->header and
13239         message->body into the newly-created message.
13240
13241         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13242         in OOM case
13243
13244         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13245         (dbus_connection_get_max_message_size)
13246         (dbus_connection_set_max_live_messages_size)
13247         (dbus_connection_get_max_live_messages_size): implement some
13248         resource limitation functions
13249
13250         * dbus/dbus-resources.c: new file implementing some of the
13251         resource limits stuff
13252
13253         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13254         missing docs, add @todo to handle OOM etc.
13255
13256         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13257         docs
13258
13259 2003-01-18  Havoc Pennington  <hp@pobox.com>
13260
13261         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13262         connection if it hasn't been already.
13263
13264         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13265         replace with DisconnectFunction.
13266
13267 2003-01-18  Havoc Pennington  <hp@pobox.com>
13268
13269         Building --disable-verbose-mode --disable-asserts --disable-tests
13270         cuts the library from 112K to 45K or so
13271
13272         * configure.in: check for varargs macro support,
13273         add --enable-verbose-mode, --enable-asserts.
13274
13275         * dbus/dbus-internals.h (_dbus_assert): support
13276         DBUS_DISABLE_ASSERT
13277         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13278
13279 2003-01-18  Havoc Pennington  <hp@pobox.com>
13280
13281         * dbus/dbus-test.c: include config.h so that tests actually run
13282
13283         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13284         so the failure mode when that assumption fails will be plenty
13285         obvious.
13286
13287 2003-01-18  Havoc Pennington  <hp@pobox.com>
13288
13289         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13290
13291         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13292         the distribution
13293
13294         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13295         since we don't want to use those in make check
13296
13297 2003-01-15  Havoc Pennington  <hp@redhat.com>
13298
13299         Release 0.2
13300
13301         * NEWS: update
13302
13303 2003-01-15  Havoc Pennington  <hp@redhat.com>
13304
13305         * test/Makefile.am: fix so that test source code ends up in the
13306         distribution on make distcheck
13307
13308 2003-01-15  Havoc Pennington  <hp@redhat.com>
13309
13310         Release 0.1.
13311
13312         * NEWS: update
13313
13314 2003-01-15  Havoc Pennington  <hp@redhat.com>
13315
13316         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13317         fix build when --disable-tests
13318
13319         * Makefile.am (EXTRA_DIST): put HACKING in here
13320
13321         * HACKING: document procedure for making a tarball release.
13322
13323 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13324
13325         * bus/connection.c: (connection_error_handler),
13326         (bus_connection_setup):
13327         * bus/main.c: (main):
13328         Make sure that the DBusConnectionData struct is NULLed
13329         out to prevent a segfault.
13330
13331         * dbus/dbus-errors.c: (dbus_result_to_string):
13332         * dbus/dbus-errors.h:
13333         * dbus/dbus-message.c: (dbus_message_get_fields),
13334         (dbus_message_get_fields_valist), (_dbus_message_test):
13335         * dbus/dbus-message.h:
13336         Make dbus_message_get_fields return a result code so we can
13337         track invalid fields as well as oom.
13338
13339 2003-01-11  Havoc Pennington  <hp@pobox.com>
13340
13341         * configure.in: change --enable-test/--enable-ansi action-if-given
13342         to enable_foo=$enableval instead of enable_foo=yes
13343
13344 2003-01-08  Havoc Pennington  <hp@pobox.com>
13345
13346         * dbus/dbus-string.c (_dbus_string_align_length): new function
13347
13348         * dbus/dbus-test-main.c: move main() for test app here
13349         * dbus/dbus-test.c
13350         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13351         symbol to run tests, because dbus-test isn't in the main
13352         library
13353
13354         Code review nitpicks.
13355
13356         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13357         for people with narrow emacs ;-). Assert client_serial was filled
13358         in. Assert message->name != NULL.
13359         (dbus_message_append_fields): have "first_field_type" arg separate
13360         from va list, needed for C++ binding that also uses varargs IIRC
13361         and helps with type safety
13362         (dbus_message_new): add @todo about using DBusString to store
13363         service/name internally
13364         (dbus_message_new): don't leak ->service and ->name on OOM later
13365         in the function
13366         (dbus_message_unref): free the service name
13367         (dbus_message_get_fields): same change to varargs
13368         i.e. first_field_type
13369         (_dbus_message_loader_return_buffer): assert that the message data
13370         is aligned (if not it's a bug in our code). Put in verbose griping
13371         about why we set corrupted = TRUE.
13372         (decode_header_data): add FIXME that char* is evil.  Was going to
13373         add FIXME about evil locale-specific string.h strncmp, but just
13374         switched to wacky string-as-uint32 optimization. Move check for
13375         "no room for field name" above get_const_data_len() to avoid
13376         assertion failure in get_const_data_len if we have trailing 2
13377         bytes or the like. Check for service and name fields being
13378         provided twice. Don't leak service/name on error. Require field
13379         names to be aligned to 4 bytes.
13380
13381         * dbus/dbus-marshal.c: move byte swap stuff to header
13382         (_dbus_pack_int32): uscore-prefix
13383         (_dbus_unpack_int32): uscore-prefix
13384         (_dbus_unpack_uint32): export
13385         (_dbus_demarshal_string): add @todo complaining about use of
13386         memcpy()
13387         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13388         handling allowing corrupt data to go unchecked
13389
13390 2003-01-08  Havoc Pennington  <hp@redhat.com>
13391
13392         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13393         to the select() as needed for authentication. (should be using
13394         _dbus_poll() not select, but for another day)
13395
13396         * dbus/dbus.h: include dbus/dbus-protocol.h
13397
13398 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13399
13400         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13401         dbus-connection.h
13402
13403 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13404
13405         * dbus/dbus-internals.c: (_dbus_type_to_string):
13406         New function that returns a string describing a type.
13407
13408         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13409         * dbus/dbus-marshal.h:
13410         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13411         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13412         (dbus_message_iter_get_byte_array):
13413         * dbus/dbus-message.h:
13414         Add new convenience functions for appending and getting message fields.
13415         Also add demarshalling routines for byte arrays.
13416
13417 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13418
13419         * dbus/dbus-connection-internal.h:
13420         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13421         (_dbus_connection_get_next_client_serial),
13422         (dbus_connection_send_message):
13423         * dbus/dbus-internals.h:
13424         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13425         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13426         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13427         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13428         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13429         (_dbus_verbose_bytes), (_dbus_marshal_test):
13430         * dbus/dbus-marshal.h:
13431         * dbus/dbus-message-internal.h:
13432         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13433         (dbus_message_write_header), (_dbus_message_lock),
13434         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13435         (dbus_message_get_name), (dbus_message_append_int32),
13436         (dbus_message_append_uint32), (dbus_message_append_double),
13437         (dbus_message_append_string), (dbus_message_append_byte_array),
13438         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13439         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13440         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13441         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13442         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13443         (decode_header_data), (_dbus_message_loader_return_buffer),
13444         (message_iter_test), (_dbus_message_test):
13445         * dbus/dbus-message.h:
13446         * dbus/dbus-protocol.h:
13447         * dbus/dbus-test.c: (main):
13448         * dbus/dbus-test.h:
13449         * glib/test-dbus-glib.c: (message_handler), (main):
13450         * test/echo-client.c: (main):
13451         * test/watch.c: (check_messages):
13452         Make messages sendable and receivable for real.
13453
13454 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13455
13456         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13457         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13458         * dbus/dbus-message.c: (dbus_message_append_int32),
13459         (dbus_message_append_uint32), (dbus_message_append_double),
13460         (dbus_message_append_string), (dbus_message_append_byte_array):
13461         Handle OOM restoration.
13462
13463 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13464
13465         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13466         (_dbus_demarshal_string), (_dbus_marshal_test):
13467         * dbus/dbus-marshal.h:
13468         * dbus/dbus-message.c: (dbus_message_get_name),
13469         Document these functions.
13470
13471         (dbus_message_append_int32), (dbus_message_append_uint32),
13472         (dbus_message_append_double), (dbus_message_append_string),
13473         (dbus_message_append_byte_array):
13474         * dbus/dbus-message.h:
13475         Add functions for adding message fields of different types.
13476
13477         * dbus/dbus-protocol.h:
13478         Add the different types.
13479
13480 2003-01-05  Havoc Pennington  <hp@pobox.com>
13481
13482         * bus/connection.c: implement routines for handling connections,
13483         first thing is keeping a list of owned services on each connection
13484         and setting up watches etc.
13485
13486         * bus/services.c: implement a mapping from service names to lists
13487         of connections
13488
13489         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13490
13491         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13492         to use static mutexes for global data
13493
13494         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13495         collection of functions to set/get application-specific data
13496         on the DBusConnection.
13497
13498 2003-01-04  Havoc Pennington  <hp@pobox.com>
13499
13500         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13501         (_dbus_poll): new function
13502
13503         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13504         copied from GLib
13505
13506         * bus/loop.c: initial code for the daemon main loop
13507
13508 2003-01-04  Havoc Pennington  <hp@pobox.com>
13509
13510         * test/watch.c (error_handler): make it safe if the error handler
13511         is called multiple times (if we s/error handler/disconnect
13512         handler/ we should just guarantee it's called only once)
13513
13514         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13515         error handler on disconnect (it's quite possible we should
13516         just change the error handler to a "disconnect handler," I'm
13517         not sure we have any other meaningful errors)
13518
13519         * configure.in: check for getpwnam_r
13520
13521         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13522         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13523         mechanism as in SASL spec, using socket credentials
13524
13525         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13526         (_dbus_send_credentials_unix_socket): new function
13527
13528         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13529         dbus_accept()
13530         (_dbus_write): only check errno if <0 returned
13531         (_dbus_write_two): ditto
13532
13533 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13534
13535         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13536         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13537         (_dbus_marshal_test):
13538         * dbus/dbus-marshal.h:
13539         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13540         to _dbus_marshal_utf8_string. Also fix some tests.
13541
13542 2002-12-28  Harri Porten  <porten@kde.org>
13543
13544         * configure.in: added check for C++ compiler and a very cheesy
13545         check for the Qt integration
13546
13547         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13548
13549         * qt/Makefile.am: added
13550
13551         * qt/.cvsignore: added
13552
13553         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13554         latter, added #ifdef QT_THREAD_SUPPORT guard.
13555
13556         * dbus/Makefile.am: added missing headers for make dist
13557
13558 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13559
13560         * dbus/Makefile.am: fixup export-symbols-regex.
13561
13562 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13563
13564         * acinclude.m4: Add this file and put the
13565         PKG_CHECK_MODULE macro in it.
13566
13567 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13568
13569         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13570         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13571         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13572         (_dbus_marshal_test):
13573         Make the demarshalling routines align the pos argument.
13574         Add string marshalling tests and fix the obvious bugs
13575         discovered.
13576
13577 2002-12-26  Havoc Pennington  <hp@pobox.com>
13578
13579         * dbus/dbus-auth.c: fixes fixes fixes
13580
13581         * dbus/dbus-transport-unix.c: wire up support for
13582         encoding/decoding data on the wire
13583
13584         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13585         (_dbus_auth_decode_data): append to target string
13586         instead of nuking it.
13587
13588 2002-12-26  Havoc Pennington  <hp@pobox.com>
13589
13590         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13591         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13592         doh
13593
13594         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13595         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13596         now). Main point is because I wanted unpack_uint32 to implement
13597         _dbus_verbose_bytes
13598         (_dbus_verbose_bytes): new function
13599
13600         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13601
13602         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13603         mechanism to handle a corrupt message stream
13604         (_dbus_message_loader_new): fix preallocation to only prealloc,
13605         not prelengthen
13606
13607         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13608         (_dbus_string_test): enhance tests for copy/move and fix the
13609         functions
13610
13611         * dbus/dbus-transport-unix.c: Hold references in more places to
13612         avoid reentrancy problems
13613
13614         * dbus/dbus-transport.c: ditto
13615
13616         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13617         leak reference count in no-message case
13618
13619         * test/watch.c (do_mainloop): handle adding/removing watches
13620         during iteration over the watches. Also, ref the connection/server
13621         stored on a watch, so we don't try to mangle a destroyed one.
13622
13623         * dbus/dbus-transport-unix.c (do_authentication): perform
13624         authentication
13625
13626         * dbus/dbus-auth.c (get_state): add a state
13627         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13628         (_dbus_auth_get_unused_bytes): append the unused bytes
13629         to the passed in string, rather than prepend
13630
13631         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13632         the auth conversation DBusAuth
13633
13634         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13635         (_dbus_transport_new_for_domain_socket): when creating a
13636         transport, pass in whether it's a client-side or server-side
13637         transport so we know which DBusAuth to create
13638
13639 2002-12-03  Havoc Pennington  <hp@pobox.com>
13640
13641         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13642         _after_ finalizing the derived members
13643         (unix_connection_set): unref watch if we fail to add it
13644
13645         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13646         transport first, so that the connection owned by the
13647         transport will be valid as the transport finalizes.
13648
13649         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13650         if necessary, and remove watches from the connection.
13651
13652         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13653
13654 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13655
13656         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13657         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13658         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13659         (_dbus_marshal_test):
13660         * dbus/dbus-marshal.h:
13661         Add string marshal functions and have the demarshal functions
13662         return the new position.
13663
13664 2002-12-25  Havoc Pennington  <hp@pobox.com>
13665
13666         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13667         it is a simple protocol that just maps directly to SASL.
13668
13669         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13670         initial implementation, not actually used yet.
13671
13672         * dbus/dbus-string.c (_dbus_string_find): new function
13673         (_dbus_string_equal): new function
13674         (_dbus_string_base64_encode): new function
13675         (_dbus_string_base64_decode): new function
13676
13677 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13678
13679         * dbus/Makefile.am:
13680         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13681         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13682         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13683         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13684         * dbus/dbus-marshal.h:
13685         * dbus/dbus-protocol.h:
13686         * dbus/dbus-test.c: (main):
13687         * dbus/dbus-test.h:
13688         Add un-optimized marshalling/demarshalling routines.
13689
13690 2002-12-25  Harri Porten  <porten@kde.org>
13691
13692         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13693
13694 2002-12-24  Zack Rusin  <zack@kde.org>
13695
13696         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13697         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13698         main loop stuff
13699
13700 2002-12-24  Havoc Pennington  <hp@pobox.com>
13701
13702         * glib/dbus-gthread.c: fix include
13703
13704         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13705         I think glib API needs to change, though, as you don't
13706         want to use DBusMessageFunction, you want to use the
13707         DBusMessageHandler object. Probably
13708         dbus_connection_open_with_g_main_loop()
13709         and dbus_connection_setup_g_main_loop() or something like that
13710         (but think of better names...) that just create a connection
13711         that has watch/timeout functions etc. already set up.
13712
13713         * dbus/dbus-connection.c
13714         (dbus_connection_send_message_with_reply): new function just to
13715         show how the message handler helps us deal with replies.
13716
13717         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13718
13719         * dbus/dbus-string.c (_dbus_string_test): free a string that
13720         wasn't
13721
13722         * dbus/dbus-hash.c: use memory pools for the hash entries
13723         (rebuild_table): be more paranoid about overflow, and
13724         shrink table when we can
13725         (_dbus_hash_test): reduce number of sprintfs and write
13726         valid C89. Add tests for case where we grow and then
13727         shrink the hash table.
13728
13729         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13730
13731         * dbus/dbus-connection.c (dbus_connection_register_handler)
13732         (dbus_connection_unregister_handler): new functions
13733
13734         * dbus/dbus-message.c (dbus_message_get_name): new
13735
13736         * dbus/dbus-list.c: fix docs typo
13737
13738         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13739         an object representing a handler for messages.
13740
13741 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13742
13743         * glib/dbus-glib.h:
13744         * glib/dbus-gthread.c: (dbus_gthread_init):
13745         Don't use the gdbus prefix for public functions.
13746
13747 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13748
13749         * Makefile.am:
13750         * configure.in:
13751         Add GLib checks and fixup .pc files
13752
13753         * glib/Makefile.am:
13754         * glib/dbus-glib.h:
13755         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13756         (gdbus_connection_check), (gdbus_connection_dispatch),
13757         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13758         (dbus_connection_gsource_new):
13759         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13760         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13761         * glib/test-dbus-glib.c: (message_handler), (main):
13762         Add GLib support.
13763
13764 2002-12-15  Harri Porten  <porten@kde.org>
13765
13766         * autogen.sh: check for libtoolize before attempting to use it
13767
13768         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13769         struct.
13770
13771         * .cvsignore: ignore more stamp files
13772
13773         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13774
13775         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13776         without make install.
13777
13778 2002-12-15  Havoc Pennington  <hp@pobox.com>
13779
13780         * dbus/dbus-threads.c: add thread stubs that a higher library
13781         layer can fill in. e.g. the GLib wrapper might fill them in with
13782         GThread stuff. We still need to use this thread API to
13783         thread-safe-ize the library.
13784
13785 2002-12-12  Havoc Pennington  <hp@pobox.com>
13786
13787         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13788         below new interfaces and include fewer system headers.
13789
13790         * dbus/dbus-sysdeps.c (_dbus_read): new function
13791         (_dbus_write): new function
13792         (_dbus_write_two): new function
13793         (_dbus_connect_unix_socket): new function
13794         (_dbus_listen_unix_socket): new function
13795
13796         * dbus/dbus-message-internal.h: change interfaces to use
13797         DBusString
13798
13799 2002-12-11  Havoc Pennington  <hp@pobox.com>
13800
13801         * dbus/dbus-types.h: add dbus_unichar
13802
13803         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13804
13805         * dbus/dbus-connection.c (dbus_connection_send_message): return
13806         TRUE on success
13807
13808         * dbus/dbus-transport.c: include dbus-watch.h
13809
13810         * dbus/dbus-connection.c: include dbus-message-internal.h
13811
13812         * HACKING: add file with coding guidelines stuff.
13813
13814         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13815         handling here, for security purposes (as in vsftpd). Not actually
13816         using this class yet.
13817
13818         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13819         system/libc usage here, as in vsftpd, for ease of auditing (and
13820         should also simplify portability). Haven't actually moved all the
13821         system/libc usage into here yet.
13822
13823 2002-11-25  Havoc Pennington  <hp@pobox.com>
13824
13825         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13826         always print the first verbose message.
13827
13828 2002-11-24  Havoc Pennington  <hp@pobox.com>
13829
13830         * test/echo-client.c, test/echo-server.c: cheesy test
13831         clients.
13832
13833         * configure.in (AC_CHECK_FUNCS): check for writev
13834
13835         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13836         function
13837
13838         * dbus/dbus-list.c (_dbus_list_foreach): new function
13839
13840         * dbus/dbus-internals.c (_dbus_verbose): new function
13841
13842         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13843         representing a server that listens for connections.
13844
13845         * dbus/.cvsignore: create
13846
13847         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13848         public API for reporting errors
13849
13850         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13851         public object representing a connection that
13852         sends/receives messages. (Same object used for
13853         both client and server.)
13854
13855         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13856         Basic abstraction for different kinds of stream
13857         that we might read/write messages from.
13858
13859 2002-11-23  Havoc Pennington  <hp@pobox.com>
13860
13861         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13862         _DBUS_INT_MAX
13863
13864         * dbus/dbus-test.c (main): add list test, and include
13865         dbus-test.h as intended
13866
13867         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13868         (_dbus_hash_table_remove_int): return value indicates
13869         whether the entry existed to remove
13870
13871         * dbus/dbus-list.c: add linked list utility class,
13872         with docs and tests
13873
13874         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13875         array sometimes.
13876
13877 2002-11-23  Havoc Pennington  <hp@pobox.com>
13878
13879         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13880         DBUS_END_DECLS to nothing, that should fix this once and for all
13881
13882         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13883
13884         * dbus/dbus-message.c, dbus/dbus-hash.c:
13885         add some missing @brief
13886
13887 2002-11-23  Havoc Pennington  <hp@pobox.com>
13888
13889         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13890         to avoid confusing Doxygen
13891
13892         * dbus/dbus-hash.c: @} not }@
13893
13894         * dbus/dbus-message.c (struct DBusMessage): split out
13895         internals docs
13896
13897 2002-11-23  Havoc Pennington  <hp@pobox.com>
13898
13899         * configure.in: pile on more warning flags if using gcc
13900
13901         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13902         to document static functions
13903
13904         * configure.in: add summary to end of configure so it
13905         looks nice and attractive
13906
13907         * dbus/dbus-hash.c: finish implementation and write unit
13908         tests and docs
13909
13910         * configure.in: add --enable-tests to enable unit tests
13911
13912         * dbus/dbus-test.c: test program to run unit tests
13913         for all files in dbus/*, initially runs a test for
13914         dbus-hash.c
13915
13916         * dbus/dbus-internals.h: file to hold some internal utility stuff
13917
13918 2002-11-22  Havoc Pennington  <hp@redhat.com>
13919
13920         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13921         "ported" away from Tcl
13922
13923         * dbus/dbus-types.h: header for types such as dbus_bool_t
13924
13925 2002-11-22  Havoc Pennington  <hp@redhat.com>
13926
13927         * dbus/dbus.h: fixups for doc warnings
13928
13929         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13930         macros
13931         (QUIET): make it quiet so we can see warnings
13932
13933         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13934
13935 2002-11-22  Havoc Pennington  <hp@redhat.com>
13936
13937         * Makefile.am: include "Doxyfile" target in all-local
13938
13939         * configure.in: generate the Doxyfile
13940
13941         * Doxyfile.in: move Doxyfile here, so we can use
13942         configure to generate a Doxyfile with the right
13943         version number etc.
13944
13945 2002-11-22  Havoc Pennington  <hp@redhat.com>
13946
13947         * dbus/dbus-message.c: move inline docs into .c file
13948
13949         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13950         so all docs are under doc/
13951         (MAN_EXTENSION): generate man pages. Use extension
13952         ".3dbus" which matches ".3qt" on my system,
13953         I guess this is OK, I don't know really.
13954         (FILE_PATTERNS): look for .c files not .h, makes sense
13955         for plain C I think
13956
13957 2002-11-22  Havoc Pennington  <hp@pobox.com>
13958
13959         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13960         because any app can be a server, and any app can be a client,
13961         the bus is a special kind of server.
13962
13963 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13964
13965         * Doxyfile : adding. Still needs Makefile rules to be generated
13966         automatically (just run "doxygen" in the toplevel dir for now to
13967         generate docs)
13968
13969         * dbus/dbus-message.h : Adding sample docs (javadoc since
13970         resembles gtk-doc a little more)
13971
13972         * dbus/dbus.h : Adding sample docs
13973
13974 2002-11-21  Havoc Pennington  <hp@redhat.com>
13975
13976         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13977         so we can allow ourselves to include files directly,
13978         instead of having to use dbus.h
13979
13980         * dbus/dbus.h: fill in
13981
13982         * dbus/dbus-message.h: sketch out a sample header file.
13983         Include griping if you include it directly instead of
13984         via dbus.h
13985
13986         * dbus/dbus-macros.h: new file with macros for extern "C",
13987         TRUE/FALSE, NULL, etc.
13988
13989         * doc/file-boilerplate.c: put include guards in here
13990
13991 2002-11-21  Havoc Pennington  <hp@redhat.com>
13992
13993         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13994
13995         * COPYING: include the GPL as well, and license code
13996         under both AFL and GPL.
13997
13998 2002-11-21  Havoc Pennington  <hp@redhat.com>
13999
14000         * acconfig.h: get rid of this
14001
14002         * autogen.sh (run_configure): add --no-configure option
14003
14004         * configure.in: remove AC_ARG_PROGRAM to make
14005         autoconf complain less. add AC_PREREQ.
14006         add AC_DEFINE third arg.
14007
14008 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14009
14010         * doc/Makefile.am:
14011         Fix references so we can distcheck.
14012
14013 2002-11-21  Havoc Pennington  <hp@redhat.com>
14014
14015         * Initial module creation
14016